GPL对JavaScript库的限制

如果我在我的网站上使用GPL授权的JavaScript组件,是否会被视为公开发布(作为组件的客户端代码通过http加载到用户的浏览器),我必须“开放源代码”整个网站?

那么,我们可以说,网站上的JavaScript组件的使用是代码的分布,它涉及整个网站代码的分布?

希望,问题是明确的,你可以帮助我了解GPL的这一方面。

我不是律师。 我曾经和律师讨论过使用GPL和LGPL代码来解释/dynamic链接到非自由软件。 我们都很头痛。 问题不仅仅是您是否必须在GPL下发布您的网站的其余部分。 这是一个非免费的浏览器是否可以合法运行GPL代码。

我最好的非法律build议是永远不要尝试在JavaScript代码上使用GPL。 我从来没有发布GPL下的Javascript库,如果我find一些我想使用的代码,我会试图让作者给我一个例外。 LGPL 可能是一个更好的select,但该许可证是如此复杂,我build议避免它。

FSF自己在常见问题解答中为您提供答案如果编程语言解释器的许可证与GPL不兼容,我可以在其上运行GPL覆盖的程序吗? 。 这个答案本身是令人沮丧的,但是它build议了可以在非GPL浏览器中运行GPL代码的path。 你也可以findFSF的文章JavaScript陷阱有趣的,虽然再次它并没有真正给出一个明确的答案你的问题。

对于上下文来说,记住GPL和LPGL是在Unix时代编写的,当时大多数情况都是静态链接的。 没有dynamic链接,没有解释语言,脚本本身被认为是有价值的知识产权等。

您已将JavaScript库分发给用户; 那么您需要遵守GPL的分发要求。 这是否需要您分发网站的其余部分,是事情变得复杂的地方 – 如果您甚至想着要走这条路线,我build议您与一位合格的律师谈谈您的具体情况,并记住这是至less违反许可证的精神,不pipe是否违反许可证的文字。

只是为了增加更多的燃料…

读取gpl v3很明显,如果你包含一个gpl'd的工作,你需要提供源文件顶部的许可证文本和版权声明。

因此,如果我从文件中删除注释和空白,并缩短variables名称,然后“分发”给某人的浏览器(当然是源代码forms),那么我可能会违反许可证。 顺便说一句,一个解决scheme可能是一个二进制uuid,代表损坏的文件的适当的许可证。 思考?

如果我提供图书馆的来源和我自己的“来源”,使用带有gpl标记的图书馆,是否将其提供给浏览器构成提供源自由?

我觉得这里有足够的漏洞,使许可证无法执行。

我的2cents /不是律师。

您的应用+ GPL'd图书馆+版本 – >开源GPL应用。

这是FSF和GPL的意图,无论使用什么编程语言,它都适用。

GPL的JavaScript库会感染你所有的JavaScript代码。 可能不会感染您的HTML,页面内容或服务器端代码。

所以,请不要在GPL下发布JavaScript库,如果你打算一般使用它们。

这绝对会变得复杂。 我会给你一个例子。 如果你使用jQuery的GPL许可证(我知道它是双授权的 ,但是我们忽略了这一点)。

Google在其CDN上分发了jQuery(以及其他JavaScript框架)的公开发行版,例如:
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js

所以在这种情况下,你不是向用户分发JavaScript库的人,google是;-)

请注意:正如@ bbdlan所描述的那样,只有经验丰富的律师才能真正权衡这一点。 我只是提供了这个答案,提供你可以跟律师谈话的背景。

这家伙写了一篇关于它的文章: http : //stuck-in-windows.blogspot.com/2009/02/fud-over-javascript-and-gpl.html

在他的文章中,他引用了具有Q&A的gnu网站FAQ :

(Q)一家公司正在网站上运行GPL的程序的修改版本。 GPL是否表示他们必须发布他们的修改来源?

(A)GPL允许任何人制作修改后的版本,并且不会将其分发给其他人。 这家公司正在做的是一个特例。 因此,公司不必发布修改后的来源。

常见问题解答然后引用GNU Affero GPL ,它需要发布所有的网站源代码。

例如,Magento使用GPL v3下的ExtJS。 现在,当Magento被购物商店所有者下载和安装时,你的意思是店主必须给他们的“全部网站源”连同他们的产品链接? 有趣的哈哈

所以在我看来,根据GPL v3许可的Javascript库对于任何项目都是很好的,除非你试图修改Javascript库并将其销售给商业或相关的商业服务。