%bcond macros in Fedora spec files
John T. Guthrie
guthrie at counterexample.org
Sun Mar 11 04:50:08 UTC 2007
Hello all,
I was wondering if there were any guidelines about the use of %bcond_*
macros in Fedora spec files? I checked the wiki, and there are three
pages that contain the string bcond in their text, but those are only in
passing.
Of course, the %bcond_* macros can give people flexibility in the
features of the package should they need to use the src.rpm. (For
example, needing to back-port a package to FC-4, say.) However, fwiw,
my general observation of Fedora has been a tendency to include as many
features as possible in packages. (Some people will probably think that
this is a bad thing. Personally, I like this trend in general. But
that's a discussion for an entirely different thread...) The main
reason that I could see these macros being used in Fedora would be to
allow people to exclude a feature that they weren't able to build with.
For example, in some distant future, a package gets released for FC-8,
and someone wants to backport that package to their FC-4 machine.
However, the FC-8 package requires some devel packages that aren't
available for FC-4. A %bcond_* macro would let that person just drop
that feature from that package that they built using --without flags
instead of going in, editing the spec file, and re-creating a new
package. In this sense, %bcond_* macros could be a type of courtesy for
legacy systems.
On the other hand, however, the %bcond_* macros do lead to a certain
lack of reproduceability in RPM builds. Of course, the exact command
"rpmbuild --rebuild blah.src.rpm" will always produce the same package,
even with %bcond_* macros. However, the general set of rebuild commands
for blah.src.rpm would now include "rpmbuild --rebuild blah.src.rpm" and
"rpmbuild --rebuild --with foo blah.src.rpm" which would probably *not*
be the same package. So that we could conceivably end up having to ask
people who have problems with such a package, "Did you build with the
flag '--with foo'?"
So is there some kind of policy (or more appropriately a guideline)
regarding this kind of macro in spec files? Should even be there be
such a guideline or not? (That is, do we even care?)
--
John Guthrie
guthrie at counterexample.org
More information about the Fedora-maintainers
mailing list