[Base] Proposal for buildrequires cleanup janitorial initiative
Richard W.M. Jones
rjones at redhat.com
Sun Dec 15 22:12:09 UTC 2013
On Sun, Dec 15, 2013 at 09:48:40PM +0000, Ben Boeckel wrote:
> On Sun, 15 Dec, 2013 at 10:55:41 GMT, Richard W.M. Jones wrote:
> > auto-buildrequires (http://people.redhat.com/~rjones/auto-buildrequires/)
> > uses an LD_PRELOAD hack to find out what BuildRequires are packages
> > are actually touched during the build. Therefore it does not suffer
> > from this problem.
[..]
auto-buildrequires doesn't adjust or even look at the declared
BuildRequires of a package.
All it does is examine every file that is accessed during a build and
map those back to packages, thus suggesting a list of BuildRequires
that could be used.
It tends to over-suggest packages for various reasons, and that is
partially worked around by some simple heuristics. For example
autoconf-generated ./configure scripts open every file present under
/etc/ld.so.conf.d/ thus creating a false impression that programs
BuildRequire everything that places a file in that directory -- we use
a heuristic to suppress this.
> Given A needing B which uses C's headers (but never included directly),
> will C-devel be added as a BR to A?
In this case, assuming you mean that C's headers are read by the
compiler when compiling A, then, yes, C-devel would be printed as a
BuildRequires.
> IMO, that would be a mistake (and a bug in A if it is depending on B
> to bring in C's headers).
TBH I don't think that's necessarily a bug. As long as B-devel
Requires C-devel, and if A isn't directly including headers from
C-devel, it seems fine for A not to BuildRequire C-devel.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top
More information about the devel
mailing list