【问题标题】:ParseError after adding meta-oe layer Could not inherit file classes/autotools_stage.bbclass?添加 meta-oe 层后的 ParseError 无法继承文件类/autotools_stage.bbclass?
【发布时间】:2018-05-28 11:28:44
【问题描述】:

更新:以下是每一层的分支

rama@RR06:~/repositories/poky$ cd meta-qt4/
rama@RR06:~/repositories/poky/meta-qt4$ git checkout pyro
Already on 'pyro'
Your branch is up-to-date with 'origin/pyro'.
rama@RR06:~/repositories/poky/meta-qt4$ cd ..
rama@RR06:~/repositories/poky$ cd meta-virtualization/
rama@RR06:~/repositories/poky/meta-virtualization$ git checkout pyro
Already on 'pyro'
Your branch is up-to-date with 'origin/pyro'.
rama@RR06:~/repositories/poky/meta-virtualization$ cd ..
rama@RR06:~/repositories/poky$ cd oe-meta-go/
rama@RR06:~/repositories/poky/oe-meta-go$ git checkout pyro
error: pathspec 'pyro' did not match any file(s) known to git.
rama@RR06:~/repositories/poky/oe-meta-go$ cd ..
rama@RR06:~/repositories/poky$ cd meta-toradex/
rama@RR06:~/repositories/poky/meta-toradex$ git checkout pyro
M   meta/conf/machine/qemuarm64.conf
Already on 'pyro'
Your branch is up-to-date with 'origin/pyro'.
rama@RR06:~/repositories/poky/meta-toradex$ cd ..
rama@RR06:~/repositories/poky$ cd meta-openembedded/
rama@RR06:~/repositories/poky/meta-openembedded$ git checkout pyro
M   meta/conf/machine/qemuarm64.conf
Already on 'pyro'
Your branch is up-to-date with 'origin/pyro'.
rama@RR06:~/repositories/poky/meta-openembedded$ cd ..
rama@RR06:~/repositories/poky$ cd meta-freescale
rama@RR06:~/repositories/poky/meta-freescale$ git checkout pyro
Already on 'pyro'
Your branch is up-to-date with 'origin/pyro'.
rama@RR06:~/repositories/poky/meta-freescale$ 

我正在尝试添加一个称为元虚拟化的层,它依赖于元开放嵌入的某些层,例如 meta-oe。一个我添加了这些必要的层,我在 bitbaking 时收到以下错误:

NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.               | ETA:  0:00:26
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/vim/vim_7.4.769.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb: base_contains is deprecated, please use bb.utils.contains instead.          | ETA:  0:00:26
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.1.5.bb: base_contains is deprecated, please use bb.utils.contains instead.

还有这个:

ERROR: ParseError at /home/rama/repositories/poky/meta-openembedded/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.4.bb:17: Could not inherit file classes/autotools_stage.bbclass

我什至没有看到构建配置输出。我检查了这一点,发现 autotools_stage.bbclass 已从最新版本的文件 scsirastools_1.6.4.bb 中删除,并说这可以删除 csince not used,我继续这样做并得到以下错误:

NOTE: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb: base_contains is deprecated, please use bb.utils.contains instead.
ERROR: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb: Error executing a python function in <code>:

The stack trace of python calls that resulted in this exception/failure was:
File: '<code>', lineno: 18, function: <module>
     0014:__anon_35__home_rama_repositories_poky_meta_classes_devshell_bbclass(d)
     0015:__anon_101__home_rama_repositories_poky_meta_classes_sstate_bbclass(d)
     0016:__anon_20__home_rama_repositories_poky_meta_classes_blacklist_bbclass(d)
     0017:__anon_160__home_rama_repositories_poky_meta_classes_siteinfo_bbclass(d)
 *** 0018:__anon_31__home_rama_repositories_poky_meta_openembedded_meta_networking_recipes_support_nis_nis_inc(d)
     0019:__anon_23__home_rama_repositories_poky_meta_classes_systemd_bbclass(d)
     0020:__anon_81__home_rama_repositories_poky_meta_classes_update_rc_d_bbclass(d)
File: '/home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/nis.inc', lineno: 29, function: __anon_31__home_rama_repositories_poky_meta_openembedded_meta_networking_recipes_support_nis_nis_inc
     0025:# so force the package to be skipped here (this will cause a
     0026:# 'nothing provides' error)
     0027:python () {
     0028:    os = bb.data.getVar("TARGET_OS", d, 1)
 *** 0029:    if os == "linux-uclibc":
     0030:        raise bb.parse.SkipPackage("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this")
     0031:}
Exception: AttributeError: 'module' object has no attribute 'getVar'

NOTE: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.7.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_2.2.bb: base_contains is deprecated, please use bb.utils.contains instead.
ERROR: Failed to parse recipe: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/ypbind-mt_1.38.bb
ERROR: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/yp-tools_2.14.bb: Error executing a python function in <code>:

The stack trace of python calls that resulted in this exception/failure was:
File: '<code>', lineno: 18, function: <module>
     0014:__anon_35__home_rama_repositories_poky_meta_classes_devshell_bbclass(d)
     0015:__anon_101__home_rama_repositories_poky_meta_classes_sstate_bbclass(d)
     0016:__anon_20__home_rama_repositories_poky_meta_classes_blacklist_bbclass(d)
     0017:__anon_160__home_rama_repositories_poky_meta_classes_siteinfo_bbclass(d)
 *** 0018:__anon_31__home_rama_repositories_poky_meta_openembedded_meta_networking_recipes_support_nis_nis_inc(d)
     0019:__anon_23__home_rama_repositories_poky_meta_classes_systemd_bbclass(d)
File: '/home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/nis/nis.inc', lineno: 29, function: __anon_31__home_rama_repositories_poky_meta_openembedded_meta_networking_recipes_support_nis_nis_inc
     0025:# so force the package to be skipped here (this will cause a
     0026:# 'nothing provides' error)
     0027:python () {
     0028:    os = bb.data.getVar("TARGET_OS", d, 1)
 *** 0029:    if os == "linux-uclibc":
     0030:        raise bb.parse.SkipPackage("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this")
     0031:}
Exception: AttributeError: 'module' object has no attribute 'getVar'

NOTE: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.3.7.bb: base_contains is deprecated, please use bb.utils.contains instead.
NOTE: /home/rama/repositories/poky/meta-openembedded/meta-networking/recipes-support/netcf/netcf_git.bb: base_contains is deprecated, please use bb.utils.contains instead.

是不是其他一些不推荐使用的文件调用了这个据说不存在的旧文件?正如我所说,我最近刚刚克隆了所有内容。 所以我又把它放回去了。我昨天刚刚克隆了 repos,除了 oe-meta-go 在 master 上,所有其他分支都在 pyro 分支上。

我的设置在 Ubuntu 14.04 上的 pyro 分支上很奇怪。

【问题讨论】:

    标签: yocto bitbake


    【解决方案1】:

    再次,您使用的是所有图层的哪个版本?您需要在所有层中使用相应的版本/分支。

    最初的警告base_contains is deprecated, please use bb.utils.contains instead. 表明您有一个最近(不太旧)的 bitbake 和 oe-core。

    但是,scsirastools 确实继承了jethro 中的autotools_stage;而这条线在krogoth(2016 年春季发布)中被删除。请参阅 meta-oe/scsirastools_1.6.4.bb 以验证它没有继承 pyro 中的该类。

    对于另一个错误,meta-networking 中的openvpn_2.3.7.bb 不存在pyro 分支,请参阅meta-networking / openvpn 进行验证。

    对于ypbind-mt,在包含的文件nis.inc中,没有一行:

    os = bb.data.getVar("TARGET_OS", d, 1)
    

    pyro 分支中。那一行是:

    os = d.getVar("TARGET_OS", True)
    

    以上所有发现都告诉我们您正在混合分支。

    因此,如果您确保您的层所有具有相同版本/分支,那么问题就会少很多。

    支持混合版本/分支,您只能靠自己。 (即,这仅适用于知道自己在做什么的人)。

    【讨论】:

    • 我得到同样的错误,我进入每一层并将它们切换到 pyro。
    • 不,pyro 中的 scsirastools 工具配方不会尝试继承 autotools_stage。所以你不能得到那个错误。对于您的其他错误,在pyro 中没有2.3.7 版本的OpenVPN ...
    • 我正在用图层的分支更新问题
    • 我仍然支持我的 cmets。元网络(pyro)中没有openvpn 2.3.7,它是2.3.9。而 meta-oe 中的 scisirastools 不继承 autools_stage。您必须再次验证这一点。只需在上游查看它们,您就会看到它。
    • 我应该删除图层并从头开始克隆新图层吗?看来他们都在我重新检查的pyro上。
    猜你喜欢
    • 2018-08-29
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2014-02-25
    相关资源
    最近更新 更多