On Dec 27, 2007, at 8:13 AM, Jeff Johnson wrote:
>
> That hack starts in build/reqprov.c adding the "build(...)" name
> space wrapper,
> and continues in rpmdsNew(), where all build(...) dependencies need
> to be dropped
> when loading a dependency set.
>
> There's another hack needed in rpmdbAdd() and rpmdbRemove() to skip
> indexing build(...) requires dependencies.
>
Actually it will be easier to just filter "build(...)" dependencies,
either
in rpmdsNext() or at a higher level in rpmtsCheck() and rpmtsOrder(),
than to drop "build(...)" build dependencies in rpmdsNew().
There's a filtering need in --query too, but that is largely cosmetic
display fiddling rather than essential dependency mechanism that
can be fluffed if necessary.
> Assuming there is a path forward (there are many -- including me --
> that
> make a sharp distinction between build <-> install dependencies who
> believe that adding BuildRequires: to binary packages is bad
> craziness),
> the name space "build(...)" will evolve into Yet Another arbitrary
> attribute
> called "build" that will be used more generally to direct
> dependency graph
> traversals.
>
> The dependency flags could be used as an explicit context marker for
> build dependencies, but %track (or %sanitycheck I fergit) used the
> last
> available bit. While the bits can be garbage collected, and
> implemented
> differently using an enum instead of bit flipping, there's likely
> too little time to Get It Right.
>
> Sound like a plan?
>
The other part of the original request was to also tie the build
dependencies
to --with foo and --without bar.
A few years back I was given 10 days (before rpm&distro release) to
implement
arch sensitive build dependencies. That means that different build
dependencies
were seen on different arches. Your --with/--without request is just
a different context
to test before exposing/hiding certain dependencies.
I ripped the implementation mostly because noone was using (even though
the original RFE was "Absoulutely MUSTHAVE this feature or the PNAELV
stock price will suffer!" go figger), but the idea of exposing/hiding
dependencies
based on a filtering name space was perfectly sound. IIRC, the
filtering syntax
looked like
BuildRequires: archfilter(N:!i386:ppc*)
Check rpmdsNew() in rpm-4.4.2 for the implementation. The tricky part
will be establishing reliable --with/--without foo conetx with macros or
with /etc/rpm/sysinfo/Stuff
73 de Jeff
> 73 de Jeff
> ______________________________________________________________________
> RPM Package Manager http://rpm5.org
> Developer Communication List rpm-devel@rpm5.org
Received on Thu Dec 27 14:33:39 2007