03-21-2022, 09:11 PM
In traditional Linux, packages use dynamic and shared libraries libraries. This means that instead of giving you a huge executable where the code to load a PNG is included, you get a much smaller executable that will load libpng on startup. Of course, this software may have minimum requirements on the libpng version while other software is unfortunately hit by a bug that only appears in recent libpng. These incompatibilities can sometimes be worked around, but mostly it is the job of a "distribution" to provide you with mutually compatible applications. When you start updating these apps by yourself, things can get complicated, but that doesn't mean there is any kind of malice/malevolence anywhere.