On Dec 21, 2020, at 21:01, Michael wrote:
> OK. Next question: Is there any reason I cannot install libpng version 15 at
> the sametime?
>
> I am aware that there is a non-versioned link file, that the latest version
> of the dynamic library installs. That can stay at 16 where it belongs. I mean
> specifically having both the libpng15 and the libpng16 files.
>
> I am very surprised at linking to a specific version of a dynamic library.
> This is actually commercial software, and it did not link to generic
> "libpng", nor to generic "libpng15" -- linking to a specific version of a
> dynamic library? Isn't the whole point of dynamic libraries that you don't
> get a single specific buggy version, but the latest non-buggy version?
The developer of the library decides the granularity at which the library is
versioned and decides what constitutes a backward incompatible change.
The developer of libpng has decided that all libpng 1.5.x versions are
compatible with one another; they all use library name libpng15.15.dylib; and
that all libpng 1.6.x versions are compatible with one another; they all use
library name libpng16.16.dylib. You can install a newer version of libpng 1.6.x
and all older programs linked with an older libpng 1.6.x will benefit from the
improvements in libpng. But any old programs linking with libpng 1.5.x cannot
automatically use libpng16.16.dylib because there have been backward
incompatible changes in the library. The program must be recompiled / relinked
and the source code of the program might need to be updated in order to use
libpng16.16.dylib.