Automation 如何从bitbake配方中提取许可信息

Automation 如何从bitbake配方中提取许可信息,automation,licensing,yocto,bitbake,Automation,Licensing,Yocto,Bitbake,我会尽量简短。我收到了一个yocto存储库,并被要求对其进行审核,以获取构建所使用的许可证。我的最终目标是: 列出发行版使用的所有许可证(即使用发行版构建的所有工具和实用程序使用的许可证) 获取许可证文件的副本 获取internet上的URL,在那里可以找到许可证文本。(如果其他人想将其与我提供给他们的内容进行比较) 作为一个懒惰的“软件工程师”,我不想做这个任务,只想解析所有的.bb文件来提取所有的信息。 我看到了一些配方,其中包括标题,而标题又包含许可证信息。能沿着小路走就好了 GitHub

我会尽量简短。我收到了一个yocto存储库,并被要求对其进行审核,以获取构建所使用的许可证。我的最终目标是:

  • 列出发行版使用的所有许可证(即使用发行版构建的所有工具和实用程序使用的许可证)
  • 获取许可证文件的副本
  • 获取internet上的URL,在那里可以找到许可证文本。(如果其他人想将其与我提供给他们的内容进行比较)
  • 作为一个懒惰的“软件工程师”,我不想做这个任务,只想解析所有的.bb文件来提取所有的信息。 我看到了一些配方,其中包括标题,而标题又包含许可证信息。能沿着小路走就好了

    GitHub上的项目看起来很有希望。但可能无法完全满足我的需求

    我也有完整的源代码和许可证文件文本与源代码一起分发。我应该能够编写一个简单的脚本来实现这一点,但某些许可证中的文本不包含许可证本身的类型


    任何提示都将不胜感激。

    您应该能够通过解决1)和2)问题

    首先,您可能希望在映像中使用许可证,而不是发行版,因为您可以在任何发行版中构建各种配方,所以重要的只是您发布的内容,即您的映像。在图像中查找软件使用的许可证的方法已经很简单了,但是您的问题有点不同,因为您还需要完整的许可证文本。这也很简单,它都在
    build/tmp/deploy/licenses
    中的每个包目录中

    至于你的第三个子问题,这并不是那么容易,因为即使是像GPLv2这样的标准,在不同的项目之间也几乎没有变化,有些项目有例外,有些项目以不同的方式编写了“(c)$YEARS”,所以Openembedded构建系统提供给你的实际上是更可靠的,因为它是从源代码中提取的。可能的是(通过
    archiver
    class)和许可证信息,任何真正好奇的人都可以通过这种方式交叉检查源代码和许可证