Error message when trying to run PVRVFrameGUI

/opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/PVRVFrameGUI
/opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/PVRVFrameGUI: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

The library is installed but at a later version

michel@michel ~/Téléchargement $ ls -la /usr/lib/libpng*
lrwxrwxrwx 1 root root 11 29 jun 19:47 /usr/lib/libpng.so -> libpng16.so
lrwxrwxrwx 1 root root 19 29 jun 19:47 /usr/lib/libpng16.so -> libpng16.so.16.16.0
lrwxrwxrwx 1 root root 19 29 jun 19:47 /usr/lib/libpng16.so.16 -> libpng16.so.16.16.0
-rwxr-xr-x 1 root root 211920 29 jun 19:47 /usr/lib/libpng16.so.16.16.0

My system is gentoo on an AMD64 6 Cores PC

It looks like libpng 1.2 isn’t in a searchable path for PVRVFrameGUI, could you check if that is the case?

You didn’t read my post. libpng 1.2 cannot be found because what I have is libpng 1.6

PVRVFrame links against libpng12. It should be possible to have both libpng16 and libpng12 installed side by side.

It is not that simple. With gentoo it is not possible to have this. What I would need to do is create another package with a different name. There could still be a problem, the first line would need to be /usr/lib/libpng.so -> libpng12.so
If I was to do that it would break any program that expects version 1.6

lrwxrwxrwx 1 root root 11 29 jun 19:47 /usr/lib/libpng.so -> libpng16.so
lrwxrwxrwx 1 root root 19 29 jun 19:47 /usr/lib/libpng16.so -> libpng16.so.16.16.0
lrwxrwxrwx 1 root root 19 29 jun 19:47 /usr/lib/libpng16.so.16 -> libpng16.so.16.16.0
-rwxr-xr-x 1 root root 211920 29 jun 19:47 /usr/lib/libpng16.so.16.16.0

Does this program requires that first line or not?

Hi Micel. Gentoo may have some policy on this, but functionally there’s no reason why you can’t have multiple versions of libraries installed on a Linux system, either in system directories or elsewhere. I’ve done this before many times, and it’s simple.

First, you’re trying to run the 64-bit version of PVRVFrameGUI (Linux_x86_64), so you’re going to need a 64-bit shared library version of libpng 1.2.x accessible via the name “libpng12.so.0” somewhere in your dynamic linker’s search patch.

Now really this libpng12.so.0 should be built from some 1.2.x version of the libpng source code. If you can find that for Gentoo, then just grab that. That’s really the way to go. However if not, as a temporary band-aid you can sometimes get away with using the version you currently have installed on your system – it just depends on how compatible the APIs are.

See the ld.so (8) man page for complete details. But basically here’s one way to get PVRVFrameGUI going for you, without requiring multiple versions of libpng to be installed in the system directories.

[pre]# SETUP
cd PVRVFrame/GUI/Linux_x86_64/
ln -s /usr/lib/libpng16.so libpng12.so.0 # <-- Either do this…

cp /tmp/libpng12.so.0 libpng12.so.0 # <-- or better yet, copy in a genuine 1.2.x lib built for your system.[/pre]

then later to run (you can toss this in a shell script so you don’t have to retype it every time):
[pre]# RUNNING
cd /opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/
export LD_LIBRARY_PATH=/opt/Imagination/PowerVR_Graphics/PowerVR_Tools/PVRVFrame/GUI/Linux_x86_64/
./PVRVFrameGUI &[/pre]

Above I assume you’re using a sh/bash shell here; if not, adapt for csh/tcsh syntax.

Here I also assume that you were unable to find (or build) a genuine libpng12.so built from libpng 1.2.x source code and you’re going to try just using the current version on your system (libpng16.so).

Further I assume the libraries in your /usr/lib directory are 64-bit. You can check this by running “file /usr/lib/libpng16.so.16.16.0” or "file /usr/lib/". If you see 32-bit, then go install the 64-bit libpng .so and use that instead. (On Linux systems I’ve worked on /usr/lib/ typically contains 32-bit libs and /usr/lib64/* contains 64-bit libs, but I don’t know what conventions Gentoo uses.

Hope this helps.