Некоторые рецепты не работают после обновления до Yocto 2.0 Jethro.

Я только что обновил свой 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.*"

Любая помощь очень ценится, спасибо!


person g0hl1n    schedule 24.02.2016    source источник


Ответы (1)


Я только что узнал ответ сам. (Я должен был провести больше исследований, прежде чем публиковать здесь...)

Сбой сборки из-за изменения класса autotools в обновлении Yocto 1.7.

Отдельный каталог сборки теперь используется по умолчанию: класс 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

person g0hl1n    schedule 24.02.2016