Monday 18 April 2016

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

This sounds a lot like boost & boist-mpi-sources which used to be two copies of boost one with main and the other with universe build dependencies, producing packages for main/universe respectively. These are now merged into a single source package and simply universe portions are compiled into separate package which is published to universe. This will be a case for many large key packages which produce optional plugins & language bindings with universe dependencies.

On 18 Apr 2016 7:44 p.m., "Thomas Ward" <teward@ubuntu.com> wrote:
Steve,
On 04/18/2016 02:10 PM, Steve Langasek wrote:
> Hi Thomas,
>
> 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).


Thomas



--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel