Project Jigsaw is Really Coming in Java 9

steam shipping GPU drivers is pure hear-say

I should've written that otherwise, sorry for that. They statically link against the headers of specific versions of fglrx or nvidia drivers. People that have a graphics card that has full 3D support, full OpenGL API support still might fail if they use a different driver. For example, any Radeon HD card with the radeonhd open source driver will fail and steam won't start, because Valve developers think that there's only one driver which clearly is false :)

I don't comment on the compiler-on-user-system solution. I think we both agree that this is just a ridiculous solution and not practicable at all.

copies that .so into the game-folder for shipping, do you think that will work out?

Of course not, because you as an application developer never have the rights to mess with any kind of operating system. The idea of shared libraries is that you link against them and that's it. The maintainer of the operating system is responsible for offering the shared libraries in that specific versions. They work if you do it right and if you have a proper library as a dependency in your package. That's basically why package managers exist.

my-program.deb requires libsdl2-somefancyversion before it works, so it's linked against libsdl2-somefancyversion.so without me having to ever ever ever ship or touch the library myself.

So a special build would need to be made

Valve as a distributor of libraries for game developers should simply use their own already-existing ppa to offer the libraries in specific versions as single-to-install debian packages. That's it, whole world of problems solved. Then if an older game links against libsdl-oldversion, it's simply there in the steam PPA and will never ever be going to cause any problems, if it's properly tagged :)

The linux ecosystem does not currently provide any kind of solution

PPAs? The Depends section flag in debian packages (well, other package formats, too)? Any kind of package manager of any kind of distribution?

If Steam wants to properly support Windows and OSX, they should've gone the package manager way. They should've simply built their own package manager (if none exists already, ignoring nuget and homebrew and pkg for osx and what not) and tagged all libraries properly. Now they have a shitload of libraries in specific versions shipped and the size increases linearly with the amount of time; well, until some day there's not enough free HDD space to install Steam anymore.

/r/programming Thread Parent Link - infoq.com