Panduan Pengembang untuk Lisensi Sumber Terbuka

Diterbitkan: 2022-03-11

Tidak semua lisensi sumber terbuka sama. Beberapa dari mereka mewajibkan pemasok perangkat lunak untuk memberikan lisensi paten kepada pengguna dan pengembang perangkat lunak. Lisensi lain mewajibkan pengembang yang menggunakan produk atau pustaka berlisensi untuk menawarkan kode sumber produk atau pustaka ini di bawah persyaratan yang sama. Yang lain hanya memberikan kode, tanpa jaminan dalam bentuk apa pun atau masalah apa pun. Dalam artikel ini saya akan mencoba menyoroti perbedaan utama antara lisensi open-source yang paling sering digunakan dari sudut pandang pengguna perangkat lunak dan pengembang perangkat lunak.

Demystifying yang muskil - lisensi open source

Demystifying yang muskil - lisensi open source
Menciak

Ketika pada tahun 1984 Richard Stallman memulai proyek GNU untuk menciptakan sistem operasi bebas, ia menemukan kembali gagasan bahwa perangkat lunak harus dibagi antara pengembang, insinyur, dan pengguna; dan mereka harus dapat memperbaikinya dengan cara kolaboratif seperti yang biasa dilakukan sains.

Pilihan ini kontras dengan konsep biasa perangkat lunak berlisensi yang dipilih oleh sebagian besar perusahaan perangkat lunak dan pengembang untuk mendistribusikan dan menjual program mereka. Hari ini, lebih dari tiga puluh tahun kemudian, perangkat lunak sumber terbuka perlahan-lahan terus menaklukkan berbagai sektor industri kami: Linux, Android, Apache, dan Git adalah contoh produk sumber terbuka terkemuka dalam kategorinya.

Perangkat Lunak Sumber Terbuka atau Gratis?

Sumber terbuka: gratis seperti dalam kebebasan

Dalam artikel ini, saya akan menggunakan istilah "sumber terbuka" dan "gratis" sebagai sinonim saat mengacu pada perangkat lunak atau lisensi. Menurut pendapat saya, kedua istilah tersebut mengungkapkan ide yang sama. "Sumber terbuka" mengungkapkannya dengan cara yang praktis dan teknis, dan menggunakan "Gratis" menempatkan fokus pada makna filosofis dan politis dari konsep tersebut.

Sayangnya kata “free” dalam bahasa Inggris, selain merupakan kata sifat yang terkait dengan “freedom”, juga berarti “tanpa biaya”. Inilah alasan mengapa saya biasanya lebih suka mengatakan "sumber terbuka".

Properti Umum Perangkat Lunak Sumber Terbuka

Open source tidak hanya berarti akses ke kode sumber

Saya kira Anda sudah memiliki gambaran perkiraan tentang apa itu perangkat lunak sumber terbuka. Tetapi karena kita akan berbicara tentang detail dari lisensi yang berbeda, pertama-tama kita perlu berbicara tentang properti spesifik yang mendefinisikan perangkat lunak sumber terbuka.

Pertama-tama: Saya bukan pengacara, dan ini bukan nasihat hukum. Jika ragu, silakan merujuk ke teks sebenarnya dari lisensi yang saya bicarakan, dan ke penasihat hukum Anda.

Semua perangkat lunak sumber terbuka, menurut Inisiatif Sumber Terbuka, didistribusikan di bawah lisensi yang memberi pengguna dan pengembangnya (pemegang lisensi) beberapa hak. Daftar lengkapnya dapat dilihat di Definisi Open Source, tetapi berikut adalah ringkasan dasarnya:

  1. Redistribusi perangkat lunak secara gratis: perangkat lunak dapat dijual atau diberikan sebagai produk atau disertakan dalam paket perangkat lunak. Ini dapat dilakukan tanpa membayar royalti.
  2. Kode sumber dari perangkat lunak berlisensi termasuk dalam distribusi, atau setidaknya ada cara yang dipublikasikan dengan baik untuk mendapatkan kode sumber. Kode sumber ini dapat digunakan untuk mengembangkan versi perangkat lunak yang dimodifikasi.
  3. Penciptaan karya turunan diperbolehkan, dan lisensi memungkinkan mereka untuk didistribusikan di bawah persyaratan dan lisensi yang sama dengan perangkat lunak asli. Tergantung pada lisensi perangkat lunak asli, dalam beberapa kasus karya turunan ini harus dibedakan dari perangkat lunak asli dengan mengubah nama atau nomor versinya, atau hanya dapat didistribusikan dalam bentuk patch kode sumber.
  4. Perangkat lunak ini dapat digunakan oleh siapa saja atau sekelompok orang, dan dalam bidang usaha apa pun, tanpa batasan.

Tetapi Anda harus ingat bahwa lisensi perangkat lunak hanya berbicara tentang menggunakan atau mendistribusikan izin yang diberikan oleh pemegang hak cipta. Lisensi sumber terbuka memungkinkan Anda untuk mendistribusikan ulang perangkat lunak atau karya turunan secara bebas, tetapi izin tersebut juga dapat dibatasi di beberapa negara di mana mengekspor perangkat lunak kriptografi dilarang. Dengan cara yang sama, lisensi sumber terbuka memungkinkan Anda untuk menggunakan perangkat lunak untuk tujuan apa pun, tetapi itu tidak berarti bahwa mereka mengizinkan Anda untuk meretas bank menggunakan perangkat lunak berlisensi sumber terbuka. Paten perangkat lunak adalah contoh lain dari ini: beberapa lisensi sumber terbuka memberikan izin untuk menggunakan paten secara bebas, tetapi tidak semuanya.

Jadi, bisakah kita menggunakan perangkat lunak sumber terbuka dalam pengembangan suatu produk atau proyek? Pada dasarnya, itu tergantung pada lisensi perangkat lunak yang digunakan dan lisensi yang dimaksudkan untuk produk akhir. Lisensi yang berbeda juga penting ketika Anda ingin memublikasikan kode Anda sendiri sebagai sumber terbuka dan Anda memutuskan lisensi mana yang harus Anda gunakan.

Copyleft

Copyleft yang kuat vs copyleft yang lemah

Salah satu konsep yang cukup menarik tentang lisensi open source adalah apa yang biasa disebut copyleft, kebalikan dari hak cipta. Jika hak cipta digunakan untuk melindungi kekayaan intelektual (termasuk perangkat lunak) agar tidak disalin atau didistribusikan, hak cipta digunakan untuk memastikan bahwa kekayaan intelektual dan perangkat lunak sumber terbuka dapat disalin atau didistribusikan sebagai sumber terbuka.

Menurut kekuatannya, ada dua jenis copyleft:

  • Copyleft kuat: ketika karya yang berasal dari karya berlisensi strong-copyleft lainnya, atau terkait dengan karya ini, harus terus memiliki lisensi copyleft yang kuat, atau bahkan lisensi yang sama persis. Artinya, karya-karya open-source itu tidak bisa ditutup di masa depan.
  • Copyleft yang lemah: ketika karya menggunakan karya berlisensi copyleft yang lemah, atau ditautkan dengannya, dapat dilisensikan di bawah lisensi lain, bahkan lisensi sumber tertutup. Dalam hal ini, copyleft hanya mempengaruhi karya asli berlisensi copyleft yang lemah.

Ada juga lisensi sumber terbuka tanpa hak cipta: mereka tidak peduli dengan keterbukaan perangkat lunak turunan di masa mendatang.

Permisif

Menurut permisifnya, lisensi juga dapat diklasifikasikan dalam:

  • Lisensi ketat: ketika Anda tidak dapat menggabungkan perangkat lunak berlisensi yang kuat dengan sumber tertutup, atau bahkan dengan perangkat lunak berlisensi yang lebih permisif.
  • Lisensi permisif: ketika produk biasanya dapat dicampur dengan perangkat lunak sumber tertutup, atau perangkat lunak dengan lisensi sumber terbuka sepenuhnya.

Biasanya, lisensi copyleft yang kuat juga ketat, dan lisensi copyleft yang lemah lebih permisif, tetapi tidak harus seperti itu.

Perbedaan Lisensi Sumber Terbuka

Ada banyak lisensi open-source. Inisiatif Sumber Terbuka telah menyetujui lebih dari 80 di antaranya. Beberapa berlebihan dan dapat dianggap setara dengan yang lain. Lainnya khusus untuk kepentingan penerbit perangkat lunak (seperti lisensi NASA), atau untuk lingkungan atau tujuan tertentu (seperti Lisensi Komunitas Pendidikan, atau Lisensi Font Terbuka).

Proliferasi lisensi ini didasarkan pada persyaratan khusus dalam lisensi yang, ditambahkan ke properti sumber terbuka dasar, mengizinkan atau melarang penggunaan lain. Contoh kondisi tambahan ini dapat mencakup:

  • Jenis copyleft: lemah atau kuat atau tidak ada.
  • Jenis permisif: permisif atau ketat.
  • Kewajiban menambahkan pemberitahuan hak cipta dalam kode sumber, atau di antarmuka pengguna.
  • Pemberian paten otomatis kepada penerima lisensi.
  • Mempertimbangkan sebagai pemegang lisensi tidak hanya pihak-pihak kepada siapa perangkat lunak didistribusikan, tetapi juga pengguna perangkat lunak (sehingga orang yang menggunakan layanan di cloud yang menggunakan perangkat lunak sumber terbuka semacam ini harus memiliki pilihan untuk mengunduh kode sumber dari perangkat lunak)

Masalah Pencampuran Kode dengan Lisensi Berbeda

Mencampur kode dengan lisensi yang berbeda dapat menimbulkan tantangan yang menarik

Menurut apa yang telah kami katakan sebelumnya, beberapa lisensi bersifat permisif, memungkinkan pengguna untuk menggabungkan kode dengan kode sumber berlisensi yang berbeda (mungkin dengan ketentuan tambahan). Kasus ini akan memungkinkan untuk mencampur perangkat lunak berlisensi sumber terbuka semacam ini dengan perangkat lunak sumber tertutup. Contoh dari lisensi semacam ini adalah Lisensi MIT.

Yang lain lebih membatasi, sehingga kode sumber hanya dapat digabungkan dengan kode yang dilisensikan dengan cara yang sama, dan hasil akhirnya harus dilisensikan dengan lisensi asli yang sama. Contoh dari lisensi semacam ini adalah General Public License (GPL).

Mungkin Anda ingin menggabungkan kode yang dilisensikan dengan dua lisensi sumber terbuka terbatas yang berbeda. Menggunakan kebebasan sumber terbuka untuk menggunakan perangkat lunak seperti yang Anda inginkan, Anda dapat melakukan ini. Tetapi program akhir tidak dapat didistribusikan kembali, karena harus didistribusikan di bawah dua lisensi yang tidak kompatibel satu sama lain.

Salah satu contoh situasi ini adalah ZFS. ZFS adalah sistem file yang sangat canggih dan inovatif yang disertakan dalam OpenSolaris pada tahun 2005. Ini adalah perangkat lunak sumber terbuka yang dilisensikan di bawah persyaratan Common Development and Distribution License (CDDL). Meskipun merupakan kode sumber terbuka, ia tidak dapat diintegrasikan ke dalam kernel Linux karena kode sumber Linux didistribusikan di bawah persyaratan Lisensi Publik Umum, lisensi sumber terbuka lain yang membatasi. Binari kernel Linux yang dikompilasi dengan dukungan ZFS tidak dapat didistribusikan karena konflik lisensi.

Jenis konflik ini hanya dapat diselesaikan jika semua pemilik salah satu program sumber terbuka setuju untuk mengubah lisensi, atau menambahkan persyaratan pengecualian dalam lisensi perangkat lunak. Sebagai contoh: banyak program berlisensi GPL yang terhubung dengan perpustakaan OpenSSL. Distribusi pustaka OpenSSL dilisensikan yang memerlukan frasa untuk muncul dalam materi iklan dan redistribusi apa pun. Ketentuan tambahan ini tidak kompatibel dengan GPL, dan karena itu pengembang produk GPL yang menggunakan OpenSSL telah menyertakan pengecualian dalam lisensi mereka yang secara khusus mengizinkan penautan dengan OpenSSL.

Fitur Diferensial Lisensi Open-Source

Sekarang saya akan mencoba menganalisis lisensi open-source yang paling populer, mengomentari fitur diferensial mereka, dengan sedikit panduan tentang kapan harus menggunakannya atau tidak. Saya telah mengurutkannya dari yang lebih sering digunakan, menurut Basis Pengetahuan Bebek Hitam.

Lisensi Publik Umum GNU (GPL)

GPL adalah lisensi sumber terbuka yang paling populer. Itu dibuat oleh FSF sebagai lisensi untuk proyek GNU, dan juga lisensi kernel Linux.

Karakteristik diferensialnya:

  • Copyleft yang kuat.
  • Lisensi yang sangat ketat.
  • Biasanya disebut lisensi 'viral': jika Anda menautkan kode Anda ke bagian lain dari kode yang dilisensikan di bawah GPL dan ingin mendistribusikan hasilnya, seluruh produk harus berlisensi GPL.
  • Ini juga merupakan lisensi 'merangkul': jika Anda mengembangkan perangkat lunak dan ingin melisensikannya di bawah GPL, Anda dapat menautkannya atau menyertakan perangkat lunak sumber terbuka lainnya selama perangkat lunak ini memiliki lisensi yang kompatibel dengan GPL. Itu tidak memerlukan kewajiban apa pun yang tidak diwajibkan oleh GPL.

Biasanya, teks lisensi yang digunakan menyertakan teks yang mengatakan bahwa perangkat lunak didistribusikan di bawah ketentuan GPL versi N (atau versi yang lebih baru).

Saat ini terdapat dua versi lisensi GPL yang digunakan: v2 dan v3. Versi 3 dirilis pada tahun 2007 untuk mengatasi beberapa masalah yang muncul sejak rilis versi 2 pada tahun 1991.

GPL v3 mencakup beberapa klausa dan persyaratan tambahan, menangani peraturan kompatibilitas dengan lisensi sumber terbuka lainnya, mewajibkan lisensi paten, menentukan kondisi untuk menggunakan perangkat lunak berlisensi GPL sebagai firmware dalam peralatan, dan mempertimbangkan konsep sebagai manajemen hak digital.

Lisensi MIT

Lisensi open-source biasanya dikenal sebagai Lisensi MIT, alias lisensi X11, adalah lisensi non-copyleft yang sangat permisif yang memungkinkan setiap orang pada dasarnya menggunakan kode yang dilisensikan untuk apa pun yang Anda inginkan selama Anda menyimpan pesan hak cipta, dan tahu itu perangkat lunak datang tanpa jaminan apapun.

Lisensi ini sangat populer, dan digunakan oleh beberapa proyek seperti X Window System, Ruby on Rails, jQuery atau Node.js.

Ini kompatibel dengan GPL, sehingga Anda dapat mencampur kode berlisensi MIT ke dalam perangkat lunak GPL.

Lisensi Apache 2.0

Lisensi Apache dibuat oleh Apache Software Foundation (ASF) sebagai lisensi untuk Apache HTTP Server-nya.

Sama seperti Lisensi MIT, ini adalah lisensi non-copyleft yang sangat permisif yang memungkinkan penggunaan perangkat lunak untuk tujuan apa pun, mendistribusikannya, memodifikasinya, dan mendistribusikan karya turunannya tanpa memperhatikan royalti. Perbedaan utamanya dibandingkan dengan Lisensi MIT adalah:

  • Dengan menggunakan Lisensi Apache, pembuat perangkat lunak memberikan lisensi paten kepada pengguna atau distributor kode mana pun. Lisensi paten ini berlaku untuk paten apa pun yang, dapat dilisensikan oleh pembuat perangkat lunak mana pun, akan dilanggar oleh bagian kode yang telah mereka buat.
  • Lisensi Apache mengharuskan bagian yang tidak dimodifikasi dalam karya turunan mempertahankan Lisensi.
  • Dalam setiap file berlisensi, pemberitahuan hak cipta, paten, merek dagang, atau atribusi asli harus dipertahankan.
  • Dalam setiap perubahan file yang dilisensikan, harus ada pemberitahuan yang menyatakan bahwa telah dilakukan perubahan pada file tersebut.
  • Jika perangkat lunak berlisensi Apache menyertakan file PEMBERITAHUAN, file ini dan isinya harus disimpan di semua karya turunan.
  • Jika seseorang dengan sengaja mengirimkan kontribusi untuk perangkat lunak berlisensi Apache kepada pembuatnya, kontribusi ini dapat secara otomatis digunakan di bawah Lisensi Apache.

Lisensi ini menarik karena adanya lisensi paten otomatis, dan klausul tentang penyerahan kontribusi.

Ini kompatibel dengan GPL, sehingga Anda dapat mencampur kode berlisensi Apache ke dalam perangkat lunak GPL.

Lisensi BSD

Ada 3 lisensi BSD yang berbeda. Semuanya adalah lisensi yang sangat permisif tanpa copyleft.

Lisensi BSD 2-klausa (atau Lisensi BSD Sederhana) benar-benar setara dengan Lisensi MIT yang dijelaskan sebelumnya.

Lisensi BSD 3-klausa (atau Lisensi BSD Baru) menambahkan satu klausa, yang menetapkan bahwa baik nama pemegang hak cipta maupun nama kontributornya tidak boleh digunakan untuk mendukung atau mempromosikan produk yang berasal dari perangkat lunak tanpa izin tertulis sebelumnya yang spesifik. Versi ini kompatibel dengan GPL yang memungkinkan Anda untuk mencampur kode berlisensi 3-klausa-BSD ke dalam perangkat lunak GPL.

Lisensi BSD 4-klausul (atau Lisensi BSD Asli) menambahkan klausa lain, yang menetapkan bahwa semua materi iklan yang menyebutkan fitur atau penggunaan perangkat lunak harus menampilkan pengakuan yang mengatakan bahwa produk tersebut mencakup perangkat lunak yang dikembangkan oleh pemegang hak cipta. Lisensi BSD 4-klausa ini tidak kompatibel dengan GPL. Kode dengan lisensi ini tidak dapat dilisensikan kembali sesuai dengan ketentuan GPL, karena klausa keempat menambahkan persyaratan yang tidak diperlukan dalam GPL.

Lisensi Publik Umum GNU (LGPL)

LGPL dibuat oleh FSF sebagai modifikasi dari GPL dengan copyleft yang lebih lemah, memungkinkan menghubungkan perangkat lunak berlisensi LGPL dengan perangkat lunak lain. Pada mulanya LGPL adalah singkatan dari "Library General Public License", tetapi kemudian menjadi "Lesser General Public License" yang mewakili pendapat FSF yang mengatakan bahwa semua perangkat lunak harus gratis, dan karena itu LGPL tidak boleh umumnya digunakan.

Anda dapat menautkan kode sumber tertutup ke perpustakaan atau perangkat lunak LGPL dan mendistribusikan hasil akhir selama:

  • Anda memberikan kode sumber dari bagian LGPLed, dengan semua modifikasi yang Anda buat padanya.
  • Setiap pengguna dengan pengetahuan yang cukup dapat mengganti bagian program LGPL dengan versi yang dimodifikasi. Ini dapat dilakukan dengan mendistribusikan bagian LGPL dari program sebagai pustaka dinamis (DLL di Windows, .so di Linux/Unix), atau memberikan kode objek dari bagian program yang tidak ber-LGPL.

LGPL v3 kompatibel dengan GPLv3, sehingga Anda dapat memasukkan kode LGPLv3 ke dalam perangkat lunak GPL.

Lisensi Artistik

Lisensi Artistik, dalam versi 2.0 saat ini, adalah lisensi open-source permisif tanpa hak cipta yang serupa dengan lisensi MIT.

Perbedaan utama antara lisensi MIT dan Lisensi Artistik adalah bahwa yang terakhir mensyaratkan bahwa setiap modifikasi yang dibuat pada kode harus dinyatakan dengan jelas.

Lisensi ini hampir secara eksklusif digunakan di komunitas Perl.

Lisensi Artistik 2.0 saat ini kompatibel dengan GPL: Anda dapat mencampur kode Berlisensi Artistik ke dalam perangkat lunak GPL.

Lisensi Publik Microsoft (MS-PL)

Lisensi Publik Microsoft dibuat pada tahun 2008 oleh perusahaan ini sebagai salah satu lisensi sumber terbuka yang dibuat oleh Inisiatif Sumber Bersama mereka.

Ini adalah lisensi copyleft yang ketat dan lemah: memungkinkan pembuatan dan distribusi program sumber tertutup dengan kode MS-PL, tetapi mewajibkan untuk menggunakan MS-PL sebagai lisensi dari karya turunan jika didistribusikan dalam kode sumber.

Saya pribadi berpikir bahwa lisensi ini agak menyimpang dan bertentangan dengan semangat open-source, memungkinkan penutupan kode sehingga pemegang hak cipta tidak peduli tentang apa yang dapat Anda lakukan dengan perangkat lunak, tetapi Anda tidak bisa bagikan kode untuk dicampur dengan kode sumber copyleft lainnya. Jadi dengan cara lain, pemegang hak cipta benar-benar peduli dengan apa yang dapat Anda lakukan, dan dia tidak ingin Anda menggunakan kode tersebut untuk alasan seperti meningkatkan Linux.

MS-PL tidak kompatibel dengan GPL.

Lisensi Publik Eclipse (EPL)

Lisensi Publik Eclipse adalah lisensi yang dibuat oleh Eclipse Foundation untuk Lingkungan Pengembangan Terpadu mereka. Ini adalah lisensi hak cipta yang terbatas dan lemah, mirip dalam banyak hal dengan LGPL. Ini juga mencakup klausul untuk pemberian lisensi paten otomatis.

EPL tidak kompatibel dengan GPL.

Lisensi Publik Mozilla (MPL)

Mozilla Public License versi 2.0 adalah copyleft lemah, lisensi permisif yang dibuat oleh Mozilla Foundation untuk produk-produknya.

Kami dapat menganggap lisensi ini mirip dengan LGPL, tetapi dengan perbedaan utama bahwa MPL juga memungkinkan tautan statis potongan kode MPL ke perangkat lunak sumber tertutup.

MPL, dalam versi 2.0 saat ini kompatibel dengan GPL. Ini tidak berlaku untuk versi MPL sebelumnya.

Lisensi Pengembangan dan Distribusi Umum (CDDL)

CDDL adalah copyleft lemah, lisensi permisif yang dibuat oleh Sun (sekarang Oracle) berdasarkan MPL versi 1.1. Pada dasarnya, ia memiliki sifat yang sama dengan MPL. Persyaratannya diklarifikasi, tetapi tidak berubah secara substansial.

CDDL adalah lisensi open-source yang dipilih oleh Sun (sekarang Oracle) untuk banyak produknya, seperti OpenSolaris atau NetBeans, antara lain.

Karena lisensi ini didasarkan pada MPLv1.1, lisensi ini tidak kompatibel dengan GPL, jadi Anda tidak dapat mencampur sumber berlisensi CDDL ke dalam perangkat lunak berlisensi GPL. Banyak orang mengatakan bahwa ini disengaja, sehingga kode sumber OpenSolaris tidak dapat dimasukkan ke dalam kernel Linux.

Lisensi Publik Umum GNU Affero (AGPL)

AGPL adalah versi GPL dengan copyleft yang lebih kuat dan lebih ketat. Ini mewajibkan untuk memberikan kode sumber aplikasi tidak hanya kepada orang-orang yang menerima salinan perangkat lunak, tetapi juga kepada orang-orang yang menggunakan perangkat lunak ini melalui jaringan komputer.

Lisensi ini dibuat oleh FSF untuk memberi pengembang sarana untuk menghindari penutupan praktis perangkat lunak sumber terbuka ketika dijalankan di server jaringan atau di cloud, karena GPL tidak dapat memaksa penyedia layanan untuk memberikan kode sumber kepada pengguna . Dalam hal ini perangkat lunak tidak didistribusikan.

AGPLv3 kompatibel dengan GPL3. Anda dapat memasukkan kode AGPLv3 ke dalam kode GPLv3, selama hasil akhirnya dilisensikan di bawah AGPLv3.

Lisensi ISC

Lisensi ISC adalah lisensi perangkat lunak bebas permisif yang ditulis oleh Konsorsium Perangkat Lunak Internet (ISC). Ini secara fungsional setara dengan 2-klausa BSD dan lisensi MIT, setelah menghapus beberapa bahasa yang dianggap tidak perlu.

Awalnya digunakan untuk rilis perangkat lunak ISC sendiri, sejak itu menjadi lisensi pilihan OpenBSD (mulai Juni 2003), di antara proyek-proyek lainnya.

Ini kompatibel dengan GPL: Anda dapat mencampur kode berlisensi ISC ke dalam perangkat lunak GPL.

Lisensi Timbal Balik Microsoft (MS-RL)

Lisensi Timbal Balik Microsoft dibuat pada tahun 2008 oleh perusahaan ini sebagai salah satu lisensi sumber terbuka yang dibuat oleh Inisiatif Sumber Bersama mereka.

Ini mirip dengan MS-PL yang dijelaskan sebelumnya, tetapi memiliki copyleft yang sedikit lebih kuat, menyerupai kondisi LGPL, CDDL, dan EPL. Ini mengharuskan jika Anda mencampur kode Anda dengan kode sumber berlisensi MS-RL dan ingin mendistribusikan hasil akhir, setidaknya bagian asli berlisensi MS-RL harus terus dilisensikan dengan lisensi ini.

Itu tidak kompatibel dengan GPL.

Domain Publik (CC0)

Menurut Wikipedia, "karya dalam domain publik adalah mereka yang hak kekayaan intelektualnya telah kedaluwarsa, telah dicabut, atau tidak dapat diterapkan". Mendedikasikan sebuah karya ke domain publik, pencipta melepaskan semua haknya atas karya tersebut di bawah undang-undang hak cipta.

Ada beberapa proyek perangkat lunak di bawah Domain Publik, misalnya SQLite, perpustakaan yang mengimplementasikan mesin basis data SQL yang dapat disematkan dan sederhana yang disertakan dalam beberapa proyek lain, seperti proyek Mozilla, Android, dll.

Ada banyak cara untuk mendedikasikan perangkat lunak ke domain publik. Creative Commons telah menciptakan Dedikasi Domain Publik CC0, cara universal untuk memberikan sebuah karya ke domain publik. FSF merekomendasikan penggunaan teks ini untuk mendedikasikan perangkat lunak ke domain publik.

Karya di bawah domain publik kompatibel dengan lisensi sumber terbuka atau tertutup, dan dapat dicampur ke dalam perangkat lunak lain.

Beberapa Lisensi

Ada beberapa perangkat lunak sumber terbuka yang memiliki lisensi ganda atau bahkan tiga kali lipat. Ini berarti bahwa seseorang yang menerima perangkat lunak multi-lisensi ini dapat memilih di bawah lisensi mana dia ingin mendistribusikannya. Karena setiap lisensi memberikan izin yang berbeda dan membebankan kewajiban yang berbeda, pilihan harus dibuat untuk memilih lisensi yang paling memenuhi kebutuhan.

Ini adalah kasus biasa untuk beberapa perpustakaan. Misalnya, NSS adalah perpustakaan yang dibuat oleh Mozilla yang mengimplementasikan dukungan SSL/TLS, di antara fitur terkait keamanan lainnya. Ini berlisensi tiga kali lipat di bawah lisensi MPL, GPL, dan LGPL.

Silakan, Pilih Lisensi

Banyak orang mempublikasikan kode di platform sebagai GitHub tanpa lisensi tertulis. Tidak ada yang harus menggunakan kode itu. Kami tidak tahu izin apa yang kami miliki untuk menggunakannya. Jika Anda menggunakannya, Anda bisa dituntut untuk itu. Ini seperti jika orang-orang ini menggoda kita, mengatakan “Hei, lihat apa yang saya buat! Keren, bukan? Tapi Anda tidak bisa menggunakannya, saya hanya ingin menunjukkannya kepada Anda!”.

Lisensi bukanlah kemewahan, itu diperlukan

Tolong jangan menjadi salah satu dari mereka. Jika Anda mengunggah kode Anda ke GitHub atau situs publik serupa, izinkan orang lain untuk menggunakannya dan menyempurnakannya. Jika Anda tidak ingin banyak berpikir, ini adalah rekomendasi saya:

  • Jika Anda ingin membuatnya tetap sederhana dan permisif, memungkinkan semua orang melakukan apa yang mereka inginkan dengan kode Anda selama mereka memberikan atribusi kembali kepada Anda dan tidak meminta pertanggungjawaban Anda, gunakan Lisensi MIT.
  • Jika Anda ingin membuatnya tetap permisif, memungkinkan setiap orang untuk melakukan apa yang mereka inginkan dengan kode Anda tetapi dengan bijak menyebutkan hak-hak di bawah undang-undang hak cipta dan memberikan hak-hak itu, bersama dengan memberikan hibah eksplisit hak paten dari kontributor kepada pengguna, gunakan Lisensi Apache 2.0 .
  • Jika Anda peduli tentang berbagi modifikasi dan Anda tidak ingin kode Anda digunakan dalam pengembangan tertutup (baik dalam produk perangkat lunak tertutup maupun dalam peralatan perangkat keras tertutup), gunakan GPL v3.

    • Jika Anda tidak peduli dengan kemungkinan perangkat lunak Anda digunakan dalam peralatan tertutup, gunakan GPL v2. Tapi tolong dengan kalimat “atau versi yang lebih baru”, jadi kode Anda juga bisa digunakan di proyek GPLv3.
    • Jika Anda tidak peduli dengan kemungkinan perangkat lunak Anda digunakan dalam perangkat lunak tertutup, selama perangkat lunak Anda atau bagian yang menggunakannya terus menjadi sumber terbuka dengan persyaratan yang sama, gunakan LGPL v3.
    • Jika Anda ingin semua orang yang menggunakan perangkat lunak Anda melalui jaringan memiliki hak untuk mendapatkan kode sumbernya, gunakan AGPL v3.

Setelah semua ini, Anda mungkin lelah dengan semua omong kosong kuasi-hukum yang hampir tidak masuk akal ini. Tapi tahukah Anda apa? Ini dibutuhkan. Karena tanpa lisensi, Anda tidak memiliki hak untuk menggunakan atau mendistribusikan kode apa pun.