Re: Embedded Debian, the 5 lb bag.
On Sun Feb 01, 2004 at 06:46:57AM -0800, Dan Kegel wrote:
> Erik Andersen wrote:
> >>Stage 1: ptxdist or something similar to put together enough tools to
> >>support building stage 2
> >>Stage 2: "core" set of Debian packages is built and installed,
> >>definitely less than 100 components, some packages might be built with a
> >>reduced feature set to limit dependencies
> >>Stage 3: build the remainder of the "buildable from scratch" packages
> >>(500 - 1000) and rebuild the modified packages from stage 2.
> >This is almost exactly how I put together my uwoody stuff with
> >uClibc. For stage 1 I used buildroot. For stage 2 I hacked up a
> >_ton_ of packages to break circular dependancies until I had
> >built a sufficient core of stuff that the system became usable.
> >I built everything by hand so stage 2 was very labor intensive.
> >By stage 3 I was able to rebuild almost everything (including the
> >packages I had formerly hacked) using stock debian source.
> >Fully agreed. The single most difficult task I had during stage
> >2 was trying to satisfy the dependancies of and build roughly 100
> >different documentation utility packages. This proved to be a
> >surprisingly large amount of work.
> I bet. (I suspect you mentioned this before, but where can we
> get a look at your stage 1 hacks? I just now peeked at
> but didn't see doc or build scripts describing the hacks
> you had to do.)
Sadly, since getting the thing bootstrapped initially was such an
ad-hoc mess, I did not even try to script it or automate it.
I did it all by hand, as there was no easy way to automate it.
Basically, I first built and install dpkg. Then I rebuilt and
everything I had built with buildroot for stage 1, and installed
then as .debs. I then build and installed apt and its
dependancies. Using apt, I then proceeded to build every 'base'
and 'required' package listed in /usr/lib/debootstrap/scripts/woody
using 'apt-get source <foo>'.
The current set of .deb files I built are those that were needed
to build the 'base' and 'required' packages, plus a few
additional ones I built to make the system more usable.
Initially I had to hack up most packages, disabling documentation
and such. After getting several hundred packages built and
installed, things began to be much easier... Along the way, I
was also finding a fixing some uClibc problems, as well as some
problems upstream. So the whole process took me a couple of
One I had the uClibc and package problems fixed up, had the
needed custom packages built, and had uClibc system built, I then
rebuilt most everything using stock debian sources, since the
circular dependancy problems had been solved. I attempted to
setup an autobuilder for this, but wasn't able to make
wanna-build and friends work. So I sortof scripted that using
something roughly like
for i in $LIST ; do dpkg-buildpackage $i > ~/logfile.txt 2>&1 ; done
and then going back by hand to fixup the ones that had problems,
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--