summaryrefslogtreecommitdiff
path: root/source/a/pkgtools/scripts/installpkg
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/pkgtools/scripts/installpkg')
-rw-r--r--source/a/pkgtools/scripts/installpkg33
1 files changed, 1 insertions, 32 deletions
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.