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