mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
rpm.eclass: don't die if grep errors out when detecting payload
While in theory, exquisitely timed memory exhaustion may result in grep, and only grep, failing... in practice: - we must handle "no match" - "no match" simply determines which of two extraction tools to use, and if we choose wrongly, the tool will fail and the ebuild will still die I guess this mean the *.src.rpm workaround was unnecessary too. Closes: https://bugs.gentoo.org/973157 Signed-off-by: Eli Schwartz <eschwartz@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -98,11 +98,11 @@ rpm_unpack() {
|
||||
fi
|
||||
|
||||
local payload= usedep=""
|
||||
if [[ ${a} = *.src.rpm ]]; then
|
||||
payload=none
|
||||
else
|
||||
payload=$($(tc-getSTRINGS) "${a}" | grep -o 'PayloadIs[a-zA-Z]*'; pipestatus || die "failed to grep rpm payload")
|
||||
fi
|
||||
# grep may fail because no payload or because "unknown error", and distinguishing between
|
||||
# the two is problematic. We do a token check that strings works, but rely on rpm failing
|
||||
# with its own well-formed die if we erroneously decide no payload USE flag is needed due
|
||||
# to external commands failing.
|
||||
payload=$($(tc-getSTRINGS) "${a}" | grep -o 'PayloadIs[a-zA-Z]*'; if [[ ${PIPESTATUS[0]} != 0 ]]; then die "strings failed"; fi)
|
||||
|
||||
case ${payload} in
|
||||
"") payload=none;; # gzip/uncompressed
|
||||
|
||||
Reference in New Issue
Block a user