You are not logged in.

#1 2010-02-28 10:15:22

nblock
Member
From: Austria
Registered: 2008-08-06
Posts: 123
Website

[SOLVED] how to handle dependencies on old libraries

Hi,
is there any guide how to handle old library dependencies?
i maintain otrdecoder-x86_64 from aur and the latest versions are no longer shipped as 'static'-packages. Therefore one library dependency is too old:

ldd otrdecoder
    linux-vdso.so.1 =>  (0x00007fff3473d000)
    libavformat.so.52 => /usr/lib/libavformat.so.52 (0x00007ff8001e7000)
    libavcodec.so.52 => /usr/lib/libavcodec.so.52 (0x00007ff7ff609000)
    libavutil.so.49 => not found
    librt.so.1 => /lib/librt.so.1 (0x00007ff7ff401000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007ff7ff0f1000)
    libm.so.6 => /lib/libm.so.6 (0x00007ff7fee70000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007ff7fec5a000)
    libc.so.6 => /lib/libc.so.6 (0x00007ff7fe903000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007ff7fe6e7000)
    libavutil.so.50 => /usr/lib/libavutil.so.50 (0x00007ff7fe4d6000)
    libz.so.1 => /usr/lib/libz.so.1 (0x00007ff7fe2be000)
    libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007ff7fe0ae000)
    libfaac.so.0 => /usr/lib/libfaac.so.0 (0x00007ff7fde9c000)
    libfaad.so.2 => /usr/lib/libfaad.so.2 (0x00007ff7fdc5b000)
    libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x00007ff7fd9e3000)
    libopencore-amrnb.so.0 => /usr/lib/libopencore-amrnb.so.0 (0x00007ff7fd7b4000)
    libopencore-amrwb.so.0 => /usr/lib/libopencore-amrwb.so.0 (0x00007ff7fd59e000)
    libtheoraenc.so.1 => /usr/lib/libtheoraenc.so.1 (0x00007ff7fd35f000)
    libtheoradec.so.1 => /usr/lib/libtheoradec.so.1 (0x00007ff7fd146000)
    libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x00007ff7fcd6e000)
    libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007ff7fcb42000)
    libx264.so.84 => /usr/lib/libx264.so.84 (0x00007ff7fc8af000)
    libxvidcore.so.4 => /usr/lib/libxvidcore.so.4 (0x00007ff7fc5a1000)
    /lib64/ld-linux-x86-64.so.2 (0x00007ff8004a3000)
    libmp4v2.so.0 => /usr/lib/libmp4v2.so.0 (0x00007ff7fc2f2000)
    libogg.so.0 => /usr/lib/libogg.so.0 (0x00007ff7fc0ed000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007ff7fbee9000)

I made a symlink from to test if it works with the new library:

sudo ln -s libavutil.so.50 libavutil.so.49

It seems to work, but i don't think that symlinking is a good idea.

I contacted the author but he/she did not respond. The packages are shipped as binary only.

Any ideas?

Last edited by nblock (2010-02-28 21:40:37)

Offline

#2 2010-02-28 17:17:30

FrozenFox
Member
From: College Station, TX
Registered: 2008-03-23
Posts: 422
Website

Re: [SOLVED] how to handle dependencies on old libraries

The typical solution seems to be to make a package that compiles the previous version's source and keeps it from making / strips out "generic" symlinks such that only the .pkgver is around (eg libavutil.so.49 is there but libavutil.so is removed or prevented so as not to conflict with the current libavutil), and the package is named for example libavutil49. The most obvious examples are libpng12, libjpeg6, and libjpeg7 from aur.

If you can't make the previous version compile, you either patch it to or you're more or less out of luck. Distributing it in binary form would probably be bad. Then just have your otrdecoder depend on that new package.

Last edited by FrozenFox (2010-02-28 17:22:26)

Offline

Board footer

Powered by FluxBB