Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 330169 - net-im/skype-2.1.0.81 - missing dependency =libpng-1.2.44
Summary: net-im/skype-2.1.0.81 - missing dependency =libpng-1.2.44
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High minor
Assignee: Gentoo Net-im project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-28 09:45 UTC by Tomasz Bielaszewski
Modified: 2012-02-29 13:09 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tomasz Bielaszewski 2010-07-28 09:45:16 UTC
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.
Comment 1 Samuli Suominen (RETIRED) gentoo-dev 2010-10-06 08:23:46 UTC
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.

Comment 2 Tomasz Bielaszewski 2010-10-06 10:02:54 UTC
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)
Comment 3 Samuli Suominen (RETIRED) gentoo-dev 2010-10-06 11:04:25 UTC
`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?
Comment 4 Samuli Suominen (RETIRED) gentoo-dev 2010-10-06 11:09:21 UTC
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.
Comment 5 Tomasz Bielaszewski 2010-10-06 14:13:25 UTC
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.