更新到Yocto 2.0“Jethro”后,一些食谱失败了

时间:2016-02-24 09:14:37

标签: updates yocto recipe

我刚刚将我的Yocto Poky从“Daisy”升级为“Jethro”,现在一些曾经在“do_install”任务中运行良好的配方会出现类似的错误消息:

ERROR: oe_runmake failed
ERROR: Function failed: do_install (log file is located at /build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/temp/log.do_install.31232)
ERROR: Logfile of failure stored in: /build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/temp/log.do_install.31232
Log data follows:
| DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
| DEBUG: Executing shell function do_install
| NOTE: make -j 8 DESTDIR=/build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/image install
| make: *** No rule to make target 'install'.  Stop.
| ERROR: oe_runmake failed
| ERROR: Function failed: do_install (log file is located at /build/tmp/work/cortexa9hf/qpdf/6.0.0-r0/temp/log.do_install.31232)
ERROR: Task 2 (/home/g0hl1n/git/meta-mine/recipes-foss/qpdf/qpdf_6.0.0.bb, do_install) failed with exit code '1'

我认为这可以通过分离构建目录来实现,但我对答案/解决方案的搜索并不成功。
产生上述错误消息的方法是:

DESCRIPTION = "PDF transformation/inspection software"
HOMEPAGE = "http://qpdf.sourceforge.net"
LICENSE = "Artistic-2.0"
SECTION = ""
DEPENDS = "libpcre"
PR = "r0"

SRC_URI = "https://github.com/qpdf/qpdf/archive/release-qpdf-${PV}.tar.gz"
LIC_FILES_CHKSUM = "file://Artistic-2.0;md5=7806296b9fae874361e6fb10072b7ee3"
SRC_URI[md5sum] = "a0601b0bc56d3f412fd3afecfce2721c"
SRC_URI[sha256sum] = "ce323ca692ddc6da31a90ef8a5f7fb7bc6c61c1c037e2eac14e5d0fcfe6a2797"

S="${WORKDIR}/${PN}-release-${PN}-${PV}"

inherit autotools gettext

# disable random file detection for cross-compile
EXTRA_OECONF = "--without-random"

PACKAGES =+ "libqpdf"

FILES_libqpdf = "${libdir}/libqpdf.so.*"

非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

我自己刚刚找到了答案。 (我应该在发布之前做更多的研究......)

由于Yocto 1.7更新中autotools类的更改,构建失败。

  

现在默认使用单独的构建目录:autotools类已更改为使用目录构建(B),这是   与源目录(S)分开。这通常被称为   如B!= S,或树外构建。

     

如果正在构建的软件已经能够构建一个   目录与源分开,您不需要做任何事情。   但是,如果软件无法以这种方式构建,   你需要修补软件才能构建它   单独,或者您需要更改配方以继承   autotools-brokensep类而不是autotools或autotools_stage   类。 [1]

因此,从inherit autotools更改为inherit autotools-brokensep修复了qpdf版本的问题。

[1] https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#migration-1.7-autotools-class-changes