嵌入式Linux许可LGPL / GPL /等

我想知道我必须做些什么来遵守我的嵌入式 Linux系统使用的各种开源软件工具和库的许可证.

我的情况如下:

我在嵌入式设备上运行嵌入式Linux系统.它使用由第三方提供的根文件系统映像以及用于开发的工具链.

我通过添加一些已编译的开源程序(在各种许可下)对根文件系统映像进行了一些修改,现在它还包含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上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...