Bug#497316: general: Building entire system from source
On Sun, 2008-08-31 at 21:24 +0100, Mark Hobley wrote:
> Package: general
> Severity: wishlist
> It would be nice to have the option of using a binary or source based
> distribution built from Debian sources.
Bearing in mind your previous bug report, I really think you should be
looking at Emdebian and asking these questions on the debian-embedded
mailing list - we're doing all this stuff. You will have to do 90% of
the work yourself but that's inevitable (see below). At least Emdebian
can provide the tools and infrastructure to get the job done - mainly
because we are doing it ourselves.
> Ideally, a live CD, could be used to build the entire base system from source
> by simply specifying the source repository to be used.
Umm, just how are you going to fit the system and the source on a CD?
You might with an Emdebian system that has a GUI in 75Mb but probably
not a full Debian install + source. I don't know how big the source
would be for the current Emdebian GUI but my current Emdebian build tree
has only 240 source packages and takes up 9.2Gb for a single
architecture. (Yes, that is a build tree as opposed to a directory
containing compressed source packages but it does give an indication of
the possible scale.) That doesn't even count the build-dependencies that
are installed. Yes, it really can take 9.2Gb to create a binary distro
of 75Mb. That is most definitely not a typo. GlibC, GCC, Xorg, they are
all v.big source packages.
With the full build environment and sources and various other
components, I think you could create a CD but note that this is *you*
creating it. I cannot see that Debian would provide such a CD for you -
at least not until Emdebian has done a whole lot more work on the Debian
infrastructure. Customisation includes bespoke patches and full control
over package selection (including dropping perl and Essential) but you
will have to do 90% of the work yourself. The tools exist, feel free to
use them - just do ask your questions on
email@example.com instead of filing general bugs (which
all get CC'd to debian-devel and which can end up annoying people when
you start asking for stuff that is just "out-there" when it comes to how
Debian normally works - especially this close to a release). If you want
to change Debian to work with small systems and embedded systems,
debian-embedded is the place to be - not bugs.debian.org and not
debian-devel (at least until Lenny is released).
FYI the problems with what you require come in several stages:
1. Package selection - how much are you building? For embedded stuff,
you want very tight control over this.
2. Build sequencing - which ones do you build first? Entirely determined
by your choices under Q1 but plotting your path through the dependencies
such that the build-dependencies of foo are available when you need to
build foo to build bar - without finding that bar build-depends on baz
which you haven't built yet, and so on.
3. You cannot decide on what sources to put on the media until you have
solved Q1 and Q2. You cannot know if they will fit until you've answered
Now there are tools that can help with this process (mancoosi are
working on things like that and others already exist) but there is no
one-size-fits-all solution, especially for embedded stuff. Then you run
into problem 4:
4. Once you've done it, you don't need to work out how to do it again so
the optimisation never happens and each process is just as much work as
the last. Packages change, build-depends change, by the time you've done
one, the whole path can be radically different.
Yes, I have done Q1, Q2, Q3 and Q4 for Emdebian ARM. It took the best
part of a year.
> The system could then be configured to allow source builds of all
> additional packages.
Already done - and if you use the existing Emdebian support, the
distribution can be entirely cross-built from source too. You just need
to do the work yourself.
P.S. I would reassign this bug but I'm waiting for the pseudo-package
for Emdebian that would perfectly suit this bug report. (hint!)
(I know everyone at ftpmaster is out-of-their-minds-busy right now but
it would take this traffic off -devel if the pseudo-package was
available . . . )