sp-unpack
programsp-unpack [$SP_ROOT]/package/admin/foo-2.0 [...]
sp-unpack
unpacks one or more package tarballs. It is
typically invoked by way of
sp-install
. For
/package/admin/foo-2.0
, it first runs
"sp-download /package/admin/foo-2.0
", then looks
for foo-2.0.tar
, possibly with an extension of .gz
,
.bz2
, or .Z
, in $SP_TARDIR_FLAT
(if
that variable is set), $SP_TARDIR/admin
(if that variable is
set), $SP_ROOT/usr/local/src/package/admin
, and
/usr/local/src/package/admin
. If a compressed file is found,
temporary files are created in $TMPDIR
(defaulting to
/tmp
).
If the given package directory already exists, sp-unpack
will
not unpack the tarball again, to save time and preserve local modifications.
You can set $SP_REUNPACK=y
to force sp-unpack
to
unpack a tarball even when the directory exists.
If $SP_COMPILE_USER
is set, sp-unpack
will create
the package directory, chown it to $SP_COMPILE_USER
, unpack the
tarball as $SP_COMPILE_USER
, and chown it back to the calling
user and group. This ensures that a tarball cannot overwrite any files
outside its own package directory, assuming no other files under
$SP_ROOT/pakcage
are owned by that user.