Monday, 18 April 2016

Re: Changes to build-dependency handling in Ubuntu xenial beyond

On Mon, Apr 18, 2016 at 02:44:06PM -0400, Thomas Ward wrote:
> > On Mon, Apr 18, 2016 at 02:00:43PM -0400, Thomas Ward wrote:
> >> On 04/08/2016 12:39 PM, Steve Langasek wrote:
> >>> Thanks to some stellar work by Dimitri Ledkov and Colin Watson, and as
> >>> discussed on ubuntu-devel over the past couple of months[1,2], a change has
> >>> been landed to Launchpad and the archive reports[3] to allow packages in
> >>> main to build-depend on universe (and packages in restricted to build-depend
> >>> on either universe or multiverse).
> >>> What this means for you:
> >>> - If you are building packages locally, you will want to update your build
> >>> environments for xenial and beyond to include universe in the apt
> >>> sources, to mirror Launchpad's behavior.
> >>>
> >>> - If you are updating a package that carries a delta to its
> >>> build-dependencies, you will want to check if this delta can now be
> >>> dropped. If readding the build-dependency results in a new runtime
> >>> dependency, the package will be blocked by proposed-migration in
> >>> -proposed until component mismatches are resolved; you will then need
> >>> to either re-add the delta, or follow the MIR process[4].
> >>>
> >> I think I need some clarification on this point. The way I interpret
> >> this is as follows:
> >>
> >> 1. We are able to build-depend packages in Main on Universe, such that
> >> any Universe compile-time dependencies are no longer needed to be
> >> dropped for a package to be in Main. But...
> >>
> >> 2. If such build-dependencies then introduce new dependencies on the
> >> built binaries, the runtime-dependency packages of which are
> >> necessary in the built binaries must be in Main.
> >>
> >> Is this an accurate interpretation of the points made in your email, or
> >> am I misreading what you are stating?
> > You've got it exactly.

> There's one follow-up here: does this apply for all binaries produced by
> the source package (regardless of Main/Universe), or does this apply for
> only produced binaries which land in Main? (Thanks to Robie for making
> a clarification point in private messages on IRC) There's a case where
> this applies - nginx - with regards to nginx-core being a binary
> produced in Main, but the other binaries (such as nginx-extras) being in
> Universe, with a Wishlist bug asking for us to drop one of the
> Main-inclusion deltas (which would only affect nginx-extras).

Main is seeded binary packages, the depends and recommends of those packages
(recursively), and the sources from which each of those binary packages are

So adding a new build-dependency to a source package, which leads to a new
binary dependency on a package in universe, will not impact main regardless
of whether that source package builds other binary packages that are in

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