samedi 16 novembre 2013

Fedora, a non-gnu distribution? Or blobs and *-firmware: states. UPDATED

Reason of update: Kevin Kofler add some (important) information in this [9] comment. Thank you!


Recently, I sought Fedora in the GNU free-distros list [1], and surpise, Fedora isn't in this list! However, Fedora has a serious political about the inclusion of proprietary softwares... On other page on enlighten me [2]: 

"Fedora does have a clear policy about what can be included in the distribution, and it seems to be followed carefully. The policy requires that most software and all fonts be available under a free license, but makes an exception for certain kinds of nonfree firmware. Unfortunately, the decision to allow that firmware in the policy keeps Fedora from meeting the free system distribution guidelines. "

Fedora include proprietary software? A quick search redirect me to this part of the Licensing wiki page [3].

"Some applications, drivers, and hardware require binary-only firmware to boot Fedora or function properly. Fedora permits inclusion of these files as long as they meet the following requirements:[...]"

Well, it's for support most hardware... Update: Firmware are exucted on the target devices, not ont the main CPU. To verify if your equipement is supported by open-source application, you can try a Live CD of a totally free distribution (like Trisquel [4]), and see if your hardware work correctly.
On that case, you can run:
   # yum remove *-firmware
This command will be remove all proprietary firmwares, the naming guidelines oblige a name like <foo>-firmware. You can also see the wiki page of the SIG firmware [5], if you want to help to remove them of the project. But, even if you ran the previous command, your fedora is not totally opensource...

After a discussion about proprietary softwares in the #fedora-devel-fr on channel with some (friendly) french contributors, I run a:
   $ yum info kernel
And I can see that:

Licence: GPLv2 and Redistributable, no modification permitted

What? Kernel isn't under free license? After some french contributors, it is a fact from blobs (I can't found any "official" information about that). What is blobs? B.L.Ob [6] "a closed source binary-only driver without publicly available source code". Update: Blob are also firmware. The Fedora kernel not have binary-only drivers. Upstream work on that, you can help if you want. So, the linux kernel, the base of Fedora, is not totally free... That a very big problem!

To work with a totally opensource fedora, you can find some help with the freed-ora project [7], his homepage describe the procedure to change Fedora on a free distribution. Freed-ora have an active support, the last kernel was built the 26 october 2013 when I write this lines (the 16 november 2013).

The solutions:
I thought about some solutions about this problem :) I class their in order of importance (for me):
- Create a wiki page about blobs in the kernel.
- Add an option in Anaconda "Add proprietary firmwares" to allow a choice for users.
- Work actively on this problem (certainly resubmit this feature [8], I don't understand why it is abandoned). 
- [Add a "kernel-free" package in our repository (like the freed-ora's kernel) ] Update: It is a short-term solution. It is better to work on the existant kernel. " Focus your efforts on moving the blobs to linux-firmware, and getting the dependency in the kernel package removed. Then the same kernel package should make everyone happy."
- Create a Free Spin, endorsed by tne GNU project.
- Put all *-firmware in RPMFusion repository. 
- Say "Fedora is Freedom!"


10 commentaires:

  1. I totally agree with you. But I think these proposed solutions should be sent right now to FESCo (or another similar official channel) if we don't want they are forgotten in a lonely blog post

  2. Even If you separate the firmware GNU people are not going to list fedora as a free-distro. Debian already does what you suggest and still Debian is not in the list. GNU people want the firmware files disappear from the fedora repos altogether which is a burden for the users. What Fedora currently has, is a solution or compromise that fedora is willing to commit for the users within the legal boundaries. Getting it listed in GNU distro list is not going to serve any purpose for fedora users.

  3. The question isn't about to be or not be in GNU distro list. The question is about having (so fundamental) privative software in official repositories. I think.

  4. @xfoss yes, you're right. But, @Osqui summed. The problem is that Fedora include as default proprietary software. We have to allow the choice in Anaonda for users, and support a totally free kernel. Become a GNU distro is, on my mind, a good "final goal" for the project. But, for the time being, it isn't totaly feasible (too much hardawre require blobs and firmwares)... So, we have to work on this :)

    1. > So, we have to work on this :)

      I'm glad you're taking the task to rewrite the binary-only blobs in the kernel into FOSS versions.

      I'm sure we'll all be thrilled when we can use our wifi/graphics cards with pure the Free Software drivers you will have written.

    2. I'd like to clear up a few things:
      1. Firmware is a very special kind of software. It is also not the same thing as a driver. It is software that runs ON the target device, NOT on the main CPU. The firmware exception in Fedora only covers software that satisfies that requirement, and essentially treats it as content (which makes sense, because that's what it is to your CPU, it never executes it).
      2. The "blobs" in our kernel package are also all firmware (see above), there are NO binary-only drivers in our kernel package. And it is an ongoing long-term effort upstream to convert all those hardcoded blobs to use the dynamic firmware loader instead, so they can be moved to linux-firmware. Last I checked, this was the approach Fedora wanted to pursue. People who don't want those blobs should just be able to remove linux-firmware and keep only kernel, the others should be able to install linux-firmware with the SAME kernel. So if you want to have the choice of getting rid of the firmware blobs, help with the upstream efforts for dynamic firmware loading.
      3. Last I checked, the Fedora kernel maintainers and FESCo did NOT want to include multiple kernel packages. This implies that what linux-libre does, which is to just rip out the blobs with no replacement and even disable the external firmware loader, is not going to fly in Fedora. Instead, focus your efforts on moving the blobs to linux-firmware, and getting the dependency in the kernel package removed. Then the same kernel package should make everyone happy.
      4. While I usually agree with RMS and the FSF on most issues, I think their approach to the firmware issue is counterproductive. The main problem I have with it is that they draw the line between firmware ROMs and dynamically-loaded firmware, actively encouraging hardware vendors to put their firmware into a read-only chip that you cannot modify at all. You can hardly get any more proprietary. Dynamically-loaded firmware CAN at least be replaced by a Free replacement. Firmware in a ROM is proprietary forever. I do agree that the ultimate goal should be to have firmware Free as in Speech too! But preferring ROMs to dynamically-loaded blobs actually gets us farther from there rather than closer. (Burning something into a ROM does not magically make it "hardware". Imagine Apple making a ROM iPhone, maybe so they can sell you a new phone each time they upgrade iOS, would that make it a Free smartphone??? Or what if Unix had been in a ROM? Then GNU as it was at its beginning wouldn't even have been possible!) So when the FSF recommends a device because it "does not need any firmware", and you find out that it actually only "doesn't need" firmware because it's hidden in a ROM, don't you feel cheated?

      PS: If you're so strict about Free Software, then why the heck is your blog hosted on the proprietary Blogspot (which is also the worst of all for commenting, it's always a royal PITA to get my comments through its buggy JavaScript blobs)?

    3. Hi, thank you for your comment :)

      1. I don't knew that.

      2. That very good. But, an other times, I don't knew that. We really need write a wiki page to clarify this things !

      3. You're right.

      4. I don't knew (again) that thing... But, yes, you're right. It's a short-term solution.

      I'm going to update my article with your things. I will publish them in 1/2 days.

      Ps. I'm not strict about Free Software, I just think "opensource is better" :). For exemple, I've vlc in my computer, I've steam, beceause we don't have very good game on Fedora (apart Redeclipse and rogue ;) ).
      And I help in new game project (I'm the maintener of openmw).
      With blogger, I just search free space.

  5. Treat GNU like a piece of shit, you will feel better.

    And GNU is trying to make every parts of any distros to be totally open sourced, well I would like to proposed that GNU should produce hardwares by themselves or just shut the fuck up.

  6. Well, you can't say that... The position of GNU is very particular, but comprehensible. And you're right, produce opensource hardware is a good idea :)

  7. I think the best way to go forward is to support and help open hardware projects like this one :