Hi,
On Debian Jessie to use the official X11 wrapper package and also the OpenGL wrappers IIRC, I had to modify the .so library name to include the version number. E.g libX11.so -> libX11.so.6
Wouldn't it be safer for these wrappers to explicitly declare the library version? While the --dynlibOverride cli option is available to control this, I think loading any version of the library should be the override, not the default.
Thanks, Ollie
You need to install the -dev package to get the symbolic link to the .so version.
Depending on who you ask, this is either essential for having sane shared library behavior or more evidence that Linux packaging (well, Debian at least) is horribly broken.
And yes, this is why Nim allows you to specify alternate versions (which, unfortunately, breaks override mechanisms such as LD_LIBRARY_PATH, because now the library version becomes more important than the precedence rules). No, there just isn't a good solution.
Linux packaging is horribly broken? Surely you must have meant Windows packaging :-P
Installing the dev package, and all of it's dependencies, is definitely not a good solution IMO.
This smells very similar to the days when "DLL hell" was an issue. Libraries are versioned for a very good reason, & loading an arbitrary version when you have complied against a specific API version is just asking for trouble.
I'm not sure if the alternate versions approach is a good thing. At first glance it looked pretty convenient but when I think it through I'm worried that it sacrifices correctness for the sake of convenience.