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

Richard Purdie rpurdie at rpsys.net
Mon Nov 2 13:43:27 UTC 2009


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?

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

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?

Cheers,

Richard







More information about the Openembedded-devel mailing list