yocto 使用主机 perl 安装打开嵌入式配方

标签 yocto openembedded

我正在使用 yocto(莫蒂版),我发现我尝试为 heimdal ( https://github.com/heimdal/heimdal ) 创建的食谱有问题。在配置期间,它最终使用主机安装的 perl 而不是 perl 构建依赖项。所以它可以在任何安装了 perl 和模块的机器上运行,但我认为这不是 yocto 应该工作的方式(如果我错了请纠正我)。

我猜这是 Heimdal 的 configure.ac 文件中的错误,或者是 autotools 的错误。我对 autotools 不是很了解,想知道是否有人可以证实这一点?这是他们的 configure.ac 的直接链接

https://github.com/heimdal/heimdal/blob/master/configure.ac

当然这也可能是我的食谱中的错误:

SUMMARY = "A Kerberos 6 Implementation"

SRC_URI = "\
  git://github.com/heimdal/heimdal.git;protocol=https;branch=master \
"
SRCREV = "e21866f7a29ab9d0fcf69efddaec6f758faf7494"
LICENSE = "BSD-3-Clause"
S = "${WORKDIR}/git"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2580e0b4d85feafcd5c339f5be3c8229"

DEPENDS = "perl json-perl"

inherit autotools

PACKAGECONFIG = "pk-init mmap"

# Features
PACKAGECONFIG[afs-support] = "--enable-afs-support,--disable-afs-support"
PACKAGECONFIG[kcm] = "--enable-kcm,--disable-kcm"
PACKAGECONFIG[otp] = "--enable-otp,--disable-otp"
PACKAGECONFIG[pk-init] = "--enable-pk-init,--disable-pk-init"
PACKAGECONFIG[heimdal-documentation] = "--enable-heimdal-documentation,--disable-heimdal-documentation"
PACKAGECONFIG[mmap] = "--enable-mmap,--disable-mmap"
PACKAGECONFIG[sqlist-cache] = "--enable-sqlist-cache,--disable-sqlist-cache"
PACKAGECONFIG[ndmb-db] = "--enable-ndmb-db,--disable-ndmb-db"
PACKAGECONFIG[mdb-db] = "--enable-mdb-db,--disable-mdb-db"
PACKAGECONFIG[osfc2] = "--enable-osfc2,--disable-osfc2"

# Packages
PACKAGECONFIG[berkley-db] = "--with-berkley-db,--without-berkley-db"
PACKAGECONFIG[ipv6] = "--with-ipv6,--without-ipv6"

我还使用了开放式嵌入式(莫蒂版本)的默认 perl 配方和这个 json-perl 配方:

DESCRIPTION = "This module is a thin wrapper for JSON::XS-compatible modules with a few \
additional features. All the backend modules convert a Perl data structure \
to a JSON text as of RFC4627 (which we know is obsolete but we still stick \
to; see below for an option to support part of RFC7159) and vice versa. \
This module uses JSON::XS by default, and when JSON::XS is not available, \
this module falls back on JSON::PP, which is in the Perl core since 5.14. \
If JSON::PP is not available either, this module then falls back on \
JSON::backportPP (which is actually JSON::PP in a different .pm file) \
bundled in the same distribution as this module. You can also explicitly \
specify to use Cpanel::JSON::XS, a fork of JSON::XS by Reini Urban."

SECTION = "libs"
LICENSE = "Artisticv1 | GPLv1+"
PR = "r0"

MAINTAINER= "Poky <poky@yoctoproject.org>"
HOMEPAGE=   "https://metacpan.org/release/JSON"

LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
file://${COMMON_LICENSE_DIR}/GPL-1.0;md5=e9e36a9de734199567a4d769498f743d"

SRC_URI = "https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/JSON-2.97001.tar.gz"

SRC_URI[md5sum] = "693d6ff167496362f8ec6c3c5b8ba5ee"
SRC_URI[sha256sum] = "e277d9385633574923f48c297e1b8acad3170c69fa590e31fa466040fc6f8f5a"

S = "${WORKDIR}/JSON-${PV}"

inherit cpan allarch

BBCLASSEXTEND = "native"

最佳答案

Perl 使用 nativeperl 作为 perl 二进制文件,所以,我想,您应该修补项目的 configure.ac 以使用 AC_PATH_PROG 更改 PERL 变量的值,检查 this

此外,您需要 have

inherit perlnative 

关于yocto 使用主机 perl 安装打开嵌入式配方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53784116/

相关文章:

embedded-linux - 如何不用 i2cget 命令读取 i2c?

linux - 有没有一种简短的方法可以使用软件包列表为 Yocto 构建配方?

intel - 无法解析 meta-oe/conf/layer.conf

deb - 我可以在 BitBake 构建期间安装 .deb 吗?

linux - 我可以获得 .bbappend 文件的路径吗?

cross-compiling - Yocto:创建一个新的交叉编译器以供其他食谱使用

yocto - Yocto 构建的 Linux 上的安装后脚本

linux - Yocto Dunfell 错误 'No recipes available for',单个自定义元层中有多台机器

linux - 在 yocto 中找不到 bitbake 命令

python - yocto/bitbake 配方中 '__anonymous' 函数的含义是什么?