I’m been perplexed by the recent fracas around the possibility of Ubuntu shipping non-free drivers by default as part of the feisty release goal to bring the bling. The issue has been discussed by many people, most recently and eloquently in a blog post by Scott James Remnant.
I have never been 100% comfortable with our (Ubuntu’s) decision to ship proprietary drivers. The Ubuntu philosophy document — which Mark Shuttleworth and I drafted originally — says quite unambiguously:
Every computer user should have the freedom to run, copy, distribute, study, share, change and improve their software for any purpose, without paying licensing fees.
I believe this deeply. Consequently, I feel that binary drivers in Ubuntu are, and always have been, a failure to live up to our principles. If our philosophy document is still representative, most people in our community should be a little uncomfortable with them — even if they think, as most of us do, that shipping them is the correct thing to do.
Early on Ubuntu decided that binary firmware and hardware drivers would be distributed and quasi-supported in restricted. While not completely comfortable with the move, I could understand and defend it for three reasons:
- The drivers were easily removable and not enabled by default unless necessary to achieve functioning hardware.
- As part of this process, we promised to work with vendors to accelerate the freeing/open-sourcing of their drivers.
- Perhaps most importantly, I couldn’t imagine not using them if it were the choice between non-free drivers or inoperable hardware.
The proposal to include proprietary nVidia driver in place of the existing free nVidia driver is important because it changes, or eliminates, the first and third justifications. Since the first issue has been discussed in depth, it seem appropriate to focus on the third and final point. The point is perhaps best introduced with an observation:
While I have met many people who research and buy hardware to avoid the need for non-free drivers, something I do myself, I have never met anyone who voluntarily chooses inoperable hardware on a computer they use over working hardware through a non-free driver.
While not airtight, this observation is precisely why the old policy of using non-free drivers only when no free drivers exist works so well. By effectively synonymizing use of the non-free driver with use of the hardware, the crisis created by non-free drivers is rendered paradoxical: anybody using a piece of hardware that only works with non-free drivers is, by definition, either using non-free drivers or not using the hardware. The only way to not use non-free drivers in situations where no free drivers exist is to not use hardware that requires them. If you use different hardware, you will not need to use non-free drivers. This important justification is completely inapplicable to the proposal to include non-free drivers in place of free (but not perfect) alternatives.
Second, while shipping non-free drivers is wrong because we lose our freedom and violate our philosophy, the desire for basic hardware support is universal and important enough that it’s defensible. One reason that the "binary by default for bling" situation alarms me is that I don’t believe that the desire for desktop bling is as universal, or as strong, as the desire for working hardware.
An analogy might be stealing food to feed your family and stealing a CD from the record store. Both are wrong because stealing is wrong, but I have a lot more sympathy for the hungry thief in the first example because CDs are not as necessary as food and because many people would rather go without a new CD than steal. We can ask: "Which is worse: selling your soul for a decent job or selling your soul for a PS3?" In an absolute sense, neither is worse; but it’s easier to support the former than the latter. I’m very impressed with Beryl — but I have trouble empathizing strongly with the need for a spinning desktop cube.
New users may be impressed and attracted to an Ubuntu desktop powered by proprietary drivers. They might also be impressed by proprietary applications. However, it is self-defeating to attract new users to our free platform and principles by compromising our core values. Many users already make the decision to use non-free video drivers and Ubuntu makes it very easy to do so once they have made that choice. Installing binary drivers by default is choosing for the large number of users who will stick with any default. It may be a conservative stance but as long as we believe that a non-insignificant number of users would choose to live without bling before compromising Ubuntu’s philosophy and goals, we should make the difficult decision to side with freedom by default.
When discussing this issue, many people say, it’s not my decision or it isn’t my call. Regardless of whether anyone agrees with me and regardless of who the final decision is up to — and it’s not clear to me now — I believe that the Ubuntu community has the power to inform and shape the development of their distribution. As the Ubuntu community, we can make our position heard. The best place to do that right now seems to be the Accelerated X specification comments page. One can also email the the Technical Board (for technical comments) and the Community Council (for principle or philosophy related issues).
As I said in my email to the Community Council, I am deeply concerned about this. Good to see that people don’t think that spinning cubes are necessary, by default. I believe in the freedom of people to install binary drivers, but I think it is an informed choice they have to make.
Anyways, I have blogged about it here: http://robotgeek.org/blog/2006/11/26/feisty-and-a-shiny-cube-updates/
If I have your permission, I would also like to make the emails I sent to the community council public.
Well said. Thanks. You’ve expressed what I and probably many others in the Ubuntu community have been thinking.
I cannot agree with you more, but i believe installing drivers that get the most out of your hardware (atleast until better FOS Drivers come out) and perhaps bling by default (considering it’s so popular among ubuntu’ers (AFAIK)) should be an OPTION (read: not default but available) from the ubuntu CD, that way both sides are happy. If you don’t wanna install Proprietary, Don’t, if you Do, go for it. Again atleast until the nouveau project gets something usable. The ride to 100% FOSS has to be transitional, grey not black and white.
Thanks Mako, for putting in words what I feel. Being an ordinary Ubuntu User, I was and still am attracted by Ubuntu’s philosophy.
When I first used Ubuntu 5.04 and MP3 didn’t work out-of-the-box, as well as many other multimedia stuff, it was not the most convenient situation. But it was explained to me WHY this is the case, on the website, in ther german Ubuntu forums, and I was more than happy to trade a little convenience for something more important – freedom. After all it was not really hard to make all this things working.
Since then, the situation has further improved and still is. For those who need restricted formats and drivers, the extra work to do becomes smaller and smaller. That is great, but I’d really like the process of incorporating proprietary drivers/codecs to stay a manual one, because it raises the awareness for important issues. So please, Ubuntu, streamline the process of installing proprietary stuff and, more importantly, make a statement WHY people with the need to bling have to do 2-3 extra klicks.
In the end, I think freedom is the core value that sets a Linux distribution apart from everything else. It’s its unique selling point (forgive the pun). If you start compromise this for short-term market share, I don’t think the long-term effects will be benefitting. Convenience is NOT king. It is nice to have once things are right.
As a data point, I don’t use the wireless on my laptop (and went through a painful Guadec this year without it) because it’s a Broadcom chip and I don’t want to use ndiswrapper. The free Broadcom driver is improving, but it’s still not at a stage where i can use it regularly (although I’d probably muddle through Guadec with it in its current state, which I couldn’t do back in July). This makes me an aberration, I admit, but I thought I’d provide a counterexample. I’ve attempted to give justifications for this on past episodes of LugRadio, but most people think I’m insane for it…
Mako, thanks for great post.
I think Ubuntu needs public mailing list to discuss policy issues (like ubuntu-policy). Just mailing Community Council does not open the required discussion needed in controversial topics. If we look at Technical Board, there is ubuntu-devel mailing list where technical issues can be discussed and we need something similar for policy/community issues. Even if it is moderated/restricted (but still with public archives) as it the current plan with ubuntu-devel. And yes, I think ubuntu-sounder is not the right place.
Make the installers explain why, and give choices. To non-free drivers and explain the multimedia codec, everything. When people do not get the same quality they expect from Windows or OSX they do get pissed, and its not a reasonable reaction but they do. My experience with people new to Linux is that they’re incredibly quick to anger. “No 3d? Linux fucking sucks. No mp3s? I’ve had this in Windows since forever” Informing them from the start why its like that, and giving informing them about their choice. Ubuntu needs to be a contender on the same plane as the “other two”, and that might mean some unpleasant compromises, but I think it will only strengthen the Linux movement in the end. It is important here with ease of choosing and the users being informed of why things currently are like it is. It might be uncomfortable, but Linux honestly needs a larger install base, and someone needs to make these uncomfortable decisions soon.
I feel like I’m in an unusual minority who uses the binary nvidia driver not for its 3d support, but for its ability to drive DVI output at 1600×1200 instead of maxing out at 1024×768. While this is probably just an inability of the free driver to initialize the card properly, I don’t have the time to fight the good fight. I hope the nouveau effort will at least resolve this aspect.
Venkat, the emails you sent are your emails. You are free do to what you’d like with them.
Nice post, thanks for information. Maybe we could try to make initiative trough LoCo teams, since Serbian one that I am coordinator of, insists on free software for example. Better said, we do not force people to think this way, because our Ubuntu community is aware of freedom so new users get the right information. Many of them understand and adopt it.
In the end, if some users need nonfree software, all right, under certain circumstances (it is better to have functional hardware on Ubuntu than functional Windows since sometimes choice like this must make be made), but it must be clear that using proprietary driver is not something to be proud of…
Mako, thank you for this nice post. You really cheered me up: I’m happy to know that somebody among “ubunteros-who-matter” has this kind of opinions. That’s mine as well. I think the most important feature a GNU/Linux distro can offer to we the users, is anything but our own freedom.
It’s been almost thee years since I first met the Free Software world. I didn’t install my first Mandrake only because I wanted a better OS than Windows. A better choice probably would have been Mac OS X.
I picked a Linux distro because of the PHILOSOPHY. This is the point.
About non-free drivers:
Nowadays almost any user, if I don’t get wrong, is able to download and then install all non-free drivers he/she wants! I agree on the need of making easier their installation too, but that’s another topic.
Finally I have to highlight the words at the very end of your post.
I hope the Ubuntu Community will take the right decision for the Community’s own good.
and my compliments for your blog and your work…
p.s. sorry for my bad English :)
Totally agree! I’m just getting started with Ubuntu, and the philosophy of being free by default is one of the big attractions. I’m more interested in building and being part of a community that values freedom more than bling. Optional is ok, but defaults are permanent for most people, so we’re just defeating the purpose of free software by automatically starting people with proprietary gewgaws.
I fail to see why people object to binary drivers. It is surely reasonable to regard the driver as part of the hardware – the hardware wont operate without the driver, and importantly from a free software perspective the driver is useless without the hardware.
The hardware itself can never be “free” in the free software sense, not until Star Trek like replicators are available (dont hold your breath), since hardware cannot be copied or modified. So why does the driver need to be free?
Do we really want volunteers developing drivers for companies making money out of selling hardware, e.g. unpaid employees? Should the hardware company hold up product launches until some volunteers have agreed to write drivers for a new product? And if the manufacturer writes the drivers and then open sources them, who maintains the source? The manufacturer or unpaid volunteers? Or both? Should the drivers then be forked and have two versions?
Its true that if there is a bug in a closed source driver then the open source community cant fix it, but then they cant fix a bug in the hardware either. The manufacturer will have to fix the bug – as they surely should do, since they put it in the software in the first place.
Open source drivers make sense for hardware with published standard interfaces that seldom change, or they make sense when the manufacturer has ignored Linux and produced no closed source driver, but if the manufacturer has woken up to the importance of Linux and wants to write a closed source driver, let them, and thank them for it, and then the community can get on with something else and not waste valuable time doing what the manufacturer should have done in the first place.
If you object to proprietary drivers from an ethical point of view, then surely you should also object to proprietary hardware too – whats the difference? If the driver is open sourced the hardware is still proprietary. I dont see the logic or the rationale of objecting to one and not the other.
In order to be consistent, we should also demand the manufacturer open up the design of the hardware also (there are free and open hardware designed in existence already – a large number of them, including many cpu’s). Surely if we do not we are being hypocritical.
I agree with your basic premise here, that distributing proprietary drivers should cause vague feelings of discomfort, and that we generally should not be happy with Ubuntu until the entire system is completely free.
However, I strongly disagree that this should keep Ubuntu from distributing proprietary drivers by default. The people this affects are not the people who could make a difference – the ones with the conviction to support free software and the knowledge to write the drivers. Those people all already know how to install the proprietary drivers and can make the choice. The people this decision impacts are the ones who don’t have the ability to make the choice.
By default, the system should enable everything as best it can. Once the system has come up and is fully installed, it would be reasonable to display a few warnings to the user: “Would you like to switch to the free driver for your nvidia card? While it may have reduced functionality, (insert argument for using free drivers here).” Most users will say “no”, but the ones who care about free software can say “yes”, and they are more likely to be the technical experts.
The real principle here is freedom, not simply software freedom. Having the system intentionally cripple itself in the name of “free software”, unless you know the appropriate command-line esoterica to restore it to full functionality, does not empower users or give them any real freedom. It simply teaches them the lesson that Free Software people are just assholes who want to break your expensive dual-head graphics setup, and if you stick with Windows, it will work.
If you think that you’ve successfully resisted proprietary software because you are an expert, consider that there are plenty of non-free components in your desktop already. The wiring on your commodity CPU is certainly heavily protected by copyrights and patents. Similarly, the GPU that the “free” drivers are interacting with is not a “free” component itself. If that’s too far removed from “software”, then consider that your BIOS is a regular old piece of proprietary software, which you can install updates to with a Windows installer, and it is “on your computer” in the same sense as any software on your disk.
How would you feel if you had to flash your BIOS or solder some pins that were previously unknown to you in order to get the next version of Ubuntu to play stereo sound? That’s the same level of frustration that you’re asking normal users to endure.
It would be, I think, a good compromise if Ubuntu provided very very prominent notices – pèerhaps such as those in cigarette packs – at startup everytime that told users how those drivers proprietary license is bad and how they should pressure government and the related companies to enable free drivers.
I have also forgone the use of TV output, Winmodems, and wireless cards because there were no free drivers. So you have met people who chose non-working hardware over non-free drivers.
The consensus among the comments seems to be that Ubuntu should try to make it easy for users to make an informed choice in the issue, and I agree with that.