【发布时间】:2013-04-25 11:03:17
【问题描述】:
我在几分钟内就在我的 Android 应用程序中集成了 zbar 码扫描器(很棒的库!), 不过我现在正在考虑用另一个二维码阅读器替换它。 原因是,网络上有很多怀疑 [1][2] 是否 LGPL 与商业 Android 项目兼容。
谁能告诉我为什么 zbar 使用 LGPL 但仍然支持 android? (甚至在他们的支持论坛中有一个 android 部分......)
有没有办法确保我的应用符合许可要求?
【问题讨论】:
我在几分钟内就在我的 Android 应用程序中集成了 zbar 码扫描器(很棒的库!), 不过我现在正在考虑用另一个二维码阅读器替换它。 原因是,网络上有很多怀疑 [1][2] 是否 LGPL 与商业 Android 项目兼容。
谁能告诉我为什么 zbar 使用 LGPL 但仍然支持 android? (甚至在他们的支持论坛中有一个 android 部分......)
有没有办法确保我的应用符合许可要求?
【问题讨论】:
Android 平台项目与第 3 方应用开发者的许可要求不同。虽然可以在 3rd 方应用程序中替换和反向工程 LGPL 库,但对于只读固件中的 LGPL 库则不然。
Android zbar 的关键部分分布在二进制 .so 文件中。因此,根据 LGPL,它们可以在您的分布式应用程序中替换。
对于 Java 适配器代码 (zbar.jar),请确保您没有对其使用 ProGuard 或其他混淆。
作为参考,droidText 项目如何解决 LGPL 合规性问题:https://code.google.com/p/droidtext/wiki/LGPLCompliance
(标准的“我不是律师”免责声明适用。)
【讨论】:
TL/DR:始终将 zbar 源代码与应用程序一起分发,您就很清楚了。
我想说,用户想要升级库并不容易。相反,为了安全起见,您应该将程序视为与库静态链接。 (从实际的角度来看,无论如何,你的程序是静态链接的。)
如果您这样做,您必须分发 库 的源代码(或可链接的目标文件)。它必须是您使用的可能经过调整的源,而不是一些通用的下载链接。
顺便说一句,我也支持llato's 答案,因为它有一些优点,但我不会热衷于在法官面前争论这种推理方式。 (并不是说我认为 zbar 的作者会特别把我拖到那里,但你明白了。)
【讨论】: