想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
5年前关闭。
Improve this question
我想知道我该怎么做才能遵守我的嵌入式Linux系统使用的各种开源软件工具和库的许可证。
我的情况如下:
我有一个在嵌入式设备上运行的嵌入式Linux系统。它使用第三方提供的根文件系统镜像以及beeing用来开发的工具链。
我通过添加一些经过编译的开源程序(在各种许可证下)对根文件系统镜像进行了一些修改,现在它还包含Qt(LGPL)。
我的应用程序动态链接到根文件系统上的库,并且还使用Qt。
这些设备通过预装的内核,rootfs和应用程序交付给最终用户。包括rootfs以及可能的内核在内的应用程序都可以更新/升级。
我已经看到,在Android上,文件及其相应的许可证仅在长文本文件中列出。是否有必要以这种方式列出所有单个文件,或者是否有其他方法来处理此问题?
通常这是怎么做的?
最佳答案
首先,如果由于许可错误而有可能遭受损失,请去找一位真正的律师。互联网不是真正的律师,如果互联网为您提供了不正确的建议,您也不能起诉互联网欺诈。
第二,我不是律师,这里的大多数人也不是。以下是我根据多年经验总结的观点。如果您听从我的建议,请不要怪我,这会适得其反。
第三,阅读所有许可证,并确保您理解他们在说什么。如果没有,请从我的第一点开始澄清。
第四:
GPL/LGPL不需要提供应用程序源。他们要求“按要求”提供源。将其放置在受密码保护的网页上,或保留副本,可以将其刻录到CD和邮件中(如果需要,可以收取CD和邮资的费用),就足够了。
您有义务为您分发的任何二进制文件提供源代码,即使这些二进制文件来自第三方。如果第三方不向您提供其来源,则您应该指出GPL要求或寻找其他供应商。仅将GPL代码请求定向到上游供应商或未经修改的软件包的网页是不够的,特别是如果它来自可能修改它的第三方供应商。您需要注意将正确的代码版本与您制作的每个二进制发行版相匹配,以便为产品的任何特定发行版提供源代码。
您应将所有免费(和非免费)软件及其许可归因于此。有些许可证不需要,有些(早期BSD)需要。为了安全起见,总比后悔好。这也是向用户显示各种许可证的一种好方法,并使他们可以决定是否使用您的产品。
如果您有链接[L] GPL代码的专有应用程序,则在链接时要非常小心。您可能会无意间将代码与病毒许可证(GPL)链接,然后如果有人注意到并要求提供源,便会遇到麻烦。确保您出于相同的原因没有静态链接LGPL代码(更多:Can I inline function calls to functions defined in headers of LGPL packages?)。
如果您使用的是自定义交叉编译器,则还应考虑包括工具链的源代码。我不确定GPL实际上是否需要它,但是给某人提供源代码然后让他们无法实际编译它并定位到您的设备是有点愚蠢的举动。我知道至少有一家这样做的供应商-他们修改了一些语言并修补了编译器。他们没有分发编译器,因此不需要分发源代码。结果,不可能从提供的源中进行构建以匹配目标。 AFIK他们已经停止这样做了,所以我不会命名。
关于linux - 嵌入式Linux许可LGPL/GPL/etc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6994188/