JPL库上的GPL限制

时间:2009-08-06 14:58:25

标签: javascript

如果我在我的网站上使用GPL许可的JavaScript组件,它是否会被视为向公众发布(因为组件的客户端代码通过http加载到用户的浏览器),我必须“打开 - 来源“整个网站?

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

希望,问题很清楚,你可以帮助我理解GPL的这个方面。

7 个答案:

答案 0 :(得分:11)

我不是律师。我已经与律师谈过使用GPL和LGPL将代码解释/动态链接到非自由软件。我们都很头疼。问题不仅在于您是否必须在GPL下发布您的其他网站。这是非免费浏览器是否可以合法运行GPL代码。

我最好的非法律建议是永远不要尝试在Javascript代码上使用GPL。我永远不会在GPL下发布Javascript库,如果我发现了一些我想使用的代码,我会尝试让作者给我一个例外。 LGPL may be是一个更好的选择,但是这个许可证是如此复杂,我建议也要避免它。

FSF本身在他们的常见问题解答If a programming language interpreter has a license that is incompatible with the GPL, can I run GPL-covered programs on it?中为您提供答案。这个答案本身是令人沮丧的模糊,但它建议你可以在非GPL浏览器中运行GPL代码的路径。你也可以找到有趣的FSF论文The Javascript Trap,尽管它并没有真正给出你的问题的明确答案。

对于上下文,有必要记住GPL和LPGL是在Unix时代编写的,当时大部分内容都是静态链接的。没有动态链接,没有解释语言,其中脚本本身被认为是有价值的知识产权等。

答案 1 :(得分:4)

您已将JavaScript库分发给用户;您需要遵守GPL对分销的要求。这是否需要您分发网站的其他部分是事情变得复杂的事情 - 如果您甚至考虑走这条路线,我建议您与合格的律师讨论您的确切情况,并记住这是至少违反许可证的精神,无论是否违反许可证的信件。

答案 2 :(得分:2)

这确实变得复杂了。我给你举个例子。如果您正在使用jQuery的GPL许可证(我知道it's dual licensed,但是让我们忽略它只是一秒钟)该怎么办?

谷歌公开发布了他们在CDN上发布的jQuery(以及其他javascript框架),例如:
http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js

所以在这种情况下,你不是那个将javascript库分发给用户的人,谷歌是; - )

请注意: 正如@bdonlan所描述的那样,只有经验丰富的律师才能真正权衡这一点。我只提供了这个答案,为你可以与律师谈论的事情提供背景信息。

答案 3 :(得分:2)

只是为火灾添加更多燃料......

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

因此,如果我从文件中删除注释和空格并缩短变量名称,然后将其“分发”给某人的浏览器(当然是源代码),我可能会违反许可证。顺便说一句,解决方案可能是一个二进制uuid,它代表了受损文件的相应许可证。想法?

如果我使用带有gpl stmt的库提供库的源代码和我自己的'source',那么将它提供给浏览器是否可以自由地提供源代码?

我认为这有足够的漏洞使许可证无法执行。

我的2个人/不是律师。

答案 4 :(得分:2)

您的应用+ GPL库+发布 - >开源GPL的应用程序。

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

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

因此,如果您打算将它们用于一般用途,请不要在GPL下发布JavaScript库。

答案 5 :(得分:0)

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

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

  

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

     

(A)GPL允许任何人制作修改版本并使用它   没有把它分发给别人。这家公司正在做的是   一个特例。因此,公司没有   发布修改后的来源。

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

答案 6 :(得分:-2)

例如Magento使用的是GPL v3下的ExtJS。现在,当Magento由购物商店所有者下载和安装时,你的意思是商店所有者必须提供他们的“整个网站来源”及其产品的链接?搞笑哈哈

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