Red de Respuestas Legales - Asesoría legal - Mi sistema tiene software GPL, ¿tiene que ser de código abierto?

Mi sistema tiene software GPL, ¿tiene que ser de código abierto?

En el artículo anterior, presentamos el acuerdo de licencia de código abierto GPL utilizado por software de código abierto como Linux. Un requisito de la GPL es el software derivado del software GPL. Si el software implica distribución, también debe cumplir con la GPL, es decir, debe ser de código abierto. Esta es la llamada "infecciosidad" de la GPL. Por ejemplo, si modifico un programa GPL, necesito abrir el código fuente de mi programa. Tomé un fragmento de código de la GPL y también necesito abrir el código fuente de mi programa. Utilizo una biblioteca de funciones GPL y también necesito abrir mi programa. Hay mucha controversia sobre este tema. ¿Qué se debe hacer para cumplir con los requisitos de la GPL? Existen muchas incertidumbres en el uso real, algunas son concluyentes y otras no concluyentes. En este artículo, solo analizamos brevemente algunas cuestiones.

Las funciones de biblioteca son una colección de API que se utilizan cuando se ejecuta un programa, como la biblioteca GNU C (también conocida como glibc). Todos sabemos que las funciones de la biblioteca generalmente implementan algunas funciones básicas. El uso de funciones de biblioteca no solo puede mejorar la eficiencia de ejecución del programa, sino también la calidad de la programación. Pero si una biblioteca usa la licencia GPL, ¿se infectará su programa si usa esta biblioteca en su programa? Hay diferentes puntos de vista sobre este tema. La Free Software Foundation (FSF) cree que en este caso su programa quedará infectado. Siempre que se vincule con una biblioteca GPL, todo su programa debe ser de código abierto cuando se distribuya; de lo contrario, no podrá usar la biblioteca.

Sin embargo, ya hemos dicho que las funciones de la biblioteca son funciones básicas y de bajo nivel. Si se utiliza el acuerdo GPL, restringirá el uso de esta función de biblioteca por parte de programas patentados, lo que no favorece la promoción del software libre. Por eso propusimos la Licencia Pública General Reducida (LGPL) de GNU, que se utiliza principalmente para bibliotecas de funciones. Su característica más importante es que permite que el software no libre se vincule a bibliotecas de funciones sin infectarse.

Por lo tanto, desde el punto de vista de la Free Software Foundation, los programas vinculados a las bibliotecas GPL deben ser de código abierto, mientras que los programas vinculados a las bibliotecas LGPL no tienen que ser de código abierto.

En la descripción de FSF, hay una descripción separada de la agregación de software, principalmente para distinguir si estos programas son programas independientes o partes diferentes del mismo programa. Por ejemplo, FSF cree que se puede juzgar por el mecanismo de comunicación entre programas (exec, pipes, rpc, ** llamadas a funciones con espacio de direcciones, etc.) y la semántica de la comunicación (qué información se intercambia).

Si todo su programa está empaquetado en un archivo ejecutable, entonces debe ser un programa y todo el programa debe cumplir con la GPL. Pero si la comunicación entre programas se basa en tuberías, sockets y parámetros de línea de comando, estos programas básicamente pueden considerarse programas independientes y diferentes programas pueden cumplir con diferentes protocolos. Si las estructuras de datos intercambiadas entre programas son particularmente complejas y tienen una semántica muy cercana, generalmente pueden considerarse el mismo programa.

Sin embargo, la FSF también enfatizó que, en última instancia, se trata de una cuestión legal que debe ser decidida por un juez para determinar si los procedimientos de agregación son separados o el mismo procedimiento más amplio.

Linux utiliza el protocolo GPL, entonces, ¿los programas trasplantados a Linux serán infectados por la GPL? De hecho, si su programa está cubierto por la GPL no tiene nada que ver con su sistema operativo subyacente. Depende principalmente del primer elemento que mencionamos anteriormente, qué protocolo utilice. Si su programa no usa ninguna biblioteca en Linux o solo usa bibliotecas LGPL, naturalmente no se infectará. Si utiliza una biblioteca GPL, será infectada por la GPL. Según la FSF, las bibliotecas publicadas bajo GPL son generalmente bibliotecas muy profesionales que no están disponibles en otras plataformas. Como es exclusivo de Linux, no hay problema con el código abierto.

MySQL utiliza licencias de protocolo dual y la versión comunitaria utiliza GPLv2. Tomando como ejemplo el desarrollo de Java, el método de comunicación entre el programa y la base de datos es socket. Según lo dicho anteriormente en este artículo, nuestro programa Java no será infectado por MySQL y no tiene por qué cumplir con la GPL. Pero hay un problema. Todos los controladores que utilizamos son proporcionados por Oracle bajo la licencia GPL. Pusimos estos controladores en un paquete, por lo que nuestro programa quedó infectado por este controlador. Cuando vende su programa, también debe entregar el código fuente a la otra parte.

Pero en realidad, rara vez escuchamos que usar Mysql requiere código fuente de programa abierto. Después de buscar en Internet, hay varias opiniones, pero la mayoría de la gente básicamente ignora este tema. Creo que la razón más convincente para el código abierto es "Java proporciona JDBC, y el controlador MySQL es solo una implementación de la API JDBC y puede reemplazarse, no una parte necesaria del programa".

Sobre este tema, todavía existen diferencias considerables en Internet. Hasta el momento no existe ninguna declaración autorizada ni ningún precedente correspondiente. Por supuesto, si su programa no está destinado a la distribución, no debe preocuparse por este problema. En definitiva, se trata de una cuestión jurídica.

El contagio de la GPL garantiza el código abierto de los programas y la libertad de la mayoría de los programadores para utilizarlos, pero también limita la libertad de algunos programas patentados para utilizar el software GPL. Si es bajo algunas circunstancias muy claras, el programa correspondiente debe abrirse de acuerdo con la GPL. Sin embargo, si es bajo algunas circunstancias ambiguas y es necesario abrir el código fuente, entonces deje que el juez tome la decisión.