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

Re: [Pkg-scala-maint] Binary blobs in source packages



+++ Steve Langasek [2011-12-13 10:45 -0800]:
> On Tue, Dec 13, 2011 at 07:29:23PM +0100, Mehdi Dogguy wrote:
> > > I think the traditional expectation here is that compilers will do
> > > their initial bootstrap using an out-of-archive binary, and that once
> > > in the archive, they'll be maintained using a self-build-depends
> > > instead.
> 
> > You mean having a circular build-dependency?
> 
> Yes.
> 
> > That isn't great :/
> 
> <shrug> It's how self-hosting compilers work.  That's how the gcc package
> works, too. :)

This question is part of the general subject of 'making debian
automatically bootstrapable'.

Lots of languages have this properly of being written in themselves.
However they do generally have some way of getting themselves
bootstrapped. 

Languages are generally a degenerate case of circular build-deps with
a very short loop (i.e just on themselves).

My prefered way to deal with the circular dependency is for at least
one package in a loop to have a 'bootstrap-build' supported in the
rules file which does not have a circular dependency (defined by
Build-Depends-Stage1 in control). So a tool which bootstraps debian
from scratch understands to build this 'not the real package'
bootstrap version first, then go on to build the full version once
dependencies are satisfied. The gcc packaging already implements
exactly this, although not using the exact machinery proposed in
http://wiki.debian.org/DebianBootstrap (That doc is out of date,
better info in my debconf talk
http://wookware.org/talks/bootstrappable-Debconf11.tar.gz )

For some packages this might mean that a $language-minimal package is
really needed to avoid the circular build-dep.

I anyone is aware of packages where it really isn't possible to do an
automatic bootstrap without a circular dependency (for the initial
bootstrap build), I would like to know about it. 

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


Reply to: