2
Mozilla公共许可证(MPL 2.0)与较小的GNU通用公共许可证(LGPL 3.0)
我想在基于Web的源代码托管服务上发布用基于类,面向对象的编程语言(Java)编写的软件库,该软件库允许将项目的分支合并到主项目(通过pull 合并到 GitHub中)要求)。我已经在网络上进行了研究,并对如何许可该软件给予了很多思考。在以下假设中(从IANAL角度来看)我是否正确? LGPL和MPL都促进共享对在其他软件项目中使用的LGPL / MPL许可软件的修改。我可以不要求修改后的库的用户托管库的单独分支,而可以促进对原始库的贡献(例如,通过拉取请求)。 主要区别在于必须如何将MPL / LGPL许可代码链接到项目中。MPL源代码文件可以直接复制到(可能是)专有软件项目(静态链接)中,而LGPL许可代码必须动态链接(宽松地链接到可能是专有软件项目的链接),以便最终用户可以切换出许可软件许可软件库的另一个版本的库)。 动态链接(因此LGPL)在打包专有软件产品时增加了额外的障碍,而不是通过静态链接(以及MPL)来促进对开源软件库的更多贡献。有一个修改LGPL允许静态链接。 还有没有其他相关的差异(从IANAL角度)。 在旧的许可证版本不适合我的需要不如最新的。 如您所见,我的主要要求是对软件库的修改(可能对公众有用)保持开放源代码,而不会限制在专有产品中使用软件库。 没有许可证还要求将与原始作品相关的软件库扩展作为开源发布,因为相关术语的范围可以很小/很大,因此最终不能作为GPL用于专有产品(不发布全部源代码)。 我很想使用修改后的LPGL,但是另一方面,它不受欢迎。基于以上几点,我更喜欢MPL。 问题:我的上述说法正确吗?考虑到我的要求,我应该选择哪个许可证? 解决方案:在受欢迎的讨论中,我选择坚持使用MPL是因为它受欢迎,链接自由并且它是未经修改的正式许可。