É prática comum fazer alguns ajustes ou correções no código de terceiros (seja uma essência simples ou uma biblioteca inteira). Mas também é comum que muitos desses códigos tenham suas próprias regras de licenciamento e, eventualmente, um cabeçalho em cada arquivo com informações de direitos autorais.
Depois de fazer essas modificações, qual é o procedimento correto a seguir? Mantenha as informações da licença intocáveis ou tente atualizá-las, incluindo algo como @author
ou @revision
tags?
Outro problema comum é alterar o espaço para nome / pacote de terceiros para ajustá-lo às convenções do seu projeto. Alguns tipos de licença incluem esse tipo de informação em seu bloco de licença. Posso alterá-lo livremente?
Sei que a resposta para essas perguntas depende de cada tipo de licença, para tornar minha pergunta mais específica ...
Considerando as regras gerais de licença (geralmente elas são diferentes em aspectos menores, certo?), É ético (ou pelo menos permitido) que eu adicione informações livremente ao bloco de licenças sobre minhas modificações e talvez também modifique como me refiro a isso no meu código (por exemplo, use YACorp.YALib
as Utils.YALib
)?
Respostas:
Acho que você está confundindo a licença do software e qualquer prólogo que possa fazer parte do software.
A licença é onde os proprietários dos direitos autorais do programa especificam os termos de uso (a licença) para outras pessoas. Algumas licenças são muito permissivas, outras são muito mais restritivas.
O prólogo é onde os autores inserem
@author
e@revision
marcam para fornecer uma maneira de rastrear alterações no código-fonte. Em alguns casos, tornar-se autor de uma adição não trivial ao código pode reivindicar os direitos autorais sobre essa seção do código. Desvendar questões de direitos autorais pode ser espinhoso e é melhor tratado pelos advogados. No entanto, você declarou especificamente que não está preocupado com esse aspecto, então vou seguir em frente.Isso realmente depende das convenções do projeto.
Se você bifurcar o projeto, poderá fazer o que quiser.
Se você planeja contribuir com suas mudanças de volta ao projeto, deve seguir a convenção estabelecida. Se houver um motivo convincente para alterar o espaço para nome, você precisará apresentá-lo à comunidade do aplicativo.
Não mude a licença!
Primeiro, você provavelmente não tem os direitos legais para alterar a licença. Segundo, todas as alterações feitas provavelmente atrapalharão a licença. Deixe as alterações de licença para os advogados.
Na atualização do prólogo, isso depende das normas do projeto. Alguns projetos não querem um prólogo porque usam o controle de origem para rastrear isso. Outros projetos fazem. Siga as convenções do projeto.
Se você está mantendo suas alterações, por que se importa com o que os outros pensam? Algo que você usa apenas para si mesmo e nunca distribui para outras pessoas não tem impacto no projeto original. Então eles não se importam com o que você faz.
Se você planeja distribuir suas alterações ou contribuí-las de volta para o projeto, é necessário avaliar as convenções desse projeto. Alguns projetos não querem ser bifurcados e terão uma licença em vigor impedindo isso. Outros chegam ao ponto de dizer "faça o que quiser" e você recebe carta branca para fazer o que achar melhor. Por fim, a resposta aqui depende do projeto específico que você está olhando.
fonte
Eu adicionaria um comentário, em parte para sinalizar ao leitor que o arquivo não é "baunilha", com links para qualquer documentação relevante ou um sistema de rastreamento de problemas.
Edit: Portanto, esta situação me lembra quando uma distribuição Linux empacota, por exemplo, uma biblioteca. O Debian tem diretrizes e padrões sobre como os pacotes devem ser construídos e nomeados, o que pode variar de como a biblioteca é normalmente distribuída pré-construída.
Eu não acho que você deveria ter vergonha de nomear / criar / modificar uma biblioteca, pois acho que você não distribuirá o resultado para o mundo inteiro? Nesse caso, eu incluiria um README junto com a fonte que descreve quais alterações você fez e por quê. Por exemplo, README. $ {CompanyName} .changes
fonte
Você precisará consultar a regra de licenciamento do código.
Em geral, muitos aplicativos front-end de código aberto (por exemplo, Firefox, OpenOffice) consideram o nome e o logotipo do aplicativo como uma marca comercial; portanto, se você lançar uma versão modificada do aplicativo, não poderá usar as marcas registradas / trajes originais (como IceWeasel, Torbrowser, LibreOffice).
No entanto, a maioria das bibliotecas de programação geralmente se preocupa menos com as marcas registradas, desde que seja bastante claro quem faz o quê (geralmente isso pode ser encontrado nos metadados do controle de versão).
As informações do autor têm dois propósitos:
Este último se torna mais importante à medida que suas alterações se tornam maiores. As informações reais de autoria geralmente podem ser encontradas no controle de versão, mas alguns projetos creditam formalmente um conjunto de autores em um arquivo separado. O ponto de corte em que as pessoas seriam formalmente creditadas varia para cada projeto; entre em contato com os autores originais em caso de dúvida.
fonte