From db860191b2a4092c976d44700c6539e562827177 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Tue, 6 Jul 2021 14:23:29 -0700 Subject: keepalived: Upgrade to 2.2.2 Fix build with upcoming glibc 2.34 while here Signed-off-by: Khem Raj --- ...0001-layer4-Change-order-of-include-files.patch | 58 ++++++++++++++++++++++ .../recipes-daemons/keepalived/keepalived_2.2.1.bb | 44 ---------------- .../recipes-daemons/keepalived/keepalived_2.2.2.bb | 46 +++++++++++++++++ 3 files changed, 104 insertions(+), 44 deletions(-) create mode 100644 meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch delete mode 100644 meta-networking/recipes-daemons/keepalived/keepalived_2.2.1.bb create mode 100644 meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb diff --git a/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch b/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch new file mode 100644 index 0000000000..f9cadbc26d --- /dev/null +++ b/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch @@ -0,0 +1,58 @@ +From a85ca79143a87286f793957e803ee3daf03c2b57 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Tue, 6 Jul 2021 14:06:44 -0700 +Subject: [PATCH] layer4: Change order of include files + +curent order to include standard headers first is causing an isue with +glibc 2.34 + kernel-headers 5.13+ where order of including netinet/in.h +and linux/in.h matters and it does not define __UAPI_DEF_IN_IPPROTO +before including linux/in.h and then later includes netinet/in.h which +then means lot of definitions will be defined twice and compile would +fail. Re-ordering the local headers to appear first solves the issue +amicably, and I think this is right order too + +Upsteam-Status: Pending +Signed-off-by: Khem Raj +--- + keepalived/core/layer4.c | 21 ++++++++++----------- + 1 file changed, 10 insertions(+), 11 deletions(-) + +diff --git a/keepalived/core/layer4.c b/keepalived/core/layer4.c +index 90cdc84..c122c29 100644 +--- a/keepalived/core/layer4.c ++++ b/keepalived/core/layer4.c +@@ -23,6 +23,16 @@ + + #include "config.h" + ++#include "layer4.h" ++#include "logger.h" ++#include "scheduler.h" ++#ifdef _WITH_LVS_ ++#include "check_api.h" ++#endif ++#include "bitops.h" ++#include "utils.h" ++#include "align.h" ++ + #include + #include + #include +@@ -33,17 +43,6 @@ + #include + #endif + #include +-#include +- +-#include "layer4.h" +-#include "logger.h" +-#include "scheduler.h" +-#ifdef _WITH_LVS_ +-#include "check_api.h" +-#endif +-#include "bitops.h" +-#include "utils.h" +-#include "align.h" + + // #define ICMP_DEBUG 1 + diff --git a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.1.bb b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.1.bb deleted file mode 100644 index a778d26097..0000000000 --- a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.1.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "High Availability monitor built upon LVS, VRRP and service pollers" -DESCRIPTION = "Keepalived is a routing software written in C. The main goal \ -of this project is to provide simple and robust facilities for loadbalancing \ -and high-availability to Linux system and Linux based infrastructures. \ -Loadbalancing framework relies on well-known and widely used Linux Virtual \ -Server (IPVS) kernel module providing Layer4 loadbalancing \ -" -HOMEPAGE = "http://www.keepalived.org/" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" - -SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz" -SRC_URI[sha256sum] = "91186f20c83ffc48d7a15a9a6e2329ed4feeb2dcb51f4aa9672c8840190ea741" -UPSTREAM_CHECK_URI = "https://github.com/acassen/keepalived/releases" - -DEPENDS = "libnfnetlink openssl" - -inherit autotools pkgconfig systemd - -PACKAGECONFIG ??= "libnl snmp \ - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ -" -PACKAGECONFIG[libnl] = "--enable-libnl,--disable-libnl,libnl" -PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp" -PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--with-init=SYSV,systemd" - -EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d" - -do_install_append() { - if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then - chmod 0755 ${D}${sysconfdir}/init.d/${BPN} - sed -i 's#rc.d/##' ${D}${sysconfdir}/init.d/${BPN} - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -D -m 0644 ${B}/${BPN}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service - fi -} - -FILES_${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt" - -SYSTEMD_SERVICE_${PN} = "keepalived.service" -SYSTEMD_AUTO_ENABLE ?= "disable" diff --git a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb new file mode 100644 index 0000000000..f0cbca1bec --- /dev/null +++ b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb @@ -0,0 +1,46 @@ +SUMMARY = "High Availability monitor built upon LVS, VRRP and service pollers" +DESCRIPTION = "Keepalived is a routing software written in C. The main goal \ +of this project is to provide simple and robust facilities for loadbalancing \ +and high-availability to Linux system and Linux based infrastructures. \ +Loadbalancing framework relies on well-known and widely used Linux Virtual \ +Server (IPVS) kernel module providing Layer4 loadbalancing \ +" +HOMEPAGE = "http://www.keepalived.org/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz \ + file://0001-layer4-Change-order-of-include-files.patch \ + " +SRC_URI[sha256sum] = "103692bd5345a4ed9f4581632ea636214fdf53e45682e200aab122c4fa674ece" +UPSTREAM_CHECK_URI = "https://github.com/acassen/keepalived/releases" + +DEPENDS = "libnfnetlink openssl" + +inherit autotools pkgconfig systemd + +PACKAGECONFIG ??= "libnl snmp \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +" +PACKAGECONFIG[libnl] = "--enable-libnl,--disable-libnl,libnl" +PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp" +PACKAGECONFIG[systemd] = "--with-init=systemd --with-systemdsystemunitdir=${systemd_system_unitdir},--with-init=SYSV,systemd" + +EXTRA_OEMAKE = "initdir=${sysconfdir}/init.d" + +do_install_append() { + if [ -f ${D}${sysconfdir}/init.d/${BPN} ]; then + chmod 0755 ${D}${sysconfdir}/init.d/${BPN} + sed -i 's#rc.d/##' ${D}${sysconfdir}/init.d/${BPN} + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -D -m 0644 ${B}/${BPN}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service + fi +} + +FILES_${PN} += "${datadir}/snmp/mibs/KEEPALIVED-MIB.txt" + +SYSTEMD_SERVICE_${PN} = "keepalived.service" +SYSTEMD_AUTO_ENABLE ?= "disable" -- cgit 1.2.3-korg