View previous topic :: View next topic |
Author |
Message |
J00p n00b
Joined: 06 Nov 2011 Posts: 4
|
Posted: Sun Nov 06, 2011 2:02 pm Post subject: [SOLVED] mplayer still requires libpng-1.2 |
|
|
When I remove libpng-1.2 from my system, mplayer fails with:
Code: | mplayer: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory |
I had this problem while using libpng-1.4 and now with 1.5 it is still there.
I can compile libpng 1.5.5 as well as mplayer just fine:
Code: |
[ebuild R ] media-libs/libpng-1.5.5 USE="apng -static-libs" 0 kB
[ebuild R ] media-video/mplayer-1.0_rc4_p20110322-r1 USE="3dnow X a52 alsa ass cdio dirac dts dv dvd dvdnav enca encode esd faac faad gif iconv jpeg live mad mmx mng mp3 network opengl osdmenu oss png quicktime rar real rtc samba schroedinger sdl shm speex sse sse2 theora toolame tremor truetype twolame unicode vorbis x264 xinerama xscreensaver xv xvid xvmc -3dnowext -aalib (-altivec) -amr (-aqua) -bidi -bindist -bl -bluray -bs2b -cddb -cdparanoia -cpudetection -custom-cpuopts -debug -dga -directfb -doc -dvb (-dxr3) -fbcon -ftp -ggi -gsm -ipv6 -jack -joystick -jpeg2k -ladspa -libcaca -libmpeg2 -lirc -lzo -md5sum -mmxext -mpg123 -nas -nut -openal -pnm -pulseaudio -pvr -radio -rtmp -ssse3 -tga -v4l -vdpau (-vidix) -vpx (-win32codecs) -xanim -zoran" VIDEO_CARDS="-mga -s3virge -tdfx -vesa" 0 kB
|
I'm able to use mplayer by keeping a copy of libpng-1.2 ( emerge -av --oneshot "=libpng-1.2.46" )
so this is not a high priority problem, but I'm curious as to what is wrong.
Last edited by J00p on Sun Nov 06, 2011 4:28 pm; edited 1 time in total |
|
Back to top |
|
|
SamuliSuominen Retired Dev
Joined: 30 Sep 2005 Posts: 2133 Location: Finland
|
Posted: Sun Nov 06, 2011 2:25 pm Post subject: |
|
|
mplayer or one of it's reverse dependencies needs to be rebuilt against libpng15:
Code: |
# emerge gentoolkit
# emerge -C libpng:1.2
# revdep-rebuild --library libpng12.so.0
|
and if that doesn't help, check out what in the mplayer dependency tree is using libpng12 by:
Code: |
# lddtree `which mplayer`
|
|
|
Back to top |
|
|
J00p n00b
Joined: 06 Nov 2011 Posts: 4
|
Posted: Sun Nov 06, 2011 3:41 pm Post subject: |
|
|
Thank you for your response,
Code: |
> emerge -C libpng:1.2
* This action can remove important packages! In order to be safer, use
* `emerge -pv --depclean <atom>` to check for reverse dependencies before
* removing packages.
media-libs/libpng
selected: 1.2.46
protected: none
omitted: 1.5.5
All selected packages: media-libs/libpng-1.2.46
...
>>> Unmerging media-libs/libpng-1.2.46...
* GNU info directory index is up-to-date.
> revdep-rebuild --library libpng12.so.0
...
[ 100% ]
* There are no dynamic links to libpng12.so.0... All done.
|
The results of the dependency tree:
Code: |
> lddtree `which mplayer`
mplayer => /usr/local/bin/mplayer (interpreter => /lib64/ld-linux-x86-64.so.2)
libXext.so.6 => /usr/lib64/libXext.so.6
libX11.so.6 => /usr/lib64/libX11.so.6
libxcb.so.1 => /usr/lib64/libxcb.so.1
libXau.so.6 => /usr/lib64/libXau.so.6
libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6
libpthread.so.0 => /lib64/libpthread.so.0
libXss.so.1 => /usr/lib64/libXss.so.1
libXv.so.1 => /usr/lib64/libXv.so.1
libXinerama.so.1 => /usr/lib64/libXinerama.so.1
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1
libGL.so.1 => /usr/lib32/opengl/nvidia/lib/libGL.so.1
libnvidia-tls.so.275.09.07 => /usr/lib32/opengl/nvidia/lib/libnvidia-tls.so.275.09.07
libnvidia-glcore.so.275.09.07 => /usr/lib64/libnvidia-glcore.so.275.09.07
libdl.so.2 => /lib64/libdl.so.2
libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0
libesd.so.0 => /usr/lib64/libesd.so.0
libaudiofile.so.0 => /usr/lib64/libaudiofile.so.0
libfaac.so.0 => /usr/lib64/libfaac.so.0
libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0
libncurses.so.5 => /lib64/libncurses.so.5
libsmbclient.so.0 => /usr/lib64/libsmbclient.so.0
libtalloc.so.2 => /usr/lib64/libtalloc.so.2
libtdb.so.1 => /usr/lib64/libtdb.so.1
libresolv.so.2 => /lib64/libresolv.so.2
libnsl.so.1 => /lib64/libnsl.so.1
libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2
libgnutls.so.26 => /usr/lib64/libgnutls.so.26
libtasn1.so.3 => /usr/lib64/libtasn1.so.3
libgcrypt.so.11 => /usr/lib64/libgcrypt.so.11
libgpg-error.so.0 => /usr/lib64/libgpg-error.so.0
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2
libpng12.so.0 => /usr/lib32/libpng12.so.0 <---- !! ?
libz.so.1 => /lib64/libz.so.1
libjpeg.so.7 => /usr/lib64/libjpeg.so.7
libgif.so.4 => /usr/lib64/libgif.so.4
libasound.so.2 => /usr/lib64/libasound.so.2
libcdda_interface.so.0 => /usr/lib64/libcdda_interface.so.0
libcdda_paranoia.so.0 => /usr/lib64/libcdda_paranoia.so.0
libfreetype.so.6 => /usr/lib64/libfreetype.so.6
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1
libexpat.so.1 => /usr/lib64/libexpat.so.1
libenca.so.0 => /usr/lib64/libenca.so.0
libbz2.so.1 => /lib64/libbz2.so.1
libmad.so.0 => /usr/lib64/libmad.so.0
libspeex.so.1 => /usr/lib64/libspeex.so.1
libtheora.so.0 => /usr/lib64/libtheora.so.0
libogg.so.0 => /usr/lib64/libogg.so.0
libliveMedia.so.3 => /usr/lib64/libliveMedia.so.3
libgroupsock.so.3 => /usr/lib64/libgroupsock.so.3
libUsageEnvironment.so.3 => /usr/lib64/libUsageEnvironment.so.3
libBasicUsageEnvironment.so.3 => /usr/lib64/libBasicUsageEnvironment.so.3
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.5/libstdc++.so.6
libdv.so.4 => /usr/lib64/libdv.so.4
libxvidcore.so.4 => /usr/lib64/libxvidcore.so.4
libm.so.6 => /lib64/libm.so.6
libdirac_encoder.so.0 => /usr/lib64/libdirac_encoder.so.0
libdirac_decoder.so.0 => /usr/lib64/libdirac_decoder.so.0
libschroedinger-1.0.so.0 => /usr/lib64/libschroedinger-1.0.so.0
liborc-0.4.so.0 => /usr/lib64/liborc-0.4.so.0
liboil-0.3.so.0 => /usr/lib64/liboil-0.3.so.0
librt.so.1 => /lib64/librt.so.1
libgcc_s.so.1 => /lib64/libgcc_s.so.1
libc.so.6 => /lib64/libc.so.6
|
So one of these libraries still uses libpng 1.2, but how do I know which one?
Do I need to revdep-rebuild all of these one by one?
edit: point out libpng12 in the listing |
|
Back to top |
|
|
J00p n00b
Joined: 06 Nov 2011 Posts: 4
|
Posted: Sun Nov 06, 2011 4:08 pm Post subject: |
|
|
I now get how to interpret this tree,
if one of the libraries that mplayer uses was still using libpng1.2 then it should show up like:
Code: |
libsomelib.so.x => /someliblocation
libpng1.2.so.0 => /libpnglocation
|
since libpng1.2 shows up at the 1st level, it is mplayer itself that uses it, not one of its dependencies.
So i should rebuild mplayer,...
But I allready know that that doesn't help..
edit:typo |
|
Back to top |
|
|
SamuliSuominen Retired Dev
Joined: 30 Sep 2005 Posts: 2133 Location: Finland
|
Posted: Sun Nov 06, 2011 4:21 pm Post subject: |
|
|
Quote: |
Code: |
> lddtree `which mplayer`
mplayer => /usr/local/bin/mplayer |
|
Why do you have mplayer in /usr/local/bin? You have built and installed mplayer by yourself at some point. I would remove it from /usr/local/bin and use the version from Portage. |
|
Back to top |
|
|
J00p n00b
Joined: 06 Nov 2011 Posts: 4
|
Posted: Sun Nov 06, 2011 4:28 pm Post subject: |
|
|
Haha and also
Thanks for your help, I can't remember building mplayer myself in the past, but removing it
from the local dir was all that needed to be done. |
|
Back to top |
|
|
slowdive n00b
Joined: 01 May 2005 Posts: 41
|
Posted: Tue Jan 29, 2013 2:02 am Post subject: Super helpful! |
|
|
Thanks for a helpful debug session.
I had a similar problem later with gnutls and claws-mail. Even after rebuilding claws-mail, it still failed to find libgnutls.so.28, even though it had found .26. Turns out libetpan needed 0.28 (needed a rebuild), which lddtree showed me. Incidentally, a full revdep-rebuild didn't find libetpan, but a revdep-rebuild --library libgnutls.so.28 found it.
Short version: thanks, i'll definitely add lddtree to my toolbox. |
|
Back to top |
|
|
|