How to solve missing libmng.so.1 in Trusty (14.04) Package is no more available

I would like to run SoulseekQT. However unfortunately one of the dependencies is libmng1, which is no more included in Trusty. sudo apt-get install libmng.so.1 or libmng1 or libmng1:i386 in Trusty (14.04) no more available. Do you have any idea how to solve this conflict?
I mean is it really sure that libmng1 is excluded? Could I use libmng2 somehow instead? If not, could I somehow rebuild libmng1 for Trusty? Or do I have to downgrade back to Saucy (13.10)?


Solution 1:

When the major version number of a library changes, it usually means the library is no longer compatible with the previous interface that it provided. Previous versions of Ubuntu had libmng1, but now libmng2 is provided and all Ubuntu packages in 14.04 have been rebuilt to use libmng.so.2. Third-party applications, as in this case, may need to be rebuilt to work with the updated libraries in 14.04. Until then, you can try installing the library package from the most recent Ubuntu release that had libmng1.

To install libmng1 alongside libmng2, first find the most recent version in supported Ubuntu releases from http://packages.ubuntu.com/libmng1. Then download and install the appropriate package for your architecture. For example:

wget http://archive.ubuntu.com/ubuntu/pool/main/libm/libmng/libmng1_1.0.10-3build1_i386.deb
sudo dpkg -i libmng1_1.0.10-3build1_i386.deb

Note that you will not get updates for this package since it is not in the Ubuntu 14.04 repositories.

Of course a far better solution would be to get the application developers to provide a new build of SoulseekQt that works with Ubuntu 14.04 now that it is released.

Solution 2:

I tried several solutions, but the one that worked for me is to link it to an existing library in Ubuntu. First find the library:

$ locate libmng.so.2
/usr/lib/x86_64-linux-gnu/libmng.so.2
/usr/lib/x86_64-linux-gnu/libmng.so.2.0.2

Then make a symbolic link to this:

$ ln -s /usr/lib/x86_64-linux-gnu/libmng.so.2 /usr/lib/x86_64-linux-gnu/libmng.so.1

Good luck!

Solution 3:

Installation from source

sudo apt-get install liblcms1-dev
wget http://prdownloads.sourceforge.net/libmng/lm010010.zip
unzip lm010010.zip
cd libmng
# MANUAL: edit `makefiles/makefile.linux` to add `-fPIC` to `CFLAGS` 
make -f makefiles/makefile.linux
sudo make -f makefiles/makefile.linux install
# MANUAL: add /usr/local/lib to your search path: http://unix.stackexchange.com/questions/67781/use-shared-libraries-in-usr-local-lib

Tested on Ubuntu 14.04.