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

