Re: Embedded Debian, the 5 lb bag.
ext Dan Kegel wrote:
Seems like that ought to be cleaned up sometime, doesn't it?
Yes, I believe Erik Andersen has some insight into this since he's built
a substantial part of debian using uclibc not too long ago. I think he
used the uclibc buildroot to jump-start the process.
I can't help but think that ptxdist might come in handy here
somehow, if for nothing else, than to build a "phase 1"
target environment that satisfied enough dependencies
so that the real packages could all be built.
Definitely "something" is needed to get the build going, what exactly
that would be needs to be defined. Preferably it should be as small and
simple as possible to reduce maintenance.
I think Gentoo and Linux From Scratch might provide some inspiration
here, they have a couple of stages to get the system up to speed.
Debian has the additional "burden" of packages generating their
documentation at the same time as their binaries. This totally blows the
build dependencies. I would therefore suggest that a small core set of
packages should be defined. Those packages would need to be modified so
that their documentation can be left out of the build, also some of them
might need to provide a "stage 2 package" which would be built without
the full set of features to reduce dependencies. Those packages would
then be re-built later when the full set of dependencies can be met.
In addition I think that it may well be impractical to attempt building
the entire 12000 or so packages of Debian this way. There are perhaps
too many circular dependencies and the need is simply not there. Maybe a
smaller set of 500 - 1000 packages could be declared as the "must be
buildable from scratch" set of packages.
This whole effort would be very beneficial for embedded development
since it would allow optimizing the whole distribution for a particular
processor. It would naturally help porting Debian to a new cpu-architecture.
I'm quite confident that if this could be done natively at first, I
could use scratchbox (cross-compiling) to jump start the build bypassing
at least stage 1.