Originally posted by: Perry404
[
I know it was once termed copyleft law.
Also saying there is no "linux" is like saying there is no "windows".
Linux is Unix and it's the kernal that determines what software or game will or will not run. Basically this means if ID creates a game to run on the latest version of Ubuntu then it is likely that it will run on multiple flavours of "Linux".
Anyway thanks for the input. Just trying to gauge what it might look like if(when) this scenario happens.
I'm sorry, but you are wrong.
Here's a simple example.
glibc.
If distributions use different glibc libraries then software compiled for one will not run on the other. This is why moving from gcc 3.5 to gcc 4 was such a headache. Further more, what if your linux distro is gnome only and chooses not to ship and qt libraries at all? I ran gentoo for years without any kde/qt software on my machine. If software required qt it simply would not run.
Lets look at it another way, lets look at Xwindows. When we made the switch from xfree to xorg we had some distros using xfree that had good drivers and some using xorg that did not have good video drivers. This happened even recently with the newest ubuntu. At the alpha stage nvidia 3d drivers simply would not work. At one point there was even two competing compositing solutions and caused software incompatibility.
And one last way to look at it. How you distribute the software can control what it will run on. Are you going to ship rpm files? deb files? source code? write your own installer?
How are you going to do dependancy resolution to make sure I have all the right libraries installed. If I do not are you going to ship those with your software and possibly break my distribution? Or are you going to install them via my distributions package system? Where are you going to install your software? /usr? /usr/local? /opt? Are you sure those locations won't write over any libraries I might already have installed?
This is why modern linux distributions have their own package systems for installing software. Even in very closely related distributions such as ubuntu and debian it is very risky to take software packaged for one and install it on the other. They are simply different operating systems.
So again, there is no linux operating system. You can't get support for linux. You can't ask questions about what is wrong with your linux install. No one could help you. You have to ask what is wrong with your suse 11 install, or your ubuntu 8.04 install or your fedora 10 install. Why? Because they use different systems, libraries, and software.
Unix is not unix. It varies wildly from distro to distro. Try using solaris and ubuntu side by side and you will see the difference. Just try to install patches on both, write init scripts for both or compile software on both. Read the best practices guidelines on both. See if you can get your kde software to run on my usb stick install without X windows.
The only real way to release software that runs on any linux distribution is to release it as source code or write your own self contained installer that has every library your software needs and installs it all in it's own private folder. But both have large problems and disadvantages from a business standpoint.
This is why most commercial software for linux and unix variants only only support a limited set of distributions. This is why I have to run solaris 10 at work when I'd be much happier running debian. This is why I have a redhat server when I'd be much happier again running debian.