diff options
author | Ross Burton <ross.burton@intel.com> | 2016-10-13 20:36:35 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-10-15 10:01:42 +0100 |
commit | 7c32a77cac3b83c6d80258c18fa2cbe56ba4825e (patch) | |
tree | c5f3608d90854d15ffcd4ed4b901f3afae860b65 | |
parent | 76b0c18a65c8f6f5e6aa61f9ee865847c2380820 (diff) | |
download | poky-7c32a77cac3b83c6d80258c18fa2cbe56ba4825e.tar.gz |
pixbufcache: handle gdk-pixbuf not being present
It's possible - albeit unlikely - that gdk-pixbuf isn't present in the sysroot
when a recipe inheriting this class is and the sysroot is finalised.
One example would be if the sstate archive has librsvg but not gdk-pixbuf:
librsvg will be extracted from the sstate but gdk-pixbuf will be built to "fill
in the gap". In this situation the setscene completion hook installed by
pixbufcache.bbclass will attempt to execute gdk-pixbuf-query-loaders, but that
binary hasn't been installed by gdk-pixbuf yet.
Also add gdk-pixbuf-native to DEPENDS in native builds to ensure that the
binaries we expect will be present, as it's possible to build loaders without
linking to GdkPixbuf.
[ YOCTO #10420 ]
(From OE-Core rev: 03cdb3366ded46cd760656e4cda0be37c1f82109)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/pixbufcache.bbclass | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/meta/classes/pixbufcache.bbclass b/meta/classes/pixbufcache.bbclass index dbe11e12da..3f48a0f344 100644 --- a/meta/classes/pixbufcache.bbclass +++ b/meta/classes/pixbufcache.bbclass | |||
@@ -54,6 +54,7 @@ gdkpixbuf_complete() { | |||
54 | # An error exit during populate_sysroot_setscene allows bitbake to | 54 | # An error exit during populate_sysroot_setscene allows bitbake to |
55 | # try to recover by re-building the package. | 55 | # try to recover by re-building the package. |
56 | # | 56 | # |
57 | DEPENDS_append_class-native = " gdk-pixbuf-native" | ||
57 | SSTATEPOSTINSTFUNCS_append_class-native = " pixbufcache_sstate_postinst" | 58 | SSTATEPOSTINSTFUNCS_append_class-native = " pixbufcache_sstate_postinst" |
58 | 59 | ||
59 | # See base.bbclass for the other half of this | 60 | # See base.bbclass for the other half of this |
@@ -61,7 +62,8 @@ pixbufcache_sstate_postinst() { | |||
61 | if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then | 62 | if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then |
62 | ${gdkpixbuf_complete} | 63 | ${gdkpixbuf_complete} |
63 | elif [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]; then | 64 | elif [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]; then |
64 | echo "${gdkpixbuf_complete}" >> ${STAGING_DIR}/sstatecompletions | 65 | if [ -x ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders ]; then |
66 | echo "${gdkpixbuf_complete}" >> ${STAGING_DIR}/sstatecompletions | ||
67 | fi | ||
65 | fi | 68 | fi |
66 | } | 69 | } |
67 | |||