Red Hat Bugzilla – Bug 132633
redhat-rpm-config should require elfutils
Last modified: 2007-11-30 17:10:49 EST
Description of problem:
When redhat-rpm-config is installed, creation of debuginfo packages is
automatically enabled, but this only works as expected if eu-strip is
available, but it isn't always since it's in the elfutils package
which isn't currently required, nor by rpm-build (see bug #111363
WONTFIX) nor redhat-rpm-config, but I think it should.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install a minimal Fedora Core system
2. Install rpm-build, redhat-rpm-config and their dependencies
3. Rebuild a package
The resulting package doesn't get all its libraries stripped properly
and symbols moved to the debuginfo package.
The package should contains stripped files with symbols moved to the
AFAICT, and having seen Jeff Johnson's answer to bug #111363 the
correct solution seems to either add "Requires: elfutils" or
"Requires: /usr/bin/eu-strip" to this package.
Although elfutils is needed in order to use the debuginfo feature, it
isn't required for basic use of redhat-rpm-config, so it doesn't make
sense to add a requirement. I _am_ adding elfutils to comps so that it
installs along with redhat-rpm-config by default. That should have the
same result for users.
Unfortunately, this won't fix the problem for people like me who build
packages in minimal chroots and not actual installed systems. IMHO,
eu-strip is _required_ in order to get the proper redhat-rpm-config
behavior, thus should be a _requirement_ of redhat-rpm-config even
though this isn't a typical shared library or mandatory executable
Otherwise, why is eu-strip used instead of the regular strip in the
debuginfo woodoo macros? Maybe changing that would be another option,
although I doubt eu-strip wasn't explicitely used for a good
reason.... but who knows (not me!).
Matthias: This is exactly a case of what works for Red Hat
per-venodr config won't possibly work for everyone. IMHO,
you should use redhat-rpm-config as template to create
(and encapsulate) your own build configuration.
Per-vendor config has exsisted for quite some time now, and
it's nearly impossible to pretend that "One config for all."
makes any sense any more.
And eu-strip is used rather than strip from binutils because
there is some deep ELF voo-doo that eu-strip gets right, but
binutils strip does not. That was an issue on a RHL 9 time frame,
perhaps has changed, noone has looked.
Adding a Requires: elfutils serves little purpose (imho) because
the underlying need, sufficiently correct behavior from strip
to build packages reproducibly, is essentially and intrinsically
an attribute of the toolchain itself, not of packages that happen
to contain scripts that invoke elements of a tool chain that
needs to be considered and chosen carefully by the build master.