¿Empaquetar OpenJDK con una aplicación patentada permitida por GPL?

16

Actualmente estoy haciendo un videojuego en Java que probablemente se distribuirá a través de Steam. Por supuesto, muchos usuarios de Steam no tendrán Java ya instalado en este caso. Si esto sucede, puedo tener un pequeño iniciador nativo que muestra un diálogo informativo que le dice al usuario que necesita instalar Java, o simplemente incluir mi propio entorno de ejecución Java (específicamente OpenJDK 8) con mi juego. Mi juego será de código cerrado, sin embargo, se basa en un motor de juego de código abierto (licencia BSD).

Miré a través de la licencia de OpenJDK. Es un proyecto GPL, lo que significa que todo lo que se vincule a él también debe ser GPL. Sin embargo, también tienen la excepción classpath. No estoy seguro de si la parte de vinculación se aplica porque mi código no se vincula a ella más de lo que sería con o sin agruparlo. Que yo sepa, la excepción classpath no cubre este caso de uso.

Hay una pregunta similar sobre Stack Overflow , sin embargo, que se refiere a la situación en la que se desarrolla una aplicación con OpenJDK, me refiero a la distribución con OpenJDK.

john01dav
fuente
44
¿Has leído la licencia de OpenJDK o has buscado preguntas similares ? Esta pregunta es sobre el tema porque se trata de licenciar su propio software: sin embargo, compartir su investigación atraerá mejores respuestas.
Sí tengo. He editado la pregunta para reflejar esto.
john01dav
Leí esa pregunta y sus respuestas. No estoy seguro de cómo se relaciona realmente con esta pregunta, aparte de estar en un tema similar.
john01dav
¿Tiene que ser OpenJDK? Algunos otros tiempos de ejecución de Java pueden permitir la distribución de su tiempo de ejecución binario sin agregar términos GPL a su distribución. Ver, por ejemplo, java.com/en/download/faq/distribution.xml
Brandin,

Respuestas:

5

Esta es una pregunta importante, especialmente cuando considera el hecho de que Oracle ha cambiado sus acuerdos de licencia y distribución a partir de Java 9, 10 y 11.

JDK -> Kit de desarrollo de Java .

Los JDK no son una distribución de "tiempo de ejecución": un JDK es una distribución de desarrollador que contiene un tiempo de ejecución como parte del paquete. Los JDK no son 'distribuibles libremente' por el desarrollador, tienen licencia para el desarrollador. Si lee el EULA para su JDK, verá que viene con restricciones en la redistribución.

JRE -> Java Runtime Engine.

Los tiempos de ejecución son (casi siempre) gratuitos para descargar y distribuir siempre que cumpla con el EULA para el JRE.

JDK y JRE tienen licencia y se distribuyen por separado e independientemente el uno del otro.

Finalmente, debe saber que, por lo general, tampoco puede distribuir 'partes' o componentes de un JDK; esto significa que no debe extraer el JRE de su JDK instalado y distribuirlo o agruparlo por separado.

La mejor práctica es separar el desarrollo del despliegue.

  • Desarrollas en un JDK y despliegas el proyecto
  • El despliegue depende de un JRE
Greg Patnude
fuente
-1

Por lo que leí en la licencia, puedes redistribuir libremente el programa, incluso cobrar por distribuirlo.

Pero como tengo experiencia personal con el lanzamiento de un juego de Java (no pagado), creo que es mejor decirle al usuario que Java Runtime Environment se requiere en la fuente de distribución (darles un enlace a la descarga de Java) o tener la aplicación dar al usuario un error.

Demetria
fuente
2
¿Puede dar algunas razones sobre por qué permitir que la descarga del usuario sea mejor?
ziggystar
3
Bueno, ya tengo (múltiples) JRE instalados; tener cada paquete de aplicaciones de más de 150 MB "por si acaso" me parece bastante inútil. Además, tener un JRE específico de la aplicación genera problemas como este: "mi JRE tiene estos ajustes, ¿por qué no funciona en SU ​​aplicación?" stackoverflow.com/a/21417887/19746
Piskvor