Durante anos, tenho sido um grande fã de colocar licenças em coisas compartilhadas on-line para facilitar a outras pessoas determinar se e como elas podem reutilizar essas coisas. Antes de o GitHub começar a empurrar gentilmente seus usuários para incluir arquivos LICENSE em seus repositórios, eu realmente não sabia como fazer isso melhor com código - particularmente código compartilhado publicamente no GitHub! - mas tentei fazer bom uso dos arquivos LICENSE desde então.
Agora estou na situação em que trabalhei em um projeto pequeno com outras pessoas, o que exige menção de várias licenças (devido a bibliotecas e códigos de terceiros, além de arquivos que não são de código). Enquanto meus parceiros discutem o assunto de maneira desleixada - foi sugerido que eu “coloque o código on-line como está, ninguém se importará” -, prefiro fazer isso corretamente. O problema é: não sei como se deve mencionar várias licenças (diferentes) no GitHub.
Eu já vi várias soluções diferentes no GitHub, e é por isso que é difícil para mim julgar se essa resposta a uma pergunta um pouco diferente é autoritativa. O que eu gostaria de saber é qual das alternativas a seguir - se houver - é a mais comum ou se existem outras maneiras adicionais de fazer isso.
- Crie um único arquivo LICENSE e coloque as descrições de todas as diferentes licenças. ( Perguntas : elas devem ser colocadas em uma ordem específica? Iniciarei o arquivo mencionando os nomes de todas as licenças contidas nela, para uma melhor visão geral)?
- Criar um arquivo de licença por licença usado e nomeá-los
LICENSE.md
,LICENSE.LibNameA.md
,LICENSE.AssetsB.md
etc., tal como sugerido na resposta ligada. ( Pergunta : A nomeação basear-se-ia em nomes de projeto? Não em nomes de licença? Se eu usasse mais de uma licença para material de contribuição automática, eu mencionaria todas elas no 'principal'LICENSE.md
? Se não, o que eu faria?) - Crie dois arquivos de LICENÇA : um listando a (s) licença (s) para o conteúdo 'principal', ou seja, todos os códigos / ativos que você mesmo criou; um para todos os materiais de terceiros. ( Perguntas como acima : existe um esquema de nomeação específico que alguém usaria e ordem em que listaria os materiais de terceiros?)
Por fim, se eu entendi as várias explicações e projetos do GitHub a respeito de suas APIs de licenças corretamente, apenas o arquivo 'main' LICENSE será levado em consideração ao determinar uma licença de repo (embora eu não tenha conseguido descobrir qual licença seria escolhida se vários foram mencionados).
Respostas:
Você pode usar qualquer mecanismo para incluir as licenças que desejar, desde que fique claro para o visitante do seu projeto qual licença é aplicável a qual parte do projeto.
Minha preferência seria:
fonte
Em uma apresentação dos criadores do SPDX ( slide 12 ), é muito claro:
Conteúdo de
LICENSE
:Você pode adicionar dois arquivos LICENSE adicionais:
LICENSE.Apache-2.0
eLICENSE.GPL-2.0-or-later
.Em todos os casos,
README.md
deve conter um identificador de licença SPDX :Você pode fazer assim:
Note isso
Apache-2.0 OR GPL-2.0-or-later
eApache-2.0 AND GPL-2.0-or-later
faz uma grande diferença. O primeiro significa que o usuário pode escolher entre ambos (que é o caso regular!) E o segundo indica que o usuário deve cumprir as duas licenças. Veja também multi-licenciamento na Wikipedia.Observe que estou usando a nova Lista de licenças SPDX 3.0 (a partir de 28/12/2017 ) aqui. As versões de 2017 tinham
GPL-2.0
um identificador para a GPL 2.0, mas não estava claro se isso significava "apenas GPL 2.0" ou "GPL 2.0 ou qualquer versão posterior".fonte
Eventualmente, entrei em contato diretamente com o suporte do GitHub com relação à minha pergunta e eles disseram que não havia problema em citá-los se eu deixasse claro que as respostas eram apenas sugestões, não recomendações.
A resposta original deles tinha o seguinte a oferecer:
fonte