Software schreiben: Fremder Code in eigenen Programmen
Kann ich? Zum einen wird die Übernahme von Programmcode aufgrund dessen Kompilierung praktisch nicht möglich sein. Selbst wenn aber der Quellcode – aus welchem Grund auch immer – frei zugänglich ist, verbietet es generell das Urheberrecht, sich bei anderen zu bedienen. Software ist urheberrechtlich geschützt. Das bedeutet, es ist grundsätzlich untersagt, ohne Zustimmung des Rechteinhabers fremden Programmcode zu verwenden.
Was fällt unter den urheberrechtlichen Programmschutz?
Die Frage mag seltsam anmuten, sie hat aber einen realen Hintergrund: das Urheberrecht schützt nicht nur die Programmierung an sich. Vielmehr erstreckt sich das Recht auch auf das Entwurfsmaterial. Gemeint sind sämtliche Arbeitsergebnisse, die im Laufe der Entwicklung einer Software entstehen, wie zum Beispiel das Flussdiagramm.
Geschützt sind zudem selbst kleine Teile eines Computerprogramms, soweit diese „eigene geistige Schöpfungen“ darstellen, wie sich das Gesetz ausdrückt. Mit dieser Formulierung soll zwar eine gewisse Bagatellgrenze gesetzt werden, die allzu Banales vom Urheberrechtsschutz ausschließt. „Was jeder so gemacht hätte“ soll nicht geschützt sein. Was bedeutet das? Eine Frage, die pauschal nicht beantwortet werden kann. Jedenfalls geht der Gesetzgeber davon aus, dass der Schutz die Regel, die Schutzunfähigkeit die Ausnahme ist. Häufig werden bereits einzelne Schnittstellen einer Software geschützt sein. Man sollte sich daher zur Faustregel machen, keinen Programmcode ohne Erlaubnis des Rechteinhabers (Programmierer, Software-Unternehmen) zu übernehmen.
Nicht geschützt sind jedoch die einem Computerprogramm zu Grunde liegenden Ideen und Grundsätze. Das Urheberrecht bezieht sich stets nur auf die besondere Ausgestaltung eines geistigen Inhalts. Rechtlich gesehen ist es also ohne Probleme zulässig, ein eigenes Programm zu schreiben, das auf den Ideen einer anderen Software basiert oder das die gleiche Struktur aufweist. Praktisch wird es allerdings häufig problematisch sein, Ideen und Grundsätze zu erkennen, ohne hierbei zustimmungsbedürftige Nutzungshandlungen mit dem Computerprogramm vorzunehmen.
Kopieren von Programmcode: erlaubt?
Das Urheberrechtsgesetz gestattet das Kopieren von Programmcode nur in wenigen Fällen. So ist es dem Erwerber eines Programms erlaubt, sich eine Sicherheitskopie von dem Original anzufertigen. Hat jemand die Berechtigung zur Nutzung einer Software erworben, darf er zum Beispiel auch unter bestimmten Voraussetzungen Programmcode dekompilieren – und damit vervielfältigen – um Interoperabilität zu anderen Programmen herzustellen. Beschränkungen, die es einem Programmierer gestatten würden, fremden Code in seine eigene Software einzubauen (und dabei zu kopieren), um diesen weiterzuentwickeln oder sich einfach nur Arbeit zu ersparen, gibt es im Urheberrecht nicht. Für die Übernahme fremden Codes benötigt man im Regelfall eine Zustimmung des Rechteinhabers.
Kopieren von Programmcode bei Open-Source-Software
Der Erfolg von freier Software (oder Open-Source-Software) zeigt, dass viele Programmierer nichts dagegen haben, dass ihr Code kopiert, verbreitet und auch weiterentwickelt und verändert wird. Anders als Share- oder Freeware wird Open-Source-Software – wie der Name schon sagt – im Quellcode veröffentlicht, was üblicher Weise die praktische Grundvoraussetzung dafür ist, den fremden Code überhaupt verwenden zu können. Ein Beispiel dafür ist die GNU General Public Licence (GPL). Die Lizenzbestimmungen in solchen Software-Lizenzen gestatten es jedermann, den Code kann einzusehen, zu kopieren, weiterzugeben und weiterzuentwickeln werden. Soweit so einfach.
Wenn man allerdings Code aus freier Software in andere (eigene) Programme übernehmen will, sollte man sich die Lizenz, unter der der fremde Code steht, erst einmal genau ansehen. Viele freie Software-Lizenzen enthalten nämlich eine so genannte Copyleft-Klausel. Copyleft-Klauseln finden sich in verschiedenen Varianten in freien Software-Lizenzen. Die strengsten Versionen (wie etwa Paragraf 2b der GPL) gebieten, dass veränderter Programmcode stets nur unter der gleichen freien Software-Lizenz verbreitet werden darf wie der ursprüngliche Code. Das hieße am Beispiel der GPL: Optimiere ich eine Programm-Routine einer unter der GPL stehenden Software, darf ich die veränderte Version wieder nur unter der GPL verbreiten. Auch dies ist noch leicht verständlich.
Der Copyleft-Effekt
Der Copyleft-Effekt geht aber zum Teil noch weiter: eine „strenge“ Copyleft-Regelung – wie die der GPL – besagt auch, dass ich mein eigenes Programm, das ich mit einzelnen GPL-Codezeilen „angereichert“ habe, unter Umständen nur unter der GPL verbreiten darf. Dies gilt jedenfalls dann, wenn meine Software sich vor dem Verständnis der GPL als ein von dem GPL-Code abgeleitetes Programm („derived work“) darstellt. Ob dies der Fall ist, hängt von verschiedenen technischen und anderen Faktoren ab.
Neben freien Software-Lizenzen, die wie die GPL einen „strengen“ Copyleft-Effekt entfalten, gibt es auch solche mit abgeschwächtem (etwa die Mozilla Public Licence) und solche ohne Copyleft-Effekt (vor allem die BSD- und die Apache-Lizenzen). Jede Open-Source-Software-Lizenz hat ihre Eigenheiten, die man sich vor der Übernahme fremden Open-Source-Programmcodes ansehen sollte. Fügt man freien Quellcode in ein eigenes Programm ein, das man nicht nur für den eigenen Gebrauch entwickelt (der Copyleft-Effekt greift erst bei einer Verbreitung der Software), müssen die Regeln der jeweiligen Lizenz beachtet werden.
2 Kommentare
1 Munir Ahmad am 24. März, 2021 um 09:05
Vielen Dank ein guter Beitrag. Hat mir Super geholfen, da ich eine vorhandene Software optimieren wollte. Leider ist es urheberrechtlich nicht möglich.
VG
Munir Ahmad
von Manöver Marketing
aus Würzburg am Main.
2 Samuel am 10. Oktober, 2021 um 21:00
Der Artikel ist vermutlich nicht ganz vollständig. Um Beispielsweise eine Applikation für Windows zu Schreiben oder mit sonst einer API zu arbeiten, muss man eigentlich immer die Dokumentation des Anbieters der Schnittstelle verwenden. Diese erklärt, wie man diese Schnittstelle nutzt. Daraus ergibt sich meistens auch eine gewisse Struktur, die man kopieren “muss”. Gleichzeitig sind aber die Dokumentationen samt dem Quellcode geschützt. Das würde heissen, dass man zum Beispiel gar keine Applikation für Windows schreiben darf ohne ausdrückliche Genehmigung von Microsoft.
Was sagen Sie dazu?