On 16/07/10 19:52, Michael Witten wrote:
The `skype-call-recorder' package in the `community' repository simply needs to be rebuilt.
The current binary fails to run because it cannot load `libpng12' (which no longer seems to exist officially and is indeed not required by skype-call-recorder).
Hello there. :) It appears that you are using a package of skype-call-recorder built from the AUR before skype-call-recorder was moved to [community] and also before --as-needed was added to our LDFLAGS. We had a libpng rebuild at the beginning of this year, but skype-call-recorder wasn't in the list because it was built with --as-needed and as such, it didn't depend on libpng directly (which is a dependency of Qt). Quite a tricky timing issue. If --as-needed was introduced either before you built the package from the AUR or after the libpng rebuild was complete, it wouldn't have occurred. Well, I guess I could have bumped the pkgrel during the move to [community], but it didn't occur to me. :P Since you've already rebuilt the package, the issue should be resolved. Otherwise, you could do a `pacman -S skype-call-recorder' to remedy that.
--------------------
The following may be of interest to the developer of skype-call-recorder (who has been added to the Bcc list out of respect for a seemingly keen interest for remaining private).
Interestingly, after rebuilding skype-call-recorder, the output of this command (which gives the direct shared library dependencies):
readelf -d `which skype-call-recorder` | awk -F'[][]' '/NEEDED/ {print $2}'
went from this:
libmp3lame.so.0 libid3-3.8.so.3 libvorbisenc.so.2 libQtGui.so.4 libpng12.so.0 libSM.so.6 libICE.so.6 libXrender.so.1 libfreetype.so.6 libfontconfig.so.1 libXext.so.6 libX11.so.6 libQtDBus.so.4 libdbus-1.so.3 libQtXml.so.4 libQtNetwork.so.4 libssl.so.0.9.8 libQtCore.so.4 libz.so.1 libgthread-2.0.so.0 libglib-2.0.so.0 librt.so.1 libpthread.so.0 libdl.so.2 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 libvorbis.so.0 libogg.so.0
to this:
libmp3lame.so.0 libid3-3.8.so.3 libvorbisenc.so.2 libQtGui.so.4 libQtDBus.so.4 libQtNetwork.so.4 libQtCore.so.4 libstdc++.so.6 libm.so.6 libgcc_s.so.1 libc.so.6 libvorbis.so.0 libogg.so.0
This is thanks to the --as-needed flag that is passed to the linker (see the LDFLAGS variable in /etc/makepkg.conf).
More interesting is that even some of these aren't actually direct dependencies; the output of this command:
ldd -u `which skype-call-recorder`
is this:
Unused direct dependencies:
/usr/lib/libmp3lame.so.0 /usr/lib/libid3-3.8.so.3 /usr/lib/libvorbisenc.so.2 /usr/lib/libQtNetwork.so.4 /lib/libm.so.6 /usr/lib/libgcc_s.so.1 /lib/libc.so.6 /usr/lib/libvorbis.so.0
For instance, I imagine that `libc' is listed as unused because skype-call-recorder is actually a C++ program that only depends directly on `libstdc++'.
Perhaps the commands used to build skype-call-recorder can be cleaned up.
No idea why that is the case. :P
Sincerely, Michael Witten