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
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/