¿Puedo vender mi aplicación PyQt4 sin tener una licencia PyQt?

18

Me gustaría vender una aplicación Python que usa PyQt4. Las licencias comerciales para Qt PyQt cuestan miles de euros juntas. ¿Necesito comprar una licencia comercial?

Considere esto desde un punto de vista "empaquetado" en el que proporciono un paquete de Ubuntu a través del Centro de software. Mi paquete "dependería" de los paquetes existentes de Ubuntu Python y PyQt, así que ¿necesitaría licenciar algo que Ubuntu está redistribuyendo, que no estoy directamente?

Por el contrario, si incluyera una biblioteca Python GPL / LGPL en mi paquete, ¿mi paquete podría permanecer libre? ¿No podría simplemente hacer que la fuente de las bibliotecas GPL esté disponible (si se modifica)?


Si la respuesta es "Necesita una licencia comercial", ¿hay alguna alternativa más barata que conozca (como pagos basados ​​en regalías en lugar de tarifas de desarrollador por adelantado)?

user2366975
fuente
55
He editado esto para hablar explícitamente sobre Ubuntu para que podamos dejar atrás todo este retorcimiento de manos y responder las preguntas de las personas. He purgado el debate de los comentarios y he reabierto la pregunta.
Oli
Tenga en cuenta que esta pregunta es sobre PyQt4, que está disponible en ambas GPL de GNU. El PyQt5 más reciente es solo GNU GPLv3. La muy adecuada diferenciación técnica sobre la "vinculación" de código se aplica menos allí (= menos adecuada para el empaquetado comercial).
mario

Respuestas:

18

No soy abogado y este no es un consejo legal. Esta publicación trata sobre las opciones que tiene, por lo que es una herramienta de investigación, diseñada para ser utilizada junto con otras herramientas de investigación. Incluso en combinación con otras herramientas de investigación, esto no sustituye la consulta de un abogado sobre cualquier asunto legal en el que necesite una respuesta adecuada.

Una de las opciones de licencia para Qt ( no PyQt ) es la LGPL 2.1 , que le permite distribuir programas propietarios que usan la biblioteca Qt siempre que cumpla con todos los términos de la LGPL 2.1 .

PyQt, sin embargo, actualmente solo tiene dos opciones de licencia (a menos que negocies algo más con sus desarrolladores, lo que normalmente no sería práctico). Está disponible bajo la GPL; luego, para distribuir su programa, debería ser un software gratuito de código abierto ; más específicamente, cualquier versión de su programa que ofrezca a otros y que use la biblioteca PyQt también debería tener licencia bajo la GPL.

La única alternativa a la GPL, para un programa que usa PyQt, es pagar una licencia comercial. Como indicó, esto a menudo es prohibitivamente costoso (aunque para algunas aplicaciones es un buen negocio).

Si su objetivo es escribir un programa incompatible con la GPL en Python que use Qt, puede considerar PySide . Al igual que PyQt, PySide es un enlace de Python para Qt, que le permite escribir programas de Python que usan Qt. A diferencia de PyQt, PySide está disponible bajo la LGPL (como Qt) y, por lo tanto, puede ser utilizado por programas patentados siempre que lea detenidamente y cumpla los términos de la LGPL.

A veces, PyQt tiene ventajas significativas sobre PySide. A menudo no lo hace. También hay un elemento de subjetividad con respecto al cual puede preferir usar; diferentes programadores tienen diferentes preferencias. Para obtener más información, vea Diferencias entre PySide y PyQt .

Eliah Kagan
fuente
Las aplicaciones PyQt4 no tienen que tener licencia GPL. PyQt4 contiene una excepción GPL que permite específicamente ciertas licencias que no son GPL. Ver: riverbankcomputing.com/software/pyqt/license y github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT
Mario
1
@ Mario ¡Gracias por la información! Pero le animo a que publique una respuesta que explique esto un poco más y también aclare cómo se aplica al OP de esta pregunta (quién parece querer distribuir software patentado basado en PyQt). He aquí por qué: riverbankcomputing.com/software/pyqt/license muestra que PyQt puede tener licencia bajo GPL (se permiten dos versiones) o una licencia comercial (dos variantes) donde un desarrollador paga a Riverbank por el derecho a distribuir software patentado basado en PyQt.
Eliah Kagan
@ Mario La corrección clave de mi respuesta parece estar en github.com/Werkov/PyQt4/blob/master/GPL_EXCEPTION.TXT , que ofrece más opciones. Pero ninguno parece permitir que el software basado en PyQt sea propietario: son otras licencias FOSS. Además, ¿hay una página oficial con un enlace a ese archivo u otra información para aclarar que realmente es un documento de licencia oficial? (Creo que lo más probable es que sea así, pero no estoy seguro de cómo se lo demostraría a un CEO u otra parte interesada). Es extraño que las opciones ampliadas no se mencionen en la primera página de licencias en el sitio oficial de Riverbank.
Eliah Kagan
¿Puedo hacer que el instalador de una aplicación que usa PyQt5 tenga licencia bajo GPL, pero tenga la aplicación que se está instalando bajo mis propios términos?
Niklas R
1
Hola @EliahKagan! ¿Qué pasa con PySide 2 , se aplica lo mismo?
Francesco Pegoraro
5

En pocas palabras: si no comprende los términos de las licencias del software que está utilizando lo suficiente como para interpretar si lo que sugiere "está bien", debe hablar con un profesional que lo haga. Si desea buscar un acuerdo directamente con los propietarios de la licencia, eso también funciona, pero aún tendrá que entender cómo funciona la licencia.


Al igual que Eliah, tampoco soy un abogado y cuando te demandan por seguir mi consejo, no puedes decir que no te lo advertí. Generalmente estoy de acuerdo con Eliah, pero creo que en este caso, Python es un poco diferente.

El software GPL le permite redistribuir algo siempre que lo proporcione bajo la misma licencia. En este caso, estaría redistribuyendo PyQT, lo que puede hacer. También estaría distribuyendo su producto. Personalmente, no entiendo por qué no puede hacer ambas cosas siempre que ponga a disposición la fuente de las cosas GPL que está utilizando. No los está integrando en su Python, solo los está usando.

Para describir más a fondo de lo que estoy hablando, si incluyó una biblioteca en un proyecto C y la compiló, terminaría con el código GPL en su binario o estaría creando bibliotecas estáticas a las que se vinculaba su código ( estática o dinámicamente). La FSF le exigirá que haga que su código esté disponible por GPL si redistribuye su código protegido.

¿Ver la diferencia? La distribución basada en texto de Python significa que el enlace es bastante dinámico: no hay "enlaces" estáticos al código GPL y la referencia a PyQT podría sustituirse en un entorno diferente. Solo estás usando su API.

Si busca "python import gpl", encontrará muchos, muchos argumentos en ambas direcciones de muchos, muchos no abogados. Este no es un argumento simple y si se tratara de una demanda, puede estar condenadamente seguro de que todos en el lado del banco de software libre arrojarían todo para asegurarse de que se estableciera un precedente negativo.

Entonces, una vez más, probablemente no esté calificado para tomar esta decisión solo. Hable con un abogado o vea cuánto le costaría eso y descubra que será más barato pagar las licencias comerciales.

Ignorar las licencias resultará mucho más costoso.

Oli
fuente
2
«No los estás integrando en tu Python, solo los estás usando» Si importas módulos Python GPL, todo se convierte en GPL.
Andrea Lazzarotto