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

Re: Bootstrappable Debian - a decision is needed, patches exist

Hi Johannes,

On Tue, Oct 15, 2013 at 08:34:00AM +0200, Johannes Schauer wrote:
> Quoting YunQiang Su (2013-10-15 08:08:52)
> > On Tue, Oct 15, 2013 at 2:03 PM, Johannes Schauer <j.schauer@email.de> wrote:
> > > What is yet to be decided is the concrete format for the Build-Depends
> > > syntax extension. The first proposals suggested a syntax which looked like
> > >
> > >     Build-Depends: foo [amd64] <!stage1>
> > I'd prefer Build-Depends-Stage1 if possible.
> > When bootstrap, dpkg only ask for these build-depends while for normal build,
> > dpkg should merge Build-Depends-Stage1 and Build-Depends.

> this approach does not work because it does not allow to specify additional
> dependencies for when a source package is compiled with a certain profile
> activated.

> The Build-Depends-Stage1 field name was used in earlier proposals with a
> different meaning. Instead of making the final build dependencies the union of
> Build-Depends and Build-Depends-Stage1 as you proposed, Build-Depends-Stage1
> contained all dependencies necessary for the build profile "stage1". When doing
> a normal build, only the Build-Depends would be used. When building with the
> build profile "stage1" activated only the Build-Depends-Stage1 would be used.
> This solves the problem I explained above which your solution has.

> This Build-Depends-Stage1 format was abolished in favor of the syntax
> additions explained in my last email because of the following reasons:

>  - it requires variable field names to match all possible profiles
>  - it requires a near duplication of the Build-Depends field which is highly
>    prone to bitrot
>  - it does not work with multiple profiles activated at the same time

> For a full history of the development of this see

> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=661538

My recollection is that the "abolishing" of the Build-Depends-Stage1 field
was done by the same dpkg maintainer who you say is now not giving you
feedback.  It's elegant that a general-purpose syntax has been proposed, but
elegance isn't worth anything if it doesn't result in shipping code.

Being able to automatically bootstrap the Debian archive is self-evidently
useful to the project.  The other uses proposed for profiles are all corner
cases that should be kept far, far away from the archive.  I don't think the
implementation of automated bootstrapping should be allowed to block on such
pie-in-the-sky plans for profiles.

My understanding is that all build-dependency loops in the archive can be
broken with a single additional stage (stage1), so only one added profile
and one added build-dependency field would be required.  Yes, it could
bitrot, but it's better than not having any of the data in the source
packages at all.  And if someone really finds this inelegant and insists
that we should extend the syntax of the Build-Depends field, let them step
up and make that happen instead of pointing at grandiose plans they're not
making any effort to implement.  A Build-Depends-Stage1 field requires no
support from dpkg in the archive to implement.

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

Attachment: signature.asc
Description: Digital signature

Reply to: