Temos a seguinte licença BSD no LICENSE
arquivo:
Copyright (c) 2006-2016 SymPy Development Team
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
a. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
b. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
c. Neither the name of SymPy nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
Gerenciamos o repositório de origem por git ( https://github.com/sympy/sympy ) e, portanto, cada autor possui os patches que ele criou. Em seguida, temos um AUTHORS
arquivo no qual listamos todas as pessoas que contribuíram com patches (atualmente cerca de ~ 450). Normalmente, os autores bifurcam o repositório no github e adicionam patches conforme o git confirma.
Um autor bifurcou o repositório, mas adicionou seu nome ao LICENSE
arquivo como um aviso de direitos autorais da seguinte maneira (eu mudei o nome):
Copyright (c) 2006-2015 SymPy Development Team,
2015-2016 John Doe
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
a. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
b. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
c. Neither the name of SymPy nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
O autor desenvolveu um patch, que corrige um bug. A correção consiste em tocar apenas em um arquivo e remover 19 caracteres de uma linha e adicionar 18 caracteres em outra linha no mesmo arquivo. Ele também adiciona um teste de 5 linhas para esse bug em um arquivo de teste. É isso aí.
Em que condições é permitido legalmente aplicar seu patch (escolhendo seus commits, por exemplo, preservando a data e o nome do autor + email nos metadados do git)?
a) Precisamos modificar nosso LICENSE
arquivo para adicionar seu aviso de direitos autorais?
b) Ou ainda estamos cumprindo a licença BSD se mantivermos um AUTHORS
arquivo atualizado e mantivermos o repositório git que rastreia especificamente quais commits foram contribuídos por quais autores.
O que não gosto na opção a) é que, se todos os 450 colaboradores exigissem isso, precisaríamos manter essencialmente o conteúdo do AUTHORS
arquivo no LICENSE
arquivo, juntamente com a Copyright
palavra e os anos. O Git é muito melhor em manter os anos (e até dias e minutos), bem como quais linhas foram modificadas por cada autor e como. Depois, temos um LICENSE
arquivo simples que não muda e mantemos a lista de autores AUTHORS
(e temos um script que o mantém sincronizado com a lista de autores do git).
fonte
Respostas:
Você pode incorporar qualquer código que tenha uma licença compatível.
Dito isto, a menos que o novo código seja licenciado especificamente sob uma licença compatível, se você quiser inserir as alterações na sua base de código, estará se abrindo para a possibilidade de algumas dificuldades.
Em particular, a menos que o código indique especificamente que as novas contribuições estão sob uma licença compatível, a licença padrão "todos os direitos reservados" é aplicável a ele. Puxar o código seria uma violação de direitos autorais.
Também existe a possibilidade de o novo código ser licenciado sob uma licença compatível com você (e você precisaria manter essa licença para o código), mas incompatível com muitos de seus usuários. Por exemplo, se você estiver usando a cláusula BSD 2 e alguém licenciar as contribuições de uma bifurcação sob a cláusula BSD 3, provavelmente poderá inseri-la no seu código sem muita dificuldade. No entanto, como a cláusula BSD 3 não é compatível com a GPL, isso tornaria a GPL do seu projeto incompatível.
Se você decidir mudar de BSD para GPL posteriormente (por exemplo), e as solicitações pull atribuírem os direitos necessários para alterar a licença como parte do contrato de licença do colaborador, você extrairá o código de outros projetos que não concordaram em o CLA pode causar algumas dores de cabeça.
Esse é o caso geral ...
Para o caso específico em que o arquivo de licença mudou ... não sei. Desde a simples leitura do arquivo de licença:
Esse bit parece indicar que, se você deseja obter essas alterações, também precisará alterar seu arquivo de licença.
Infelizmente, você não tem um CLA bem definido no momento. Felizmente, neste momento, você só tem 450 pessoas para perguntar.
fonte
NOTICES
arquivo, onde armazenaríamos todas as licenças de terceiros.You grant to "The Company" (Civilized Discourse Construction Kit, Inc.) a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, relicenseable, transferable license under all of Your relevant intellectual property rights, to use, copy, prepare derivative works of, distribute and publicly perform and display "The Contributions" on any licensing terms, including without limitation: (a) open source licenses like the GNU General Public (v2.0) license; ...
Se houver código-fonte licenciado pela BSD e alguém forçar a adição de patches adicionais, esse novo código-fonte no novo repositório deverá incluir o arquivo de licença BSD exato do repositório original e os novos patches deverão ser licenciados sob uma nova licença (ou até a mesma licença). Portanto, o fork deve ter uma ou duas licenças no repositório. Não é aceitável editar a licença original, pois isso viola os termos da licença BSD.
Agora, se o repositório original quiser escolher os remendos do garfo, então uma cópia da nova licença do garfo deve ser adicionada ao repositório original. Por fim, ambos os repositórios terão cada licença, uma cobrindo cada conjunto de patches.
O SymPy também deve exigir que os colaboradores renunciem seus direitos autorais ao projeto SymPy. É potencialmente muito problemático permitir que os colaboradores mantenham seus direitos autorais sobre patches individuais no envio. É necessário um acordo de contribuinte explicando isso para esclarecer o que está acontecendo.
fonte