Izin, syarat, dan batasan sekilas
Syarat
- Pemberitahuan hak cipta & lisensiSaat mendistribusikan, salinan lisensi dan pemberitahuan hak cipta harus disertakan.
- Tandai perubahanJika karya asli diubah, perubahan itu harus ditandai.
- Ungkapkan sumberSaat mendistribusikan, kode sumber harus disediakan.
- Lisensi yang samaVersi modifikasi dan turunan harus didistribusikan dengan lisensi yang sama (atau kompatibel).
Batasan
- Batasan tanggung jawabMenyatakan secara tegas tidak bertanggung jawab atas kerugian.
- Tanpa jaminanMenyatakan secara tegas tidak memberikan jaminan apa pun.
Sumber klasifikasi izin·syarat·batasan: data choosealicense.com (GitHub, MIT License).
Lisensi seperti apa
GPL (GNU General Public License) 3.0 dirilis Free Software Foundation (FSF) pada 29 Juni 2007. Intinya adalah prinsip copyleft: siapa pun boleh menggunakan, mempelajari, mengubah, dan mendistribusikan secara bebas, tetapi saat mendistribusikan, kebebasan yang sama harus dijamin bagi penerima. Jika Anda mendistribusikan program yang memuat atau digabung dengan kode ini, seluruh program itu harus disediakan di bawah GPL beserta kode sumber yang bersesuaian. GNU Bash, GIMP, GNU Emacs, dan lainnya memakai GPL-3.0-or-later.
Perubahan dari GPL-2.0
- Pemberian paten yang tegas (Pasal 11): kontributor memberikan hak penggunaan paten yang diperlukan untuk kontribusinya.
- Informasi instalasi (Installation Information): jika perangkat lunak GPL-3.0 didistribusikan di dalam 'Produk Pengguna (User Product)' seperti perangkat rumah tangga, informasi untuk memasang perangkat lunak yang dimodifikasi ke perangkat itu (kunci tanda tangan, dll.) juga harus disediakan (Pasal 6). Biasa disebut 'anti-tivoisasi'.
- Masa perbaikan pelanggaran (Pasal 8): untuk pelanggaran pertama, hak dipulihkan jika diperbaiki dalam 30 hari sejak menerima pemberitahuan dari pemegang hak cipta. Di GPL-2.0, hak langsung gugur saat terjadi pelanggaran.
- Perluasan kompatibilitas: dapat menerima kode Apache-2.0, dan dapat digabung dengan AGPL-3.0 (Pasal 13).
Yang harus dipenuhi saat mendistribusikan
- Sediakan seluruh sumber yang bersesuaian (termasuk skrip build), atau sediakan lewat salah satu cara di Pasal 6 seperti penawaran tertulis.
- Pertahankan pemberitahuan hak cipta dan lisensi, serta tandai fakta perubahan dan tanggalnya (Pasal 5).
- Anda tidak boleh menambahkan syarat yang membatasi hak yang diberikan GPL kepada penerima (misalnya kontrak larangan distribusi ulang).
Kesalahpahaman umum
- "Jika memakai kode GPL, pasti harus dibuka" — Kewajiban pembukaan muncul saat menyampaikan (conveying). Jika hanya dipakai di dalam perusahaan atau hanya dijalankan di server, kewajiban penyediaan sumber GPL-3.0 tidak timbul. Untuk ikut mengikat penggunaan jaringan, diperlukan AGPL-3.0.
- "Perangkat lunak GPL tidak boleh dijual" — Boleh dijual. Namun Anda tidak bisa mencegah penerima mendistribusikannya kembali.
- "Program saya yang berjalan di atas program GPL juga menjadi GPL" — Jika berjalan sebagai program terpisah atau berkomunikasi dengan cara standar, biasanya dianggap 'agregat'. Penilaian penggabungan berbeda-beda tergantung cara penautan dan cara pertukaran data.
- "GPL-3.0 kompatibel dengan GPL-2.0" — Jika GPL-2.0 berupa only, bukan 'or later', tidak kompatibel (panduan only vs or-later).
Cara menerapkan
Masukkan teks lisensi apa adanya ke LICENSE (atau COPYING sesuai kebiasaan GNU), lalu tempel pemberitahuan resmi GNU di bagian paling atas setiap file sumber. Ada tidaknya 'or later' ditentukan lewat pemberitahuan itu. Pengenal SPDX-nya GPL-3.0-only atau GPL-3.0-or-later (sekadar GPL-3.0 adalah pengenal yang sudah usang di SPDX).
Cocok untuk
Cocok untuk aplikasi, alat, dan proyek komunitas yang menginginkan perbaikan berbasis kode Anda tidak lari ke produk tertutup, melainkan kembali kepada semua orang. Untuk pustaka, pertimbangkan juga LGPL-3.0 agar dapat dipakai aplikasi tertutup.
Bisakah kode GPL-3.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) | Tidak boleh | Seluruh program yang digabung dan didistribusikan harus dibuka beserta sumbernya di bawah lisensi GNU yang sama, sehingga tidak bisa dimasukkan sambil mempertahankan lisensi proyek. |
| MIT | Tidak boleh | Seluruh program yang digabung dan didistribusikan harus dibuka beserta sumbernya di bawah lisensi GNU yang sama, sehingga tidak bisa dimasukkan sambil mempertahankan lisensi proyek. |
| Apache-2.0 | Tidak boleh | Seluruh program yang digabung dan didistribusikan harus dibuka beserta sumbernya di bawah lisensi GNU yang sama, sehingga tidak bisa dimasukkan sambil mempertahankan lisensi proyek. |
| MPL-2.0 | Tidak boleh | Seluruh program yang digabung dan didistribusikan harus dibuka beserta sumbernya di bawah lisensi GNU yang sama, sehingga tidak bisa dimasukkan sambil mempertahankan lisensi proyek. |
| LGPL-2.1 | Boleh dengan syarat | Hasil gabungan harus didistribusikan di bawah syarat GPL-3.0. |
| LGPL-3.0 | Boleh dengan syarat | Hasil gabungan harus didistribusikan di bawah syarat GPL-3.0. |
| GPL-2.0 | Tidak boleh | Kode versi 3.0 tidak bisa berdampingan dengan syarat GPL-2.0 (only) sehingga tidak dapat dimasukkan. |
| AGPL-3.0 | Boleh | GPL-3.0 dan AGPL-3.0 saling mengizinkan penggabungan lewat Pasal 13 masing-masing. Dalam hasil gabungan, kewajiban menyediakan sumber lewat jaringan untuk bagian AGPL tetap berlaku. |
Konten situs ini adalah informasi umum, bukan nasihat hukum. Untuk keputusan distribusi, kontrak, atau sengketa yang sebenarnya, konsultasikan dengan pengacara atau ahli lainnya.