Hampir semua lisensi perangkat lunak open source membutuhkan (atau setidaknya pengacara umumnya menyarankan mereka mengharuskan) pengguna untuk memasukkan lisensi penuh ke dalam root proyek yang mereka lindungi.
Seorang pengacara yang saya ajak bicara mengatakan ini adalah peninggalan zaman CD, ketika itu perlu bahwa lisensi penuh dimasukkan dalam kasus permata.
Tapi hari ini, kita hidup di zaman awan. Mengapa saya tidak bisa, misalnya, hanya meng-host lisensi lengkap di situs web saya, dan memasukkan judul + URL lisensi itu di header file sumber saya?
Bonus: Jika disetujui secara umum bahwa lisensi yang ditetapkan harus tetap utuh di root, mengapa OSI FSF tidak menyetujui lisensi yang dapat Anda rujuk dengan URL, dan apa yang membuat seseorang tidak dapat membuat lisensi itu?
sumber
Jawaban:
Dari FAQ GPL (tetapi saran ini berlaku untuk semua lisensi):
(penekanan milikku)
Saat situs yang Anda lisensikan lisensi turun atau mengubah jalur URL-nya, orang-orang yang memiliki salinan perangkat lunak Anda tidak dapat lagi memverifikasi hak-hak apa yang dapat mereka gunakan dengan aman. Anggaplah Anda bisa menjamin bahwa URL yang tepat akan selamanya online: kemampuan bagi pengguna untuk memverifikasi bahwa penggunaan perangkat lunak Anda oleh mereka masih legal tergantung pada kemampuan untuk terhubung ke URL tersebut. Meskipun persyaratan ini mungkin tidak memberatkan di kota / negara / planet tertentu Anda, persyaratan ini mungkin memberatkan di tempat lain. Anda tidak boleh memaksakan persyaratan ini, terutama ketika solusi (termasuk teks lisensi penuh) sepele.
Anda dapat menjawab keluhan ini dengan mengatakan, "Jadi apa? Jika URLnya turun atau tidak dapat diakses, deskriptor yang tidak ambigu seperti 'GNU GPL v3' harus memadai. Salinan lengkap teks GPL banyak, pengguna dapat mencari ke atas lisensi sendiri. " Beberapa masalah segera muncul dalam pikiran:
Ini tidak menggeneralisasi ke pengidentifikasi lisensi yang kurang jelas (frasa "lisensi BSD" terlintas dalam pikiran).
Ini tidak menggeneralisasi dengan baik untuk lisensi yang kurang umum atau telah dikustomisasi ("GPL dengan menghubungkan pengecualian" muncul di pikiran: yang menghubungkan pengecualian?). Seberapa umum lisensi perlu sebelum masuk akal untuk mengharapkan pengguna menemukannya secara andal dengan nama?
Ini masih mengharuskan pengguna untuk memiliki koneksi Internet, yang mungkin tidak terjadi, bahkan jika mereka memiliki koneksi pada saat mereka mendapatkan perangkat lunak. (Dan mereka mungkin tidak memiliki akses Internet ketika mereka mendapatkan perangkat lunak: "usia CD" belum berakhir di banyak bagian dunia. Sebagai kasus tambahan, pertimbangkan populasi nasional yang memiliki akses Internet luas tetapi menyensor sebagian besar dari itu. .) Konsekuensi dari perangkat lunak yang dapat didistribusikan ulang secara bebas adalah bahwa penerima mungkin tidak menerima salinan perangkat lunak Anda langsung dari Anda atau melalui saluran distribusi yang semula Anda antisipasi.
Satu argumen terakhir terhadap tautan lisensi dicatat oleh komentar MichaelT di bawah ini: itu dapat memungkinkan Anda untuk mengubah lisensi secara dinamis dan surut. Ini bisa dilakukan dengan sengaja, tetapi bisa juga dilakukan secara tidak sengaja, jika Anda mengubah lisensi antara versi perangkat lunak, tetapi menggunakan tautan lisensi yang sama untuk kedua versi, sehingga merusak lisensi lama Anda dari keberadaan. Pergantian seperti itu akan menambah kesulitan bagi orang yang perlu membuktikan bahwa mereka mendapatkan salinan yang lebih lama di bawah lisensi yang berbeda dari versi saat ini.
Jadi mengapa saya harus menyimpan lisensi di root proyek?
Saya bukan pengacara, tapi aku belum pernah melihat setiap argumen yang Anda lakukan harus tetap lisensi di root proyek. Bahkan GPL, yang menentukan bahwa lisensi harus menyertai setiap salinan karya, tidak membahas bagaimana lisensi tersebut harus menyertai karya tersebut. (Ini mungkin karena GPL dapat diterapkan dalam konteks non-perangkat lunak, di mana gagasan "direktori root" tidak bermakna.)
Menyimpan lisensi di direktori root mungkin merupakan ide yang bagus karena memaksimalkan kemungkinan pengguna akan melihatnya, dan dengan demikian meminimalkan frustrasi pengguna dan kemungkinan keluhan terhadap Anda karena mencoba menyembunyikan lisensi di beberapa direktori yang tidak jelas. Jika Anda memiliki banyak lisensi, mungkin lebih masuk akal untuk menempatkan semuanya di folder mereka sendiri, dan menyertakan proyek README yang jelas yang berisi jalur file untuk menemukan lisensi untuk setiap komponen.
Menempatkan lisensi Anda di direktori root adalah praktik yang sangat membantu juga karena hal itu dapat membingungkan lisensi modul yang dilisensikan berbeda sehingga berfungsi secara keseluruhan. Misalkan proyek saya FooProj menggunakan modul BarMod yang berdiri sendiri. FooProj mungkin berlisensi GPL, sedangkan modul mandiri mungkin berlisensi MIT. Ketika saya pertama kali membuka FooProj, saya melihat salinan GPL di root dan memahami bahwa pekerjaan secara keseluruhan adalah lisensi GPL. Ketika saya masuk ke folder untuk BarMod, saya melihat file lisensi baru di sana, dan saya mengerti bahwa isi folder ini adalah berlisensi MIT. Tentu saja, ini hanya bantuan yang membantu; Anda harus selalu menunjukkan lisensi modul Anda secara eksplisit dalam README, PEMBERITAHUAN, atau file serupa.
Singkatnya, menggunakan root file adalah masalah kenyamanan dan kejelasan. Saya belum melihat teks lisensi open-source yang mengikat secara hukum yang mensyaratkannya, saya juga tidak tahu alasan mengapa itu akan diperlukan secara hukum. Lisensi Anda seharusnya cukup mudah bagi penerima untuk ditemukan; termasuk lisensi di root proyek sudah cukup, tetapi tidak perlu, untuk memenuhi kriteria ini.
sumber
Memang ada lisensi yang mengizinkan itu. Apache 2.0, misalnya. Apache 2.0 hanya mensyaratkan bahwa setiap file sumber berisi tajuk kecil yang mengarah ke URL kanonik Lisensi Apache 2.0. Tidak perlu mereproduksi lisensi penuh di pohon sumber.
Dari lisensi Apache 2.0 itu sendiri:
sumber
4.(a) You must give any other recipients of the Work or Derivative Works a copy of this License;
Tidak ada persyaratan bahwa itu harus di root proyek. Ini hanyalah tempat yang paling umum, dan dengan demikian tempat pertama yang akan dilihat orang untuk menemukan lisensi. Dalam hal ini, bahkan jika itu tidak umum, masih mungkin tempat pertama yang dilihat orang. Karena lisensi ada untuk menginformasikan, menyembunyikan informasi itu tidak masuk akal.
Jika Anda menyembunyikannya di belakang URL, tidak ada jaminan mutlak bahwa URL itu akan selalu tersedia. Jika itu adalah file di root proyek, menurut definisi itu akan selalu tersedia.
Singkatnya, ini adalah tempat yang paling efektif, paling ramah pengguna.
sumber