是否有仅用于开放源代码网站的JavaScript代码?


12

改写的问题:

我不是在问与JavaScript相关的问题,而是在网络上使用的所有“客户端”语言(HTML5,JavaScript,CSS等)。如果我在我的网站上放置了JavaScript代码(即经过GPL处理),并且可以通过网络从任何人访问该网站,我是否在某种程度上违反了GPL?

如果我想将客户代码(HTML,CSS,JavaScript)卖给某人,会怎样?在这种情况下,我需要其他许可证吗?

JavaScript(用于网站时)不是总是开源的吗?当您打开网页时,您始终可以阅读源代码。

如果我要出售包含JavaScript GPL代码的网站,是否还需要发布服务器端代码?

如果可以部分访问此网站(一部分是免费的,另一部分需要您付费),但是在网站的两侧都使用GPLed代码(同一部分),会发生什么情况?

如果GPLed代码仅出现在需要您付费才能访问的网站的一部分中,该怎么办?

如果我以这种方式将网站出售给客户:

  1. 我要卖给您(一次性费用)所有与客户相关的代码(JavaScript,HTML和CSS)
  2. 不是在向您出售服务器端代码,而是在向您出租(我不想让您重用我的服务器端代码)

如果使用JavaScript GPLed代码,是否违反了某些规定?(该网站可通过网络上的任何人访问。)

编辑2:

添加了一个新的特定问题:

如果网站可以在没有服务器端代码的情况下运行,那是什么意思,JavaScript只是在调用一些包含JSON格式数据的PHP页面。其他人可以与客户端一起建立网站,但是他们需要提供数据。在这种情况下,我认为JavaScript正在调用“ PHP”代码(但并非相反)。在这种情况下,我是否违反GPL?


4
“查看”代码的能力与许可无关,因此JavaScript与其他功能没有什么不同。最好咨询该领域专家的律师,为您提供最好的服务。
Sparky

对于网站上的javascript,您是在专门谈论GPL代码吗?即,该代码是否已根据GPL明确许可?
菲利普(Philip)

好吧,我没有卖任何产品,我只是问这个问题,因为我不太了解它的工作原理。我要特别问的是,与客户相关的语言是否还不是全部“ GPL”(您可以在访问网页时随时下载源代码)
Fire-Dragon-DoL 2011年

在非平凡的应用程序中,您的源代码不仅是Javascript,而且还是服务器端代码。您想将所有内容公开发布吗?因为这就是GPL所说的。它并没有说您可以发布其中的一些内容,但仍然符合许可证要求。
罗伯特·哈维

Answers:


3

对于GPL,发布单位是许可单位。

如果您的网站及其javascript是可以协同工作的一件事,那么整个网站都有有效的许可证。如果任何部分是GPL,则整体的有效许可是GPL。(对于LGPL,MIT等不是这样)

如果您托管该网站,而您的客户正在购买对该服务的访问权限,则您尚未分发或传达服务器端代码,因此GPL与您无关。(AGPL对此进行了更改,并断言必须发布软件即服务的源。)

属于您应用程序一部分的Javascript不会以任何方式自动获得许可。严格来说,下载javascript以在浏览器中运行它就是侵犯版权。当然,这很愚蠢。可能存在一个隐含的许可证来运行代码,但仅此而已。

如果使用Javascript库,则必须遵守该库的许可证。如果该许可是GPL,那么我的理解是,这意味着您的整个申请都是GPL。这可能就是jQuery具有双重许可的原因-您可以选择MIT还是GPL。如果没有使用MIT许可证的选择,则只能由GPL应用程序使用。


4

第一:只要您遵守许可限制(即主要是将所有属性保留在适当的位置,并根据相似的许可进行任何更改),则您完全有权在商业项目中使用开源代码

我理解,GPL是试图将其许可证强制应用于项目其他部分的限制性更强的许可证之一。我认为它从未在法庭上进行过测试,但是通常我一直看到的解释是,如果将GPL代码留在它自己的单独模块中,这些模块只是被引用(也就是说,它们被视为完全独立的产品您刚刚使用的内容),就可以了。

如果您对此不确定,和/或想要更加安全,可以使用其他说明性较低的许可证。

第二:查看代码的能力和使用它的权利是完全分开的。我不能从任何站点上删除JavaScript并仅仅因为可以看到就使用它。如果我可以合法地访问Windows源代码,那也不会成为我的。网络使得必须有很多代码可见,您仍然可以按需要许可它。

第三:就网站其余部分所依据的许可而言,您的客户极有可能乐于向您付款,然后再将其设为开源。除了基本的“我们为什么要为您刚刚赠送的东西付钱”之外,它可能还会对设计和品牌产生影响,并让其他人借用其企业形象要素。如果您将其出售给他们,那么他们会希望它成为他们的。如果您要卖给他们一些东西,尽管您确实需要告诉他们那里有OSS,因为您不能卖掉它,只需使用它的其他代码即可。

第四:那是一个非常奇怪的模型,它只出售一部分代码,然后租用另一部分代码。它们似乎是如此相互依存,以至于一个人在没有另一个人的情况下一文不值。从技术上讲,我想他们可能会采用您已经完成的前端设计并将其修补到其他内容中,但是通常情况下,人们会重新开始。

鉴于这两个部分彼此之间并不是真正有用,所以我建议他们为您拥有的软件即服务产品的定制付费。那就是您拥有所有代码,只需根据其规范自定义代码(即以其品牌方式成为前端)。使它变得更加整洁和简单。


嗯,现在我有一个疑问:当我为客户创建网站时,谁是客户:向我出售网站的人或将访问该网站的用户?如果我所有网站都作为GPL产品出售(带有来源),我是否需要向甚至浏览该网站的所有人发布源代码?
Fire-Dragon-DoL 2011年

@ Fire-Dragon-DoL-您的客户是支付账单的人。如果您使用GPL代码,则需要将其公开提供给每个地方的所有人,而不仅仅是您的客户和/或用户(每个人都有重用该代码的权利)。
乔恩·霍普金斯

在最后一部分(您的解释非常聪明,谢谢):鉴于这两部分在没有其他帮助的情况下并没有那么有用:在这种情况下,如果我使用的是GPLed代码,我还应该发布源代码吗?因为我可以读到您的句子为“我向您出售的是定制软件的服务,而不是仍属于我的软件本身”
Fire-Dragon-DoL 2011年

为了回答您的最后评论:我不确定,我的意思是GPL说您必须使用您的软件发布该代码,但是如果有人在我的网站上导航,我没有给他我的程序,他正在使用我的程序,我认为是不同的。GPL并没有说您必须发布程序。
Fire-Dragon-DoL 2011年

1
@Jon您只需要将源代码提供给获得二进制文件的人即可;不问任何人。(当然,他们有权将其赠予任何想要的人,但您不必这样做。)
肖恩·麦克米兰

3

一般而言,如果您在项目中的任何地方使用GPL代码,然后重新分发项目(即出售或转让给他人),则必须将项目的源代码完整地发布给公众,以便与GPL许可证。

如果使用服务器端GPL代码提供自己的面向公众的网站作为服务,则可能会没事,因为这不被认为是重新分发。

浏览器中的Java代码对我来说似乎是一个灰色区域。从技术上讲,您正在 GPL代码重新分发给每个人的浏览器,这将触发释放您自己的源代码的要求。

编辑:为了证明我的观点,我现在将包括ExtJS网站许可常见问题解答中的文本 ExtJs是根据GPL许可的Javascript框架。这是他们对许可证在其框架方面的工作方式的解释(斜体):

衍生作品
当软件程序调用根据GPLv3许可的代码时,该软件程序将成为GPL代码的衍生作品,因此受GPLv3版权许可。如果随后将软件程序“传送”给用户,则GPLv3要求也“传送”该软件程序的源代码。 当创建应用程序的法人实体之外的用户使用该应用程序时,将触发Web应用程序的“传输”。

软件程序的定义
对于使用当今的Web架构构建的软件程序,这些程序使用基于远程网络的服务接口进行内部通信,而不是传统的静态或动态链接,相关的软件程序是应用程序代码的整体,包括在操作系统上执行的代码。服务器和在客户端上执行的代码,前提是服务器代码对于应用程序是必不可少的。

示例
假设该应用程序具有一个前端(生成链接到Ext JS JavaScript的网页),该前端通过JSON / HTTP与后端服务进行通信。该后端服务仅包含此应用程序的批准和验证逻辑。即使只有前端使用Ext JS的代码,你应该考虑的是前端和后端的组合构成的应用,两者前后端的源代码将需要提供给应用程序的最终用户以GPLv3如果该应用程序由最终用户使用,该最终用户不是持有Ext JS代码的GPLv3许可证的同一法人实体。


2
这是错误的,GPL不能这样工作。在PHP代码的输出中包含指向GPL的JS文件的链接并不能使您的PHP代码开源。
2011年

@meager:看我的编辑。
罗伯特·哈维,

这似乎完全是错误的。如果我的后端定向到使用GPL的JS文件的第三方站点怎么办?然后,我是否必须开源整个应用程序?我认为这不会在任何法院举行。抱歉。
罗布

1

对于使用客户端javascript的网站,他们仍然拥有代码。如果仅使用该代码并将其用作自己的代码,则可能是知识产权侵权。我想我不知道他们是否不包含许可证。也存在不可执行性问题。我猜想和律师谈谈,但他们可能不会告诉您任何有用的信息。

混合使用许可证的项目很复杂。与其他库(可能包括服务器端后端)进行交互的GPL代码也要求它们也进行GPL。其他开放源代码许可证的要求较宽松,例如LGPL和BSD许可证。

不,如果您不希望他重复使用您的php代码,那么这不适合GPL模型。如果您在GPL下发布代码,则必须交出源代码。

因此,这听起来像是您正在为某人创建网站,并且您不想将代码分发给任何人。你为什么要看开源?如果它是开源的,那么您就是在放弃代码。


我目前不出售任何产品,我只是问这个问题,因为我认为网站分为两个不同部分,即客户网站和服务器网站。第一部分免费,而第二部分则免费。如果网站是“开放源代码”,您应该发布服务器端源代码吗?我觉得有些困难,它将给安全带来灾难!
Fire-Dragon-DoL 2011年

2
这是不对的。如果项目的一部分是GPL,则必须以GPL兼容许可证发布整个项目(假设所有项目都被视为同一程序,并且不能分解成多个部分)。成为GPL并不能阻止您出售它,仅表示您必须向源提供任何二进制文件,并且不能限制进一步的重新分发。
KeithB 2011年

如果该网站可以在没有服务器端代码的情况下运行,那是什么意思,javascript仅在调用一些包含json格式数据的php页面。其他人可以与客户端一起建立网站,但是他们需要提供数据。在这种情况下,我认为javascript正在调用“ php”代码(但并非相反)。在这种情况下,我是否违反GPL?
Fire-Dragon-DoL 2011年

@KeithB ACK!你是对的。我当时在想GTK和SDL,但是那是LGPL。谢谢。
菲利普(Philip)

是的LPGL是一个很好的许可证,我想顺便了解GPL,因为...嗯,我认为这很难理解
Fire-Dragon-DoL 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.