开源软件之许可证(二)
吴国平 北京市隆安律师事务所
在开源项目的前提下,软件主程序许可证如果与数据库许可证不一致的话,如果确定最终的数据许可证呢?
通常情况下,大多数的软件产品都是由大量的单个程序文件以及数据库所组成的,它们之间存在相互的调用关系,最终产生用户体验的UI界面效果。相应的,对于非开源的项目,开发团队会把不同的业务流程或者工作任务分给不同的程序员完成,而后通过代码库的合并及版本控制工具实现协作。
在此过程中,有两个节点会产生许可证的冲突。首先,不同程序员根据所负责模块的需要,会选择他认为适合的开源代码并入自己开发的程序中,例如他选择了适用GPL许可证的开源代码,并且并入该模块的程序中。但是与此同时,另外一个负责其他模块的程序员可能选择了适用LGPL许可证的开源代码,在项目代码合并测试时就会发现上述合并代码中产生了共同适用类库许可证的冲突(实际上,大多数团队只检测BUG而不会考虑许可证冲突)。
另外一种情况出现在对于函数库的认识上,在大型的项目中,多个程序模块会使用同一个函数库时,动态链接库可以减少在磁盘和物理内存中加载的代码的重复量ÿ