我在这里有3个关于GPL的问题:


如果我在应用程序中使用GPL软件,但不修改或分发它,是否必须在GPL下发布我的应用程序?
如果我修改了应用程序使用的某些软件该怎么办。然后,我必须根据GPL发布我的应用程序,还是可以按照GPL条款提供经过修改的软件?
如果我使用GPL软件但不对其进行修改,可以与我一起分发吗?应用程序?

我的例子是,我有一个PHP框架,该框架使用GeSHi库突出显示一些输出。


因为GeSHi是GPL,我的框架必须是GPL吗?
如果将修改返回给GeSHi维护者,是否可以针对应用程序的特定用例修改GeSHi?
我可以使用GeSHi重新分发我的框架吗?


评论

商业!=专有

只是好奇,在这种情况下分布意味着什么?如果所讨论的程序是某个设备中的固件,但除销售该设备的公司以外的任何人都无法触摸该固件,那是“发行版”吗?

是的,是分布。这就是为什么您会发现诸如ADSL路由器之类的东西的源代码可以(必须)下载的原因。信誉良好的供应商会提供货源,因为许可条件要求它们。同样适用于NAS盒,IP摄像机和许多其他小工具。

@quickly_now-这就是为什么在GPLv3中添加了Tivoisation的原因,因此,如果您在设备中使用GPLv2代码,则不必真正释放它,但是如果您使用GPLv3代码,则可以这样做。请记住,Tivo使用GPL代码并且从未发布过其修改,这使很多人感到不安,并在一定程度上导致了GPLv3。

#1 楼


如果我在我的
应用程序中使用GPL软件,但是不修改或分发它,我是否必须在GPL下发布我的
应用程序?


答案:您的问题有点模棱两可。两种情况:

(a)如果您不分发您的应用程序,那么答案是“否”,因为您没有分发您的应用程序。例如,如果仅在公司内部使用,则您没有义务做任何事情。

(b)如果您确实分发了您的应用程序,并且在应用程序中使用了GPL (即使仅在运行时链接到库)-即使您不收取任何费用-即使您不以任何方式更改GPL软件,您都必须提供您的应用程序源。

提供源代码并不意味着下载。可能是您必须收到书面请求,然后发送清单的影印本(请参阅注释:您实际上无法发送清单。这有点夸张了)。您可以收取“合理”的处理/复印费用。但是,您不能逃避提供自己的源代码的义务。


如果我修改了我的
应用程序使用的某些软件,该怎么办。然后,我是否必须
在GPL下发布我的应用程序,
还是可以按照GPL条款提供经过修改的
软件。


ANSWER : 往上看。如果您使用的是GPL软件,则必须提供源代码。
包含修改后的GPL代码。


如果我使用GPL软件,但是
不修改它,我可以分发它吗?
我的应用程序?


答案:请参见上文。您可以分发它(GPL代码),前提是您可以使用源代码。


因为GeSHi是GPL,所以我的
框架必须是GPL吗?


ANSWER:如果分发框架,则为是。


我可以修改GeSHi的特定用途吗?
如果我将应用程序的修改返回给GeSHi维护人员?


答案:可以的话。不用了您可以对其进行修改,但是在分发应用程序时,您必须提供源代码以及对库所做修改的源代码。


我可以使用以下方法重新分发我的框架吗?
GeSHi?


答案:如果您愿意,可以。如果您的应用程序未随GPL代码一起分发,而是让用户单独下载以使用它,那么您的情况会有些特殊,可能会引起某些争议,但最终还是会采用相同的原则:您必须使您的源可用。

如果要避免这些问题,则需要使用具有不同许可证的东西,或者至少要使用LGPL,这将允许运行时调用库而不会产生病毒性攻击,将GPL条件散布到您的代码中。

如有疑问,您需要法律意见。您从我这里或其他任何人那里得到的任何建议都应谨慎对待。只有律师才能给您适当的法律建议。

评论


热爱GPL:强迫所有涉及GPL的事物开源

–TheLQ
2011-2-12 15:33

请注意:它可能会违反许可以提供源代码的复印件。如许可证中所述:“作品的源代码是指对其进行修改的作品的首选形式。”

– mipadi
2011年2月12日在18:49

@Petah:GPL就像病毒一样:它感染了它所接触的一切。如果提供通用接口,并允许用户安装他们选择的各种组件,则可以不受GPL的污染。但是,假设您放弃了您的东西,而其他人则将两者捆绑在一起……那么,看起来您的东西会被GPL感动。无论如何尝试,您都将面临非常困难的情况。

–quickly_now
2011-2-12在23:48

如果问题已被问过几次,那么为什么这不是重复的?

–user1249
2011-2-26在12:46

请注意,收取“合理的”手续费并不会对您的源代码感兴趣的人产生强大的威慑力;您的源代码的第一个收件人可以选择合法地向其他人提供您的源代码。

–布赖恩
13年5月21日在14:12

#2 楼

如果您在网站上使用它而不是重新分发可执行文件,这似乎非常不同意。

您可以复制,分发和修改软件,只要您跟踪源文件中的更改/日期并将修改保留在GPL下。您可以使用GPL库以商业方式分发您的应用程序,但是您还必须提供源代码。 GPL v3试图弥补GPL v2中的某些漏洞。

特别是

如果将此库分发为可执行文件,则必须通过在分发时提供源代码来公开源代码或列出一种可访问的方式(URL,物理副本)以获取来源3年。如果通过Web门户提供服务,则不适用。

https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3%29

评论


您能对此进行扩展吗?目前它是您自己的一句话,还有tldrlegal的文字。在网站上使用GPL与在独立应用程序中使用GPL有何不同?

–user40980
2014年7月20日在18:22

网站通常不分发软件(而只是提供服务)

–Basile Starynkevitch
2014年7月20日在18:23

ASIDE:有一个AGPL许可证试图解决作为服务运行的GPL:tldrlegal.com/license/…

–kbrock
14年8月18日在23:32

如果有问题的GPL库是用HTML,JavaScript和CSS编写的,并且库代码被服务器“分发”到了访问该网站的用户的网络浏览器中,我想知道这是否可能导致您的其他HTML,javascript,和CSS代码成为GPL。有趣的一点是,仅通过查看网页的源代码,该代码就已经“可用”,尽管可能不是其首选形式。但是,即使那样,您的服务器端代码也不会被分发,因此我想也不必是GPL。

–still_dreaming_1
2015年11月15日15:20



#3 楼

免责声明:我不是律师,而且我有一段时间没有阅读任何GPL版本,因此此答案可能在法律上不准确。

如果您发布/分发包含GPL组件的软件( (例如静态链接的库),则您的软件必须包含在GPL中。 (这是对版本2的印象;版本3可能有所不同。)

如果您使用LGPL的库发布/分发软件,则GPL无需涵盖您的软件,但是这些库必须保留LGPL。

对[L] GPL组件的修改建议将其返还给创建者/维护者。目前尚不清楚这如何影响您产品的许可。

#4 楼

我们可以在丛林中强制执行此类规则,但在现实生活中(国家或州的司法管辖),它取决于谁,谁,何时何地。

在非GPL OS上以二进制或库形式分发GPL程序时,就会出现法律问题(法律)。从法律的角度来看,GPL程序感染并感染了父母和孩子的非GPL程序(专有甚至其他开源许可证)。感染意味着派生程序违反了GPL,被感染意味着GPL程序违反了自己的许可。当您将分布式GPL源作为个人(人员,组织,公司)进行编译时,没有任何问题。

评论


这似乎只是重复在4年前发布的先前答案中提出和解释的观点。

– gna
15年8月10日在7:04