Files related to Audit daemon are not in rootfs - yocto

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.

Related

Yocto build for samba recipe failed

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

botan-2.4.0-r0 do_compile: oe_runmake failed

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
}

Add OP-TEE to Yocto

I am attempting to build a Yocto image incorporating OP-TEE. I'm used to the output from OP-TEE's build repo (bl1.bin etc) and I can't get the Yocto system to do the same. Also no /dev/tee devices exist (so maybe the kernel isn't configured). Although xtest and optee-examples have been installed. I am attempting to first build it against QEMU ARMv8.
Here is my config so far:
local.conf
MACHINE ?= "qemuarm64"
PREFERRED_PROVIDER_virtual/kernel = "linux-linaro-aarch64"
IMAGES_CLASSES = "image_types_bios image_types_uefi"
DISTRO ?= "poky"
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
PACKAGECONFIG_append_pn-qemu-system-native = " sdl"
CONF_VERSION = "1"
OPTEEOUTPUTMACHINE = "vexpress"
OPTEEMACHINE = "vexpress-qemu_armv8a"
CORE_IMAGE_EXTRA_INSTALL += "optee-client optee-examples optee-os optee-test python-pycrypto"
INSANE_SKIP_optee-examples = "ldflags"
DISTRO_FEATURES_append = "optee"
bblayers.conf
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/mnt/raid/yocto_stuff/arm64/poky/meta \
/mnt/raid/yocto_stuff/arm64/poky/meta-poky \
/mnt/raid/yocto_stuff/arm64/poky/meta-yocto-bsp \
/mnt/raid/yocto_stuff/arm64/meta-linaro/meta-optee \
/mnt/raid/yocto_stuff/arm64/meta-linaro/meta-linaro \
/mnt/raid/yocto_stuff/arm64/meta-openembedded/meta-oe \
/mnt/raid/yocto_stuff/arm64/meta-openembedded/meta-networking \
/mnt/raid/yocto_stuff/arm64/meta-openembedded/meta-python \
"
Thanks for any help.

Yocto build fails due to conflict between recipes

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.

Yocto:Could not inherit file classes/autotools-brokensep.bbclass

I am new to yocto project. I am getting the following error while running the bitbake command
$bitbake gemini-image
ERROR: ParseError at /home/zappy/Desktop/fyocto/meta-ivi/meta-ivi/recipes-extended/persistence-client-library/persistence-client-library_git.bb:18: Could not inherit file classes/autotools-brokensep.bbclass
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
my bblayers.conf file is
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
/home/zappy/Desktop/fyocto/poky/meta \
/home/zappy/Desktop/fyocto/poky/meta-yocto \
/home/zappy/Desktop/fyocto/poky/meta-yocto-bsp \
/home/zappy/Desktop/fyocto/meta-ivi/meta-ivi \
/home/zappy/Desktop/fyocto/meta-ti \
"
BBLAYERS_NON_REMOVABLE ?= " \
/home/zappy/Desktop/fyocto/poky/meta \
/home/zappy/Desktop/fyocto/poky/meta-yocto \
And my local.conf file is(edited lines only)
MACHINE?= ”pandaboard”
DISTRO ?= "poky-ivi-systemd"
INCOMPATIBLE_LICENSE = "GPLv3"
any one familiar with these types of errors??
please feel free to ask if any further details is needed to understand the problem
EDIT:
This is the persistence-client-library_git.bb file
SUMMARY = "GENIVI Persistence Client Library"
DESCRIPTION = "The Persistence Management is responsible to handle \
persistent data, including all data read and modified often during \
a lifetime of an infotainment system."
HOMEPAGE = "http://projects.genivi.org/persistence-client-library"
BUGTRACKER = "http://bugs.genivi.org/enter_bug.cgi?product=Persistence"
LICENSE = "MPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=6161c6840f21a000e9b52af81d2ca823"
DEPENDS = "dlt-daemon dbus libcheck persistence-common-object"
PV = "7.0+git${SRCPV}"
SRC_URI = "git://git.projects.genivi.org/persistence/persistence-client-library.git"
SRCREV = "441b3ce710ec6b7f1e6360cdf29e5c4243af9f1e"
S = "${WORKDIR}/git"
inherit pkgconfig autotools-brokensep
PARALLEL_MAKE = ""
FILES_${PN} = " \
${libdir}/*.so \
${libdir}/*.so.* \
${sysconfdir} \
"
do_install_append() {
install -d ${D}${sysconfdir}/dbus-1/system.d
install -m 0644 ${S}/config/org.genivi.persistence.admin.conf ${D}${sysconfdir}/dbus-1/system.d
}
RDEPENDS_${PN} = "node-state-manager"
Problem: It is not able to locate the autotools-brokensep.bbclass which is mentioned in your persistence-client-library_git.bb as inherit pkgconfig autotools-brokensep
Solution: Provide the path of the file in bblayers.conf where the file locates, and even check th layers.conf of which the file resides.