Openmoko build infrastructure questions

Holger Freyther zecke at
Wed Apr 16 22:34:32 CEST 2008

On Wednesday 16 April 2008 21:15:00 Andy Green wrote:

Andy, I think it is time to pause this for a second to give you the time to 
catch up on what was written.

I think you are confused on:
	OE as a tool to build a distribution for a consumer device.


	OE as a tool to do development.

Regarding distribution tool:
	I think Richards point on maintaining a debian derived distro is quite 
strong. How would you customize packages, how would you maintain your 
customisation. It might lack of interest from Debian or Fedora people but 
Richard integrated Poky on the Android emulator within hours. I think OE as a 
tool is unbeatable to easily customize and maintain complete distributions. 
OE is a power tool for distribution builders, I wouldn't be able to do the 
work in the distro team without it. And you will only start to appreciate 
this fact when joining the distro team and having to build a distribution 
from scratch. OE is pretty raw, you have to add policy and form it (select 
image types, package format, versions... etc), but it is exactly what you 
want when building distributions. Am I biased? sure! Does it suck at times? 
yes, it does. And still I would not want to trade it with anything else for 
this job (and I'm open minded and interested in new stuff). So for this task 
it is anything but a stumbling block.

OE as a development tool:
	It is possible, it is not documented, no one at Openmoko sat down and made 
sure that it is working well, Poky shows it is possible. Using Gentoo, 
PC-BSD, Debian, Fedora does not change this. What is an ebuild? what is 
pkg-src? what is portinstall? what is dpkg, apt-get, aptitude, 
build-essentials? what is yum? The exact same questions will be asked and I 
doubt the documentation is any better than ours. You like SRPM because you 
have used them before and know them. You don't know opkg/ipkg, well yes this 
has to be changed (for you and everyone else), but it is not different to the 
rpm/portage/deb/tar.gz thing from any other PC distribution for devices with 
disk sizes from the early 90's. And in fact it is not different from your 
favorite PC Distribution, Openmoko decided to use opkg, Red Hat decided to 
use rpm, Debian decided to use dpkg....

What sort of contributions do we/you look for? Hardcore people maintaining our 
distribution? Random Joe porting an application? Random George to write a new 
application? Random July to fix an existing package?

The thing I hated about scratchbox is: It forced me to use a set of tools, 
they think are cool. But not having my .vimrc and mc is anything but cool! 
Don't force people, provide options. We as Openmoko have to consider what we 
want to provide/focus on. With OpenEmbedded you can provide source packages 
for the distro de-jour if you want to... what do we at Openmoko want?

For me it looks like:
	- I will use OE to build distributions.

	- We have to figure out what kind of contributions we want and how we enable 
these people. This includes people like you that just want to compile this 
application. We have the poky approach that could work on any LSB system, and 
maybe even on windows, OSX and other Unixes. As far as I know we have not 
invested any time into this and we have the mamona debian source package 
approach (which foces a set of tools). Or we could make OE emit whatever 
source package we want.

	- How to distribute the contributions. Having a special feed, upload for 
everyone? Or automatically compiling using OpenEmbedded (allows to do ABI 
upgrades, architecture changes... and keep using the apps, yes I have been 
through all of this in this century).

> WHY is what we are doing so DIFFERENT from what normal desktop distros
> set out to provide that we need "a powerful build system, but it's quite
> different so it can be hard to learn".

The only normal distro I know is slackware? Is that your understanding of 
normal as well? ;)

> | We still don't have a nice develop environment.  The way I see it
> | there are 2 ways:
> |
> | 1. we teach people how to develop with OE.
> We already established this is a big task.  Really, we are here to make
> cool phones.  I didn't see anything to make me believe that OE adds more
> than ONE thing towards that goal: working cross build.  Why should
> Openmoko become an OE University, it does nothing for us except try to
> make up for the massive block OE is making for casual contribution.

Is this your application to the distro team? My general position on this:
	- OE for the people that know about building distributions or want to learn 

	- The result of OE for people doing app development (raw toolchain, poky like 
sdk, debian or rpm source packages generated from OE...)

> | 2. we use another tool for development, like poky sdk.
> I didn't understand what this does for me yet, but I am encouraged by
> the step-by-step Marcin posted that it seems some auto dependency -dev
> grabber or something that mortals might be able to operate.

Packages with proper depends and a tool that can track dependencies. Nothing 
less, nothing more. ;)

> | 3. (toolchain is not an option because most of the time it's best
> |    suited to kernel/boot developers)
> |
> | I don't know which one is better and I haven't got the time to try it.
> | But *none* of them is related to a good build system.
> 4. We suddenly realize we're just making packages for a "PC", and we
> should use a normal distro with some solution for cross, and not learn
> and force everyone else to learn a big bunch of special case stuff.

There is no such thing as a normal distro. SUSE, Fedora, Debian, Slackware, 
Gentoo, ..., have all different approaches.

enough for today :)


More information about the distro-devel mailing list