Answers:
我可以在我的商业应用程序中使用它们吗?
这取决于您打算使用所生产的软件做什么。
首先,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。
Apache许可证对链接到根据Apache许可证分发的插件或库的软件没有任何限制。另一方面,LGPL要求LGPL库动态链接(并且可以由用户替换),或者必须根据GPL兼容的开源许可证发布整个作品。
对于在封闭源应用程序中使用,这实际上意味着您可以不受限制地使用Apache许可插件,并且LGPL许可插件必须动态链接。
如果您随应用程序一起分发了这两个插件,则还必须提供插件的来源,或通知用户他们可以从何处获得这些来源。
首先,这不是法律建议。
不允许将GPL软件链接到(包括通过网络),编译成任何形式的非GPL软件或与之一起提供。LGPL对此有所放松,以允许非GPL第三方支持,包括对商业产品的支持。这里的重要部分是必须是第三方(可以这么说),这会造成一个小漏洞。
简而言之,您链接到一个现有的LGPL库(将此称为第一方),但是建立此链接的软件必须是LGPL。将此软件称为第二方。尽管第二方软件必须以LGPL的形式发布,但作为第二方软件的所有者,您可以允许其他软件在LGPL之外使用它(只要第二方软件在LGPL下仍然可用)。换句话说,第二方软件必须以LGPL的形式提供,但不是必需的在所有情况下都将其许可为LGPL。每个软件的单独用户都必须具有依法使用该软件的许可。我的意思是,只要每个用户都可以像LGPL一样访问该软件,您还可以使用非病毒性条款进行许可。您也可以创建第三方软件,实际上是根据非LGPL条款向您授权了第三方软件,以供第三方软件使用。我甚至听说有人写自己的合同和许可使用自己的软件。法律可能很奇怪!在任何情况下,第三方软件都不必是LGPL。
因此,您要做的就是创建一个库,将其作为包装器链接到LGPL库,然后将包装器发布为LGPL。然后,您可以在非LGPL软件中链接到该包装器(您的包装器),只要您的包装器与LGPL一样即可。
我不能代表Apache Software License,因为我不熟悉它。