Cara menggunakan Lisensi Open Source dan apa yang Anda rekomendasikan kepada saya

8

Saya memiliki kode yang ingin saya bagikan, tetapi saya ingin menerbitkannya menggunakan lisensi open source. Tapi saya tidak tahu bagaimana Anda harus menggunakan lisensi itu.

Bagaimana Anda harus mengaktifkan lisensi open source? Cukup sertakan teks lisensi di semua file? Apa lagi yang harus saya lakukan? Apakah saya perlu membeli yang benar? Sertakan readme.txt di semua direktori? Maksud saya, apa yang harus saya lakukan jika saya ingin kode saya dilindungi oleh uji lisensi?

Pertanyaan kedua adalah apa itu lisensi yang lebih baik untuk kondisi ini:

  • Saya tidak peduli apa yang orang lakukan dengan kode saya, tujuan pendidikan, untuk menghasilkan uang, saya tidak keberatan apa pun yang ingin mereka lakukan dengannya.
  • Tapi saya ingin orang tidak menghapus nama saya dari kode, dan jika mereka menggunakan kode saya memaksa mereka untuk menyebutkan saya. Jika mereka mengubah kode saya dan seseorang meminta modifikasi itu, mereka memberikan kode dengan modifikasi.
  • Tetapi saya tidak ingin memaksa orang untuk mempublikasikan kode aplikasi mereka, bahkan jika mereka menggunakan kode saya.

Apa lisensi terbaik untuk tujuan itu?

Pedro Ballesteros
sumber
Saya pikir Anda perlu lebih jelas tentang apa yang Anda inginkan. "Jika mereka mengubah kode Anda dan seseorang meminta modifikasi itu" - maksud Anda seperti di aplikasi web, atau di aplikasi desktop, atau keduanya? Ini sebenarnya relevan dengan lisensi, cukup mengejutkan!
Robin Green
terima kasih untuk intinya, saya baru saja mengklarifikasi dalam komentar kemudian, saya hanya ingin bahwa jika seseorang menggunakan kode saya mereka harus mengatakan di mana saja (tentang, web, dll) bahwa kode itu milik saya. Tetapi saya tidak keberatan jika mereka tidak ingin mengubah proyek mereka dalam proyek open source hanya karena menggunakan kode saya.
Saya pikir itu jelas, Anda membuat hadiah (kode), dan orang-orang dapat menggunakan hadiah itu sebagai sejenisnya, mereka dapat menggunakannya bahkan untuk menghasilkan keuntungan, dan Anda tidak keberatan. Tapi Anda ingin orang tahu bahwa mereka menggunakan kode Anda, yaitu.
Saya perhatikan banyak orang di sini menyarankan penggunaan 4-klausa BSD. Secara teknis, lisensi itu bahkan bukan sumber terbuka menurut OSI. Saya tidak setuju dengan pandangan proyek GNU tentang banyak hal, tetapi saya pikir makalah mereka tentang 4-klausa BSD layak dibaca. tl; dr - Ini mengarah ke ribuan kalimat atribusi pada iklan untuk proyek-proyek besar, seperti distro Linux atau BSD.
Nathan2055

Jawaban:

13

Berikut ini panduan praktis:

http://i.stack.imgur.com/GvOBw.png

Referensi untuk versi PDF dan Graffle dari diagram alur di atas tersedia di blog Karl Fogel .

RHPT
sumber
1
[-1]. Sementara saya sepenuhnya memahami, bahwa itu seharusnya dianggap lucu dan informatif, saya juga percaya, bahwa itu tidak boleh mengandung cacat, yang dapat menyesatkan seseorang dalam hal yang rumit seperti perizinan; tapi itu memang mengandung yang. [Lihat komentar berikutnya]
Dmitry Alexandrov
1
① Grafik berjudul 'Lisensi Open Source Yang Mana?' dan lisensi BSD 4-klausa yang terkenal adalah salah satu opsi. Tetapi perangkat lunak di bawah 4-BSDL tidak dianggap sebagai 'open source' oleh OSI. Meskipun demikian disebut 'bebas' untuk FSF, tetapi masih sangat tidak dianjurkan .
Dmitry Alexandrov
1
② 'Creative Commons' sama sekali bukan lisensi, itu yayasan, yang menerbitkan banyak lisensi yang berbeda secara fundamental, yang bervariasi dari pengabdian domain publik cc0 untuk 'lisensi iklan gratis' CC-BY-NC-ND, kebanyakan dari mereka adalah tidak bebas.
Dmitry Alexandrov
③ Sementara proposisi latar belakang bahwa ketika Anda menulis sesuatu untuk infrastruktur (daripada program mandiri) Anda harus menerapkan lisensi yang diterima di sana, tentu saja, benar, perangkat lunak Perl dan Mozilla dan tidak berlisensi hanya di bawah Artistik dan MPL masing-masing. Perl berada di bawah Artisic atau GPLv1 +, perangkat lunak Mozilla berada di bawah MPL atau GPLv2 atau LGPLv2.1, di mana 'atau' berarti pemisahan batasan; jadi dengan memilih hanya satu lisensi dari daftar Anda gagal kompatibilitas.
Dmitry Alexandrov
5

Gunakan lisensi BSD 4 klausa asli .

  • Saya tidak peduli apa yang orang lakukan dengan kode saya, tujuan pendidikan, untuk menghasilkan uang, saya tidak keberatan apa pun yang ingin mereka lakukan dengannya.

  • Tetapi saya tidak ingin memaksa orang untuk mempublikasikan kode aplikasi mereka, bahkan jika mereka menggunakan kode saya.

Seperti kebanyakan lisensi sumber terbuka, ini memungkinkan pengguna untuk memodifikasi dan mendistribusikan ulang sumber. Ini memungkinkan mereka untuk menggunakannya untuk tujuan apa pun.

  • Tapi saya ingin orang tidak menghapus nama saya dari kode, dan jika mereka menggunakan kode saya memaksa mereka untuk menyebutkan saya.

Tidak seperti kebanyakan lisensi modern yang disetujui OSI, lisensi ini disebut "klausa iklan", yang berarti bahwa pembuat perangkat lunak yang menggunakan perpustakaan Anda harus menyebutkan bahwa produk mereka mengandung kode yang dikembangkan oleh Anda.

Teks klausa:

"Semua materi iklan yang menyebutkan fitur atau penggunaan perangkat lunak ini harus menampilkan pengakuan berikut: Produk ini termasuk perangkat lunak yang dikembangkan oleh <organization>."

  • Jika mereka mengubah kode saya dan seseorang meminta modifikasi itu, mereka memberikan kode dengan modifikasi.

Itu agak bermasalah. Hanya lisensi salinan kiri yang memerlukannya. Menggunakan lisensi kiri-copy bertentangan dengan persyaratan Anda lainnya.

vartec
sumber
1
Versi 4-klausa asli tidak terdaftar oleh Open Source Initiative sebagai Lisensi Open Source (lihat opensource.org/licenses/bsd-license ). Terdapat cukup proliferasi lisensi dan inkompatibilitas lisensi tanpa membawa lisensi lama atau varian.
David Thornley
1
@ David: tentu saja itu tidak terdaftar oleh OSI, klausa iklan tidak kompatibel dengan definisi OSI.
vartec
Lisensi BSD lama dihentikan karena dipaksa untuk menyusun daftar nama yang tak ada habisnya dalam pemberitahuan hak cipta akhir. Lisensi BSD baru sama sesuai (dan mungkin lebih) dalam kasusnya: nama penulis harus tetap dengan kode itu sendiri.
Denis de Bernardy
1
OP mengatakan "Jika mereka mengubah kode saya dan seseorang meminta modifikasi itu, mereka memberikan kode dengan modifikasi." BSD tidak mensyaratkan itu. Itu bukan copy-kiri. LGPL mungkin lebih baik.
MarkJ
3

Saya bukan pengacara dan berikut ini bukan nasihat hukum, tetapi apa yang saya kumpulkan tentang hukum hak cipta sebagai seorang programmer.

Jika Anda membuat perangkat lunak, Anda memiliki hak cipta di atasnya kecuali seseorang membayar Anda untuk menulisnya. Anda harus menyatakan hak cipta dalam perangkat lunak atau dalam README, diikuti oleh ketentuan lisensi atau, jika menggunakan lisensi verbose seperti GPL, sebuah pointer ke tempat lisensi dapat ditemukan. Jika sekarang Anda menerbitkan perangkat lunak Anda, itu dilindungi oleh lisensi. Anda harus memberi tahu pengguna lisensi, misalnya dalam penginstal atau dalam manual.

Jenis lisensi yang Anda inginkan terdengar seperti copyleft, tetapi lebih lemah dari GPL. Pertimbangkan Lisensi Publik Umum GNU (LGPL).

Fred Foo
sumber
Saya tidak percaya (L) GPL memiliki penyebab atribusi yang akan "memaksa mereka (orang yang menggunakan kode) untuk menyebut saya (penulis asli)" seperti yang disebutkan Pedro.
2
@danielkza: Saya yakin Anda tidak bisa menghapus secara resmi pemberitahuan hak cipta dari karya berhak cipta, sehingga nama OP tidak dapat dihapus.
Fred Foo
1
@ Larsmans: Saya percaya dia ingin namanya dikutip bukan dalam kode itu sendiri, tetapi di kredit / tentang kotak / footer situs / dll. Saya mungkin telah salah mengartikannya.
Terima kasih banyak atas jawabannya. Informasi yang sangat berguna. Itu seperti yang saya pikirkan, tetapi saya tidak yakin. Saya akan melihat beberapa proyek sumber terbuka untuk melihat bagaimana mereka memasukkan teks hukum.
Saya pikir saya akan membaca dua lisensi itu, GPL dan LGPL, untuk melihat apa yang lebih baik bagi saya.
2

Free Software Foundation telah sangat berhasil mengejar litigasi terhadap orang-orang yang telah melanggar ketentuan lisensi sumber terbuka mereka. Saya ingat sebuah artikel dari ~ 2006 yang menunjukkan mereka adalah 4 untuk 4 pada waktu itu; baru-baru ini mereka telah menyelesaikan tuntutan hukum terhadap Cisco, Skype, dan Verizon, semuanya menghasilkan pembayaran kepada FSF. Namun, secara umum, gugatan dimulai hanya setelah upaya berulang kali untuk memberi tahu terdakwa tentang kewajiban mereka telah dibuat. Jadi hanya untuk menghemat waktu, minta pengguna untuk mengklik tombol 'terima' dalam dialog lisensi standar, simpan file persyaratan lisensi dalam folder 'lisensi' sendiri, dan Anda harus siap.

Sejauh lisensi tertentu untuk digunakan, sepertinya Anda menginginkan LGPL, yang melakukan semua yang Anda minta kecuali kemungkinan bagian atribusi - Anda mungkin harus membuat ketentuan yang terpisah.

Matt Phillips
sumber
Terima kasih saya akan membaca teks LGPL, tetapi sangat membosankan untuk membaca teks-teks hukum;)
1
IIUC LGPL akan digunakan sebagai pengganti GPL ketika Anda lebih peduli tentang proliferasi perpustakaan Anda, bukan perpustakaan pesaing, dan tidak begitu peduli dengan sudut kebebasan dalam kasus ini. Misalnya, jika Anda telah menulis perpustakaan gambar untuk bersaing dengan perpustakaan gambar lain, LGPL akan membiarkan orang lain menggunakan perpustakaan Anda lebih mudah daripada perpustakaan pesaing [eksklusif].
Jeff Welling
2

Saya tidak berpikir ada lisensi yang persis sesuai dengan kebutuhan Anda. Sepertinya Anda menginginkan semacam campuran AGPL dan LGPL. Tetapi FSF belum sempat membuat lisensi seperti itu! Anda dapat melihat tanggapan resmi mereka di sini: /programming/3330792/why-isnt-there-a-lesser-affero-general-public-license/4419776#4419776

Robin Green
sumber
Terima kasih atas jawabannya, saya menduga tidak ada lisensi, tapi setidaknya saya mencari yang paling cocok.
Ada beberapa lisensi yang memaksa orang untuk menerbitkan kode mereka sendiri jika mereka menggunakan kode saya. Itu artinya, Anda harus mengubah proyek Anda menjadi proyek sumber terbuka jika Anda menggunakan beberapa kode dengan lisensi itu. Saya tidak keberatan jika mereka tidak ingin mempublikasikan kode mereka. Perhatian utama saya adalah setidaknya orang sekarang menggunakan kode saya. Cukup bagi saya.
Saya benar-benar tidak berpikir seseorang ingin menggunakan kode saya dalam proyek mereka;) Terutama karena mereka adalah latihan yang menunjukkan bagaimana membuat aplikasi java tiga lapis dari awal menggunakan TDD. Saya ingin membagikan kode itu dan saya ingin orang menggunakannya untuk mengajar TDD, tetapi saya ingin mereka diwajibkan untuk mengatakan bahwa latihan sebagai contoh adalah milik saya.
1

Bagaimana Anda harus mengaktifkan lisensi open source? Cukup sertakan teks lisensi di semua file?

Saya tidak tahu apa persyaratan hukum yang tepat, tetapi praktik normal adalah memasukkan komentar header kecil di awal setiap file:

  • yang menyatakan siapa yang memiliki hak cipta, dan
  • yang menyatakan bahwa file tersebut dilindungi oleh lisensi ini-dan-itu, memberi tahu pembaca nama file yang berisi teks lisensi, dan memberi tahu mereka di mana menemukan teks jika file tersebut hilang.

Apa lagi yang harus saya lakukan? Apakah saya perlu membeli yang benar?

Tidak.

Sertakan readme.txt di semua direktori?

Tidak. File README tunggal di root pohon direktori adalah ide yang bagus, tetapi tidak wajib.

Maksud saya, apa yang harus saya lakukan jika saya ingin kode saya dilindungi oleh uji lisensi?

Untuk benar-benar yakin, bicarakan dengan pengacara.


Mengenai persyaratan lisensi Anda.

(1) Saya tidak peduli apa yang orang lakukan dengan kode saya, tujuan pendidikan, untuk menghasilkan uang, saya tidak keberatan apa pun yang ingin mereka lakukan dengannya.

Itu semacam persyaratan. Sangat sedikit lisensi yang melarang orang menghasilkan uang, menggunakan dalam pendidikan, dll.

Namun "lakukan apa yang mereka suka" benar-benar bertentangan dengan beberapa persyaratan Anda yang lain.

(2) Jika mereka mengubah kode saya dan seseorang meminta modifikasi itu, mereka memberikan kode dengan modifikasi.

Persyaratan bahwa mereka menyediakan kode sumber modifikasi apa pun yang mereka buat ada di GPL, LGPL, AGPL, tetapi tidak di Apache, BSD, dan lisensi umum lainnya.

(3) Tapi saya ingin orang tidak menghapus nama saya dari kode, dan jika mereka menggunakan kode saya memaksa mereka untuk menyebutkan saya.

Sebagian besar lisensi memerlukan atribusi dalam kode untuk tetap berada dalam kode.

Namun "memaksa mereka untuk menyebut saya" itu sulit, dan sedikit jika ada lisensi mengatakan itu. Memang posisi FSF adalah bahwa persyaratan seperti itu membuat kode Anda tidak bebas ...

(4) Tapi saya tidak ingin memaksa orang untuk menerbitkan kode aplikasi mereka, bahkan jika mereka menggunakan kode saya.

Beberapa lisensi memaksa orang untuk mempublikasikan kode aplikasi mereka sebagai hal yang biasa. Bahkan yang paling radikal dari keluarga GPL memungkinkan Anda untuk menggunakan dan memodifikasi perangkat lunak untuk tujuan pribadi semata.

Namun GPL et al memaksa orang untuk menerbitkan sumber jika orang mendistribusikan aplikasi berdasarkan Anda. (Kondisi yang tepat tergantung pada lisensi. Misalnya, LGPL memungkinkan orang untuk menautkan kode mereka dengan kode Anda tanpa memaksa mereka untuk menerbitkan kode mereka. Di sisi lain, GPL mengharuskan mereka untuk mempublikasikan kode mereka dalam keadaan seperti itu, dan AGPL memperluas ini ke area lain. .)

Perhatikan juga, bahwa persyaratan (2) dan (4) secara harfiah bertentangan.


Singkatnya, Anda harus dapat mengekspresikan persyaratan Anda untuk lisensi dengan jelas. Jika Anda tidak dapat melakukannya, maka Anda memiliki sedikit peluang dalam menemukan lisensi yang sesuai dengan kebutuhan Anda.

Atau mungkin Anda harus berbicara dengan seorang pengacara. (Dia jelas perlu menanyakan banyak pertanyaan kepada Anda untuk mendapatkan apa persyaratan sebenarnya Anda.)

Stephen C
sumber
0

Anda dapat menggunakan lisensi apa pun yang Anda inginkan (bahkan milik Anda sendiri) pada karya yang menjadi milik Anda (Anda memiliki hak cipta) ini biasanya dilakukan dengan memasukkan salinan lisensi dalam file COPYINGbersama dengan kode sumber.

Apa yang Anda cari adalah Lisensi Bergaya XFree86 1.1 ( Lisensi non-copyleft permisif (tidak perlu membuka sumber jika Anda menggunakannya tetapi memerlukan pengakuan) dan memenuhi semua kebutuhan Anda.

  1. Dokumentasi pengguna akhir disertakan dengan redistribusi, jika ada, harus mencakup pengakuan berikut: "Produk ini mencakup perangkat lunak yang dikembangkan oleh The XFree86 Project, Inc (http://www.xfree86.org/) dan kontributornya", dalam tempat dan bentuk yang sama dengan ucapan terima kasih pihak ketiga lainnya. Bergantian, pengakuan ini dapat muncul dalam perangkat lunak itu sendiri, dalam bentuk dan lokasi yang sama dengan ucapan terima kasih pihak ketiga lainnya.

Anda dapat mengganti nama xfree86 dengan nama Anda dan mendistribusikannya.

Lincity
sumber