Abspaltung (Softwareentwicklung)

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Projektaufspaltung)
Eine zeitliche Übersicht der Abspaltungen bei Linux-Distributionen

Eine Abspaltung (auch Fork; englisch fork ‚Gabel‘) 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.)

Versionskontrollsysteme

In Versionsverwaltungssystemen ist eine Abspaltung im Allgemeinen nicht das Ergebnis von Streit unter den Entwicklern oder von Inaktivität eines Projektes, sondern 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,[2] 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.

Einzelnachweise

  1. coin.ink: Hard Fork und Steuer: Hard Fork der Bitcoin Blockchain. coin.ink, abgerufen am 11. Juni 2019.
  2. Network Graph · torvalds/linux (englisch) – Seite bei GitHub; Stand: 8. März 2015.