# Abspaltung (Softwareentwicklung)

Eine Abspaltung (auch Fork; englisch fork ‚Gabelung‘, üblicherweise im Maskulinum verwendet) ist in der Softwareentwicklung ein Entwicklungszweig nach der Aufspaltung eines Projektes in zwei oder mehrere Folgeprojekte; die Quelltexte oder Teile davon werden hierbei unabhängig vom ursprünglichen Mutterprojekt weiterentwickelt. Mögliche Gründe zur Abspaltung sind unter anderem unterschiedliche Benutzervorlieben, das Entwicklungsende der ursprünglichen Software oder etwa die Abwesenheit von deren Entwickler. Häufig, besonders in Bezug auf das Urheberrecht, wird in dem Zusammenhang auch von Derivat (derivativ, lateinisch derivare ‚ableiten‘) gesprochen.

## Hintergründe

Abspaltungen finden überwiegend in freien Software-Projekten statt, da bei diesen das Recht zur Weiterentwicklung und Veränderung lizenztechnisch meist besteht. Bei Closed-Source-Projekten kann es zu Abspaltungen kommen, wenn mehrere Firmen zusammenarbeiten und sich die – ggf. neuen – Rechte an dem Produkt teilen. Auch das Gegenteil einer Abspaltung kommt gelegentlich vor, wenn beispielsweise ein abgespaltenes Projekt wieder mit dem Mutterprojekt vereinigt wird.

## Projektbeispiele

(Beispiele für Projekte, die aus Aufspaltungen entstanden sind.)
* Das NTFS-Dateisystem basiert auf HPFS, dem Dateisystem von OS/2.
* Das freie OpenOffice.org (heute als Apache OpenOffice bekannt) spaltete sich aus StarOffice ab, das bis 2010 kommerziell weiterentwickelt wurde.
* LibreOffice spaltete sich von OpenOffice.org ab, nachdem Sun Microsystems (der ursprüngliche Entwickler) von Oracle aufgekauft wurde.
* Das Web-Content-Management-System Joomla entstand aus Mambo.
* Der Editor XEmacs, entstanden aus Emacs.
* Der Compiler EGCS entstand aus GCC und wurde später damit wieder vereinigt.
* Der Webbrowser Mozilla hat viele Tochterprojekte, einige davon sind Mozilla Firefox und Galeon, der wiederum aufgeteilt wurde: Epiphany.
* Der Multimediaplayer MPlayerXP ist aus MPlayer hervorgegangen.
* VNC wurde ab 2002 mit der Version 3.3. kostenpflichtig. In der Folge entstanden weitere Implementierungen unter der GPL, die dasselbe Protokoll verwenden.
* Die Filesharing-Software aMule (eDonkey-Netzwerk) ging aus xMule hervor.
* Die Peer-to-Peer-Software FrostWire ging aus LimeWire hervor.
* Das BSD-Derivat OpenBSD ging aus NetBSD hervor und legt höheren Wert auf Sicherheit als das Mutterprojekt. Ebenso ging DragonFly BSD aus FreeBSD hervor.
* X.Org ging aus XFree86 hervor, dessen Entwickler mit Version 4.4 eine andere Lizenz eingeführt haben.
* Der Composite Window Manager Beryl ist nach Unstimmigkeiten in den eigenen Reihen aus Compiz entstanden. Beide Projekte sind mittlerweile unter dem Namen Compiz Fusion wieder vereint.
* Die Sammlung von Programmen zum Brennen von CDs und DVDs cdrkit wurde nach Lizenzstreitigkeiten von cdrtools abgespalten.
* Libav ging aufgrund von Streitigkeiten unter den Entwicklern des Projektes FFmpeg hervor und ersetzte dieses in Debian und Ubuntu.
* Der Hard-Fork der Bitcoin-Blockchain mit dem Ergebnis der duplizierten Bitcoin-Cash-Blockchain. Gerade im Bereich von Kryptowährungen sind Forks üblich und finden in regelmäßigen Abständen statt. Die Bitcoin-Blockchain allein wurde bereits über 74 Mal hardgeforkt.

## Versionskontrollsysteme

In Versionsverwaltungssystemen ist eine Abspaltung das Arbeitsergebnis der Softwareentwickler oder von Aktivitäten eines Softwareprojektes, im Rahmen von Branches (Zweigen) reguläres Arbeitsmittel, um Neuerungen für ein Projekt beizusteuern. Bei verteilten Versionsverwaltungssystemen kommt die Möglichkeit hinzu, Branches auch ohne Schreibberechtigung auf das Original-Versionsverwaltungssystem erstellen zu können. Zu Linus Torvalds’ Betriebssystemkern Linux gibt es allein auf der Softwareentwickler-Plattform GitHub mehr als 14.000 Abspaltungen, die zum Großteil nicht darauf angelegt sind, eigenständig weiterentwickelt zu werden, sondern darauf, dass ihre individuellen Neuerungen wieder in das ursprüngliche Projekt – oder genauer in die ursprünglichen Quellen (oder Repositories) einfließen. Solche Branches sind dementsprechend eher interne Forks.

## Urheberrecht

Im Urheberrecht, das auch für Software gilt, hat der Begriff Derivat genau dieselbe Bedeutung wie in allen anderen Bereichen. Das bedeutet zum Beispiel, dass ein Derivat einer Software, solange keine Autorisierung durch die Rechteinhaber der Software gegeben ist, nur unter bestimmten Bedingungen (z. B. Fehlerkorrektur) erstellt (vom Land abhängig, z. B. durch EU-Richtlinien reguliert) und insbesondere nicht verbreitet werden darf. Das heißt, solange die Lizenz einer Software nicht explizit erlaubt, dass Derivate erzeugt bzw. verbreitet werden dürfen, ist dies verboten. Diese spielt auch im Fall SCO gegen Linux eine gewichtige Rolle, denn SCO hat AIX sowie auch den Linux-Kernel mit Systemsoftware zu unautorisierten Unix-Derivaten erklärt. Obwohl es zwar strittig ist, ob SCO diese Rechte überhaupt hat, kann SCO, solange sich kein urheberrechtlich geschützter Quelltext im GNU/Linux-System findet, keinen Schuldspruch, z. B. für einen Linux-Distributor, auf Basis des Urheberrechts erwirken.