| Summary: | adwaita install failed on autobuilder | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Jussi Kukkonen <jku> |
| Component: | Scripts and Tools | Assignee: | Ross Burton <ross.burton> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | ross.burton |
| Version: | 2.3 | ||
| Target Milestone: | 2.3 M2 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Jussi Kukkonen
2016-10-25 17:23:35 UTC
Looking at the native case, I guess the following bit of pixbufcache class is relevant. Maybe it fails to run when librsvg comes from sstate or something?
gdkpixbuf_complete() {
GDK_PIXBUF_FATAL_LOADER=1 ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache || exit 1
}
#
# Add an sstate postinst hook to update the cache for native packages.
# An error exit during populate_sysroot_setscene allows bitbake to
# try to recover by re-building the package.
#
DEPENDS_append_class-native = " gdk-pixbuf-native"
SSTATEPOSTINSTFUNCS_append_class-native = " pixbufcache_sstate_postinst"
# See base.bbclass for the other half of this
pixbufcache_sstate_postinst() {
if [ "${BB_CURRENTTASK}" = "populate_sysroot" ]; then
${gdkpixbuf_complete}
elif [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]; then
if [ -x ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders ]; then
echo "${gdkpixbuf_complete}" >> ${STAGING_DIR}/sstatecompletions
fi
fi
}
(In reply to comment #1) > Looking at the native case, I guess the following bit of pixbufcache class > is relevant. Maybe it fails to run when librsvg comes from sstate or > something? sstatecompletions seem to work just fine: even if rsvg comes from sstate and the cache has been modified in between, the loader cache gets updated just fine before adwaita installs. Ah! So, this happens: librsvg-native restored from sstate gdk-pixbuf-native built from scratch gdk-pixbuf-native's sstate preinst deletes all existing loaders gdk-pixbuf-native's sstate postinst regenerates the loader cache Obviously step 3 seemed like a good idea at the time... Forgot to say, this is the reproducer: $ wipe-sysroot ; bitbake gdk-pixbuf-native -c cleansstate ; bitbake adwaita-icon-theme -C unpack All of this complication just disappeared with recipe specific sysroots (oe core 809746f56df4b91af014bf6a3f28997d6698ac78), closing (and cheering). |