Search code examples
yoctosystemdbitbakemeson-build

meson can't build systemd from source: "getent" not found


I'm compiling systemd version 237 from source in a cross compiling environment (yocto sumo).

By the bitbake recipe, systemd is built by meson.

I upgraded meson version to 0.49.2 (copied from warrior) since my other recipes require that version.

when I do bitbake systemd, I have this error:

meson.build:678:0: ERROR: Program or command 'getent' not found or not executable

I opened meson.build and it has:

getent_result = run_command('getent', 'passwd', '65534')
if getent_result.returncode() == 0
    ...
endif

I searched a little bit, it seems that getent is a standard command, and in my building host (Ubuntu 16), I can run:

getent --version

getent (Ubuntu GLIBC 2.23-0ubuntu11.2) 2.23

So getent does exist, at least in my host Ubuntu.

Then how to fix the mison issue?

Thanks


Solution

  • You can add it from the host with:

    HOSTTOOLS += "getent"
    

    however OE-Core doesn't have that as standard and systemd builds see to work ok so I'm a little puzzled why you're hitting the requirement.