diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2018-05-28 19:12:29 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-05-31 23:39:35 +0200 |
commit | 646a5c1cbfd95873950a87b5f75d52073a967023 (patch) | |
tree | b8b8d2ab3b0d432ea69ad1a64d1c789649d65020 /source/a/pkgtools/scripts/explodepkg | |
parent | d31c50870d0bee042ce660e445c9294a59a3a65b (diff) | |
download | current-646a5c1cbfd95873950a87b5f75d52073a967023.tar.gz |
Mon May 28 19:12:29 UTC 201820180528191229
a/pkgtools-15.0-noarch-13.txz: Rebuilt.
installpkg: default line length for --terselength is the number of columns.
removepkg: added --terse mode.
upgradepkg: default line length for --terselength is the number of columns.
upgradepkg: accept -option in addition to --option.
ap/vim-8.1.0026-x86_64-1.txz: Upgraded.
d/bison-3.0.5-x86_64-1.txz: Upgraded.
e/emacs-26.1-x86_64-1.txz: Upgraded.
kde/kopete-4.14.3-x86_64-8.txz: Rebuilt.
Recompiled against libidn-1.35.
n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded.
n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded.
n/libnftnl-1.1.0-x86_64-1.txz: Upgraded.
n/links-2.16-x86_64-2.txz: Rebuilt.
Rebuilt to enable X driver for -g mode.
n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded.
n/nftables-0.8.5-x86_64-1.txz: Upgraded.
n/p11-kit-0.23.11-x86_64-1.txz: Upgraded.
n/ulogd-2.0.7-x86_64-1.txz: Upgraded.
n/whois-5.3.1-x86_64-1.txz: Upgraded.
xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded.
xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
Diffstat (limited to 'source/a/pkgtools/scripts/explodepkg')
-rw-r--r-- | source/a/pkgtools/scripts/explodepkg | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/source/a/pkgtools/scripts/explodepkg b/source/a/pkgtools/scripts/explodepkg index 110ebf06..e1f9b128 100644 --- a/source/a/pkgtools/scripts/explodepkg +++ b/source/a/pkgtools/scripts/explodepkg @@ -1,7 +1,7 @@ #!/bin/sh # Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA # Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA -# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA +# Copyright 2007, 2009, 2017, 2018 Patrick Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -21,32 +21,15 @@ # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -TAR=tar-1.13 -$TAR --help 1> /dev/null 2> /dev/null -if [ ! $? = 0 ]; then - TAR=tar -fi -if [ ! "`LC_MESSAGES=C $TAR --version`" = "tar (GNU tar) 1.13 - -Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc. -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -Written by John Gilmore and Jay Fenlason." ]; then - echo "WARNING: pkgtools are unstable with tar > 1.13." - echo " You should provide a \"tar-1.13\" in your \$PATH." - sleep 5 -fi - if [ $# = 0 ]; then cat << EOF Usage: explodepkg package_name [package_name2, ...] Explodes a Slackware compatible software package -(or any tar+{gzip,bzip2,lzma,xz archive) in the current directory. +(or any tar+{gzip,bzip2,lz,xz archive) in the current directory. Equivalent to (for each package listed): - ( umask 000 ; cat package_name | COMPRESSOR -dc | tar xvf package_name ) + ( umask 000 ; cat package_name | COMPRESSOR -dc | tar xpvf package_name ) Note: This should only be used for debugging or examining packages, not for installing them. It doesn't execute installation scripts or update the package @@ -55,6 +38,10 @@ indexes in /var/log/packages and /var/log/scripts. EOF fi +# Set maximum number of threads to use. By default, this will be the number +# of CPU threads: +THREADS="$(nproc)" + # Main loop: for PKG in $* ; do echo "Exploding package $PKG in current directory:" @@ -69,25 +56,50 @@ for PKG in $* ; do packagecompression=gzip ;; 'tbz' ) - packagecompression=bzip2 + if which lbzip2 1> /dev/null 2> /dev/null ; then + packagecompression=lbzip2 + else + packagecompression=bzip2 + fi ;; 'bz2' ) - packagecompression=bzip2 + if which lbzip2 1> /dev/null 2> /dev/null ; then + packagecompression=lbzip2 + else + packagecompression=bzip2 + fi ;; 'tlz' ) - packagecompression=lzma + if which plzip 1> /dev/null 2> /dev/null ; then + packagecompression="plzip --threads=${THREADS}" + elif which lzip 1> /dev/null 2> /dev/null ; then + packagecompression=lzip + else + echo "ERROR: lzip compression utility not found in \$PATH." + exit 3 + fi + ;; + 'lz' ) + if which plzip 1> /dev/null 2> /dev/null ; then + packagecompression="plzip --threads=${THREADS}" + elif which lzip 1> /dev/null 2> /dev/null ; then + packagecompression=lzip + else + echo "ERROR: lzip compression utility not found in \$PATH." + exit 3 + fi ;; 'lzma' ) packagecompression=lzma ;; 'txz' ) - packagecompression=xz + packagecompression="xz --threads=${THREADS}" ;; 'xz' ) - packagecompression=xz + packagecompression="xz --threads=${THREADS}" ;; esac - ( umask 000 ; cat $PKG | $packagecompression -dc | $TAR xvf - 2> /dev/null ) + ( umask 000 ; cat $PKG | $packagecompression -dc | tar --xattrs --xattrs-include='*' --keep-directory-symlink -xpvf - 2> /dev/null ) if [ -r install/doinst.sh ]; then echo echo "An installation script was detected in ./install/doinst.sh, but" |