BuildRequires on python-abi

Peter Jones pjones at redhat.com
Tue Apr 5 19:23:40 UTC 2005


On Tue, 2005-04-05 at 09:35 +0100, Joe Orton wrote:
> On Tue, Apr 05, 2005 at 04:22:35AM -0400, Ignacio Vazquez-Abrams wrote:
> > On Tue, 2005-04-05 at 09:11 +0100, Joe Orton wrote:
> > > I expect this was just a braino on someone's part, it should have been
> > > Requires not BuildRequires;
> > 
> > No, it was deliberate. It's there for the purpose of allowing the
> > package to be built for versions of python other than the primary one,
> > e.g., python-2.4 under FC3. It most likely won't get much use, but who's
> > to say a similar problem won't show up in the future?
> 
> I don't see how this makes any sense; the dependency on a particular
> python ABI is a property of a *binary* package, not a source package. If
> you have a package which only builds with python >= 2.4 (is that what
> you're saying?), surely it should just BR: python >= 2.4 or similar?

The purpose of BuildReq's isn't to say "this won't build on an earlier
system than the one I built on".

BuildRequires are there to help maintain the expectation of a repeatable
build.  That's the point.  If the build fails or succeeds, the point is
still that the if you repeat it, you'll get the same result.
BuildRequires are there to help you repeat the same thing.

If we're making requirements by looking around in the build environment,
they need to specify that the requirement guarantees the *same* build
environment.

The right way to use them isn't to express "I know $FOO-1.0 won't build
with an older version of $BAR than 1.1" -- though that can be useful in
a pinch, it's really a bit of a kludge.  The right expression is
"$FOO-1.0 is to be built with $BAR-1.1".  This allows an NVREA to have a
meaning to depsolvers and such, so they don't have to reread a package
every time -- they can cache metadata instead.

We certainly shouldn't be encouraging people to rebuild a .src.rpm with
a newer rpm or buildroot -- those result in different deps in the
resulting packages, which means at the very least RELEASE should be
changed.

If we're going to have buildreq's such as this, they should be "=", not
">=".  And if it's only "=", then it's completely pointless, unless it's
a dep rpm won't already add to the .src.rpm.

So we're just as well off without the line, IMHO.
-- 
        Peter




More information about the Fedora-maintainers mailing list