LWN.net Logo

10 interesting open source software forks and why they happened (Pingdom)

Royal Pingdom looks at ten successful software forks. "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."
(Log in to post comments)

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 18:27 UTC (Thu) by arjan (subscriber, #36785) [Link]

Open source cannot live without forks. A lot of (short term) forks happen because someone wanted to do something interesting and highly experimental.

Often these experiments fail and die

Sometimes they're interesting and can be put in the original project

Rarely they're so interesting that they get a life of their own
(Firefox)

all very healthy... it's an ecosystem with darwinism at play... and it keeps the pace of innovation high.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 18:28 UTC (Thu) by fjpop (guest, #30115) [Link]

Eh, Ubuntu is not a fork of Debian. If that's the top example, I don't
even want to read the rest of the article.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 18:41 UTC (Thu) by rsidd (subscriber, #2582) [Link]

The article doesn't mention gcc, which was the first example I thought of -- the fork (egcs) was so successful that it was anointed the 'official' GCC. At the other extreme, it is too early to judge the pidgin fork: it had forked several times when it was called gaim, and none of the forks lasted.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 20:34 UTC (Thu) by jengelh (subscriber, #33263) [Link]

If not a fork, what then?

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 22:26 UTC (Thu) by vmole (guest, #111) [Link]

It's a Debian derivative, which, if you go back to Ian's original plan, is one of the goals of Debian: to be a base for other distributions.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 12, 2008 2:12 UTC (Fri) by donbarry (guest, #10485) [Link]

Ian Murdock left Debian quite early in the game, before the great
majority of Debian's distinctiveness was codified -- in fact he opposed
most of the social engineering uniqueness that makes Debian what it is,
and has whined and poked at it as an outsider from time to time while
being bought off by the likes of Sun.

I've never seen anything written about Debian having a core value of
being primarily a base for others. Nothing wrong with others using Debian as a base, but it's certainly not Debian's goal to be doing the heavy
lifting for others' branding efforts, especially like, as with Ubuntu
and others, the Debian effort somehow gets lost in the majority of
the branded advertising.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 12, 2008 2:24 UTC (Fri) by vmole (guest, #111) [Link]

Huh. I was sure that it was in the Debian Manifesto, but you're correct: it's not. But it was definitely a goal somewhere along the line, possibly something Bruce proposed? Not as primary purpose, but as something we'd be friendly to.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 14, 2008 16:34 UTC (Sun) by vonbrand (subscriber, #4458) [Link]

Spoon, obviously ;-)

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 18:58 UTC (Thu) by quotemstr (subscriber, #45331) [Link]

This article is junk. Lots of entries are either pre-releases or not really forks, and the author missed the most important fork of all in recent memory: egcs from gcc. I'd wager that we still wouldn't have good optimization and C++ support if egcs hadn't existed.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 21:41 UTC (Thu) by engla (guest, #47454) [Link]

recent memory?? 10 years or so is a pretty long time in the FOSS world.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 23:46 UTC (Thu) by SEMW (guest, #52697) [Link]

There's a far better analysis and discussion of the history of open source forking out there for those who haven't seen it: http://linuxmafia.com/faq/Licensing_and_Law/forking.html.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 19:15 UTC (Thu) by pr1268 (subscriber, #24648) [Link]

I agree with some of the above posters that the examples listed in the article might not be "forks"--I think Ubuntu is more a derivative of Debian rather than being a true fork. Same for Drizzle. And, I have difficulty classifying XEmacs as a fork of Emacs--it seems more like just an X11 extension, IMO.

But then again, this whole discussion may be philosophical (What is a "fork" in the context of software projects?).

Some of these forks are news to me (NeoOffice and Carrier in particular).

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 19:50 UTC (Thu) by zooko (subscriber, #2589) [Link]

XEmacs was definitely a fork of Emacs. It is one of the two most important examples of open source forks, the other being gcc/egcs.

I haven't read the article linked, since the comments here on LWN indicate that it isn't worth it.

If anybody else has candidates for important/interesting open source forks, I would be interested to hear it. I figured the commenters on LWN.net probablly have a better idea than the article-writers on other sites. ;-)

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 20:17 UTC (Thu) by mattdm (subscriber, #18) [Link]

The other one in the article that's interesting from a social standpoint is the Joomla/Mambo split -- although the article itself misses the most important point, which is that all of the core developers went with the fork.

XEmacs v. Emacs, etc.

Posted Sep 11, 2008 20:17 UTC (Thu) by pr1268 (subscriber, #24648) [Link]

XEmacs was definitely a fork of Emacs. It is one of the two most important examples of open source forks, the other being gcc/egcs.

Thanks for the correction. I (obviously) didn't know the differences between the two.

But, my failure to see XEmacs as a fork instead of an extension was motivated by

  1. I've always noticed that emacs will always open the GUI version (unless you specify a "no-x" switch) whenever X11 is running, and
  2. in general, most command-line programs that have a GUI equivalent have their names beginning with an 'x' or 'g' (E.g., [g]vim, [g]mplayer, [g]xine, [xx]gdb, [x]man, others).

XEmacs v. Emacs, etc.

Posted Sep 11, 2008 20:49 UTC (Thu) by Holmes1869 (guest, #42043) [Link]

I always confused by the whole XEmacs/Emacs thing too (Emacs does X, XEmacs does X, what's the difference?), until I read up on it a few years ago. The fork happened many many years ago, and the two projects are now essentially built on different code bases. Wikipedia has some details of course.

Anyway (time for obligatory praise), Emacs could completely stagnate for the next 10 years and I would still use it. As some are known to say, it's one great operating system ;)

XEmacs v. Emacs, etc.

Posted Sep 11, 2008 20:58 UTC (Thu) by tzafrir (subscriber, #11501) [Link]

So what were the command-line db and ine, then? That "db" even has a KDE version (kdb).

Seriously, though: GNU Emacs took some time to get an X version. But both of them now have both terminal, X (athena and GTK) and win32 versions. Not sure about Macs and others.

Do you mean gdb?

Posted Sep 11, 2008 22:37 UTC (Thu) by pr1268 (subscriber, #24648) [Link]

Parse error...? The [xx]gdb I mentioned refers to the GNU Debugger (which isn't a database client AFAICT). Granted, xxgdb is ancient (recent versions of Slackware still carry it), and GNU's GUI version, DDD seems to be the exception to the 'x'/'g' rule.

If you are referring to something completely different, then accept my apologies, and please disregard.

XEmacs v. Emacs, etc.

Posted Sep 13, 2008 0:10 UTC (Sat) by holstein (subscriber, #6122) [Link]

On OSX, there is Aquamacs.

XEmacs v. Emacs, etc.

Posted Sep 12, 2008 9:19 UTC (Fri) by nix (subscriber, #2304) [Link]

The 'X' in XEmacs always meant 'Extended', not 'X as in X11'. (For a long
time it had better TTY support than Emacs, too, and even now it can open
windows on TTYs and X displays simultaneously from the same process, which
IIRC Emacs can't, yet.)

XEmacs v. Emacs, etc.

Posted Sep 12, 2008 20:08 UTC (Fri) by njs (guest, #40338) [Link]

>it can open windows on TTYs and X displays simultaneously from the same process, which IIRC Emacs can't, yet

CVS Emacs has had that for a bit over a year (called "multi-tty"), and there are 3rd-party apt repositories that track emacs trunk for both Debian and Ubuntu; I've never had any stability problems from running it. (You also get proper freetype support.)

XEmacs v. Emacs, etc.

Posted Sep 12, 2008 23:42 UTC (Fri) by nix (subscriber, #2304) [Link]

Yeah, sorry, I was thinking of released versions, which is perhaps foolish
where Emacs is concerned :)

XEmacs v. Emacs, etc.

Posted Sep 13, 2008 1:33 UTC (Sat) by njs (guest, #40338) [Link]

Yeah, the Emacs release process is totally b0rked. But I'm not gonna fix it, so... *shrug*...

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 21:16 UTC (Thu) by rgmoore (✭ supporter ✭, #75) [Link]

If anybody else has candidates for important/interesting open source forks, I would be interested to hear it.

You could always go with the fork bomb that is [foo]BSD. How many open source BSD variants are we up to these days?

Another interesting example is Galeon/Epiphany. That seems to have been a less acrimonious split than many, since there's been some exchange of code since the fork. For a more acrimonious fork, you can always look at the mess surrounding cdrecord/cdrtools.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 13, 2008 21:15 UTC (Sat) by mheily (guest, #27123) [Link]

> You could always go with the fork bomb that is [foo]BSD. How many open source BSD variants are we up to these days?

There are only four major forks of BSD: Open, Net, Free, and DragonFly. There are a few Ubuntu-like redistributions such as PC-BSD who try to make it more newbie-friendly, but aren't doing anything different with the core OS. Meanwhile, there are hundreds of GNU/Linux distributions. I wonder why people who use the term "*BSD" don't also say "*Linux".

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 14, 2008 1:42 UTC (Sun) by dlang (✭ supporter ✭, #313) [Link]

> I wonder why people who use the term "*BSD" don't also say "*Linux".

because all the linux distributions use basically the same kernel and are pretty much compatible with each other (and code flows back and forth between them all), while the BSD variants have diverged to the point where each one is really a separate OS, they just have a shared history (and based on what I have seen there are not only technical barriers preventing code moving back and forth, but also very significant political barriers as well)

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 15, 2008 15:25 UTC (Mon) by renox (subscriber, #23785) [Link]

[[XEmacs was definitely a fork of Emacs. It is one of the two most important examples of open source forks, the other being gcc/egcs.]]

While I agree that gcc is a very important tool (which make the gcc/egcs fork very important), emacs isn't such an important tool (in comparison with say X Windows which had also a fork), so why do you consider the Emacs/XEmacs fork so important?

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 15, 2008 16:33 UTC (Mon) by bronson (subscriber, #4806) [Link]

I would agree that the XEmacs fork might be the most influential fork ever. But, true, it's never been terribly important. The downside risk was minimal... "Everyone would have had to suffer Emacs's nasty-looking fonts, oh the horror!" :)

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 22:11 UTC (Thu) by jd (guest, #26381) [Link]

To me, a fork has to have certain very specific attributes. The labels I use (and I recognize that some/all of these are just personal preference) are:

a) A continuation is when a fresh development branch is the ONLY development branch for that project, after the existing primary branch has stopped development. This is independent of who does the continuing, or whether the function of the continuation is the same. (Flightgear is a continuation of LARC's airfoil simulation code.)

b) A clean-room implementation is any development branch in which the source code for the original branch is neither used nor referred to in developing the new development branch, no matter how close they are to being the same project (including identical) from a black-box perspective.

c) A multi-baseline implementation is any project in which there are parallel (but not divergent) lines of development by essentially the same team. The baselines might be partially, but never totally, merged. (If they were totally merged, then there's only one baseline.) XFS and JFS might be examples, as it's unlikely the commercial OS versions are identical, due to the massive differences in internal structures, if for no other reason.

d) An extension or a derivative is any project in which the baseline is unaltered and all additional code is added on top of what was already there. (Gnu/Linux is an extension of Linux, it is not a fork.)

e) A fork is any line of development that is not any of the four categories above AND is divergent to the point where direct bi-directional cross-pollination of unaltered code is either not safe or not meaningful.

In biological terms, a fork is always a new species, a continuation could only happen if the organism went extinct and was reintroduced, a clean-room is convergent evolution, and an extension is symbiosis. In biology, these are wholly unrelated. In Open Source, their relationship is fuzzier due to politics, transmitted knowledge, the movement of developers, and so on, but it's probably more helpful to look at the biological similarities than to look at things that are external to the actual code itself.

10 interesting open source software forks and why they happened (Pingdom)

Posted Sep 11, 2008 19:56 UTC (Thu) by robert_s (subscriber, #42402) [Link]

Great idea for an article, very poorly implemented.

Then create a fork. :)

Posted Sep 11, 2008 21:28 UTC (Thu) by jd (guest, #26381) [Link]

That is the whole point of forking project, after all! :)

For what it's worth, here's ten successful and three not-so-successful forks, starting with the ten successful ones:

1) EGCS from GCC

2) XFree86 from X.Org (X.Org-new is not a fork of XFree86, as there was no continuation of XFree86, but XFree86 was a genuine parallel development to the original X.Org codebase)

3) Gnu Privacy Guard from PGP International Version

4) RPM 5 (The RPM system forked, with vendors going one direction and the primary Red Hat RPM maintainer going another, with the interesting twist that it is the primary developer who is considered the fork)

5) ATLAS from BLAS and LAPACK (a rare case of a fork being of multiple originating packages)

6) LDMUD from MUDOS from LPMUD (a multi-generational fork)

7) TinyMUSH from TinyMUD (this fork has had a wild history of renames and revamps, as have many of the other *MUSH variants, all based off one version of TinyMUSH or another - unusual in that there's often not been any kind of focus behind any of the forks or variants with the exception of the Unter* series of distributed environments)

8) NetCDF from CDF (a rare case of a fork in scientific software)

9) OCI ACE from DOC ACE (an even rarer example of cooperative forks where bits are merged between them openly)

10) Apache Webserver from NCSA Webserver

Ok, now for the not-so-successful.

1) OpenMOSIX from MOSIX

2) ELKS (16 bit Linux) from Linux

3) PGCC (high-performance Pentium-optimised GCC) from EGCS

ATLAS is not a really fork

Posted Sep 11, 2008 21:52 UTC (Thu) by stevenj (guest, #421) [Link]

ATLAS isn't a fork of BLAS and LAPACK.
ATLAS from BLAS and LAPACK (a rare case of a fork being of multiple originating packages)

First, BLAS isn't software. It is a standardized interface for Basic Linear Algebra Subroutines (matrix multiplication, etcetera). There are lots of implementations of this interface, just like there are lots of implementations of other standard interfaces and protocols like TCP/IP or the C standard library, but these implementations aren't (generally) forks of one another. ATLAS is a from-scratch implementation of the BLAS interface, not a fork.

LAPACK is software built on top of the BLAS interface to provide higher-level linear-algebra functions like eigensolvers and linear solvers (the whole point being that people, e.g. vendors, would provide optimized BLAS implementations for different hardware and thereby speed up LAPACK). ATLAS re-implements a handful of routines from LAPACK to make them faster, but for most of LAPACK it requires you to download and install the official LAPACK library. So, ATLAS isn't really a fork of LAPACK as a whole.

Then create a fork. :)

Posted Sep 11, 2008 21:54 UTC (Thu) by elanthis (guest, #6227) [Link]

2) XFree86 from X.Org (X.Org-new is not a fork of XFree86, as there was no continuation of XFree86, but XFree86 was a genuine parallel development to the original X.Org codebase)
XFree86 is still being developed. Dawes and a few others of the XFree86 inner circle stuck with it after X.org split back off. You probably didn't know that because out in the real world nobody gives a shit about the current XFree86 work anymore. :) It was definitely a fork.

Then create a fork. :)

Posted Sep 12, 2008 2:17 UTC (Fri) by donbarry (guest, #10485) [Link]

Few == 1 (with one or two others contributing the rare patch in
parallel with their patches against other systems).

Look at the commit mailing list. It's essentially a Dawes and la France show, with the extremely occasional patch from Dickey, Coopersmith, et al.

My list

Posted Sep 11, 2008 23:18 UTC (Thu) by tetromino (subscriber, #33846) [Link]

I suppose I'll have to fork your list...

0. EGCS from GCC (and the fork became the official version)
1. Current X.org from Xfree86
2. Webkit from KHTML
3. XEmacs from GNU Emacs
4. DejaVu from Bitstream Vera
5. Poppler from XPDF
6. Go-OO from OpenOffice
7. Inkscape from Sodipodi
8. Cdrkit from Cdrtools/Cdrecord
9. ESP Ghostscript from GPL Ghostscript (and the fork became the official version)
10. Audacious from BMP

My list

Posted Sep 12, 2008 3:44 UTC (Fri) by jensend (guest, #1385) [Link]

ESP Ghostscript certainly did not become the mainline. There were a good number of things from ESP Ghostscript which got merged into mainline Ghostscript, but artofcode/Artifex Ghostscript has been the mainline all along.

My list

Posted Sep 12, 2008 19:02 UTC (Fri) by luya (subscriber, #50741) [Link]

Audacious is actually BMP renamed IIRC.

My list

Posted Sep 13, 2008 8:07 UTC (Sat) by tetromino (subscriber, #33846) [Link]

My impression was that BMP became BMPx, but many of the original BMP developers didn't like where BMPx was going, and so forked the project to form Audacious.

Then create a fork. :)

Posted Sep 12, 2008 1:35 UTC (Fri) by maney (subscriber, #12630) [Link]

I can't believe no one's mentioned openSSH.

One more

Posted Sep 12, 2008 5:44 UTC (Fri) by dmarti (subscriber, #11625) [Link]

Nessus/OpenVAS looks like another example of the same trend as OpenSSH and XFree86: license gets more restrictive and a new project forks from the last pre-license-change version.

Another one in the "maintainers don't like our new feature" category: GIMP/CinePaint.

Then create a fork. :)

Posted Sep 12, 2008 13:17 UTC (Fri) by tialaramex (subscriber, #21167) [Link]

Are you sure GnuPG is a fork of PGPi rather than just another OpenPGP implementation?

Then create a fork. :)

Posted Sep 15, 2008 14:15 UTC (Mon) by robbe (guest, #16131) [Link]

IIRC, PGP 2.x was under its own GPL-incompatible non-commercial license
while GnuPG is non-surprisingly GPL'd. That should make GnuPG a full
reimplementation (with the non-free license a possible motivator).

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds