简而言之/TL;DR:
LGPL 和应用程序商店存在一些不兼容性,这意味着您无权在启用 DRM 的 AppStore 或锁定设备上分发 LGPL 代码。
最好是在其他更宽松的许可证(例如 Apache 2 许可证、Microsoft 公共许可证或 MIT X11 许可证)下寻找该库的替代实现。
Longer:
LGPL 规定:
该要求可能与许可证相矛盾
其他专有库的限制通常不会
伴随操作系统。这样的矛盾意味着你不能
在可执行文件中将它们和库一起使用
分发。
将 LGPL 代码与专有代码静态链接的权利来自 LGPL 第 6 节。除了授予的权利之外,该部分还涉及您对代码下游接收者的要求。
您应该详细阅读本节。
付费开发与 LGPL 之间的冲突
应用程序商店要求用户付费才能进入程序并获取密钥证书、配置文件和部署到设备的工具,这与 LGPL 直接矛盾。
LGPL 要求最终用户能够获取您的目标文件和开源库(以及工具,请参阅下面的部分)并生成一些有效的代码。下游接收者没有必要与苹果、微软、亚马逊或谷歌签订单独的协议,才能在自己的硬件上部署代码的工作版本。
本节尤其相关:
您不得强加任何进一步的
限制接收者行使此处授予的权利。
您不负责强制第三方遵守
本许可证。
您不需要授予用户在 AppStore 上重新发布您的应用程序的权利,但您需要授予用户在自己的设备上使用 LGPL 代码的修改版本部署您的应用程序的权利,因此任何需要的开发者程序或设备额外支付的部署费用与 LGPL 相冲突。
目标文件的分发
您必须确保生成的可执行文件的条款允许接收者对 LGPL 代码进行更改并从中生成新的工作代码位。这实际上意味着您需要分发程序的目标文件,以便第三方可以将您的应用程序与库的修改版本重新链接,可以修复错误,以某种方式改进它,或者提供自己的功能。
您可以通过在您的网站上发布目标文件并提供一个项目以便第三方可以重新链接该应用程序来解决此问题。如果不这样做,您的 LGPL 许可证就会被撤销。
逆向工程的权利
这是第 6 节的另一项要求。
这可能与各个应用程序商店的条款直接冲突,但您需要与您正在使用的应用程序商店(Apple、Amazon、Android 或其他第三方)检查确切的条款。
通知及广告
作为 LGPL 代码要求的一部分,发送给下游用户的应用程序必须附带 LGPL 许可证,并在应用程序中显示任何版权声明的任何位置指向此许可证。一些应用程序商店将其发布在应用程序商店网站上,而其他应用程序商店可能拥有可执行文件本身的版权信息。
修改后的 LGPL 代码的分发
这很容易遵守,您只需在您的网站上分发 LGPL 代码的副本(许可证上有一些关于您需要保持代码可用的时间长度的额外详细信息)。
您无法满足的要求
LGPL 以及在通过应用程序商店分发的应用程序中使用静态库的主要问题之一是要求您分发最终用户重建软件所需的工具和脚本。
对于某些嵌入式系统场景,您需要嵌入式系统供应商向任何最终用户公开其开发人员工具和 API,但这可能是不可能的。目前尚不清楚 iPhone 或 Windows SDK 之类的东西是否可以自由重新分发来履行本案中的义务,您可能需要与您的律师讨论并了解您对暴露这些要求的接受程度。
你可以做什么
如果您绝对需要在应用程序商店或嵌入式系统中使用某些 LGPL 代码,您可以随时联系该代码的原始作者,并要求他们根据不同的条款授予您该代码的许可。
或者,您可以在其他更宽松的许可证(例如 Apache 2 许可证、Microsoft 公共许可证或 MIT X11 许可证)下寻找该库的替代实现。