起因 在我们项目安装过程中使用到了XDialog,用来显示的内容信息以及安装的百分比信息,甚至需要在页面上进行选择,最后会获取执行的结果,并根据获得的结果指导后面的流程;这些代码都是在shell
脚本里面执行。
之前的小伙伴在调研的时候,已经调研清楚这个软件遵守的是GPLv2
开源许可,将对于XDialog的调用当成是类似于动态链接库类型的调用。小伙伴咨询了公司知识产权部门的人,他们在接受到的信息中,认为就是当成动态链接库的调用,最后忍痛决定将对于XDialog的调用代码开源。
虽然,我也对这个具体的GPL v2协议不清楚,但是在我的记忆中,当成链接库使用,或者在原始代码上进行二次开发等才需要,但是具体我也记不清。但是总觉得获得上面的结论有点问题。
问题分析 为了真正了解GPL v2协议,我将其打印出来,对着网上的翻译一行行阅读。当我阅读到GPL部分的如下一段的声明时,发现果然可能小伙伴做的分析结果是错误的,下面是对于GPL协议相关部分的摘抄:
Activities other than copying, distribution and modification are not这部分翻译如下:
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
【知识产权|调用GPL/GPL v2协议的代码并不是都需要开源】除复制、分发和修改外的行为超出了本协议的约束范围。执行程式的行为并不受限,程式的输出一般不在约束之内,除非其内容构成了本程式的派生作品(并非单纯地作为本程式的运行结果),判别取决于此程式的具体用途。我的使用是将其当成一个独立程序来运行的,执行的这部分是不受这个GPL(GPLv2/GPLv3)协议管制的,也就是不需要将这部分的调用代码同样以对应的GPLv2公开。
我的程序仅仅涉及到的是将其安装到我的系统中,属于复制、分发,我仅仅需要做的是将原始GPLv2协议拷贝过来就行。
扩展知识 在Linux系统上,复制文件
cp
和移动文件mv
等命令都是遵守GPL v3协议,也是基于GPL协议的协议,我们经常对其也是作为独立程序运行,因此也不需要将调用他们的地方公开。上面对于XDialog的运用也是类似。如果这个协议想要生效,需要添加的英文版的原文哈,中文版是没有法律效用的。
扩展阅读:
- GPLv2 许可证正经人话翻译 – 知乎.
- GNU General Public License, version 2 – Open Source Initiative.
- GNU General Public License, version 2 – GNU Operating System .
- GNU通用公共许可协议 第二版(官网推荐的中文翻译).
- Xdialog home page
- Xdialog documentation - License
推荐阅读
- linux 修改home 目录
- Linux|Linux系统的Shell编程
- Linux|Linux中的Shell编程
- Linux-Shell编程
- linux|MySQL数据库增删改查(基础操作命令详解)
- |NO.Z.00000|——————————|LinuxBasicEnd|
- |NO.Z.00001|——————————|LinuxBasicEnd|——|Linux&行业介绍|
- 内核|kernel 选项详解(stlinux2.3)
- java|pytorch贝叶斯网络_使用贝叶斯优化快速调试pytorch中的超参数的快速教程