RPM Community Forums

Mailing List Message of <rpm-devel>

Missing essential build requirement information in binary RPM

From: Ralf S. Engelschall <rse+rpm-devel@rpm5.org>
Date: Wed 26 Dec 2007 - 00:22:43 CET
Message-ID: <20071225232243.GA20365@engelschall.com>
We today checked our old "RPM wishlist" against the current RPM 5 HEAD
status quo. Really good, mostly all of our long-standing wishes are now
satisfyable. But one particular wish is still unsatisfied, but it would
be very important for us:

   The "BuildRequire" tag is not passed-through
   to the binary RPM and the RPM database at all!

What we need in more detail is support for the following typical scenario:

1. foo.spec file contains:
   | BuildRequire: foo, bar
   | %if "%{with_quux}" == "yes"
   | BuildRequire: quux
   | %endif

2. creating a binary RPM foo-*.rpm:
   $ rpm --define "with_quux yes" -bb foo.spec

3. query effective(!) build requirements from RPM package:
   $ rpm -qp --qf '[%{BUILDREQUIRENAME}\n]' foo-*.rpm
   | foo
   | bar
   | quux

4. install binary RPM foo-*.rpm:
   $ rpm -Uvh foo-*.rpm

5. query effective(!) build requirements from RPM database:
   $ rpm -q --qf '[%{BUILDREQUIRENAME}\n]' foo
   | foo
   | bar
   | quux

The availability to query the build-time requirements from binary RPMs
and the RPM database (for installed packages) is essential for RPM
frontends to trigger correct package rebuilds. As an example: if the API
of library "quux" was changed, then application "foo" has to potentially
be rebuilded/reinstalled. This is currently only possible through
external meta-information and then only with the restriction that this
external information is (no longer) 100% in sync with the installed
package status.

So, can we please store this already internally available BuildRequire
information from the -bb step into the binary RPM? This is IMHO one
really essential but still missing feature in RPM 5...

                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com
Received on Wed Dec 26 00:23:25 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.