Yocto从Mickledore切换到Scarthgap后SPDX许可证报错求速解
高效解决方案汇总
1. 全局禁用SPDX生成任务
直接在构建目录的conf/local.conf中添加以下配置,全局关闭所有Recipe的SPDX生成流程:
INHERIT_remove += "create-spdx"
这会让所有Recipe跳过do_create_spdx任务,一次性解决所有相关报错,是最简便的方案。
2. 批量通过bbappend处理pipoe生成的Recipe
如果不想全局禁用SPDX,仅针对pipoe生成的Python Recipe做处理:
- 在你的自定义layer(比如
meta-trilab)中创建recipes-python/python3-*.bbappend文件 - 在该文件中添加以下内容:
do_create_spdx[nostamp] = "1" do_create_spdx() { # Do nothing return 0 }
这个通配符bbappend会自动匹配所有以python3-开头的Recipe,批量应用禁用SPDX的逻辑,无需逐个修改Recipe。
3. 修改pipoe的Recipe生成模板
如果后续还会用pipoe生成新的Recipe,可以修改pipoe的模板文件,把禁用SPDX的代码内置到模板中:
- 找到pipoe的Recipe模板(通常在pipoe安装目录的
templates文件夹下) - 在模板的适当位置添加以下代码:
do_create_spdx[nostamp] = "1" do_create_spdx() { # Do nothing return 0 }
这样后续生成的所有Recipe都会自带该配置,从根源避免问题。
内容的提问来源于stack exchange,提问作者Thugmek
相关产品推荐
相关产品推荐

