i try to implement botan library in yocto, i have the recipe with following content
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://license.txt;md5=bf361fc63df3fa25652ee82c43b7601a"
SRC_URI = "https://cdn-aws.deb.debian.org/debian/pool/main/b/botan/botan_${PV}.orig.tar.gz"
SRC_URI[md5sum] = "e52c6e15c0017eb2d61838f56f051ded"
SRC_URI[sha256sum] = "2d5696c75b89e3c2e888867907764ab063daca9a1a42ea35649792dace4eff83"
S = "${WORKDIR}/${BPN}-2.4.0"
B = "${WORKDIR}/build"
#DEPENDS = "pkgconfig"
inherit autotools pkgconfig
do_install () {
install -d ${D}${libdir}
install -d ${D}${libdir}/.debug/
install -d ${D}${includedir}/botan
install -m 0755 ${B}/libbotan-2.so ${D}${libdir}
install -m 0755 ${B}/libbotan-2.a ${D}${libdir}
install -m 0755 ${WORKDIR}/botan-2.4.0/src/botan/*.hpp ${D}${includedir}/botan
rm ${WORKDIR}/botan-2.4.0/src/botan/*.cpp
rm ${WORKDIR}/botan-2.4.0/src/botan/*.hpp
}
FILES_${PN} += " \
${libdir}/libbotan-2.so \
"
FILES_${PN}-dev += " \
${includedir}/botan/*.hpp \
"
FILES_${PN}-staticdev += " \
${libdir}//libbotan-2.a \
"
FILES_${PN}-dbg += " \
${libdir}/.debug/* \
"
When i try bitbake botan, i encountered error:
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_compile
| NOTE: make -j 4
| make: *** No targets specified and no makefile found. Stop.
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile
Anything i doing it wrong or misinterpret?
i create this recipe using recipetool create https://cdn-aws.deb.debian.org/debian/pool/main/b/botan/botan_2.4.0.orig.tar.gz
I tried bitbake -c botan and bitbake again, it still the same.
The error tells it could not find Makefile in source directory. From the readme.rst file present in botan-2.4.0.tar.gz it is said that to run ./configure.py before start compiling, which will generate Makefile. so try to add something like below to your recipe
do_configure_prepend() {
${PYTHON} ${S}/configure.py
}
Related
Yocto build for samba recipe failed
I am trying to build this samba recipe file
Here
bitbake smbnetfs
Error :
smbnetfs_git.bb DEPENDS on or otherwise requires it) samba was
skipped: it has incompatible license(s): GPL-3.0+ LGPL-3.0+ ERROR:
Required build target 'smbnetfs' has no buildable providers. Missing
or unbuildable dependency chain was: ['smbnetfs', 'samba']
HOMEPAGE = "https://www.samba.org/"
SECTION = "console/network"
LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 "
SAMBA_MIRROR = "http://samba.org/samba/ftp"
MIRRORS += "\
${SAMBA_MIRROR} http://mirror.internode.on.net/pub/samba \n \
${SAMBA_MIRROR} http://www.mirrorservice.org/sites/ftp.samba.org \n \
"
SRC_URI = "${SAMBA_MIRROR}/stable/samba-${PV}.tar.gz \
file://16-do-not-check-xsltproc-manpages.patch \
file://20-do-not-import-target-module-while-cross-compile.patch \
file://21-add-config-option-without-valgrind.patch \
file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \
file://0006-avoid-using-colon-in-the-checking-msg.patch \
file://netdb_defines.patch \
file://glibc_only.patch \
file://iconv-4.7.0.patch \
file://dnsserver-4.7.0.patch \
file://smb_conf-4.7.0.patch \
file://volatiles.03_samba \
"
SRC_URI_append_libc-musl = " \
file://samba-pam.patch \
file://samba-4.3.9-remove-getpwent_r.patch \
"
SRC_URI[md5sum] = "0253021a45c479cec1e135b004a0177a"
SRC_URI[sha256sum] = "1eede30fc8ef6504e24602fb72b00baa0a7b73b59f16d25cb0771dc8c7c57d6e"
inherit systemd waf-samba cpan-base perlnative update-rc.d
# remove default added RDEPENDS on perl
RDEPENDS_${PN}_remove = "perl"
DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libbsd libaio libpam"
My finding: There problem in LICENSE and LIC_FILES_CHKSUM
Reason = common-licenses folder is not available in the meta-openembedded
Why folder is missing from the meta-openembedded. How to resolve it.
I have gone through almost all the site. I have tired the option to close the license as below
LICENSE = "CLOSED"
BB_STRICT_CHECKSUM = "0"
But still no luck.
I tired this suggestion as well here and here
Please suggestion
I am trying to build an image for stm32mp1 board, I want to build a flutter application with my image so when I add try to build I get do_unpack error. Here is the link for meta-flutter layer and here is the link that causes I believe the unpack error and you can see here the .bb file at least the relevant part:
SUMMARY = "Flutter Engine"
DESCRIPTION = "Google Flutter Engine for use with Flutter applications"
AUTHOR = "Flutter Team"
HOMEPAGE = "https://github.com/flutter/engineflutter/"
BUGTRACKER = "https://github.com/flutter/flutter/issues"
SECTION = "graphics"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://flutter/LICENSE;md5=a60894397335535eb10b54e2fff9f265"
CVE_PRODUCT = "libflutter_engine.so"
REQUIRED_DISTRO_FEATURES = "opengl"
DEPENDS += "\
compiler-rt \
libcxx \
zip-native \
"
SRC_URI = "gn://github.com/flutter/engine.git;name=src/flutter \
file://0001-clang-toolchain.patch \
file://0002-x64-sysroot-assert.patch \
file://0001-allow-deprecated-calls.patch \
file://0001-remove-x11-dependency.patch \
file://0001-prevent-redefinition-of-glib_autoptr_clear_AtkObject.patch \
Here is the full error lines:
ERROR: flutter-engine-runtimerelease-git-r0 do_unpack: Bitbake Fetcher Error: UnpackError('Unpack command PATH="/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/sysroots-uninative/x86_64-linux/usr/bin:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot-native/usr/bin/python3-native:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/layers/openembedded-core/scripts:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot-native/usr/bin/arm-ostl-linux-gnueabi:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot/usr/bin/crossscripts:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot-native/usr/sbin:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot-native/usr/bin:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot-native/sbin:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/recipe-sysroot-native/bin:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/layers/openembedded-core/bitbake/bin:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/hosttools" pbzip2 -dc -p12 /home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/downloads/gn/https__github.com_flutter_engine.git-e85ea0e79c6d894c120cda4ee8ee10fe6745e187.tar.bz2 | tar x --no-same-owner -f - failed with return value 2', 'gn://github.com/flutter/engine.git;name=src/flutter')
ERROR: Logfile of failure stored in: /home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/build-openstlinuxweston-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/flutter-engine-runtimerelease/git-r0/temp/log.do_unpack.2523161
ERROR: Task (virtual:runtimerelease:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/meta-flutter/recipes-graphics/flutter-engine/flutter-engine_git.bb:do_unpack) failed with exit code '1'
NOTE: Tasks Summary: Attempted 7720 tasks of which 7703 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory
NOTE: Writing buildhistory took: 2 seconds
Summary: 1 task failed:
virtual:runtimerelease:/home/gencay/STM32MPU_workspace/openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/meta-flutter/recipes-graphics/flutter-engine/flutter-engine_git.bb:do_unpack
You have typos in SRC_UIR:
SRC_URI = "gn://github.com/flutter/engine.git;name=src/flutter \
Change preffix (proto) to git://.
I am trying to install audit daemon on Renases RZ/G1E platform
Build Configuration:
BB_VERSION = "1.22.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Ubuntu-14.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "iwg22m"
DISTRO = "poky"
DISTRO_VERSION = "1.6.1"
TUNE_FEATURES = "armv7a vfp neon callconvention-hard cortexa7"
TARGET_FPU = "vfp-neon"
meta
meta-yocto
meta-yocto-bsp = "tmp:c4f1f0f491f988901bfd6965f7d10f60cb94a76f"
meta-renesas
meta-rzg1 = "tmp:19bf1ed97d04009722bb88a780268822ee60ff83"
meta-oe
meta-multimedia = "tmp:dca466c074c9a35bc0133e7e0d65cca0731e2acf"
meta-linaro-toolchain = "tmp:8a0601723c06fdb75e62aa0f0cf15fc9d7d90167"
when i give the command
$bitbake audit
Audit daemon is installed and i can see the files inside the image folder of audit
ls tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/audit/2.8.4-r0/image/*
tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/audit/2.8.4-r0/image/etc:
audisp audit default init.d libaudit.conf
tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/audit/2.8.4-r0/image/lib:
libaudit.a libaudit.la libaudit.so libaudit.so.1 libaudit.so.1.0.0 libauparse.a libauparse.la libauparse.so libauparse.so.0 libauparse.so.0.0.0
tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/audit/2.8.4-r0/image/sbin:
audispd audisp-remote auditctl auditd augenrules aureport ausearch autrace
tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/audit/2.8.4-r0/image/usr:
bin include lib share
when i build the rootfs and add audit daemon by adding the following line in conf/local.conf
CORE_IMAGE_EXTRA_INSTALL += " audit"
I only get the following file inside the rootfs
/etc/libaudit.conf
Audit_2.8.4.bb
SUMMARY = "User space tools for kernel auditing"
DESCRIPTION = "The audit package contains the user space utilities for \
storing and searching the audit records generated by the audit subsystem \
in the Linux kernel."
HOMEPAGE = "http://people.redhat.com/sgrubb/audit/"
SECTION = "base"
LICENSE = "GPLv2+ & LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://people.redhat.com/sgrubb/${BPN}/${BPN}-${PV}.tar.gz \
file://audit-python-configure.patch \
file://audit-python.patch \
file://fix-swig-host-contamination.patch \
file://auditd \
file://auditd.service \
file://audit-volatile.conf \
"
SRC_URI[md5sum] = "ec9510312564c3d9483bccf8dbda4779"
SRC_URI[sha256sum] = "a410694d09fc5708d980a61a5abcb9633a591364f1ecc7e97ad5daef9c898c38"
inherit autotools pythonnative update-rc.d systemd
UPDATERCPN = "auditd"
INITSCRIPT_NAME = "auditd"
INITSCRIPT_PARAMS = "defaults"
SYSTEMD_PACKAGES = "auditd"
SYSTEMD_SERVICE_auditd = "auditd.service"
DEPENDS += "python tcp-wrappers libcap-ng linux-libc-headers (>= 2.6.30) swig-native"
EXTRA_OECONF += "--without-prelude \
--with-libwrap \
--enable-gssapi-krb5=no \
--with-libcap-ng=yes \
--with-python=yes \
--libdir=${base_libdir} \
--sbindir=${base_sbindir} \
--without-python3 \
--disable-zos-remote \
"
EXTRA_OECONF_append_arm = " --with-arm=yes"
EXTRA_OECONF_append_aarch64 = " --with-aarch64=yes"
EXTRA_OEMAKE += "PYLIBVER='python${PYTHON_BASEVERSION}' \
PYINC='${STAGING_INCDIR}/$(PYLIBVER)' \
pyexecdir=${libdir}/python${PYTHON_BASEVERSION}/site-packages \
STDINC='${STAGING_INCDIR}' \
pkgconfigdir=${libdir}/pkgconfig \
"
SUMMARY_audispd-plugins = "Plugins for the audit event dispatcher"
DESCRIPTION_audispd-plugins = "The audispd-plugins package provides plugins for the real-time \
interface to the audit system, audispd. These plugins can do things \
like relay events to remote machines or analyze events for suspicious \
behavior."
PACKAGES =+ "audispd-plugins"
PACKAGES += "auditd ${PN}-python"
FILES_${PN} = "${sysconfdir}/libaudit.conf ${base_libdir}/libaudit.so.1* ${base_libdir}/libauparse.so.*"
FILES_auditd += "${bindir}/* ${base_sbindir}/* ${sysconfdir}/*"
FILES_audispd-plugins += "${sysconfdir}/audisp/audisp-remote.conf \
${sysconfdir}/audisp/plugins.d/au-remote.conf \
${sbindir}/audisp-remote ${localstatedir}/spool/audit \
"
FILES_${PN}-dbg += "${libdir}/python${PYTHON_BASEVERSION}/*/.debug"
FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}"
CONFFILES_auditd += "${sysconfdir}/audit/audit.rules"
RDEPENDS_auditd += "bash"
do_install_append() {
rm -f ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.a
rm -f ${D}/${libdir}/python${PYTHON_BASEVERSION}/site-packages/*.la
# reuse auditd config
[ ! -e ${D}/etc/default ] && mkdir ${D}/etc/default
mv ${D}/etc/sysconfig/auditd ${D}/etc/default
rmdir ${D}/etc/sysconfig/
# replace init.d
install -D -m 0755 ${S}/../auditd ${D}/etc/init.d/auditd
rm -rf ${D}/etc/rc.d
if ${#bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/tmpfiles.d/
install -m 0644 ${WORKDIR}/audit-volatile.conf ${D}${sysconfdir}/tmpfiles.d/
fi
# install systemd unit files
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/auditd.service ${D}${systemd_unitdir}/system
# audit-2.5 doesn't install any rules by default, so we do that here
mkdir -p ${D}/etc/audit ${D}/etc/audit/rules.d
cp ${S}/rules/10-base-config.rules ${D}/etc/audit/rules.d/audit.rules
chmod 750 ${D}/etc/audit ${D}/etc/audit/rules.d
chmod 640 ${D}/etc/audit/auditd.conf ${D}/etc/audit/rules.d/audit.rules
# Based on the audit.spec "Copy default rules into place on new installation"
cp ${D}/etc/audit/rules.d/audit.rules ${D}/etc/audit/audit.rules
}
Audit_2.8.4.bb is a recipe. You run recipies with bitbake .
Recipes produce >= 1 packages. You install packages in an image.
You can look in the packages-split directory in tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/audit/2.8.4-r0/ to see what goes into which package.
I have two recipes, the first, adduser, is based on the useradd example in the meta-skeleton layer, and creates the directory /home/foo/, for the user foo:
SUMMARY = "Example recipe for using inherit useradd"
DESCRIPTION = "This recipe serves as an example for using features from useradd.bbclass"
SECTION = "examples"
PR = "r1"
LICENSE = "MIT"
S = "${WORKDIR}"
inherit useradd
# You must set USERADD_PACKAGES when you inherit useradd. This
# lists which output packages will include the user/group
# creation code.
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "-d /home/foo -r -s /bin/bash -p 'bar' foo"
do_install () {
install -d -m 755 ${D}/usr/share/foo
install -d -m 755 ${D}/home/foo
chown -R foo ${D}/usr/share/foo
chown -R foo ${D}/home/foo
}
FILES_${PN} = "/usr/share/foo /home/foo"
# Prevents do_package failures with:
# debugsources.list: No such file or directory:
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
I then have a second recipe, which should add the directory "code" to the user's home directory, and put a file in it:
LICENSE = "CLOSED"
DEPENDS = "adduser"
FILES_${PN} += "/home/foo/code /home/foo/code/base_reading.py"
SRC_URI = "file://base_reading.py \
"
S = "${WORKDIR}"
do_install() {
install -d ${D}/home/foo/code
install -m 0755 ${S}/base_reading.py ${D}/home/foo/code/base_reading.py
chown -R foo ${D}/home/foo/code
}
This is the whole error: https://paste.ubuntu.com/p/6bfH4vf8qw but the TL;DR is:
Error: Transaction check error:
file /home/foo conflicts between attempted installs of basecode-1.0-r0.cortexa7hf_neon_vfpv4 and adduser-1.0-r1.cortexa7hf_neon_vfpv4
At first, I tried to fix this by adding the DEPENDS = "adduser", thinking that that would ensure that /home/foo exists before it tries to create /home/foo/code, but it didn't make any difference.
DESCRIPTION = "Copies hello-binaries to the image"
LICENSE = "CLOSED"
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI += "file://hello "
S = "${WORKDIR}"
do_install() {
install -d ${D}${bindir}
install -m 0777 hello ${D}${bindir}
}
#FILES_${PN} += "${bindir}"
INSANE_SKIP_${PN} = "ldflags"
INSANE_SKIP_${PN}-dev = "ldflags"
In the above recipe i commented the line FILES_ then also the hello binary is adding to the image how is it possible? I have no idea how the recipe is copying binaries to image.*
FILES_${PN} has a default value that includes among other things "${bindir}/*". So appending to the value in the recipe isn't needed.
You can see the default value in meta/conf/bitbake.conf and check what the value ends up as with bitbake -e <hellorecipe> | grep ^FILES_