Re: Help creating zeek recipe #yocto


Quentin Schulz
 

Hi Gary,

On Fri, Jul 03, 2020 at 02:22:40PM -0700, gary via lists.yoctoproject.org wrote:
I would like to create a recipe for zeek (a network security monitoring tool, https://zeek.org/). It fails while compiling because it cannot find a executable that it needs to install called binpac.  binpac is included in the zeek repo and is normally built as part of the zeek build.  I've created a recipe for binpac and included the native class and included binpac-native in the zeek recipe.  The binpac-native builds.

binpac_git.bb

SUMMARY = "BinPAC is a high level language for describing protocol parsers and generates C++ code."
HOMEPAGE = "https://github.com/zeek/binpac";

LICENSE = "Unknown"
LIC_FILES_CHKSUM = "file://COPYING;md5=5139995cafc8b5273b85dd8bab509855"

SRC_URI = "git://git@github.com/zeek/binpac.git;protocol=ssh"

# Modify these as desired
PV = "0.55-8+git${SRCPV}"
SRCREV = "9c3211ff121ddc677d0ed8bd3a85783f87921cce"

BBCLASSEXTEND = "native"

DEPENDS += "bison-native \
flex-native \
"
S = "${WORKDIR}/git"

inherit distutils
I'm not sure setup.py is supported for the project as it's empty? So
distutils does not look correct to me.

You have a makefile (inherit no classes, that;s the default) or
Cmakelists (inherit cmake) or ./configure (inherit autotools, though it
expects a configure.ac and not a configure directly).

Then, what you want to check is that your binpac binary is installed in
${WORKDIR}/sysroot-dirs. If it's not, you've to find where the binary is
installed (if it is) and fix the Cmake/autotools scripts to install in
the correct directory (one of the directories in STAGING_DIRS as a
"subdirectory" of ${D}) or add said directory to the ones installed in
other recipes' sysroot (STAGING_DIRS).

Quentin

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