diff --git a/.gitignore b/.gitignore index 4b70a67..ffe4aa1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/keepalived-1.2.10.tar.gz +SOURCES/keepalived-1.2.13.tar.gz diff --git a/.keepalived.metadata b/.keepalived.metadata index 4dc0ac8..3fec58d 100644 --- a/.keepalived.metadata +++ b/.keepalived.metadata @@ -1 +1 @@ -a74a98994b60a9eacba6c057f22ec40fd66d39fb SOURCES/keepalived-1.2.10.tar.gz +50a0d396d3f7c95dadbbe038bfd9bbd73b9b254f SOURCES/keepalived-1.2.13.tar.gz diff --git a/SOURCES/0001-ipvs-make-nlerr2syserr-libnl-dependent.patch b/SOURCES/0001-ipvs-make-nlerr2syserr-libnl-dependent.patch deleted file mode 100644 index 03b3014..0000000 --- a/SOURCES/0001-ipvs-make-nlerr2syserr-libnl-dependent.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 71e762fb29a8ba218c90a48e0e160b2bb8b74326 Mon Sep 17 00:00:00 2001 -From: Alexandre Cassen -Date: Mon, 6 Jan 2014 15:04:28 +0100 -Subject: [PATCH 1/7] ipvs: make nlerr2syserr libnl dependent - -nlerr2syserr() is only used when libnl is present... simply reflect -this in libipvs. ---- - keepalived/libipvs-2.6/libipvs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/keepalived/libipvs-2.6/libipvs.c b/keepalived/libipvs-2.6/libipvs.c -index 223e76b..8ccf94d 100644 ---- a/keepalived/libipvs-2.6/libipvs.c -+++ b/keepalived/libipvs-2.6/libipvs.c -@@ -54,6 +54,7 @@ static int family, try_nl = 1; - CHECK_IPV4(s, ret); \ - CHECK_PE(s, ret); - -+#ifdef LIBIPVS_USE_NL - #ifndef FALLBACK_LIBNL1 - static int nlerr2syserr(int err) - { -@@ -79,7 +80,6 @@ static int nlerr2syserr(int err) - } - #endif - --#ifdef LIBIPVS_USE_NL - struct nl_msg *ipvs_nl_message(int cmd, int flags) - { - struct nl_msg *msg; --- -1.8.1.4 - diff --git a/SOURCES/0002-fix-libnl-libnl-3-logic-in-configure-script.patch b/SOURCES/0002-fix-libnl-libnl-3-logic-in-configure-script.patch deleted file mode 100644 index 7cca210..0000000 --- a/SOURCES/0002-fix-libnl-libnl-3-logic-in-configure-script.patch +++ /dev/null @@ -1,213 +0,0 @@ -From b14b99adf4132eab1ecf8d1d4e83fadf5ada1076 Mon Sep 17 00:00:00 2001 -From: Ryan O'Hara -Date: Mon, 6 Jan 2014 11:21:03 -0600 -Subject: [PATCH 2/7] Fix libnl/libnl-3 logic in configure script - -This patch causes the configure script to prefer libnl-3 over -libnl(1). The configure script will first check for libnl-3 and -libnl-genl-3. If both are found, use them. If not, check for -libnl(1). This is useful when building on systems that have both -libnl-3 and libnl(1) installed. It also fixes some redundant libraries -in LIBS. ---- - configure | 103 ++++++++++++++++++++++++++++++----------------------------- - configure.in | 43 +++++++++++++------------ - 2 files changed, 74 insertions(+), 72 deletions(-) - -diff --git a/configure b/configure -index b35331f..be6574e 100755 ---- a/configure -+++ b/configure -@@ -3896,50 +3896,8 @@ else - as_fn_error $? "OpenSSL libraries are required" "$LINENO" 5 - fi - --{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_modify_cb in -lnl" >&5 --$as_echo_n "checking for nl_socket_modify_cb in -lnl... " >&6; } --if ${ac_cv_lib_nl_nl_socket_modify_cb+:} false; then : -- $as_echo_n "(cached) " >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lnl $LIBS" --cat confdefs.h - <<_ACEOF >conftest.$ac_ext --/* end confdefs.h. */ - --/* Override any GCC internal prototype to avoid an error. -- Use char because int might match the return type of a GCC -- builtin and then its argument prototype would still apply. */ --#ifdef __cplusplus --extern "C" --#endif --char nl_socket_modify_cb (); --int --main () --{ --return nl_socket_modify_cb (); -- ; -- return 0; --} --_ACEOF --if ac_fn_c_try_link "$LINENO"; then : -- ac_cv_lib_nl_nl_socket_modify_cb=yes --else -- ac_cv_lib_nl_nl_socket_modify_cb=no --fi --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nl_nl_socket_modify_cb" >&5 --$as_echo "$ac_cv_lib_nl_nl_socket_modify_cb" >&6; } --if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then : -- -- USE_NL="LIBIPVS_USE_NL" -- CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" -- LIBS="$LIBS -lnl" -- --else -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_alloc in -lnl-3" >&5 -+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_alloc in -lnl-3" >&5 - $as_echo_n "checking for nl_socket_alloc in -lnl-3... " >&6; } - if ${ac_cv_lib_nl_3_nl_socket_alloc+:} false; then : - $as_echo_n "(cached) " >&6 -@@ -3977,10 +3935,7 @@ fi - $as_echo "$ac_cv_lib_nl_3_nl_socket_alloc" >&6; } - if test "x$ac_cv_lib_nl_3_nl_socket_alloc" = xyes; then : - -- USE_NL="LIBIPVS_USE_NL" -- CFLAGS="$CFLAGS $(pkg-config --libs --cflags libnl-3.0)" -- LIBS="$LIBS -lnl-3" -- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for genl_connect in -lnl-genl-3" >&5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for genl_connect in -lnl-genl-3" >&5 - $as_echo_n "checking for genl_connect in -lnl-genl-3... " >&6; } - if ${ac_cv_lib_nl_genl_3_genl_connect+:} false; then : - $as_echo_n "(cached) " >&6 -@@ -4018,19 +3973,65 @@ fi - $as_echo "$ac_cv_lib_nl_genl_3_genl_connect" >&6; } - if test "x$ac_cv_lib_nl_genl_3_genl_connect" = xyes; then : - -- LIBS="$LIBS -lnl-3 -lnl-genl-3" -+ USE_NL="LIBIPVS_USE_NL" -+ CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)" -+ LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)" -+ -+else -+ -+ as_fn_error $? "libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3." "$LINENO" 5 -+ -+fi -+ - - else - -- as_fn_error $? "libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3." "$LINENO" 5 -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_socket_modify_cb in -lnl" >&5 -+$as_echo_n "checking for nl_socket_modify_cb in -lnl... " >&6; } -+if ${ac_cv_lib_nl_nl_socket_modify_cb+:} false; then : -+ $as_echo_n "(cached) " >&6 -+else -+ ac_check_lib_save_LIBS=$LIBS -+LIBS="-lnl $LIBS" -+cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ - -+/* Override any GCC internal prototype to avoid an error. -+ Use char because int might match the return type of a GCC -+ builtin and then its argument prototype would still apply. */ -+#ifdef __cplusplus -+extern "C" -+#endif -+char nl_socket_modify_cb (); -+int -+main () -+{ -+return nl_socket_modify_cb (); -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ ac_cv_lib_nl_nl_socket_modify_cb=yes -+else -+ ac_cv_lib_nl_nl_socket_modify_cb=no - fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+LIBS=$ac_check_lib_save_LIBS -+fi -+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nl_nl_socket_modify_cb" >&5 -+$as_echo "$ac_cv_lib_nl_nl_socket_modify_cb" >&6; } -+if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then : - -+ USE_NL="LIBIPVS_USE_NL" -+ CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" -+ LIBS="$LIBS $(pkg-config --libs libnl-1)" - - else - -- USE_NL="LIBIPVS_DONTUSE_NL" -- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: keepalived will be built without libnl support." >&5 -+ USE_NL="LIBIPVS_DONTUSE_NL" -+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: keepalived will be built without libnl support." >&5 - $as_echo "$as_me: WARNING: keepalived will be built without libnl support." >&2;} - - fi -diff --git a/configure.in b/configure.in -index 3daf3ee..3d4a191 100644 ---- a/configure.in -+++ b/configure.in -@@ -55,29 +55,30 @@ dnl ----[ Checks for libraries ]---- - AC_CHECK_LIB(crypt, crypt,,AC_MSG_ERROR([crypt() function is required])) - AC_CHECK_LIB(crypto, MD5_Init,,AC_MSG_ERROR([OpenSSL libraries are required])) - AC_CHECK_LIB(ssl, SSL_CTX_new,,AC_MSG_ERROR([OpenSSL libraries are required])) --AC_CHECK_LIB(nl, nl_socket_modify_cb, -+ -+AC_CHECK_LIB(nl-3, nl_socket_alloc, - [ -- USE_NL="LIBIPVS_USE_NL" -- CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" -- LIBS="$LIBS -lnl" -+ AC_CHECK_LIB(nl-genl-3, genl_connect, -+ [ -+ USE_NL="LIBIPVS_USE_NL" -+ CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)" -+ LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)" -+ ], -+ [ -+ AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.]) -+ ]) - ], -- [AC_CHECK_LIB(nl-3, nl_socket_alloc, -- [ -- USE_NL="LIBIPVS_USE_NL" -- CFLAGS="$CFLAGS $(pkg-config --libs --cflags libnl-3.0)" -- LIBS="$LIBS -lnl-3" -- AC_CHECK_LIB(nl-genl-3, genl_connect, -- [ -- LIBS="$LIBS -lnl-3 -lnl-genl-3" -- ], -- [ -- AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.]) -- ]) -- ], -- [ -- USE_NL="LIBIPVS_DONTUSE_NL" -- AC_MSG_WARN([keepalived will be built without libnl support.]) -- ]) -+ [ -+ AC_CHECK_LIB(nl, nl_socket_modify_cb, -+ [ -+ USE_NL="LIBIPVS_USE_NL" -+ CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" -+ LIBS="$LIBS $(pkg-config --libs libnl-1)" -+ ], -+ [ -+ USE_NL="LIBIPVS_DONTUSE_NL" -+ AC_MSG_WARN([keepalived will be built without libnl support.]) -+ ]) - ]) - - dnl ----[ Kernel version check ]---- --- -1.8.1.4 - diff --git a/SOURCES/0003-libipvs-libnl-3-include-fix.patch b/SOURCES/0003-libipvs-libnl-3-include-fix.patch deleted file mode 100644 index 5a186ea..0000000 --- a/SOURCES/0003-libipvs-libnl-3-include-fix.patch +++ /dev/null @@ -1,93 +0,0 @@ -From e2562e4bc40e6092d07e0e2ad8d43fdf9d79e463 Mon Sep 17 00:00:00 2001 -From: Alexandre Cassen -Date: Tue, 7 Jan 2014 08:37:22 +0100 -Subject: [PATCH 3/7] libipvs: libnl-3 include fix - -when libnl-3 is present use proper include path. On most system libnl-3 -include path is /usr/include/libnl3. ---- - configure | 4 ++++ - configure.in | 3 +++ - keepalived/libipvs-2.6/Makefile.in | 2 +- - 3 files changed, 8 insertions(+), 1 deletion(-) - -diff --git a/configure b/configure -index be6574e..90cca7d 100755 ---- a/configure -+++ b/configure -@@ -622,6 +622,7 @@ ac_includes_default="\ - ac_subst_vars='LTLIBOBJS - LIBOBJS - VRRP_SUPPORT -+INCLUDE_NL - USE_NL - IPVS_SUPPORT - VERSION_DATE -@@ -3976,6 +3977,7 @@ if test "x$ac_cv_lib_nl_genl_3_genl_connect" = xyes; then : - USE_NL="LIBIPVS_USE_NL" - CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)" - LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)" -+ INCLUDE_NL="-I/usr/include/libnl3" - - else - -@@ -4027,6 +4029,7 @@ if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then : - USE_NL="LIBIPVS_USE_NL" - CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" - LIBS="$LIBS $(pkg-config --libs libnl-1)" -+ INCLUDE_NL="" - - else - -@@ -4462,6 +4465,7 @@ fi - - - -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 - $as_echo_n "checking for an ANSI C-conforming const... " >&6; } - if ${ac_cv_c_const+:} false; then : -diff --git a/configure.in b/configure.in -index 3d4a191..364890d 100644 ---- a/configure.in -+++ b/configure.in -@@ -63,6 +63,7 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc, - USE_NL="LIBIPVS_USE_NL" - CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)" - LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)" -+ INCLUDE_NL="-I/usr/include/libnl3" - ], - [ - AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.]) -@@ -74,6 +75,7 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc, - USE_NL="LIBIPVS_USE_NL" - CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" - LIBS="$LIBS $(pkg-config --libs libnl-1)" -+ INCLUDE_NL="" - ], - [ - USE_NL="LIBIPVS_DONTUSE_NL" -@@ -277,6 +279,7 @@ AC_SUBST(VERSION) - AC_SUBST(VERSION_DATE) - AC_SUBST(IPVS_SUPPORT) - AC_SUBST(USE_NL) -+AC_SUBST(INCLUDE_NL) - AC_SUBST(VRRP_SUPPORT) - - dnl ----[ Checks for typedefs, structures, and compiler characteristics ]---- -diff --git a/keepalived/libipvs-2.6/Makefile.in b/keepalived/libipvs-2.6/Makefile.in -index 14cfa95..dfefc7d 100644 ---- a/keepalived/libipvs-2.6/Makefile.in -+++ b/keepalived/libipvs-2.6/Makefile.in -@@ -1,7 +1,7 @@ - # Makefile for libipvs - - CC = @CC@ --CFLAGS = @CFLAGS@ @CPPFLAGS@ -D@USE_NL@ -Wall -Wunused -+CFLAGS = @CFLAGS@ @CPPFLAGS@ @INCLUDE_NL@ -D@USE_NL@ -Wall -Wunused - - export OBJS += libipvs.a - --- -1.8.1.4 - diff --git a/SOURCES/0004-lib-extend-command-lib-string-parser.patch b/SOURCES/0004-lib-extend-command-lib-string-parser.patch deleted file mode 100644 index 7dab0bb..0000000 --- a/SOURCES/0004-lib-extend-command-lib-string-parser.patch +++ /dev/null @@ -1,91 +0,0 @@ -From dcdc2aeafb04d09b9d7ba412d8b417c9fd072c2a Mon Sep 17 00:00:00 2001 -From: Alexandre Cassen -Date: Tue, 7 Jan 2014 15:38:57 +0100 -Subject: [PATCH 4/7] lib: extend command lib string parser - -Extend cmd_make_strvec to support quoted string as a single slot and -commented string at the end of parsed string. ---- - lib/Makefile.in | 2 +- - lib/command.c | 34 +++++++++++++++++++++++----------- - 2 files changed, 24 insertions(+), 12 deletions(-) - -diff --git a/lib/Makefile.in b/lib/Makefile.in -index 9eb929e..ee4691f 100644 ---- a/lib/Makefile.in -+++ b/lib/Makefile.in -@@ -42,6 +42,6 @@ logger.o: logger.c logger.h - list_head.o: list_head.c list_head.h - buffer.o: buffer.c buffer.h memory.h - command.o: command.c command.h vector.h memory.h vty.h timer.h \ -- config.h -+ config.h logger.h - vty.o: vty.c vty.h scheduler.h timer.h utils.h command.h logger.h \ - memory.h -diff --git a/lib/command.c b/lib/command.c -index eff59de..4814594 100644 ---- a/lib/command.c -+++ b/lib/command.c -@@ -35,7 +35,7 @@ - #include "timer.h" - - /* Command vector which includes some level of command lists. Normally -- * each daemon maintains each own cmdvec. */ -+ * each daemon maintains its own cmdvec. */ - vector_t *cmdvec = NULL; - - desc_t desc_cr; -@@ -156,7 +156,9 @@ sort_node(void) - - /* Breaking up string into each command piece. I assume given - * character is separated by a space character. Return value is a -- * vector which includes char ** data element. */ -+ * vector which includes char ** data element. It supports -+ * quoted string as a single slot and commented string at -+ * the end of parsed string */ - vector_t * - cmd_make_strvec(const char *string) - { -@@ -187,20 +189,30 @@ cmd_make_strvec(const char *string) - /* Copy each command piece and set into vector. */ - while (1) { - start = cp; -- while (!(isspace((int) *cp) || *cp == '\r' || *cp == '\n') && -- *cp != '\0') -+ if (*cp == '"') { - cp++; -- strlen = cp - start; -- token = (char *) MALLOC(strlen + 1); -- memcpy(token, start, strlen); -- *(token + strlen) = '\0'; -- vector_set(strvec, token); -+ token = MALLOC(2); -+ *(token) = '"'; -+ *(token + 1) = '\0'; -+ } else { -+ while (!(isspace((int) *cp) || *cp == '\r' || *cp == '\n') && -+ *cp != '\0' && *cp != '"') -+ cp++; -+ strlen = cp - start; -+ token = (char *) MALLOC(strlen + 1); -+ memcpy(token, start, strlen); -+ *(token + strlen) = '\0'; -+ } -+ -+ /* Alloc & set the slot */ -+ vector_alloc_slot(strvec); -+ vector_set_slot(strvec, token); - -- while ((isspace ((int) *cp) || *cp == '\n' || *cp == '\r') && -+ while ((isspace((int) *cp) || *cp == '\n' || *cp == '\r') && - *cp != '\0') - cp++; - -- if (*cp == '\0') -+ if (*cp == '\0' || *cp == '!' || *cp == '#') - return strvec; - } - } --- -1.8.1.4 - diff --git a/SOURCES/0005-lib-cosmetics-at-command.c.patch b/SOURCES/0005-lib-cosmetics-at-command.c.patch deleted file mode 100644 index 246b372..0000000 --- a/SOURCES/0005-lib-cosmetics-at-command.c.patch +++ /dev/null @@ -1,309 +0,0 @@ -From 8db312d415bab144c9e5b6fd41ced3c020fcaa82 Mon Sep 17 00:00:00 2001 -From: Alexandre Cassen -Date: Tue, 7 Jan 2014 15:58:12 +0100 -Subject: [PATCH 5/7] lib: cosmetics at command.c - -Extend command framework to support logger and remove some dead code. -some cosmetics too. ---- - lib/command.c | 86 +++++++++++++++++++++-------------------------------------- - lib/command.h | 24 +++++------------ - 2 files changed, 37 insertions(+), 73 deletions(-) - -diff --git a/lib/command.c b/lib/command.c -index 4814594..04079b5 100644 ---- a/lib/command.c -+++ b/lib/command.c -@@ -33,6 +33,7 @@ - #include "vty.h" - #include "command.h" - #include "timer.h" -+#include "logger.h" - - /* Command vector which includes some level of command lists. Normally - * each daemon maintains its own cmdvec. */ -@@ -310,8 +311,8 @@ cmd_make_descvec(const char *string, const char *descstr) - - if (*cp == '|') { - if (!multiple) { -- fprintf (stderr, "Command parse error!: %s\n", string); -- exit (1); -+ log_message(LOG_ERR, "Command parse error!: %s\n", string); -+ exit(1); - } - cp++; - } -@@ -407,9 +408,9 @@ install_element(node_type_t ntype, cmd_element_t *cmd) - cnode = vector_slot(cmdvec, ntype); - - if (cnode == NULL) { -- fprintf (stderr, "Command node %d doesn't exist, please check it\n", -- ntype); -- exit (1); -+ log_message(LOG_ERR, "Command node %d doesn't exist, please check it\n" -+ , ntype); -+ exit(1); - } - - vector_set(cnode->cmd_vector, cmd); -@@ -417,7 +418,7 @@ install_element(node_type_t ntype, cmd_element_t *cmd) - if (cmd->strvec == NULL) - cmd->strvec = cmd_make_descvec(cmd->string, cmd->doc); - -- cmd->cmdsize = cmd_cmdsize (cmd->strvec); -+ cmd->cmdsize = cmd_cmdsize(cmd->strvec); - } - - static const unsigned char itoa64[] = -@@ -489,9 +490,9 @@ config_write_host(vty_t *vty) - static vector_t * - cmd_node_vector(vector_t *v, node_type_t ntype) - { -- cmd_node_t *cnode = vector_slot(v, ntype); -+ cmd_node_t *cnode = vector_slot(v, ntype); - -- return cnode->cmd_vector; -+ return cnode->cmd_vector; - } - - /* Completion match types. */ -@@ -825,8 +826,8 @@ cmd_filter_by_completion(char *command, vector_t *v, unsigned int index) - - /* If command and cmd_element string does not match set NULL to vector */ - for (i = 0; i < vector_active (v); i++) { -- if ((cmd_element = vector_slot (v, i)) != NULL) { -- if (index >= vector_active (cmd_element->strvec)) { -+ if ((cmd_element = vector_slot(v, i)) != NULL) { -+ if (index >= vector_active(cmd_element->strvec)) { - vector_slot(v, i) = NULL; - } else { - unsigned int j; -@@ -911,12 +912,12 @@ cmd_filter_by_string(char *command, vector_t *v, unsigned int index) - match_type = no_match; - - /* If command and cmd_element string does not match set NULL to vector */ -- for (i = 0; i < vector_active (v); i++) { -+ for (i = 0; i < vector_active(v); i++) { - if ((cmd_element = vector_slot (v, i)) != NULL) { - /* If given index is bigger than max string vector of command, - * set NULL */ -- if (index >= vector_active (cmd_element->strvec)) { -- vector_slot (v, i) = NULL; -+ if (index >= vector_active(cmd_element->strvec)) { -+ vector_slot(v, i) = NULL; - } else { - unsigned int j; - int matched = 0; -@@ -1161,9 +1162,9 @@ cmd_unique_string(vector_t *v, const char *str) - unsigned int i; - char *match; - -- for (i = 0; i < vector_active (v); i++) { -- if ((match = vector_slot (v, i)) != NULL) { -- if (strcmp (match, str) == 0) { -+ for (i = 0; i < vector_active(v); i++) { -+ if ((match = vector_slot(v, i)) != NULL) { -+ if (strcmp(match, str) == 0) { - return 0; - } - } -@@ -1180,9 +1181,9 @@ desc_unique_string(vector_t *v, const char *str) - unsigned int i; - desc_t *desc; - -- for (i = 0; i < vector_active (v); i++) { -- if ((desc = vector_slot (v, i)) != NULL) { -- if (strcmp (desc->cmd, str) == 0) { -+ for (i = 0; i < vector_active(v); i++) { -+ if ((desc = vector_slot(v, i)) != NULL) { -+ if (strcmp(desc->cmd, str) == 0) { - return 1; - } - } -@@ -1418,7 +1419,7 @@ cmd_complete_command_real(vector_t *vline, vty_t *vty, int *status) - int ret; - - /* First try completion match, if there is exactly match return 1 */ -- match = cmd_filter_by_completion (command, cmd_vector, i); -+ match = cmd_filter_by_completion(command, cmd_vector, i); - - /* If there is exact match then filter ambiguous match else check - * ambiguousness. */ -@@ -1434,8 +1435,8 @@ cmd_complete_command_real(vector_t *vline, vty_t *vty, int *status) - matchvec = vector_init(INIT_MATCHVEC_SIZE); - - /* Now we got into completion */ -- for (i = 0; i < vector_active (cmd_vector); i++) { -- if ((cmd_element = vector_slot (cmd_vector, i))) { -+ for (i = 0; i < vector_active(cmd_vector); i++) { -+ if ((cmd_element = vector_slot(cmd_vector, i))) { - const char *string; - vector_t *strvec = cmd_element->strvec; - -@@ -1560,28 +1561,6 @@ cmd_complete_command(vector_t *vline, vty_t *vty, int *status) - node_type_t - node_parent(node_type_t node) - { --#if 0 -- node_type_t ret; -- -- assert(node > CONFIG_NODE); -- -- switch (node) { -- case BGP_VPNV4_NODE: -- case BGP_IPV4_NODE: -- case BGP_IPV4M_NODE: -- case BGP_IPV6_NODE: -- case BGP_IPV6M_NODE: -- ret = BGP_NODE; -- break; -- case KEYCHAIN_KEY_NODE: -- ret = KEYCHAIN_NODE; -- break; -- default: -- ret = CONFIG_NODE; -- } -- -- return ret; --#endif - return CONFIG_NODE; - } - -@@ -1628,8 +1607,8 @@ cmd_execute_command_real(vector_t *vline, vty_t *vty, cmd_element_t **cmd) - matched_count = 0; - incomplete_count = 0; - -- for (i = 0; i < vector_active (cmd_vector); i++) { -- if ((cmd_element = vector_slot (cmd_vector, i))) { -+ for (i = 0; i < vector_active(cmd_vector); i++) { -+ if ((cmd_element = vector_slot(cmd_vector, i))) { - if (match == vararg_match || index >= cmd_element->cmdsize) { - matched_element = cmd_element; - matched_count++; -@@ -1718,7 +1697,7 @@ cmd_execute_command(vector_t *vline, vty_t *vty, cmd_element_t **cmd, int vtysh) - } - - -- saved_ret = ret = cmd_execute_command_real (vline, vty, cmd); -+ saved_ret = ret = cmd_execute_command_real(vline, vty, cmd); - - if (vtysh) - return saved_ret; -@@ -1957,10 +1936,10 @@ DEFUN(config_exit, - } - - /* quit is alias of exit. */ --ALIAS (config_exit, -- config_quit_cmd, -- "quit", -- "Exit current mode and down to previous mode\n") -+ALIAS(config_exit, -+ config_quit_cmd, -+ "quit", -+ "Exit current mode and down to previous mode\n") - - /* End of configuration. */ - DEFUN(config_end, -@@ -2038,7 +2017,7 @@ DEFUN(config_list, - - for (i = 0; i < vector_active (cnode->cmd_vector); i++) - if ((cmd = vector_slot (cnode->cmd_vector, i)) != NULL && -- !(cmd->attr == CMD_ATTR_DEPRECATED || cmd->attr == CMD_ATTR_HIDDEN)) -+ cmd->attr != CMD_ATTR_HIDDEN) - vty_out(vty, " %s%s", cmd->string, VTY_NEWLINE); - - return CMD_SUCCESS; -@@ -2612,7 +2591,6 @@ cmd_init(void) - install_element(VIEW_NODE, &config_terminal_no_length_cmd); - install_element(VIEW_NODE, &echo_cmd); - --// install_element(ENABLE_NODE, &config_exit_cmd); - install_default(ENABLE_NODE); - install_element(ENABLE_NODE, &config_disable_cmd); - install_element(ENABLE_NODE, &config_terminal_cmd); -@@ -2626,8 +2604,6 @@ cmd_init(void) - install_element(ENABLE_NODE, &echo_cmd); - - install_default(CONFIG_NODE); --// install_element(CONFIG_NODE, &config_exit_cmd); -- - - install_element(CONFIG_NODE, &hostname_cmd); - install_element(CONFIG_NODE, &no_hostname_cmd); -diff --git a/lib/command.h b/lib/command.h -index 34091a9..71191a1 100644 ---- a/lib/command.h -+++ b/lib/command.h -@@ -64,6 +64,7 @@ typedef enum _node_type { - - VTY_NODE, /* Vty node. */ - -+ GLOBAL_NODE, /* Global daemon commands. */ - CHECK_NODE, /* Checker framework commands. */ - VRRP_NODE, /* VRRP framework commands. */ - } node_type_t; -@@ -118,8 +119,7 @@ typedef struct _desc { - */ - - enum { -- CMD_ATTR_DEPRECATED = 1, -- CMD_ATTR_HIDDEN, -+ CMD_ATTR_HIDDEN = 1, - }; - - #define CMD_SUCCESS 0 -@@ -187,9 +187,6 @@ enum { - #define DEFUN_HIDDEN(funcname, cmdname, cmdstr, helpstr) \ - DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN) - --#define DEFUN_DEPRECATED(funcname, cmdname, cmdstr, helpstr) \ -- DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED) -- - /* DEFUN_NOSH for commands that vtysh should ignore */ - #define DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr) \ - DEFUN(funcname, cmdname, cmdstr, helpstr) -@@ -213,9 +210,6 @@ enum { - #define DEFUNSH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr) \ - DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN) - --#define DEFUNSH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr) \ -- DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED) -- - /* ALIAS macro which define existing command's alias. */ - #define ALIAS(funcname, cmdname, cmdstr, helpstr) \ - DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) -@@ -226,27 +220,21 @@ enum { - #define ALIAS_HIDDEN(funcname, cmdname, cmdstr, helpstr) \ - DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, 0) - --#define ALIAS_DEPRECATED(funcname, cmdname, cmdstr, helpstr) \ -- DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, 0) -- - #define ALIAS_SH(daemon, funcname, cmdname, cmdstr, helpstr) \ - DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon) - - #define ALIAS_SH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr) \ - DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, daemon) - --#define ALIAS_SH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr) \ -- DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, daemon) -- - #define CMD_OPTION(S) ((S[0]) == '[') - #define CMD_VARIABLE(S) (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<')) - #define CMD_VARARG(S) ((S[0]) == '.') - #define CMD_RANGE(S) ((S[0] == '<')) - --#define CMD_IPV4(S) ((strcmp ((S), "A.B.C.D") == 0)) --#define CMD_IPV4_PREFIX(S) ((strcmp ((S), "A.B.C.D/M") == 0)) --#define CMD_IPV6(S) ((strcmp ((S), "X:X::X:X") == 0)) --#define CMD_IPV6_PREFIX(S) ((strcmp ((S), "X:X::X:X/M") == 0)) -+#define CMD_IPV4(S) ((strcmp((S), "A.B.C.D") == 0)) -+#define CMD_IPV4_PREFIX(S) ((strcmp((S), "A.B.C.D/M") == 0)) -+#define CMD_IPV6(S) ((strcmp((S), "X:X::X:X") == 0)) -+#define CMD_IPV6_PREFIX(S) ((strcmp((S), "X:X::X:X/M") == 0)) - - /* Common descriptions. */ - #define SHOW_STR "Show running system information\n" --- -1.8.1.4 - diff --git a/SOURCES/0006-lib-extend-vty-to-support-logger.patch b/SOURCES/0006-lib-extend-vty-to-support-logger.patch deleted file mode 100644 index 91835d5..0000000 --- a/SOURCES/0006-lib-extend-vty-to-support-logger.patch +++ /dev/null @@ -1,157 +0,0 @@ -From 8b6e812dcee8a54b4b6ad4116cb0782730079952 Mon Sep 17 00:00:00 2001 -From: Alexandre Cassen -Date: Tue, 7 Jan 2014 16:10:46 +0100 -Subject: [PATCH 6/7] lib: extend vty to support logger - -add support to logger and some cosmetics. ---- - lib/vty.c | 52 +++++++++++++++++++++++++--------------------------- - lib/vty.h | 2 +- - 2 files changed, 26 insertions(+), 28 deletions(-) - -diff --git a/lib/vty.c b/lib/vty.c -index e8c6dc6..b84b232 100644 ---- a/lib/vty.c -+++ b/lib/vty.c -@@ -1600,7 +1600,7 @@ vty_timeout(thread_t *thread) - } - - /* Read up configuration file from file_name. */ --static void -+static int - vty_read_file(FILE *confp) - { - int ret; -@@ -1617,19 +1617,20 @@ vty_read_file(FILE *confp) - if (!((ret == CMD_SUCCESS) || (ret == CMD_ERR_NOTHING_TODO))) { - switch (ret) { - case CMD_ERR_AMBIGUOUS: -- fprintf(stderr, "Ambiguous command.\n"); -+ log_message(LOG_ERR, "Ambiguous command.\n"); - break; - case CMD_ERR_NO_MATCH: -- fprintf(stderr, "There is no such command.\n"); -+ log_message(LOG_ERR, "There is no such command.\n"); - break; - } -- fprintf(stderr, "Error occured during reading below line.\n%s\n" -- , vty->buf); -+ log_message(LOG_ERR, "Error occured during reading below line.\n%s\n" -+ , vty->buf); - vty_close(vty); -- exit(1); -+ return -1; - } - - vty_close(vty); -+ return 0; - } - - static FILE * -@@ -1703,7 +1704,7 @@ vty_use_backup_config(char *fullpath) - } - - /* Read up configuration file from file_name. */ --void -+int - vty_read_config(char *config_file, char *config_default_dir) - { - char cwd[MAXPATHLEN]; -@@ -1717,9 +1718,9 @@ vty_read_config(char *config_file, char *config_default_dir) - if (!IS_DIRECTORY_SEP(config_file[0])) { - retpath = getcwd(cwd, MAXPATHLEN); - if (!retpath) { -- fprintf(stderr, "%s: failed to get current working directory: %s\n" -- , __func__, strerror(errno)); -- exit(1); -+ log_message(LOG_ERR, "%s: failed to get current working directory: %s\n" -+ , __func__, strerror(errno)); -+ return -1; - } - tmp = MALLOC(strlen(cwd) + strlen(config_file) + 2); - sprintf(tmp, "%s/%s", cwd, config_file); -@@ -1731,32 +1732,32 @@ vty_read_config(char *config_file, char *config_default_dir) - confp = fopen(fullpath, "r"); - - if (confp == NULL) { -- fprintf(stderr, "%s: failed to open configuration file %s: %s\n" -- , __func__, fullpath, strerror (errno)); -+ log_message(LOG_ERR, "%s: failed to open configuration file %s: %s\n" -+ , __func__, fullpath, strerror (errno)); - - confp = vty_use_backup_config(fullpath); - if (confp) { -- fprintf(stderr, "WARNING: using backup configuration file!\n"); -+ log_message(LOG_ERR, "WARNING: using backup configuration file!\n"); - } else { -- fprintf(stderr, "can't open configuration file [%s]\n" -- , config_file); -- exit(1); -+ log_message(LOG_ERR, "can't open configuration file [%s]\n" -+ , config_file); -+ return -1; - } - } - } else { - confp = fopen(config_default_dir, "r"); - if (confp == NULL) { -- fprintf(stderr, "%s: failed to open configuration file %s: %s\n" -- , __func__, config_default_dir, strerror(errno)); -+ log_message(LOG_ERR, "%s: failed to open configuration file %s: %s\n" -+ , __func__, config_default_dir, strerror(errno)); - - confp = vty_use_backup_config(config_default_dir); - if (confp) { -- fprintf(stderr, "WARNING: using backup configuration file!\n"); -+ log_message(LOG_ERR, "WARNING: using backup configuration file!\n"); - fullpath = config_default_dir; - } else { -- fprintf(stderr, "can't open configuration file [%s]\n" -- , config_default_dir); -- exit (1); -+ log_message(LOG_ERR, "can't open configuration file [%s]\n" -+ , config_default_dir); -+ return -1; - } - } else { - fullpath = config_default_dir; -@@ -1764,12 +1765,10 @@ vty_read_config(char *config_file, char *config_default_dir) - } - - vty_read_file(confp); -- - fclose(confp); -- - host_config_set(fullpath); -- - FREE_PTR(tmp); -+ return 0; - } - - int -@@ -2038,8 +2037,7 @@ vty_config_write(vty_t *vty) - return CMD_SUCCESS; - } - --cmd_node_t vty_node = --{ -+cmd_node_t vty_node = { - VTY_NODE, - "%s(config-line)# ", - 1, -diff --git a/lib/vty.h b/lib/vty.h -index 6134ad3..2c4b44f 100644 ---- a/lib/vty.h -+++ b/lib/vty.h -@@ -181,7 +181,7 @@ extern int vty_listen(struct sockaddr_storage *); - extern void vty_reset(void); - extern vty_t *vty_new(void); - extern int vty_out(vty_t *, const char *, ...) PRINTF_ATTRIBUTE(2, 3); --extern void vty_read_config(char *, char *); -+extern int vty_read_config(char *, char *); - extern void vty_time_print(vty_t *, int); - extern void vty_serv_sock(const char *, unsigned short, const char *); - extern void vty_close(vty_t *); --- -1.8.1.4 - diff --git a/SOURCES/0007-autoconf-better-libnl3-detection.patch b/SOURCES/0007-autoconf-better-libnl3-detection.patch deleted file mode 100644 index 14d9ce6..0000000 --- a/SOURCES/0007-autoconf-better-libnl3-detection.patch +++ /dev/null @@ -1,99 +0,0 @@ -From cba49f220eff2025771da9aab766188ceb66c5bf Mon Sep 17 00:00:00 2001 -From: Alexandre Cassen -Date: Tue, 7 Jan 2014 16:21:58 +0100 -Subject: [PATCH 7/7] autoconf: better libnl3 detection - -use pkg-config facilities to append CFLAGS related instead of hardcoding -libnl3 path in configure script. ---- - configure | 6 +----- - configure.in | 5 +---- - keepalived/libipvs-2.6/Makefile.in | 2 +- - 3 files changed, 3 insertions(+), 10 deletions(-) - -diff --git a/configure b/configure -index 90cca7d..66ce48c 100755 ---- a/configure -+++ b/configure -@@ -622,7 +622,6 @@ ac_includes_default="\ - ac_subst_vars='LTLIBOBJS - LIBOBJS - VRRP_SUPPORT --INCLUDE_NL - USE_NL - IPVS_SUPPORT - VERSION_DATE -@@ -3975,9 +3974,8 @@ $as_echo "$ac_cv_lib_nl_genl_3_genl_connect" >&6; } - if test "x$ac_cv_lib_nl_genl_3_genl_connect" = xyes; then : - - USE_NL="LIBIPVS_USE_NL" -- CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)" -+ CFLAGS="$CFLAGS $(pkg-config --cflags libnl-genl-3.0)" - LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)" -- INCLUDE_NL="-I/usr/include/libnl3" - - else - -@@ -4029,7 +4027,6 @@ if test "x$ac_cv_lib_nl_nl_socket_modify_cb" = xyes; then : - USE_NL="LIBIPVS_USE_NL" - CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" - LIBS="$LIBS $(pkg-config --libs libnl-1)" -- INCLUDE_NL="" - - else - -@@ -4465,7 +4462,6 @@ fi - - - -- - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 - $as_echo_n "checking for an ANSI C-conforming const... " >&6; } - if ${ac_cv_c_const+:} false; then : -diff --git a/configure.in b/configure.in -index 364890d..7d97616 100644 ---- a/configure.in -+++ b/configure.in -@@ -61,9 +61,8 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc, - AC_CHECK_LIB(nl-genl-3, genl_connect, - [ - USE_NL="LIBIPVS_USE_NL" -- CFLAGS="$CFLAGS $(pkg-config libnl-genl-3.0)" -+ CFLAGS="$CFLAGS $(pkg-config --cflags libnl-genl-3.0)" - LIBS="$LIBS $(pkg-config --libs libnl-genl-3.0)" -- INCLUDE_NL="-I/usr/include/libnl3" - ], - [ - AC_MSG_ERROR([libnl-3 is installed but not libnl-gen-3. Please, install libnl-gen-3.]) -@@ -75,7 +74,6 @@ AC_CHECK_LIB(nl-3, nl_socket_alloc, - USE_NL="LIBIPVS_USE_NL" - CFLAGS="$CFLAGS -DFALLBACK_LIBNL1" - LIBS="$LIBS $(pkg-config --libs libnl-1)" -- INCLUDE_NL="" - ], - [ - USE_NL="LIBIPVS_DONTUSE_NL" -@@ -279,7 +277,6 @@ AC_SUBST(VERSION) - AC_SUBST(VERSION_DATE) - AC_SUBST(IPVS_SUPPORT) - AC_SUBST(USE_NL) --AC_SUBST(INCLUDE_NL) - AC_SUBST(VRRP_SUPPORT) - - dnl ----[ Checks for typedefs, structures, and compiler characteristics ]---- -diff --git a/keepalived/libipvs-2.6/Makefile.in b/keepalived/libipvs-2.6/Makefile.in -index dfefc7d..14cfa95 100644 ---- a/keepalived/libipvs-2.6/Makefile.in -+++ b/keepalived/libipvs-2.6/Makefile.in -@@ -1,7 +1,7 @@ - # Makefile for libipvs - - CC = @CC@ --CFLAGS = @CFLAGS@ @CPPFLAGS@ @INCLUDE_NL@ -D@USE_NL@ -Wall -Wunused -+CFLAGS = @CFLAGS@ @CPPFLAGS@ -D@USE_NL@ -Wall -Wunused - - export OBJS += libipvs.a - --- -1.8.1.4 - diff --git a/SOURCES/bz1085535-keepalived-man-snmp.patch b/SOURCES/bz1085535-keepalived-man-snmp.patch new file mode 100644 index 0000000..8d7e57d --- /dev/null +++ b/SOURCES/bz1085535-keepalived-man-snmp.patch @@ -0,0 +1,29 @@ +From fd2dd6876e1862af519c93f37c08946e1d14abf1 Mon Sep 17 00:00:00 2001 +From: Ryan O'Hara +Date: Wed, 21 May 2014 14:11:05 -0500 +Subject: [PATCH] Add SNMP subsystem option to man page + +The keepalived(8) man page did not mention the -x option to enable the +SNMP subsystem. This patch adds the -x (and --smmp) options to the +keepalived(8) man page, as described in the keepalived help message. +--- + doc/man/man8/keepalived.8 | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/doc/man/man8/keepalived.8 b/doc/man/man8/keepalived.8 +index 94c366a..7219887 100644 +--- a/doc/man/man8/keepalived.8 ++++ b/doc/man/man8/keepalived.8 +@@ -91,6 +91,9 @@ the VRRP child process is "/var/run/keepalived_vrrp.pid". + Use specified pidfile for checkers child process. The default pidfile + for the checker child process is "/var/run/keepalived_checkers.pid". + .TP ++\fB -x, --snmp\fP ++Enable SNMP subsystem. ++.TP + \fB -v, --version\fP + Display the version and exit. + .TP +-- +1.8.1.4 + diff --git a/SPECS/keepalived.spec b/SPECS/keepalived.spec index 545de43..d8b8cae 100644 --- a/SPECS/keepalived.spec +++ b/SPECS/keepalived.spec @@ -7,9 +7,9 @@ %global _hardened_build 1 Name: keepalived -Summary: High Availability monitor built upon LVS, VRRP and service pollers -Version: 1.2.10 -Release: 2%{?dist} +Summary: Load balancer and high availability service +Version: 1.2.13 +Release: 6%{?dist} License: GPLv2+ URL: http://www.keepalived.org/ Group: System Environment/Daemons @@ -17,13 +17,7 @@ Group: System Environment/Daemons Source0: http://www.keepalived.org/software/keepalived-%{version}.tar.gz Source1: keepalived.service -Patch1: 0001-ipvs-make-nlerr2syserr-libnl-dependent.patch -Patch2: 0002-fix-libnl-libnl-3-logic-in-configure-script.patch -Patch3: 0003-libipvs-libnl-3-include-fix.patch -Patch4: 0004-lib-extend-command-lib-string-parser.patch -Patch5: 0005-lib-cosmetics-at-command.c.patch -Patch6: 0006-lib-extend-vty-to-support-logger.patch -Patch7: 0007-autoconf-better-libnl3-detection.patch +Patch0: bz1085535-keepalived-man-snmp.patch Requires(post): systemd Requires(preun): systemd @@ -41,27 +35,17 @@ BuildRequires: popt-devel %description Keepalived provides simple and robust facilities for load balancing -and high availability to Linux system and Linux based infrastructures. -The load balancing framework relies on well-known and widely used -Linux Virtual Server (IPVS) kernel module providing Layer4 load -balancing. Keepalived implements a set of checkers to dynamically and -adaptively maintain and manage load-balanced server pool according -their health. High availability is achieved by VRRP protocol. VRRP is -a fundamental brick for router failover. In addition, keepalived -implements a set of hooks to the VRRP finite state machine providing -low-level and high-speed protocol interactions. Keepalived frameworks -can be used independently or all together to provide resilient -infrastructures. +and high availability. The load balancing framework relies on the +well-known and widely used Linux Virtual Server (IPVS) kernel module +providing layer-4 (transport layer) load balancing. Keepalived +implements a set of checkers to dynamically and adaptively maintain +and manage a load balanced server pool according their health. +Keepalived also implements the Virtual Router Redundancy Protocol +(VRRPv2) to achieve high availability with director failover. %prep %setup -q -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 +%patch0 -p1 %build %configure \ @@ -73,19 +57,21 @@ infrastructures. %{__make} %{?_smp_mflags} STRIP=/bin/true %install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} -rm -rf %{buildroot}%{_initrddir}/ -rm -rf %{buildroot}%{_sysconfdir}/keepalived/samples/ +%{__rm} -rf %{buildroot} +%{__rm} -rf doc/samples/*.pem +%{__make} install DESTDIR=%{buildroot} +%{__rm} -rf %{buildroot}%{_initrddir}/ +%{__rm} -rf %{buildroot}%{_sysconfdir}/keepalived/samples/ %{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/keepalived.service +%{__mkdir_p} %{buildroot}%{_libexecdir}/keepalived %if %{with snmp} -mkdir -p %{buildroot}%{_datadir}/snmp/mibs/ +%{__mkdir_p} %{buildroot}%{_datadir}/snmp/mibs/ %{__install} -p -D -m 0644 doc/KEEPALIVED-MIB %{buildroot}%{_datadir}/snmp/mibs/KEEPALIVED-MIB.txt %endif %clean -rm -rf %{buildroot} +%{__rm} -rf %{buildroot} %post %systemd_post keepalived.service @@ -98,25 +84,41 @@ rm -rf %{buildroot} %files %defattr(-,root,root,-) -%attr(0755,root,root) %{_sbindir}/keepalived -%attr(0644,root,root) %{_sysconfdir}/sysconfig/keepalived -%attr(0644,root,root) %{_sysconfdir}/keepalived/keepalived.conf -%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README TODO -%doc doc/keepalived.conf.SYNOPSIS doc/samples/keepalived.conf.* +%doc AUTHOR ChangeLog CONTRIBUTORS COPYING README TODO VERSION +%doc doc/keepalived.conf.SYNOPSIS doc/NOTE_vrrp_vmac.txt doc/samples/ %dir %{_sysconfdir}/keepalived/ -%config(noreplace) %{_sysconfdir}/keepalived/keepalived.conf -%config(noreplace) %{_sysconfdir}/sysconfig/keepalived +%dir %{_libexecdir}/keepalived/ +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/keepalived/keepalived.conf +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/keepalived +%{_unitdir}/keepalived.service %if %{with snmp} %{_datadir}/snmp/mibs/KEEPALIVED-MIB.txt %endif -%{_bindir}/genhash -%{_unitdir}/keepalived.service -%{_sbindir}/keepalived +%attr(0755,root,root) %{_bindir}/genhash +%attr(0755,root,root) %{_sbindir}/keepalived %{_mandir}/man1/genhash.1* %{_mandir}/man5/keepalived.conf.5* %{_mandir}/man8/keepalived.8* %changelog +* Tue Nov 18 2014 Ryan O'Hara - 1.2.13-6 +- Fix typo in changelog + +* Mon Nov 10 2014 Ryan O'Hara - 1.2.13-5 +- Bump release number (#1158114) + +* Thu Nov 06 2014 Ryan O'Hara - 1.2.13-4 +- Create /usr/libexec/keepalived directory (#1158114) + +* Tue Sep 30 2014 Ryan O'Hara - 1.2.13-3 +- Minor spec file modifications (#1067693, #1067145) + +* Tue Sep 30 2014 Ryan O'Hara - 1.2.13-2 +- Add SNMP subsystem option to man page (#1085535) + +* Thu Aug 07 2014 Ryan O'Hara - 1.2.13-1 +- Rebase to upstream version 1.2.13 (#1111716) + * Fri Jan 24 2014 Daniel Mach - 1.2.10-2 - Mass rebuild 2014-01-24 @@ -191,7 +193,7 @@ rm -rf %{buildroot} - convert to systemd - fix ip_vs.h path searching in configure -* Tue Jul 23 2011 Matthias Saou 1.2.2-2 +* Sat Jul 23 2011 Matthias Saou 1.2.2-2 - Build against libnl for Fedora. RHEL's libnl is too old. * Sat May 21 2011 Matthias Saou 1.2.2-1