[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]

On Mon, Feb 09, 2009 at 09:30:48AM +0100, Fabian Greffrath wrote:
> Dear -devel,

> I'd like to suggest the introduction of two new control fields to the
> source stanza of debian/control, namely Build-Recommends and
> Build-Suggests.

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

> A famous example for this would be libasound2-dev, which is only
> available for Linux kernels. Currently a build-depends on this package
> has to look like this

> 	libasound2-dev [!hurd-i386 !kfreebsd-amd64 !kfreebsd-i386]

That is the correct relationship to express.  "Ensure libasound2-dev is used
on all architectures except for these others" is *not* the same thing as
"install libasound2-dev if you can find it".

> Why have I added libfaad-dev to the Build-Recommends? Because in
> Ubuntu ffmpeg-debian is in the main section, while faad2 is not. So in
> order to merge ffmpeg-debian to Ubuntu, the maintainer has to manually
> remove this Build-Depends each and every time. As soon as Ubuntu
> would support the suggested approach, this would be obsolete.

That doesn't sound like a "merge" to me.  A real merge, using tools such as
Merge-o-Matic (http://merges.ubuntu.com) or a a VCS of choice, shouldn't
require that any work be redone for this build-dependency difference.

Trying to avoid deltas between Debian and Ubuntu by changing the semantics
of build dependencies is a false optimization.  It's not a win to save time
on merges if it means unreliable build semantics in return.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Reply to: