net-im/skype-2.1.0.81 emerged with use flag qt-static disabled is statically linked against libpng12.so.0 and that requires slotted media-libs/libpng-1.2.44 (1.2). It doesn't work with media-libs/libpng-1.4.3 I haven't checked whether qt-static use flag changes anything.
No, I've just checked both USE="qt-static" and USE="-qt-static" and none of the files installed by Skype, has NEEDED entry for libpng. It also runs without any trace of libpng12.so.0 in the system.
I think i used poor choice of words. Sorry for that. It is of course dynamic linking, but it is linking to libpng12.so.0, even with libpng14.so installed. So i think at least a "png" use flag is in order with exact dependency =media-libs/libpng-1.2.44 or something like that. ldd /opt/skype/skype linux-gate.so.1 => (0xb774c000) libasound.so.2 => /usr/lib/libasound.so.2 (0xb7676000) libXv.so.1 => /usr/lib/libXv.so.1 (0xb7670000) libXss.so.1 => /usr/lib/libXss.so.1 (0xb766c000) librt.so.1 => /lib/librt.so.1 (0xb7663000) libQtDBus.so.4 => /usr/lib/qt4/libQtDBus.so.4 (0xb75eb000) libQtGui.so.4 => /usr/lib/qt4/libQtGui.so.4 (0xb6bb0000) libQtNetwork.so.4 => /usr/lib/qt4/libQtNetwork.so.4 (0xb6a89000) libQtCore.so.4 => /usr/lib/qt4/libQtCore.so.4 (0xb6809000) libpthread.so.0 => /lib/libpthread.so.0 (0xb67f0000) libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/libstdc++.so.6 (0xb66fe000) libm.so.6 => /lib/libm.so.6 (0xb66d8000) libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/libgcc_s.so.1 (0xb66ba000) libc.so.6 => /lib/libc.so.6 (0xb6571000) libdl.so.2 => /lib/libdl.so.2 (0xb656d000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb644f000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb643f000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6424000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb6420000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb641a000) /lib/ld-linux.so.2 (0xb774d000) libQtXml.so.4 => /usr/lib/qt4/libQtXml.so.4 (0xb63d5000) libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb63ce000) libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb62e7000) libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb62ad000) libpng12.so.0 => not found libz.so.1 => /lib/libz.so.1 (0xb6299000) libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6211000) libSM.so.6 => /usr/lib/libSM.so.6 (0xb6208000) libICE.so.6 => /usr/lib/libICE.so.6 (0xb61f0000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb61e6000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb61dd000) libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb61d8000) libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb61a8000) libuuid.so.1 => /lib/libuuid.so.1 (0xb61a3000) libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb617c000)
`ldd` is the worst possible way of checking library dependencies because it prints out also indirect dependencies. The one with indirect dependencies, one of the libs skype is using, is using libpng and only the latest one: $ ldd /opt/skype/skype |grep png libpng14.so.14 => /usr/lib32/libpng14.so.14 (0xf625c000) The direct dependencies of skype, no libpng used at all: $ objdump -p /opt/skype/skype |grep png $ Just run revdep-rebuild?
Or same with `scanelf`: scanelf -yBF '#f%n' /opt/skype/skype Or same with `lddtree` to print out what lib is using libpng: lddtree /opt/skype/skype [ .. some unrelated lines .. ] libQtGui.so.4 => /usr/lib/qt4/libQtGui.so.4 libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 libpng14.so.14 => /usr/lib/libpng14.so.14 And above we can see it's libQtGui.so.4 that's using libpng, so x11-libs/qt-gui might need rebuilding to link against new libpng. So to sum it up: Stop using ldd. Entirely. Use `scanelf`, `objdump` and `lddtree` which ever suits the need best.
Lesson learned, it will be lddtree from now on then. Thanks for the tip. It is qt-gui indeed. I'm sort of surprised that nothing else displayed any issues those 2 months, but i suppose such are the laws of the realm of IT.