Posso vender meu aplicativo PyQt4 sem ter uma licença PyQt?

18

Eu gostaria de vender um aplicativo Python que usa PyQt4. As licenças comerciais do Qt PyQt custam milhares de euros juntos. Preciso comprar uma licença comercial?

Considere isso do ponto de vista "empacotado", no qual estou fornecendo um pacote Ubuntu através do Centro de Software. Meu pacote "dependeria" dos pacotes existentes do Ubuntu Python e PyQt, então eu precisaria licenciar algo que o Ubuntu está redistribuindo, que não sou diretamente?

Por outro lado, se eu incluísse uma biblioteca Python GPL / LGPL no meu pacote, ele poderia permanecer não-livre? Eu não poderia disponibilizar apenas a fonte das bibliotecas GPL (se modificada)?


Se a resposta for "Você precisa de uma licença comercial", existem alternativas mais baratas que você conhece (como pagamentos baseados em royalties em vez de taxas iniciais de desenvolvedor)?

user2366975
fonte
5
Eu editei isso para falar explicitamente sobre o Ubuntu, para que possamos esquecer tudo isso e responder às perguntas das pessoas. Eu purgei o debate dos comentários e reabri a pergunta.
Oli
Observe que esta pergunta é sobre PyQt4, disponível nas duas GNU GPLs. O PyQt5 mais recente é apenas o GNU GPLv3. A diferenciação técnica muito apropriada sobre o código "link" se aplica menos lá (= menos adequada para embalagens comerciais).
mario

Respostas:

18

Não sou advogado e isso não é aconselhamento jurídico. Este post é sobre as opções que você tem, por isso é uma ferramenta de pesquisa, destinada a ser usada juntamente com outras ferramentas de pesquisa. Mesmo em combinação com outras ferramentas de pesquisa, isso não substitui a consulta de um advogado sobre qualquer questão legal em que você precise de uma resposta adequada.

Uma das opções de licença do Qt ( não PyQt ) é o LGPL 2.1 , que permite distribuir programas proprietários que usam a biblioteca Qt, desde que você cumpra todos os termos do LGPL 2.1 .

No entanto, o PyQt atualmente possui apenas duas opções de licenciamento (a menos que você negocie outra coisa com seus desenvolvedores, o que normalmente não seria prático). Está disponível sob a GPL - e, em seguida, para distribuir seu programa, seria necessário um software de código aberto gratuito ; mais especificamente, qualquer versão do seu programa que você ofereça a outras pessoas e que use a biblioteca PyQt também precisará ser licenciada pela GPL.

A única alternativa à GPL, para um programa que usa PyQt, é pagar por uma licença comercial. Como você indicou, isso geralmente é proibitivamente caro (embora para alguns aplicativos seja um bom negócio).

Se seu objetivo é escrever um programa incompatível com GPL no Python que use o Qt, considere o PySide . Como o PyQt, o PySide é uma ligação do Python para o Qt, que permite escrever programas em Python que usam o Qt. Diferentemente do PyQt, o PySide está disponível na LGPL (como o próprio Qt) e, portanto, pode ser usado por programas proprietários, desde que você leia e respeite os termos da LGPL.

Às vezes, o PyQt tem vantagens significativas sobre o PySide. Muitas vezes, não. Há também um elemento de subjetividade sobre o qual você pode preferir usar; programadores diferentes têm preferências diferentes. Para obter mais informações, consulte Diferenças entre PySide e PyQt .

Eliah Kagan
fonte
Os aplicativos PyQt4 não precisam ter licença GPL. O PyQt4 contém uma exceção GPL que permite especificamente determinadas licenças não GPL. Veja: riverbankcomputing.com/software/pyqt/license e github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT
Mario
1
@ Mario Obrigado pela informação! Mas eu encorajo você a postar uma resposta explicando isso um pouco mais e também esclarecendo como isso se aplica ao OP desta pergunta (que parece querer distribuir software proprietário baseado em PyQt). Eis o porquê: riverbankcomputing.com/software/pyqt/license mostra que o PyQt pode ser licenciado sob a GPL (duas versões são permitidas) ou uma licença comercial (duas variantes) em que um desenvolvedor paga à Riverbank pelo direito de distribuir o software proprietário baseado em PyQt.
Eliah Kagan 16/03
@Mario A correção da chave da minha resposta parece estar em github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT , que oferece mais opções. Mas nenhum parece permitir que o software baseado em PyQt seja proprietário - são outras licenças FOSS. Além disso, existe uma página oficial com um link para esse arquivo ou outras informações para esclarecer que realmente é um documento de licenciamento oficial? (Acredito que provavelmente seja, mas não tenho certeza de como demonstraria isso a um CEO ou outra parte interessada.) É estranho que as opções expandidas não sejam mencionadas na primeira página de licenciamento no site oficial do Riverbank.
Eliah Kagan 16/03
Posso tornar o instalador de um aplicativo que usa o PyQt5 licenciado sob a GPL, e ainda assim o aplicativo que está sendo instalado licenciado sob meus próprios termos?
Niklas R
1
Oi @EliahKagan! E o PySide 2 , o mesmo se aplica?
Francesco Pegoraro 17/04
5

Simplificando: se você não entende os termos das licenças do software que está usando o suficiente para interpretar se o que está sugerindo "está bom", você precisa conversar com um profissional que o faça. Se você deseja buscar um acordo diretamente com os proprietários da licença, isso também funciona, mas você ainda precisará entender como o licenciamento funciona.


Como Eliah, também não sou advogado e, quando você é processado por seguir meus conselhos, não pode dizer que não o avisei. Eu geralmente concordo com Eliah, mas acho que, neste caso, Python é um pouco diferente.

O software GPL permite que você redistribua algo, desde que você o forneça sob a mesma licença. Nesse caso, você estaria redistribuindo o PyQT, o que você pode fazer. Você também estaria distribuindo seu produto. Pessoalmente, não vejo por que você não pode fazer as duas coisas, desde que disponibilize a fonte para as coisas da GPL que está usando. Você não os está integrando ao seu Python, apenas os está usando.

Para descrever melhor o que estou falando, se você incluísse uma biblioteca em um projeto C e a compilasse, você terminaria o código GPL no seu binário ou criaria bibliotecas estáticas às quais seu código vinculava ( estaticamente ou dinamicamente). A FSF exigirá que você disponibilize seu código pela GPL se você redistribuir o código protegido.

Veja a diferença? A distribuição baseada em texto do Python significa que o vínculo é bastante dinâmico: não há "links" estáticos para o código GPL e a referência ao PyQT pode ser substituída em um ambiente diferente. Você está apenas usando sua API.

Se você procurar "python import gpl", encontrará muitos, muitos argumentos nas duas direções, de muitos, muitos não advogados. Este não é um argumento simples e, se se tratasse de uma ação judicial, você pode estar certo de que todo mundo do lado do banco de software livre jogaria tudo para garantir que um precedente negativo fosse estabelecido.

Então, mais uma vez, você provavelmente não está qualificado para tomar essa decisão sozinho. Converse com um advogado ou veja quanto isso lhe custaria e calcule que será mais barato pagar pelas licenças comerciais.

Ignorar o licenciamento será muito mais caro.

Oli
fonte
2
«Você não os está integrando ao seu Python, apenas os está usando» Se você importar módulos Python GPL, tudo se tornará GPL.
Andrea Lazzarotto 24/01