Pregunta

Por lo que sé, cuando compile una aplicación de escritorio / servidor con cualquier código GPL como MySQL, tendré que liberar el código fuente de mi software bajo la GPL.

Si quiero desarrollar una aplicación web utilizando MySQL, mi código se vinculará con las bibliotecas de MySQL. ¿Debo liberar el código fuente de mi aplicación web en esta situación para estar de acuerdo con la GPL?

¿Fue útil?

Solución

Siempre que lo mantenga solo para el servidor (y, por lo tanto, " privado "), no tiene que liberarlo como GPL. Pero tan pronto como llega a los escritorios públicos, ya no se puede considerar una compilación interna y, por lo tanto, se necesita el código fuente.

Para que pueda:

  • Libere su código como GPL
  • Compre la versión comercial de MySQL
  • Manténgalo solo en el servidor.

Otros consejos

Debe liberar la fuente (bajo GPL) o pagar una licencia propietaria a MySQL para que tenga derecho a distribuir los binarios MySQL bajo una licencia que sea más adecuada para lo que usan los productos patentados. Sin embargo, es mejor llevar este tipo de preguntas a su abogado.

ETA : Solo para aclarar un poco; Si escribe su propia biblioteca que habla con MySQL usando su protocolo de línea de conexión, entonces siempre estará 100% a salvo. Del mismo modo, si usa una biblioteca que ha hecho exactamente eso, pero tiene licencia BSD (como ejemplo), entonces también estaría en claro, porque solo está hablando con MySQL a través de una conexión de socket, y en realidad no está llamando en el código GPL'd. No tengo conocimiento inmediato de ninguna interfaz BSD con licencia para el protocolo MySQL, pero ciertamente es posible que haya alguna en algún lugar.

Si está ejecutando la aplicación web usted mismo y no la distribuye como una aplicación, entonces no tiene que liberar la fuente. Permitir el acceso a una aplicación web no se considera distribución.

Editar: si está interesado, puede consultar la Affero General Public License , que requiere que la fuente estará disponible para los usuarios de la red del software AGPL (por ejemplo, se aplicaría a las aplicaciones web).

No necesariamente tiene que vincularse con las bibliotecas de MySQL para poder usar MySQL en su aplicación. Todo lo que tienes que hacer es " hablar " a un servidor MySQL usando el protocolo MySQL; en cuyo caso, se está conectando al servidor MySQL como cliente, es decir, como usuario, y luego no necesita lanzar su software bajo la licencia GNU GPL.

La pregunta es, ¿cómo puede su programa hablar el protocolo MySQL? Una posibilidad es utilizar la biblioteca de cliente MySQL oficial (conector), que es GPL. Si hace esto, está vinculando estáticamente su programa a una biblioteca de GPL y, por lo tanto, necesita liberar su software bajo la GPL.

Alternativamente, puede vincularse con una biblioteca cliente de terceros, con una licencia diferente. Por ejemplo, puede usar la MariaDB Client Library , que es LGPL'd (y por lo tanto es compatible con software propietario) y proporciona la misma API de la biblioteca de cliente MySQL original. Consulte las Preguntas frecuentes sobre licencias de MariaDB , que también se aplica a MySQL, para obtener más detalles y consejos.

Puede ser complicado distribuir el servidor MySQL junto con su software: simplemente podría exigir a sus clientes que descarguen e instalen MySQL por su cuenta, o que desarrollen un descargador simple para distribuirlo con su software.

MySQL usa doble licencia. Como dicen: si eres libre, somos libres.

Por lo tanto, si usa, por lo que sé, solo el conector JDBC de MySQL, debe tener su código de licencia o GPL.

A menos que derive y / o distribuya el software GPL, debe estar seguro.

La vinculación con la biblioteca del cliente MySQL no es un trabajo derivado, ni una distribución.

ACTUALIZACIÓN: Ahora que lo pienso, la forma en que se vincula (dinámica o estática) con las bibliotecas marcará la diferencia. La vinculación estática es la distribución, pero si la vinculas dinámicamente y tus clientes descargan los conectores ellos mismos, eso no es distribución y deberías estar seguro.

Ah, y IANAL.

  

Si quiero desarrollar una aplicación web usando MySQL, mi código se vinculará con las bibliotecas de MySQL. ¿Debo liberar el código fuente de mi aplicación web en esta situación para que esté de acuerdo con la GPL?

  1. Como han dicho otros, si no está distribuyendo la aplicación a otros, no hay ningún problema.

  2. Normalmente, se desarrollaría contra una API de base de datos estándar y permitiría al usuario decidir qué base de datos se conectará a la aplicación. En este caso no hay problema. "Su código" no se vincularía a libmysqlclient, pero podría combinarse con un módulo de acceso a la base de datos que se vincule a libmysqlclient.

  3. Si desea distribuir un instalador que configure su aplicación y libmysqlclient juntos, probablemente no cuente como "mera agregación", por lo que le exigiría que distribuya su aplicación bajo una licencia de código abierto. Sin embargo, esto no necesariamente tiene que ser GPL: consulte Excepción de licencia de MySQL FOSS .

  4. Si desea distribuir un instalador que configure su aplicación y el propio servidor MySQL, la Excepción no se aplica, por lo que está limitado solo a la GPL.

Naturalmente IANAL, y ciertamente todavía hay cierta incertidumbre sobre lo que cuenta como derivación, especialmente con respecto a la vinculación dinámica. Sin embargo, lo anterior es mi comprensión de la posición tradicional de MySQL AB sobre la concesión de licencias, y no he oído hablar de ningún cambio después de la adquisición de Sun.

Desafortunadamente, no es un corte tan limpio: la GPL prohíbe la distribución sin proporcionar la fuente de cada "producto derivado". La distribución se define legalmente como el acto de transferir la fuente de una computadora a una o más computadoras para uso oficial.

Desafortunadamente, que también puede incluir el uso en clústeres de servidores, cajas de control de calidad, cajas de desarrollo, etc. En la tienda de desarrolladores modernos, solo liberar el código a múltiples cajas de frontend / backend es técnicamente una distribución (en los ojos de la ley).

No importa lo que piense la Free Software Foundation, importa lo que piensen algunos jueces una vez que alguien / una corporación sea demandada por hacer exactamente eso.

Esa es solo una razón más por la que los principales clientes de la GPL en estos días son corporaciones que desean evitar que los competidores ingresen su código . Todos los demás deberían considerar licencias mucho menos complicadas como el MIT o las licencias Creative Commons Attribution.

Primero, no soy abogado. Habla con uno antes de seguir un consejo aquí.

Más allá de eso, si no distribuye su aplicación web, es probable que no necesite publicar sus cambios. Todavía puede hacer que su aplicación web esté disponible para que la usen otros usuarios si la aloja.

Si su distribución incluye e instala MySql en el mismo paquete, requiere una licencia comercial.

Pero si solo distribuye su código, con un simple "requiere MySql" aviso y un script de instalación (para crear / llenar las tablas), no debería haber ningún problema, AFAIK.

IANAL, por supuesto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top