Open-LLDP provides a Link Layer Discovery Protocol agent that supports
DCB (Data Center Bridging). The tc utility from iproute is needed to
manipulate  traffic control settings in the kernel.

Signed-off-by: Jonathan Richardson <jonathan.richard...@broadcom.com>
---
 .../0001-Fix-musl-libc-build-issue.patch      | 25 ++++++++
 ...tion-to-disable-installation-of-syst.patch | 57 +++++++++++++++++++
 .../openlldp/openlldp_1.0.1.bb                | 39 +++++++++++++
 3 files changed, 121 insertions(+)
 create mode 100644 
meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
 create mode 100644 
meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
 create mode 100644 meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb

diff --git 
a/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
 
b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
new file mode 100644
index 000000000..d8d5df218
--- /dev/null
+++ 
b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
@@ -0,0 +1,25 @@
+From b20d64f814c15efbd6a19aacfbfecf15083a83dc Mon Sep 17 00:00:00 2001
+From: Jonathan Richardson <jonathan.richard...@broadcom.com>
+Date: Wed, 26 Feb 2020 12:16:38 -0800
+Subject: [PATCH] Fix musl libc build issue
+
+clif.h should include sys/types.h for the definition of pid_t. It fails
+to compile when using musl libc.
+
+Signed-off-by: Jonathan Richardson <jonathan.richard...@broadcom.com>
+---
+ include/clif.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/clif.h b/include/clif.h
+index 648eedf..92f4fd8 100644
+--- a/include/clif.h
++++ b/include/clif.h
+@@ -32,6 +32,7 @@
+ #ifndef CLIF_H
+ #define CLIF_H
+ 
++#include <sys/types.h>
+ #include <sys/un.h>
+ #include "clif_sock.h"
+ 
diff --git 
a/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
 
b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
new file mode 100644
index 000000000..86c9f4463
--- /dev/null
+++ 
b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
@@ -0,0 +1,57 @@
+From 1c1e01b2414ca5b3cf5a21b6e6389f9ca82fd7e9 Mon Sep 17 00:00:00 2001
+From: Jonathan Richardson <jonathan.richard...@broadcom.com>
+Date: Fri, 6 Apr 2018 10:49:04 -0700
+Subject: [PATCH 1/1] autotools: Add option to disable installation of systemd
+ conf files
+
+Add option to configure.ac to enable or disable install of systemd conf
+files. If --with-systemdsystemunitdir is passed to configure then the
+files will be installed to the provided directory. If the option isn't
+provided then the value is determined from the systemd pkgconfig file,
+if found in PKG_CONFIG_PATH.
+
+This change is required because Makefile.am always installed the files
+to a hard coded path that couldn't be changed.
+---
+ Makefile.am  | 3 ++-
+ configure.ac | 9 +++++++++
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 551d4c7..5491c61 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -133,8 +133,9 @@ install-data-hook: installdirs-local
+ pkgconfigdir = ${libdir}/pkgconfig
+ pkgconfig_DATA = lldpad.pc liblldp_clif.pc
+ 
+-systemdsystemunitdir = $(prefix)/lib/systemd/system
++if HAVE_SYSTEMD
+ dist_systemdsystemunit_DATA = lldpad.service lldpad.socket
++endif
+ 
+ bashcompletiondir = $(sysconfdir)/bash_completion.d
+ dist_bashcompletion_DATA = contrib/bash_completion/lldpad 
contrib/bash_completion/lldptool
+diff --git a/configure.ac b/configure.ac
+index 0667446..f75f433 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T
+ AC_TYPE_UINT32_T
+ AC_TYPE_UINT8_T
+ 
++# Support for systemd unit files.
++AC_ARG_WITH([systemdsystemunitdir],
++        AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for 
systemd service files]),
++        [], [with_systemdsystemunitdir=$($PKG_CONFIG 
--variable=systemdsystemunitdir systemd)])
++if test "x$with_systemdsystemunitdir" != xno; then
++        AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
++fi
++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a 
"x$with_systemdsystemunitdir" != xno ])
++
+ AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc 
liblldp_clif.pc])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_OUTPUT
+-- 
+1.9.1
+
diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb 
b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb
new file mode 100644
index 000000000..ef8d780c6
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.0.1.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Open-LLDP"
+DESCRIPTION = "Link Layer Discovery Protocol for Linux that includes support 
for DCBX"
+HOMEPAGE = "http://open-lldp.org/start";
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8c2bc283e65df398ced5f5b747e78162"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
+inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 'systemd', 
'systemd', '', d)}
+
+DEPENDS = "libnl libconfig readline"
+
+SRCREV = "36d729de7ce5b56cf061d94d610cf0510154820c"
+SRC_URI = "git://github.com/intel/openlldp.git;protocol=https;branch=master \
+           
file://0001-autotools-Add-option-to-disable-installation-of-syst.patch \
+           file://0001-Fix-musl-libc-build-issue.patch \
+           "
+
+# Even though .ac allows disabling -Werror, Makefile.am adds it to AM_CFLAGS
+# causing it to always be enabled. There are warnings so disable it.
+TARGET_CFLAGS += "-Wno-error"
+
+# configure.ac generates version.h from include/version.h.in but autotools puts
+# build artefacts in $B, not $S and the header can't be found. To avoid
+# inheriting autotools-brokensep and messing up the source dir just tell 
Makefile
+# where it is.
+TARGET_CFLAGS += "-I ${B}/include"
+
+# Enable install of systemd conf files.
+EXTRA_OECONF += "${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager', 
'systemd', '--with-systemdsystemunitdir=${systemd_system_unitdir}', '', d)}"
+
+SYSTEMD_SERVICE_${PN} = "lldpad.service lldpad.socket"
+
+# To enable service at boot set to enable in local.conf.
+SYSTEMD_AUTO_ENABLE ?= "disable"
+
+RRECOMMENDS_${PN} = "iproute2-tc"
-- 
2.17.1

-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to