Izin, syarat, dan batasan sekilas
Syarat
- Ungkapkan sumberSaat mendistribusikan, kode sumber harus disediakan.
- Pemberitahuan hak cipta & lisensiSaat mendistribusikan, salinan lisensi dan pemberitahuan hak cipta harus disertakan.
- Lisensi yang sama (per file)Bagian yang mengubah file yang ada harus didistribusikan dengan lisensi yang sama.
Batasan
- Batasan tanggung jawabMenyatakan secara tegas tidak bertanggung jawab atas kerugian.
- Penggunaan merek dagangMenyatakan secara tegas bahwa hak merek dagang tidak diberikan.
- Tanpa jaminanMenyatakan secara tegas tidak memberikan jaminan apa pun.
Sumber klasifikasi izin·syarat·batasan: data choosealicense.com (GitHub, MIT License).
Lisensi seperti apa
MPL 2.0 dirilis Mozilla Foundation pada Januari 2012. Dipakai produk Mozilla seperti Firefox dan Thunderbird, dan cirinya adalah cakupan copyleft ditetapkan per file. File yang berlisensi MPL (dan bagian yang mengubah file itu) harus dibuka sumbernya di bawah MPL, tetapi file terpisah yang baru ditulis boleh memakai lisensi lain, dan 'Larger Work' (Pasal 3.3) yang menggabungkan kode MPL boleh didistribusikan secara keseluruhan dengan syarat pilihan Anda. Ada juga pemberian paten yang tegas dan klausul penghentian izin saat gugatan paten.
Yang harus dipenuhi saat mendistribusikan
- Jika didistribusikan sebagai file eksekusi, beri tahu cara memperoleh sumber file berlisensi MPL (Pasal 3.2).
- Jangan menghapus atau mengubah pemberitahuan lisensi pada file MPL.
- Jika Anda mengubah file MPL, file itu tetap didistribusikan sebagai MPL-2.0.
Secondary License dan kompatibilitas GPL
Pasal 1.12 MPL-2.0 mendefinisikan GPL-2.0·LGPL-2.1·AGPL-3.0 dan edisi sesudahnya sebagai 'Secondary License'. Menurut Pasal 3.3, Larger Work yang menggabungkan kode MPL dan kode berlisensi GNU dapat didistribusikan di bawah lisensi GNU. Namun jika penulis asli menempelkan pemberitahuan Exhibit B ('Incompatible With Secondary Licenses') pada file, kompatibilitas ini tidak berlaku. MPL-1.1 tidak memiliki mekanisme ini sehingga tidak kompatibel dengan GPL, dan hal itu diperbaiki di 2.0.
Kesalahpahaman umum
- "Jika memakai pustaka MPL, aplikasi saya juga menjadi MPL" — Tidak. File yang Anda buat sendiri tidak harus MPL.
- "MPL tidak bisa dicampur dengan GPL" — Sejak 2.0 bisa, selama tidak ada Exhibit B.
- "Jika kode dari file MPL disalin dan ditempel ke file saya, file saya tetap bebas" — Bagian yang dipindahkan dari kode MPL tetap MPL. Batas file adalah batas kewajiban, jadi lebih aman tidak mencampur kode dan memisahkannya ke file tersendiri.
Cara menerapkan
Taruh teks lisensi di LICENSE, dan disarankan menempelkan pemberitahuan Exhibit A ('This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0…') di bagian paling atas setiap file sumber. Jika sulit dimasukkan ke dalam file, boleh ditaruh di tempat yang mungkin dicari penerima, seperti file LICENSE di direktori terkait. Pengenal SPDX-nya MPL-2.0 (jika ada Exhibit B, MPL-2.0-no-copyleft-exception).
Cocok untuk
Jalan tengah yang baik saat Anda ingin perbaikan pada pustaka atau mesin itu sendiri kembali kepada Anda, tetapi tidak ingin membatasi lisensi produk yang memakainya. Syaratnya lebih sederhana daripada LGPL dan tidak ada masalah tautan statis. Ada juga kasus ketika HashiCorp pada 2023 mengganti lisensi Terraform dari MPL-2.0 ke BUSL, lalu komunitas mem-fork versi MPL-2.0 menjadi OpenTofu.
Bisakah kode MPL-2.0 dimasukkan ke proyek lain?
Penilaian umum saat mengambil kode yang dirilis di bawah lisensi ini lalu menggabungkan dan mendistribusikannya dalam proyek berlisensi di bawah. Lihat kombinasi lain di pemeriksa kompatibilitas →
| Proyek tujuan | Hasil | Catatan |
|---|---|---|
| Perangkat lunak tertutup (komersial) | Boleh dengan syarat | File MPL tetap memakai MPL-2.0 per file dan kode sumber file-file itu harus disediakan. Kode lainnya boleh memakai lisensi lain. |
| MIT | Boleh dengan syarat | File MPL tetap memakai MPL-2.0 per file dan kode sumber file-file itu harus disediakan. Kode lainnya boleh memakai lisensi lain. |
| Apache-2.0 | Boleh dengan syarat | File MPL tetap memakai MPL-2.0 per file dan kode sumber file-file itu harus disediakan. Kode lainnya boleh memakai lisensi lain. |
| LGPL-2.1 | Boleh dengan syarat | MPL-2.0 mengakui GPL-2.0 atau lebih baru, LGPL-2.1 atau lebih baru, dan AGPL-3.0 atau lebih baru sebagai 'Secondary License', sehingga hasil gabungan boleh didistribusikan dengan lisensi GNU. Namun tidak boleh jika penulis asli memasang 'Incompatible With Secondary Licenses' (Exhibit B). |
| LGPL-3.0 | Boleh dengan syarat | MPL-2.0 mengakui GPL-2.0 atau lebih baru, LGPL-2.1 atau lebih baru, dan AGPL-3.0 atau lebih baru sebagai 'Secondary License', sehingga hasil gabungan boleh didistribusikan dengan lisensi GNU. Namun tidak boleh jika penulis asli memasang 'Incompatible With Secondary Licenses' (Exhibit B). |
| GPL-2.0 | Boleh dengan syarat | MPL-2.0 mengakui GPL-2.0 atau lebih baru, LGPL-2.1 atau lebih baru, dan AGPL-3.0 atau lebih baru sebagai 'Secondary License', sehingga hasil gabungan boleh didistribusikan dengan lisensi GNU. Namun tidak boleh jika penulis asli memasang 'Incompatible With Secondary Licenses' (Exhibit B). |
| GPL-3.0 | Boleh dengan syarat | MPL-2.0 mengakui GPL-2.0 atau lebih baru, LGPL-2.1 atau lebih baru, dan AGPL-3.0 atau lebih baru sebagai 'Secondary License', sehingga hasil gabungan boleh didistribusikan dengan lisensi GNU. Namun tidak boleh jika penulis asli memasang 'Incompatible With Secondary Licenses' (Exhibit B). |
| AGPL-3.0 | Boleh dengan syarat | MPL-2.0 mengakui GPL-2.0 atau lebih baru, LGPL-2.1 atau lebih baru, dan AGPL-3.0 atau lebih baru sebagai 'Secondary License', sehingga hasil gabungan boleh didistribusikan dengan lisensi GNU. Namun tidak boleh jika penulis asli memasang 'Incompatible With Secondary Licenses' (Exhibit B). |
Konten situs ini adalah informasi umum, bukan nasihat hukum. Untuk keputusan distribusi, kontrak, atau sengketa yang sebenarnya, konsultasikan dengan pengacara atau ahli lainnya.