Eu tenho procurado várias licenças que posso usar para um projeto de código aberto meu, mas todos os projetos que eu vi, com todos os tipos de licenças, parecem ter um gigante e desagradável (na minha opinião) aviso em cada arquivo de origem que afirma que o arquivo está listado sob uma determinada licença. Não acho que encontrei um único projeto de origem que não seja de domínio público e que não tenha um aviso como esse.
Isso parece um desperdício de tempo e espaço no arquivo. Planejo colocar @license
e @author
marcar meus projetos, mas não vejo por que preciso listar um aviso tão gigantesco em cada arquivo individual, se não quero tornar meu código em domínio público.
Existe alguma razão pela qual eu gostaria de incluir esse aviso em meus projetos ou simplesmente incluir um aviso na tag README
e uma @license
tag seria bom o suficiente? Isso afeta a regra "claramente declarada" da maioria das licenças ou é apenas um exagero para que as pessoas não discutam?
Respostas:
No meu entendimento, a GPLv3 sugere fortemente (ou talvez exija, pelo menos, como eu entendo o texto Como aplicar esses termos a seus novos programas , após a seção 17) um aviso de direitos autorais em todos os arquivos de origem. Diz
E os projetos GNU de propriedade da FSF, como o GCC, têm esse aviso em todos os arquivos.
Também conheço um programa (sistema CAIA da J.Pitrat) que foi recusado em um site da comunidade de software livre porque não tinha esse aviso em todos os arquivos.
Não sou advogado , mas acredito que esse aviso é praticamente obrigatório em todos os arquivos de origem de um programa GPLv3 .
(se você usar outra licença, principalmente uma que não seja da FSF, leia atentamente sobre como aplicá-la; YMMV; no entanto, o AFAIK escrever um aviso em todos os arquivos não prejudicará.)
fonte
Eu já vi muitos projetos que mencionam apenas a licença no arquivo README ou em um arquivo LICENSE or COPYING.
Seu software é coberto automaticamente por direitos autorais, conforme acordado na lei internacional. (A menos que você esteja trabalhando para o governo dos EUA ou alguma outra organização à qual os direitos autorais não se apliquem.)
Se alguém usa seu software, deve seguir o contrato de licença ou seguir as restrições de uso justo sobre o que pode fazer.
Suponha que a pessoa queira usar um dos arquivos em sua distribuição de código, o que obviamente requer uma cópia e, portanto, a lei de direitos autorais se aplica. Por padrão, eles NÃO têm o direito de usar seu software sob a lei de direitos autorais. É somente quando eles conhecem e seguem as restrições de licença que eles têm permissão para usá-lo.
Portanto, se eles usam um arquivo sem uma licença de software, estão violando a lei de direitos autorais. Como todas as licenças dizem algo como "O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software", eles são obrigados a colocar essa licença em algum lugar.
Isso pode estar no próprio arquivo ou, quando usei o código como biblioteca, coloquei as partes relevantes em seu próprio diretório e adicionei um "README" ou "LICENSE" a esse subdiretório.
Em resumo, você não precisa colocar a licença em cada arquivo. Eu acho que é um exagero. Não há proteção legal extra para isso. Ajuda um usuário a jusante um pouco, mas não muito.
Penso que a tradição de muitos metadados baseados em comentários (licença, data de criação de cada função, changelog etc.) são tradições muito antigas que existem porque são fáceis de fazer e que são mais um talismã do que úteis.
Por exemplo, o modelo padrão do Eclipse adiciona o que considero metadados inúteis antes de cada função, que acho que é muito melhor capturada pelo controle de versão. Mas essa prática é comum em muitas lojas.
fonte
O problema é que é muito fácil desagregar um único arquivo de código-fonte de seu projeto maior, como alguém apenas fazendo check-out, enviando um e-mail, baixando um arquivo, sem o restante que contém os direitos autorais completos. E, em seguida, esse arquivo pode ser passado ad-infinitum no tempo, para as enésimas partes que talvez não tenham idéia da origem dos arquivos.
O aviso de direitos autorais na parte superior lembra a todos que encontram esse arquivo solitário que ele é de fato protegido por direitos autorais, e não por domínio público, e, portanto, alguma licença pode ou não estar envolvida em sua distribuição ou uso. Versus, deixando o buscador fazer suas próprias suposições aleatórias.
fonte
Não há reunião secreta de superpotências em um abrigo subterrâneo que diga o que você deve colocar em cada arquivo de origem.
Isso deixa claro para o usuário que esse arquivo está sob qualquer licença e, de fato, a maioria dos softwares da GPL contém um pequeno preâmbulo para ler license.txt. Lembre-se de que os projetos são divididos e os arquivos são reutilizados, portanto, apenas colocar a mensagem em um único arquivo pode não ser uma boa ideia.
Se no caso improvável de ir a tribunal, você poderia ter mais reclamações se tivesse marcado claramente cada arquivo como seu trabalho e sob qual licença ele estava - então ninguém poderia afirmar que eles achavam que esse arquivo particular não estava coberto
fonte
Eu quase postei uma pergunta notavelmente semelhante. Menos sobre aborrecimentos e mais sobre aspectos técnicos. TL; DR: Eu acredito que a resposta é uma questão de prioridades do autor. Talvez a intenção seja mais precisa que as prioridades ...
Eu acredito que não há problema em fazer referência a uma licença em sua fonte, dependendo da sua definição de "ok". Vamos concordar que o termo "desacompanhado" indica um arquivo de origem que faz parte de um projeto que foi implacavelmente separado de sua base de códigos amorosa. Esse arquivo contém uma linha como esta:
Ou uma linha muito mais legal como esta:
"Mas espere!" , você exclama: "você acabou de dizer que o arquivo foi separado do projeto! E o goodlics.com é redirecionado para um invasor de domínio! Pare de ser muito trixy!" Você está certa, eu disse isso, mas pode estar tudo bem, e pare de gritar comigo. Aqui está o meu raciocínio de não advogado:
nyancat-bcminer-algo.qbasic
arquivo incrível que você escreveu e postou no LiveJournal é, acredite ou não, não é de domínio público. A menos que você diga que é de domínio público. Por padrão , é seu e somente seu. É ... Precioso . (Pelo menos por 25 a 50 anos ou mais, a menos que você seja da Disney.)Esse raciocínio faz duas suposições épicas e provavelmente inválidas:
Obrigado por pilotar vias aéreas com cérebro de macaco.
Isenção de responsabilidade: Isso me parece lógico: tenho 90% de certeza de que estou 100% errado.
fonte
Há uma diferença entre licença e preâmbulo .
Em alguns dos meus projetos, estou usando a Licença Pública Geral GNU, Versão 3.0 . A GNU GPL torna necessário ter um preâmbulo em cada arquivo de código fonte:
Fonte: http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble
Então aqui está o que eu faço:
1. Adicione License.txt
Para seguir as regras, coloquei um LICENSE.txt na raiz do repositório do meu projeto. Isso também é sugerido pelo GitHub (consulte " Onde fica a licença" ).
2. Adicione preâmbulo usando dobra automática
Em seguida, incluo o preâmbulo da GPL no topo de cada arquivo de código-fonte, MAS, para dificultar a perturbação, eu o oculto no IDE. A maioria dos IDEs tem um recurso para dobrar automaticamente os blocos de código. O NetBeans também suporta dobragem de código personalizado e o WebStorm também suporta comentários dobráveis .
Então, aqui está como ele se parece:
Penso que este é um compromisso muito bom entre conforto e segurança jurídica.
Se você tiver muitos projetos em que precisa adicionar uma licença, http://www.addalicense.com/ pode ser útil.
Observação: meu conselho se refere à GPLv3. Outros tipos de licença podem não exigir um preâmbulo.
fonte
LICENSE
arquivo, ou seja, você não pode alterar o texto da GPL soltando-o.Há outra maneira prática ainda não mencionada aqui.
SPDX-License-Identifier
etiqueta, rótulo, palavra-chave. https://spdx.org/using-spdxUtilizando-o, seu "gabarito legal" em cada cabeçalho do arquivo de origem reduz para apenas duas linhas:
Além disso, as pessoas que automatizarem as análises da cadeia de suprimentos de software agradecerão sua adesão a um padrão comum de descrição de licença legível por máquina.
fonte