Search code examples
linuxyoctoopenldapyocto-recipe

Recipe openldap doesn't install ldapsearch utility into a yocto-base Linux distribution


I have successfully added the recipe openldap to my yocto-base Linux distribution, by the instruction:

IMAGE_INSTALL += "openldap"

After that I've created a path/to/my-layer/recipes-support/openldap/openldap_%.bbappend file and put in it the instruction:

INSANE_SKIP_${PN} += "already-stripped"

Without the previous instruction the compilation of openldap fails. Conversely by adding the previous assignment to the variable INSANE_SKIP_${PN}, the QA checks stop failing.

My real problem

The compilation process produces the binary file for the utility ldapsearch but this file isn't installed into the image. Instead I'm sure that openldap results correctly installed.

I don't find any method to add ldapsearch to the image.

Could someone help me?


Solution

  • I have successfully added the recipe openldap to my Yocto image, by the instruction:

    IMAGE_INSTALL += "openldap"

    You've added the package openldap to your image. The recipe however defines multiple packages:

    # The executables go in a separate package.  This allows the
    # installation of the libraries with no daemon support.
    # Each module also has its own package - see above.
    PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
    
    # Package contents - shift most standard contents to -bin
    FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
    FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
        ${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
        ${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
    FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
    FILES:${PN}-bin = "${bindir}"
    ...
    

    You likely want to add openldap-bin to your image.