Libpng12 absent in 18.04 - possible solutions?

I try to make Jetson Nano work with a USB camera. It uses a proprietary API to connect that requires libpng12 to compile programs that use it. libpng12 is absent from 18.04 LTS, which is run by all the JetPacks I have used (4.2 to 4.4 Preview). Is there a way to somehow get around it, by, for example, downgrading to 16.04?

I have not tested, and would recommend backing up anything important before changing this, but found an article on getting the older libpng12 release installed:

Thank you, but I have already found this resource. I can try it out, but the packages it links to are meant for amd64-based kernels while Jetson’s processor is arm64, so they are basically incompatible by architecture. Is it really even worth a shot?

You are correct that amd64 cannot be used. Normally I would say that the arm64 version of each of those packages would be substituted, but I just realized that libpng12 may predate the existence of arm64. If that is the case, then you’d need the source code for those packages and compile them yourself under arm64. I do not know if that is practical or not, but certainly finding and compiling the right packages would at minimum take a lot of effort and time.

Can you say more about the particular camera? I am wondering if the manufacturer might be willing to release a version using libpng16 instead since libpng12 is rather out of date.

Downgrading a Nano to Ubuntu 16.04 would not be possible. The first release for the Nano was L4T R32.1, and this is Ubuntu 18.04. Earlier L4T R28.x does not support the Nano, and you would have to revert that far back to get Ubuntu 16.04 support.

It’s an Allied Vision Alvium series USB camera. I read more carefully into their user guide, and apparently they suggest manually installing a 16.04 libpng12 library into the 18.04 system, which would then somehow allow their SDK to link with the libpng1.6 that’s already present on the system. I’ll back up my system and solve the topic if this will indeed help.

This would probably work, it is just a case of tracking down the right packages and methods to get an outdated libpng12 installed (if you have a binary file instead of a package, then you could probably just put it in the linker path (this assumes the architecture is ok, and compatible with the linker…which likely it is…it may be out of date, but there would need to be a major version difference for it to not work with the linker).