如何将python-contextlib添加到python_2.7.3.bbappend?

时间:2016-02-17 20:32:40

标签: python python-2.7 bitbake openembedded

在我的custom-layer/recipes-devtools/python/python_2.7.3.bbappend中,我有以下内容

PROVIDES+="${PN}-contextlib "

PACKAGES+="${PN}-contextlib "

SUMMARY_${PN}-contextlib="Python utilities for with-statementcontexts."
RDEPENDS_${PN}-contextlib="${PN}-core "
FILES_${PN}-contextlib="${libdir}/python2.7/contextlib.* "

RDEPENDS_${PN}-modules+= "${PN}-contextlib "

当我执行bitbake -f python-contextlib时 - 没有任何失败。

当我在另一个配方中添加python-contextlib作为RDEPEND时,它会在执行do_rootfs任务时失败,因为“没有包提供python-contextlib”。

当我构建python时,我确实在进入python devshell时看到文件contextlib.py存在。因此,似乎正确地拾取了bbappend文件。 bitbake-layers show-appends还确认bbappend文件已被提取。

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

您的第一个bitbake失败,因为bitbake需要配方名称,而不是运行时包名称。

如果你真的希望将contextlib拆分成一个单独的包,那么我只是挑选27dbacdb88ee3e79f4c95a779d8a7e8c5c9f941d和b6b9df15a630605619bff060d5073272685058d6(来自oe-core)。

这里的问题可能是排序,你在清单公司采取了其他所有措施之后再加上PN-contextlib。使用PACKAGES = +前置而不是追加。

请注意,contextlib在没有这个附加的情况下被打包,可能在python-misc包中,所以我想知道为什么这么多人拼命想要它分开。

答案 1 :(得分:0)

看起来这个人也有类似的问题 - http://permalink.gmane.org/gmane.linux.embedded.yocto.general/21170

我手动验证了这一点。我在python_2.7.3.bbappend文件的末尾添加了python_2.7.3.bb的内容,但这些内容无效。

然后我在python-2.7-manifest.inc文件末尾添加了python_2.7.3.bbappend的内容。