开源软件之许可证(二)

开源软件之许可证(二)

                  吴国平 北京市隆安律师事务所

在开源项目的前提下,软件主程序许可证如果与数据库许可证不一致的话,如果确定最终的数据许可证呢p>

通常情况下,大多数的软件产品都是由大量的单个程序文件以及数据库所组成的,它们之间存在相互的调用关系,最终产生用户体验的UI界面效果。相应的,对于非开源的项目,开发团队会把不同的业务流程或者工作任务分给不同的程序员完成,而后通过代码库的合并及版本控制工具实现协作。

在此过程中,有两个节点会产生许可证的冲突。首先,不同程序员根据所负责模块的需要,会选择他认为适合的开源代码并入自己开发的程序中,例如他选择了适用GPL许可证的开源代码,并且并入该模块的程序中。但是与此同时,另外一个负责其他模块的程序员可能选择了适用LGPL许可证的开源代码,在项目代码合并测试时就会发现上述合并代码中产生了共同适用类库许可证的冲突(实际上,大多数团队只检测BUG而不会考虑许可证冲突)。

另外一种情况出现在对于函数库的认识上,在大型的项目中,多个程序模块会使用同一个函数库时,动态链接库可以减少在磁盘和物理内存中加载的代码的重复量,这有助于提高前台运行程序的速度。模块式体系开发意味着动态链接库的大量使用,对于某个程序员开发的不同程序模块,以及对应的动态链接库,在采用开源代码进行编程时,是否需要相同一致的许可证呢p>

有观点认为,因上述独立的程序模块以及动态链接库占有独立的硬盘空间,因此对于其他程序模块的GPL许可证对应的开源代码,该模块可以独立与GPL许可证单独适用例如LGPL等协议。反对上述观点的人认为,各个貌似独立的程序模块以及动态链接库,实际上是为了一个共同的项目而开发完成的,相互调用的关系决定了这本就是一个包含了诸模块的作品,因此GPL许可证影响适用并影响其他模块。

自由软件基金会曾发表观点,支持上述判断。笔者多年前曾承办一起软件著作权侵权的案例,最终对比的结果是项目主程序没有代码相同,但是项目的数据库中存在大量的表名以及字段名相同的情况,对于这种相同被告又没有合理的解释,北京的法院最终以存在调用关系为理由确定软件侵权。尽管上述判决并非开源许可证的纠纷,但是两者对于开源许可证适用范围的理解思路是一致的。

柚子(北京)移动技术有限公司等与数字天堂(北京) 络技术有限公司侵犯计算机软件著作权纠纷一案中,法院提到了HBuilder软件的根目录的表述,这样的判断逻辑或许可以为确认许可证冲突适用的范围提供参考依据。但是,一旦这样的规则建立,马上就会成为安全港,因为技术角度,如何建立程序打包的目录再容易不过。

SYNOPSYS在《2020开源安全及风险分析 告》67%的代码库存在许可证冲突的问题,可见上述问题的普遍性,可以预见不远的将来,大量因开源许可证冲突引发的纠纷会纷纷涌现。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月14日
下一篇 2022年1月14日

相关推荐