Raggruppare OpenJDK con un'applicazione proprietaria consentita da GPL?


16

Attualmente sto realizzando un videogioco in Java che molto probabilmente verrà distribuito tramite Steam. Naturalmente, in questo caso molti utenti di Steam non avranno Java installato. Se ciò accade, posso avere un piccolo launcher nativo che mostra un dialogo informativo che dice all'utente che deve installare Java, o semplicemente raggruppare il mio ambiente di runtime Java (in particolare OpenJDK 8) con il mio gioco. Il mio gioco sarà a codice chiuso, tuttavia si basa su un motore di gioco open source (con licenza BSD).

Ho cercato la licenza di OpenJDK. È un progetto GPL, il che significa che tutto ciò che lo collega deve essere anche GPL. Tuttavia, hanno anche l'eccezione classpath. Non sono sicuro se la parte di collegamento si applichi perché il mio codice non si collega ad esso più di quanto sarebbe con o senza raggrupparlo. Per quanto ne so, l'eccezione classpath non copre questo caso d'uso.

C'è una domanda simile su Stack Overflow , tuttavia si riferisce alla situazione in cui un'applicazione è sviluppata con OpenJDK, mi riferisco alla distribuzione con OpenJDK.


4
Hai letto la licenza OpenJDK o hai cercato domande simili ? Questa domanda è in discussione perché si tratta di concedere in licenza il proprio software: tuttavia, condividere la ricerca attirerà risposte migliori.

Sì. Ho modificato la domanda per riflettere questo.
john01dav,


Ho letto quella domanda e le sue risposte. Non sono sicuro di come sia realmente correlato a questa domanda oltre a essere su un argomento simile.
john01dav,

Deve essere OpenJDK? Alcuni altri runtime Java possono consentire la distribuzione del loro runtime binario senza aggiungere termini GPL alla propria distribuzione. Vedi ad esempio java.com/en/download/faq/distribution.xml
Brandin,

Risposte:


5

Questa è una domanda importante, soprattutto se si considera il fatto che Oracle ha modificato i propri accordi di licenza e distribuzione a partire da Java 9, 10 e 11.

JDK -> Java Development Kit.

I JDK non sono una distribuzione 'runtime': un JDK è una distribuzione di uno sviluppatore che contiene un runtime come parte del bundle. I JDK non sono "liberamente distribuibili" dallo sviluppatore, sono concessi in licenza allo sviluppatore. Se leggi l'EULA per il tuo JDK, vedrai che ha delle restrizioni sulla ridistribuzione.

JRE -> Java Runtime Engine.

I runtime sono (quasi sempre) gratuiti da scaricare e distribuire, purché aderisca all'EULA per il JRE.

JDK e JRE sono concessi in licenza e distribuiti separatamente e indipendentemente l'uno dall'altro.

Infine, è necessario sapere che in genere non è consentito distribuire "parti" o componenti di un JDK; ciò significa che non è necessario estrarre il JRE dal JDK installato e distribuirlo o raggrupparlo separatamente.

La migliore pratica è quella di separare lo sviluppo dalla distribuzione.

  • Si sviluppa su un JDK e si distribuisce il progetto
  • La distribuzione ha una dipendenza da un JRE

-1

Da quello che ho letto nella licenza, sei libero di ridistribuire il programma, anche addebitarlo per distribuirlo.

Ma poiché ho esperienza personale con il rilascio di un gioco Java (non a pagamento, però) trovo meglio dire semplicemente all'utente che Java Runtime Environment è richiesto sulla fonte di distribuzione (dare loro un collegamento al download Java) o avere l'applicazione dare un errore all'utente.


2
Puoi fornire alcune ragioni sul perché consentire all'utente il download potrebbe essere migliore?
ziggystar,

3
Bene, ho già (più) JRE installati; avere ogni pacchetto di applicazioni oltre 150 MB "per ogni evenienza" mi sembra piuttosto inutile. Inoltre, avere un JRE specifico per l'app porta a problemi come questo: "il mio JRE ha queste modifiche, perché non funziona nella TUA app?" stackoverflow.com/a/21417887/19746
Piskvor
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.