Cómo cambiar la licencia del proyecto Java de GNU / GPL a MIT / BSD / Apache
Desarrollé una aplicación Java que está conectada a MySQL Workbench usando mysql-connector-java-8.0.21.jarfile. Cuando implemento el proyecto y envío el código fuente al cliente, él dice que:
- La licencia no debe tener una licencia GNU / GPL / Unspecified que tenga una obligación de divulgación (está bien tener MIT / BSD / Apache sin una obligación de divulgación)
- Cambie la licencia GNU / GPL a MIT o BSD
Ahora mi pregunta es, cómo cambiar la licencia del proyecto o cómo cambiar la licencia de archivos de biblioteca como Mysql connector.jar.
Debido a que necesito una licencia de código abierto para el código fuente, necesito cambiar las bibliotecas de licencias (utilizadas en el proyecto).
Respuestas
No puede cambiar la licencia de código de otros, como mysql-connector-java. Esa licencia la establece el autor de ese componente en particular (empresa Oracle).
Si su cliente indicó el requisito desde el principio, tiene un problema. Pero de lo contrario, puede simplemente rechazar la solicitud e indicar que esto está fuera de su control.
PS El uso del término "obligación de divulgación" en este contexto sugiere que el cliente no comprende la ley. Pero si el cliente nombró específicamente a la GPL como un ejemplo de licencias prohibidas antes de aceptar el contrato, entonces el uso indebido del término "obligación de divulgación" no invalida el contrato.
mysql-connector / j tiene licencia como GPLv2 de Oracle, pero tiene una excepción de FOSS . Si desea distribuir su software como FOSS , puede elegir cualquier licencia "que esté aprobada por OSI y / o categorizada por la FSF como gratuita". De lo contrario, debe utilizar una biblioteca diferente o comprar una licencia comercial de Oracle.
Y no puede cambiar la licencia de mysql-connector/jya que no es el propietario de sus derechos de autor (Oracle lo es).
Hay varios estilos de licencia en juego aquí;
- Estilo de licencia estilo MIT / BSD / Apache
- GPL
- LGPL
- Comercial
El conector MySQL, asumiendo que te refieres al conector MySQL / J, tiene licencia dual; Puede elegir la licencia comercial (tendrá que pagar por esto) o la licencia LGPL. La concesión de licencias es algo que hacen los autores de un producto; no puede cambiar la licencia. Si la tarea en cuestión exige una determinada licencia, pregunte a los autores si la ofrecen y cuánto debe pagar para obtenerla; si es demasiado para su billetera o esta licencia no está disponible, su único recurso en ese momento es cambiar los requisitos o eliminar ese producto de su base de código por completo y, por ejemplo, cambiar a PostgreSQL (un motor de base de datos diferente), por ejemplo.
Tenga en cuenta que LGPL no es lo mismo que GPL. Es más como licencias de estilo MIT / BSD / Apache que GPL, por lo que una salida puede ser simplemente preguntar a los abogados de su cliente si la LGPL es aceptable.
Para una consideración futura, siempre consulte con el cliente qué tipo de restricciones de licencia tiene. Por ejemplo, si MIT / BSD / Apache es la única forma, entonces no puede usar MySQL aquí. Período. MySQL no tiene esa licencia y Oracle (el propietario de MySQL) no la ofrece. En ese caso, es posible que una licencia comercial hubiera sido suficiente (por lo tanto, asegúrese de cobrar al cliente para tener en cuenta que necesitará adquirir una licencia comercial). Alternativamente, tenga en cuenta que necesitará dedicar algo de tiempo a aprender sobre el uso de diferentes herramientas (como PostgreSQL, cuya licencia es estilo MIT / BSD / Apache) y facturar en consecuencia.
Si necesita más información sobre si la LGPL de MySQL y MySQL Connector / J es compatible con las necesidades de su cliente, o qué sucederá si ignora una licencia o los requisitos escritos de su cliente, debe consultar con un abogado.
De acuerdo a https://www.mysql.com/about/legal/licensing/oem/, puede utilizar cualquier licencia de código abierto aprobada para su código, incluso si utiliza la biblioteca MySQL GPL.
La licencia utilizada por las versiones recientes de mysql-connector-java se describe aquí: https://oss.oracle.com/licenses/universal-foss-exception/
Aquí hay un extracto del archivo de LICENCIA proporcionado con el paquete del conector (el énfasis es mío):
Manual de usuario de información sobre licencias
Conector MySQL / J 8.0 __________________________________________________________________
Este Manual de usuario de información de licencia contiene la licencia de producto de Oracle y otra información de licencia, incluida la información de licencia para software de terceros que puede estar incluido en esta distribución de MySQL Connector / J 8.0. Introducción Última actualización: agosto de 2020
Información sobre licencias
Esta es una versión de MySQL Connector / J 8.0, presentada por el equipo de MySQL en Oracle. Este software se publica bajo la versión 2 de la Licencia pública general GNU (GPLv2), como se establece a continuación, con los siguientes permisos adicionales :
Esta distribución de MySQL Connector / J 8.0 se distribuye con cierto software que se licencia bajo términos separados, según lo designado en un archivo o componente en particular o en la documentación de la licencia. Sin limitar sus derechos bajo la GPLv2, los autores de MySQL le otorgan un permiso adicional para vincular el programa y sus trabajos derivados con el software con licencia separada que han incluido con el programa.
Sin limitar la concesión anterior de derechos en virtud de la GPLv2 y el permiso adicional en cuanto al software con licencia por separado, este Conector también está sujeto a la Excepción universal de FOSS, versión 1.0 , una copia de la cual se reproduce a continuación y también se puede encontrar junto con sus preguntas frecuentes enhttp://oss.oracle.com/licenses/universal-foss-exception.
La compra de una licencia comercial de MySQL es una alternativa. Le permitirá utilizar una licencia propietaria para su propio código y así tener la libertad de mantenerlo sin publicar.
Por supuesto, como no posee el código y las bibliotecas de MySql, no tiene derecho a cambiar su propia licencia.
Descargo de responsabilidad: no soy abogado y esto no es un consejo legal; No afirmo que lo anterior sea exacto; No tomes decisiones comerciales basadas en lo que lees de extraños en Internet, incluido yo.