fedora and open source
Fedora always has been and always will be a core open source supporter and distributor. A core Open Source supporter, but not a hardcore Free Software fanatic as they do ship binary blobs in their Linux Kernel. Actually this is upstream kernel issue, so Torvalds’s Kernel is not such Free.This is necessary due that some applications, drivers, and hardware require binary-only firmware to function. So there is nothing to accuse Fedora for.
Above is the original and latest Fedora logo. Fedora in my opinion has one of the nicest logos around (Linux Distros) and I also like its name. Fedora as a noun is that type of hat that Red Hat is using on their logo (left).
Fedora logo shows the connection with the mother company -and largest Open Source company worldwide- but hides an awkward fact. Fedora’s logo is using a commercial font(!!), and actually not just commercial but expensive also, $275.
In their logo wiki they say:
The font in the logotype is Bryant2. This font is not a free font, but it was chosen because it best complements the logo design. The license for use of this font in the official logo is paid, so the logo can be used wherever the trademark and usage guidelines allow without further cost.
At least they could had torrent it, as piracy is a form of a digital freedom, like anarchy is a form of a social freedom –I am just kidding ;)
Anyway my point is that Fedora is not driven by a a bunch of old-fashion free software ideologist people. Fedora ships only open source software for very specific reasons (I won’t expand here), but certainly *not* because they “hate” commercial software.
fedora and desktop
Some people claim that Fedora is just a beta RHEL and they don’t want to be beta testers of RH. I believe that this -even if it was true in the past- has now changed. Fedora within the last two releases 17/18 really tries to deliver a quality user friendly desktop.
To be honest, I think that Canonical helped on that as they (Ubuntu) seem to drop one Gnome module each day. Red Hat, Fedora and Gnome, since today had Ubuntu to promote their desktop product and get back a quality feedback. On the other hand Canonical had Gnome to promote its own product (Ubuntu), so it was a two way relationship.
Nowadays Red Hat and Gnome are forced to make Fedora a quality and user-friendly distro as Ubuntu’s help is now ended. Can they? This is a stupid question. They real question is, will they (Fedora) bother? In my opinion I think they will. I also think that Fedora 18, will be the best Fedora release ever and a good distribution in general.
Of course Fedora has much work ahead to catch up with Canonical, as Ubuntu is now worldwide the mainstream Linux DE and has made already a well known brand name in the market.
fedora and software
Fedora has a strict policy about what software is permited to be included in their official repositories and what software is forbidden.
- If it is proprietary, it cannot be included in Fedora. (Binary firmware is the only exception to this)
- If it is legally encumbered, it cannot be included in Fedora.
- If it violates United States laws (specifically, Federal or applicable state laws), it cannot be included in Fedora.
You can read more in Fedora Forbidden Items wiki, but some common software like nVidia and ATi drivers, some wireless cards drivers, Oracle Java, Adobe Flash etc, are not included. While I totally agree with what they are doing, I disagree with the way they are doing it.
And that leads to the original subject of this post, why Fedora refuses to bundle Chromium in their distro.
chromium and chrome
For the people that don’t know the difference, Chromium is the open source web browser project from which Google Chrome draws its source code. The two browsers (Chrome and Chromium) share the majority of code and features, though there are some minor differences.
Chromium lacks built-in automatic updates, built-in PDF reader and built-in Flash player. Chrome is freeware and they don’t release their source code (which is almost identical to Chromium anyway), while Chromium is under BSD, MIT , LGPL, MS-PL and MPL/GPL/LGPL tri-licensed licences.
why fedora doesn’t ship Chromium
Chromium is basically an unstable software (but typically stable) and they don’t release stable versions. This is the first reason that Fedora doesn’t ship it. However Chromium maintains many stable “forks” under community builds which also come with the same name, “Chromium”. So this is not the major issue today.
The real problem is the packaging policy of Fedora and the packaging policy of Chromium. Chromium consists of and uses many other open source modules, but what it does is to fork them and bundle them.
For example (fake example) Chromium uses openssl. But Chromium Team is not totally happy with openssl functionality and they want to change some things. So they fork it, and they bundle this fork in Chromium package. Of course they keep a documentation about the changes they are making on these packages. So now Chromium will use its own openssl, that isn’t tested with the system; and that makes packaging hard for any Linux distributor.
A bug report opened about this in November 2009, Metabug for issues related to making a real release for Linux distros #28287..
Though we provide source code, there are a few more steps necessary before we are a real upstream usable by Linux distributions. This is a metabug to track those issues
..but till today you still need an extra repo to install Chromium
Tom Callaway is Manager of the Fedora Engineering team at Red Hat and he is working with Google to fix the problems in Chromium so that it can be made available in the official repository. He also maintains his own test packages of Chromium http://repos.fedorapeople.org/repos/spot/chromium-stable/.
Callaway describes the problem:
Google is forking existing FOSS code bits for Chromium like a rabbit makes babies: frequently, and usually, without much thought. Rather than leverage the existing APIs from upstream projects like icu, libjingle, and sqlite (just to name a few), they simply fork a point in time of that code and hack their API to shreds for chromium to use.
This is akin to much of the Java methodology, which I can sum up as “I’d like to use this third-party code, but my application is too special to use it as is, so I covered it with Bedazzler Jewels and Neon Underlighting, then bury my blinged out copy in my application.”. A fair amount of the upstream Chromium devs seem to have Java backgrounds, which may explain this behavior, but it does not excuse it. This behavior should be a last resort, not a first instinct. What should happen is this:
[google] hey, it sure would be nice if we could use sqlite in chromium for our local db needs.
[google] hmm, the sqlite API doesn’t mesh 100% with how I’d like chromium to use it
[google] hey sqlite upstream, there are a few places where we’d like to see API improvements so chromium can leverage it for our use-case
[sqlite_upstream] hey google, so cool that you want to use our code.
* sqlite_upstream looks at google’s proposed changes to sqlite *
[sqlite_upstream] interesting, you could try using the foo_bar function for your camel launching needs, but the rest of the changes seem okay
* sqlite_upstream commits changes to the source tree in commit rev 12345 *
[sqlite_upstream] Our next release will support that.
[google] yay! we’ll tell people to either apply our patch or use commit rev 12345 or newer.
You will find more info at Fedora’s Chromium Wiki, and while the posts there are three years old, the page is recently revisited (27, July 2012), so I guess that is still the case.. Three years later…
There are two descent open source web-browsers, Firefox and Chromium, but Fedora insists to ship just one of them; and unfortunately for me not the one I prefer :)
The irony is that if you google for Fedora Chrome/Chromium, you will navigate into Google’s Chrome page, and you will download the freeware version -as Google provides an official Chrome repo for Fedora.
So we finally end up with a Google Chrome -with Flash :)