Tentukan tujuan terlebih dahulu
Memilih lisensi bukan soal selera, melainkan soal apa yang Anda inginkan. Kebanyakan orang berada di antara dua tujuan berikut.
- Ingin dipakai seluas mungkin — jika Anda ingin kode masuk tanpa beban ke produk perusahaan, open source lain, atau aplikasi tertutup, lisensi permisif lebih menguntungkan.
- Ingin perbaikan kembali secara terbuka — jika Anda ingin modifikasi juga dibuka saat seseorang mengubah dan mendistribusikan kode Anda, copyleft lebih cocok.
Permisif: adopsi luas, gesekan kecil
MIT, BSD, ISC, dan Apache-2.0 hanya mewajibkan kira-kira mempertahankan pemberitahuan. Sebagian besar tim hukum perusahaan memasukkannya ke daftar pra-disetujui sehingga adopsinya cepat. Sebaliknya, Anda tidak bisa mencegah orang mengubah kode dan memasukkannya ke produk tertutup.
Pilihan di antara lisensi permisif terutama ada dua.
- Paten: jika memerlukan pemberian paten yang tegas dan klausul pembalasan paten, pilih Apache-2.0; jika tidak, MIT.
- Kompatibilitas dengan GPL-2.0: posisi FSF adalah Apache-2.0 tidak bisa dimasukkan ke proyek GPL-2.0-only, jadi untuk ekosistem di sekitar kernel Linux, MIT·BSD lebih praktis.
Copyleft: rantai keterbukaan
GPL menetapkan kewajiban pembukaan pada seluruh program gabungan, LGPL pada pustaka, dan MPL per file. Untuk perangkat lunak yang berjalan di server, AGPL menutup celah GPL. Jika memakai copyleft, sebagian perusahaan mungkin enggan memakai atau berkontribusi. Khususnya AGPL, banyak perusahaan membatasi penggunaannya lewat kebijakan internal. Ini bisa jadi efek yang diinginkan, atau efek samping yang tidak diinginkan.
Kebiasaan ekosistem juga tidak bisa diabaikan
Lisensi menimbulkan lebih sedikit gesekan jika sesuai dengan kebiasaan komunitas.
| Ekosistem | Lisensi umum | Catatan |
|---|---|---|
| JavaScript(npm) | MIT, ISC | Banyak paket kecil sehingga lisensi permisif pendek lebih disukai |
| Rust(crates.io) | MIT OR Apache-2.0 | Rust sendiri memakai lisensi ganda ini |
| Python(PyPI) | MIT, BSD-3-Clause, Apache-2.0 | Di bidang komputasi ilmiah banyak BSD-3 |
| Go | BSD-3-Clause, MIT, Apache-2.0 | Pustaka standar Go memakai BSD-3 |
| Modul kernel Linux | GPL-2.0-only | Praktis wajib untuk digabung dengan kernel |
| Alat GNU desktop | GPL-3.0-or-later | Bawaan proyek GNU |
| Pustaka C/C++ | LGPL, MIT, BSL-1.0 | Cara penautan memengaruhi pilihan |
Daftar periksa keputusan
- Periksa dependensi: lihat apakah lisensi pustaka yang sudah dipakai membatasi pilihan Anda. Jika mendistribusikan program yang digabung dengan pustaka GPL, pilihan menyempit ke lisensi yang kompatibel dengan GPL.
- Periksa afiliasi: kode yang ditulis dalam rangka pekerjaan biasanya hak ciptanya milik perusahaan. Periksa apakah kebijakan open source perusahaan menetapkan lisensi tertentu.
- Bentuk penggunaan: efek copyleft berbeda tergantung apakah berupa perangkat lunak terpasang, pustaka, atau layanan.
- Cara kontribusi: jika berencana menerima kontribusi luar, ingat bahwa mengganti lisensi kelak akan sulit, karena hak cipta banyak orang akan tercampur.
- Model pendapatan: jika berencana menjual lisensi komersial terpisah, pertimbangkan lisensi ganda copyleft + komersial bersama perjanjian lisensi kontributor (CLA).
Ringkasan satu kalimat
- Dipakai luas adalah prioritas utama → MIT (jika khawatir soal paten, Apache-2.0)
- Ingin perbaikan pustaka kembali, tetapi pemakainya tetap bebas → MPL-2.0 atau LGPL-3.0
- Ingin semua program turunan dibuka → GPL-3.0
- Ingin versi modifikasi perangkat lunak server pun dibuka → AGPL-3.0
- Tidak ingin memasang syarat apa pun → 0BSD, Unlicense, CC0
Jawab kriteria ini dalam bentuk pertanyaan di wizard pemilihan untuk melihat kandidat beserta alasannya.
Artikel ini adalah informasi umum, bukan nasihat hukum. Untuk keputusan penting, konsultasikan dengan ahli.
Sumber
- choosealicense.com — https://choosealicense.com/
- FSF, Various Licenses and Comments about Them — https://www.gnu.org/licenses/license-list.html
- Lisensi Rust (MIT OR Apache-2.0) — https://github.com/rust-lang/rust