Colocando licença em cada arquivo de código? [fechadas]


93

Acho que é desnecessariamente duplicado ter em cada arquivo de código, mas vejo isso na maioria dos projetos de código aberto. Devo fazer o mesmo ou apenas incluir uma única licença fora do código?



1
Você tem que excluir a garantia de cada arquivo de origem, caso contrário, você pode ser pego. (Observe que um editor adequado, como o Vim, pode ser facilmente configurado para dobrar o clichê de exclusão de garantia para você e sumir de vista automaticamente.)
Evgeni Sergeev

Respostas:


74

Um único fora do código, por favor! Não sei sobre os outros, mas odeio ver a mesma coisa no topo de cada arquivo.

Acho que li algumas vezes, apenas folheando-o.


10
Eu discordo de Zifre. Qualquer licença repetida no topo é irritante para mim.
strager de

49
É razoável e sensato identificar sob qual licença cada arquivo-fonte foi lançado, porque o arquivo pode ser separado do resto do código (reutilização - incentivada, em geral, pelo código-fonte aberto), e se o arquivo não contém informações sobre a licença , é mais complicado rastrear até a licença correta. Mas toda a licença em cada arquivo - não; isso seria grotesco para GPL ou LGPL. Como já sugerido, para as licenças curtas, é um incômodo ter o texto da licença real no arquivo, mas é um julgamento. Mas é sensato identificar sob qual licença ele foi lançado.
Jonathan Leffler

14
Acabei de atualizar os cabeçalhos dos arquivos em meu projeto para ter apenas três linhas: copyright, nome da licença e um URL para o texto da licença. Ele encurtou meus cabeçalhos de 26 linhas (BSD) para 3 linhas. :)
Esko Luontola

3
@Esko: Você pode postar uma amostra? Eu não sei o que você escreveu sobre os direitos autorais. Obrigado.
Joan Venge

6
Esta resposta está marcada como solução, mas na minha opinião a questão ainda está em aberto, desde que não tenhamos evidence for the legal situation. Perhaps a lawyer can add a link to a court decision.
Jonas Stein,

25

EULA é o termo errado aqui, já que as pessoas que procuram o código-fonte geralmente não são usuários finais.

Legalmente, também não faz diferença; os direitos autorais não precisam ser declarados explicitamente.

Basicamente, tudo o que você consegue é um risco menor de as pessoas violarem acidentalmente seus termos de licença. Você terá que decidir o quão importante isso é para você.

Eu diria que o melhor compromisso é colocar um cabeçalho muito curto contendo um link (URL absoluto, bem como relativo dentro do projeto) para o texto da licença completa em cada arquivo de código-fonte. Dessa forma, qualquer pessoa que se preocupa com a licença sabe onde encontrá-la (de preferência, pessoas que estão dispostas a pagar altas taxas de licença; você certamente deseja que essas pessoas possam entrar em contato com você!)


O copyright pode não precisar ser explícito, mas e quanto ao copy-left?
Kekoa de

1
@kekoav: copyleft é menos restritivo do que copyright. Por padrão, você não pode fazer trabalhos derivados.
Zifre

3
Em uma disputa, esse não seria um argumento válido. Se for informado de que existe uma licença e como recuperá-la, você não poderá localizar barreiras técnicas que são sua culpa e que o impediram de ver a licença.
Lasse V. Karlsen

1
"Copyleft" é uma gíria para a ideia básica da GPL de "subverter" as restrições de direitos autorais de dentro, ou seja, usar seus direitos como detentor de direitos autorais para conceder uma licença a qualquer pessoa para usar seu código livremente, mas forçá-los a liberar SEUS códigos, que são baseado no seu sob a mesma licença.
Michael Borgwardt

2
Corrigir; mas neste contexto, como disse Zifre, isso não importa. Se você não souber a licença sob a qual um determinado trecho de código foi publicado, deve assumir que não tem permissão para usá-lo. Portanto, como editor, você não precisa ir muito longe para fazer as pessoas lerem a licença.
Michael Borgwardt

14

Não, você não precisa colocar a licença em cada arquivo de código-fonte.

Se você olhar mais de perto, a maioria dos aplicativos FOSS também não faz isso. Eles colocam uma declaração de copyright no topo de cada arquivo e uma frase curta dizendo a que licença o arquivo está e onde você pode encontrar o texto completo da licença. Eles geralmente apontam para o arquivo COPYING ou LICENSE contendo o texto completo da licença e / ou para um site que contém o texto completo (caso o arquivo COPYING não esteja mais lá).

Como Michael Borgwardt disse em suas respostas, legalmente você não precisa fazer isso. Mas é aconselhável para o código-fonte que você pretende distribuir, já que as pessoas podem ver imediatamente quem tem os direitos autorais e qual é a licença.


1
Este. O aviso de copyright deve incluir uma referência ao nome da licença (se for padrão) e uma descrição de como encontrar o arquivo de licença na árvore de origem.
jmucchiello

13

Pode depender da licença. A GPL distingue entre preambleelicense . Ele afirma claramente que o preâmbulo (irritante) deve fazer parte do código :

Posso omitir o preâmbulo da GPL, ou as instruções de como usá-lo em seus próprios programas, para economizar espaço?

O preâmbulo e as instruções são partes integrantes da GNU GPL e não podem ser omitidos. Na verdade, a GPL está protegida por direitos autorais e sua licença permite apenas a cópia literal de toda a GPL. (Você pode usar os termos legais para fazer outra licença, mas não será a GNU GPL.) (1)

Fonte: 1) http://www.gnu.org/licenses/gpl-faq.html#GPLOmitPreamble

Consulte também http://softwarefreedom.org/resources/2012/ManagingCopyrightInformation.html

Um e -book gratuito do ifrOSS explica e comenta a GPL 2 em alemão. Existe outro para GPL 3

Para uma resposta bem fundamentada, você deve pedir um conselho jurídico que não está disponível no sx. Se você não conseguir encontrar um advogado para seu projeto (código aberto), dê uma olhada na rede jurídica da FSFE .


7
O preâmbulo e as instruções fazem parte da licença completa , mas nada diz que você deve colocar a licença completa em todos os arquivos. [...] attach the following notices to the program.- os avisos a seguir são apenas uma pequena seção da licença completa. safest to attach them to the start of each source file- mais seguro, mas não obrigatório. each file should have at least the "copyright" line and a pointer to where the full notice is found. - o único requisito é a linha de copyright com uma indicação para o resto. Não há problema em colocar a licença completa em um arquivo separado.
toxalot

3
E eu diria que deveria ! = Deve .
toxalot

7

Acho que o raciocínio por trás de colocá-lo em cada arquivo é legal. Se o acordo estiver em cada arquivo, não há chance de alguém tropeçar em um pedaço de código sem ser exposto à licença.

Pode não ser bom, mas todos os meninos grandes o usam, então se for apenas uma dor visual, eu procuraria uma razão melhor para não fazer o mesmo.

Se você estiver usando GPL, este é mais um problema, mas se você estiver usando licenças de domínio público como BSD ou MIT, eu não acho que você realmente se importe com o que as pessoas fazem com o código. Suponho que depende de quão estrita é sua licença.


1
Pois bem, nesse caso, basta apontar em cada arquivo que ao continuar com ele, você concorda com a licença no arquivo licence.txt. Mas não copie / cole o mesmo texto em cada arquivo. Às vezes encontro arquivos com código mais curto que a licença.
Torre de

Sim, concordo que funciona tão bem assim, especialmente para licenças longas. Mesmo que não seja legalmente essencial, ou mesmo suportado em tribunal, uma referência à sua licença é, no mínimo, boa para informar as pessoas sem que elas tenham que procurar em qual licença o código está incluído.
Kekoa

3

IANAL,

Supondo que você esteja falando sobre licenciamento, não um EULA, você pode colocar a licença fora. Isso quase sempre é feito com licenças muito longas, como a GPL. Seria tolice colocar a licença GPL inteira em cada arquivo. Normalmente, você teria apenas algum tipo de aviso informando onde pode encontrar a licença real. Isso é perfeitamente legal. No entanto, com licenças realmente curtas, como BSD / Apache / MIT / qualquer que seja, é mais simples incluir a licença em todos os arquivos, já que o aviso dizendo onde encontrar a licença seria quase tão longo quanto a própria licença.


2

Depende do que a licença determina. A GPL, por exemplo, instrui você a colocar um breve aviso em cada arquivo de origem, incluir a licença inteira em algum lugar de sua distribuição de origem e tornar sua distribuição de origem disponível para qualquer um que obtenha uma cópia da distribuição binária.

Se você discordar disso e for SEU código, você está livre para escolher uma licença mais aceitável ou criar a sua própria.


1

Se o seu código vai ser compilado, então você está apenas distribuindo um binário, então realmente não importa. Porque quando você cria um binário, os comentários são removidos antes que o processo de compilação ocorra. Só importa se você vai distribuir o código-fonte real, seja de código aberto ou fechado. Isso faz diferença se você for distribuir um aplicativo em uma linguagem de script que não compila.


Obrigado. Vai ser de código aberto.
Joan Venge

Você pode criar uma string codificada para conter a licença, então ela aparecerá no binário, mas provavelmente é muito :).
Liran Orevi

1

Você não precisa disso para a licença, um único arquivo externo servirá, desde que esteja claro quais arquivos ele cobre.

No entanto, para direitos autorais, você deve ter o aviso de direitos autorais em cada parte do texto.


Obrigado, então copyright é diferente?
Joan Venge

INAL, mas uma licença é um contrato entre você e o usuário / cliente. Copyright é uma declaração de propriedade de uma parte de uma obra escrita. Alguém poderia pegar um fragmento de seu código e razoavelmente alegar que não era copyright porque o aviso estava faltando. Não se preocupe, embora "Copyright Joe Soap (Cleansoft Inc.)" seja tudo que você precisa.
James Anderson

10
Você está tão errado sobre isso. Embora seja geralmente bom adicionar avisos de direitos autorais em todos os lugares apenas para deixar claro, isso não significa que seja um jogo justo "presumir que não foi protegido por direitos autorais" Porque você sabe que TUDO está protegido por direitos autorais. Quando alguém obtém o código-fonte, ele pode encontrar uma declaração de licença que permite seu uso, ou pode descobrir que é de domínio público por um motivo ou outro. Se ele não pensa, é protegido por direitos autorais e não pode ser copiado. Copyright é uma coisa automática e é bom mencioná-lo, mas não fazer isso não significa que você o perderá ...
Jasper

1

O que faço é colocar um comentário de duas linhas na parte superior do arquivo, informando o nome da minha empresa, a data da última revisão e o nome da licença que o arquivo de origem possui e, no final do arquivo, uma versão resumida do licença.

Claro, a licença completa (todas elas no caso de licenças múltiplas) está sempre incluída no arquivo de origem e nos diretórios de lançamento.


3
como você automatiza a data da última revisão?
Dustin Getz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.