Nas Perguntas frequentes da GPL (mas o conselho é aplicável a todas as licenças):
Por que a GPL exige a inclusão de uma cópia da GPL em todas as cópias do programa?
A inclusão de uma cópia da licença no trabalho é vital para que todos que obtiverem uma cópia do programa possam saber quais são seus direitos.
Pode ser tentador incluir um URL que se refere à licença, em vez da própria licença. Mas você não pode ter certeza de que o URL ainda será válido, daqui a cinco ou dez anos. Daqui a 20 anos, os URLs como os conhecemos hoje podem não existir mais.
A única maneira de garantir que as pessoas que possuem cópias do programa continuem vendo a licença, apesar de todas as alterações que ocorrerão na rede, é incluir uma cópia da licença no programa.
(ênfase minha)
No momento em que o site que hospeda sua licença é desativado ou altera seus caminhos de URL, as pessoas que têm cópias do seu software não podem mais verificar quais direitos podem exercer com segurança. Suponha que, mesmo que você possa, de alguma forma, garantir que esse URL exato esteja sempre online: a capacidade dos usuários de verificar se o uso do seu software é legal ainda depende da capacidade de se conectar a esse URL específico. Embora esse requisito possa não ser oneroso em sua cidade / país / planeta em particular, ele pode ser oneroso em outros lugares. Você não deve impor esse requisito, especialmente quando a solução alternativa (incluindo o texto completo da licença) é trivial.
Você pode responder a essa reclamação dizendo: "E daí? Se o URL cair ou não estiver acessível, um descritor inequívoco como 'GNU GPL v3' deve ser suficiente. Cópias de texto completo da GPL são abundantes; os usuários podem procurar a licença em si ". Alguns problemas vêm imediatamente à mente:
Isso não generaliza para licenciar identificadores menos claros (a frase "licença BSD" vem à mente).
Isso não generaliza bem para licenças menos comuns ou personalizadas ("GPL com exceções de link" vem à mente: quais exceções de link?). Quão comum uma licença precisa ser antes que seja razoável esperar que um usuário a encontre de maneira confiável pelo nome?
Isso ainda exige que os usuários tenham uma conexão com a Internet, o que pode não ser o caso, mesmo se eles tivessem uma conexão no momento em que obtiveram o software. (E eles podem não ter acesso à Internet quando obtiveram o software: "a era do CD" ainda não terminou em muitas partes do mundo. Como um caso adicional, considere as populações nacionais que têm amplo acesso à Internet, mas censuram grande parte dele. .) Uma conseqüência do software livremente redistribuível é que um destinatário pode não receber uma cópia do seu software diretamente de você ou através de um canal de distribuição que você previa originalmente.
Um argumento final contra os links de licença é observado pelo comentário de MichaelT abaixo: ele pode permitir que você altere a licença de forma dinâmica e retroativa. Isso poderia ser feito intencionalmente, mas também por acidente, se você alterasse a licença entre as versões do software, mas usasse o mesmo link de licença para ambas as versões, eliminando a licença antiga. Essa mudança adicionaria dificuldade para as pessoas que precisam provar que obtiveram sua cópia mais antiga sob uma licença diferente da versão atual.
Então, por que tenho que manter a licença na raiz do projeto?
Eu não sou um advogado, mas eu nunca vi qualquer argumento convincente que você não precisa manter licenças na raiz do projeto. Até a GPL, que especifica que a licença deve acompanhar cada cópia da obra, não diz como deve acompanhar a obra. (Isso pode ocorrer porque a GPL pode ser aplicada em contextos que não são de software, onde a noção de "diretório raiz" não é significativa.)
Manter a licença no diretório raiz é provavelmente uma boa idéia, pois maximiza a probabilidade do usuário vê-la e, portanto, minimiza a frustração do usuário e a probabilidade de reclamações contra você por tentar ocultar a licença em algum diretório obscuro. Se você tiver muitas licenças, pode fazer mais sentido colocá-las todas em sua própria pasta e incluir um README óbvio do projeto que contém caminhos de arquivo para encontrar a licença para cada componente.
A colocação de sua licença na raiz do diretório é uma prática útil também porque pode desambiguar as licenças dos módulos licenciados de maneira diferente do que funciona como um todo. Suponha que meu projeto FooProj use o módulo autônomo BarMod. O FooProj pode ter licença GPL, enquanto o módulo autônomo pode ter licença MIT. Quando abro o FooProj pela primeira vez, vejo uma cópia da GPL na raiz e entendo que o trabalho como um todo é licenciado pela GPL. Quando desço para a pasta do BarMod, vejo um novo arquivo de licença e entendo que o conteúdo desta pasta é licenciado pelo MIT. Claro, isso é apenas uma ajuda útil; você sempre deve indicar o licenciamento de seus módulos explicitamente em um arquivo README, AVISO ou similar.
Em suma, o uso da raiz do arquivo é uma questão de conveniência e clareza. Eu não vi nenhum texto de licença de código-fonte aberto legalmente obrigatório que o exija, nem sei de qualquer motivo para isso ser legalmente exigido. Sua licença deve ser razoavelmente fácil para o destinatário descobrir; incluir a licença na raiz do projeto é suficiente, mas não é necessário, para satisfazer esse critério.