导入导入GPL库的库?

时间:2011-07-19 13:57:20

标签: python licensing

所以我要导入一个库(reportlab),它是获得许可的BSD,但它本身使用的是获得GPL许可的some库。

我的问题是,如果我将reportlab导入python - 我是否必须遵守BSD或GPL许可?

3 个答案:

答案 0 :(得分:8)

IANAL。您必须遵守您正在使用的所有包裹的许可证。

但是,大多数人会说如果你只使用这些库的公共API,理论上它们可以替换为实现相同API的其他库,你的代码不属于GPL,只对你做的任何修改库。

这是Linux内核开发社区的观点,例如。

编辑:在查看reportlab的网站后,很明显,如果您不使用PyXML解析器,那么您只受BSD许可证的约束,因为您没有使用任何GPL代码。

此外,如果您不分发任何GPL程序包,则评论中会提出您的代码是否受GPL影响的问题,因为GPL主要处理根据许可证修改代码并重新分发该代码。答案是,如果您的代码是GPL代码的衍生作品,则必须根据GPL许可您的代码是否您要重新分发原始代码GPL代码。

答案 1 :(得分:3)

IANAL。从reportlab页面的第1.3节开始:reportlab licensing您可以看到他们希望您与他们讨论商业许可证。

链接到BSD代码时的GPL代码要求您在GPL下许可BSD代码 - 我在这里谈论静态链接。非GPL软件不允许动态链接到GPL代码 - 事实上,这就是LGPL许可证存在的原因,该许可证允许从非(L)GPL代码进行动态链接。 glibc许可证中也有一个例外,因为他们希望您能够使用它构建商业软件。

Linux内核开发人员并未就链接问题的所有方面达成一致。如果您正在构建标准API(POSIX),那么很明显您不需要成为GPL。但他们的论点比这更深入,所以我不认为有直接比较。

从上面的链接:“yRXP,我们的XML解析器,在GNU通用公共许可证下。这是因为它下面的RXP解析器是在这个许可下。如果你想在一个封闭的源项目中使用pyRXP,你有与我们谈判。“这表明他们拥有pyRPX,可以为您提供或出售不同的许可证。

这与pyQT问题类似。您可以使用它制作GPLed软件,但对于需要支付的商业资料。除非你想制作一个GPL的商业产品。

答案 2 :(得分:0)

IANAL要么,但我认为只要你不打算分发其他软件它也不会发挥作用。例如,如果您只是告诉您的用户“您必须安装pyRXP才能使用它”(如果您使用“reportlab”可能更容易),我认为GPL不适用于您自己的代码。 < / p>

编辑:虽然在这种特殊情况下使用reportlab工具包没有问题,但上述解释似乎不正确(请参阅agf对此答案的评论,以及他自己的答案)

请注意,reportlab工具包(虽然它是由同一家公司“ReportLab”)并不一定使用pyRXP。它们是两个不同的东西,每个都有它自己的许可证。

查看reportlab的源代码,在reportlab.lib.rparsexml中,似乎pyRXP仅在安装时导入(单独,因为它不包括在内),并且如果pyRXP不可用则使用另一个xml解析器。 (我想这是允许pyRXP使用的方式,并且仍然保持reportlab在BSD许可下)

但也许你最好问reportlab mailing list ......