分配非GPL代码

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

我想在某些版本的GPL下分发这个软件包,但是我不清楚这是否可行。 如果没有,我可以使用另一个免费软件许可证。

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

  • 具体的免责声明
  • 特定的版权声明
  • 具体确认
  • 以下是文字:

    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.
    

    此外,子组件有此通知:

    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兼容,但我不确定对整个软件包的授权有什么影响。

    我的问题:

  • 我可以根据GPL2或GPL3分发整个软件包吗?
  • 如果是这样,ttf2pt1程序是否需要单独的许可证?
  • 如果无法在GPL2 / 3下分发整个软件包,我可以使用哪些许可证?
  • 我必须将哪些信息放入LICENSE文件中?
  • 编辑:如果可以在一个许可下使用我的代码释放包,在另一个许可下使用ttf2pt1,我也会对此感到满意。 有一个似乎相关的以前的答案。


    我不明白你为什么不能正确地包装ttf2pt1的源代码 - 包括它的源代码,编写一个包装函数并从R中调用这个包装函数。许可证明确允许你遵守其他条款(包括它的LICENSE文件等)。

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


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

    如果您不介意在您的R软件包中拥有许可许可证,那么最好的办法可能就是将非标准许可证包含在所有这些条款中。

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

    我有一个packagess(optparse,argparse),它将GPL(> = 2)代码与包含强制许可声明的GPL兼容Python许可证下的代码结合在一起。

    这里有一个很好的资源,FSF指导我将gpl兼容代码与强制性版权声明合并为GPL代码:http://www.softwarefreedom.org/resources/2007/gpl-non-gpl-collaboration.html

    在使CRAN开心的情况下,事实证明,如果整体软件包是GPL的,他们不喜欢描述中的许可证字段说明许可证或(GPL> = 2)+许可证,其中许可证包含您需要的所有许可版权声明保存。 特别是他们强迫我删除这样的LICENSE文件。 然而,他们似乎没有问题,在作者的描述中,您可以从许可证说明GPL(> = 2)[或任何适用的GPL]下给出关于您从哪里获得所有软件的高级描述,然后在版权声明“请参阅文件(inst /)COPYRIGHTS。在(inst /)COPYRIGHTS中,您可以包含所有需要保留的版权声明。我使用Debian软件包版权格式http://www.debian.org/doc/packaging-manuals/copyright-format /1.0/,但你不需要,你也可以查看R源文件中的COPYRIGHT文件。

    在所有包含它们的源文件中保留所有原始版权声明也是一个好主意。 如果您还使用GPL的增强功能直接修改该源文件,则softwarefreedom.org页面提供了一些建议,但如果您不更改包含的源文件,则通常可以不改变它们。


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

    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"))
    
    链接地址: http://www.djcxy.com/p/79541.html

    上一篇: Distributing GPL code with non

    下一篇: Which free source code license should I pick?