Estou escrevendo um pacote comercial que usa R (GPL) para o seu cálculo. As Perguntas frequentes da GPL indicam claramente que os intérpretes da linguagem de programação GPL não impõem restrições de licenciamento ao "programa" (arquivo de texto com código R). Por enquanto, tudo bem.
Parte do pacote é compilada usando o Rcpp, que também usa a GPL. O próximo parágrafo da FAQ diz:
No entanto, quando o intérprete é estendido para fornecer "ligações" a outras instalações (frequentemente, mas não necessariamente, bibliotecas), o programa interpretado é efetivamente vinculado às instalações que utiliza através dessas ligações.
Pode-se interpretar que R está fornecendo uma ligação às bibliotecas Rcpp ( Rcpp.dll
no pacote do Windows). A suposição segura é que isso atrapalha meu código com a GPL, mas essa é realmente a conclusão correta?
Parte da minha incerteza é a rigidez do link entre meu código e Rcpp.dll
. Existem referências ao Rcpp na dll, mas não sou proficiente o suficiente para saber se essas são referências ao ambiente de desenvolvimento ou às chamadas que estão sendo feitas para símbolos na biblioteca do Rcpp. Se for o primeiro, acredito que a biblioteca Rcpp está sendo vinculada pelo R e não pela minha biblioteca. Eu suspeito que este último, no entanto, já que o Rcpp fornece uma cola (açúcar, na verdade) para simplificar a escrita e a execução do código.
Existem inúmeras discussões relacionadas à GPL na distribuição de código. Para nomear alguns:
- Dentro de uma máquina virtual
- Exposição de propriedade intelectual
- Consequências das dependências da GPL
- Usando uma biblioteca GPL em software comercial
NB: Geralmente sou um grande defensor do OSS e participei do desenvolvimento e distribuição no passado. Questões de "proteção de código" geralmente causam problemas aos programadores de código aberto, resultando frequentemente em debates acalorados sobre a filosofia do software. Reconheço valor de ambos os lados e quero garantir que estou cumprindo a letra e (se possível) o espírito das leis. Não estou pescando uma brecha na licença; Estou procurando ajuda para interpretar e colocar no contexto.
Os pacotes R que dependem do Rcpp são necessários para usar a GPL?
Respostas:
Sim, se você vincular seu código à biblioteca Rcpp e distribuir o trabalho derivado, seu pacote quase certamente estará sujeito à GPL. As respostas para esta pergunta relacionada se aplicam à sua situação.
Às vezes, o autor de uma obra oferece uma escolha entre licenças comerciais e de código aberto (com uma taxa geralmente necessária para a opção comercial), mas não parece que esse seja o caso do Rcpp.
fonte
Rcpp.dll
biblioteca fecha o negócio. Obrigado, @sifferman.Eu acredito que os pacotes R que dependem do Rcpp não são precisam usar a GPL, mas sim uma licença compatível com a GPL.
A leitura da seção 1.5 do Rcpp-FAQ afirma claramente que:
Isso significaria que, se alguém optar por usar, por exemplo, a licença da cláusula BSD-3, ele estará perfeitamente bem em fazê-lo.
Para adicionar uma ressalva importante: Como Dirk apontou nos comentários, a agregação de código licenciado compatível com GPL e código licenciado GPL terá que ser editada pela GPL. Pode-se encontrar no gnu.org uma boa explicação sobre o que é um agregado e o que não é. Observe que, quando você libera um pacote, distribui apenas seu código, é por isso que você pode usar qualquer licença compatível com GPL e não exclusivamente GPL.
fonte