Jawaban singkat
Kombinasi dari Eclipse Public License dan LGPL memastikan apa yang Anda inginkan: Modifikasi kode Anda harus tersedia, tetapi menggunakan kode dalam produk yang lebih besar tidak memaksa produk yang lebih besar dilisensikan ulang. Kombinasi ini diperlukan untuk memungkinkan kode digunakan dalam proyek GPL dan non-GPL.
Ini adalah cara yang telah dilakukan proyek-proyek seperti JGraphT. Mereka melepaskan proyek mereka di bawah EPL dan LGPL. Motivasi dan prosedur dijelaskan dalam wiki mereka .
Jawaban panjang
Saya pikir, Lisensi Publik Mozilla ( MPL ) atau Eclipse Public License ( EPL ) adalah lisensi yang Anda cari, karena "jika ada karya turunan dari perpustakaan dibuat (setiap perbaikan perpustakaan misalnya), itu [IS ] tersedia untuk semua orang di bawah lisensi yang sama. "
MPL dan lisensi EPL adalah antara GPL dan MIT.
MIT memungkinkan pengguna untuk melakukan segalanya dengannya, termasuk modifikasi, penjualan, dan tidak mengembalikan kode yang dimodifikasi kepada komunitas.
GPL memaksa pengguna untuk memberikan semua kode kepada komunitas, bahkan jika perpustakaan Anda hanya 1% dari keseluruhan produk.
LGPL memaksa pengguna untuk memberikan modifikasi bagian LGPL dari kode.
MPL dan EPL mirip dengan LGPL: Ini juga memaksa pengguna untuk membuat sumber yang dimodifikasi tersedia. "Sumber yang dimodifikasi" hanya mencakup bagian dari kode yang dicakup MPL- / EPL. Itu berarti, pengguna dapat membangun produk baru dari perpustakaan Anda. Jika dia melakukan modifikasi bagian MPL- / EPL, dia harus menerbitkannya. Hal-hal baru menurutnya tidak perlu dipublikasikan.
Saya merasa MPL / EPL lebih pas, karena LGPL secara eksplisit berbicara tentang "perpustakaan" dan MPL hanya berbicara tentang "Perangkat Lunak Tertutup" (yang merupakan ruang lingkup yang lebih luas).
Namun, memilih EPL menyebabkan masalah dengan menyisir perangkat lunak dengan perangkat lunak GPL: EPL tidak kompatibel dengan GPL . Ini tidak terjadi jika Anda hanya menggunakan MPL .
Jika Anda ingin memastikan bahwa kode Anda dapat digunakan dalam proyek GPL dan non-GPL, lisensikan ganda kode di bawah LGPL dan EPL seperti dijelaskan dalam jawaban singkat.
Contohnya
- JGraphT
- logback
qooxdoo . Mereka berencana "untuk menyederhanakan dan memodernisasi istilah lisensi qooxdoo" dan dengan demikian mereka beralih dari lisensi ganda ke MIT.