Apakah lisensi sumber terbuka MIT mengharuskan turunan kerja diumumkan (di bawah lisensi MIT)?

9

Saya mencari lisensi sumber terbuka untuk perpustakaan yang ingin saya terbitkan. Idealnya, seseorang harus diizinkan untuk menggunakan perpustakaan ini dalam aplikasi gratis atau komersial tanpa membayar saya biaya, tetapi jika ada karya turunan dari perpustakaan dibuat (setiap perbaikan perpustakaan misalnya), itu harus tersedia untuk semua orang di bawah lisensi yang sama.

Dengan kata lain, saya ingin menerapkan etika berikut: "Anda mendapat manfaat dari karya ini secara gratis, dan jika Anda meningkatkannya, saya juga bisa mendapat manfaat dari peningkatan Anda secara gratis". Ini adalah jenis lisensi copyleft yang saya cari.

Lisensi MIT terlihat seperti solusi yang mungkin, tetapi tidak jelas bagi saya apakah karya turunan dari kode yang dicakup oleh lisensi ini HARUS tersedia secara PUBLIK untuk semua orang. Adakah yang bisa mengklarifikasi / mengkonfirmasi hal ini? Jika ada lisensi open source lain yang lebih sesuai untuk kebutuhan saya, saya juga tertarik. Terima kasih.

Jérôme Verstrynge
sumber
Diskusi lebih lanjut ada di sini: programmers.stackexchange.com/questions/12394/...
Dipan Mehta

Jawaban:

9

Lisensi MIT tidak mengharuskan karya turunan bersumber terbuka. Anda mencari GPL .

GPL memberikan kepada penerima program komputer hak-hak Definisi Perangkat Lunak Bebas dan menggunakan copyleft untuk memastikan kebebasan dipertahankan setiap kali pekerjaan didistribusikan, bahkan ketika pekerjaan diubah atau ditambahkan. GPL adalah lisensi copyleft, yang berarti bahwa karya turunan hanya dapat didistribusikan dengan ketentuan lisensi yang sama ...

Semut
sumber
1
GPL memaksa pengguna untuk menerbitkan karya turunan di bawah GPL yang mendorong terlalu banyak pembatasan. Saya hanya ingin modifikasi perpustakaan saya tersedia. Haruskah saya menggunakan LGPL?
Jérôme Verstrynge
8
Dalam hal itu, ya - LGPL lebih tepat.
Semut
Perhatikan bahwa (L) GPL hanya memicu redistribusi. Pengguna akhir yang membuat karya turunan hanya untuk penggunaan pribadi tidak terikat oleh (L) kewajiban GPL. Yaitu berbicara ini bukan jawaban untuk pertanyaan seperti yang diungkapkan.
MSalters
7
@ MSalters: Saya pikir hampir tidak mungkin untuk mengetahui bahwa seseorang telah mendapatkan sesuatu dari kode Anda kecuali mereka menerbitkannya dalam beberapa bentuk, membuat masalah itu agak diperdebatkan.
Semut
6

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.
koppor
sumber
Bisakah Anda jelaskan mengapa Anda merasa MPL cocok dengan kriteria yang dicari OP?
maple_shaft
Haruskah 'lisensi ganda' terlihat seperti 'jika Anda menggunakan perangkat lunak ini dalam produk GPL, perangkat lunak ini dilisensikan kepada Anda di bawah GPL, jika tidak, di bawah MPL'? Apakah ada proyek yang melakukan hal seperti itu?
9000
@ 9000 Menurut FAQ di GNU , kode dilindungi oleh MPL dan GNU. Paragraf kedua agak aneh dan saya tidak mendapatkan implikasinya.
koppor