In my years in software development since Linux has taken off in popularity enough to warrant commercial software vendors porting their wares to it, one thing I’ve seen vendors having trouble with is dealing with the massive number of different Linux flavours out there. Back when we were just Windows and Unix (commercial *nix’s if you will), life was so much easier. The operating system vendors ensured that the releases were well defined so that we could easily put together a reasonable list of supported versions for our products.
With Linux, it really is next to impossible to do that. Novell and Red Hat do fill in that role as commercial Linux vendors that provide a stamp of approval over their versions of all the packages that go into a Linux distribution. But, really, none of the developers I know that are using Linux are using any of those commercial Linux’es. They’re using Fedora, OpenSuSE, and more lately Ubuntu. It really is impossible to validate your products against all the possible combinations of Linux that your customers may want to use.
But, I then ask the question, so what? How different are these distributions anyway that makes it so hard to support Linux. Yes, you may have version differences in the packages, and things like the major versions of GTK can break under GUI applications like Eclipse. Also, it’s pretty confusing the number of different ways to set up user’s environment variables, but then applications shouldn’t be relying on that anyway. I really wonder if there’s much else that can affect most software products.
It bugs me every time someone tries to explain away a bug with, sorry, that version of Linux isn’t a reference platform so we can’t look at your problem, especially when the person is using a recent distro like Ubuntu. But it really does speak to the challenges that software vendors face with the fragmentation of the Linux market. But I guess it’s part of the price we pay for “freedom”.