Saya telah mencari berbagai lisensi yang dapat saya gunakan untuk proyek sumber terbuka milik saya, tetapi semua proyek yang saya lihat, dengan semua jenis lisensi, tampaknya memiliki raksasa, menjengkelkan (menurut saya) perhatikan di setiap file sumber yang menyatakan bahwa file tersebut terdaftar di bawah lisensi tertentu. Saya tidak berpikir bahwa saya telah menemukan proyek sumber tunggal yang bukan domain publik yang tidak memiliki pemberitahuan seperti itu.
Sepertinya ini hanya buang-buang waktu dan ruang file. Saya berencana untuk menempatkan @license
dan memberi @author
tag pada proyek-proyek saya, tetapi saya tidak melihat mengapa saya perlu membuat daftar pemberitahuan sebesar itu di setiap file individu jika saya tidak ingin membuat kode saya menjadi domain publik.
Apakah ada alasan mengapa saya ingin memasukkan pemberitahuan seperti itu ke dalam proyek saya, atau hanya akan menyertakan pemberitahuan di README
dan @license
tag cukup baik? Apakah ini memengaruhi aturan "sebagian besar lisensi" yang dinyatakan dengan jelas, atau hanya berlebihan sehingga orang tidak akan berdebat?
Jawaban:
Dalam pemahaman saya, GPLv3 sangat menyarankan (atau bahkan mungkin mengharuskan, setidaknya bagaimana saya memahami teks Cara Mendaftar Persyaratan Ini ke Program Baru Anda , setelah bagian 17) pemberitahuan hak cipta di setiap file sumber. Ia mengatakan
Dan proyek GNU yang dimiliki FSF, seperti GCC, memiliki pemberitahuan seperti itu di setiap file.
Saya juga tahu sebuah program (sistem CAIA J.Pitrat) yang telah ditolak di situs web komunitas perangkat lunak bebas karena tidak ada pemberitahuan seperti itu di setiap file.
Saya bukan pengacara , tetapi saya percaya bahwa pemberitahuan semacam itu praktis wajib di setiap file sumber program GPLv3 .
(jika Anda menggunakan lisensi lain, terutama yang non-FSF, baca dengan cermat tentang cara menerapkannya; YMMV; namun AFAIK menulis pemberitahuan di setiap file tidak akan membahayakan.)
sumber
Saya telah melihat banyak proyek yang hanya menyebutkan lisensi dalam README atau dalam file LICENSE atau COPYING.
Perangkat lunak Anda secara otomatis dilindungi oleh hak cipta, sebagaimana disepakati dalam hukum internasional. (Kecuali jika Anda bekerja untuk pemerintah AS atau organisasi lain di mana hak cipta tidak berlaku.)
Jika seseorang menggunakan perangkat lunak Anda maka mereka harus memastikan untuk mengikuti perjanjian lisensi, atau mengikuti pembatasan penggunaan yang adil pada apa yang dapat mereka lakukan.
Misalkan orang tersebut ingin menggunakan salah satu file dalam distribusi kode Anda, yang tentu saja memerlukan salinan dan karenanya hukum hak cipta berlaku. Secara default mereka TIDAK memiliki hak untuk menggunakan perangkat lunak Anda di bawah undang-undang hak cipta. Hanya ketika mereka tahu dan mengikuti batasan lisensi mereka diizinkan menggunakannya.
Jadi jika mereka menggunakan file tanpa lisensi perangkat lunak maka mereka melanggar hukum hak cipta. Karena semua lisensi mengatakan sesuatu seperti "Pemberitahuan hak cipta di atas dan pemberitahuan izin ini akan dimasukkan dalam semua salinan atau bagian substansial Perangkat Lunak", mereka diwajibkan untuk menempatkan lisensi itu di suatu tempat.
Itu bisa di file itu sendiri, atau ketika saya telah menggunakan kode sebagai perpustakaan saya menempatkan bagian yang relevan ke direktori sendiri dan menambahkan "README" atau "LICENSE" ke dalam subdirektori itu.
Singkatnya, Anda tidak perlu meletakkan lisensi di setiap file. Saya pikir itu berlebihan. Tidak ada perlindungan hukum tambahan untuk melakukannya. Memang membantu pengguna hilir agak, tetapi tidak banyak.
Saya pikir tradisi banyak metadata berbasis komentar (lisensi, tanggal pembuatan masing-masing fungsi, changelog, dll) adalah tradisi yang sangat lama yang ada karena mudah dilakukan dan yang lebih merupakan jimat daripada berguna.
Sebagai contoh, Eclipse template default menambahkan apa yang saya anggap sebagai metadata yang tidak berguna sebelum setiap fungsi, yang saya pikir jauh lebih baik ditangkap oleh kontrol versi. Tetapi praktik itu biasa terjadi di banyak toko.
sumber
Masalahnya adalah sangat mudah untuk memisahkan satu file kode sumber dari proyek yang lebih besar, seperti seseorang yang baru saja memeriksa, mengirim email, mengunduh satu file, tanpa sisanya yang berisi hak cipta penuh. Dan kemudian file itu dapat diteruskan ad-infinitum ke waktu, ke pihak ke-N yang mungkin tidak tahu asal file.
Pemberitahuan hak cipta di bagian atas mengingatkan siapa pun yang menemukan file tunggal yang sebenarnya berhak cipta, bukan domain publik, dan dengan demikian beberapa lisensi mungkin atau mungkin tidak terlibat dalam distribusi atau penggunaannya. Versus membiarkan pencari menemukan asumsi acak mereka sendiri.
sumber
Tidak ada pertemuan adikuasa rahasia di dalam bunker bawah tanah yang mengatakan apa yang harus Anda masukkan ke setiap file sumber.
Itu membuat jelas bagi pengguna bahwa file ini berada di bawah lisensi apa pun dan pada kenyataannya sebagian besar perangkat lunak GPL berisi basa-basi pendek yang mengatakan untuk membaca license.txt. Ingat proyek terbelah dan file dapat digunakan kembali sehingga hanya menempatkan pesan dalam satu file mungkin bukan ide yang baik.
Jika dalam hal yang tidak mungkin pernah pergi ke pengadilan Anda mungkin memiliki lebih banyak klaim jika Anda telah dengan jelas menandai setiap file sebagai karya Anda dan lisensi apa yang ada di bawahnya - maka tidak ada yang bisa mengklaim mereka berpikir bahwa file prticular ini tidak tercakup
sumber
Saya hampir memposting pertanyaan yang sangat mirip. Lebih sedikit tentang gangguan dan lebih banyak tentang masalah teknis. TL; DR: Saya yakin jawabannya adalah masalah prioritas penulis. Mungkin niat akan lebih akurat daripada prioritas ...
Saya yakin tidak apa-apa untuk referensi lisensi di sumber Anda, tergantung pada definisi Anda tentang "oke". Mari kita sepakat bahwa istilah "tanpa pendamping" menunjukkan file sumber yang merupakan bagian dari proyek yang telah dipisahkan dengan kejam dari basis kode yang penuh kasih. File tersebut berisi garis seperti ini:
Atau garis yang jauh lebih keren seperti ini:
"Tapi tunggu!" , Anda berseru, "Anda baru saja mengatakan file itu terpisah dari proyeknya! Dan goodlics.com mengalihkan ke penghuni liar domain! Berhentilah menjadi trixy!" Anda benar, saya memang mengatakan itu, tapi itu mungkin baik-baik saja, dan berhenti berteriak kepada saya. Ini alasan saya bukan pengacara:
nyancat-bcminer-algo.qbasic
File luar biasa yang Anda tulis dan diposting di LiveJournal adalah, percaya atau tidak, bukan domain publik. Tidak, kecuali Anda mengatakan itu domain publik. Secara default itu milik Anda dan milik Anda sendiri. Itu ... Berharga . (Setidaknya untuk 25-50 + tahun, kecuali Anda Disney.)Alasan ini membuat dua asumsi epik dan mungkin tidak valid:
Terima kasih telah mengendarai saluran udara monyet-otak.
Penafian: Ini logis bagi saya untuk saya 90% yakin bahwa saya 100% salah.
sumber
Ada perbedaan antara lisensi dan pembukaan .
Dalam beberapa proyek saya, saya menggunakan Lisensi Publik Umum GNU, Versi 3.0 . GNU GPL mengharuskan pembukaan pada setiap file kode sumber:
Sumber: http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble
Jadi inilah yang saya lakukan:
1. Tambahkan License.txt
Untuk mengikuti aturan, saya menaruh LICENSE.txt di root repositori proyek saya. Ini juga disarankan oleh GitHub (lihat " Di mana lisensi tinggal" ).
2. Tambahkan pembukaan menggunakan lipatan otomatis
Selanjutnya saya menyertakan mukadimah GPL di atas setiap file kode sumber TETAPI agar tidak mengganggu saya sembunyikan di IDE. Sebagian besar IDE memiliki fitur untuk secara otomatis melipat blok kode. NetBeans memiliki dukungan untuk Custom Code Folding dan WebStorm juga mendukung komentar lipat .
Jadi begini tampilannya:
Saya pikir ini adalah kompromi yang sangat baik antara kenyamanan dan keamanan hukum.
Jika Anda memiliki banyak proyek di mana Anda perlu menambahkan lisensi, maka http://www.addalicense.com/ mungkin bisa membantu.
Harap dicatat: Saran saya merujuk ke GPLv3. Jenis lisensi lain mungkin tidak memerlukan pembukaan.
sumber
LICENSE
file, yaitu Anda tidak dapat mengubah teks GPL dengan menjatuhkannya.Ada cara praktis lain yang belum disebutkan di sini.
SPDX-License-Identifier
menandai. https://spdx.org/using-spdxDengan menggunakannya, "boilerplate legal" Anda di setiap header file sumber berkurang menjadi hanya dua baris:
Lebih jauh, orang-orang yang mengotomatisasi analisis rantai pasokan perangkat lunak akan berterima kasih karena Anda berpegang pada standar umum deskripsi lisensi yang dapat dibaca mesin.
sumber