Bundling OpenJDK dengan aplikasi berpemilik yang diizinkan oleh GPL?

16

Saat ini saya membuat video game di Jawa yang kemungkinan besar akan didistribusikan melalui Steam. Tentu saja, banyak pengguna Steam belum menginstal Java dalam kasus ini. Jika ini terjadi, saya dapat memiliki peluncur asli kecil yang memperlihatkan dialog informatif yang memberi tahu pengguna bahwa mereka perlu menginstal Java, atau cukup bundel lingkungan Java runtime saya sendiri (khususnya OpenJDK 8) dengan permainan saya. Game saya akan menjadi sumber tertutup, namun didasarkan pada mesin game sumber terbuka (berlisensi BSD).

Saya memang melihat lisensi OpenJDK. Ini adalah proyek GPL yang berarti bahwa apa pun yang menghubungkannya harus juga GPL. Namun, mereka juga memiliki pengecualian classpath. Saya tidak yakin apakah bagian penautan berlaku karena kode saya tidak menautkannya lebih daripada dengan atau tanpa bundling. Sejauh yang saya tahu, pengecualian classpath tidak mencakup kasus penggunaan ini.

Ada pertanyaan serupa tentang Stack Overflow , namun itu merujuk pada situasi di mana aplikasi dikembangkan dengan OpenJDK, saya mengacu pada distribusi dengan OpenJDK.

john01dav
sumber
4
Sudahkah Anda membaca lisensi OpenJDK atau mencari pertanyaan serupa ? Pertanyaan ini sesuai topik karena ini tentang melisensikan perangkat lunak Anda sendiri: namun, membagikan penelitian Anda akan menarik jawaban yang lebih baik.
Ya saya punya. Saya telah mengedit pertanyaan untuk mencerminkan hal ini.
john01dav
Saya membaca pertanyaan itu dan jawabannya. Saya tidak yakin bagaimana kaitannya dengan pertanyaan ini selain dari topik yang sama.
john01dav
Apakah harus OpenJDK? Beberapa runtime Java lain mungkin mengizinkan distribusi runtime biner mereka tanpa menambahkan istilah GPL ke distribusi Anda. Lihat misalnya java.com/en/download/faq/distribution.xml
Brandin

Jawaban:

5

Ini adalah pertanyaan penting, terutama ketika Anda mempertimbangkan fakta bahwa Oracle telah mengubah perjanjian lisensi dan distribusi mereka mulai dengan Java 9, 10, & 11.

JDK -> Java Development Kit.

JDK bukan distribusi 'runtime' - JDK adalah distribusi pengembang yang berisi runtime sebagai bagian dari bundel. JDK tidak 'didistribusikan secara bebas' oleh pengembang, mereka dilisensikan kepada pengembang. Jika Anda membaca EULA untuk JDK Anda, Anda akan melihat bahwa itu disertai dengan pembatasan distribusi ulang.

JRE -> Java Runtime Engine.

Runtime's (hampir selalu) gratis untuk mengunduh dan mendistribusikan asalkan Anda mematuhi EULA untuk JRE.

JDK dan JRE dilisensikan dan didistribusikan secara terpisah dan terpisah satu sama lain.

Terakhir, Anda perlu tahu bahwa Anda secara umum juga tidak diperbolehkan mendistribusikan 'bagian' atau komponen JDK - ini artinya Anda tidak seharusnya mengekstrak JRE dari JDK yang Anda instal dan mendistribusikan atau mengelompokkannya secara terpisah.

Praktik terbaik adalah memisahkan pengembangan dari penyebaran.

  • Anda mengembangkan JDK dan menggunakan proyek
  • Penempatan memiliki ketergantungan pada JRE
Greg Patnude
sumber
-1

Dari apa yang saya baca di lisensi Anda dapat dengan bebas mendistribusikan kembali program, bahkan biaya untuk mendistribusikannya.

Tetapi karena saya memiliki pengalaman pribadi dengan merilis game Java (tidak dibayar meskipun) saya merasa lebih baik untuk hanya memberitahu pengguna bahwa Java Runtime Environment diperlukan baik pada sumber distribusi (memberi mereka tautan ke unduhan Java) atau memiliki aplikasi beri pengguna kesalahan.

Demetri
sumber
2
Bisakah Anda memberikan beberapa alasan mengapa membiarkan pengguna mengunduh mungkin lebih baik?
ziggystar
3
Yah, saya sudah memiliki (beberapa) JRE diinstal; memiliki masing-masing bundel aplikasi 150+ MB "berjaga-jaga" tampaknya agak tidak berguna bagi saya. Selain itu, memiliki JRE khusus aplikasi mengarah ke masalah seperti ini: "JRE saya memiliki tweak ini, mengapa itu tidak bekerja di aplikasi ANDA?" stackoverflow.com/a/21417887/19746
Piskvor