2010-02-16 18 views
10

No sé mucho sobre LGPL/GPL cuando se trata de distribuir programas (sin una licencia Qt); Si he hecho un programa, podría estáticamente vincular las bibliotecas para el exe, así que tengo un solo archivo para distribuir cuando:Qt solo EXE con LGPL?

  • El programa no cuesta nada, es sólo siendo distribuido (código cerrado o de código abierto) ?

  • Cuando tiene que pagar por el programa, ¿todavía puede vincular estáticamente?

Respuesta

12

No, si el programa es de código cerrado y quiere crear un enlace con la versión de Qt LGPL debe utilizar la vinculación dinámica. Si desea establecer un enlace estático, debe comprar una licencia para Qt.

Para utilizar el código LGPL en su proyecto de código cerrado, el usuario debe poder reemplazar la porción lgpl del código. La manera más fácil y más fácil de hacerlo es colocar todo el código LGPL en un dll y luego el usuario puede reemplazar el dll si lo desea.

También puede utilizar los medios técnicos que su idioma le permita lograr el mismo objetivo. Puede distribuir archivos de objetos y luego el usuario puede volver a vincularlos como señaló otro comentarista, pero nunca lo he visto en la práctica.

No importa si su producto es gratuito o no. Puede vender productos GPL/LGPL.

+0

Oh, bueno. Gracias por la respuesta. – PythonGem

+5

Puede usar enlaces estáticos si también distribuye código objeto. –

+2

Lea la sección de LGPL versión 2.1 6. Esta respuesta es incorrecta. – Kevin

27

En realidad, la LGPL permite la vinculación estática siempre y cuando cumpla con unos requisitos muy específicos. Por ejemplo, si toda la distribución se realiza desde su sitio web donde tiene StaticProgram.exe, está bien siempre y cuando los usuarios también puedan descargar StaticProgram.obj y LGPL-library-source.tar.gz. También puede distribuir StaticProgram.exe con una oferta por escrito para proporcionar los otros archivos.

En concreto, la vinculación estática crea un único archivo ejecutable que es un derivado del código LGPL, por lo que debe cumplir con la sección 6 de la LGPL:

6) Como una excepción a las secciones anteriores, puede también combinar o enlazar un "trabajo que usa la librería" con el Biblioteca para producir un trabajo que contenga partes de la Biblioteca, y distribuir ese trabajo bajo los términos de su elección, siempre que las condiciones modificación del permiso de la obra para el uso del cliente y reversa ingeniería para depurar tales modificaciones .

Debe dar aviso destacado con cada copia de la obra que la Biblioteca se utiliza en ella y que la Biblioteca y su uso están cubiertos por esta licencia. Debe proporcionar una copia de esta licencia . Si el trabajo durante la ejecución muestra avisos de derechos de autor, debe incluir entre ellos el aviso de copyright de la Biblioteca , así como una referencia dirigiendo al usuario a la copia de esta Licencia.Además, debe hacer una de estas cosas:

a) Acompañar el trabajo con el código fuente completo correspondiente legible por máquina para la Biblioteca, incluyendo cualquier cambio fueron utilizados en el trabajo (que debe ser distribuye bajo Secciones 1 y 2 arriba); y, si el trabajo es una ejecutable enlazado con la Biblioteca, con la completa "trabajo que usa la Biblioteca" legible por máquina, como código objeto y/o código fuente, por lo que el usuario pueda modificar la Biblioteca y luego volver a vincular para producir un ejecutable modificado que contiene la biblioteca modificada. (Se entiende que el usuario que cambia el contenido de archivos de definiciones en la Biblioteca no necesariamente será capaz de recompilar la aplicación a usar los definiciones modificadas).

b) Utilizar un mecanismo de biblioteca compartida adecuado para vincular con la Biblioteca . Un mecanismo adecuado es uno que (1) utiliza en tiempo de ejecución una copia de la biblioteca ya presente en el sistema informático del usuario , en lugar de funciones de biblioteca de copia en el ejecutable, y (2) funcionará correctamente con una versión modificada de la biblioteca, si el usuario instala una, , siempre que la versión modificada sea compatible con la interfaz con la versión con la que se realizó el trabajo.

c) Acompañar el trabajo con una oferta por escrito, válida durante al menos tres años, para dar el mismo usuario los materiales especificados en la Subsección 6a, anteriormente, para una carga no más que el costo de realizar esta distribución.

d) Si la distribución del trabajo se realiza ofreciendo acceso a copiar desde un lugar designado, ofrecen de acceso para copiar los materiales especificados anteriormente desde el mismo lugar . e) Verifique que el usuario ya haya recibido una copia de estos materiales o que ya haya enviado a este usuario una copia.

Para un ejecutable, la forma requerida del "trabajo que usa la Biblioteca" debe incluir todos los datos y servicios públicos programas necesarios para reproducir el ejecutable de ella. Sin embargo, como una excepción especial , los materiales a ser distribuido no necesita incluir nada que se distribuye normalmente (en fuente o binario) con los componentes principales (compilador, kernel, y así sucesivamente) de la operación sistema en que ejecuta el ejecutable, a menos que ese componente se acompañe con el ejecutable .

puede suceder que este requisito contradice las restricciones de licencia de otras bibliotecas propietarias que hacen no acompañan normalmente al sistema operativo .Tal contradicción significa que no se puede utilizar tanto para ellos como la Biblioteca juntos en un archivo ejecutable que distribuya.

Cuestiones relacionadas