Estoy escribiendo un paquete comercial que usa R (GPL) para su cálculo. Las preguntas frecuentes sobre GPL establecen claramente que los intérpretes de lenguaje de programación GPL no imponen restricciones de licencia al "programa" (archivo de texto con código R). Hasta aquí todo bien.
Parte del paquete se compila usando Rcpp, que también usa la GPL. El siguiente párrafo en las preguntas frecuentes dice:
Sin embargo, cuando el intérprete se extiende para proporcionar "enlaces" a otras instalaciones (a menudo, pero no necesariamente, bibliotecas), el programa interpretado está efectivamente vinculado a las instalaciones que utiliza a través de estos enlaces.
Se puede interpretar que R está proporcionando un enlace a las bibliotecas Rcpp ( Rcpp.dll
en el paquete de Windows). La suposición segura es que esto contamina mi código con la GPL, pero ¿es esta realmente la conclusión correcta?
Parte de mi incertidumbre es la estrechez del vínculo entre mi código y Rcpp.dll
. Hay referencias a Rcpp en el archivo dll, pero no soy lo suficientemente competente como para saber si se trata de referencias al entorno de desarrollo o de llamadas a símbolos dentro de la biblioteca Rcpp. Si es lo primero, entonces creo que la biblioteca Rcpp está siendo vinculada por R y no por mi biblioteca. Sin embargo, sospecho lo último, ya que Rcpp proporciona un pegamento (azúcar, en realidad) para simplificar la escritura y ejecución de códigos.
Hay innumerables discusiones relacionadas relacionadas con la GPL en la distribución de código. Para nombrar unos pocos:
- Dentro de una máquina virtual
- Exposición de propiedad intelectual.
- Consecuencias de las dependencias GPL
- Usando una biblioteca GPL en software comercial
NB: generalmente soy un gran defensor de OSS y he participado en el desarrollo y distribución en el pasado. Las preguntas sobre el "código de protección" a menudo provocan molestias de los programadores de código abierto, lo que a menudo resulta en acalorados debates sobre la filosofía del software. Reconozco el valor de ambos lados y quiero asegurarme de cumplir con la letra y (si es posible) el espíritu de las leyes. No estoy buscando un agujero en la licencia; Estoy buscando ayuda para interpretarlo y ponerlo en contexto.
¿Se requieren paquetes R que dependen de Rcpp para usar la GPL?
Respuestas:
Sí, si vincula su código con la biblioteca Rcpp y distribuye el trabajo derivado, su paquete seguramente estará sujeto a la GPL. Las respuestas a esta pregunta relacionada se aplican a su situación.
A veces, el autor de un trabajo ofrecerá una opción entre licencias comerciales y de código abierto (con una tarifa que a menudo se requiere para la opción comercial), pero no parece que este sea el caso con Rcpp.
fuente
Rcpp.dll
biblioteca cierra el trato. Gracias @sifferman.Creo que los paquetes R que dependen de Rcpp no están obligados a usar GPL sino a usar una licencia compatible con GPL.
La lectura de la sección 1.5 de Rcpp-FAQ establece claramente que:
Eso significaría que si uno elige usar, por ejemplo, la licencia de la cláusula BSD-3, está perfectamente bien hacerlo.
Para agregar una advertencia importante: como Dirk ha señalado en los comentarios, la agregación del código con licencia compatible con GPL y el código con licencia GPL tendrá que ser editado con GPL. Uno puede encontrar en gnu.org una buena explicación de qué es un agregado y qué no. Tenga en cuenta que cuando lanza un paquete, distribuye solo su código, por eso puede usar cualquier licencia compatible con GPL y no exclusivamente GPL.
fuente