首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用非GPL码分配GPL码

用非GPL码分配GPL码
EN

Stack Overflow用户
提问于 2012-06-05 07:45:03
回答 3查看 1.2K关注 0票数 5

我为R编写了一个包,其中包括程序ttf2pt1的源代码,该程序是在安装时编译的。程序没有链接;我编写的代码用一个名为system2()的函数调用这个程序,这基本上就像从命令行调用它一样。这个程序的整个源代码都在它自己的目录中,我根本没有修改它。

我想在GPL的某些版本下分发这个包,但我不清楚这是否可能。如果没有,我会同意另一个自由软件许可。

这个程序有一个许可文件,它是允许的,但基本上需要包括:

一种特定的免责声明

以下是课文:

代码语言:javascript
复制
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. 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.
3. All advertising materials mentioning features or use of this software
   must display the following acknowledgement:
     This product includes software developed by the TTF2PT1 Project
     and its contributors.

此外,子组件有以下通知:

代码语言:javascript
复制
Copyright (c) 1992 by I. Lee Hetherington, all rights reserved.
Permission is hereby granted to use, modify, and distribute this program
for any purpose provided this copyright notice and the one below remain
intact.

我相信这个许可证与GPL是兼容的,但我不知道这对整个软件包的授权意味着什么。

我的问题:

  1. 我可以在GPL2或GPL3下分发整个包吗?如果是的话,ttf2pt1程序需要单独的许可证吗?
  2. 如果不能在GPL3 2/3下分发整个包,我可以使用什么许可证?
  3. 我必须在许可证文件中输入什么信息?

G 220

编辑:,如果可以在一个许可证下用我的代码发布包,在另一个许可下发布ttf2pt1,我也会很高兴的。有一个以前的answer似乎是相关的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-05 13:21:14

我不明白为什么不能正确包装ttf2pt1的源代码--包括它的源代码、编写包装函数和从R调用包装函数--许可证显然允许这样做,前提是您遵守其他条款(包括它的许可文件等)。

R本身包含来自其他项目的代码;您可以研究R的(相当大的)源代码,看看它是如何做到的。当然,许多CRAN包也这样做,所以我相信你可以找到合适的例子。

票数 1
EN

Stack Overflow用户

发布于 2013-12-19 19:45:55

该广告条款可能会使ttf2pt1与GPL:https://www.gnu.org/licenses/license-list.html#OriginalBSD不兼容,因此不能将该文件包含在GPL‘’ed包中。

如果您不介意在R包中拥有许可许可,那么您最好的选择就是在所有这些条款中包含一个非标准的许可。

但是,假设您的非GPL代码与GPL兼容,那么是的,您可以在总体GPL许可下分发R包。

我有包(opt解译,a解析),它将GPL (>=2)代码与包含强制许可通知的GPL-下的代码结合起来。

下面是FSF向我介绍的关于将GPL兼容的代码与强制性版权声明与GPL代码结合在一起的一个好资源:http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html

从让CRAN高兴的角度看,如果整个包是GPL‘’ed的,而它们在描述中不喜欢这样的描述:许可字段中写着许可或(GPL >= 2) +许可,其中许可证包含您需要保存的所有许可版权通知。特别是他们强迫我删除这样的许可文件。然而,在作者的描述中,你给出了所有软件的高级描述,比如GPL (>= 2)或许可许可下的GPL (GPL 2),然后在版权之下说“请参阅文件(inst/)版权。在(inst/)版权中,您可以包括所有需要保存的版权通知。我使用Debian包版权格式http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/,但您不需要这样做。您也可以查看R源中的版权文件。”

这也是一个好主意,保存所有的原始版权通知,在任何源文件中,他们是包含。softwarefreedom.org页面有这样的建议,如果您也使用GPL‘’ed增强直接修改该源文件,但是如果您不更改所包含的源文件,则通常可以将它们保持不变。

票数 1
EN

Stack Overflow用户

发布于 2012-06-08 17:49:57

这并不是对我的问题的直接回答,但是hadley给我发送了一些代码来查找在非标准许可证下分发的CRAN包。我使用了这段代码来找到一些可以使用的示例。

代码语言:javascript
复制
local <- file.path(tempdir(), "packages.rds")
 download.file("http://cran.R-project.org/web/packages/packages.rds", local,
   mode = "wb", quiet = TRUE)
 on.exit(unlink(local))
 cp <- readRDS(local)
 rownames(cp) <- unname(cp[, 1])
cp <- as.data.frame(cp, stringsAsFactors = F)
table(cp$License)
library(stringr)
subset(cp[c("Package", "License")], str_detect(License, "LICENSE"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10893486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档