Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Hier kann über allgemeine Themen diskutiert werden, die sonst in kein Forum passen.
Insbesondere über Szene, Games, Kultur, Weltgeschehen, Persönliches, Recht, Hard- und Software.
Antworten
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Tiles »

Mal ganz kurz, und bevor mir da ein Anwalt auf den Zehennägeln steht, kann man GPL v3 Code in einem GPL v2 Projekt verwenden? Muss ich da was beachten? Eventuell getrennt distributieren?

Ich will ja PyQt5 in Blender einbauen. Die Open Source Version von PyQt5 ist GPL v3. Und Blender ist GPL v2 ...
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
B.G.Michi
Establishment
Beiträge: 163
Registriert: 07.03.2006, 20:38
Alter Benutzername: B.G.Michi
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von B.G.Michi »

Ohne Gewähr: nein. Anders rum ginge.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Tiles »

Supi. Danke. Das ist dann wohl das Ende vom Projekt -.-
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8237
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Krishty »

Michi hat recht:
http://www.gnu.org/licenses/rms-why-gplv3.html hat geschrieben:When we say that GPLv2 and GPLv3 are incompatible, it means there is no legal way to combine code under GPLv2 with code under GPLv3 in a single program. This is because both GPLv2 and GPLv3 are copyleft licenses: each of them says, “If you include code under this license in a larger program, the larger program must be under this license too.” There is no way to make them compatible.
Kannst du nicht deine Blender(v2)-Modifikationen als v3 zur Verfügung stellen (upgraden?) und dann PyQt5 einbauen? Da gibt es sicher Spielraum bei basieren, nutzen, erweitern und einbinden …

(Wenn ich das hier als Frage schreibe, frage ich nicht dich, sondern das wäre meine Frage an Anwälte/Leute, die sich damit auskennen. Die Frage, die ich aber wirklich dir stelle, ist:)

Kannst du nicht mal die Blender-Leute fragen, ob sie dir ihren Quelltext als GPL v3 zur Verfügung stellen? Sie sind deinem Projekt gegenüber ja sicher nicht negativ eingestellt, und sie hätten dabei ja auch nichts verlieren. Vielleicht wollen sie ja schon länger umsteigen, und sind nur noch nicht dazu gekommen; oder oder oder.

Nachtrag: StackOverchange hat noch einen guten:
http://programmers.stackexchange.com/questions/167457/downgrading-from-gpl-v3-to-gpl-v2 hat geschrieben:It's worth noting that the FSF has historically encouraged code to be licensed under the GPLv2 or later; the suggested text for LICENSE files is, "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version." So while you're right that they're not compatible by default, most GPLv2 software can be incorporated into GPLv3 projects without incident in practice.
Dann guck mal ganz schnell nach, ob Blender diesen Nebensatz enthält!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Tiles »

Ich ärger mich grade tierisch dass ich das nicht schon früher recherchiert habe. Ich hatte echt auf PyQt gesetzt. Und nur GPL gesehen -.-

Für eine Lizenzänderung sehe ich nicht den Hauch einer Chance. Denn dafür müsste jeder der je Code committet hat zustimmen. Oder selbiger Code rausfliegen. Und da Blender über die Jahre jedes Jahr Commits von dutzenden Leuten bekommen hat sind wir da inzwischen glaube ich bei knapp 225 Leuten wenn ich mich noch recht erinnere. Viele davon gar nicht mehr zu erreichen. Ist Licensing nicht schön :D

Aber du hast da tatsächlich was ausgebuddelt. Da steht tatsächlich was drin von wegen later. Ich werde nur nicht so recht schlau draus:
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
Wobei. Die sagen da zwar dass man ne spätere Lizenznummer von der Blender Foundation nehmen darf. Aber oben drüber steht eben V2 -.-

EDIT sagt, es steht auf der Blender Webseite, allerdings eben nicht im Beipackzettel:
License details

The source code we develop at blender.org is default being licensed as GNU GPL Version 2 or later. Some modules we make are using more permissive licenses though, for example the Blender Cycles rendering engine is available as Apache 2.0.

Blender also uses many modules or libraries from other projects. For example Python uses the Python License; Bullet uses the ZLib License; Libmv uses the MIT License; and OSL, a BSD License.

All the components that together make Blender are compatible under the newer GNU GPL Version 3. That is also the license to use for any distribution of Blender binaries.
Frage, wieso kommt das Lizenzing mit GPL v2 wenn hier doch v3 steht? Mann ist das confusing -.-

Aber so wie sich das hier liest ist das dann eben zumindest v2 or later. Und das heisst für mich dass ich hier doch PyQt nehmen darf \o/

Danke Krishty :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Lynxeye
Establishment
Beiträge: 145
Registriert: 27.02.2009, 16:50
Echter Name: Lucas
Wohnort: Hildesheim
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Lynxeye »

Die Lizenz der einzelnen Dateien kann sich durchaus von der Lizenz des Gesamtwerks unterscheiden, solange die Einzellizenzen kompatibel mit der Lizenz des Gesamtwerks sind. Deshalb ist es, wenn auch lästig, guter Stil in jeder Datei den Lizenzheader zu haben. Auch wenn das Gesamtwerk unter GPLv3 steht darfst du Code aus Dateien, welche unter GPLv2+ stehen, durchaus herauspicken und in einem neuen GPLv2 Gesamtwerk rekombinieren.

In deinem konkreten Fall sollte alles in Ordnung sein, da du ja eine Komponente einbauen willst, welche mit der Lizenz des Gesamtwerks übereinstimmt. Anders würde es aussehen wenn du eine "GPLv2 only" Komponente einbauen wollen würdest, diese steht einer Lizenzierung des Gesamtwerks als GPLv3 entgegen, da GPLv2 ohne den "or (at your option) any later version" Nachsatz nicht zu GPLv3 upgradebar ist.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Tiles »

Danke :)

Ganz schön verzwackt dieses Open Source Licensing. Nicht das erste Mal dass mir das schwerstes Kopfzerbrechen bereitet. Das war grade ein echter Schreck in der Abendstunde ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von xq »

Noch ein Hinweis von mir: Du nutzt hier Python und wahrscheinlich ist QtPy5 eine DLL, oder? Damit nutzt du nicht Static Linking, sondern Dynamic Linking.

Dazu möchte ich hier auf das Qt-Wiki hinweisen:
What are my obligations when using Qt under the LGPL??
  • ...
  • The LGPL allows you to keep the source code of your application private as long as it is “work that uses” the library. Dynamic linking is usually recommended here.
  • ...
https://www.qt.io/faq/

Ich würde mir die Auswirkungen der GPL mal durchlesen, wenn es um Dynamic Linking geht, die hat da teilweise sehr unerwartete Effekte und erlaubt afaik auch (wie der Text oben erläutert) sogar Closed-Source-Software, solange man DLLs verwendet.

EDIT: Und ja, der Teil oben bezieht sich auf die LGLP

EDIT2:
Nach meinem Verständnis kommt dir hier noch eine andere Sache zu Gute:
Du wirst ja PyQt nur in deinem Python-Code verwenden, oder? Der Python-Code kommt komplett von dir, baut auf der Blender-API und der QtPy-API auf. Damit kannst du deinen Python-Code unter die GPLv3 stellen, ohne dass du die Lizenzen von Blender noch von QtPy kratzt. Zudem erfüllst du ja auch das Open-Source-Requirement für den Code, da der Python-Code ja nicht compiliert verbreitet wird, oder?
Aber wie immer, alles ohne Gewähr ;)
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Tiles »

Danke für die Tips :)

Ja, der Python Code liegt offen. Der wird erst von Blender interpretiert. Es wird aber wohl Umbauten am C Code benötigen um das wirklich zu integrieren. Noch habe ich da ein einzelnes floating Window. Ohne Verbindung mit den Blender Editoren.

Puh, static und dynamic Linking? Das habe ich bisher nicht so recht verstanden. Entweder linke ich, oder ich linke nicht. Wo ist denn da der Unterschied? Geliefert wird das Ganze jedenfalls dann als ein Bündel. Deswegen müssen ja die Lizenzen zueinander stimmen.

Beim Deployment und dem Sortieren was ich beipacken muss, kann und darf bin ich ehrlich gesagt noch gar nicht so recht angekommen. Noch bin ich erst mal froh dass ich das überhaupt irgendwie zum Laufen bekommen habe. Den QT Designer könnte ich sicher in der Release Version entsorgen. Aber dann klemme ich ja die Leute ab die da nachträglich was dran basteln wollen. Deswegen wirds wohl der komplette Ordner werden.

Aber zurück zum Thema, PyQt ist leider nicht nur eine simple DLL. Das ist ein ganzes Rudel an Dateien und Abhängigkeiten. Qt ist ja C++. PyQt die Python Bridge dazu. Unter Anderem benötigt das so Sachen wie sip (was mich kurz mal auf die komplett falsche Fährte gebracht hat weil auf der PyQt Seite steht man muss das extra installieren. Was gar nicht stimmt weil der Windows Installer schon alles mitbringt, auch sip). Und diese Sachen liegen dann offen bei. Ich kompiliere das ja nicht selber. Sondern verwende derzeit den Windows Installer um die entsprechenden PyQt Dateien da hin zu installieren wo sie gebraucht werden. Unter Anderem die 64 Bit Version zur Blender 64 Bit Version, und die 32 Bit Version dann zur Blender 32 Bit Version ...
EDIT: Und ja, der Teil oben bezieht sich auf die LGLP
Fieser Fallstrick: Qt gibts zwar als LGpl. PyQt steht aber unter Gpl 3 ^^
Dateianhänge
pyqt5folder.jpg
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
NytroX
Establishment
Beiträge: 362
Registriert: 03.10.2003, 12:47

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von NytroX »

Also ich sehe da kein Problem, mach doch alles einfach GPLv3.

Von der Blender Homepage (https://www.blender.org/about/license/):
All the components that together make Blender are compatible under the newer GNU GPL Version 3. That is also the license to use for any distribution of Blender binaries.
Oder hab ich was übersehen?
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von Tiles »

Ja. So wird das wohl auch ablaufen. Das mit der v3 hatte ich erst hinterher auf der Blender Homepage gesehen.

Blender selbst liegt bei der Exe diese Lizenz bei. Da ist nichts von v3 zu lesen. Das war der Teil der mich gestern so richtig erschrocken hat, weil GPL 2 von 1991 ^^
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

....
Für mich ist das ehrlich gesagt schon wieder ein falsches Licensing. Denn der Hinweis auf GPL v3 müsste auch in der beiliegenden GPL Lizenz zu finden sein. Der Teil steht aber nur auf der Homepage.

Was die Sache halt auch verzwickt macht ist dass Teile von Blender durchaus noch unter Gpl v2 stehen. Und spätestens da steige ich als Nicht-Anwalt aus. Ich halte mich da an die für mich günstigere Variante. Und die steht auf der Blender Homepage mit v3. Also für die Teile die ich da einbaue dann :)

While at falsches Licensing, die Jungs der Blender Docs Abteilung haben da auch einen fetten Lizensierungsfehler in der Blender Manual drin. Da steht © Copyright : This page is public domain as CC0. Also entweder issess CC0. Das ist kein Public Domain. Oder es ist Public Domain. Das ist dann kein CC0. CC0 hat halt die ganz doowe Angewohnheit dass du jedesmal crediten musst. Würde ich ja gern, ich habe ja die Blender Manual für Bforartists konvertiert. Die Autoren werden aber noch nicht mal genannt.

Und in der Mailing List gabs unlängst auch noch ein Veto von Ton. Denn die Manual war früher unter einer ganz anderen Lizenz. Und die Jungs die die Manual geschrieben haben wurden bei der Lizenzänderung nicht gefragt. Die fand einfach mal eben so mit der Umstellung auf Sphinx statt. Das ist aber wohl noch in der Schwebe. Der Hinweis in der Blender Manual existiert nach wie vor als Public Domain as CC0. Und ich habe den leisen Verdacht dass das auch so bleibt ^^

Das mit der ungefragten Umlizensierung ist mir übrigens persönlich auch mal mit dem Unify WIKI passiert. Die war anfänglich unabhängig von Unity. Die Lizenz war Public Domain. Da hatte ich ein Script drin. Dann ging Unity her und hat das WIKI eingemeindet. Und den kompletten Content unter CC0 gestellt. Und auch auf Protest nicht mehr rückgängig gemacht.

Wenn du ganz fies wärst könntest du jetzt ganz viele Leute verklagen die davon ein Script verwenden. Weil wie gesagt CC0 Content immer creditet werden muss. Und wer macht das schon bei einem Wiki ...

Hach. Open Source Licensing ... :lol:
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: Kann man GPL v3 Code in einem GPL v2 Projekt verwenden?

Beitrag von xq »

Das ist der Grund, warum ich in den meisten Fällen die ZLib-Lizenz oder die MIT-Lizenz verwende. Da gibt es wenig Probleme und spart einem viel Stress. Ich hoffe du findest eine saubere Lösung dafür... Wäre zu schade, wenn das Projekt daran scheitern sollte...
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
Antworten