Free Ubuntu

I use Ubuntu Linux. Have done since the day it was released. And I like it. However, I’ve had more than one argument with Jono about what I perceive as its increasing move towards encouragement of non-free software. I don’t want to get into that argument right now, so simply take it as read that I’m concerned about it, and feel free to consider me wrong for being concerned; I don’t mind.

Some people will be saying at this point: what about GNewSense? That’s Ubuntu with all the non-free stuff removed, isn’t it? Well, yes, it is. I’d like to use it. However, I can’t, for (as ever) two reasons.

The first is that there is no upgrade path from Ubuntu to GNewSense. If I want to move, I have to do a fresh install of GNewSense. that means reconfiguring everything to work the way I like it to work. If you’re thinking that I can just back up my configuration and copy it over to my new gnewsense installation, then, well, perhaps, if I knew where it all was. I don’t have records of every config file I’ve changed; I don’t know where they all are; I don’t know if all my configuration will work on GNewSense because I don’t know what I’ve tweaked. I was surprised that I can’t just add the GNewSense stuff to my list of software repositories and tell my machine “go ahead and upgrade”. Apparently that’s not a goal for the GNewSense team; OK, no problem. I’m not going to tell them how to run their project. It strikes me that a reasonable proportion of their potential userbase is people who already use Ubuntu but want a genuinely Free version, but I don’t want to assume that everyone’s like me.

The second reason is that GNewSense is based on dapper, Ubuntu 6.06. I’m running edgy, the newer version, Ubuntu 6.10, and I don’t want to lose the improvements that edgy brought me. Now, again, I’m sure that that’s not a deliberate decision but just a lack of time on the part of the GNewSense development team, but this reason and the other one lead me to not be in a position to shift to GNewSense.

So, what’s the alternative? Well, I can’t really see how making a completely Free version of Ubuntu wouldn’t just involve (a) removing some packages and (b) rebuilding a few packages. I just don’t know which ones. I was hoping that I’d be able to find that out from the GNewSense people too, with the goal of me writing a “Free My Ubuntu” script which does all the removals for you: to get a completely Free Ubuntu without any restricted kernel modules, simply download real Ubuntu and run the script and you’re done. However, the GNewSense team’s workflow is oriented around you building a whole distribution using Ubuntu as a base, rather than about you taking an existing Ubuntu installation and turning it into GNewSense (or any custom version you’ve made) and so they don’t really have that sort of script.

Some people (different people to the ones who suggested GNewSense above) may now be foaming at the mouth about how I’m a free software zealot who’s standing in the way of progress, and that Ubuntu is Free, and that I should just shut up. Again, feel free to consider me wrong; I won’t mind. I’m not suggesting that Ubuntu isn’t Free enough for you, I’m just saying it isn’t enough for me, and luckily, because of the nature of open source software, I have the ability and the permission to take the 99.5% of Ubuntu that I like and combine it with 0.5% of my own stuff to create my own perfect operating system.

What I’d really like to see, in the fullness of time, is this entirely-Free approach be supported by Canonical and the Ubuntu distro, so there are no restricted modules, I don’t get offered the choice between free and non-free video drivers, that sort of thing. My wireless card won’t work, and I’m happy with that. Of course, I can understand why Canonical aren’t devoting a lot of resources to that, and I can understand and sympathise with the arguments in favour of the (very few) compromises in the direction of non-Free software that Ubuntu, the distribution have made (binary drivers being an example here, to increase market share and make it look as good as everyone else), and that Canonical, the company, have made (the commercial repositories, for example). If someone comes up with Frubuntu, or GNewSense changes its goal, I’ll happily move to them; in the interim, I’m thinking about, and trying to work out, what the best way is of stripping all non-Free things, binary firmware blobs, etc away from my Ubuntu installation. Feel free to comment on why you think I’m wrong but bear in mind that I have heard most of the arguments against before. I’d welcome help and suggestions here on how to do what I’m doing; in particular, if you have a comprehensive list of things with a disputed Free status then I’d be very interested in seeing it.

29 Responses to “Free Ubuntu”

  1. Ubuntu is “Linux for Human Beings”. I doubt very much whether “Human Beings” care a jot whether everything in “Linux” is free or not; they just want it to work. I think what you are looking for is Debian. Ubuntu has come a long way in “Just Working” TM, and that’s what Ubuntu seems to be about to me. Isn’t what you are asking for Debian, which of course you know Ubuntu is based on??? Surely this is the whole point of GNU/Linux; choice. Not “One distro to rule them all”. Incidentally, I am a Slackware/Ubuntu (Edgy) user myself :-). Right, now get back to working on Jackfield!!! ;-)

    reclusivemonkey
  2. I’d certainly be interested in a script to “Free” Ubuntu. Would modifying the installation ISO to remove the “restricted” repository and packages be sufficient, or do the core Ubuntu packages depend on parts of restricted”?

    And if people aren’t aware of the importance of the Freedom of Free Software then they need to be educated on why it’s a good thing. Then they can make their own decisions too.

    Tony Whitmore
  3. reclusivemonkey: Ubuntu has made everything work, and they’ve added a little bit of (arguable) non-Freeness. However, I don’t think everything works *because* they’ve added the non-Freeness. Some things are that way — for example, wireless cards with proprietary firmware, and the upcoming binary drivers to get Xgl — but the improvements that Ubuntu has made over Debian to the desktop, with upstart, with the visual appearance, with package installation from the GUI, these things are all perfectly free. If I were to go back to Debian I’d lose those things too, and those things are a pretty big part of why I like Ubuntu.

    Tony: I don’t know whether just removing restricted is enough. I believe that there are some binary firmware blobs in the kernel itself, but I’m light on knowledge in this area…

    sil
  4. Removing restricted from the repos won’t be enough, as, for example, the nvidia gfx module is in multiverse, although the “common” files for it are in restricted, which would presumably prevent installation of the binary blob if the restricted repos were unavailable.

    How much non-free stuff is in the default kernel, I couldn’t say, but I suspect that most non-free kernel bits are split off from the main package.

    Andy Stanford
  5. You could install vrms (Virtual Richard M. Stallman :-)), which allegedly flags all non-free packages one has installed. It may not be as thorough as GNewSense, though…

    Raf
  6. Stuart, you might be better off just switching to a distro that has a more sane policy towards the use of non-free software. There’s plenty that have just as current software, but don’t push non-free software by default.

    Brian
  7. Removing “restricted” component “almost there” already. The multiverse if by definition non-free software (though it includes both eg. mplayer and then binary blobs like Sun’s Java), so that’s not a problem.

    Just use main + universe, and whatever you want to install by yourself. The only partially non-free piece with main + universe is the kernel itself (please correct if I’m wrong!), which does include a few firmware files - is there anything non-free left if you rm -rf /lib/firmware? And actually are there some free firmwares distributed there, ie. firmwares that also have source code? I’m not sure why, but some firmware files in Ubuntu are in linux-image binary package, and some in linux-restricted-modules, buth both include definitely non-free stuff. Maybe the main ones are freely distributable, while for restricted Ubuntu has separate deals with vendors to distribute those files.

    From my point of view, if they’d really make the kernel image in main Free, and made the “restricted” part installed only when needed (eg. on laptops with WLAN that doesn’t otherwise work), I’d be fine with Ubuntu. So far they haven’t done so, though, but even currently removing the restricted component is quite enough - if I were a Gnusense developer, I’d work with Canonical/Ubuntu to find ways to improve Ubuntu by offering patches etc. to a better direction, and minimizing the restricted component always when possible - I’m sure Ubuntu people are doing this also, but the Gnusense staff might have good ideas.

    Anonymous
  8. raf: I know about vrms, don’t worry :) I don’t think it’ll detect, say, binary firmware blobs in the kernel.

    Brian: There is no distro, as far as I know, which does things the right way and has “a more sane policy” toward free software. By “the right way” I mean the right way for me, and by that I mean that they focus on users, not hackers. Ubuntu, for example, doesn’t come with a compiler by default; that’s the right thing to do. Ubuntu are prepared to think about how to make the system better, with things like upstart. Ubuntu integrate their applications together. They write applications in Python. They meet damn near all my goals. Switching to some other distro is not an option unless they’re as good as Ubuntu, and there aren’t any. Feel free to name your suggestion; I might not know about it.

    Anonymous: exactly. You’ve described the very question I’m asking; can I just remove /lib/firmware? Would I then be removing some genuinely Free firmware? What else might be debateably non-free? I don’t know how to answer this question.

    sil
  9. Have you tried many of the other leading distros lately? Most of them have been writing their tools in Python for a pretty long time (ex. Redhat/Fedora).

    For me, it’s more important to have a fairly secure machine (whether by SELinux or AppArmor, which last I checked Ubuntu didn’t install either by default), and to have technologies like Xen work well out of the box.

    Brian
  10. Aq, I have been thinking about this myself recently because I would like to have an entirely free system. But my question to you is, why are you concerned about Ubuntu’s “encouragement of non-free software” when in you (and most other people) don’t have a problem with Ubuntu preinstalling a JavaScript enabled web browser? In other words, what exactly is the difference between Ubuntu making it easy to install flash, adobe reader, etc, and making it easy to surf to a page with JavaScript thus running non-free code on your system?

    I imagine as web-based apps become more popular, this will become a bigger issue. Just wondering what your opinion on this is.

    Laszlo

    Laszlo
  11. Laszlo, JavaScript is free in free browsers like Firefox and Konqueror. JavaScript support is a part of their code, not a separate plug-in. You seem to confuse it with Java. Except that Sun Java is becoming GPL’d.

    Pseudonymous
  12. Assuming Ubuntu is Debian based (an assumption which should be correct), the list of configuration files should be the output of:

    cat /var/lib/dpkg/info/*.conffiles

    Copy the entire list of files somewhere else.

    At this point, if you really want to be more thorough, install cruft, and check for added stuff that isn’t part of the default system. It has been a while since I’ve used it, so I’m not sure, but I believe it creates temporary files for each filesystem/file type (missing, added) combination. Check the listing for /etc/ and added files, and that should pretty much cover you.

    As for the problem that GNewSense is older then Ubuntu, I guess you can just wait, but moving your configuration should be solved.

    Anonymouse
  13. No, I realize the difference between Java and JavaScript. What I am saying is that when you visit a website, you download non-free JavaScript code that is embedded in the HTML file. It doesn’t matter that the JavaScript interpreter is free, the code is still not. This is roughly equivalent to running non-free code that was compiled using a free compiler. Just because the interpreter is an entirely free implementation, the code is still encumbered.

    Laszlo
  14. Laszlo: indeed. The whole issue of web apps not being open is one we’ve discussed on LugRadio before. I…don’t know how I feel about it. (I ought to note that JavaScript isn’t the problem here; the web app isn’t open and I’m still using it, regardless of whether it uses JS or is just server-side non-free code that generates pure HTML, or whether it’s just static HTML.)

    sil
  15. Anonymouse: what about configuration in my home folder? Can I copy all the stuff that’s in dotfiles? What if version numbers differ for applications between Ubuntu and GNewSense? Can the apps handle an older (or newer) version of their user-level configuration? What about stuff in gconf?

    sil
  16. Laszlo and sil: is the web apps (but perhaps not the client-side javascript apps) question analogous to the question of ATM machines? It can be argued that using an application consisting of a piece of non-free software running on a computer not under your own control is not as “bad” as actually running the software yourself. If you accept the ATM argument, that would absolve you for using server-side web apps, but not non-free javascript running on the client side.

    As for Ubuntu -> Froobuntu, I have no idea, but I wish you well. :)

    gnudoc
  17. Hi.
    Silly me - I assumed you’re going to copy your home directory. I just gave extra instructions to make sure you can copy everything else (so the system will be close to identical).
    Copying the home directory should work.
    I’m a GNOME user, not a developer, so I can’t guarantee that the differences won’t matter. I’m *guessing* that the differences will be slight - in such a situation, you’ll probably have 90% (or more) identical with your Ubuntu system, and can then fix the rest.

    BTW, I don’t know how much you’ve changed your configutation. When I installed Debian on a new computer at work, I didn’t have any configuration files from my home computer.
    I think that after a week, they looked identical, so I couldn’t really tell the difference. And it was a week of working on the computer, and very occaisionally changing things that felt wrong, not a week of changing the configuration.
    You might find out that you haven’t changed the system as much as you think.

    Good Luck

    Anonymouse
  18. I met Brian Brazil of gNewSense a few weeks ago, and there was a lot of talk about what gNewSense does, what it doesn’t do, and what would be nice if only there were more resources. Seems that there’s a lot that WOULD be done if there were more time, servers, developers, etc. Right now they’re concentrating on the most important things for them with the available resources. If any capable developers would like to help I’m sure they’d appreciate it.

    Now, on to the “freedom” rant. You’re using Ubuntu and like it because it just works and it’s not a hackers-only distro, yet you’d like it to be free. Well, you’ve made your real choice already. You’ve opted for non-free. If you can’t give up a little convenience to be free then free isn’t very important to you. I, also, would like my completely free stuff to be slick and convenient. The one way to make that happen is to only use free stuff, and support making it slicker and more convenient in whatever way you can. Write code, donate, make graphics, test, or whatever YOU can do. Anything else, in the end, is just whining. Sorry, but there it is.

    dwc
  19. dwc: I’d argue that choosing Ubuntu (because it just works, and isn’t hackers-only) shouldn’t have to imply that you want to choose non-free software.

    Aq, I’m concerned about this as well. As I see it, the main problem is that gNewSense does not want to use Launchpad, because the code has not been released. Hence, it becomes difficult to develop the same kind of Ubuntu integration that other derivatives manage. Even just a bzr server (hosted elsewhere?) might help; finding a way of reusing all the Ubuntu scripts for building CDs, and so on.

    The problem with Builder is that you have to develop a script that can automatically make changes to specific packages; in my opinion, for high-quality repackaging, the changeset might end up so involved that a bzr branch is the only reasonable way of doing it.

    I’m just trying to work out how to get all that together.

    Tim Retout
  20. dwc: a little while back, I considered that Ubuntu *was* free. However, I didn’t know much about firmware and binary blobs at that point, and so that didn’t enter into consideration. It now does. That, combined with the other things that I mentioned, have led me to believe that Ubuntu might not be *quite* free enough for me. So I’m trying to move.

    I’m sure some “capable developers” might be able to help the gNewSense team, but when I offered there was a pretty chilly reception. I’d like to help people move to gNewSense without blowing away everything and reinstalling, but that’s not one of the team’s goals. I’d like to (as mentioned above) help people install Ubuntu and then remove the debatably non-free bits like firmware, and that’s why I’ve asked for some pointers as to how to work out precisely what those non-free bits are. I’m open to suggestions: what else do you think I should be doing at this point to find out? If you have other ideas about where I should look to get a canonical (!) list of all the debatably non-free stuff in an Ubuntu install, so that I can build something to remove it all, I’d love to hear it. Speak up; it’s harder to help than to carp and criticise, but I’m sure you’re up to the challenge.

    sil
  21. Removing the restricted and multiverse apt sources will, as has been mentioned elsewhere in the comments with some measure of doubt, absolutely leave you with a fully Free Ubuntu (although you might question the Firefox logo I suppose).

    Chris Jones
  22. Chris Jones: there’s no firmware at all in the linux-image package? None? The thing that concerns me is that there may not be any non-free things in there _by Ubuntu’s definition_, but they don’t seem to mind non-free firmware blobs. That’s fine, and it’s their decision, but I think I take a slightly different view, and I’d like to know how to contort the thing to match my view :-)

    sil
  23. [...] as days pass by scratched tallies on the prison wall « Free Ubuntu [...]

    as days pass by » Blog Archive » Freedom vs. Features
  24. A very programmer-orientated debate. As a user: why on earth would I want to switch to Ubuntu from Windows if I had to give up my network card, graphics and odd USB dongles? I buy a computer so that I can use it to do stuff, not as a political statement. I want cheap stuff that works.

    Ross Parker
  25. Ross: then that’s your approach, and I’m not going to stop you. My counter-argument to that would be: why would I ever want to switch to Windows from Ubuntu if it meant that I had to start paying for upgrades, that I had to hunt down drivers for my stuff over the internet, and I had no way of talking to the people who can actually fix any problems I have without paying ninety-five dollars for a support call? Ubuntu has some advantages, Windows has others. I ought to note that Ubuntu is likely to support all of your network cards, graphics, and odd USB dongles; I’m talking here about me personally moving *away* from Ubuntu for what I consider to be ethical reasons. I’m not suggesting that anyone else does the same; people should stick with Ubuntu.

    sil
  26. Stuart, here are my experiences, as an Ubuntu Edgy user who shares your concerns.

    vrms is OK as far as it goes, but it doesn’t catch popular non-free packages like flashplugin-nonfree. On a fresh Ubuntu install, it flags 4 kernel packages:

    1. linux-generic (false positive, this is a virtual package)
    2. linux-restricted-modules-generic (false positive, this is a virtual package)
    3. linux-restricted-modules-common (false positive, these are just helper scripts)
    4. linux-restricted-modules-2.6.17-10-generic (actual non-Free software is here — madwifi, ATI/nVidia drivers, etc.)

    You can “sudo aptitude remove” all of these at once if you don’t need the non-Free drivers. The downside is that you’re removing important virtual packages that Ubuntu uses to manage upgrades smoothly, so you may want to reinstall the virtual packages before doing a major version upgrade.

    Multiverse has lots of useful Free Software which has patent problems (like mplayer, faac, faad, and other video-related stuff), and, as has been noted, some non-Free software. Even if you remove multiverse from your sources.list, it will not remove multiverse packages that you previously installed. You can type “aptitude search ~i~smultiverse” (spacing matters) to see what multiverse packages you currently have installed, then investigate them individually to determine why they were dumped into the multiverse ghetto in the first place.

    On the down side, the more general situation about Ubuntu’s commitment (or lack thereof) is going to get worse before it gets better. Feisty will ship with more binary blobs than ever — never mind the drivers, they’re even going to ship a non-Free version of Firefox! I may just jump ship at that point. To what, I have no idea.

    Mark
  27. Mark: yes, indeed. At the moment I’m trying to put together a list of everything that I’ve got so I can build a script to remove it, but the virtual packages thing is a problem; Edgy seems to be set up so that it’s basically not possible to simultaneously (a) remove all the non-free stuff and (b) have upgrades work properly. I’m going to talk to the Ubuntu kernel team about that particular issue.

    Additionally, the base kernel package (not the restricted modules package) also contains non-free firmware — the Debian atmel-firmware package, for example, is in the kernel package in Ubuntu, so removing it means rebuilding the kernel package without it. Making one script to do all the work is turning out to be difficult, but it shouldn’t be impossible.

    sil
  28. I also share your concerns. I have been using debian for two years, ubuntu for eight months and I have recently installed gnewsense in a spare partition (so I have a tri-boot GNU/Linux box). What bothers me most is not that ubuntu (and to a lesser extent, debian) ship non-free components, but that I, the user, am not able to know exactly what is free and what is not and so can not easily choose not to install non-free drivers or firmware. On the other hand, there are (still) non-free sofware that I am willing to install (java, for instance). I would just like to have complete information and freedom of choice.

    Paulo
  29. [...] Those of you who are thinking “who the fuck cares?”, read my previous request for this to happen and particularly Freedom vs Features to find out why I care. You should also read Jono Bacon’s Features vs Freedom; if you fall on his side of the fence rather than mine, that’s fine, because in October we’ll both be able to be Ubuntu users without a problem. We can both be part of the conversation. [...]

    as days pass by » Blog Archive » Ubuntu 7.10 to be properly Free (if you want)

Leave a Reply