Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 140052 - Add a payloadformat check
Add a payloadformat check
Product: Fedora
Classification: Fedora
Component: rpm (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Paul Nasrat
Mike McLean
: FutureFeature
Depends On:
  Show dependency treegraph
Reported: 2004-11-19 10:02 EST by Michael Schröder
Modified: 2007-11-30 17:10 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-01-27 03:38:02 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Proposed patch (972 bytes, patch)
2004-11-19 10:04 EST, Michael Schröder
no flags Details | Diff

  None (edit)
Description Michael Schröder 2004-11-19 10:02:53 EST
A payload other than "cpio" makes rpm print an error much too late in 
the installation process. This patch adds an earlier check. It also 
prints a different message for delta-rpms (see SuSE's deltarpm 
Comment 1 Michael Schröder 2004-11-19 10:04:07 EST
Created attachment 107058 [details]
Proposed patch
Comment 2 Jeff Johnson 2004-11-19 23:40:34 EST
I have no problem with an earlier payload check in principle,
and lib/rpminstall.c is about as early as it gets for the
rpm CLI.

There are several other pathways that will need the
check plugged however, the most important of which
is rpmtsAddInstallElement() in lib/depends.c, as that
performs similar "early" detection for bindings that
your patch does for the rpm CLI.

The other pathways are those used to install *.src.rpm.

Lots of this mess needs scrap and rewrite, lest the introduction
of a 4th (i.e. other than binary/src and now "drpm") flavor
of *.rpm cause this bug to be dicovered again and again and again.
Comment 3 Jeff Johnson 2006-01-27 03:38:02 EST
Now that rpm-4.4.4 supports "ustar" payloads, this is not the right check to do.

The better implementation is to add a "rpmlib(PayloadIsDeltaRpm)" (or equivalent) tracking
dependency when building delta rpm headers, and then failing in rpmtsCheck() if the
version of rpmlib does not supprt the necessary functionality.

That's perfect for binary rpm's, but source rpm installs (are there delta rpm payloads
in source rpm's?) would still need additional handling because rpmtsCheck() (and
the install paths) are different.

I'm perfectly okay living without the check for srpm's because non-cpio payloads for
srpm's is plain and simply a bad idea.

WONTFIX in the sense that the included patch is the wrong check, but I'm perfectly happy
with a rpmlib(...) tracking dependency for delat rpm's underneath a #ifdef in rpm sources some day.

Note You need to log in before you can comment on or make changes to this bug.