A benefit of open source software is the ability to take the code base of an application and develop it in a new direction. This is, as most of you probably know, called forking, and is very common in the open source community. For example, many Linux distributions can be traced back to either Debian, Fedora or Slackware.

Much of the open source software that is in popular use today was born from other projects. We thought it would be interesting to take a look at the history of some of these software forks and find out WHY they happened in the first place.

We looked at the WHY because software forking is often seen as somewhat of a waste of development resources and isn’t considered a good thing. Sometimes the results can be great, though, as many of the examples below clearly show.

Ubuntu from Debian

What: Ubuntu is the world’s most popular Linux distribution.

When: October 20, 2004

Why: Ubuntu was initially a temporary fork of the Debian project done so that a new version of Ubuntu could be released once every six months and therefore provide a more up-to-date system.

Firefox from Mozilla Application Suite

What: Firefox is the web browser with the second-largest user base in the world.

When: Binaries for public testing appeared in September 2002 under the name Phoenix. Version 1.0 of Mozilla Firefox was released on November 9, 2004.

Why: The Firefox project was initially an experimental branch of the Mozilla project, intended as an alternative to the increasingly bloated Mozilla Suite.

Joomla from Mambo

What: Joomla is an open source content management system (CMS) for websites.

When: August 17, 2005

Why: Due to concerns regarding the future governance of the Mambo project, where several core developers felt that Miro had too much control, Joomla was forked and is now a successful CMS in its own right.

OpenBSD from NetBSD

What: OpenBSD is a Unix-like operating system and is one of the more popular BSD variants.

When: October, 1995. The first release (OpenBSD 1.2) came in July 1996.

Why: Theo de Raadt, co-founder of NetBSD, was asked to resign his position as a developer and member of the core NetBSD team in December of 1994, most likely as a result of personality clashes within the NetBSD team. Less than a year later he founded OpenBSD, forked from NetBSD 1.0.

X.Org from XFree86

What: X.Org Server is a popular implementation of the X Window System (a standard toolkit to build GUIs) and is in common use on Linux and other Unix varieties.

When: The first release from the X.Org Foundation was on April 6, 2005.

Why: Disagreements with the new license for XFree86 4.4 and several other disagreements among the contributors to XFree86 ultimately resulted in a fork.

Drizzle from MySQL

What: Drizzle is an open source database management system. It hasn’t properly launched yet, though.

When: April/May 2008

Why: Started by Brian Aker, Drizzle was forked from the MySQL 6.0 codebase and is intended as a smaller, slimmer and faster version of MySQL. Contributors include staff from Google, Sun, Canonical and Six Apart.

NeoOffice from OpenOffice.org

What: NeoOffice is an office suite for Mac OS X.

When: June 22, 2003

Why: The NeoOffice fork was initially a project intended to investigate ways of creating a native Mac OS X port of OpenOffice.org.

XEmacs from GNU Emacs

What: XEmacs is a graphical and console-based text editor.

When: Late 1980s (at that time it was called Lucid Emacs)

Why: In the period between 1987 and 1993 there was a delay in bringing out a new version of GNU Emacs. In the late 1980s Lucid Inc. needed to update Emacs for a project, so they branched the Emacs code with the intention that these changes would then be incorporated back into the next version of GNU Emacs. However, the Free Software Foundation ultimately rejected most of these changes and XEmacs continued on as a separate fork.

Carrier from Pidgin

What: Carrier is an open source instant messaging application.

When: The first version was released on March 12, 2008.

Why: We included this mainly because of the reason of why it was forked. A fork (initially called Funpidgin) was done of Pidgin 2.4.0 because there were disagreements about the size of the text entry field. The new fork is intended to be more focused on users’ needs. You can read the argument that sparked this in this Pidgin support ticket.

Webkit from KHTML

What: Webkit is an open source application framework for building web browsers.

When: Webkit was announced by Apple in January 2003 in connection with the launch of Safari.

Why: Apple created a fork of the KDE project’s HTML layout engine KHTML and its Javascript engine KJS to use them for developing the Safari web browser. (These has since been discussions among KDE developers about switching from KHTML to Webkit, “unforking” the software.)

Finishing remarks

Judging from these ten software forks, common causes of forks are disagreements (sometimes purely ideological) and personality clashes, though more practical reasons are also common (such as the Webkit and Firefox examples). It is also interesting to see that many times the forks have surpassed the original software in popularity.

It would be great to hear from some of the people who are or have been involved in the development of these open source projects. Care to share some anecdotes? 🙂