Oracle parece licenciar todo su código fuente abierto relacionado con Java bajo la GPL con una excepción de classpath . Por lo que entiendo, esto parece permitir combinar estas bibliotecas con su propio código en productos que no tienen que estar cubiertos por la GPL.
- ¿Como funciona esto?
- ¿Cuáles son ejemplos de cómo puedo y no puedo usar estas clases?
- ¿Por qué se utilizó esta nueva licencia en lugar de la LGPL, que parece permitir prácticamente las mismas cosas, pero está mejor establecida y se entiende?
- ¿Cuáles son las diferencias con la LGPL?
Respuestas:
En primer lugar, no soy un abogado. Pero he estudiado muchas licencias y entiendo los problemas relacionados con ellas.
Segundo, sé que esta es una vieja pregunta, pero creo que aún es un punto de confusión y preocupación. Si NO ES un punto de preocupación, debería serlo. Elegir una licencia es un gran problema que no puede cambiar trivialmente en el futuro, especialmente si hay varios contribuyentes involucrados.
(L) GPL fue escrito con C / C ++ en mente, desafortunadamente. Habla de "Código fuente", "Código de objeto", "Enlace dinámico", "Enlace estático", "Compiladores" e "Intérprete de código de objeto". Por lo tanto, traducir esto para otros lenguajes que no siguen las mismas técnicas de compilación (como el código de bytes de Java, la compilación justo a tiempo de Python o la naturaleza interpretada de Javascript) requiere algunas conjeturas y suposiciones. Cuando habla de la ley, es decir, piensa en casos judiciales eventuales en los que dos partes están discutiendo, no tener una distinción clara es MALO.
Una pieza de código estándar con licencia GPL tiene una intención bastante sencilla. Se espera que cualquiera que use ese código publique su código a todos los usuarios cuando lo distribuyan o lo vendan. Ese es el virus GPL que Richard Stallman quería crear y lo hizo de manera clara y limpia.
La LGPL fue originalmente un intento de permitir una "biblioteca" que no sería viral. Pero todavía querían que el usuario final pudiera reemplazar la biblioteca por su cuenta, de ahí la distinción entre enlaces "estáticos" y "dinámicos": el usuario podría cambiar a una biblioteca vinculada dinámicamente diferente, por lo que no necesitaría tener licencia como GPL. Y un enlace estático requería que el usuario fuera GPL. La licencia en realidad habla de "archivos de encabezado", que están claros en C / C ++ pero obviamente no están claros cuando estás en los mundos de Java, Python, Javascript, etc. Entonces, la L ("biblioteca") de las cosas LGPL está turbia, en el mejor de los casos.
Esto llega al quid de la cuestión. Todo lo que no está claro es MALO en el mundo de las leyes. Si estoy buscando construir algo usando el componente GPL o LGPL, quiero estar seguro de cuál es mi posición legal en el futuro si llego a la corte. Pero a partir de hoy, no estoy seguro porque realmente no ha habido buenos casos judiciales que establezcan precedentes legales, solo argumentos intelectuales en foros como este.
Aquí es donde la excepción Classpath es invaluable. Establece claramente que el código bajo la licencia es (L) GPL, pero cualquier cosa que use ese código puede seguir cualquier licencia que desee. Sin dudas, quejas o peros. Si cambia el código central (por ejemplo, corrigiendo errores), aún tiene que liberar esos cambios como parte de la GPL. Pero usar NO te infecta.
Desde una perspectiva comercial, entiendo por qué algunos no quieren tocar el código GPL con un poste de 10 '. La situación legal no está clara y el negocio podría verse afectado una década más adelante cuando finalmente se establezcan los precedentes legales. O podrían estar atrapados en los tribunales durante años luchando por establecer el precedente legal. Independientemente de que simplemente no quieren arriesgar el costo de esa batalla. Agregar la cláusula Classpath Exception elimina las preguntas legales y evita cualquier caso judicial (grave) potencial.
Entonces, para mí, la excepción Classpath es muy diferente a la LGPL. Es una forma legalmente limpia de trazar una línea brillante que permite el uso sin código GPL del código fuente o bibliotecas GPL o LGPL.
fuente
GPL con excepción classpath se comporta como LGPL para la mayoría de los usos.
Significa que debe poder enviar la fuente de la biblioteca a pedido. No significa que deba poder enviar su propia fuente. Sucede que no tiene que enviar una forma de reemplazar la biblioteca si está enlazada estáticamente con ella, pero no puede usar una clave pública para evitar el reemplazo.
fuente
Parece que las licencias de estilo "GPL con excepción classpath" pueden ser anteriores a LGPL.
Quizás la única razón por la que alguien todavía lo usa, es porque el código GPL no se puede migrar a código LGPL sin el permiso por escrito de todos los que alguna vez contribuyeron con el código.
fuente