Dari FAQ GPL (tetapi saran ini berlaku untuk semua lisensi):
Mengapa GPL mensyaratkan termasuk salinan GPL dengan setiap salinan program?
Memasukkan salinan lisensi dengan karya itu penting agar setiap orang yang mendapatkan salinan program dapat mengetahui apa hak-haknya.
Mungkin tergoda untuk memasukkan URL yang merujuk pada lisensi, alih-alih lisensi itu sendiri. Tetapi Anda tidak dapat memastikan bahwa URL akan tetap valid, lima tahun atau sepuluh tahun dari sekarang. Dua puluh tahun dari sekarang, URL yang kita kenal sekarang mungkin sudah tidak ada.
Satu-satunya cara untuk memastikan bahwa orang yang memiliki salinan program akan terus dapat melihat lisensi, terlepas dari semua perubahan yang akan terjadi dalam jaringan, adalah dengan memasukkan salinan lisensi dalam program.
(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.