From 5f5ed9e1755cefd3f903fe9b9c840cc02d098944a981e53a4393ff74a0c4c191 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Wed, 21 Feb 2018 23:10:27 +0000 Subject: [PATCH 1/2] - update to 1.4.1: * Improve and fix use of getopt_long(). We musn't use a long option val of 1, since getopt_long() can return that value. getopt_long() also returns longindex == 0 when there is no matching long option, and there needs to be careful checking if there is an error to work out whether a long or short option was used, which is needed for meaningful error messages. * Write assert() messages to syslog. assert()s are nasty things, but at least let's get the benefit of them, and write the messages to syslog, rather than losing them down stderr. * Enable sorry server at startup if quorum down due to alpha mode If alpha mode is configured on sufficient checkers so that a virtual server doesn't have a quorum, we need to add the sorry server at startup, otherwise it won't be added until a quorum has been achieved and subsequently lost again. In the case where some of the checkers remain in the down state at startup, this would have meant that the sorry server never got added. * For virtual servers, ensure quorum <= number of real servers If the quorum were gigher than the number of real servers, the quorum for the real server to come up could never be achieved, so if the quorum is greater than the number of real servers, reduce it to the number of real servers. * Fix some SNMP keepalived checker integer types and default values. Some virtual server and real server values were being sent to SNMP with a signed type whereas the value is unsigned, so set the type field correctly. Some virtual server and real server values that apply to checkers are set to nonsense default values in order to determine if a OBS-URL: https://build.opensuse.org/package/show/network/keepalived?expand=0&rev=42 --- keepalived-1.4.0.tar.gz | 3 -- keepalived-1.4.1.tar.gz | 3 ++ keepalived.changes | 61 +++++++++++++++++++++++++++++++++++++++++ keepalived.spec | 6 ++-- 4 files changed, 67 insertions(+), 6 deletions(-) delete mode 100644 keepalived-1.4.0.tar.gz create mode 100644 keepalived-1.4.1.tar.gz diff --git a/keepalived-1.4.0.tar.gz b/keepalived-1.4.0.tar.gz deleted file mode 100644 index 5795a62..0000000 --- a/keepalived-1.4.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:463b26c134101c57c05a65ac2853a757b922878876b2a9539118de1697c98a01 -size 731936 diff --git a/keepalived-1.4.1.tar.gz b/keepalived-1.4.1.tar.gz new file mode 100644 index 0000000..7bde96d --- /dev/null +++ b/keepalived-1.4.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:220407517ccad822d1ffa80f7bc37582abaf97da6f7bda2326fa6904b1855bd0 +size 735190 diff --git a/keepalived.changes b/keepalived.changes index 8483135..c439a02 100644 --- a/keepalived.changes +++ b/keepalived.changes @@ -1,3 +1,64 @@ +------------------------------------------------------------------- +Wed Feb 21 14:52:29 UTC 2018 - dmueller@suse.com + +- update to 1.4.1: + * Improve and fix use of getopt_long(). + We musn't use a long option val of 1, since getopt_long() can return + that value. + getopt_long() also returns longindex == 0 when there is no matching + long option, and there needs to be careful checking if there is an + error to work out whether a long or short option was used, which is + needed for meaningful error messages. + * Write assert() messages to syslog. + assert()s are nasty things, but at least let's get the benefit of + them, and write the messages to syslog, rather than losing them down + stderr. + * Enable sorry server at startup if quorum down due to alpha mode + If alpha mode is configured on sufficient checkers so that a + virtual server doesn't have a quorum, we need to add the sorry + server at startup, otherwise it won't be added until a quorum has + been achieved and subsequently lost again. In the case where some + of the checkers remain in the down state at startup, this would have + meant that the sorry server never got added. + * For virtual servers, ensure quorum <= number of real servers + If the quorum were gigher than the number of real servers, the + quorum for the real server to come up could never be achieved, so + if the quorum is greater than the number of real servers, reduce it + to the number of real servers. + * Fix some SNMP keepalived checker integer types and default values. + Some virtual server and real server values were being sent to SNMP + with a signed type whereas the value is unsigned, so set the type + field correctly. + Some virtual server and real server values that apply to checkers + are set to nonsense default values in order to determine if a + value has been specified. Handle these values when reporting them + to SNMP replying with 0 rather than a nonsense value. + * Fix some MALLOC/FREE issues with notify FIFOs. + * Add instance_name/config_id to alert emails' subjects if configured. + If multiple instances of keepalived are running, either different + instance_names and/or config_ids, it is useful to know which + keepalived instance the email relates to. + * Ensure that email body string isn't unterminated. + Using strncpy() needs to ensure that there is a nul termination byte, + so this commits adds always writing a nul byte to the end of the buffer. + * Remove duplicate fault notification. + * Fix problem with scripts found via PATH with a '/' in parameters. + Recent discussions on issue #101 led to discovering that if an + executable without a fully qualified name was specified as a script + and there was a '/' character in the parameters, then the path + resolution would not work. + * Send SNMP traps when go from backup to fault due to sync group. + Commit 020a9ab added executing notify_fault for vrrp instances + transitioning from backup to fault state due to another instance + in the sync group going to fault state. This commit adds sending + SNMP traps in the same circumstance. + * Revert "Add instance_name/config_id to alert emails' subjects if + configured". This should be handled by setting router_id + * Add config option to send smtp-alerts to file rather than send emails + This is useful for debugging purposes. + * Add additional entry to Travis-CI build matrix. + * Fix segfault if no sorry server configured for a virtual server. + ------------------------------------------------------------------- Mon Jan 22 13:03:55 UTC 2018 - mrueckert@suse.de diff --git a/keepalived.spec b/keepalived.spec index e32f689..873fa55 100644 --- a/keepalived.spec +++ b/keepalived.spec @@ -30,13 +30,13 @@ %bcond_with json Name: keepalived -Version: 1.4.0 +Version: 1.4.1 Release: 0 Summary: A keepalive facility for Linux License: GPL-2.0+ Group: Productivity/Networking/Routing Url: http://www.keepalived.org/ -Source: %{name}-%{version}.tar.gz +Source: http://www.keepalived.org/software/%{name}-%{version}.tar.gz Source2: keepalive-rpmlintrc Patch1: keepalive-init.patch BuildRequires: libnfnetlink-devel @@ -185,7 +185,7 @@ getent passwd %{name} >/dev/null || \ %files %defattr(-,root,root) -%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README +%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README %doc %{_datadir}/doc/keepalived/ %doc doc/samples/ %doc doc/keepalived.conf.SYNOPSIS doc/NOTE_vrrp_vmac.txt From 2627baaa6ddc5c7897267a34b1f1ee13537829535440ead90bd55acb120a12a9 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Thu, 22 Feb 2018 10:07:39 +0000 Subject: [PATCH 2/2] - add linux-4.15.patch OBS-URL: https://build.opensuse.org/package/show/network/keepalived?expand=0&rev=43 --- keepalived.changes | 5 +++++ keepalived.spec | 3 +++ linux-4.15.patch | 54 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 linux-4.15.patch diff --git a/keepalived.changes b/keepalived.changes index c439a02..b25215c 100644 --- a/keepalived.changes +++ b/keepalived.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Feb 22 10:07:17 UTC 2018 - dmueller@suse.com + +- add linux-4.15.patch + ------------------------------------------------------------------- Wed Feb 21 14:52:29 UTC 2018 - dmueller@suse.com diff --git a/keepalived.spec b/keepalived.spec index 873fa55..4ab8daa 100644 --- a/keepalived.spec +++ b/keepalived.spec @@ -39,6 +39,8 @@ Url: http://www.keepalived.org/ Source: http://www.keepalived.org/software/%{name}-%{version}.tar.gz Source2: keepalive-rpmlintrc Patch1: keepalive-init.patch +# PATCH-FIX-UPSTREAM: https://github.com/acassen/keepalived/commit/947248af144bcab6376ccddab8dc40f313b14281.patch +Patch2: linux-4.15.patch BuildRequires: libnfnetlink-devel %if %{with json} BuildRequires: libjson-c-devel @@ -94,6 +96,7 @@ resilient infrastructures. %prep %setup -q %patch1 -p1 +%patch2 -p1 chmod 644 doc/samples/* %build diff --git a/linux-4.15.patch b/linux-4.15.patch new file mode 100644 index 0000000..5038c1b --- /dev/null +++ b/linux-4.15.patch @@ -0,0 +1,54 @@ +From 947248af144bcab6376ccddab8dc40f313b14281 Mon Sep 17 00:00:00 2001 +From: Baruch Siach +Date: Fri, 9 Feb 2018 11:55:19 +0200 +Subject: [PATCH] Fix build with Linux kernel headers v4.15 + +Linux kernel version 4.15 changed the libc/kernel headers suppression +logic in a way that introduces collisions: + +In file included from ./../include/vrrp_ipaddress.h:32:0, + from ./../include/vrrp_arp.h:31, + from vrrp.c:29: +/home/peko/autobuild/instance-1/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/in.h:29:3: error: redeclaration of enumerator 'IPPROTO_IP' + IPPROTO_IP = 0, /* Dummy protocol for TCP */ + ^ +/home/peko/autobuild/instance-1/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/netinet/in.h:33:5: note: previous definition of 'IPPROTO_IP' was here + IPPROTO_IP = 0, /* Dummy protocol for TCP. */ + ^~~~~~~~~~ + +Include the libc netinet/in.h header first to suppress the kernel +header. + +In addition, add _GNU_SOURCE to vrrp.c for the libc provided in6_pktinfo +definition. + +Signed-off-by: Baruch Siach +--- + keepalived/include/vrrp_arp.h | 1 + + keepalived/vrrp/vrrp.c | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/keepalived/include/vrrp_arp.h b/keepalived/include/vrrp_arp.h +index c2b4e6b5..9dd68f63 100644 +--- a/keepalived/include/vrrp_arp.h ++++ b/keepalived/include/vrrp_arp.h +@@ -24,6 +24,7 @@ + #define _VRRP_ARP_H + + /* system includes */ ++#include + #include + #include + +diff --git a/keepalived/vrrp/vrrp.c b/keepalived/vrrp/vrrp.c +index 56395363..eaa9c567 100644 +--- a/keepalived/vrrp/vrrp.c ++++ b/keepalived/vrrp/vrrp.c +@@ -26,6 +26,7 @@ + #include "config.h" + + /* local include */ ++#define _GNU_SOURCE + #include "vrrp_arp.h" + #include "vrrp_ndisc.h" + #include "vrrp_scheduler.h"