2009年12月21日 星期一 13:18
> 如果你能对无法加载动态库的情形进行正确的异常处理,保证你的程序不能加载对应的动态库仍然能够运行 这么说来还是很宽松的啊。呵呵。做一个异常太容易了。 2009/12/21 pan shizhu <pan.shizhu在gmail.com>: > 2009/12/19 est <electronixtar在gmail.com>: >>> 调用了使用了GPL代码的原程序中的接口,即为使用了GPL的代码。所以,这个插件也需要使用GPL。 >> 哦。。。那么底线是什么?我听说底线是管道。。。是不是真的? >> 如果管道调用了GPL代码也要开源,那么世界上很多东西都没法做了吧。。。。 > > 记得原来讨论过这个问题,比较官方的说法为:底线是“不可分离”原则。 > > 例如你通过管道调用了 GPL 代码,但是,如果你不调用这部分 GPL 代码,你的程序是否还能工作?——如果你动态或者静态的连接了 GPL > 代码,显然缺少这部分代码通常你是不能工作的。一个例外就是动态连接动态加载的情况(使用dl库的情形),这种情况下,如果你能对无法加载动态库的情形进行正确的异常处理,保证你的程序不能加载对应的动态库仍然能够运行,那么两者就不符合“不可分离”原则,因此你就可以脱离 > GPL。 > > 对于管道而言。这个道理也一样,假设你的程序调用这个管道失败就不能工作,那么你的程序与GPL就是不可分离的。那么你就必须要GPL。假设你能够正确处理不能管道调用GPL程序的情形并且你的程序能正常工作。那么就被认为可分离,你就可以不必GPL。 >
Zeuux © 2024
京ICP备05028076号