Re: Recipe dependent on Debian package - How should I approach? #yocto #debian


William Huang
 

Hi Mitch,
You can get systemd into your image... refer to the mega-manual:
https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#using-systemd-exclusively
Hopefully this resolves your issue.

- William Huang

On Mon, Jul 26, 2021 at 9:30 AM Mitch Gaines <gainesmitch2@gmail.com> wrote:

I have a project I am attempting to migrate from a Debian platform to Yocto. This specific project has a dependency on libsystemd-dev which is a Debian package, but it doesn't seem to build when adding a DEPENDS on "systemd" which is available on yocto. What is the best approach for migrating dependencies in this manner? I'm sure I am going to run into other projects to migrate which require Debian packages that are not directly available on Yocto. Or am I doing something wrong? See this specific example outlined below:

Below is a recipe for a Makefile C project that was mostly generated with `recipetool create`. I then added the DEPENDS on "systemd" and removed the unused tasks:
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)

# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
#
# The following license files were not able to be identified and are
# represented as "Unknown" below, you will need to check them yourself:
# debian/copyright
LICENSE = "Unknown"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=some-hash"

SRC_URI = "git://git@my-project.git;protocol=ssh"

# Modify these as desired
PV = "1.0+git${SRCPV}"
SRCREV = "<...>"

S = "${WORKDIR}/git"
DEPENDS = "systemd"

# NOTE: this is a Makefile-only piece of software, so we cannot generate much of the
# recipe automatically - you will need to examine the Makefile yourself and ensure
# that the appropriate arguments are passed in.


do_compile () {
oe_runmake my-project
}
Whenever I bitbake this recipe, I get the following:


NOTE: Executing Tasks ERROR: <recipe-name> do_compile: oe_runmake failed ERROR: <recipe-name> do_compile: Execution of '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/temp/run.do_compile.13271' failed with exit code 1: make[1]: Entering directory '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/git/src/core' CC file-name.c ../file-name.c:6:10: fatal error: systemd/sd-daemon.h: No such file or directory 6 | #include <systemd/sd-daemon.h> | ^~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [Makefile:93: build/file-name.o] Error 1 make[1]: Leaving directory '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/git/src/core' make: *** [Makefile:72: some-recipe] Error 2 WARNING: exit code 1 from a shell command. ERROR: Logfile of failure stored in: /home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/temp/log.do_compile.13271 Log data follows: | DEBUG: Executing shell function do_compile | NOTE: make -j 24 my-project | make[1]: Entering directory '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/git/src/core' | CC my-file.c | ../my-file.c:6:10: fatal error: systemd/sd-daemon.h: No such file or directory | 6 | #include <systemd/sd-daemon.h> | | ^~~~~~~~~~~~~~~~~~~~~ | compilation terminated. | make[1]: *** [Makefile:93: build/my-file.o] Error 1 | make[1]: Leaving directory '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/git/src/core' | make: *** [Makefile:72: my-project] Error 2 | ERROR: oe_runmake failed | WARNING: exit code 1 from a shell command. | ERROR: Execution of '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/temp/run.do_compile.13271' failed with exit code 1: | make[1]: Entering directory '/home/mitch/bin/yocto/project-name/build/tmp/work/armv7vet2hf-neon-poky-linux-gnueabi/recipe-name/1.0+gitAUTOINC+...-r0/git/src/core' | CC my-file.c | ../my-file.c:6:10: fatal error: systemd/sd-daemon.h: No such file or directory | 6 | #include <systemd/sd-daemon.h>


Am I doing anything overtly wrong here? Would appreciate any assistance you can provide.

Thanks!

Join yocto@lists.yoctoproject.org to automatically receive all group messages.