Kann ich die Qt LGPL-Lizenz verwenden und meine Anwendung ohne Einschränkungen verkaufen? [geschlossen]

85

Ich möchte ein plattformübergreifendes Projekt starten. Ich hatte meine Nachforschungen und jetzt bin ich fast sicher, dass Qt der richtige Deal ist. Hier gibt es jedoch ein großes Hindernis: die Lizenzierung .

Ich möchte mein Projekt verkaufen und ich möchte auch keine Quelle für meine Arbeit preisgeben oder eine Lizenz bezahlen. Ich habe geprüft und festgestellt, dass Qt sowohl kommerzielle als auch Open Source-Lösungen anbietet. Ich habe zu viele widersprüchliche Aussagen zur Qt-Lizenzierung gehört, die mich sehr verwirrten. Einige sagen, dass ich meinen Code auch dann einreichen muss, wenn ich die LGPL-Version von Qt verwende. Ist das wahr?

Kann mir jemand eine einfache Erklärung zu Qt-Lizenzen geben und mir sagen, ob ich meine Anwendung ohne Einschränkungen verkaufen kann oder nicht? Würde mir jemand andere Äquivalente zu Qt für die plattformübergreifende Entwicklung ohne Einschränkungen nennen?

Rika
quelle
5
Diese Frage läuft auf rechtliche Fragen hinaus. Diese sind hier auf SO leider nicht zum Thema.
Bart
1
Ich habe ein Dilemma zu diesem Thema. Es gibt keinen Streit über die Lizenzierung selbst! Wie sie behandelt werden und wie sie mich im Entwicklungsprozess beeinflussen. Ich denke, es ist vollkommen in Ordnung, eine solche Frage zu stellen.
Rika
1
Ich suche keinen Rat für den kommerziellen oder LGPL-Betrieb, ich brauche nur einige Erläuterungen zum Lizenzierungssystem selbst. Ich wäre Ihnen dankbar, wenn Sie diese Frage zur weiteren Erläuterung zu diesem Thema öffnen würden.
Rika
1
Dann komm zu Meta. Fragen Sie, ob die Frage mit Ihrer Formulierung themenbezogen ist und erneut geöffnet werden könnte. Es benötigt entweder einen Moderator oder 5 Personen mit ausreichenden Berechtigungen, um es wieder zu öffnen. Machen Sie es dort einfach zu einer freundlichen Frage und die Community wird einen Blick darauf werfen. Meta.stackoverflow.com
Bart
1
Meta ist fantastisch, solange Sie sich nicht wirklich um Ihren Meta-Repräsentanten kümmern. Die Abstimmung ist dort viel liberaler.
Rlemon

Antworten:

100

Einfach dynamisch mit Qt verknüpfen. Wenn Sie dynamisch eine Verknüpfung zu LGPL-Bibliotheken herstellen, müssen Sie sich keine Sorgen machen.

Wenn Sie statisch auf sie verlinken, können Sie einfach Ihre Objektdateien (nicht Ihren Quellcode) verteilen, und alles wird gut.

Die Idee der LGPL ist, dass der Endbenutzer in der Lage sein muss, die LGPL-Bibliothek durch eine gewünschte Version zu ersetzen. Mit der dynamischen Verknüpfung mit der LGPL-Bibliothek können Sie dies tun, ebenso wie mit der statischen Verknüpfung und Verteilung Ihrer Objektdateien. Solange Sie dies tun, können Sie Ihr Closed-Source-Programm verkaufen, was Sie wollen.

Natürlich hat die LGPL mehr zu bieten als nur das, aber das ist der relevante Teil.

Maisstängel
quelle
6
Die LGPL verlangt außerdem, dass Sie "die Änderung der Teile der Bibliothek, die in der kombinierten Arbeit und im Reverse Engineering zum Debuggen solcher Änderungen enthalten sind, nicht einschränken", was möglicherweise im Widerspruch zu den Verboten einiger kommerzieller EULAs für das Reverse Engineering steht.
Josh Kelley
15
@Hossein Hast du die Antwort überhaupt gelesen? Dies hat nichts mit Ihrem Code zu tun . Die LGPL-Lizenz von Qt bezieht sich nur auf Qt und Qt. Sie können Ihren Code also verpacken und lizenzieren, wie Sie möchten. Wenn Sie jedoch keine kommerzielle Qt-Lizenz erwerben möchten, müssen Sie eine dynamische Verknüpfung zu Qt herstellen. Die kommerzielle Lizenz von Qt ist für den Fall vorgesehen, dass Sie den Quellcode von Qt ändern und die von Ihnen vorgenommenen Änderungen nicht für die Öffentlichkeit freigeben möchten .
cmannett85
1
@Hossein: Und solange du dynamisch auf Qt verlinkst. Ehrlich gesagt, sollten Sie nur einen Anwalt bekommen. Sie sollten immer mit einem sprechen, bevor Sie ein kommerzielles Unternehmen gründen. Und FWIW, IANAL.
Cornstalks
2
@Hossein, Benutzer sollten in der Lage sein, Qt selbst zurückzuentwickeln und vollständig zu ersetzen. Dies bedeutet jedoch, dass Sie das Reverse Engineering NICHT verbieten sollten. Sie müssen Qt als DLLs verteilen ... und als Bonus die Objektdateien Ihrer App (nicht obligatorisch). Wenn Sie sich um Ihre Objektdateien kümmern, sollten Sie sich auch um Ihre EXE kümmern! Denn für jemanden, der weiß, wie man Objektdateien verwendet, weiß er auch, was genau eine EXE ist! Diese Leute neigen dazu, sich um Dinge auf niedriger Ebene zu kümmern, und sie wissen weit mehr als wir. Für sie kann sogar Ihre EXE so lesbar sein wie Ihr Quellcode für Sie: P
Петър Петров
1
@ ПетърПетров Ja, Reverse Engineering ist ein echtes Problem bei der Verwendung von LGPL-Bibliotheken. Ausführbare Dateien sind jedoch in der Regel viel schwieriger zurückzuentwickeln als eine Reihe von Objektdateien (nämlich weil ausführbare Dateien normalerweise entfernt werden, Link-Time-Optimierungen und Inlining angewendet werden usw.). Aber Sie haben absolut Recht: Wenn Sie nicht genau wissen, wie Sie Ihre ausführbare Datei erstellen, ist das Reverse Engineering möglicherweise genauso einfach wie alle Ihre Objektdateien.
Cornstalks