[OE-core] [PATCH] pixbufcache: Ensure that jpeg-native is available for postinst if necessary

Mike Crowe mac at mcrowe.com
Tue Jun 23 18:46:27 UTC 2015


On Tuesday 23 June 2015 at 16:20:51 +0100, Richard Purdie wrote:
> On Tue, 2015-06-23 at 16:12 +0100, Phil Blundell wrote:
> > On Sat, 2015-06-13 at 19:44 +0100, Mike Crowe wrote:
> > > diff --git a/meta/classes/pixbufcache.bbclass b/meta/classes/pixbufcache.bbclass
> > > index 9e6ecc8..755a654 100644
> > > --- a/meta/classes/pixbufcache.bbclass
> > > +++ b/meta/classes/pixbufcache.bbclass
> > > @@ -72,6 +72,7 @@ PIXBUFCACHE_SYSROOT_DEPS_class-native = "\
> > >      glib-2.0-native:do_populate_sysroot_setscene libffi-native:do_populate_sysroot_setscene \
> > >      libpng-native:do_populate_sysroot_setscene zlib-native:do_populate_sysroot_setscene \
> > >      harfbuzz-native:do_populate_sysroot_setscene \
> > > +    ${@bb.utils.contains('PACKAGECONFIG', 'jpeg', 'jpeg-native:do_populate_sysroot_setscene', '', d)} \
> > 
> > I'm not sure this is quite right.  PACKAGECONFIG at the point this is
> > expanded will be the PACKAGECONFIG for whatever recipe is currently
> > inheriting pixbufcache.bbclass, whereas I think what you really need
> > here is the PACKAGECONFIG that gdk-pixbuf itself was built with.  Or,
> > er, something.
> 
> Right, its not that simple. As it happens I was just looking at this
> patch:
> 
> http://git.yoctoproject.org/cgit.cgi/poky-contrib/commit/?h=rpurdie/t222&id=32afecae2495b0486a044b66154573caf39144c7
> 
> which I proposed a while ago which does solve this problem, with some
> ugliness in base.bbclass. I know Ross doesn't like it, neither do I, I
> do prefer it to the pretty horrible things PIXBUFCACHE_SYSROOT_DEPS does
> though.

Based on my (probably incomplete) understanding of the problem and your
solution:

The setscene tasks for libpng-native, jpeg-native etc. will all be run
automatically as setscene tasks. The problem is that they might not run
before pixbufcache_sstate_postinst does.

The existing hack, which I extended inexpertly, ensured that the setscene
tasks run in the right order so that libpng-native, jpeg-native etc. are
definitely present in the sysroot prior to pixbufcache_sstate_postinst
running.

Would it be possible to make your change less "ugly" by making it more
generic. For example, adding a companion to SSTATEPOSTINSTFUNCS named
SSTATELATEPOSTINSTFUNCS that runs at the sceneQueueComplete event?

Alternatively, I'm afraid that I don't understand why pixbufcache.bbclass
can't have its own event handler which would at least keep the ugliness in
a single file.

Having said all that, I'm slightly worried about what would happen if
gdk-pixbuf-native were to be resurrected from sstate but jpeg-native could
not be (e.g. perhaps the file has gone missing.) The end of setscene would
still be too early to run the postinst in that case. I've not experimented
to see if this can really happen though.

I'm prepared to have a go at trying to fix this in an acceptable way but
I'm not really sure how to go about it. :(

Thanks.

Mike.



More information about the Openembedded-core mailing list