Created attachment 505064 [details] build log rygel fails to update for me: ../../src/librygel-server/.libs/librygel-server-2.6.so: undefined reference to `media_art_plugin_init' It does have a point: $ grep plugin_init /usr/include/libmediaart-2.0/libmediaart/*.h /usr/include/libmediaart-2.0/libmediaart/extractgeneric.h:void media_art_plugin_init (gint max_width); $ objdump -T /usr/lib64/libmediaart-2.0.so.0 | grep plugin # shows nothing So apparently there is some method declared in a header but not defined in the libmediaart library.
Created attachment 505068 [details] libmediaart build log My libmediaart is configured USE="qt5 -gtk -vala". The extract implementation thus comes from extractqt.cpp which does not include extractgeneric.h and thus does not have the _LIBMEDIAART_EXTERN macro in front of the function declaration. This makes the whole symbol non-external, and via the -fvisibility=hidden linker flag hidden. objdump -t does show the symbol in the build directory, but the stripped version in the install directory no longer has it.
Created attachment 505236 [details, diff] Patch libmediaart adding #include "extractgeneric.h" to extractqt.cpp With this patch in place, the symbol becomes public, and rygel can link. I placed this in /etc/portage/patches/media-libs/libmediaart-1.9.4/ to let user patches pick it up.