[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