From 67ddb93bd166d5f98252a533d1a4538e5649af50 Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Thu, 6 Sep 2018 23:22:45 +0000 Subject: Thu Sep 6 23:22:45 UTC 2018 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. --- source/a/pkgtools/scripts/installpkg | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) (limited to 'source/a/pkgtools/scripts') diff --git a/source/a/pkgtools/scripts/installpkg b/source/a/pkgtools/scripts/installpkg index 9e75ef030..2180016f5 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. -- cgit v1.2.3-65-gdbad