Corey, the distinctions between software that enables the hardware to function fully, and software that delivers a specific feature, are manifest.
Ubuntu has included firmware, and used proprietary drivers since its inception. That’s always been a slightly uncomfortable proposition, as Mako observed, but it’s been true since the Warty Warthog. Even Debian goes some way along that road with its inclusion of firmware and other non-free bits, suspending belief in the DFSG in this particular case. We discussed this at length in one of our earliest summits and settled on the hardware enablement vs apps boundary.
It’s worth pointing out that all of the applications that will be enabled by the AcceleratedX decision are free software applications – Compiz/Beryl and related work are all about showing what is possible at the cutting edge of free software. The hardware to run this is part of the very basic standard PC offering today, but the drivers to enable that functionality are tied deeply to hardware that is not publicly documented. The vendors concerned each have their own strategy – some open, such as Intel, and some closed, such as ATI and Nvidia.
We lobby the companies concerned to open up their drivers, and to a certain extent we can apply market pressure, directing users to hardware which DOES have free drivers which I believe is a much more effective approach than “preaching from a distance”. It’s always better to engage and work with someone than to sanction them and isolate oneself. I’m certain that this strategy moves the free software agenda forward more effectively than any other. Our strategy has already put us in a position to influence significant open source strategy with major companies, and we have used that leverage to accelerate their embracing of free licenses. It’s not always possible to claim public credit when that happens, but I’m sufficiently convinced of the merits of the approach that I feel very good about the impact we are having in the world. I think Ubuntu will have a bigger chance of helping to convince Nvidia and ATI to take an open approach if we build a good relationship, apply market pressure, and get them to see the benefits to them of the open source road. We will, I think, get them there, but not by pouting and yelling insults from our high horse. Remember how little power we really have in that discussion, and remember that free software progress has always been made by playing to our strengths. For a very long part of the history of free software it was ONLY possible to run GNU tools on a proprietary OS.
We can’t assume fancy graphics functionality will be on every machine Ubuntu is installed on, we can however allow X and free software apps to take full advantage of it when the hardware is present. I’m very happy that it is possible (and straightforward!) to remove the non-free drivers from Ubuntu, and I don’t believe that the AcceleratedX specification will change that. In fact, I worked quite hard to get Gnubuntu (an ISO of Ubuntu without any restricted elements) off the ground – it has effectively now emerged as gNewSense and I would encourage you to use that if this is a touchstone issue for you.
I hear you when you say “users want proprietary codecs”. That’s why we make sure these items ARE available, at the user’s option, as packages on the network repositories. That allows users who need that functionality, or who choose that functionality over free alternatives, to exercise that choice freely. We don’t make that choice for them, though of course there is huge demand from real users for that. And we will stay firm in that regard. Ubuntu does not, and will never, include proprietary applications.
Why NOT include those items? Because they exist in free forms, for a start. There are free implementations of MP3 and MPEG and other proprietary codes, and in some jurisdictions its perfectly legal to use them. In time, it will be legal to use them everywhere. That’s not true of drivers for your graphics card. Refusing to include the proprietary codecs, and Flash, and until recently, Java, is part of what defines Ubuntu’s core set of values. So is making damn sure the OS enables the hardware you run it on. In the case of modern graphics hardware, which is the particular item that you are talking about, we are getting to the point where the majority of the transistors in your computer are devoted to pixel and vertex shading, and dead unless you enable them properly. So it’s silly to say that this is “unimportant hardware functionality”.