~~~~~~~~~~~~~ 关于LGPL和MPL两种开源代码的商用问题!!~~~~~~~~~~~~~~~~~~~~~亟待。。。!!!(200分)

  • 主题发起人 主题发起人 starsite
  • 开始时间 开始时间
S

starsite

Unregistered / Unconfirmed
GUEST, unregistred user!
我在公司的产品中使用了LGPL/MPL两种开源代码,请问怎么在产品中做版权申明以及其他必须遵守的义务?才能避免版权问题?
我使用的方式有两种:
1 对于LGPL的代码,都是以dll的方式使用。
2 对于MPL的代码,有些是dll,有些是直接使用cpp/pas文件。
 
方式一下使用LGPL是正确的做法,但必须保证你没有对封装的 DLL 做了自己的修改。你可
以修改后再封装成 DLL 来使用,但修改后的代码必须随 DLL 一起发放。如果没有修改,则
可以不包含代码,只要放入 LGPL 许可和 DLL 版权即可。如果修改的部分涉及到二边修改,
也就是说,先在 LGPL 代码这边做修改,比如引出一个特定的接口,然后又在自己的私有代
码这边做修改来引用这个接口,呵呵,那么你私有代码的那部分引入接口代码需要按照LGPL
许可办理,也就说,你不能藏私的,也要一起发布出来,并且,调用了这个引入接口的模块
,被称为衍生产品,也必须遵守 LGPL 规范。

方式二中使用MPL,都是正确的,但不管你修改了多少代码,必须声明你对该代码没有权利。
重要的,如果有朝一日你打算把这些代码发布出来,他们依然遵守MPL,并且权利归最初版
本的创造者。MPL重视的是源代码发布。同样的,象你这样情况的发布时,也必须附加 MPL
许可和何处可以取得这些源代码的声明。

另外还要注意以下情况:
1) 你引用、修改、联编了 MPL 的这些代码后,你的全部代码就不能再按照其他协议发布。
2) 你如果正好在为一个 GPL 许可的项目工作,你就不能直接修改任何 MPL 的代码放入你的项目。
3) 如果你还引用了 GPL 代码,情况就复杂了,最简单的建议是请你还是仔细地剔除所有 GPL 代码为好。

我不是法律工作者,所以请不要在法律意义上引证上述说法。
 
非常感谢小雨哥如此热心的解答,小生愚昧,再请教一下:
“你引用、修改、联编了 MPL 的这些代码后,你的全部代码就不能再按照其他协议发布。”
也就是说加入我在某个工程(exe)中直接使用了某个MPL的pas文件,该工程都必须用MPL发布?
 
目前我面临“两个”问题:
1 我的exe直接使用了MPL的代码(直接引用pas文件),我的exe的是否必须在MPL下发行,也就是说是否也必须按MPL来开放源码?
2 如果exe不需要按MPL开源,我是否应该在“About”对话框或(和)帮助文档或(和)Readme.txt中申明我的软件用到了哪些MPL的开源代码或者申明这些代码的版权,并告知我的被授权人在哪里可以获得这些代码?

谢谢
 
不,不需要,这里说的发布限制是说假如你突然改变私有代码的想法,打算以源代码的形式
发布出来的话,你必须按照 MPL 发布,并且排除与 MPL 发布可能存在冲突的其他类型许可
的代码引用。

上面我的回答中,假如你始终坚持以私有源代码形式不发布出去的话,你目前采取的做法已
经符合 MPL 许可了。
 
2 如果exe不需要按MPL开源,我是否应该在“About”对话框或(和)帮助文档或(和)Readme.txt中申明我的软件用到了哪些MPL的开源代码或者申明这些代码的版权,并告知我的被授权人在哪里可以获得这些代码?
---------
这个问题呢?声明在哪个地方比较合适呢?
 
再说明白点:
按照你顶楼帖子里的做法已经符合这些许可证的规定了。在这个基础上,你只要:
1) 没有引用、参考任何 GPL 源代码
2) 没有修改 LGPL 源代码
3) 始终保持仅作为私有源代码,永不公布或转移授权修改后的 MPL 源代码
4) 在发布的编译后二进制代码发布包里添加了相关许可和说明文本
就可以商业发布编译后的二进制产品了。
 
非常感谢!
 
后退
顶部