De la FAQ GPL (mais les conseils s'appliquent à toutes les licences):
Pourquoi la GPL nécessite-t-elle d'inclure une copie de la GPL avec chaque copie du programme?
Il est essentiel d'inclure une copie de la licence avec l'œuvre pour que tous ceux qui obtiennent une copie du programme puissent connaître leurs droits.
Il peut être tentant d'inclure une URL faisant référence à la licence, au lieu de la licence elle-même. Mais vous ne pouvez pas être sûr que l'URL sera toujours valide dans cinq ou dix ans. Dans vingt ans, les URL telles que nous les connaissons aujourd'hui peuvent ne plus exister.
La seule façon de s'assurer que les personnes qui ont des copies du programme continueront à voir la licence, malgré tous les changements qui se produiront sur le réseau, est d'inclure une copie de la licence dans le programme.
(c'est moi qui souligne)
Au moment où le site qui vous héberge tombe en panne ou modifie ses chemins URL, les personnes qui ont des copies de votre logiciel ne peuvent plus vérifier quels droits ils peuvent exercer en toute sécurité. Supposons même que vous puissiez en quelque sorte garantir que cette URL exacte sera toujours en ligne: la possibilité pour les utilisateurs de vérifier que leur utilisation de votre logiciel est légale dépend toujours de la capacité de se connecter à cette URL particulière. Bien que cette exigence puisse ne pas être onéreuse dans votre ville / pays / planète particulière, elle peut l'être aussi ailleurs. Vous ne devez pas imposer cette exigence, en particulier lorsque la solution de contournement (y compris le texte complet de la licence) est triviale.
Vous pouvez répondre à cette plainte en disant: "Et alors? Si l'URL descend ou n'est pas accessible, un descripteur sans ambiguïté comme 'GNU GPL v3' devrait suffire. Les copies en texte intégral de la GPL sont nombreuses; les utilisateurs peuvent rechercher la licence eux-mêmes. " Quelques problèmes viennent immédiatement à l'esprit:
Cela ne se généralise pas aux identifiants de licence qui sont moins clairs (l'expression "licence BSD" me vient à l'esprit).
Cela ne se généralise pas bien aux licences qui sont moins courantes ou qui ont été personnalisées ("GPL avec exceptions de liaison" vient à l'esprit: quelles exceptions de liaison?). Dans quelle mesure une licence doit-elle être courante avant qu'il soit raisonnable de s'attendre à ce qu'un utilisateur la trouve de manière fiable par son nom?
Cela nécessite toujours que les utilisateurs disposent d'une connexion Internet, ce qui peut ne pas être le cas, même s'ils avaient une connexion au moment où ils ont obtenu le logiciel. (Et ils n'avaient peut-être pas accès à Internet lorsqu'ils ont obtenu le logiciel: "l'ère du CD" n'est pas encore terminée dans de nombreuses régions du monde. Comme cas supplémentaire, considérons les populations nationales qui ont un accès Internet étendu mais en censurent une grande partie .) Une conséquence d'un logiciel librement redistribuable est qu'un destinataire peut ne pas recevoir une copie de votre logiciel directement de vous ou par le biais d'un canal de distribution que vous aviez prévu à l'origine.
Un dernier argument contre les liens de licence est noté par le commentaire de MichaelT ci-dessous: il pourrait vous permettre de modifier dynamiquement et rétroactivement la licence. Cela pourrait être fait intentionnellement, mais cela pourrait également être fait par accident, si vous modifiez la licence entre les versions du logiciel, mais que vous utilisez le même lien de licence pour les deux versions, détruisant ainsi votre ancienne licence. Un tel changement ajouterait de la difficulté aux personnes qui doivent prouver qu'elles ont obtenu leur ancienne copie sous une licence différente de la version actuelle.
Alors pourquoi dois-je conserver la licence à la racine du projet?
Je ne suis pas avocat, mais je ne l' ai jamais vu aucun argument convaincant que vous avez besoin de garder des licences dans la racine du projet. Même la GPL, qui précise que la licence doit accompagner chaque copie de l'œuvre, ne dit pas comment elle doit accompagner l'œuvre. (Cela peut être dû au fait que la GPL pourrait être appliquée dans des contextes non logiciels, où la notion de "répertoire racine" n'a pas de sens.)
Garder la licence dans le répertoire racine est probablement une bonne idée car elle maximise la probabilité que l'utilisateur la voie, et minimise ainsi à la fois la frustration de l'utilisateur et la probabilité de plaintes contre vous pour avoir tenté de cacher la licence dans un répertoire obscur. Si vous avez plusieurs licences, il peut être plus judicieux de les placer toutes dans leur propre dossier et d'inclure un fichier README de projet évident qui contient des chemins de fichier pour trouver la licence pour chaque composant.
Placer votre licence dans la racine du répertoire est également une pratique utile car cela peut lever l'ambiguïté des licences des modules dont la licence est différente de celle du travail dans son ensemble. Supposons que mon projet FooProj utilise le module autonome BarMod. FooProj peut être sous licence GPL, tandis que le module autonome peut être sous licence MIT. Lorsque j'ouvre FooProj pour la première fois, je vois une copie de la GPL à la racine et je comprends que le travail dans son ensemble est sous licence GPL. Lorsque je descends dans le dossier de BarMod, j'y vois un nouveau fichier de licence et je comprends que le contenu de ce dossier est sous licence MIT. Bien sûr, ce n'est qu'une aide utile; vous devez toujours indiquer la licence de vos modules de manière explicite dans un fichier README, NOTICE ou similaire.
En résumé, l'utilisation de la racine du fichier est une question de commodité et de clarté. Je n'ai vu aucun texte de licence open source juridiquement contraignant qui l'exige, et je ne connais aucune raison pour laquelle il serait légalement requis. Votre licence doit être raisonnablement facile à découvrir pour le destinataire; l'inclusion de la licence dans la racine du projet est suffisante, mais pas nécessaire, pour satisfaire ce critère.