[oe] Staging - time to end the current mess?

Koen Kooi k.kooi at student.utwente.nl
Mon Nov 2 14:29:49 UTC 2009


On 02-11-09 14:43, Richard Purdie wrote:
> At OEDEM two years ago I proposed radically altering the way staging
> worked. For those that don't remember the bad old days, the staging
> directory layout didn't match that of the target file system meaning
> every recipe needed a custom do_stage and things were a mess.
>
> We changed the layout allowing the use of the gcc/binutils sysroot
> options and also started widespread use of autotools_stage_all and I'd
> say things look much improved compared to how they were.
>
> Anyone who has looked at the packaged-staging code will probably agree
> there is still a way to go though - its horrendously complicated. We
> also do a lot of duplication. I'd like to propose a new simple way of
> doing things. We'd have the following work flow:
>
>
> [...]
> do_compile - up to here all as usual
> do_install - Everything installs into a DESTDIR (including -native)
> do_package - Takes a copy of the DESTDIR, applies any .la/.pc mangling
>               then splits into packages as usual
> do_populate_staging - Takes a copy of the DESTDIR, mangles, installs
>               into staging and creates staging packages from this
>
> Firstly, does any disagree with this approach or can we all agree its a
> nice objective?

Can we make the mangling a seperate tasks? I tend to do the mangling in 
do_compile_append to be able to do builds *on* the target as well.

> Pros:
>
> * Only one "make install"
> * We can start to work out the differences between do_install and
>    do_stage and minimise them (there should be none bar .la mangling)
> * Cleaner and simpler do_stage step
> * Packaged-Staging becomes much simpler
> * Builds should be faster as staging timestamp snapshots are not
>    required and staging lock taking should be minimal.
>
> Cons:
>
> * Very different to what we have now - how to get there?
> * Likely to be some breakage in any transition

And

* 'make install' doesn't actually work properly for lots of packages 
(you know, the ones with handcrafted makefiles)

But we can solve that by putting the custom do_stage() methods for those 
in do_install(), right?


> I really like the idea in principle, in practise its hard to get there
> incrementally without breaking things. I'm trying to come up with some
> code which does that and I'm hoping to have something for OEDEM.
>
> For now I'd like to ask if there is agreement we need to do this and
> support to make this happen?

You have my agreement.

regards,

Koen





More information about the Openembedded-devel mailing list