¿Puedo usar la licencia Qt LGPL y vender mi aplicación sin ningún tipo de restricción? [cerrado]

85

Quiero iniciar un proyecto multiplataforma. Tenía mis investigaciones y ahora estoy casi seguro de que Qt es el trato correcto. Sin embargo, aquí hay un gran obstáculo: las licencias .

Quiero vender mi proyecto y tampoco quiero divulgar ninguna fuente relacionada con mi trabajo ni pagar una licencia. Revisé y noté que Qt ofrece soluciones comerciales y de código abierto. He escuchado demasiados dichos contradictorios sobre las licencias de Qt que me confundieron mucho. Algunos dicen que incluso si uso la versión LGPL de Qt, todavía necesito enviar mi código. ¿Es esto cierto?

¿Alguien puede darme una explicación simple sobre las licencias Qt y decirme si puedo vender mi aplicación sin ningún tipo de restricción o no? ¿Alguien podría decirme otros equivalentes a Qt para el desarrollo multiplataforma sin restricciones?

Rika
fuente
5
Esta pregunta se reduce a cuestiones legales. Desafortunadamente, estos están fuera de tema aquí en SO.
Bart
1
Tengo un dilema sobre el tema, ¡no hay disputas sobre la licencia en sí! cómo son tratados y cómo me afectan en el proceso de desarrollo, así que creo que está perfectamente bien hacer una pregunta así.
Rika
1
No estoy buscando ningún consejo para volverse comercial o LGPL, solo necesito algunas aclaraciones sobre el sistema de licencias en sí, por lo que le agradecería que abriera esta pregunta para obtener más aclaraciones sobre el tema.
Rika
1
Entonces ven a Meta. Pregunte si con su formulación la pregunta está relacionada con el tema y podría reabrirse. Necesita un moderador o 5 personas con privilegios suficientes para reabrirlo. Simplemente haga una pregunta amistosa allí y la comunidad le echará un vistazo. meta.stackoverflow.com
Bart
1
Meta es increíble siempre y cuando no te preocupes por tu representante de Meta. La votación es mucho más liberal allí.
rlemon

Respuestas:

100

Simplemente vincule dinámicamente a Qt. Si se vincula dinámicamente a bibliotecas LGPL, no hay nada de qué preocuparse.

Si los enlaza estáticamente, puede distribuir sus archivos de objeto (no su código fuente) y estará bien.

La idea de la LGPL es que el usuario final debe poder reemplazar la biblioteca LGPL con la versión que desee. Vincular dinámicamente a la biblioteca LGPL le permite hacerlo, al igual que vincular y distribuir estáticamente sus archivos de objetos. Siempre que haga esto, puede vender su programa de código cerrado todo lo que quiera.

Por supuesto, hay más en la LGPL que solo esto, pero esa es la parte relevante.

Tallos de maiz
fuente
6
La LGPL también requiere que usted "no restrinja la modificación de las partes de la Biblioteca contenidas en el Trabajo Combinado y la ingeniería inversa para depurar tales modificaciones", lo que puede entrar en conflicto con algunas prohibiciones comerciales de EULA sobre ingeniería inversa.
Josh Kelley
15
@Hossein ¿Leíste la respuesta? Esto no tiene nada que ver con tu código. La licencia LGPL de Qt se relaciona solo con Qt y Qt, por lo que puede empaquetar su código y licenciarlo como desee, pero a menos que planee comprar una licencia comercial Qt, debe vincularse dinámicamente a Qt. La licencia comercial de Qt es para cuando desee modificar el código fuente de Qt y no publicar los cambios que ha realizado al público.
cmannett85
1
@Hossein: Y siempre que se vincule dinámicamente a Qt. Honestamente, debería conseguir un abogado. Siempre debe hablar con uno antes de emprender una empresa comercial. Y FWIW, IANAL.
Cornstalks
2
@Hossein, los usuarios deben poder realizar ingeniería inversa y reemplazar completamente a Qt. Sin embargo, esto significa que NO debe prohibir la ingeniería inversa. Tienes que distribuir Qt como DLL ... y, como beneficio adicional, los archivos Object de tu aplicación (no es obligatorio). Si le importan sus archivos de objeto, ¡también debería preocuparse por su EXE! Porque para un tipo que sabe cómo usar archivos Object, ¡también sabe qué es EXACTAMENTE un EXE! Esta gente tiende a preocuparse por las cosas de bajo nivel y saben mucho más que nosotros. Para ellos, incluso su EXE puede ser tan legible como su código fuente para usted: P
Петър Петров
1
@ ПетърПетров Sí, la ingeniería inversa es una preocupación real cuando se utilizan bibliotecas LGPL. Sin embargo, los ejecutables suelen ser mucho más difíciles de aplicar ingeniería inversa que un grupo de archivos de objeto (es decir, porque los ejecutables generalmente se eliminan, tienen optimizaciones de tiempo de enlace e inserción aplicada, etc.). Pero tiene toda la razón: si no tiene cuidado con la forma en que construye su ejecutable, podría ser tan fácil realizar ingeniería inversa como todos sus archivos de objeto.
Cornstalks