ProHoster > Blog > Pentadbiran > Cara memilih lesen Sumber Terbuka untuk rangka kerja RAD di GitHub
Cara memilih lesen Sumber Terbuka untuk rangka kerja RAD di GitHub
Dalam artikel ini kita akan bercakap sedikit tentang hak cipta, tetapi terutamanya mengenai memilih lesen percuma untuk rangka kerja RAD IONDV. Rangka kerja dan untuk produk sumber terbuka berdasarkannya. Kami akan memberitahu anda tentang lesen yang membenarkan Apache 2.0, tentang perkara yang membawa kami kepadanya dan keputusan yang kami hadapi dalam proses itu.
Proses memilih lesen agak intensif buruh dan harus didekati yang sudah dibaca dengan baik, dan jika anda bukan pemilik pendidikan undang-undang yang gembira, maka bidang maklumat yang lengkap tentang pelbagai lesen percuma terbuka di hadapan anda. Perkara utama yang perlu dilakukan ialah merangka beberapa kriteria had. Melalui proses perbincangan dan refleksi, anda dan pasukan anda akan dapat memahami perkara yang anda ingin benarkan kepada pengguna produk anda dan perkara yang perlu dilarang. Apabila anda sudah mempunyai huraian tertentu di tangan anda, anda perlu menindihnya pada lesen sedia ada dan pilih yang mana bilangan mata terbesar bertepatan. Kedengarannya mudah, sudah tentu, tetapi pada hakikatnya, biasanya walaupun selepas perbincangan, soalan tetap ada.
Pertama, pautan ke choosealicense.com, tapak berguna yang kami gunakan secara meluas. Beri perhatian khusus kepada jadual perbandingan lesen mengikut 13 kriteria utama. Semoga bahasa Inggeris dan kesabaran menyertai anda.
Keperitan pilihan
Mari kita mulakan dengan ciri umum lesen untuk perisian percuma. Perisian sumber terbuka membayangkan lesen percuma secara eksklusif, yang tidak mengehadkan pengedaran komersial dan bukan komersial mengikut model Buka Teras. Sehubungan itu, meletakkan perisian pada rangkaian di bawah lesen percuma tidak boleh mengehadkan sepenuhnya pemindahan, pengedaran dan penjualannya oleh pihak ketiga, dan anda hanya perlu bersedia secara mental untuk ini.
Lesen percuma memberi pengguna hak untuk mengambil bahagian dalam kejuruteraan terbalik perisian atau mengubahnya dengan cara lain yang tersedia. Kebanyakan lesen tidak membenarkan anda menamakan semula produk atau menjalankan sebarang manipulasi dengannya, menukar hak pengarang dan/atau pemilik sistem.
Soalan utama yang kami minati tentang lesen percuma ialah:
Adakah perubahan yang dibuat pada perisian perlu direkodkan dan tiada kaitan dengan pemegang hak cipta sistem?
Sekiranya nama perisian terbitan tidak sama dengan nama perisian pemegang hak cipta?
Adakah mungkin untuk menukar lesen untuk mana-mana versi baharu kepada yang lain, termasuk yang proprietari?
Selepas melihat dengan teliti senarai lesen yang paling biasa, kami memilih beberapa yang kami pertimbangkan dengan lebih terperinci. Lesen berpotensi untuk IONDV. Rangka kerja ialah: GNU GPLv3, Apache 2.0, MIT dan MPL. MIT hampir serta-merta dikecualikan, ini ialah lesen bukan copyleft permisif, yang membenarkan penggunaan, pengubahsuaian dan pengedaran kod dalam hampir apa-apa cara, tetapi kami tidak berpuas hati dengan pilihan ini, kami masih mahu lesen mengawal hubungan antara hak cipta pemegang dan pengguna. Kebanyakan projek yang lebih kecil di GitHub diterbitkan di bawah lesen MIT atau pelbagai variasinya. Lesen itu sendiri sangat singkat, dan satu-satunya larangan adalah untuk menunjukkan kepengarangan pencipta perisian.
Seterusnya ialah lesen mpl 2.0. Diakui, kami tidak melakukannya dengan serta-merta, tetapi selepas mengkajinya dengan lebih terperinci, kami dengan cepat menolaknya, kerana kelemahan utama ialah lesen itu tidak digunakan untuk keseluruhan projek, tetapi untuk fail individu. Di samping itu, jika pengguna menukar fail, dia tidak boleh menukar lesen. Malah, tidak kira betapa gigihnya anda menukar projek Sumber Terbuka, anda tidak akan dapat mengewangkannya kerana lesen sedemikian. Dengan cara ini, ini tidak melibatkan pemegang hak cipta.
Masalah yang sama berterusan dengan lesen GNU GPLv3. Ia memerlukan mana-mana fail kekal di bawahnya. GNU GPL ialah lesen copyleft yang memerlukan karya terbitan menjadi sumber terbuka dan kekal di bawah lesen yang sama. Iaitu: dengan menulis semula dua baris kod, anda akan dipaksa untuk melakukan perubahan anda dan, semasa penggunaan atau pengedaran selanjutnya, simpan kod di bawah GNU GPL. Dalam kes ini, ini adalah faktor pengehad untuk pengguna projek kami, dan bukan untuk kami. Tetapi menukar GPL kepada mana-mana lesen lain adalah dilarang, walaupun dalam versi GPL. Sebagai contoh, jika anda berubah LGPL (tambahan kepada GPL) kepada GPL, maka tidak akan ada jalan kembali ke LGPL. Dan perkara ini adalah penentu dalam mengundi menentangnya.
Secara keseluruhan, pilihan kami pada mulanya condong ke arah GPL3 tepat kerana pengedaran kod yang diubah suai di bawah lesen yang sama. Kami berpendapat bahawa dengan cara ini kami boleh melindungi produk kami, tetapi kami melihat risiko yang lebih sedikit dalam Apache 2.0. Menurut Yayasan Perisian Percuma, GPLv3 serasi dengan Lesen Apache v2.0, bermakna ia sentiasa mungkin untuk menukar lesen daripada Lesen Apache v2.0 kepada GPL v3.0.
Apache 2.0
Apache 2.0 β lesen permisif seimbang dengan penekanan pada hak cipta. Berikut adalah jawapan yang dia berikan kepada soalan yang menarik minat kami. Adakah perubahan yang dibuat pada perisian perlu direkodkan dan tiada kaitan dengan pemegang hak cipta sistem? Ya, semua perubahan mesti didokumenkan dan kami tidak bertanggungjawab untuk kod asal atau yang diubah suai. Fail dengan perubahan mesti dilampirkan pada kod di mana anda membuat perubahan ini. Sekiranya nama perisian terbitan tidak sama dengan nama perisian pemegang hak cipta? Ya, perisian terbitan harus dikeluarkan di bawah nama yang berbeza dan di bawah tanda dagangan yang berbeza, tetapi dengan petunjuk pemegang hak cipta. Adakah mungkin untuk menukar lesen untuk mana-mana versi baharu kepada yang lain, termasuk yang proprietari? Ya, ia boleh dikeluarkan di bawah lesen yang berbeza, Apache 2.0 tidak mengehadkan penggunaan mana-mana lesen bukan komersial dan komersial.
Selain itu, apabila mengeluarkan produk baharu berdasarkan kod sumber terbuka untuk Apache 2.0 atau produk dengan fungsi tambahan, anda tidak perlu menggunakan lesen yang sama. Di bawah anda boleh melihat imej dengan syarat dan sekatan lesen Apache 2.0.
Lesen mengenakan keperluan untuk memelihara dan menyebut hak cipta dan lesen di mana perisian itu dikeluarkan. Ketersediaan mandatori notis hak cipta dengan nama pemegang hak cipta dan lesen melindungi hak pengarang asal perisian, kerana walaupun ia dinamakan semula, diberikan atau dijual di bawah lesen yang berbeza, tanda pengarang akan tetap kekal. Anda juga boleh menggunakan fail untuk ini NOTIS dan lampirkannya sama ada pada kod sumber atau pada dokumentasi projek.
Kami mengeluarkan semua produk kami yang tersedia secara terbuka di GitHub di bawah lesen Apache 2.0, kecuali IONDV. Arkib perang, kod sumber yang diterbitkan di bawah lesen GPLv3 di GitHub pada April tahun ini oleh Pusat Teknologi Sosial Timur Jauh. Pada masa ini, sebagai tambahan kepada rangka kerja dan modul diterbitkan aplikasi dibuat pada rangka kerja. Mengenai hab yang telah kita bincangkan Sistem pengurusan projek dan kira-kira Daftar komunikasi.
Itu. butiran tentang rangka kerja
IONDV. Rangka kerja ialah rangka kerja sumber terbuka berdasarkan node.js untuk mencipta aplikasi web peringkat tinggi berdasarkan metadata, yang tidak memerlukan kemahiran pengaturcaraan yang serius.
Asas kefungsian aplikasi ialah pendaftaran data - modul Daftar. Ini ialah modul utama yang direka secara langsung untuk bekerja dengan data berdasarkan struktur metadata - termasuk untuk pengurusan projek, program, acara, dll. Projek ini juga menggunakan modul portal untuk memaparkan templat data sewenang-wenangnya - ia melaksanakan pendaftaran hadapan arkib.
MongoDb digunakan untuk DBMS - ia menyimpan tetapan aplikasi, metadata dan data itu sendiri.
Bagaimana untuk memohon lesen untuk projek anda?
Tambah fail LESEN dengan teks lesen dalam repositori projek anda dan voilΓ , projek yang dilindungi oleh Apache 2.0. Anda perlu menunjukkan pemegang hak cipta, itu sahaja notis hak cipta. Ini boleh dilakukan dalam kod sumber atau dalam fail NOTIS (fail teks yang menyenaraikan semua perpustakaan yang dilesenkan di bawah lesen Apache bersama-sama dengan nama penciptanya). Letakkan fail itu sendiri sama ada dalam kod sumber atau dalam dokumentasi yang diedarkan bersama kerja. Bagi kami ia kelihatan seperti ini:
TERMA DAN SYARAT UNTUK PENGGUNAAN, PENGELUARAN SEMULA DAN PENGEDARAN
Definisi.
"Lesen" bermaksud terma dan syarat untuk penggunaan, pengeluaran semula,
dan pengedaran seperti yang ditentukan oleh Bahagian 1 hingga 9 dokumen ini.
"Pemberi Lesen" bermaksud pemilik hak cipta atau entiti yang diberi kuasa oleh
pemilik hak cipta yang memberikan Lesen.
"Entiti Undang-undang" bermaksud kesatuan entiti yang bertindak dan semua
entiti lain yang mengawal, dikendalikan oleh, atau di bawah umum
kawalan dengan entiti itu. Untuk tujuan definisi ini,
"kawalan" bermaksud (i) kuasa, secara langsung atau tidak langsung, untuk menyebabkan
arahan atau pengurusan entiti tersebut, sama ada melalui kontrak atau
jika tidak, atau (ii) pemilikan lima puluh peratus (50%) atau lebih daripada
saham tertunggak, atau (iii) pemilikan bermanfaat entiti tersebut.
βAndaβ (atau βAndaβ) bermaksud individu atau Entiti Undang-undang
menjalankan kebenaran yang diberikan oleh Lesen ini.
Borang "Sumber" bermaksud borang pilihan untuk membuat pengubahsuaian,
termasuk tetapi tidak terhad kepada kod sumber perisian, dokumentasi
sumber, dan fail konfigurasi.
Borang "Objek" hendaklah bermaksud sebarang bentuk yang terhasil daripada mekanikal
transformasi atau terjemahan bentuk Sumber, termasuk tetapi
tidak terhad kepada kod objek yang disusun, dokumentasi yang dihasilkan,
dan penukaran kepada jenis media lain.
"Kerja" hendaklah bermaksud karya kepengarangan, sama ada dalam Sumber atau
Bentuk objek, tersedia di bawah Lesen, seperti yang ditunjukkan oleh a
notis hak cipta yang disertakan atau dilampirkan pada karya
(contoh diberikan dalam Lampiran di bawah).
"Karya Terbitan" bermaksud apa-apa kerja, sama ada dalam Sumber atau Objek
bentuk, yang berdasarkan (atau berasal dari) Karya dan yang mana
semakan editorial, anotasi, penjelasan, atau pengubahsuaian lain
mewakili, secara keseluruhan, karya asli kepengarangan. Untuk tujuan
Lesen ini, Karya Derivatif tidak termasuk karya yang masih ada
dipisahkan dari, atau hanya menghubungkan (atau mengikat dengan nama) ke antara muka,
Karya dan Hasil Turunannya.
"Sumbangan" bermaksud apa-apa karya pengarang, termasuk
versi asal karya dan sebarang pengubahsuaian atau penambahan
kepada Karya atau Hasil Turunannya, yang sengaja
diserahkan kepada Pemberi Lisensi untuk dimasukkan ke dalam Karya oleh pemilik hak cipta
atau oleh individu atau Entiti Undang-undang yang diberi kuasa untuk mengemukakan bagi pihak
pemilik hak cipta. Untuk tujuan definisi ini, "diserahkan"
bermaksud sebarang bentuk komunikasi elektronik, lisan, atau bertulis yang dihantar
kepada Pemberi Lesen atau wakilnya, termasuk tetapi tidak terhad kepada
komunikasi pada senarai surat elektronik, sistem kawalan kod sumber,
dan masalah sistem pengesanan yang dikendalikan oleh, atau atas nama,
Pemberi lesen untuk tujuan membincangkan dan memperbaiki Karya, tetapi
tidak termasuk komunikasi yang ditandai dengan jelas atau sebaliknya
ditetapkan secara bertulis oleh pemilik hak cipta sebagai "Bukan Sumbangan."
"Penyumbang" bermaksud Pemberi Lesen dan mana-mana individu atau Entiti Undang-undang
atas nama Sumbangan telah diterima oleh Pemberi Pemberi Pinjaman dan
kemudian dimasukkan dalam Kerja.
Pemberian Lesen Hak Cipta. Tertakluk kepada terma dan syarat bagi
Lesen ini, setiap Penyumbang dengan ini memberi Anda Kekal,
di seluruh dunia, tidak eksklusif, tanpa caj, bebas royalti, tidak boleh ditarik balik
lesen hak cipta untuk menghasilkan semula, menyiapkan karya terbitan,
secara terbuka memaparkan, melakukan secara terbuka, melisensikan, dan mengedarkan
Kerja dan Hasil Turunan seperti itu dalam bentuk Sumber atau Objek.
Pemberian Lesen Paten. Tertakluk kepada terma dan syarat bagi
Lesen ini, setiap Penyumbang dengan ini memberi Anda Kekal,
di seluruh dunia, tidak eksklusif, tanpa caj, bebas royalti, tidak boleh ditarik balik
(kecuali seperti yang dinyatakan dalam bagian ini) lesen paten untuk membuat, telah membuat,
menggunakan, menawarkan untuk menjual, menjual, mengimport, dan memindahkan Karya,
di mana lesen tersebut hanya terpakai bagi tuntutan paten yang boleh dilesenkan
oleh Penyumbang sedemikian yang semestinya dilanggar oleh mereka
Sumbangan secara bersendirian atau dengan gabungan Sumbangan mereka
dengan Karya yang diserahkan Sumbangan tersebut. Jika awak
mengadakan litigasi paten terhadap mana-mana entiti (termasuk a
tuntutan balas atau tuntutan balas dalam tuntutan mahkamah) yang mendakwa bahawa Karya
atau Sumbangan yang digabungkan dalam Karya adalah langsung
atau pelanggaran paten penyumbang, maka lesen paten apa pun
diberikan kepada Anda di bawah Lesen ini kerana Kerja tersebut akan ditamatkan
pada tarikh proses pengadilan diajukan.
Pengagihan semula. Anda boleh mengeluarkan semula dan mengedarkan salinan
Karya atau Hasil Turunannya dalam medium apa pun, dengan atau tanpa
pengubahsuaian, dan dalam bentuk Sumber atau Objek, dengan syarat bahawa Anda
memenuhi syarat berikut:
(a) Anda mesti memberi mana-mana penerima Kerja lain atau
Derivative Works salinan Lesen ini; dan
(b) Anda mesti menyebabkan sebarang fail yang diubahsuai membawa pemberitahuan yang menonjol
menyatakan bahawa Anda menukar fail; dan
(d) Jika Kerja termasuk fail teks βNOTISβ sebagai sebahagian daripadanya
pengedaran, maka setiap Kerja Derivatif yang Anda edarkan mesti
sertakan salinan notis atribusi yang boleh dibaca yang terkandung
dalam fail PEMBERITAHUAN seperti itu, tidak termasuk notis yang tidak
berkaitan dengan mana-mana bahagian Hasil Kerja Derivatif, dalam sekurang-kurangnya satu
dari tempat-tempat berikut: dalam fail teks PEMBERITAHUAN diedarkan
sebagai sebahagian daripada Hasil Kerja Derivatif; dalam borang Sumber atau
dokumentasi, jika disediakan bersama dengan Derivative Works; atau,
dalam paparan yang dihasilkan oleh Derivative Works, jika dan
di mana sahaja notis pihak ketiga tersebut biasanya muncul. Isi kandungan
fail PEMBERITAHUAN hanya untuk tujuan maklumat dan
jangan ubah lesen. Anda boleh menambahkan atribusi anda sendiri
pemberitahuan di dalam Derivative Works yang anda sebarkan, di samping
atau sebagai tambahan teks PEMBERITAHUAN dari Karya, yang disediakan
bahawa pemberitahuan atribusi tambahan tersebut tidak dapat ditafsirkan
sebagai mengubah Lesen.
Anda boleh menambahkan pernyataan hak cipta anda sendiri pada pengubahsuaian dan
boleh memberikan terma dan syarat lesen tambahan atau berbeza
untuk penggunaan, pembiakan, atau pengedaran modifikasi Anda, atau
untuk sebarang Hasil Turunan seperti itu secara keseluruhan, dengan syarat penggunaan Anda,
pembiakan semula, dan pengedaran Kerja sesuai dengan itu
syarat yang dinyatakan dalam Lesen ini.
Penyerahan Sumbangan. Melainkan jika Anda menyatakan sebaliknya secara eksplisit,
sebarang Sumbangan yang diserahkan dengan sengaja untuk dimasukkan ke dalam Karya
oleh Anda kepada Pemberi Lesen adalah di bawah terma dan syarat
Lesen ini, tanpa syarat atau syarat tambahan.
Walau apa pun di atas, tidak ada yang menggantikan atau mengubahsuai di sini
syarat-syarat perjanjian lesen berasingan yang mungkin anda laksanakan
dengan Pemberi Lesen mengenai Sumbangan tersebut.
Tanda dagangan. Lesen ini tidak memberikan kebenaran untuk menggunakan perdagangan
nama, tanda dagang, tanda perkhidmatan, atau nama produk Pelesen,
kecuali seperti yang diperlukan untuk penggunaan yang munasabah dan biasa dalam menggambarkan
asal karya dan menghasilkan semula kandungan fail PEMBERITAHUAN.
Penafian Waranti. Melainkan dikehendaki oleh undang-undang yang terpakai atau
dipersetujui secara bertulis, Pemberi Lisensi menyediakan Karya (dan masing-masing
Penyumbang memberikan Sumbangannya) pada ASAS "SEBAGAIMANA ADANYA",
TANPA JAMINAN ATAU SYARAT SETIAP JENIS, baik yang dinyatakan atau
tersirat, termasuk, tanpa batasan, sebarang jaminan atau syarat
TAJUK, BUKAN PELANGGARAN, KEBERKESANAN, atau KESESUAIAN UNTUK A
TUJUAN TERTENTU. Anda bertanggungjawab sepenuhnya untuk menentukan
kesesuaian menggunakan atau mengagihkan Karya dan memikulnya
risiko yang berkaitan dengan penggunaan kebenaran anda di bawah Lesen ini.
Had Liabiliti. Walau apa pun dan di bawah tiada teori undang-undang,
sama ada dalam siksaan (termasuk kecuaian), kontrak, atau sebaliknya,
melainkan disyaratkan oleh undang-undang yang berlaku (seperti sengaja dan kasar
tindakan cuai) atau dipersetujui secara bertulis, hendaklah ada Penyumbang
bertanggungjawab kepada Anda atas kerosakan, termasuk langsung, tidak langsung, khas,
kerosakan sampingan, atau akibat dari sebarang watak yang timbul sebagai
hasil daripada Lesen ini atau kehabisan penggunaan atau ketidakupayaan untuk menggunakan
Kerja (termasuk tetapi tidak terhad kepada ganti rugi kerana kehilangan muhibah,
penghentian kerja, kegagalan atau kerosakan komputer, atau apa-apa dan semua
kerosakan atau kerugian komersial lain), walaupun Penyumbang tersebut
telah diberitahu tentang kemungkinan kerosakan tersebut.
Menerima Waranti atau Liabiliti Tambahan. Semasa mengagihkan semula
Karya atau Hasil Turunannya, Anda boleh memilih untuk menawarkan,
dan mengenakan bayaran untuk, penerimaan sokongan, jaminan, ganti rugi,
atau tanggungjawab liabiliti lain dan / atau hak yang selaras dengan ini
Lesen. Namun, dalam menerima kewajiban tersebut, Anda hanya boleh bertindak
atas nama anda sendiri dan atas tanggungjawab anda sendiri, bukan atas nama anda
dari mana-mana Penyumbang lain, dan hanya jika Anda bersetuju untuk membayar ganti rugi,
mempertahankan, dan menahan setiap Penyumbang tidak berbahaya untuk sebarang tanggungjawab
ditanggung oleh, atau tuntutan yang ditegaskan terhadap, Penyumbang tersebut dengan alasan
anda menerima apa-apa jaminan atau liabiliti tambahan.
AKHIR TERMA DAN SYARAT
LAMPIRAN: Cara menerapkan Lesen Apache untuk pekerjaan anda.
Untuk menggunakan Lesen Apache ke karya anda, lampirkan yang berikut
notis boilerplate, dengan medan yang disertakan dengan kurungan "[]"
diganti dengan maklumat pengenalan anda sendiri. (Jangan sertakan
tanda kurung!) Teks hendaklah dilampirkan dalam yang sesuai
sintaks komen untuk format fail. Kami juga mengesyorkan bahawa a
fail atau nama kelas dan keterangan tujuan disertakan di
sama "halaman bercetak" sebagai notis hak cipta untuk lebih mudah
pengenalan diri dalam arkib pihak ketiga.
Hak Cipta [yyyy] [nama pemilik hak cipta]
Dilesenkan di bawah Lesen Apache, Versi 2.0 ("Lesen");
anda tidak boleh menggunakan fail ini kecuali mematuhi Lesen.
Anda boleh mendapatkan salinan Lesen di
Kecuali diperlukan oleh undang-undang yang berlaku atau dipersetujui secara bertulis, perisian
diedarkan di bawah Lesen diedarkan pada ASAS "SEBAGAIMANA ADANYA",
TANPA JAMINAN ATAU SYARAT APA-APA JENIS, sama ada tersurat atau tersirat.
Lihat Lesen untuk bahasa tertentu yang mengatur kebenaran dan
had di bawah Lesen.
Lesen = kontrak
Lesen percuma, walaupun percuma, tidak membenarkan keizinan dan kami telah memberikan contoh sekatan. Pilih lesen dengan mengambil kira minat anda dan juga pengguna, kerana perisian sumber terbuka direka khusus untuknya. Pengguna projek harus menganggap lesen itu sebagai sejenis perjanjian antara dia dan pemegang hak cipta, jadi sebelum melakukan sebarang tindakan pada kod sumber, teliti sekatan yang dikenakan ke atas anda oleh lesen projek.
Kami berharap kami telah memberi sedikit pencerahan tentang topik lesen dan, walaupun isu ini rumit, ia tidak seharusnya menjadi penghalang kepada laluan anda ke Sumber Terbuka. Bangunkan projek anda dan jangan lupa tentang hak anda dan orang lain.
Pautan berguna
Akhir sekali, beberapa sumber berguna yang membantu kami semasa mencari maklumat tentang lesen sedia ada dan memilih yang paling sesuai untuk tujuan kami: