commit: 725aa5a066e69f5611e40c3cc84660eee07f940c Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Wed Sep 28 20:44:47 2022 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Wed Sep 28 20:55:24 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=725aa5a0
unpacker.eclass: Workaround zstd refusing to process symlinks Closes: https://bugs.gentoo.org/873352 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> eclass/tests/unpacker.sh | 7 ++++++- 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})"