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
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to