Date
1 - 7 of 7
non-existent task do_package_write_rpm error
W. Dobbe
Hi,
I'm writing a recipe for package hardening-check .
This package builds with only a simple Makefile (that has no install target). The recipe only installs a script hardening-check in /usr/bin.
I would like to include this script in our SDK.
The recipe itself builds fine (bitbake hardening-check-native).
But when I add hardening-check-native to IMAGE_INSTALL in my image the build fails with:
Task do_populate_sdk in myimage.bb rdepends upon non-existent task do_package_write_rpm in virtual:native:(...)/recipes-devtools/hardening-check/hardening-check_2.6.bb
Same error when I append the package to TOOLCHAIN_HOST_TASK instead.
Any idea how to solve this? Do I need to inherit my recipe from something?
Recipe included below.
Thanks in advance for the help!
regards,
Winfried
SUMMARY = "Script to check an executable for certain security weaknesses."
LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://debian/copyright;md5=06ff97d53f05a9b8ce2a416b30f496b9" SRC_URI = "http://ftp.debian.org/debian/pool/main/h/hardening-wrapper/hardening-wrapper_${PV}.tar.xz \ file://0001-perl_regex.patch \ " SRC_URI[md5sum] = "47c93c05b4d0199be8df0d35dbd68192" SRC_URI[sha256sum] = "c5fc46439646d0929a0605e4f3db67e57eefbbf5ceec5a2888440dbdf4450224" RDEPENDS_${PN} = "perl" S = "${WORKDIR}/hardening-wrapper" do_patch () { cd ${S} patch -p1 -u -i ${WORKDIR}/0001-perl_regex.patch } do_configure () { # Specify any needed configure commands here : } do_compile () { export DEB_HOST_ARCH=`uname -m` export DEB_HOST_ARCH_OS=`uname -s` oe_runmake } do_install () { install -d ${D}/${bindir} install -m 755 ${S}/build-tree/hardening-check ${D}/${bindir} } BBCLASSEXTEND = "native nativesdk"
|
|
Alexander Kanavin
You need to drop the -native suffix when installing to target image or SDK. -native is only for the bitbake build itself. Alex
On Fri, 21 Jan 2022 at 20:07, W. Dobbe <winfried_mb2@...> wrote:
|
|
W. Dobbe
Hi Alex,
Thanks for the tip. When I add hardening-check to IMAGE_INSTALL the build does indeed succeed.
But then the script is installed in the target sysroot of the SDK. I would like to have it in the native (x86_64-pokysdk-linux) sysroot as it is a tool to use on the build server.
Any idea how to achieve that ?
Thanks,
Winfried
|
|
Alexander Kanavin
Use TOOLCHAIN_HOST_TASK:append = " ..." in your image recipe. Alex
On Fri, 21 Jan 2022 at 21:00, Winfried <winfried_mb2@...> wrote:
|
|
W. Dobbe
Thanks.
With TOOLCHAIN_HOST_TASK_append = “ hardening-check” the sdk build progresses a bit further but then stops with error:
ERROR: dynniq-image-flownode-acu-default-1.0-r0 do_populate_sdk: Could not invoke dnf. Command '/home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-f
lownode-acu-default/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownod e-acu-default/1.0-r0/sdk/image/etc/dnf/dnf.conf --setopt=reposdir=/home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/sdk /image/etc/yum.repos.d --installroot=/home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/sdk/image --setopt=logdir=/home/ wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/temp --repofrompath=oe-repo,/home/wdobbe/yocto/flownode_zeus/build-flownode -acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/oe-sdk-repo --nogpgcheck install hardening-check nativesdk-cmake nativesdk-packagegroup-qt5-toolchain-host nativesdk -packagegroup-sdk-host nativesdk-perl-modules nativesdk-rpm packagegroup-cross-canadian-dynniq-flownode-acu' returned 1: DNF version: 4.2.2 cachedir: /home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/sdk/image/var/cache/dnf Added oe-repo repo from /home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/oe-sdk-repo repo: using cache for: oe-repo (...) Error: Problem: conflicting requests - package hardening-check-2.6-r0.cortexa9hf_neon does not have a compatible architecture - nothing provides /usr/bin/perl needed by hardening-check-2.6-r0.cortexa9hf_neon (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages) ERROR: Logfile of failure stored in: /home/wdobbe/yocto/flownode_zeus/build-flownode-acu/tmp/work/dynniq_flownode_acu-poky-linux-gnueabi/dynniq-image-flownode-acu-default/1.0-r0/temp/log.do_populate_sdk.5994 ERROR: Task (/home/wdobbe/yocto/flownode_zeus/sources/meta-dynniq-flownode-acu/recipes-dynniq/images/dynniq-image-flownode-acu-default.bb:do_populate_sdk) failed with exit code '1'
Bitbake builds package hardening-check for the target architecture (cortexa9hf_neon) i.s.o for x86_64 (or noarch).
Any ideas how to fix that ?
regards,
Winfried
|
|
W. Dobbe
Update:
TOOLCHAIN_HOST_TASK_append = “ nativesdk-hardening-check”
does work. The SDK build succeeds and the hardening-check script is installed in the x86_64-pokysdk-linux sysroot.
regards,
Winfried
|
|
Alexander Kanavin
Congratulations, you now know the three major flavors of a recipe, and why and where they're needed :) Alex
On Sat, 22 Jan 2022 at 14:34, Winfried <winfried_mb2@...> wrote:
|
|