diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2018-09-06 23:22:45 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2018-09-07 09:00:31 +0200 |
commit | 67ddb93bd166d5f98252a533d1a4538e5649af50 (patch) | |
tree | fc58a1f76a436f040ce4f8843a667c9cade55325 /source/a | |
parent | ce9883adcab118cd8a0ae45076486ebf643fe2d5 (diff) | |
download | current-67ddb93bd166d5f98252a533d1a4538e5649af50.tar.gz |
Thu Sep 6 23:22:45 UTC 201820180906232245
a/pkgtools-15.0-noarch-23.txz: Rebuilt.
Removed stray cat and loop kludges for lack of reported size, since this
is fixed now in tar.
a/tar-1.30-x86_64-3.txz: Rebuilt.
Fixed a bug in the nolonezero patch that was evidently causing all of the
issues in installpkg that we'd been kludging around (e.g. the "stray cat").
Thanks *very* much to NonNonBa for the patch, and to SeB for the initial
analysis of the problem.
ap/ghostscript-9.24-x86_64-2.txz: Rebuilt.
Applied upstream patch to fix "Filter failed". Thanks to th_r and bamunds.
d/gdb-8.2-x86_64-1.txz: Upgraded.
d/indent-2.2.12-x86_64-1.txz: Upgraded.
isolinux/initrd.img: Rebuilt.
usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source/a')
-rwxr-xr-x | source/a/pkgtools/pkgtools.SlackBuild | 2 | ||||
-rw-r--r-- | source/a/pkgtools/scripts/installpkg | 33 | ||||
-rwxr-xr-x | source/a/tar/tar.SlackBuild | 23 | ||||
-rw-r--r-- | source/a/tar/tar.nolonezero.diff | 31 |
4 files changed, 42 insertions, 47 deletions
diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild index 18451d5f..1b061412 100755 --- a/source/a/pkgtools/pkgtools.SlackBuild +++ b/source/a/pkgtools/pkgtools.SlackBuild @@ -30,7 +30,7 @@ PKGNAM=pkgtools # *** UPDATE THESE WITH EACH BUILD: VERSION=15.0 ARCH=${ARCH:-noarch} -BUILD=${BUILD:-22} +BUILD=${BUILD:-23} # If the variable PRINT_PACKAGE_NAME is set, then this script will report what # the name of the created package would be, and then exit. This information diff --git a/source/a/pkgtools/scripts/installpkg b/source/a/pkgtools/scripts/installpkg index 9e75ef03..2180016f 100644 --- a/source/a/pkgtools/scripts/installpkg +++ b/source/a/pkgtools/scripts/installpkg @@ -491,30 +491,7 @@ for package in $* ; do if [ "$MODE" = "install" ]; then echo "Verifying package $(basename $package)." fi - # The stray cat reduces the frequency of the lack of reported size. - # If it still fails, we hit it with a bigger hammer down below. - # - # SeB's proposed fix for this. Untested. - #cat $package | $packagecompression -dc | LC_ALL=C dd 2> $TMP/tmpsize${MCOOKIE} | ( tar tf - ; cat > /dev/null ) 2> /dev/null 1> $TMP/tmplist${MCOOKIE} - # Some background info from SeB's email: - # As you can see, when dd doesn't print anything, it returns 141, - # which means it has got a SIGPIPE. The problem is hence some tar - # archives cause tar to exit before having emptied stdin. That's - # why adding a cat before tar sometimes makes things better (tar - # causes it to get a SIGPIPE some ms before it causes itself dd to - # get one) - # - # A fix is then to replace: - # - # cat ... | $decompressor ... | ... dd ... | cat ... | tar tf - >... - # - # with: - # - # $decompressor ... | ... dd ... | ( tar tf -; cat >/dev/null ) >... - # - # This way the last cat will either exit because there's nothing on - # stdin or purge this one properly so dd gets the EOF it needs. - cat $package | $packagecompression -dc | LC_ALL=C dd 2> $TMP/tmpsize${MCOOKIE} | cat 2> /dev/null | tar tf - 2> /dev/null 1> $TMP/tmplist${MCOOKIE} + cat $package | $packagecompression -dc | LC_ALL=C dd 2> $TMP/tmpsize${MCOOKIE} | tar tf - 2> /dev/null 1> $TMP/tmplist${MCOOKIE} TARERROR=$? if [ ! "$TARERROR" = "0" ]; then EXITSTATUS=1 # tar file corrupt @@ -525,14 +502,6 @@ for package in $* ; do continue fi UNCOMPRESSED="$(cat $TMP/tmpsize${MCOOKIE} | tail -n 1 | cut -f 1 -d ' ' | numfmt --to=iec)" - # Weird bug "fix". Sometimes we get no uncompressed size (this started when we - # moved away from tar-1.13, but I don't see what that could have to do with - # it). So, if we have no uncompressed size here, demand it in this loop. - # Hopefully the bug is not weird enough to make this an infinite loop. :/ - while [ "$UNCOMPRESSED" = "" ]; do - cat $package | $packagecompression -dc | LC_ALL=C dd 1> /dev/null 2> $TMP/tmpsize${MCOOKIE} - UNCOMPRESSED="$(cat $TMP/tmpsize${MCOOKIE} | tail -n 1 | cut -f 1 -d ' ' | numfmt --to=iec)" - done rm -f $TMP/tmpsize${MCOOKIE} # If we still don't have a package description, look inside the package. diff --git a/source/a/tar/tar.SlackBuild b/source/a/tar/tar.SlackBuild index 86d97153..3b21c7a8 100755 --- a/source/a/tar/tar.SlackBuild +++ b/source/a/tar/tar.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=tar VERSION=1.30 -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} NUMJOBS=${NUMJOBS:--j7} @@ -50,6 +50,27 @@ fi TMP=${TMP:-/tmp} PKG=$TMP/package-tar +# Don't use icecream: +for path_element in $(echo $PATH | tr ':' '\n') ; do + if [ "$path_element" = "/usr/libexec/icecc/bin" ]; then + continue + fi + if [ -z "$REVERSE_PATH" ]; then + REVERSE_PATH="$path_element" + else + REVERSE_PATH="${REVERSE_PATH}:$path_element" + fi +done +for path_element in $(echo $REVERSE_PATH | tr ':' '\n') ; do + if [ -z "$FORWARD_PATH" ]; then + FORWARD_PATH="$path_element" + else + FORWARD_PATH="${FORWARD_PATH}:$path_element" + fi +done +PATH=$FORWARD_PATH +unset FORWARD_PATH REVERSE_PATH + rm -rf $PKG mkdir -p $TMP $PKG diff --git a/source/a/tar/tar.nolonezero.diff b/source/a/tar/tar.nolonezero.diff index c47e067f..52967972 100644 --- a/source/a/tar/tar.nolonezero.diff +++ b/source/a/tar/tar.nolonezero.diff @@ -1,26 +1,31 @@ -diff -Nur tar-1.27.1.orig/src/list.c tar-1.27.1/src/list.c ---- tar-1.27.1.orig/src/list.c 2013-03-14 15:18:10.000000000 -0500 -+++ tar-1.27.1/src/list.c 2014-07-26 20:42:16.613004098 -0500 -@@ -211,6 +211,14 @@ +--- ./src/list.c.orig 2017-12-16 15:23:12.000000000 -0600 ++++ ./src/list.c 2018-09-06 16:51:52.982740004 -0500 +@@ -242,15 +242,22 @@ if (!ignore_zeros_option) { +- char buf[UINTMAX_STRSIZE_BOUND]; + -+ /* ++ /* + * According to POSIX tar specs, this is wrong, but on the web + * there are some tar specs that can trigger this, and some tar + * implementations create tars according to that spec. For now, + * let's not be pedantic about issuing the warning. -+ */ -+#if 0 - char buf[UINTMAX_STRSIZE_BOUND]; ++ * ++ * char buf[UINTMAX_STRSIZE_BOUND]; */ status = read_header (¤t_header, ¤t_stat_info, -@@ -220,6 +228,7 @@ - WARNOPT (WARN_ALONE_ZERO_BLOCK, - (0, 0, _("A lone zero block at %s"), - STRINGIFY_BIGINT (current_block_ordinal (), buf))); -+#endif + read_header_auto); +- if (status == HEADER_ZERO_BLOCK) +- break; +- WARNOPT (WARN_ALONE_ZERO_BLOCK, +- (0, 0, _("A lone zero block at %s"), +- STRINGIFY_BIGINT (current_block_ordinal (), buf))); ++ /* if (status == HEADER_ZERO_BLOCK) ++ * break; ++ * WARNOPT (WARN_ALONE_ZERO_BLOCK, ++ * (0, 0, _("A lone zero block at %s"), ++ * STRINGIFY_BIGINT (current_block_ordinal (), buf))); */ break; } status = prev_status; |