[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Proposal of two new control fields: Build-Recommends and Build-Suggests [long reading]

Hi Fabian!

Am Dienstag, den 10.02.2009, 13:25 +0100 schrieb Fabian Greffrath:
> Steve Langasek schrieb:
> > This is a very bad idea.  It interferes with reproducibility of binary
> > builds, which is a very important property of Debian packages.  Packages
> > must *not* build differently based on opportunistic discovery of
> > build-dependencies on the system - it's a bug for any package to do so, let
> > alone to be specifically encouraging this behavior with debian/control
> > fields!
> Alright, this speaks clearly against Build-Recommends. However, would 
> you consider at least Build-Suggests useful enough to support them?

If I got your proposal right, your use-case for Build-Suggests is that
the package builds using additionally installed (development) packages,
if they are already installed.

A different method to achieve the same goal is to add a new option to
DEB_BUILD_OPTIONS, in your case "nonfree-codecs" or something alike. You
can check if it is set in debian/rules and change the build process
accordingly to make use of the additional development packages. It has
the drawback that you need to rely on the packages being installed
already, so you may need to document it in README.Debian (or somewhere
more appropriate) along with the option to pass in DEB_BUILD_OPTIONS but
that's the same situation with your suggested Build-Suggests. (And as
Neil pointed out, debian/rules should always behave in an "off" mode,
meaning that the option only has an effect if it is set explicitely.)

So all one needs to do to get the package with the non-free parts is to
install the non-free -dev packages and do regular rebuild with
DEB_BUILD_OPTIONS="nonfree-codes". That's easy enough, I think, and you
do not need to modify the existing tools at all.

Best regards

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply to: