Apakah mungkin untuk mengubah kode plugin Chili , yang memiliki rilis terbaru pada Juli 2008, dan dilisensikan di bawah lisensi MIT, untuk kemudian dilisensikan di bawah GPL?
Sejauh yang saya bisa lihat, tidak ada batasan tentang kode baru yang dilisensikan di bawah lisensi yang sama. Benarkah demikian, atau adakah jumlah minimum perubahan?
Dalam kasus saya, saya akan mengubah plugin jQuery dalam kode Javascript normal yang dijalankan dalam CMS. Ini pada dasarnya berarti bahwa, antara lain:
- Kode tidak akan menggunakan namespace "ChiliBook".
- Fungsi tidak akan dipanggil sebagai
$($element).chili()
, tetapi sebagaiGlobalObject.ChiliHighlighter.process($jquery_element)
, di mana "GlobalObject" adalah objek JavaScript yang digunakan dari CMS. - Kode akan memungkinkan modul lain untuk mengubah
GlobalObject.ChiliHighlighter
objek untuk menambahkan fungsi yang secara opsional dipanggil dariGlobalObject.ChiliHighlighter.process()
ketika mereka ditentukan.
Sebagai alternatif, karena repositori yang saya gunakan memungkinkan saya untuk memasukkan kode yang tidak dilisensikan di bawah GPL 2 atau lisensi yang lebih tinggi ketika kode tersebut tidak dipertahankan lagi, bisakah plugin dianggap tidak dipertahankan lagi, karena versi terakhirnya dirilis tiga tahun lalu?
sumber
Jawaban:
Secara teknis legal.
Lisensi MIT (Expat) memberi batasan pada Anda. Ini adalah bagian dari lisensi GPL. Oleh karena itu, jika Anda mengubah kode di bawah GPL, dan tetap memperhatikan MIT, maka Anda telah memenuhi ketentuan lisensi MIT dan secara hukum dapat mendistribusikan ulang kode tersebut.
Perhatikan bahwa Anda tidak boleh mengklaim kepemilikan hak cipta; Anda harus mengakui hak cipta asli.
[sunting] Beberapa orang tampaknya tidak memahami bagaimana F / OSS bekerja bersama dengan undang-undang hak cipta dan lisensi. Semuanya dimulai dengan hak cipta, jika hanya karena itulah standarnya. Di bawah doktrin hak cipta, penulis berhak membuat salinan kode sumber. Di bawah lisensi MIT, hak itu diberikan kepada saya, serta hak untuk memberikannya secara rekursif kepada orang lain. Perhatikan bahwa lisensi MIT secara eksplisit mencakup hak sublisensi. Mengutip:
"the rights to use, copy, modify, merge, publish,distribute,
sublicense,
and/or sell"
Ketika saya mensublisensikan kode, saya tidak dapat memberikan hak yang awalnya tidak saya miliki. Dalam kasus GPL, saya secara eksplisit dilarang mensublisensikan hanya beberapa hak. Tetapi baik dalam hukum maupun dalam lisensi MIT saya tidak memiliki kewajiban untuk mensublisensikan semua hak secara keseluruhan.
Oleh karena itu, lisensi MIT memberi saya hak eksplisit untuk hak sublisensi, dan baik hukum maupun lisensi MIT melarang saya untuk mensublisensikan hanya beberapa hak. Juga, tidak ada yang membatasi bentuk yang saya lakukan. Oleh karena itu, saya memiliki hak yang tidak dapat disangkal untuk memberikan sublisensi GPL pada kode itu.
sumber
Iya. Tetapi efeknya mungkin bukan apa yang Anda pikirkan.
Lisensi MIT mencakup semua hak yang diberikan GPL dan banyak lagi. Dan sementara orang yang menerima distribusi Anda hanya menerima lisensi GPL untuk elemen yang Anda tambahkan, mereka masih menerima lisensi MIT (dari penulis asli, bukan dari Anda) untuk elemen apa pun yang terdapat dalam karya yang ditawarkan penulis di bawah lisensi itu.
Mereka mungkin tidak mengetahui hal ini, dan sejauh yang saya tahu, tidak ada hukum yang mewajibkan Anda untuk memberi tahu mereka. Tetapi jika mereka "melanggar" lisensi GPL sehubungan dengan ekspresi terlindungi yang terkandung dalam karya yang tidak Anda buat (atau yang tidak dikontribusikan oleh orang lain untuk rilis khusus-GPL), mereka tidak melanggar lisensi atau hak cipta Anda. (Sebenarnya, itu seharusnya agak jelas - Anda hanya memegang hak cipta untuk ekspresi yang Anda tulis.)
Jadi, Anda belum mengonversi elemen yang dapat dilindungi hak cipta dari lisensi MIT ke lisensi GPL. Anda cukup menambahkan yang baru yang hanya ditawarkan di bawah lisensi GPL dan merilis elemen dalam karya campuran / gabungan.
sumber
Tidak ada yang ditambahkan ke penjelasan dalam jawaban yang sudah diberikan, tetapi di sini ada instruksi untuk cara membentuk header file sumber Anda ( sumber ):
sumber