tre*_*nki 9 linux embedded licensing
我想知道我必须做些什么来遵守我的嵌入式Linux系统使用的各种开源软件工具和库的许可.
我的情况如下:
我在嵌入式设备上运行嵌入式Linux系统.它使用由第三方提供的根文件系统映像以及用于开发的工具链.
我通过添加一些已编译的开源程序(在各种许可下)对根文件系统映像进行了一些修改,现在它还包含Qt(LGPL).
我的应用程序动态链接到根文件系统上的库,也使用Qt.
这些设备通过预先安装的内核,rootfs和应用程序交付给最终用户.可以更新/升级包括rootfs和可能的内核的应用程序.
我已经看到在Android上,文件及其相应的许可证只是列在一个长文本文件中.是否有必要以这种方式列出所有单个文件,还是有其他方法来处理此问题?
这通常是怎么做的?
首先,如果有可能因为获得许可证而遭受损失,请去看看真正的律师.互联网不是一个真正的律师,如果它给你不好的建议,你就不能起诉互联网.
其次,我不是律师,也不是大多数人.以下是基于多年经验的事情.如果你遵循我的建议,不要怪我,它会对你产生反感.
第三,阅读所有许可证,并确保你明白他们在说什么.如果没有,请从我的第一点寻求澄清.
第四:
GPL/LGPL不要求向源提供应用程序.他们要求"按要求"提供来源.将其放在受密码保护的网页上,或者保留副本,如果有人要求,您可以刻录到CD和邮件(您可以收取CD和邮资费用).
即使这些二进制文件来自第三方,您也有义务为您分发的任何二进制文件提供源代码.如果第三方不会向您提供其来源,那么您应该指出GPL要求或找到其他供应商.将GPL代码请求引导到上游供应商或未修改包的网页是不够的,特别是如果它来自可能修改它的第三方供应商.您需要注意将正确版本的代码与您制作的每个二进制版本进行匹配,以便为产品的任何特定版本提供源代码.
您应该归因于所有免费(和非免费)软件及其许可证.有些许可证不需要它,有些许可证(早期的BSD)可以.最好是安全而不是抱歉.这也是向用户展示各种许可证的好方法,并允许他们决定是否使用您的产品.
如果您有一个链接[L] GPL代码的专有应用程序,您将需要非常小心链接.您可能无意中将代码与病毒许可证(GPL)链接,然后如果有人注意到并要求源代码,您就会遇到麻烦.请确保您没有出于同样的原因静态链接LGPL代码(更多:我可以内联函数调用LGPL包的头文件中定义的函数吗?).
如果使用自定义交叉编译器,还应考虑包含工具链的源代码.我不确定GPL实际上是否需要它,但这是一个混蛋动作,给某人一个源,然后让他们无法实际编译它并瞄准你的设备.我知道至少有一个供应商这样做 - 他们修改了一些语言并修补了他们的编译器.他们没有分发编译器,因此没有要求分发源代码.因此,无法使用提供的源构建以匹配目标.AFIK他们已经停止这样做,所以我不会说出名字.