Openmoko build infrastructure questions
zecke at openmoko.org
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