diff options
author | Michał Górny <mgorny@gentoo.org> | 2022-09-28 22:44:47 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2022-09-28 22:55:24 +0200 |
commit | 725aa5a066e69f5611e40c3cc84660eee07f940c (patch) | |
tree | cfbd690e3b5d1c2df3286e986ea315077febf550 /eclass | |
parent | x11-misc/obconf: fix build with clang16 (diff) | |
download | gentoo-725aa5a066e69f5611e40c3cc84660eee07f940c.tar.gz gentoo-725aa5a066e69f5611e40c3cc84660eee07f940c.tar.bz2 gentoo-725aa5a066e69f5611e40c3cc84660eee07f940c.zip |
unpacker.eclass: Workaround zstd refusing to process symlinks
Closes: https://bugs.gentoo.org/873352
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass')
-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})" |