[oe] RFC: Staging layout and pkgconfig sysroot support

Richard Purdie rpurdie at rpsys.net
Tue Sep 18 08:17:38 UTC 2007


On Mon, 2007-09-17 at 18:41 -0700, mark gross wrote:
> On Mon, Sep 17, 2007 at 12:25:56AM +0100, Richard Purdie wrote:
> > The sed code in pkgconfig.bbclass has always struck me as ugly. In an
> > ideal world we shouldn't have to rewrite the contents of the pkgconfig
> > files to make them work with OE.
> > 
> > Packages like dbus and eds are starting to add paths to runtime module
> > and state directories into the pkgconfig files and OE's current approach
> > totally breaks these.
> 
> Then shouldn't we beet on the dbus guys to not break things?

I don't think the dbus guys are doing anything wrong and this is an
entirely an artifact of our own design choices. The problem is that
dbus-1.pc contains:

session_bus_services_dir=/media/data1/builds/poky/eabi/tmp/staging/arm-poky-linux-gnueabi/share/dbus-1/services

and evolution-data-server.pc has things like:

libdir=/media/data1/builds/poky/eabi/tmp/staging/arm-poky-linux-gnueabi/lib
extensiondir=${libdir}/evolution-data-server-1.2/extensions

The above was created by our sed "magic" in pkgconfig.bbclass. EDS
modules then use this to decide where to install its plugins which
results in broken packages. The dbus entry is just asking for trouble
too.

You could argue our sed magic is wrong and just needs improving. What do
you make it do in the eds case though? First replace all ${libdir} with
an expanded version, then change libdir?

The best alternative idea I've seen is to hack pkgconfig to make the sed
expansions at runtime for the -L and -I options pkgconfig returns. You
have to admit its a pretty ugly solution though. 

The sysroot patch is simpler and has a good chance of being accepted
upstream and solves the problem once and for all.

I have really mixed feelings and can see the arguments both ways
really...

Cheers,

Richard






More information about the Openembedded-devel mailing list