如果我开发一个GUI封装器,它只执行 GPL cli应用程序(出于参数的缘故,比如tar)我必须将GPL封装器释放为GPL吗?这是一项衍生工作吗?GPL CLI应用程序的GUI包装,它是衍生物吗?
如果它是派生工作我必须发布什么?
无论是GPL的应用程序和包装将一起分发
如果我开发一个GUI封装器,它只执行 GPL cli应用程序(出于参数的缘故,比如tar)我必须将GPL封装器释放为GPL吗?这是一项衍生工作吗?GPL CLI应用程序的GUI包装,它是衍生物吗?
如果它是派生工作我必须发布什么?
无论是GPL的应用程序和包装将一起分发
IANAL。引述GPL FAQ(重点煤矿)的mere aggregation部分:
一个“聚合”由许多单独的程序,同样的CD-ROM或其他媒体上一起发布的。 GPL允许您创建和分发聚合,即使其他软件的许可不是免费的或GPL不兼容的。唯一的条件是你不能根据禁止用户行使每个程序的个人许可授予他们的权利的许可来发布聚合。
两个单独的程序之间的界限和一个包含两个部分的程序在哪里?这是一个法律问题,最终由法官决定。我们认为合适的标准取决于通信机制(exec,pipe,rpc,共享地址空间内的函数调用等)和通信的语义(交换了哪些类型的信息)。
如果模块包含在同一个可执行文件中,它们肯定会合并到一个程序中。如果模块被设计为在共享地址空间中链接在一起,那几乎肯定意味着将它们组合成一个程序。
相比之下,管道,套接字和命令行参数是通常在两个独立程序之间使用的通信机制。所以当它们用于通信时,这些模块通常是独立的程序。但是,如果通信的语义足够亲密,交换复杂的内部数据结构,这也可以作为将这两部分合并为一个更大程序的基础。
另一个question从涉及到这个常见问题是:“如果在GPL下发布程序使用的插件,什么是一个插件许可证的要求”:
它取决于程序如何调用其插件。如果程序使用fork和exec来调用插件,那么插件是单独的程序,所以主程序的许可证对它们没有要求。
..
恕我直言,精神上,一个纯粹的包装,只是公开的GPL程序的功能应该是GPL。
IANAL,但我敢肯定,如果你不与您的代码链接的GPL代码,只是使用CLI,你的代码是不是受GPL影响。您唯一的责任是分发GPL代码的来源。
如果您决定发布GPL应用,我建议您在媒体上只包含压缩的源码tar,而不是通过下载“提供”,因为您必须无限期地维护所有下载站点您分发的GPL应用程序版本。
你可以更精确地定义“包装” - GUI应用程序链接对GPL代码,还是它只是执行二进制文件? – Rob 2008-12-25 01:15:02
它只是免除了二进制文件,将添加到描述;) – hhafez 2008-12-25 01:29:26