如果我开发一个只执行 GPL cli应用程序的GUI包装器(为了参数,比如tar),我必须将GUI包装器作为GPL发布吗?这是一个衍生作品吗?
如果它是衍生作品,我必须发布什么?
GPL应用程序和包装器将一起分发
IANAL.引用GPL FAQ 的简单聚合部分(强调我的):
"聚合"由许多单独的程序组成,这些程序一起分发在同一CD-ROM或其他媒体上.即使其他软件的许可证不是免费的或GPL不兼容,GPL也允许您创建和分发聚合.唯一的条件是您不能根据许可证发布聚合,该许可证禁止用户行使每个程序的个人许可证授予他们的权利.
两个独立程序之间的界限在哪里,一个程序有两个部分?这是一个法律问题,最终由法官决定.我们认为适当的标准取决于通信机制(exec,管道,rpc,共享地址空间内的函数调用等)和通信的语义(交换什么类型的信息).
如果模块包含在同一个可执行文件中,它们肯定会合并到一个程序中.如果模块被设计为在共享地址空间中链接在一起运行,那几乎肯定意味着将它们组合到一个程序中.
相比之下,管道,套接字和命令行参数是通常在两个单独程序之间使用的通信机制.因此,当它们用于通信时,模块通常是单独的程序.但是,如果通信的语义足够密切,交换复杂的内部数据结构,那么这也可以作为将两个部分组合成一个更大的程序的基础.
与此相关的常见问题解答中的另一个问题是"如果根据GPL发布的程序使用插件,那么插件的许可证有哪些要求":
这取决于程序如何调用其插件.如果程序使用fork和exec来调用插件,那么插件是单独的程序,因此主程序的许可证对它们没有要求.
..
恕我直言,一个纯粹的包装器,只是暴露GPL程序的功能应该是GPL.