这一切都归结为“您的代码是否是 GPL 模块的派生作品”。 举一个愚蠢的例子。 如果 GPL 模块是冒泡排序,并且您的应用程序使用该模块的 API,那么它是派生作品,因此一切都受 GPL 管辖。 如果您围绕该模块制作 Web 服务,则该 Web 服务是 GPL,但使用该 Web 服务的任何内容都不是。 在更加灰色的区域,如果您有使用另一种排序算法的旧代码,并且您创建了一个“包装”层来更改将 API 从旧排序转换为新排序,那么只有包装层是 GPL,就像原始应用程序一样不是派生作品(它在您使用 GPL 模块之前就可用,并且并未考虑到 GPL 模块而编写)。 请注意,这都是非常有争议的,但是诸如非 GPL 二进制 Linux 内核模块之类的东西是基于 GPLv2 的这种解释而存在的。
就像 Neil 已经说过的那样:受 GPL 约束并不意味着您必须发布您的代码。 仅当拥有您的软件许可证的人要求您提供该许可证时,您才应该提供该许可证。 随机的人不能只索要代码,除非他/她实际上购买了该应用程序。 当然,只有一个人必须购买它,然后他/她可以用代码做任何他/她想做的事情(例如发布它)。
Using GPL in a commercial product is a very complex matter. In the times of GPLv2 there was a grey zone that's been very thoroughly cleaned up in GPLv3. To provide detailed information, you should let us know what module it is you're using and what version of GPL it falls under.
It all comes down to "is your code a derived work of the GPL module". To give a stupid example. If the GPL module is a bubblesort and your application uses the API of the module, it's a derived work, so everything falls under GPL. If you make webservice around the module, the webservice is GPL but anything using the webservice is not. In an even more grey area, if you have old code using another sort algorithm and you make a "wrapping" layer to change translate the API from the old sort to the new sort, then only the wrapping layer is GPL as the original application is not a derived work (it was available before you used the GPL module and not written with the GPL module in mind). Note that this is all highly debatable, but things like non-GPL binary linux kernel module exist based on this interpretation of GPLv2.
Like Neil already said: Falling under GPL doesn't mean you have to publish your code. Only when a person having a license for your software asks for it, you should provide it. A random person cannot just ask for the code unless he/she actually bought the application. Of course, only one person has to buy it and then he/she does whatever he/she wants with the code (like publish it for example).
这取决于您所说的“商业产品”是什么意思。 如果您使用 GPL 代码,您的代码将受到 GPL 的保护,并且您无法为其提供消除 GNU 许可证结构的许可证。 这并不意味着您不能销售该产品,而是意味着您必须根据要求向被许可人提供其源代码。
It depends what you mean by "commercial product". If you use GPL code, your code becomes covered by the GPL and you cannot provide a license for it that removes the stritures of the GNU license. This does not mean tjhat you cannot sell the product, but it does mean that you must provide your licensees, on request, with its source code.
If you're using a software module licensed under GPL, your software will fall under the definition of "derived work", and thus has be licensed under the GPL as well.
You'll want to review the exact definition of "derived work" yourself, though.
发布评论
评论(4)
在商业产品中使用 GPL 是一件非常复杂的事情。 在 GPLv2 时代,有一个灰色地带,但在 GPLv3 中已经被彻底清除了。 要提供详细信息,您应该让我们知道您正在使用的模块以及它属于哪个版本的 GPL。
这一切都归结为“您的代码是否是 GPL 模块的派生作品”。 举一个愚蠢的例子。 如果 GPL 模块是冒泡排序,并且您的应用程序使用该模块的 API,那么它是派生作品,因此一切都受 GPL 管辖。 如果您围绕该模块制作 Web 服务,则该 Web 服务是 GPL,但使用该 Web 服务的任何内容都不是。 在更加灰色的区域,如果您有使用另一种排序算法的旧代码,并且您创建了一个“包装”层来更改将 API 从旧排序转换为新排序,那么只有包装层是 GPL,就像原始应用程序一样不是派生作品(它在您使用 GPL 模块之前就可用,并且并未考虑到 GPL 模块而编写)。 请注意,这都是非常有争议的,但是诸如非 GPL 二进制 Linux 内核模块之类的东西是基于 GPLv2 的这种解释而存在的。
就像 Neil 已经说过的那样:受 GPL 约束并不意味着您必须发布您的代码。 仅当拥有您的软件许可证的人要求您提供该许可证时,您才应该提供该许可证。 随机的人不能只索要代码,除非他/她实际上购买了该应用程序。 当然,只有一个人必须购买它,然后他/她可以用代码做任何他/她想做的事情(例如发布它)。
Using GPL in a commercial product is a very complex matter. In the times of GPLv2 there was a grey zone that's been very thoroughly cleaned up in GPLv3. To provide detailed information, you should let us know what module it is you're using and what version of GPL it falls under.
It all comes down to "is your code a derived work of the GPL module". To give a stupid example. If the GPL module is a bubblesort and your application uses the API of the module, it's a derived work, so everything falls under GPL. If you make webservice around the module, the webservice is GPL but anything using the webservice is not. In an even more grey area, if you have old code using another sort algorithm and you make a "wrapping" layer to change translate the API from the old sort to the new sort, then only the wrapping layer is GPL as the original application is not a derived work (it was available before you used the GPL module and not written with the GPL module in mind). Note that this is all highly debatable, but things like non-GPL binary linux kernel module exist based on this interpretation of GPLv2.
Like Neil already said: Falling under GPL doesn't mean you have to publish your code. Only when a person having a license for your software asks for it, you should provide it. A random person cannot just ask for the code unless he/she actually bought the application. Of course, only one person has to buy it and then he/she does whatever he/she wants with the code (like publish it for example).
如果您的产品不附带任何 GPL 许可的软件,我想您没问题。
If you don't ship any GPL licensed software with your product, I think you're fine.
这取决于您所说的“商业产品”是什么意思。 如果您使用 GPL 代码,您的代码将受到 GPL 的保护,并且您无法为其提供消除 GNU 许可证结构的许可证。 这并不意味着您不能销售该产品,而是意味着您必须根据要求向被许可人提供其源代码。
It depends what you mean by "commercial product". If you use GPL code, your code becomes covered by the GPL and you cannot provide a license for it that removes the stritures of the GNU license. This does not mean tjhat you cannot sell the product, but it does mean that you must provide your licensees, on request, with its source code.
像往常一样,IANAL,但是:
如果您使用根据 GPL 许可的软件模块,您的软件将属于“派生作品”的定义,因此也根据 GPL 获得许可。
不过,您需要自己查看“派生工作”的确切定义。
As usual, IANAL, but:
If you're using a software module licensed under GPL, your software will fall under the definition of "derived work", and thus has be licensed under the GPL as well.
You'll want to review the exact definition of "derived work" yourself, though.