<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>10498</bug_id>
          
          <creation_ts>2016-10-25 17:23:35 +0000</creation_ts>
          <short_desc>adwaita install failed on autobuilder</short_desc>
          <delta_ts>2017-01-26 16:11:15 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>Scripts and Tools</component>
          <version>2.3</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.3 M2</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jussi Kukkonen">jku</reporter>
          <assigned_to name="Ross Burton">ross.burton</assigned_to>
          <cc>ross.burton</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>67548</commentid>
    <comment_count>0</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2016-10-25 17:23:35 +0000</bug_when>
    <thetext>This is from https://autobuilder.yocto.io/builders/nightly-x86-64-lsb/builds/87 , a master-next build but I don&apos;t think the master-next changes are related -- this could be intermittent:

| make[3]: Entering directory &apos;/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/build/src/symbolic&apos;
| make[3]: Nothing to be done for &apos;install-exec-am&apos;.
| for size in ; do \
| 	for file in `cd ../../../adwaita-icon-theme-3.20/Adwaita/$size; find . -name &quot;*.png&quot;`; do \
| 		context=&quot;`dirname $file`&quot;; \
| 		/bin/mkdir -p /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/image/usr/share/icons/Adwaita/$size/$context; \
| 		/bin/bash /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/adwaita-icon-theme-3.20/install-sh -c -m 644 ../../../adwaita-icon-theme-3.20/Adwaita/$size/$file /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/image/usr/share/icons/Adwaita/$size/$file; \
| 	done; \
| done
| for file in `cd ../../../adwaita-icon-theme-3.20/Adwaita/scalable; find . -name &quot;*.svg&quot;`; do \
| 	context=&quot;`dirname $file`&quot;; \
| 	/bin/mkdir -p /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/image/usr/share/icons/Adwaita/scalable/$context; \
| 	/bin/bash /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/adwaita-icon-theme-3.20/install-sh -c -m 644 ../../../adwaita-icon-theme-3.20/Adwaita/scalable/$file /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/image/usr/share/icons/Adwaita/scalable/$file; \
| 	for size in 16x16 24x24 32x32 48x48 64x64 96x96; do \
| 		/bin/mkdir -p /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/image/usr/share/icons/Adwaita/$size/$context; \
| 		/home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/sysroots/x86_64-linux/usr/bin/gtk-encode-symbolic-svg ../../../adwaita-icon-theme-3.20/Adwaita/scalable/$file $size -o /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-x86-64-lsb/build/build/tmp/work/all-poky-linux/adwaita-icon-theme/3.20-r0/image/usr/share/icons/Adwaita/$size/$context; \
| 	done \
| done
| Can&apos;t load file: Unrecognized image file format
| Can&apos;t load file: Unrecognized image file format
| Can&apos;t load file: Unrecognized image file format
| Can&apos;t load file: Unrecognized image file format
    (...this continues for a while)


This failure case happens when the native sysroots
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache does not contain the entry for libpixbufloader-svg.so when adwaita do_install runs.

I&apos;ve looked at the recipes and they seem correct to me:
* adwaita depends on gtk-icon-utils-native (through gtk-icon-cache.bbclass)
* gtk-icon-utils-native depends on librsvg-native (which provides the svg loader)
* librsvg inherits pixbufcache

I believe the loaders.cache file is generated through a postinst-intercept (update_pixbuf_cache), I wonder if it is possible that it hasn&apos;t run by the time adwaita installs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67592</commentid>
    <comment_count>1</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2016-10-26 11:50:10 +0000</bug_when>
    <thetext>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 = &quot; gdk-pixbuf-native&quot;
SSTATEPOSTINSTFUNCS_append_class-native = &quot; pixbufcache_sstate_postinst&quot;

# See base.bbclass for the other half of this
pixbufcache_sstate_postinst() {
        if [ &quot;${BB_CURRENTTASK}&quot; = &quot;populate_sysroot&quot; ]; then
                ${gdkpixbuf_complete}
        elif [ &quot;${BB_CURRENTTASK}&quot; = &quot;populate_sysroot_setscene&quot; ]; then
                if [ -x ${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders ]; then
                        echo &quot;${gdkpixbuf_complete}&quot; &gt;&gt; ${STAGING_DIR}/sstatecompletions
                fi
        fi
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67595</commentid>
    <comment_count>2</comment_count>
    <who name="Jussi Kukkonen">jku</who>
    <bug_when>2016-10-26 12:08:05 +0000</bug_when>
    <thetext>(In reply to comment #1)
&gt; Looking at the native case, I guess the following bit of pixbufcache class
&gt; is relevant. Maybe it fails to run when librsvg comes from sstate or
&gt; 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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68362</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2016-11-16 13:18:22 +0000</bug_when>
    <thetext>Ah!

So, this happens:

librsvg-native restored from sstate
gdk-pixbuf-native built from scratch
gdk-pixbuf-native&apos;s sstate preinst deletes all existing loaders
gdk-pixbuf-native&apos;s sstate postinst regenerates the loader cache

Obviously step 3 seemed like a good idea at the time...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68363</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2016-11-16 13:19:32 +0000</bug_when>
    <thetext>Forgot to say, this is the reproducer:

$ wipe-sysroot  ; bitbake gdk-pixbuf-native -c cleansstate ; bitbake adwaita-icon-theme -C unpack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70184</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2017-01-26 16:11:15 +0000</bug_when>
    <thetext>All of this complication just disappeared with recipe specific sysroots (oe core 809746f56df4b91af014bf6a3f28997d6698ac78), closing (and cheering).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>