summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DEVELOPERS3
-rw-r--r--package/Config.in1
-rw-r--r--package/open-lldp/0001-vdptool-fixed-compile-error-for-getline.patch27
-rw-r--r--package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch73
-rw-r--r--package/open-lldp/Config.in15
-rw-r--r--package/open-lldp/open-lldp.hash3
-rw-r--r--package/open-lldp/open-lldp.mk24
7 files changed, 146 insertions, 0 deletions
diff --git a/DEVELOPERS b/DEVELOPERS
index 0e754456cb..07c31ce5e4 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -931,6 +931,9 @@ F: package/qt5/
N: Julien Floret <julien.floret@6wind.com>
F: package/lldpd/
+N: Laurent Charpentier <laurent_pubs@yahoo.com>
+F: package/open-lldp/
+
N: Julien Viard de Galbert <julien@vdg.name>
F: package/dieharder/
F: package/easy-rsa/
diff --git a/package/Config.in b/package/Config.in
index 713d701253..b133c93d5e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1764,6 +1764,7 @@ endif
source "package/odhcp6c/Config.in"
source "package/odhcploc/Config.in"
source "package/olsr/Config.in"
+ source "package/open-lldp/Config.in"
source "package/open-plc-utils/Config.in"
source "package/openntpd/Config.in"
source "package/openobex/Config.in"
diff --git a/package/open-lldp/0001-vdptool-fixed-compile-error-for-getline.patch b/package/open-lldp/0001-vdptool-fixed-compile-error-for-getline.patch
new file mode 100644
index 0000000000..c20267786e
--- /dev/null
+++ b/package/open-lldp/0001-vdptool-fixed-compile-error-for-getline.patch
@@ -0,0 +1,27 @@
+From 3c7887bb8a61a3b49a2989329c756a038023c544 Mon Sep 17 00:00:00 2001
+From: Laurent Charpentier <laurent_pubs@yahoo.com>
+Date: Fri, 12 Jan 2018 12:25:41 +0100
+Subject: [PATCH] vdptool: fixed compile error for getline()
+
+vdptool.c was generating an error: implicit declaration for the getline() function.
+
+Signed-off-by: Laurent Charpentier <laurent_pubs@yahoo.com>
+---
+ vdptool.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/vdptool.c b/vdptool.c
+index b805372..4930f6a 100644
+--- a/vdptool.c
++++ b/vdptool.c
+@@ -36,6 +36,7 @@
+ * set and query VSI profile settings.
+ */
+
++#define _GNU_SOURCE
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+--
+2.14.3
+
diff --git a/package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch b/package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch
new file mode 100644
index 0000000000..57a23b2a70
--- /dev/null
+++ b/package/open-lldp/0002-get-inline-functions-work-with-both-gnu11-and-gnu89.patch
@@ -0,0 +1,73 @@
+From e186ca9ebda181f62504a1922559ef3ddae5e3b6 Mon Sep 17 00:00:00 2001
+From: Laurent Charpentier <laurent_pubs@yahoo.com>
+Date: Mon, 15 Jan 2018 11:24:45 +0100
+Subject: [PATCH] get inline functions work with both gnu11 and gnu89
+
+After gcc upgraded to gcc5, and if the codes are compiled without optimization(-O0), and the below error will happen:
+
+./include/lldp_8021qaz.h:237:12: error: inline function 'ieee8021qaz_clif_cmd' declared but never defined [-Werror]
+ inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from,
+ ^
+./include/lldp_8021qaz.h:222:13: error: inline function 'set_prio_map' declared but never defined [-Werror]
+ inline void set_prio_map(u32 *prio_map, u8 prio, int tc);
+ ^
+./include/lldp_8021qaz.h:221:12: error: inline function 'get_prio_map' declared but never defined [-Werror]
+ inline int get_prio_map(u32 prio_map, int tc);
+
+gcc5 defaults to -std=gnu11 instead of -std=gnu89, and it requires that exactly one C source file has the callable copy of the inline function.
+
+Signed-off-by: Laurent Charpentier <laurent_pubs@yahoo.com>
+---
+ include/lldp_8021qaz.h | 6 ------
+ lldp_8021qaz.c | 4 ++--
+ 2 files changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/include/lldp_8021qaz.h b/include/lldp_8021qaz.h
+index 55353b8..09dee20 100644
+--- a/include/lldp_8021qaz.h
++++ b/include/lldp_8021qaz.h
+@@ -218,9 +218,6 @@ int ieee8021qaz_mod_app(struct app_tlv_head *head, int peer,
+ u8 prio, u8 sel, u16 proto, u32 ops);
+ int ieee8021qaz_app_sethw(char *ifname, struct app_tlv_head *head);
+
+-inline int get_prio_map(u32 prio_map, int tc);
+-inline void set_prio_map(u32 *prio_map, u8 prio, int tc);
+-
+ struct ieee8021qaz_tlvs *ieee8021qaz_data(const char *);
+
+ int ieee8021qaz_tlvs_rxed(const char *ifname);
+@@ -234,9 +231,6 @@ int ieee8021qaz_rchange(struct port *port, struct lldp_agent *,
+ void ieee8021qaz_ifup(char *ifname, struct lldp_agent *);
+ void ieee8021qaz_ifdown(char *ifname, struct lldp_agent *);
+ u8 ieee8021qaz_mibDeleteObject(struct port *port, struct lldp_agent *);
+-inline int ieee8021qaz_clif_cmd(void *data, struct sockaddr_un *from,
+- socklen_t fromlen, char *ibuf, int ilen,
+- char *rbuf);
+ int ieee8021qaz_check_operstate(void);
+ int get_dcbx_hw(const char *ifname, __u8 *dcbx);
+
+diff --git a/lldp_8021qaz.c b/lldp_8021qaz.c
+index 094676d..f154317 100644
+--- a/lldp_8021qaz.c
++++ b/lldp_8021qaz.c
+@@ -396,7 +396,7 @@ static int read_cfg_file(char *ifname, struct lldp_agent *agent,
+ return 0;
+ }
+
+-inline int get_prio_map(u32 prio_map, int prio)
++static inline int get_prio_map(u32 prio_map, int prio)
+ {
+ if (prio > 7)
+ return 0;
+@@ -404,7 +404,7 @@ inline int get_prio_map(u32 prio_map, int prio)
+ return (prio_map >> (4 * (7-prio))) & 0xF;
+ }
+
+-inline void set_prio_map(u32 *prio_map, u8 prio, int tc)
++static inline void set_prio_map(u32 *prio_map, u8 prio, int tc)
+ {
+ u32 mask = ~(0xffffffff & (0xF << (4 * (7-prio))));
+ *prio_map &= mask;
+--
+2.14.3
+
diff --git a/package/open-lldp/Config.in b/package/open-lldp/Config.in
new file mode 100644
index 0000000000..d54cf181d3
--- /dev/null
+++ b/package/open-lldp/Config.in
@@ -0,0 +1,15 @@
+config BR2_PACKAGE_OPEN_LLDP
+ bool "open-lldp"
+ depends on BR2_TOOLCHAIN_HAS_THREADS # libnl
+ select BR2_PACKAGE_LIBCONFIG
+ select BR2_PACKAGE_LIBNL
+ select BR2_PACKAGE_READLINE
+ help
+ This package contains the Linux user space daemon and
+ configuration tool for Intel LLDP Agent with Enhanced Ethernet
+ support for the Data Center.
+
+ http://open-lldp.org/
+
+comment "open-lldp needs a toolchain w/ threads"
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/open-lldp/open-lldp.hash b/package/open-lldp/open-lldp.hash
new file mode 100644
index 0000000000..fdd85fed4f
--- /dev/null
+++ b/package/open-lldp/open-lldp.hash
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 f2c8a3307970374b01ad832ea18cf6d9abce6f00b3d8aed9305aa1428ad8252d open-lldp-036e314bd93602f7388262cc37faf8b626980af1.tar.gz
+sha256 67af5abeb092213cd9c53781503320f635ba28b641e0c3f24d367e8e93a9839b COPYING
diff --git a/package/open-lldp/open-lldp.mk b/package/open-lldp/open-lldp.mk
new file mode 100644
index 0000000000..b650aea3c1
--- /dev/null
+++ b/package/open-lldp/open-lldp.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# open-lldp
+#
+################################################################################
+
+OPEN_LLDP_VERSION = 036e314bd93602f7388262cc37faf8b626980af1
+OPEN_LLDP_SITE = git://open-lldp.org/open-lldp.git
+OPEN_LLDP_DEPENDENCIES = readline libnl libconfig host-pkgconf
+OPEN_LLDP_LICENSE = GPL-2.0
+OPEN_LLDP_LICENSE_FILES = COPYING
+
+# Fetching from git, need to generate configure/Makefile.in
+OPEN_LLDP_AUTORECONF = YES
+
+# Create the m4 directory (missing from the archive).
+# This is required for autoconf.
+define OPEN_LLDP_CREATE_M4
+ mkdir -p $(@D)/m4
+endef
+
+OPEN_LLDP_PRE_CONFIGURE_HOOKS += OPEN_LLDP_CREATE_M4
+
+$(eval $(autotools-package))
OpenPOWER on IntegriCloud