Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.gentoo.dev > #70464
| From | Sam James <sam@gentoo.org> |
|---|---|
| Newsgroups | linux.gentoo.dev |
| Subject | Re: [gentoo-dev] [PATCH] rpm.eclass: don't die if grep errors out when detecting payload |
| Date | 2026-04-25 01:00 +0200 |
| Message-ID | <MNxF8-9KN-7@gated-at.bofh.it> (permalink) |
| References | <MNwzn-92z-5@gated-at.bofh.it> |
| Organization | Gentoo |
[Multipart message — attachments visible in raw view] - view raw
Eli Schwartz <eschwartz@gentoo.org> writes:
> 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>
Reviewed-by: Sam James <sam@gentoo.org>
and pushed.
> ---
> eclass/rpm.eclass | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/eclass/rpm.eclass b/eclass/rpm.eclass
> index 920f11262bdd..1296e1f3641f 100644
> --- a/eclass/rpm.eclass
> +++ b/eclass/rpm.eclass
> @@ -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
Back to linux.gentoo.dev | Previous | Next — Previous in thread | Find similar
[gentoo-dev] [PATCH] rpm.eclass: don't die if grep errors out when detecting payload Eli Schwartz <eschwartz@gentoo.org> - 2026-04-24 23:50 +0200 Re: [gentoo-dev] [PATCH] rpm.eclass: don't die if grep errors out when detecting payload Sam James <sam@gentoo.org> - 2026-04-25 01:00 +0200
csiph-web