Muss der unter der GPL veröffentlichte Quellcode lesbar sein?


Antworten:


37

Die GPL erfordert, dass es die bevorzugte Version für die Bearbeitung ist. Wenn Sie normalerweise in verschleierten Code schreiben und Änderungen direkt daran vornehmen, ist dies die Quelle für die GPL. Wenn Sie an einer lesbaren Version arbeiten und diese dann durch eine beliebige Art von Verschleierung ausführen, ist die lesbare Version das, was die GPL als Quelle betrachtet.

"Lesbarkeit" ist subjektiv und nicht definiert. Es ist legal, wirklich schlechten, schwer verständlichen Code unter der GPL zu veröffentlichen. Es ist nicht legal, die Version, in der Sie Änderungen vornehmen, zu übernehmen, das Leerzeichen zu entfernen oder es auf andere Weise weniger lesbar zu machen und diese als Quelle unter der GPL zu bezeichnen.


1
sehr interessant, danke. Gibt es einen bestimmten Teil der Lizenz, in dem dies angegeben ist?
Armand

12
GPLv2, Allgemeine Geschäftsbedingungen, aus Abschnitt 3: "Der Quellcode eines Werks ist die bevorzugte Form des Werks, um Änderungen daran vorzunehmen."
David Thornley

4
Diese Einschränkung gilt nur für Lizenznehmer. Für Ihren eigenen Code (kein externer GPL-Code) können Sie so viel verschleiern, wie Sie möchten, und dennoch den GPL-Aufkleber darauf platzieren (um anderen die Rechte zu gewähren). nVidia tat dies mit dem Treibercode von damals (1998 oder so)
Patrick Georgi

2
Das heißt, es ist sinnlos, einen GPL-Aufkleber auf eine Arbeit zu schlagen, bei der Sie keinen verwendbaren Quellcode bereitstellen, wie im Beispiel von nVidia. Sie können auch eine proprietäre Lizenz verwendet haben. Offensichtlich wollte nVidia so gesehen werden, als würde sie ihren Code teilen, ohne ihren Code zu teilen.
Thomasrutter

1
Nur aus Neugier. Was ist, wenn Sie in einem proprietären Editor arbeiten, der die Quelle in verschlüsselter Form speichert? Theoretisch haben Sie den Code so, wie Sie damit arbeiten, aber niemand sonst könnte damit arbeiten, da es sich um ein proprietäres Tool handelt, auf das niemand Zugriff hat.
Aidiakapi

6

Unter der GPL v3 haben Sie in Abschnitt 1:

Der Begriff „Entsprechende Quelle“ für eine Arbeit in Objektcodeform bezeichnet den gesamten Quellcode, der zum Generieren, Installieren und (für eine ausführbare Arbeit) Ausführen des Objektcodes und zum Ändern der Arbeit erforderlich ist, einschließlich Skripten zur Steuerung dieser Aktivitäten.

Wenn die Kommentare und Leerzeichen entfernt sowie die Funktions- und Variablennamen geändert würden, könnten Sie die Arbeit nicht angemessen modifizieren.

Und dazu:

Die entsprechende Quelle für eine Arbeit in Quellcodeform ist dieselbe Arbeit.

Dieselbe Arbeit, keine veränderte Arbeit.

Um meinen vorherigen Punkt zu verdeutlichen, muss der Quellcode unverändert bleiben. Ich gehe davon aus, dass menschliches Schreiben für Menschen lesbar ist. Aber ja, Sie könnten direkt in etwas schreiben, was als nicht menschlich lesbar angesehen werden könnte.


4

Die Frage enthält keine wichtigen Informationen. Wenn Sie der einzige Autor sind, können Sie Ihren eigenen Code unter jeder gewünschten Lizenz (einschließlich der GPL) veröffentlichen, ohne alle Regeln zu befolgen. Auf diese Weise können Sie Code in einer Form versenden, die für die Bearbeitung nicht bevorzugt wird und keine Urheberrechtsgesetze verletzt. Es ist fraglich, ob andere Ihren Code im Geiste einer Lizenz für freie Software erweitern könnten, so dass es wahrscheinlich nur wenige versuchen werden.

Meistens sind Sie jedoch nicht der einzige Autor eines Werks. Sie nutzen vorhandenen Code und erstellen eine abgeleitete Arbeit. Solch ein Werk muss den kombinierten Regeln seiner Abstammung entsprechen, sonst haben Sie keine Erlaubnis, es zu verbreiten, ohne das Urheberrecht zu verletzen.

Zur Verdeutlichung hier einige Beispiele (IANAL):

  • Wenn Sie eine GPL-Bibliothek in Ihrem Code verwenden, ist es Ihnen nicht gestattet, Ihren eigenen Quellcode nur in verschleierter Form zu versenden, wenn dies (wie David Thornley schreibt) tatsächlich die Form ist, in der Sie ihn schreiben und bearbeiten.
  • Wenn Sie eine LGPL-Bibliothek in Ihrem Code verwenden, ist es Ihnen gestattet, Ihren eigenen Quellcode nur in verschleierter Form zu versenden. Dies liegt daran, dass die LGPL nur erfordert, dass Sie die Arbeit, die die Bibliothek verwendet, mit einer neueren Version der Bibliothek verwenden können.
  • Wenn Sie eine LGPL-Bibliothek erweitern, entspricht dies dem GPL-Fall, und Sie müssten nicht verschleierten Code ausliefern (es sei denn, Sie bearbeiten ihn tatsächlich auf diese Weise).

1
Sie müssen alle Regeln einer Lizenz befolgen, unabhängig davon, wem das Urheberrecht zusteht. Wenn Sie beschließen, Ihre JS-Bibliothek auf Ihrer eigenen Website zu verwenden und sie auch unter der GPL freizugeben, möchten Sie dies möglicherweise separat tun. Bei dieser Frage handelt es sich nicht um die LGPL. Wenn jedoch für die LGPL ähnliche Einschränkungen gelten, wie für die GPL in Bezug auf die Lesbarkeit von Code, wäre dies hilfreich, um dies hier zu erwähnen.
Armand

@Alison: Die Lizenzbedingungen gelten für diejenigen, die die Werke verwenden (und in diesem Fall weitergeben), nicht für diejenigen, die sie ursprünglich erstellt und für Sie lizenziert haben.
Paŭlo Ebermann

1
@Alison nicht einverstanden. Wenn Sie der alleinige Eigentümer des Werks sind, können Sie es nach Belieben neu lizenzieren. Aus diesem Grund können Sie es unter den Bedingungen von (Magic hier nicht spezifizierte Lizenz) verbreiten und anderen erlauben, es unter den Bedingungen der GPL weiterzuverteilen - die GPL fügt nur Rechte hinzu, um anderen zu erlauben, von Ihnen abgeleitete Werke weiterzuverteilen. Natürlich ist dies kein wahrscheinliches Szenario, denn wenn Sie nicht an die GPL glauben und der alleinige Eigentümer sind, würden Sie sie nicht verwenden.
Michael Urman

Sie müssen keinen eigenen Quellcode ausliefern, der eine LGPL-Bibliothek verwendet, sofern die Sprache Binärdateien zulässt. Sie müssen angeben, was es einem Benutzer ermöglichen würde, den LGPL-Teil zu ändern und die App neu zu erstellen (obwohl Sie mit GPLv2 verhindern können, dass der Benutzer die geänderte Version installiert). Wenn Sie die Quelle aus Gründen der Notwendigkeit oder Zweckmäßigkeit versenden, wird sie möglicherweise verschleiert.
David Thornley

Guter Punkt. Ich werde meinen Beitrag so bearbeiten, dass die LGPL keine Anforderungen mehr an die Arbeit stellt, die ihn verwendet.
Michael Urman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.