Ensuring the native pixbuf cache is correct after new loaders have
been installed is tricky. This needs to be done without races
and work regardless of whether the build is from sstate or freshly
built for one or more modules.
This adds a hook into base.bbclass which is then triggered by the
code from pixbufcache. This patch is an improved version which
means base.bbclass has no pixbuf knowledge and the mechanism can
be reused in other cases.
(From OE-Core rev: b411085fefc8582d24c172db5f6610705eb44c2f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
DEBUG: Executing shell function pixbufcache_sstate_postinst
g_module_open() failed for sysroots/x86_64-linux/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: libharfbuzz.so.0: cannot open shared object file: No such file or directory
(From OE-Core rev: 892c8d80e7cf36b3a45dca248969d49ce78c0cbf)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to attempt recovery of a failed populate_sysroot_setscene,
we need to explicitly error exit an SSTATEPOSTINSTFUNC. So, we test
the return value of gdk-pixbuf-query-loaders.
(From OE-Core rev: 17bdb2538e6b723e11afb1079c71363603dba63d)
Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Pass GDK_PIXBUF_FATAL_LOADER to the sstate postinst and intercept so that any
problems are flagged as errors instead of being silently ignored.
(From OE-Core rev: 0a97b1571821848af11d8651c7145ed9592f9e31)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake librsvg-native would fail with an error about missing icu-native.
The reason is that bitbake doesn't directly parse setscene dependencies. This
change ensures bitbake does see the dependencies and avoids the error.
Ideally we'd teach bitbake about those but that is a significant and complex
change so this resolves the problem for now.
[YOCTO #5926]
(From OE-Core rev: 33fa7c8f28d343ecec354a551d45f23643becd59)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
ldd sysroots/x86_64-linux/usr/bin/gdk-pixbuf-query-loaders.real
<snip>
libz.so.1 => /sysroots/x86_64-linux/usr/bin/../../usr/lib/libz.so.1 (0x00007fab55393000)
If zlib-native has not been unpacked, host libz is used which can fail.
(From OE-Core rev: 8422c759ae674856aaaee176eab5a395a620443c)
Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add some more documentation to the PIXBUFCACHE_SYSROOT_DEPS variable to clarify
the usage.
(From OE-Core rev: b2f2d6a2b166b3c79cc5a0d386ee1dda2d4fa010)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Register a sstate postinst function so that when installing a native package,
the gdk-pixbuf loader cache is updated.
(From OE-Core rev: 7cbde5d8f2b88ec4e79cb0d564ee0f3c9baa7c2d)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is needed in order to have separate multilib intercept hooks.
(From OE-Core rev: 44eae13c164ca6e15a6013eafeab3eb44f24c8e0)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This will allow to register, in a single postinstall, multiple hooks.
(From OE-Core rev: b396138ee081c8f5dddbaab0e374787ba2e31029)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Postinstalls that use qemu are throwing a segmentation fault when
building for qemux86-64 on a 64bit host (it might also happen for
qemux86 if building on a 32bit host but I didn't test). It looks like
qemu looks for ld.so.cache which is not found because it is generated
after rootfs_(rpm|ipk|deb)_do_rootfs is called and then it tries to load
libraries from the default paths (which are the host's). In order to
avoid this, pass the LD_LIBRARY_PATH explicitly to the target's dynamic
loader.
(From OE-Core rev: 48e8b613b3f5c7b1d917bf3147606d44072ce49e)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
All packages exporting pixbuf loaders should inherit this class in order
to generate the correct postinst/postrm scriptlets.
[YOCTO #3852]
(From OE-Core rev: 61afa98f96f5c62473cb2db383b48d3d23c5d7ac)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>