简单地说,如果我使用反射将方法或功能添加到我链接到的LGPL库中定义的类中,这是否意味着对现有库的修改,以及我的反射代码是否必须在LGPL下发布?
发布于 2012-02-29 16:41:23
http://www.gnu.org/licenses/lgpl-3.0.en.html
我要说的是,反映到LGPL库是一项“组合工作”,因此受到许可证中所述的限制:
“组合工作”是通过将应用程序与库结合或链接而产生的作品。与其合并工作的图书馆的特定版本也称为“链接版本”。组合作品的“最小对应源”是指组合工作的对应源,不包括单独考虑的基于应用程序而不是链接版本的合并工作部分的源代码。组合工作的“对应应用程序代码”是指应用程序的目标代码和/或源代码,包括从应用程序复制组合工作所需的任何数据和实用程序,但不包括组合工作的系统库。
因此,考虑到这些定义(在这些定义中,反射到库中相当于与其链接,并且执行反射的代码是最小的对应源),那么您必须遵循本节:
根据您的选择,您可以传递一项合并的工作,综合起来,实际上不限制对合并工作中包含的库的部分进行修改,并为调试这些修改进行逆向工程,如果您还做了以下每一项工作:( d)按本许可证条款下的最低对应源和相应的“应用代码”以适合并允许用户用链接版本的修改版本重组或重新连接应用程序的方式传递以下内容之一: 0)按照GNU GPL第6节为传送相应源而指定的方式,传送修改后的组合作品。1)使用适当的共享库机制与图书馆连接。一种合适的机制是:(a)在运行时使用用户计算机系统上已经存在的图书馆副本;(b)使用与链接版本兼容的经过修改的图书馆版本。
因此,我想说(注意: IANAL),您也必须在LGPL下发布应用程序的反射代码部分,尽管您的应用程序中使用该代码的部分仍然可以是专有的。
发布于 2012-02-29 17:49:33
我想说,这与通过扩展LGPL库中的基类来创建一个新类并没有什么不同。您只是在运行时而不是编译时进行内省。因此,这是一部衍生作品,它不要求您公开您的源代码。
https://softwareengineering.stackexchange.com/questions/137608
复制相似问题