Hi, thanks for maintaining GEGL in Gentoo! By accident (and related to experiments with giflib) if came to my attention that GEGL bundles a copy of media-libs/libnsgif, claims to fall back to the system copy when available (which the ebuild dependency ensures, great) but then pulls in the C code of the bundled copy using the C preprocessor through lines… /* since libnsgif is nice and simple we directly embed it in the .so */ #include "subprojects/libnsgif/nsgif.h" #include "subprojects/libnsgif/gif.c" #include "subprojects/libnsgif/lzw.c" …in file operations/external/gif-load.c . Running lddtree on the resulting gif-load.so confirms that it is not in fact linked against the system copy (/usr/lib64/libnsgif.so*): $ lddtree /usr/lib64/gegl-0.4/gif-load.so # no nsgiflib in here: /usr/lib64/gegl-0.4/gif-load.so (interpreter => None) libgegl-0.4.so.0 => /usr/lib64/libgegl-0.4.so.0 libm.so.6 => /lib64/libm.so.6 ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 libbabl-0.1.so.0 => /usr/lib64/libbabl-0.1.so.0 liblcms2.so.2 => /usr/lib64/liblcms2.so.2 libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 libz.so.1 => /usr/lib64/libz.so.1 libmount.so.1 => /usr/lib64/libmount.so.1 libblkid.so.1 => /usr/lib64/libblkid.so.1 libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 libffi.so.8 => /usr/lib64/libffi.so.8 libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 libc.so.6 => /lib64/libc.so.6 I'm optimistic that a small change in build system and removal/change of the C includes can fix this issue (i.e. ensure that all security updates to the system copy also effect GEGL instantly). I'm not fluent in Meson yet but if I can help some other way, please let me know. Thanks in advance!
Thank you for report! The currently embedded libnsgif library version is 1.0.0 like the latest of gentoo portage tree. I reported this issue to upstream. I could force to use system installed headers of certain library version but initially I would like to see the upstream opinion about if it should use only headers or link with library.
Thank you!