我可以在商业Web应用程序中使用Apache软件许可证,2.0版和GNU LGPL 3许可证插件吗?


31

我有两个插件。一个拥有GNU LGPL 3许可证,另一个拥有Apache软件许可证2.0版。我可以在我的商业应用程序中使用它们吗?如果是,我应该采取哪些预防措施?


17
请记住,除非来自律师,否则切勿遵循互联网上提供的法律建议。在这种情况下,最好是专门从事给定领域的人员:软件许可证。因此,请务必一筹莫展,因为否则您可能会面临诉讼(因为您的应用程序是商业应用程序)。
Radu Murzea 2014年

Answers:


34

我可以在我的商业应用程序中使用它们吗?

这取决于您打算使用所生产的软件做什么。

首先,ASL 1,GPL或LGPL都没有限制您可以使用软件在组织内部执行的操作。限制全部在组织外部分发的代码上。

  • 对于GPL,限制是如果您将GPL的代码合并到自己的软件中,然后将软件分发到组织外部,则必须根据GPL或兼容的开源许可证的条款提供源代码。

    因此,如果您在应用程序中使用GPL编码并进行分发,则您的应用程序必须是开源的...否则您将违反许可。

  • 对于LGPL,此限制(请参见上文)仅适用于LGPL版本库本身的源代码。即,如果您更改库。如果仅使用该库,则无需提供源代码。

    还有一个限制,您的应用程序中的LGPL代码必须可由您的代码用户替换。这意味着(实际上)意味着,如果您仅以二进制形式分发代码,则无法将代码与该库静态链接。您必须使用动态链接。

  • 对于ASL,唯一重要的限制是您必须说出是否已从原始版本中更改了所使用的ASL编码。

最后,为了清楚起见,GPL,LPGL或ASL都没有对使用软件的目的施加任何限制。这包括您的目的是否是赚钱。它们只是限制了您赚钱的方式 ...对于LGPL和ASL,限制是很小的。

如果是,我应该采取哪些预防措施?

对于LGPL和ASL,无需采取任何预防措施。

IANAL-我不是律师。如果需要确定,请咨询真正的合格专家;即专门从事软件知识产权法律的律师。


1-对于此答案,ASL == Apache软件许可版本2。


这是否适用于Web应用程序?我的意思是客户只会收到包含.class和.JAR文件的war文件。LGPL是否还可以吗?
Java Main

如果您不修改LGPL库,则可以将它们与应用程序代码一起包含在WAR文件中。但是您需要这样做,以便您分发代码的人可以用另一个版本替换 LBPL代码。“超级JAR”可能是违规行为。将LGPL库与您的代码混淆在一起绝对是违法的。(IANAL)
Stephen C

有一个名为lib的文件夹,我在其中放置了所有jar文件。因此,他可以将任何Jar文件替换为其他版本。但是我不保证它会一直工作。还可以吗?
Java Main

问你的律师:-)
Stephen C

它只是在tomcat上运行的普通Web应用程序。如果可以的话会很好。无论如何,感谢您的澄清,确实有帮助。
Java Main

5

Apache许可证对链接到根据Apache许可证分发的插件或库的软件没有任何限制。另一方面,LGPL要求LGPL库动态链接(并且可以由用户替换),或者必须根据GPL兼容的开源许可证发布整个作品。

对于在封闭源应用程序中使用,这实际上意味着您可以不受限制地使用Apache许可插件,并且LGPL许可插件必须动态链接。

如果您随应用程序一起分发了这两个插件,则还必须提供插件的来源,或通知用户他们可以从何处获得这些来源。


BartvanIngenSchenau“封闭源”应用程序是什么意思?您是指打包解决方案(不分发源代码),还是指其在组织内部的分发而不是商业分发?
拉切尔

1
@Rachael:“闭源”通常用于指代未分发源代码的软件。就版权许可而言,在组织内进行分发是一种特殊情况,因为在大多数版权法中,向组织内的人员提供软件产品的副本不视为分发(视为复制)。
Bart van Ingen Schenau,2015年

-4

首先,这不是法律建议。

不允许将GPL软件链接到(包括通过网络),编译成任何形式的非GPL软件或与之一起提供。LGPL对此有所放松,以允许非GPL第三方支持,包括对商业产品的支持。这里的重要部分是必须是第三方(可以这么说),这会造成一个小漏洞。

简而言之,您链接到一个现有的LGPL库(将此称为第一方),但是建立此链接的软件必须是LGPL。将此软件称为第二方。尽管第二方软件必须以LGPL的形式发布,但作为第二方软件的所有者,您可以允许其他软件在LGPL之外使用它(只要第二方软件在LGPL下仍然可用)。换句话说,第二方软件必须以LGPL的形式提供,但不是必需的在所有情况下都将其许可为LGPL。每个软件的单独用户都必须具有依法使用该软件的许可。我的意思是,只要每个用户都可以像LGPL一样访问该软件,您还可以使用非病毒性条款进行许可。您也可以创建第三方软件,实际上是根据非LGPL条款向您授权了第三方软件,以供第三方软件使用。我甚至听说有人写自己的合同和许可使用自己的软件。法律可能很奇怪!在任何情况下,第三方软件都不必是LGPL。

因此,您要做的就是创建一个库,将其作为包装器链接到LGPL库,然后将包装器发布为LGPL。然后,您可以在非LGPL软件中链接到该包装器(您的包装器),只要您的包装器与LGPL一样即可。

我不能代表Apache Software License,因为我不熟悉它。


请注意,我使用的术语“链接”非常笼统,因为它不仅适用于编译语言,还可以包括“包含” LGPL软件(来自本地或网络位置,例如PHP或Javascript),或其他方式。通过网络(例如Java RMI等)“链接”到软件
JSON

1
“不允许将GPL软件链接到(包括通过网络),被编译成任何形式的非GPL软件或与之一起提供。” 。“或”应为“与”。您可以在非GPL版本的软件中使用GPL版本的软件,前提是您不“运输”它。
Stephen C

2
这个答案在很多层面上都是错误的。问题不是关于GPL,而是关于LGPL。ASL代码几乎可以通过任何其他许可集成到代码中,这也意味着LGPL甚至GPL(即使相反的情况也被禁止)。您甚至可以在封闭源代码软件中使用它。而且,就像史蒂芬·C(Stephen C.)所指出的,只要您不公开发布或公开发布,就可以做任何您想做的事情。
亚历克西斯·杜弗洛尼
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.