Czy mogę sprzedać moją aplikację PyQt4 bez licencji PyQt?


18

Chciałbym sprzedać aplikację Python korzystającą z PyQt4. Licencje komercyjne na Qt PyQt kosztują łącznie tysiące euro. Czy muszę kupić licencję komercyjną?

Rozważ to z „spakowanego” punktu widzenia, w którym zapewniam pakiet Ubuntu za pośrednictwem Centrum oprogramowania. Mój pakiet „zależałby” od istniejących pakietów Ubuntu Python i PyQt, więc czy musiałbym licencjonować coś, co Ubuntu redystrybuuje, a nie jestem bezpośrednio?

I odwrotnie, jeśli dołączyłem bibliotekę Python GPL / LGPL do mojego pakietu, czy mój pakiet mógłby pozostać niewolny? Czy nie mogę po prostu udostępnić źródła do bibliotek GPL (jeśli zostanie zmodyfikowane)?


Jeśli odpowiedź brzmi „Potrzebujesz licencji komercyjnej”, czy znasz jakieś tańsze alternatywy (takie jak opłaty licencyjne zamiast wstępnych opłat programistycznych)?


5
I edytowane to jawnie mówić o Ubuntu tak, że możemy umieścić to wszystko ręcznie wyżymania za nami, a właściwie odpowiedzieć na pytania ludzi. Wyczyściłem debatę z komentarzy i ponownie otworzyłem pytanie.
Oli

Zauważ, że to pytanie dotyczy PyQt4, który jest dostępny na obu licencjach GNU GPL. Nowsza PyQt5 jest tylko GNU GPLv3. Bardzo trafne techniczne rozróżnienie dotyczące „łączenia” kodu ma tam mniejsze zastosowanie (= mniej nadaje się do pakowania komercyjnego).
mario

Odpowiedzi:


18

Nie jestem prawnikiem i nie jest to porada prawna. Ten post mówi o tym, jakie masz opcje, więc jest to narzędzie badawcze, przeznaczone do użycia wraz z innymi narzędziami badawczymi. Nawet w połączeniu z innymi narzędziami badawczymi nie zastąpi to konsultacji z adwokatem w sprawach prawnych, w których potrzebujesz właściwej odpowiedzi.

Jedną z opcji licencji dla Qt ( nie PyQt ) jest LGPL 2.1 , która pozwala dystrybuować zastrzeżone programy korzystające z biblioteki Qt, pod warunkiem przestrzegania wszystkich warunków LGPL 2.1 .

Jednak PyQt ma obecnie tylko dwie opcje licencjonowania (chyba że negocjujesz coś innego z jego twórcami, co zwykle nie byłoby praktyczne). Jest dostępny na licencji GPL - następnie, aby rozpowszechniać Twój program, musiałby być darmowym oprogramowaniem typu open source ; a dokładniej, każda wersja Twojego programu, którą oferujesz innym i która korzysta z biblioteki PyQt, również musiałaby być licencjonowana na licencji GPL.

Jedyną alternatywą dla GPL dla programu korzystającego z PyQt jest opłacenie licencji komercyjnej. Jak już wskazałeś, jest to często zbyt drogie (choć w przypadku niektórych aplikacji jest to dobra okazja).

Jeśli Twoim celem jest napisanie niekompatybilnego z GPL programu w Pythonie, który używa Qt, możesz rozważyć PySide . Podobnie jak PyQt, PySide jest powiązaniem Pythona dla Qt, które pozwala pisać programy w języku Python, które używają Qt. W przeciwieństwie do PyQt, PySide jest dostępny na licencji LGPL (podobnie jak sama Qt), a zatem może być używany w programach zastrzeżonych, pod warunkiem uważnego przeczytania i przestrzegania warunków LGPL.

Czasami PyQt ma znaczącą przewagę nad PySide. Często tak nie jest. Istnieje również element subiektywności, w odniesieniu do którego wolisz używać; różni programiści mają różne preferencje. Aby uzyskać więcej informacji, zobacz Różnice między PySide i PyQt .


Aplikacje PyQt4 nie muszą mieć licencji GPL. PyQt4 zawiera wyjątek GPL, który wyraźnie zezwala na niektóre licencje inne niż GPL. Zobacz: riverbankcomputing.com/software/pyqt/license and github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT
Mario

1
@Mario Dzięki za informację! Ale zachęcam do opublikowania odpowiedzi wyjaśniającej to nieco więcej, a także wyjaśniającej, w jaki sposób ma ona zastosowanie do OP tego pytania (kto wydaje się chcieć dystrybuować zastrzeżone oprogramowanie oparte na PyQt). Oto dlaczego: riverbankcomputing.com/software/pyqt/license pokazuje, że PyQt może być licencjonowany na licencji GPL (dozwolone są dwie wersje) lub licencja komercyjna (dwa warianty), w której deweloper płaci Riverbank za prawo do dystrybucji zastrzeżonego oprogramowania opartego na PyQt.
Eliah Kagan

@Mario Kluczową korektą mojej odpowiedzi wydaje się być github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT , co daje więcej opcji. Ale wydaje się, że żadne nie pozwala na zastrzeżenie oprogramowania opartego na PyQt - są to inne licencje FOSS. Czy istnieje też oficjalna strona z linkiem do tego pliku lub innymi informacjami wyjaśniającymi, że tak naprawdę jest to oficjalny dokument licencyjny? (Myślę, że najprawdopodobniej tak jest, ale nie jestem pewien, jak pokazałbym to dyrektorowi generalnemu lub innemu interesariuszowi.) Dziwne jest to, że rozszerzone opcje nie zostały wymienione na pierwszej stronie licencjonowania na oficjalnej stronie Riverbank.
Eliah Kagan

Czy mogę sprawić, by instalator aplikacji korzystającej z PyQt5 był licencjonowany na licencji GPL, ale czy instalowana aplikacja jest licencjonowana na moich własnych warunkach?
Niklas R,

1
Cześć @EliahKagan! Co z PySide 2 , czy to samo dotyczy?
Francesco Pegoraro,

5

Mówiąc prosto: jeśli nie rozumiesz warunków licencji oprogramowania, którego używasz na tyle, by zinterpretować, jeśli sugerujesz, że „jest w porządku”, musisz porozmawiać z profesjonalistą, który to robi. Jeśli chcesz zawrzeć umowę bezpośrednio z właścicielami licencji, to też działa, ale nadal musisz zrozumieć, jak działa licencja.


Podobnie jak Eliah, nie jestem również prawnikiem, a kiedy jesteś pozwany o zastosowanie się do mojej rady, nie możesz powiedzieć, że cię nie ostrzegałem. Ogólnie zgadzam się z Eliasem, ale myślę, że w tym przypadku Python jest nieco inny.

Oprogramowanie GPL pozwala na redystrybucję czegoś, o ile zapewniasz to na tej samej licencji. W takim przypadku redystrybuujesz PyQT, co możesz zrobić. Będziesz także dystrybuował swój produkt. Ja osobiście nie rozumiem, dlaczego nie możesz zrobić obu, dopóki udostępnisz źródło dla rzeczy GPL, których używasz. Nie integrujesz ich z Pythonem, po prostu ich używasz.

Aby dokładniej opisać to, o czym mówię, jeśli włączyłeś bibliotekę do projektu C i skompilowałeś ją, skończyłbyś albo kodem GPL w twoim pliku binarnym, albo stworzyłbyś biblioteki statyczne, z którymi twój kod się łączy ( statycznie lub dynamicznie). FSF zażąda udostępnienia kodu przez GPL, jeśli rozpowszechnisz jego chroniony kod.

Zobacz różnicę? Dystrybucja tekstowa Pythona oznacza, że ​​łączenie jest dość dynamiczne: nie ma statycznych „łączy” do kodu GPL, a odwołanie do PyQT może zostać zastąpione w innym środowisku. Po prostu używasz jego interfejsu API.

Jeśli szukasz „python import gpl”, znajdziesz wiele argumentów w obu kierunkach od wielu, wielu nie-prawników. To nie jest prosty argument, a jeśli dojdzie do procesu, możesz być cholernie pewien, że wszyscy po stronie wolnego oprogramowania na stanowisku rzuciliby wszystko, aby upewnić się, że ustanowiono negatywny precedens.

Więc po raz kolejny prawdopodobnie nie masz kwalifikacji, aby podjąć tę decyzję samodzielnie. Porozmawiaj z prawnikiem lub sprawdź, ile by to kosztowało, i przekonaj się, że taniej będzie płacić za licencje komercyjne.

Ignorowanie licencjonowania będzie znacznie droższe.


2
«Nie integrujesz ich ze swoim Pythonem, po prostu ich używasz» Jeśli zaimportujesz moduły Python GPL, cała sprawa stanie się GPL.
Andrea Lazzarotto
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.