Openmoko build / Rebuild vs -dev

Richard Purdie rpurdie at rpsys.net
Thu Apr 17 14:21:55 CEST 2008


On Thu, 2008-04-17 at 12:45 +0100, Andy Green wrote:
> Third, why is this rebuilding 1191 packages?  Why isn't it getting a
> merely sufficient set of -dev and lib packages and installing them on
> the host so I can build against them?  I only needed tslib, glibc or
> whatever.  I could install other -dev as I saw I needed them.

OE's default configuration is to build everything from scratch. Most
people continue to do this as its the oldest method, the one used by the
core distro maintainers and not everybody realises there are
alternatives.

Firstly, you can 'fool' OE into not doing things from scratch by dumping
a set of prebuilt packages into tmp/deploy/ipk and having OE use an
external toolchain like the one John Lee has provided from
meta-toolchain. This works today, its just a case of setting up the
right "external-toolchain.bb" with the right ASSUME_PROVIDED entries.

The above works today in Poky and would in OE/OM if one of the distro
maintainers would add the simple infrastructure for sharing the
toolchains + the extras file and setting up the external-toolchain .bb
files.

Secondly, beyond this simplistic approach, what you describe above is
basically something called "packaged staging". This has been a goal for
OE for years. Its actually quite hard to do in the totally generic case
which is why its been a long time coming.

Recently I've been paid to work on it and now, if you provide OE with a
directory of staging packages it will do what you describe above. The
one thing it doesn't do yet is have functionality to remotely fetch
them. It will gain this functionality as soon as I find some time to
work on it one way or another.

So there is a solution there which would work now with minimal effort.
There is also an even better solution coming.

There is also this external toolchain option although that doesn't
easily package the output like OE does. You mentioned opkg was missing,
poky actually ships a copy of it in its toolchain tarball along with a
special copy of pkgconfig (which is standard upstream, just more recent
than most desktops have) and qemu.

If you weren't too bothered about packaging the output you could just
install the tslib-dev package into the toolchain and then problem
solved. Even without opkg, this is just a case of:

cd /whereever/the/toolchain/rootfs/is/
ar -x tslib-dev.ipk
tar -xvzf data.tar.gz

if you want to do a quick hack.

Writing a script which packages everything into a single ipk to install
for development purposes should be trivial too, solving the packaging
problem. The ipkg-build script from ipkg-utils-native would be a good
starting point.

If you want to try the above,
http://www.angstrom-distribution.org/feeds/2007/ipk/glibc/armv4t/base/libts-dev_1.0-r17_armv4t.ipk
should be compatible your openmoko's rootfs and I'm sure John Lee can
point at a more official openmoko source.

My point is that OE isn't deficient as such, there are solutions there,
the OE devs are improving them and we mainly need to make them better
known about. Throwing a build system away and starting from scratch
seems wasteful when the problems are just ones of documentation and
communication which can be solved on short timescales if people focus on
them. 

Personally I will help where I can with the new technologies and any
problems people have trying to use or deploy them if I can. I've made
this offer before and I think all Openmoko's distro developers know
where I am and would talk to me if needed.

Cheers,

Richard




More information about the distro-devel mailing list