Qt - kommerzielle Lizenz benötigt?

Dein Thema passt einfach in kein Forum? Dann probiers mal hier.
Antworten
exaveal
Beiträge: 14
Registriert: 18. Dezember 2009 16:05

Qt - kommerzielle Lizenz benötigt?

Beitrag von exaveal »

Hallo.


Ich bin als Werksstudent bei einer Firma angestellt und habe die Aufgabe ein Programm zu schreiben. Mir wird dabei offen gelassen, bzw kann ich zumindestens eigene Vorschläge machen, wie ich meine Aufgabe realisieren soll.
Da ich letztes Semester angefangen habe mich mit der Qt Klassenbibliothek für ein Projekt im Studium zu beschäftigen, dachte ich an diesen Weg.
Das Programm soll nicht vertrieben bzw verkauft werden. Es wird ausschließlich für die interne Nutzung im Betrieb verwendet.

Es wird nichts am Qt Code verändert, und die Qt librarys werden dynamisch gelinkt. Sollen also nicht statisch ins Programm kompiliert werden.
Meiner Auffassung nach (http://qt.nokia.com/products/licensing) bräuchte ich keine kommerzielle Lizenz und kann Qt unter der LPGL verwenden.

Liege ich da richtig? Ich will nur nicht meine Firma in irgendetwas reinreiten, weil ich in der Lizenzpolitik nicht ganz durchgestiegen bin :?


wäre es nun erforderlich, eine kommerzielle Lizenz erwerben?
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Es wird nichts am Qt Code verändert, und die Qt librarys werden dynamisch gelinkt.
unter windows und linux gibts da schon mal technische unnerschiede, ob das relevant ist oder nicht.
Unter windows bleibt die Sache zumindest "unsicher".
Wie die Gerichte das sehen, keine Ahnung.
Die Chance das jemand die Firma belangt oder abmahnen wird, ist sicher gering. Aber grad im geschaeftlichen Umfeld ist "gering" noch viel zu viel.

Weiterhin, die Firma tritt sicher als Juristische Person auf. Wenn du in deren Auftrag entwickelst, patentansprueche mal aussen vor, gehoert der Code der Firma. Für die anderern Programmierer gilt sicher das gleiche.
Somit gibt es also keine veröffentlichung, somit bleibt alles intern ... eigentlich.
Die Firma sollt aber sicherstellen, das keine Codeanteile da auf den Weg nach aussen kommen (plötzlich wird dann doch SW vertrieben wird, oder ein Kooperationspartner bekommt den code und vertreibt den, bzw die Firma erlaubt den Programmieren den code in anderen Projecten zu verwenden ), sonst koennt es doch problematisch werden.

Ich glaube allerdings kaum, dass DU als Werkstudent solche entscheidungen treffen solltest. Ich wuerd mich expliziet noch mal bei Deiner Firma rueckversichern, damit haben die das Problem an der Backe.
Schlimmstenfalls kann dein Projekt sonst abgelehnt / als nicht erfuellt betrachtet werden, weil zum Betrieb dlls erforderlich sind, die nicht den Anforderungen an die Lizenzbedingungen entsprechen.

Aber ich denk Du hasst ne grosse Chance das dein zustaendiger Betreuer sagt: ja mach nur ... dann bist aber quasi abgesichert.

Ciao ...
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Beitrag von ScyllaIllciz »

Unter windows bleibt die Sache zumindest "unsicher".
Das verstehe ich nicht. Wenn ich die Bestimmungen der LGPL einhalte, also dynamisch linke und keine Änderungen an den Bibliotheken vornehme, kann ich die Software auch als Closed Source vertreiben, egeal ob Windows oder Linux. Sollte ich mich da so irren? Was würde dann die LGPL für Sinn machen? Ich habe auch irgendwo gelesen (hier im Forum?), dass selbst statisches Linken "gedultet" aber nicht gern gesehen wird!?!?
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Ich habe auch irgendwo gelesen (hier im Forum?), dass selbst statisches Linken "gedultet" aber nicht gern gesehen wird!?!?
Naja, hier gehts um Rechtssicherheit, da iss was "geduldetes" sicher ein "No go" oder ?
also dynamisch linke
Und wenn du mir erklärst, wie du unter windows die qt 100% dynamisch linkst, aus technischer Sicht .... dann widerrufe ich das "unsicher"

Ciao ...
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

1.
Der Urheber des Qt-Codes ist und bleibt Nokia. Das beudeutet: Die Jungs und Mädels können sich jederzeit für (oder gegen) eine Lizenz entscheiden und auch Abweichungen festlegen. Das bedeutet: Wenn Nokia sagt: Es dürfen kommerzielle Applikationen entwickelt werden, dann ist das so! Wenn man unsicher ist und bei Nokia nachfragt und man dann eine rechtsgueltige Antwort erhaelt ("Ja, mit Qt X.Y darf ausdrücklich auf Plattform XY mit dem Compiler/Linker XY gemaess LGPL (dynamisch linken) kommerziell entwickelt werden"), dann ist das ok!

2.
RHBaum hat geschrieben: Und wenn du mir erklärst, wie du unter windows die qt 100% dynamisch linkst, aus technischer Sicht .... dann widerrufe ich das "unsicher"

Nicht die Unschuld muss bewiesen werden, sondern die Schuld: Welche Zeile Code von Nokia kann von einem Kunden unter Windows nicht geändert werden und unter Unix-Systemen schon (damit sind also Makros, inline- und template-Methoden welche von Nokia explizit in einer LGPL-Exception (http://doc.trolltech.com/4.5/lgpl.html letzter Abschnitt) geregelt werden, ausgeschlossen)?

3.
@ScyllaIllciz: statisches Linken verletzt die LGPL definitiv. Ich kann mir nicht vorstellen, dass du dies hier im Forum irgendwo gelesen hast.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

zu 1.
Sie koennen das LizensierungsModell einer veroeffentlichten version aber nicht nach oben aendern, bzw zurueckziehen. Glaub befristete GPL/LGPL gibts ned .... also koenntens nur nach unten aendern, was wiederum LGPL, GPL konform waer.
Neuere Versionen könnten unter ner ganz anderen Lizenz stehen, aber das beeeinflusst ja nicht die vorherige.

zu 2.
es geht gar ned ums veraendern, sondern ums linken.
damit sind also Makros, inline- und template-Methoden
Genau, diese sind die expliziet als Ausnahme von Nokia definiert. Das waere inline compilierter code und wuerde damit die LGPL ausser Kraft setzen. Damit funktioniert das scho mal unter linux.
Was ist unter WIndows anders ? genau, die Import Libs ! Wurden die "nur" vergessen ???
Und selbst wenn du ein explizietes Recht bekommst, die dlls und importlibs selber zu kompilieren (oehne aenderung des quellcodes natuerlich), dürftest du dann die libs statisch zu deinem Programm linken ? Ich sag ... das ist "unsicher", sprich "nicht spezifiziert". Da es kein Vergleichsurteil bisher gibt IMHO, ist das rechtlich ungewisser Raum.

Schaffst du es, statt den Importlibs alle Aufrufe per Loadlibrary Und GetProcAdress Aufrufe nachzubilden, hasst du auch kein problem mehr.

Viel Spass !

Und lass Dir noch mal Sinn und Zweck, bzw Daseinsberechtigung der LGPL durch den Kopf gehen, und was damit bezweckt wird!
Selbst wenn du es schaffst, das ABI der QT unter windows mit eigenen Mitteln nachzubauen und damit die qt-dlls zu ersetzen, durch die Importlibs wirst du Die QT-Anteile nie 100% aus der App verbannen koennen (ohne die App neu zu übersetzen) !

Ciao ...
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

RHBaum hat geschrieben:... Sie koennen das LizensierungsModell einer veroeffentlichten version aber nicht nach oben aendern, bzw zurueckziehen..
Ich habe mich evt. unklar ausgedrückt: Wenn der Besitzer von irgendwas (egal ob von einem Haus oder von Quellcode) sagt, dass man damit was spezielles damit machen darf, dann ist das ok!
RHBaum hat geschrieben:..
zu 2.
es geht gar ned ums veraendern, sondern ums linken.
[
Es geht nur ums Verändern. Der Kunde muss die Möglichkeit haben, den Quellcode von Qt (trotz der proprietären Anwendung) zu verändern (z.B. um einen Fehler zu beheben). Ich bin kein Windows-Entwickler, aber http://en.wikipedia.org/wiki/Dynamic-li ... _libraries beschreibt, dass Import-Libs nur eine Address-Table beinhaltet, welche zur Laufzeit initialisiert wird. Korrigier mich, wenn ich falsch liege, aber einem Kunden ist es doch dadurch jederzeit möglich, den Code von z.B. QLayout::removeWidget(..) zu ersetzen (weil sich in der Import-Lib nur die Einsprungsadresse befindet, nicht der Code selbst).

Daher: wo irre ich mich? Welcher Qt-Code kann von einem Kunden nicht ersetzt werden, wenn mit Import-Libs gearbeitet wird?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

solarix hat geschrieben:Ich habe mich evt. unklar ausgedrückt: Wenn der Besitzer von irgendwas (egal ob von einem Haus oder von Quellcode) sagt, dass man damit was spezielles damit machen darf, dann ist das ok!
Es ist nur die große Frage, ob eine irgendwo getätigte Aussage rechtskräftig ist. AFAIK ist das einzige was zählt die Lizenz. Wobei hier tatsächlich an sehr prominenter Stelle eindeutig steht:
This version of Qt is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions contained in the GNU LGPL version 2.1.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

dass Import-Libs nur eine Address-Table beinhaltet
Ich komm teilweisse auf 200-500kb grosse Importlibs (release). Ich bezweifel mal, das da nur ne IAT drinne steckt. 100 000 Funktionen / Methoden sind da glaub ich ned drin :-)
Aber selbst wenn, Tabellen mit relativen Adressen sind sicher auch Code :-)

Wenn Du 100% sicher gehen willst, schick ne Supportanfrage an Nokia!
Aber zu 99.99% werden die antworten, dass du ne kommerzielle Lizenz brauchst !
Ich habs schon schriftlich quasi, allerdings von unserer Rechtsabteilung. Die meinen, das die LGPL fuer unsere SW Entwicklung rechtlich nicht in Frage Kommt. Weder veraendern wir code noch nehmen wir Support in Anspruch !
Leider krieg ich keine Begründung auf dem technischen Niveau, also so wie wie hier disskutieren.

Ciao ...
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

RHBaum hat geschrieben: Ich komm teilweisse auf 200-500kb grosse Importlibs (release). Ich bezweifel mal, das da nur ne IAT drinne steckt. 100 000 Funktionen / Methoden sind da glaub ich ned drin :-)
Die Importlib ist ja nur eine alternative zu "GetProcAddress". Die Adressauflösung beruht ja auf den Methodenbezeichner (siehe http://sandsprite.com/CodeStuff/Underst ... ports.html). Dadurch werden viel mehr als 4Byte an Metadaten benötigt. Deine Release-Importlibs sind also wirklich nur Tabellen...
RHBaum hat geschrieben: Aber selbst wenn, Tabellen mit relativen Adressen sind sicher auch Code :-)
Ja, das stimmt (Initialisierungscode). Aber keiner von Nokia ;) (das ist genau so wenig Code von Nokia, wie wenn du selber im Programm "GetProcAddress" nutzen würdest.
-> Importlibs haben daher keinen Einfluss auf die LGPL.
RHBaum hat geschrieben: Wenn Du 100% sicher gehen willst, schick ne Supportanfrage an Nokia!
Aber zu 99.99% werden die antworten, dass du ne kommerzielle Lizenz brauchst !
Die Jungs wollen sicher was verkaufen, das ist klar. Ausserdem kann von einer LGPL-Version nicht mehr auf eine kommerzielle Variante gewechselt werden (umgekehrt schon). Durch ist die kommerzielle Variante flexibler was die Lizenzierung angeht und wird daher eher empfohlen.

Wir haben uns mit Nokia darauf geeinigt, die LGPL einzusetzen aber einen Wartungsvertrag zu kaufen. Das war dann für beide Seiten eine gute Sache.
-> Eine Anfrage beim Start des Projektes ist daher sicher sinnvoll.
RHBaum hat geschrieben: Ich habs schon schriftlich quasi, allerdings von unserer Rechtsabteilung. Die meinen, das die LGPL fuer unsere SW Entwicklung rechtlich nicht in Frage Kommt. Weder veraendern wir code noch nehmen wir Support in Anspruch !
Leider krieg ich keine Begründung auf dem technischen Niveau, also so wie wie hier disskutieren.
Ciao ...
Das ist genau das Problem: nichts gegen eure Rechtsabteilung, aber ich werde das Gefühl nicht los, dass sich dort einfach die Diskussion/Einarbeitung schon nicht gelohnt hätte. Was soll die Diskussion um ein paar Kilo-Euro in einem grösseren Betrieb? Wenn sich die Rechtsabteilung da hätte einarbeiten müssen, wäre das vermutlich teurer als die Qt-Lizenz gewesen :wink:
Daher fehlt vermutlich auch die technische Begründung...

Gruss!

[EDIT]
Die Variante LGPL+Wartungsvertrag wäre vermutlich auch für exaveal eine gute Variante...
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Beitrag von ScyllaIllciz »

3.
@ScyllaIllciz: statisches Linken verletzt die LGPL definitiv. Ich kann mir nicht vorstellen, dass du dies hier im Forum irgendwo gelesen hast.
siehe hier
also wenn ich das auf den Qt Dev days richtig verstanden habe muss man auch die src ( also Qt) und die Tools mit denne man die library gebaut hat für 3jahre vorrätig halten.
Ausserdem darfst du quasi nicht die Qt Sachen insoweit veränmdern das sie mit einer anderen (ander Lizenz => kommerziell) kommuniziert.

Rein technisch gesehen ist statisch linken erlaubt-wird aber von den Trolls ncht gerne gesehen!
Wir benutzen zwar auch Linux aber eine Anfrage bei Nokia ist eine gute Idee und wird (Rechts)Sicherheit geben.

Scylla
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

ScyllaIllciz hat geschrieben: siehe hier
Einverstanden, ich habe mich geirrt... scheint in Abschnitt 6a der LGPL geregelt zu sein. Allerdings muss man dann vermutlich die Objekt-Files der proprietären Applikation mitliefern, was auch nicht sehr hübsch ist..
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Beitrag von ScyllaIllciz »

So, da ich gerade hier auf Arbeit mit meinem Chef die Lizenzproblematik diskutiert habe, kann es meiner Meinung nicht sein, dass man ein plattformunabhängiges Framework zur Verfügung stellt, diese unter eine Lizenz stellt und diese Lizenz dann auf unterschiedlichen Plattformen rechtlich unterschiedlich zu betrachten sind? Das widerspricht sich, oder?

Aber da wir einmal beim Thema sind. Ich muss die Qt Libs mit einer bestimmten Toolchain übersetzen und dafür die mkspec anpassen. Zählt das unter eine Veränderung (Qt)? Meiner Meinung nach nicht, da ja eigentlich "nur" die Links zum Compiler (g++, gcc) umgebogen werden, was ich auch erreichen könnte wenn ich die Links von gcc und g++ direkt umlenken würde. Wie seht Ihr das?

Scylla

[edit]
Nirgendwo auf den Seiten/Beiträgen von Nokia/Qt wird "eine" Plattform erwähnt. Also zählt für mich die Unterscheidung Linux/Windows nicht und ist somit gleichwertig (egal ob Importlib oder nicht).

zu statisch Linken: hier auf Seite 14, wird hingewiesen, dass das statische Linken, in der LGPL 2.1 widersprüchlich ist. Sie empfehlen dynamisch zu linken, schließen es aber nicht explizit aus!!!
Antworten