Transpiled Source-Code-Lizenz & Copyright-Inhaber
Kann der transpilierte Ausgabe-Quellcode eine andere Lizenz und einen anderen Urheberrechtsinhaber haben als der eingegebene Quellcode?
Prj-A──>─┬─>Prj-TP──>────┬─>Prj-┐
(Apache) │(Python-to-C++)│ TP │
│ │ │
my code─>┘ my code─>───┘ │
│
Prj-G──>─┬─>Prj-TG──>─┬─>Prj──>─┤
(GPLv2) │ (Go-to-C++)│ TG ┝━>Prj
│ │ │ D
my code─>┘ my code─>─┘ │
│
Prj-B──>─┬─>Prj-TC──>──┬─>Prj─>─┤
(BSD) │ (C#-to-C++)│ TC │
│ │ │
my code─>┘ my code─>─┘ │
│
my code─>────────>────────>─────┘
Diagram - A
Ich habe Vorprozessoren auf den Quellcode von (1) Pythonbasiertem Projekt-A (Prj-A) mit Apache 1- Lizenz, (2) Gobasiertem Projekt-G (Prj-G) mit GPLv2 1- Lizenz, (3) C#basiertem Projekt angewendet -B (Prj-B) mit BSD 1- Lizenz usw. und bereitete sie für Transpiler vor und wendete dann Transpiler auf den Quellcode dieser Softwareprojekte als Eingabe-Quellcode an und transpilierte / übersetzte / konvertierte (auch bekannt als: Source-to- Quellkonvertierung) diese Eingabe Quellcode in C++basierten Ausgabe Quellcode, und dann habe ich noch mehr C++Codes in jedem hinzugefügt und vollständig erstelltC++-sprachige (1) Prj-TP (2) Prj-TG (3) Prj-TC, und dann habe ich verschiedene Teile des Codes / der Dateien von Prj-TP, Prj-TG & Prj-TC genommen und verwendet und aufgenommen Kann ich in meinem anderen Projekt, Project-D (Prj-D), meinen eigenen Namen C++für den urheberrechtlich geschützten neuen Quellcode von Prj-D verwenden? und Kann ich für den Prj-D eine andere Lizenz verwenden?
EINZELHEITEN:
Prj-A verwendet die PythonSprache und verfügt über eine Apache-Lizenz.
Prj-G verwendet die GoSprache und verfügt über eine GPLv2-Lizenz.
Prj-B verwendet C#Sprache und hat eine BSD-Lizenz usw.
In jedem dieser "Upstream" -Projekte habe ich kleine Beiträge geleistet.
Prj-A──>─┬─>Prj-TP──>────┬─>Prj-┐
(Apache) │(Python-to-C++)│ TP │
│ │ │
my code─>┘ my code─>───┘ │
│
Prj-G──>─┬─>Prj-TG──>─┬─>Prj──>─┤
(GPLv2) │ (Go-to-C++)│ TG ┝━>Prj
│ │ │ D
my code─>┘ my code─>─┘ │
│
Prj-B──>─┬─>Prj-TC──>──┬─>Prj─>─┤
(BSD) │ (C#-to-C++)│ TC │
│ │ │
my code─>┘ my code─>─┘ │
│
my code─>────────>────────>─────┘
Diagram - A
Ich bin nicht sehr vertraut mit oder Experten auf Python, Go, C#Computer - Programmiersprache.
Ich habe gelernt C, C++, Assemblyusw , also ich bin zuversichtlich , mit denen.
Zusammengestellt C++Programm läuft viel viel schneller als Python, Go, C#etc.
Ich brauchte neue Funktion in jene Software hinzuzufügen, aber ihr dev (n) hat hinzuzufügen verweigert, mit verschiedenen Ausreden, usw.
Lic = Lizenz.
TP = Transpiled-Python-to-C++ : Prj-A ( Python) (Lic Apache:) rPrj-TP ( C++).
TG = Transpiled-Go-to-C++ : Prj-G ( Go) (Lic GPL:) rPrj-TG ( C++).
TC = Transpiled-C#-to-C++ : Prj-B ( C#) (Lic BSD:) rPrj-TC ( C++).
Also habe ich den Quellcode von Prj-A, Prj-G & Prj-B in einen C++basierten Quellcode für neue Projekte Prj-TP, Prj-TG, Prj-TC übersetzt :
- Zuerst musste ich bestimmte Code-Zeilen in jeder Quellcodedatei von ändern und vorbereiten
Python,Go,C#basiertem Projekt, um es Transpiler freundlich. Zu diesem Zeitpunkt musste ich viele verschiedene Techniken und Skripte verwenden. - Dann habe ich verschiedene Transpiler Software auf diejenigen angewendet
Python,Go,C#Quellcodedateien, eins nach dem anderen. - Transpiler Software meist transpiled nur Teilmenge von
Python,Go,C#Sprache, die sehr einfach und EASY & BASIC - Code, richtig. Transpiler Software kann nicht & hat-nicht konvertiert alle Arten vonPython,Go,C#Quellcode, insbesondere komplexen Code - Strukturen. - Transpiler übersprungen viele fortschrittliche & COMPLEX
Python,Go,C#Source-Code - Zeilen und Abschnitte, und auch viele Linien und Abschnitte falsch konvertiert. - Dann habe ich lange lange Zeit damit verbracht, um manuell VERGLEICH & CHECK jede Zeile INPUT & OUTPUT SOURCE-CODE, und ich habe umgerechnet diejenigen übersprungen
Python,Go,C#Sourcecode - Zeilen und Abschnitte, in meine eigeneC++Basis Codezeile oder Abschnitt, so viel wie Ich könnte. Ich habe auch „falsch“ umgewandelt transpiledC++in der richtigenC++usw. Es gibt keine Spur vonPython,Go,C#mehr links in dem letztenC++Quelle-Code. - Also war endlich der Transpilationsprozess abgeschlossen.
- Also habe ich endlich neue quellcodebasierte neue Projekte: Prj-TP, Prj-TG, Prj-TC usw.
Dann habe ich die erforderlichen C++Quellcodezeilen, Abschnitte oder Dateien von Prj-TP (transpiliert von Prj-A mit ApacheLizenz :), Prj-TG (transpiliert von Prj-G mit GPLv2Lizenz :) oder Prj-TC (transpiliert) genommen von Prj-B w / Lic :) BSDund in meinem eigenen neuen Project-D (Prj-D) verwendet. (D = Endziel)
Prj-A──>─┬─>Prj-TP──>────┬─>Prj-┐
(Apache) │(Python-to-C++)│ TP │
│ │ │
my code─>┘ my code─>───┘ │
│
Prj-G──>─┬─>Prj-TG──>─┬─>Prj──>─┤
(GPLv2) │ (Go-to-C++)│ TG ┝━>Prj
│ │ │ D
my code─>┘ my code─>─┘ │
│
Prj-B──>─┬─>Prj-TC──>──┬─>Prj─>─┤
(BSD) │ (C#-to-C++)│ TC │
│ │ │
my code─>┘ my code─>─┘ │
│
my code─>────────>────────>─────┘
Diagram - A
Transpilierte Codes müssen normalerweise viel neu geschrieben, getestet und modifiziert werden, um funktional genauso zu funktionieren wie "Upstream" -Software.
Zu diesem Zeitpunkt weisen diese Projekte: Prj-TP, Prj-TG, Prj-TC und Prj-D immer noch zu viele Fehler und Unvollständigkeiten auf und müssen noch viel behoben werden.
Daher möchte ich meinen C++basierten Prj-D-Quellcode als neues Projekt veröffentlichen und den Quellcode mit anderen Entwicklern / Benutzern teilen, damit andere zusammenarbeiten und dazu beitragen können, ihn zu reparieren und weiter zu verbessern, wenn sie dies möchten.
Kann ich Prj-D mit einer anderen Lizenz veröffentlichen? (anders als in Prj-A / Prj-G / Prj-B verwendet).
Kann ich meinen Namen für Copyright Prj-D verwenden?
Kann ich auch Prj-TP, Prj-TG, Prj-TC jeweils unter einer anderen Lizenz veröffentlichen?
Kann ich meinen Namen für Copyright Prj-TP, Prj-TG, Prj-TC verwenden?
Muss ich Prj-A / Prj-G / Prj-B benachrichtigen?
ENDE DER DETAILS.
EDIT / UPDATE :
Ich habe diesen / diese Abschnitt (e) hinzugefügt, nachdem Benutzer: Bart van Ingen Schenau seine erste Antwort unten gepostet hat.
Bitte überprüfen Sie den Abschnitt "EDIT" / "UPDATE" in seiner Antwort .
Da die GPLv2-Lizenz nach unten greift / abgeleitete Werke / Projekte / Quellcodes abruft, möchte ich in meinem Fall definitiv die Verwendung der GPL-Lizenz vermeiden, und mein Grund für die Erstellung dieser SE-Frage war, herauszufinden, ob ich eine andere Lizenz verwenden kann oder nicht , im oben genannten Abschlussprojekt Prj-D.
Also habe ich erneut gesucht und einen Ersatz für GPLv2Prj-G gefunden. Nennen wir dieses neue Projekt Prj-M, da es unter MITLizenz steht.
Dieser Prj-M verwendet dieselbe "Go" -Sprache wie der vorherige Prj-G. Ich werde ähnliche Arbeiten wie zuvor ausführen müssen, um Prj-M in Prj-TG2 zu transpilieren.
Prj-A──>─┬─>Prj-TP──>────┬─>Prj-┐
(Apache) │(Python-to-C++)│ TP │
│ │ │
my code─>┘ my code─>───┘ │
│
Prj-M──>─┬─>Prj-TG2──>─┬─>Prj─>─┤
(MIT) │ (Go-to-C++) │ TG2 ┝━>Prj
│ │ │ D2
my code─>┘ my code─>─┘ │
│
Prj-B──>─┬─>Prj-TC──>──┬─>Prj─>─┤
(BSD) │ (C#-to-C++)│ TC │
│ │ │
my code─>┘ my code─>─┘ │
│
my code─>────────>────────>─────┘
Diagram - B
Ich werde einen einfachen kleinen Teil des GoCodes C++mithilfe von Software-Trnspiler transpilieren. Die restlichen erweiterten Codeabschnitte, komplexen Codeabschnitte usw. werden von mir manuell von Goin in transformiert C++.
Kann ich Prj-D2-Quellcode mit einer anderen Lizenz veröffentlichen, basierend auf dem obigen Code-Konvertierungsdiagramm und den zugehörigen Informationen? eine andere Lizenz als die in Prj-A / Prj-M / Prj-B verwendete.
- (Ich denke, ich kann, für den obigen Fall)
Kann ich meinen Namen für Copyright Prj-D2 verwenden?
- Ich denke, ich kann meinen Namen unter dem vorherigen Inhaber des Urheberrechts hinzufügen, wie vom Benutzer erklärt: "Bart van Ingen Schenau" in seiner Antwort. Ich muß zu früherem Copyright-Inhaber verwenden, weil ich Software Transpiler der auf einem Teil verwendet haben
Python/Go/C#Source-Code - Konvertierung.
Kann ich auch den Quellcode von Prj-TP ( Apache), Prj-TG2 ( MIT) und Prj-TC ( BSD) unter einer anderen Lizenz veröffentlichen?
- Ich denke, ich kann für die oben genannten Lizenzfälle.
Kann ich meinen Namen für Copyright Prj-TP, Prj-TG2, Prj-TC verwenden?
- Ich denke, ich kann meinen Namen unter früheren Copyright-Inhabern hinzufügen, wie vom Benutzer erklärt: "Bart van Ingen Schenau" in seiner Antwort, weil ich Maschine verwendet habe, um einen Teil des eingegebenen Quellcodes zu konvertieren. Wenn ich konvertieren
Python/Go/C#inC++ohne jede Maschine oder Transpiler Software, mit eigener Hand, Auge, Gehirn manuell, dann brauche ich nicht vorherigen Copyright-Inhaber (n) hinzuzufügen.
Muss ich Prj-A / Prj-M / Prj-B benachrichtigen?
- Ich denke, ich muss nicht, wie von User erklärt: "Bart van Ingen Schenau" in seiner Antwort, und es ist höflich, dies trotzdem zu tun. Ich werde natürlich vorgelagerte Originalautoren / -entwickler informieren. und ihr Name ist auch im Copyright-Hinweis.
Ich habe vergessen, dies früher zu erwähnen und zu fragen : Ich habe neue Funktionen im neuen Projekt Prj-D hinzugefügt und auch neue Funktionen im transpilierten Projekt Prj-TG hinzugefügt, die im "vorgelagerten" Projekt Prj-G oder im transpilierten Projekt Prj nicht vorhanden waren -TG. Und ich werde dieselben neuen Funktionen für das geplante neue Projekt Prj-D2 und in Prj-TG2 erneut hinzufügen. Diese neuen Funktionen verwenden neue Quellcodedateien, die von mir erstellt wurden. Kann ich in meinen spezifischen neuen Quellcodedateien nur meinen Namen als Urheberrechtsinhaber verwenden?
- Ich denke, ich kann, da ich allein diese Quellcodedateien erstellt habe.
Übrigens möchte ich Sie auch darüber informieren, dass Projekte Prj-TP, Prj-TG, Prj-TC, Prj-D und geplante neue Projekte Prj-TG2, Prj-D2 usw. JEDES haben (und wird) völlig andere & neue Software-Namen haben.
Antworten
Die Grundlage des Urheberrechtsschutzes ist, dass das Ergebnis menschlicher Kreativität davor geschützt wird, von anderen angeeignet zu werden. Dies bedeutet, dass Sie, wenn Sie eine rein mechanische Transformation auf einen Quellcode anwenden, keine neue Arbeit erstellen, was die Urheberrechte betrifft, und daher keine Rechte an der Transformation beanspruchen können.
Alle Änderungen, die Sie vor oder nach dem Transpilieren vorgenommen haben und bei denen Sie überlegen mussten, wie die Änderung vorgenommen werden soll (egal ob kurz oder lang), führten zu einem neuen Werk für urheberrechtliche Zwecke, bei dem Sie die Urheberrechte an der Änderung beanspruchen können. Das Transpilieren selbst änderte jedoch nichts daran, wem die Urheberrechte an dem Werk gehören.
Kann ich auch Prj-TP, Prj-TG, Prj-TC [und Prj-M] jeweils unter einer anderen Lizenz veröffentlichen?
Prj-TP, Prj-TG, Prj-TC und Prj-TM sind jeweils abgeleitete Werke von Prj-P, Prj-G, Prj-C und PRJ-M. Ob Sie für die transpilierten Projekte eine andere Lizenz verwenden können, hängt davon ab, ob die Lizenz des ursprünglichen Projekts die Verwendung einer anderen Lizenz für ein abgeleitetes Werk zulässt.
Die Apache-, MIT- und BSD-Lizenzen erlauben dies, die GPL-Lizenz jedoch nicht, was bedeutet, dass Prj-TG unter der GPL-Lizenz bleiben muss.
Kann ich Prj-D mit einer anderen Lizenz veröffentlichen? (anders als in Prj-A / Prj-G [oder Prj-M] / Prj-B verwendet).
Da Sie tatsächlich Code von Prj-TP, Prj-TG und Prj-TC in Prj-D aufgenommen haben, ist Prj-D eine abgeleitete Arbeit aller drei dieser Projekte und im weiteren Sinne auch von Prj-P, Prj-G und Prj- C.
Da Prj-G die GPL-Lizenz verwendet, muss Prj-D auch unter der GPL-Lizenz lizenziert werden. Und dort stoßen Sie auf ein Problem, weil die GPLv2-Lizenz nicht mit der Apache-Lizenz kompatibel ist. Dies bedeutet, dass ein Projekt, das Code unter beiden Lizenzen enthält, nicht verteilt werden kann.
Es gibt zwei Wege aus diesem Problem heraus, von denen einer das Problem sicher löst und der andere weniger sicher ist.
- Wenn Prj-G tatsächlich unter "GPLv2 oder einer späteren Version" lizenziert ist, können Sie GPLv3 für Prj-D und optional für Prj-TG verwenden. Die GPLv3-Lizenz ist mit der Apache-Lizenz kompatibel.
- Mit der Apache-Lizenz können Sie ein abgeleitetes Werk unter einer anderen Lizenz verteilen. Sie könnten Prj-TP unter einer GPLv2-kompatiblen Lizenz vertreiben, aber ich bin nicht 100% sicher, dass dies das Kompatibilitätsproblem zwischen den Apache- und GPLv2-Lizenzen behebt. Wenn Sie sich für diesen Weg entscheiden, empfehle ich Ihnen dringend, sich von einem Anwalt professionell beraten zu lassen, wenn Sie dies tatsächlich tun können.
Da Sie tatsächlich Code von Prj-TP, Prj-TM und Prj-TC in Prj-D2 aufgenommen haben, ist Prj-D2 eine abgeleitete Arbeit aller drei dieser Projekte und im weiteren Sinne auch von Prj-P, Prj-M und Prj- C.
Da alle diese Projekte über eine zulässige Lizenz verfügen, mit der abgeleitete Werke unterschiedlich lizenziert werden können, können Sie für Prj-D2 eine andere Lizenz auswählen.
Kann ich meinen Namen für Copyright Prj-TP, Prj-TG, Prj-TC verwenden? Kann ich meinen Namen für Copyright Prj-D verwenden?
Da Sie einige manuelle Arbeiten zum Erstellen von Prj-TP, Prj-TG, Prj-TC und Prj-D durchgeführt haben, können Sie neben den im Original vorhandenen Copyright-Zeilen auch eine eigene Copyright-Zeile hinzufügen. Mit den beteiligten Lizenzen (Apache, GPLv2 und BSD) können Sie diese ursprünglichen Copyright-Zeilen nicht entfernen.
Muss ich Prj-TP / Prj-TG / Prj-TC benachrichtigen?
Nein, Sie müssen sie nicht benachrichtigen, können dies jedoch aus Höflichkeit tun.