Bug 13896

Summary: gtk-icon-cache.bbclass passes wrong parameter to update_gtk_icon_cache postinst intercept
Product: [Build System, Metadata & Runtime] OE-Core Reporter: P. Payeur <ppayeur01>
Component: oe-core otherAssignee: Yoann Congal <yoann.congal>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: paul, randy.macleod, yoann.congal
Version: 3.0.3   
Target Milestone: 6.0.2   
Hardware: x86   
OS: x86_64   
Whiteboard: backport 4.0.x
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description P. Payeur 2020-05-07 12:43:58 UTC
In function gtk_icon_cache_postrm of gtk-icon-cache.bbclass, the postinst intercept update_gtk_icon_cache is called as such:

$INTERCEPT_DIR/postinst_intercept update_gtk_icon_cache ${PKG} \
		mlprefix=${MLPREFIX} \
		libdir=${libdir}

However update_gtk_icon_cache uses libdir_native and not simply libdir:

# Update native pixbuf loaders
$STAGING_DIR_NATIVE/${libdir_native}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache

I believe this is causing my build to fail at do_rootfs (note the empty path before gdk-pixbuf-2.0):

NOTE: > Executing update_gtk_icon_cache intercept ...
NOTE: Exit code 127. Output:
/poky/build/tmp/work/f_k700-poky-linux/core-image-minimal-initramfs/1.0-r0/intercept_scripts-b582ac698982597bb7775956b7cea465d8048fffa61b521956dc159d64ad848c/update_gtk_icon_cache: line 10: /poky/build/tmp/work/f_k700-poky-linux/core-image-minimal-initramfs/1.0-r0/recipe-sysroot-native//gdk-pixbuf-2.0/gdk-pixbuf-query-loaders: No such file or directory

The change to libdir_native was introduced in this patch:

https://patchwork.openembedded.org/patch/106339/
Comment 1 Randy MacLeod 2026-02-26 16:08:07 UTC
Might have been fixed. Ross to check.
Comment 2 Ross Burton 2026-05-22 15:22:56 UTC
I didn't notice this was in the postrm, which is why I suspect nobody really noticed.  Patch incoming.
Comment 3 Ross Burton 2026-05-22 16:05:19 UTC
Posted classes/gtk-icon-cache: fix libdir passed to the postrm intercept.
Comment 4 Yoann Congal 2026-06-19 09:46:52 UTC
Merged as classes/gtk-icon-cache: fix libdir passed to the postrm intercept - openembedded-core - OpenEmbedded Core layer
https://git.openembedded.org/openembedded-core/commit/?id=92dd67114be325e019c149bddaf5f874f6917094

I plan to backport it to wrynose and scarthgap

Ross, if you think this should be closed for master, can you assign this to me so I can handle the backports for the stable branches?
Comment 5 Ross Burton 2026-06-19 10:04:40 UTC
With pleasure.