5
是否有修改后的LGPL许可证允许静态链接?
LGPL要求,如果程序使用LGPL版本的库,则用户必须能够将程序与库的其他版本重新链接: ... d)执行以下一项操作: 0)根据本许可条款和相应的应用程序代码,以适合用户并在允许用户重新组合或重新链接应用程序与链接版本的修改版本的方式下传达最小应用程序源,以产生按照GNU GPL第6节指定的方式传送相应的源代码,修改组合工作。 1)使用合适的共享库机制与库链接。一种合适的机制是(a)在运行时使用用户计算机系统上已经存在的库的副本,并且(b)在与链接版本接口兼容的库的修改版本下正常运行。 ... 但是,在某些情况下,这可能会带来很大的困难。特别是,Haskell程序几乎总是静态编译的。而且,编译器会进行跨模块优化,因此不可能取出一部分代码并用另一部分代码代替。因此,很难满足此条件。(请参阅Haskell Wiki上的此链接。) 动态链接将是一个解决方案,但是在许多情况下,这是不可能的。例如: 某些平台可能根本没有动态链接。 某些语言无法进行动态链接。或者,不可能使模块成为多平台。 在某些情况下,动态链接会阻止重要的优化。虽然我说这很少是一个严重的问题,但是在像Haskell这样的语言中,性能损失可能是相当大的。 因此,我正在寻找一种标准的类似LGPL的许可证,该许可证不需要重新链接(并且我知道这样做会给用户带来一些自由)。一些项目使用他们自己的LGPL修改,例如wxWidgets。但是,我宁愿使用一些更正式的标准许可证,也许已由某些法律专家检查过,并且与(L)GPL兼容。有这样的东西吗? (我也想知道这种LGPL修改是否会带来一些不可预见的后果。)