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

Reply via email to