Memilih lisensi untuk proyek sumber terbuka

30

Saya telah melakukan beberapa proyek open source, dan saya berencana untuk melakukan lebih banyak di masa depan. Sejauh ini, saya telah merilis semua kode saya di bawah GPL, tetapi saya telah membaca beberapa artikel yang mengklaim GPL terlalu ketat untuk kode apa pun untuk digunakan dalam lingkungan perusahaan. Ini, konon, mengurangi kontribusi.

Inilah yang ingin saya capai:

Untuk aplikasi lengkap :

  • tidak ada penggunaan komersial dengan pengecualian dukungan penjualan untuk aplikasi (yaitu aplikasi tidak dapat dijual, tetapi segala sesuatu di sekitarnya dapat)

Untuk perpustakaan (komponen, plugin, ...):

  • dapat dimasukkan ke dalam proyek komersial tanpa modifikasi
  • setiap modifikasi perpustakaan / komponen harus bersumber terbuka (berkontribusi kembali) - sisa proyek, komersial atau tidak, tidak terpengaruh

Untuk aplikasi, GPL sepertinya masih pilihan yang logis. Untuk perpustakaan, pemahaman primitif saya tentang lisensi membuat saya berpikir bahwa LGPL adalah pasangan yang baik, tapi, saya tidak yakin. Saya telah melihat lisensi MIT, dan itu tampaknya terlalu permisif.

Sebagian besar waktu, saya ingin orang menggunakan kode saya di mana saja mereka mau, selama ada perbaikan yang disumbangkan kembali.

Ini membawa saya ke pertanyaan saya: apakah LGPL merupakan pilihan logis untuk pustaka sumber terbuka, komponen, plugin, dll? Apakah ada alternatif yang lebih baik? Apakah GPL pilihan yang baik untuk aplikasi saya atau ada sesuatu yang lebih baik?

Memperbarui:

Bagi mereka yang tertarik dengan keputusan akhir saya, saya telah memutuskan untuk merilis perpustakaan saya di bawah skema multi-lisensi, MPL, LGPL dan GPL. Ini memungkinkan setiap orang untuk menggunakan kode saya tanpa kewajiban, kecuali mereka memodifikasinya di bawah MPL, dalam hal ini harus dikembalikan.

Ini berarti kode dapat digunakan oleh FSF dan perangkat lunak berpemilik, tetapi eksploitasi komersial "buruk" dicegah (atau jadi saya ingin berpikir).

dr Hannibal Lecter
sumber
1
Apakah maksud Anda tidak ada penggunaan komersial atau tidak ada distribusi komersial / dijual kembali?
MIA
Mungkin distribusi / dijual kembali. Saya tidak keberatan jika orang menggunakan barang-barang saya secara komersial, tapi saya kira itu akan tergantung pada proyek. Meskipun saya tidak melihat cara untuk menggunakan apa pun yang saya tulis sejauh ini untuk tujuan komersial ..
dr Hannibal Lecter
4
Penting untuk dicatat bahwa (bertentangan dengan beberapa jawaban), FAQ Creative Commons secara eksplisit menyatakan lisensi CC tidak boleh digunakan untuk perangkat lunak. (The cc0 Domain Publik Dedikasi yang disetujui untuk digunakan dengan perangkat lunak tetapi tidak akan cocok untuk tujuan yang dinyatakan dalam pertanyaan awal.) Sebaliknya CC merekomendasikan memilih lisensi yang disetujui oleh Free Software Foundation atau Initiative Open Source.
Peter Briggs
1
Dugaan saya adalah, kecuali Anda telah menemukan sesuatu yang benar-benar unik dan berguna, peluang "komersialisasi yang buruk" sangat kecil sehingga tidak sebanding dengan waktu yang dihabiskan untuk mencoba mencegahnya.
Bryan Oakley
1
Jika seseorang tertarik, ada proposal untuk situs tanya jawab terkait lisensi sumber terbuka di area51: area51.stackexchange.com/proposals/58715/…
Kurt Pattyn

Jawaban:

8

Bagi saya sepertinya GPL dan LGPL adalah apa yang Anda inginkan untuk proyek Anda.

alternatif
sumber
Jadi Anda akan mengatakan bahwa LGPL adalah pilihan yang baik untuk persyaratan saya? Saya bukan pengacara jadi saya hanya memeriksa :)
dr Hannibal Lecter
1
Saya juga bukan pengacara, tapi saya pikir LGPL adalah persis apa yang Anda inginkan untuk perpustakaan, dan GPL untuk aplikasi lengkap.
alternatif
Adalah legal untuk menjual aplikasi GPL. Anda (pada dasarnya) baru saja memasukkan kode sumber dan memberikan pelanggan Anda hak GPL yang sama dengan yang Anda miliki.
bdsl
8
  • tidak ada penggunaan komersial dengan pengecualian dukungan penjualan untuk aplikasi (yaitu aplikasi tidak dapat dijual, tetapi segala sesuatu di sekitarnya dapat)

Berhati-hatilah bahwa GPL tidak melarang penjualan aplikasi, dan melarang ini akan membuat lisensi Anda tidak bebas, seperti yang diamati oleh Huperniketes. Satu-satunya hal yang dipastikan GPL adalah perusahaan yang menjual perangkat lunak itu juga harus menyediakan basis kode secara gratis. Tetapi mereka tidak harus menyediakan paket perangkat lunak apa adanya secara gratis. Itu perbedaan yang cukup besar, karena kode sumber suatu perangkat lunak bukanlah produk yang siap digunakan.

Konrad Rudolph
sumber
Saya sebenarnya setuju dengan itu, karena kode sumbernya akan mengambang di suatu tempat, dan seseorang akan mendapat manfaat darinya. ;)
dr Hannibal Lecter
Saya benar-benar tidak mengerti. Maksud saya, jika saya bisa mendapatkan sumbernya, saya bisa mengkompilasi, dan tidak ada yang melarang saya menggunakannya, kan?
Camilo Martin
@Amilo: apa yang tidak Anda dapatkan?
Konrad Rudolph
Bagian 4 dan 6b dari GPL versi 3 membahas apa yang Anda katakan @KonradRudolph
Rudolf Olah
Mereka tidak harus memberikan kode sumber secara gratis jika mereka memasukkannya dalam paket ketika mereka menjual aplikasi.
bdsl
5

Jika Anda ingin mencegah penggunaan komersial perangkat lunak Anda, GPL tidak akan memotongnya. GPL cenderung dihindari oleh perusahaan komersial dalam produk yang mereka jual karena persyaratan untuk mendistribusikan kembali sumber yang dimodifikasi, tetapi mereka bebas untuk menggunakan perangkat lunak GPL secara internal. Itu tidak berarti bisnis tidak diatur untuk menjual perangkat lunak GPL, atau membangun perangkat keras di sekitar perangkat lunak GPL (LinkSys, misalnya), tetapi sebagian besar bisnis lebih memilih untuk tidak membagikan produk mereka dengan pesaing.

Saya tidak tahu apakah lisensi Creative Commons Atribusi Non-Komersial Tanpa Derivatif adalah apa yang Anda inginkan (satu-satunya batasan yang Anda sebutkan adalah penggunaan komersial ), tetapi jika tidak, Anda mungkin perlu memiliki lisensi yang disiapkan untuk Anda oleh seorang pengacara yang berisi bahasa yang memberikan hak yang Anda inginkan untuk dimiliki oleh pemegang lisensi.

Juga, begitu Anda mulai memasukkan pembatasan seperti penggunaan non-komersial dan non-modifikasi , Anda mungkin tidak lagi memenuhi kriteria untuk lisensi open source seperti yang didefinisikan oleh Open Source Initiative . Situs mereka juga mencantumkan lisensi OSS lain yang disetujui . Mungkin sudah ada satu yang cocok dengan tujuan Anda.

Dan mendefinisikan tujuan Anda secara memadai akan menjadi kunci sebelum memilih hak dan batasan yang Anda tempatkan pada pengguna perangkat lunak Anda. Apakah popularitas lebih penting daripada kemampuan modifikasi atau distribusi atau penggunaan atau ...? Pikirkan tujuan Anda dalam mengeluarkan kode untuk memulai, dan dengan semangat apa Anda melakukan itu atau ketentuan yang Anda berikan akses mungkin memiliki efek sebaliknya.

Huperniket
sumber
Bisnis yang menggunakan perangkat lunak GPL secara internal bukan penggunaan komersial perangkat lunak ...
alternatif
3
@ mathepic, apakah kata "bisnis" dan "menggunakan" tidak membuat Anda mirip dengan "penggunaan komersial"? definitions.uslegal.com/c/commercial
Huperniketes
@Huperniketes Tidak, mereka tidak. Bisnis yang menggunakan perangkat lunak (mis. Browser basis data) persis sama dengan orang yang menggunakan perangkat lunak itu. Tidak ada perbedaan, selama proyek tidak dimasukkan ke dalam produk akhir bisnis.
alternatif
3
@ mathepic, Anda salah. Bisnis adalah masalah komersial - ada untuk mencari laba. Segala aktivitas yang dilakukan bersifat komersial. Dan menyiapkan server web yang menjalankan Apache untuk meng-host manual pengguna adalah penggunaan komersial Apache. Kata operatif, dalam arti hukum, adalah penggunaan , bukan distribusi , bukan penjualan atau penjualan kembali .
Huperniketes
2
@dr, ini bukan pelanggaran karena lisensi Apache tidak melarang penggunaan komersial. apache.org/foundation/licence-FAQ.html#WhatDoesItMEAN "Ini memungkinkan Anda untuk: mengunduh dan menggunakan perangkat lunak Apache secara bebas, seluruhnya atau sebagian, untuk keperluan pribadi, internal perusahaan, atau komersial;"
Huperniketes
4

Jika yang Anda pedulikan adalah memastikan kode Anda tetap bebas, mendapatkan perbaikan kembali, dan memastikan siapa pun dapat menggunakannya, maka MPL adalah lisensi yang tepat untuk Anda. Ini gratis untuk digunakan dalam produk apa pun, termasuk perangkat lunak komersial, tanpa batasan aneh, penghubung misterius seperti yang dikenakan LGPL. Itu mengharuskan siapa pun yang menggunakan kode Anda dan memodifikasinya merilis perubahan di bawah MPL, tetapi tidak menyentuh atau membatasi salah satu dari sisa kode dalam proyek.

Mason Wheeler
sumber
Saya tidak akrab dengan MPL sama sekali, tetapi kedengarannya sangat menarik. Sejauh ini, saya hanya merilis kode PHP jadi menghubungkan batasan seharusnya tidak menjadi masalah, tapi saya berencana merilis beberapa kode Mono juga, MPL mungkin terbukti sangat berguna.
dr Hannibal Lecter
4

Jika Anda menulis semua kode Anda (yaitu, jika Anda memiliki kode Anda), Anda juga dapat melisensikannya dua kali lipat : mempublikasikan kode Anda dalam misalnya GPLv3 dan menawarkan untuk menjualnya (dengan lisensi lain) kepada mereka yang ingin menggunakannya dengan tidak terlalu ketat.

(ini khususnya relevan untuk perpustakaan, karena perpustakaan GPL-ed hanya dapat digunakan pada perangkat lunak GPL).

Berhati-hatilah dengan kontribusi eksternal atau tambalan yang Anda masukkan ke dalam kode Anda (karena Anda tidak memilikinya).

Basile Starynkevitch
sumber
1

Apakah Anda benar-benar dapat mengajukan MPL atau hanya GPL tergantung pada satu perbedaan kritis:

"Hak di bawah ini" termasuk hak yang diberikan kepada penerima untuk menautkan "Kode Tertutup" MPL dengan kode non-MPL pribadi untuk membentuk "Pekerjaan Lebih Besar" (MPL 3,7 Pekerjaan Lebih Besar). GPL tidak memberikan hak apa pun kepada penerima. Oleh karena itu, penerima tidak dapat mengubah ketentuan lisensi untuk menerapkan GPL, bukan MPL.

Lihat ini .

Apa artinya ini bagi Anda adalah bahwa jika Anda menggunakan komponen apa pun yang itu sendiri adalah GPL, Anda (mungkin) tidak dapat merilis kode (yang menggunakan ini) di bawah MPL; MPL akan secara salah mencoba memperbolehkan mendistribusikan kembali kode GPL di bawah MPL yang tidak patut. Ini bagus, jika dependensi Anda sesuai dengan lisensi MIT atau Apache.

Secara umum, jika Anda tidak melakukan yang lebih baik dengan memilih MPL daripada GPL saja kecuali Anda sudah menggunakan barang MPL. GPL juga akan memastikan bahwa kontribusi akan dipublikasikan juga.

Hanya ada perubahan penting yang diberikan MPL adalah perlindungan terhadap pelanggaran paten yang tidak disengaja. Seperti kata lisensi:

Tidaklah boleh bagi seseorang untuk membuat Modifikasi yang dia miliki patennya, membuat Modifikasi tersedia secara gratis seperti yang disyaratkan dalam Lisensi, dan kemudian kembali dan mencoba membebankan biaya pada semua orang untuk hak paten.

MPL dan GPL tidak cukup kompatibel.

Anda dapat melihat di sini: MIT vs. BSD vs. Lisensi Ganda untuk diskusi tentang implikasi lisensi ganda.

Dipan Mehta
sumber
Ketidakcocokan GPL harus diselesaikan dengan MPL v2.0. (Saya kira posting ini dibuat sebelum v2.0 dirilis). Lihat pernyataan GNU pada MPLv2.0
mucaho
0

Sepertinya tidak ada yang membicarakannya, tetapi Anda mungkin mempertimbangkan lisensi Creative Commons. Mereka memiliki serangkaian lisensi (atau yang Anda sesuaikan dengan kebutuhan Anda, melihat dengan cara yang berbeda).

Frank Shearar
sumber