diff options
-rwxr-xr-x | eclass/tests/unpacker.sh | 7 | ||||
-rw-r--r-- | eclass/unpacker.eclass | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/eclass/tests/unpacker.sh b/eclass/tests/unpacker.sh index b15953966f65..105f28fd4858 100755 --- a/eclass/tests/unpacker.sh +++ b/eclass/tests/unpacker.sh @@ -42,9 +42,14 @@ test_unpack() { eval "${packcmd}" assert "packing ${archive} failed" cd testdir || die + + # create a symlink to flush out compressor issues and resemble distdir more + # https://bugs.gentoo.org/873352 + ln -s "../${archive}" "${archive}" || die + local out out=$( - _unpacker "../${archive}" 2>&1 + _unpacker "${archive}" 2>&1 ) ret=$? if [[ ${ret} -eq 0 ]]; then diff --git a/eclass/unpacker.eclass b/eclass/unpacker.eclass index 3d23151b636e..6c9bcbdd7a7b 100644 --- a/eclass/unpacker.eclass +++ b/eclass/unpacker.eclass @@ -523,11 +523,11 @@ _unpacker() { if [[ -z ${arch} ]] ; then # Need to decompress the file into $PWD #408801 local _a=${a%.*} - ${comp} "${a}" > "${_a##*/}" + ${comp} < "${a}" > "${_a##*/}" elif [[ -z ${comp} ]] ; then ${arch} "${a}" else - ${comp} "${a}" | ${arch} - + ${comp} < "${a}" | ${arch} - fi assert "unpacking ${a} failed (comp=${comp} arch=${arch})" |