IANAL. You have to abide by the licenses of all the packages you're using.
However, most would say if you only use the public API of those libraries, and they could theoretically be swapped out for other libraries implementing the same API, your code does not fall under the GPL, only any modifications you make to those libraries.
This is the point of view taken by the Linux kernel development community, for example.
Edit: After looking at the site of reportlab, it is clear that if you don't use the PyXML parser then you're only bound by the BSD license, as you're not using any GPL'd code.
Also, the question was raised in the comments whether your code is affected by the GPL if you don't distribute any GPL'd packages because the GPL primarily deals with modification of the code under the license and redistribution of that code. The answer is that if your code is a derivative work of the GPL'd code, you have to license your code under the GPL whether or not you're redistributing the original GPL'd code.
IANAL. From section 1.3 of the reportlab page here:reportlab licensing you can see they want you to talk to them about a commercial license.
GPL code when linked to BSD code requires you to license the BSD code under GPL - I'm talking static linking here. Dynamic linking to GPLed code is not allowed by non-GPL software - in fact, this is the reason for the existence of the LGPL license which allows dynamic linking from non-(L)GPL code. There is also an exception in the glibc license because they want you to be able to build commercial software with it.
The Linux Kernel developers do not all agree on all aspects of linking issues. If you're building against a standard API (POSIX) then it seems obvious you don't need to be GPL. But their arguments go deeper than that, so I don't think there is a direct comparison.
From the link above: "yRXP, our XML parser, is under the GNU General Public License. This is because the RXP parser underneath it is under this license. If you want to use pyRXP in a closed source project, you have to negotiate with us." This suggests they own pyRPX and can give or sell you a different license for it.
That's similar to the pyQT issue. You can make GPLed software with it, but for commercial stuff you need to pay up. Unless you want to make a commercial product that is GPLed of course.
IANAL either, but I think it doesn't even come into play as long as you are not going to distribute the other software as well. For example, if you just tell your users "you have to install pyRXP in order to use this" (maybe easier if you make that "reportlab"), I think the GPL does not apply to your own code.
EDIT: While there is no problem with using the reportlab toolkit in this particular case, the above interpretation does not seem to be correct (see agf's comments on this answer below, as well as his own answer)
Note that the reportlab toolkit (although it's by the same company "ReportLab") doesn't necessarily use pyRXP. They are two different things, each with it's own license.
Looking at reportlab's source code, in reportlab.lib.rparsexml, it seems that pyRXP is only imported if it is installed (separately, because it is not included), and it uses another xml parser if pyRXP is not available. (I guess this is their way of allowing pyRXP to be used, and still keeping reportlab under BSD license)
发布评论
评论(3)
IANAL。您必须遵守您正在使用的所有软件包的许可证。
然而,大多数人会说,如果您只使用这些库的公共 API,并且理论上它们可以替换为实现相同 API 的其他库,那么您的代码不属于 GPL,只属于您对这些库所做的任何修改。
例如,这是 Linux 内核开发社区所采取的观点。
编辑:查看reportlab的网站后,很明显,如果您不使用PyXML解析器,那么您只受BSD许可证的约束,因为您没有使用任何GPL' d 代码。
另外,评论中还提出了这样的问题:如果您不分发任何 GPL 软件包,您的代码是否会受到 GPL 的影响,因为 GPL 主要处理在许可证下修改代码以及重新分发该代码。答案是,如果您的代码是 GPL 代码的衍生作品,则您必须根据 GPL 许可您的代码无论是否重新分发原始代码GPL 代码。
IANAL. You have to abide by the licenses of all the packages you're using.
However, most would say if you only use the public API of those libraries, and they could theoretically be swapped out for other libraries implementing the same API, your code does not fall under the GPL, only any modifications you make to those libraries.
This is the point of view taken by the Linux kernel development community, for example.
Edit: After looking at the site of reportlab, it is clear that if you don't use the PyXML parser then you're only bound by the BSD license, as you're not using any GPL'd code.
Also, the question was raised in the comments whether your code is affected by the GPL if you don't distribute any GPL'd packages because the GPL primarily deals with modification of the code under the license and redistribution of that code. The answer is that if your code is a derivative work of the GPL'd code, you have to license your code under the GPL whether or not you're redistributing the original GPL'd code.
IANAL。从这里的reportlab页面第1.3节:reportlab许可您可以看到他们希望您与他们讨论商业许可证。
当链接到 BSD 代码时,GPL 代码要求您在 GPL 下许可 BSD 代码 - 我在这里讨论的是静态链接。非 GPL 软件不允许动态链接到 GPL 代码 - 事实上,这就是允许从非 (L)GPL 代码进行动态链接的 LGPL 许可证存在的原因。 glibc 许可证也有一个例外,因为他们希望您能够用它构建商业软件。
Linux 内核开发人员并不都同意链接问题的所有方面。如果您正在针对标准 API (POSIX) 进行构建,那么显然您不需要使用 GPL。但他们的论点比这更深入,所以我认为没有直接的比较。
从上面的链接:“yRXP,我们的XML解析器,是在GNU通用公共许可证下的。这是因为它下面的RXP解析器是在这个许可证下的。如果你想在闭源项目中使用pyRXP,你必须与我们。”这表明他们拥有 pyRPX,并且可以向您提供或出售它的不同许可证。
这与 pyQT 问题类似。您可以用它制作 GPL 软件,但对于商业软件,您需要付费。当然,除非您想制作 GPL 的商业产品。
IANAL. From section 1.3 of the reportlab page here:reportlab licensing you can see they want you to talk to them about a commercial license.
GPL code when linked to BSD code requires you to license the BSD code under GPL - I'm talking static linking here. Dynamic linking to GPLed code is not allowed by non-GPL software - in fact, this is the reason for the existence of the LGPL license which allows dynamic linking from non-(L)GPL code. There is also an exception in the glibc license because they want you to be able to build commercial software with it.
The Linux Kernel developers do not all agree on all aspects of linking issues. If you're building against a standard API (POSIX) then it seems obvious you don't need to be GPL. But their arguments go deeper than that, so I don't think there is a direct comparison.
From the link above: "yRXP, our XML parser, is under the GNU General Public License. This is because the RXP parser underneath it is under this license. If you want to use pyRXP in a closed source project, you have to negotiate with us." This suggests they own pyRPX and can give or sell you a different license for it.
That's similar to the pyQT issue. You can make GPLed software with it, but for commercial stuff you need to pay up. Unless you want to make a commercial product that is GPLed of course.
IANAL 也可以,
,但我认为只要您不打算分发其他软件,它就不会发挥作用。例如,如果您只是告诉您的用户“您必须安装 pyRXP 才能使用它”(如果您制作“reportlab”可能会更容易),我认为 GPL 不适用于您自己的代码。编辑:虽然在这种特殊情况下使用reportlab工具包没有问题,但上面的解释似乎并不正确(请参阅下面agf对此答案的评论,以及他自己的答案)
请注意,reportlab工具包(尽管它来自同一家公司“ReportLab”)不一定使用 pyRXP。它们是两个不同的东西,每个都有自己的许可证。
查看reportlab的源代码,在
reportlab.lib.rparsexml
中,似乎只有安装了pyRXP(单独安装,因为没有包含)才导入pyRXP,如果pyRXP安装了,它会使用另一个xml解析器无法使用。 (我猜这是他们允许使用 pyRXP 的方式,并且仍然将 reportlab 保持在 BSD 许可证下)但也许你最好在 reportlab 邮件列表...
IANAL either,
but I think it doesn't even come into play as long as you are not going to distribute the other software as well. For example, if you just tell your users "you have to install pyRXP in order to use this" (maybe easier if you make that "reportlab"), I think the GPL does not apply to your own code.EDIT: While there is no problem with using the reportlab toolkit in this particular case, the above interpretation does not seem to be correct (see agf's comments on this answer below, as well as his own answer)
Note that the reportlab toolkit (although it's by the same company "ReportLab") doesn't necessarily use pyRXP. They are two different things, each with it's own license.
Looking at reportlab's source code, in
reportlab.lib.rparsexml
, it seems that pyRXP is only imported if it is installed (separately, because it is not included), and it uses another xml parser if pyRXP is not available. (I guess this is their way of allowing pyRXP to be used, and still keeping reportlab under BSD license)But maybe you'd best ask on the reportlab mailing list...