¿Qué significa en la práctica "GPL con excepción classpath"?

48

Oracle parece licenciar todo su código de código abierto relacionado con Java bajo la GPL con una excepción 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 usó esta nueva licencia en oposición a la LGPL, que parece permitir casi las mismas cosas, pero está mejor establecida y entendida? ¿Cuáles son las diferencias con la LGPL?

    
pregunta Thilo 13.11.2011 - 00:37

3 respuestas

45

En primer lugar, no soy un abogado. Pero he estudiado muchas licencias y comprendo cuestiones relacionadas con ellas.

Segundo, sé que esta es una pregunta antigua, pero creo que todavía 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 se puede cambiar trivialmente por el camino, especialmente si hay múltiples contribuyentes involucrados.

Desafortunadamente,

(L) GPL se escribió teniendo en cuenta C / C ++. 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 idiomas 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 suposiciones y suposiciones. Cuando se habla de la ley, es decir, pensar en eventuales casos judiciales en los que dos partes discuten, no tener una distinción clara es una MALA COSA.

Un código estándar con licencia GPL es bastante sencillo en su intención. Se espera que cualquier persona que use ese código libere su código a todos los usuarios cuando lo distribuyan o vendan. Ese es el virus GPL que Richard Stallman quiso crear e hizo de manera clara y limpia.

La LGPL fue originalmente un intento de permitir una "biblioteca" que no sería viral. Pero aún querían que el usuario final fuera capaz de 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 diferente con enlaces dinámicos, por lo que no sería necesario tener licencia como GPL. Y un enlace estático requería que el usuario fuera GPL. La licencia realmente 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. Así que la L ("biblioteca") de LGPL está embarrada, en el mejor de los casos.

Esto llega al meollo del asunto. Algo que no esté claro es MALO en el mundo de las leyes. Si estoy pensando en 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 un precedente legal, solo argumentos intelectuales en foros como este.

Aquí es donde la excepción Classpath es invaluable. Indica claramente que el código bajo la licencia es (L) GPL, pero cualquier cosa que use ese código puede seguir la licencia que desee. Sin dudas, quejas o peros. Si cambia el código principal (por ejemplo, arreglando errores), todavía tiene que liberar esos cambios como parte de la GPL. Pero el uso NO te infecta.

Desde una perspectiva empresarial, entiendo por qué algunos no quieren tocar el código GPL con un polo de 10 '. La posición legal no está clara y el negocio podría verse afectado una década después, cuando finalmente se establezca el precedente legal. O podrían estar atrapados en la corte durante años luchando para establecer el precedente legal. En cualquier caso, simplemente no quieren arriesgar el costo de esa batalla. La adición de la cláusula de excepción Classpath 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 clara de dibujar una línea brillante que permite el uso no GPL del código fuente o las bibliotecas GPL o LGPL.     

respondido por el Steve 01.08.2016 - 22:18
6

La GPL con la excepción classpath se comporta como LGPL para la mayoría de los usos.

Significa que necesita 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 se vincula estáticamente contra ella, pero no puede usar una clave pública para evitar la sustitución.

    
respondido por el Joshua 13.11.2011 - 02:24
-3

Parece que las licencias de estilo "GPL con excepción de classpath" pueden ser más antiguas que 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 código.

    
respondido por el Abhi Beckert 13.11.2011 - 00:47

Lea otras preguntas en las etiquetas