]> git.puffer.fish Git - matthieu/frr.git/commitdiff
debian: bump to 6.0.2-2, add compat patches
authorDavid Lamparter <equinox@diac24.net>
Fri, 25 Jan 2019 11:28:35 +0000 (12:28 +0100)
committerDavid Lamparter <equinox@diac24.net>
Fri, 25 Jan 2019 11:29:55 +0000 (12:29 +0100)
These 2 patches are relevant for upgrade paths & user env/setup so they
should go into a 6.0.2-2.

Signed-off-by: David Lamparter <equinox@diac24.net>
debian/changelog
debian/patches/0001-vtysh-fix-pager-compatibility-handling.patch [new file with mode: 0644]
debian/patches/0002-watchfrr-build-in-defaults-for-r-s-k.patch [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]

index b00a82cde4ffcd9efb2bd6d524654c0ca30c4263..936e965cb7c5cde2fdcc7d1c72b14efafedcd22e 100644 (file)
@@ -1,3 +1,9 @@
+frr (6.0.2-2) UNRELEASED; urgency=medium
+
+  * fix compat/upgrade path issues regarding watchfrr_options & VTYSH_PAGER
+
+ -- David Lamparter <equinox-debian@diac24.net>  Fri, 25 Jan 2019 12:27:23 +0100
+
 frr (6.0.2-1) unstable; urgency=medium
 
   * Packaging has been more or less completely reworked, based off the old
diff --git a/debian/patches/0001-vtysh-fix-pager-compatibility-handling.patch b/debian/patches/0001-vtysh-fix-pager-compatibility-handling.patch
new file mode 100644 (file)
index 0000000..6c5fe1e
--- /dev/null
@@ -0,0 +1,77 @@
+Origin: commit:2e4dc0a9a116a39aaa7e4d445c95447aad4c0697
+Author: David Lamparter <equinox@diac24.net>
+Subject: vtysh: fix pager compatibility handling
+Last-Update: 2019-01-25
+
+I just straight up forgot checking VTYSH_PAGER at startup, and the
+"terminal paginate" command is only installed to VIEW_NODE so it can't
+be processed from vtysh.conf in CONFIG_NODE...
+
+diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
+index 2a3b74cdb10f..8f998f84d203 100644
+--- a/vtysh/vtysh.c
++++ b/vtysh/vtysh.c
+@@ -104,7 +104,7 @@ static int vty_close_pager(struct vty *vty)
+       return 0;
+ }
+-static void vtysh_pager_envdef(void)
++static void vtysh_pager_envdef(bool fallback)
+ {
+       char *pager_defined;
+@@ -112,7 +112,7 @@ static void vtysh_pager_envdef(void)
+       if (pager_defined)
+               vtysh_pager_name = strdup(pager_defined);
+-      else
++      else if (fallback)
+               vtysh_pager_name = strdup(VTYSH_PAGER);
+ }
+@@ -2858,7 +2858,7 @@ DEFUN (vtysh_terminal_paginate,
+       vtysh_pager_name = NULL;
+       if (strcmp(argv[0]->text, "no"))
+-              vtysh_pager_envdef();
++              vtysh_pager_envdef(true);
+       return CMD_SUCCESS;
+ }
+@@ -2878,7 +2878,7 @@ DEFUN (vtysh_terminal_length,
+       if (!strcmp(argv[0]->text, "no") || !strcmp(argv[1]->text, "no")) {
+               /* "terminal no length" = use VTYSH_PAGER */
+-              vtysh_pager_envdef();
++              vtysh_pager_envdef(true);
+               return CMD_SUCCESS;
+       }
+@@ -2887,7 +2887,7 @@ DEFUN (vtysh_terminal_length,
+               vty_out(vty,
+                       "%% The \"terminal length\" command is deprecated and its value is ignored.\n"
+                       "%% Please use \"terminal paginate\" instead with OS TTY length handling.\n");
+-              vtysh_pager_envdef();
++              vtysh_pager_envdef(true);
+       }
+       return CMD_SUCCESS;
+@@ -3445,6 +3445,7 @@ void vtysh_init_vty(void)
+       /* set default output */
+       vty->of = stdout;
++      vtysh_pager_envdef(false);
+       /* Initialize commands. */
+       cmd_init(0);
+@@ -3773,6 +3774,7 @@ void vtysh_init_vty(void)
+       /* "write memory" command. */
+       install_element(ENABLE_NODE, &vtysh_write_memory_cmd);
++      install_element(CONFIG_NODE, &vtysh_terminal_paginate_cmd);
+       install_element(VIEW_NODE, &vtysh_terminal_paginate_cmd);
+       install_element(VIEW_NODE, &vtysh_terminal_length_cmd);
+       install_element(VIEW_NODE, &vtysh_terminal_no_length_cmd);
+-- 
+2.20.1
+
diff --git a/debian/patches/0002-watchfrr-build-in-defaults-for-r-s-k.patch b/debian/patches/0002-watchfrr-build-in-defaults-for-r-s-k.patch
new file mode 100644 (file)
index 0000000..a4ae700
--- /dev/null
@@ -0,0 +1,135 @@
+Origin: commit:aea5145ffde23873ce4ef4ab2b54b2e24850fa8d
+Author: David Lamparter <equinox@opensourcerouting.org>
+Subject: watchfrr: build in defaults for -r/-s/-k
+Last-Update: 2019-01-25
+
+There's no good reason to not have these options default to the
+installation path of tools/watchfrr.sh.  Doing so allows us to ditch
+watchfrr_options from daemons/daemons.conf completely.
+
+diff --git a/configure.ac b/configure.ac
+index 72747550dd86..85a0f97bb3d3 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -1974,6 +1974,7 @@ AC_SUBST(CFG_SBIN)
+ AC_SUBST(CFG_STATE)
+ AC_SUBST(CFG_MODULE)
+ AC_DEFINE_UNQUOTED(MODULE_PATH, "$CFG_MODULE", path to modules)
++AC_DEFINE_UNQUOTED(WATCHFRR_SH_PATH, "${CFG_SBIN%/}/watchfrr.sh", path to watchfrr.sh)
+ dnl ------------------------------------
+ dnl Enable RPKI and add librtr to libs
+diff --git a/tools/etc/frr/daemons b/tools/etc/frr/daemons
+index 9077606633e8..c40ebb598d72 100644
+--- a/tools/etc/frr/daemons
++++ b/tools/etc/frr/daemons
+@@ -53,7 +53,7 @@ staticd_options="-A 127.0.0.1"
+ bfdd_options="   -A 127.0.0.1"
+ # The list of daemons to watch is automatically generated by the init script.
+-watchfrr_options="-r '/usr/lib/frr/watchfrr.sh restart %s' -s '/usr/lib/frr/watchfrr.sh start %s' -k '/usr/lib/frr/watchfrr.sh stop %s'"
++#watchfrr_options=""
+ # for debugging purposes, you can specify a "wrap" command to start instead
+ # of starting the daemon directly, e.g. to use valgrind on ospfd:
+diff --git a/tools/frrcommon.sh.in b/tools/frrcommon.sh.in
+index 588aa6d103e1..37abfeb30d2e 100644
+--- a/tools/frrcommon.sh.in
++++ b/tools/frrcommon.sh.in
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ #
+ # This is a "library" of sorts for use by the other FRR shell scripts.  It
+ # has most of the daemon start/stop logic, but expects the following shell
+@@ -288,6 +288,13 @@ load_old_config "$C_PATH/daemons.conf"
+ load_old_config "/etc/default/frr"
+ load_old_config "/etc/sysconfig/frr"
++if declare -p watchfrr_options | grep -q '^declare \-a'; then
++      log_warning_msg "watchfrr_options contains a bash array value." \
++              "The configured value is intentionally ignored since it is likely wrong." \
++              "Please remove or fix the setting."
++      unset watchfrr_options
++fi
++
+ #
+ # other defaults and dispatch
+ #
+diff --git a/tools/frrinit.sh.in b/tools/frrinit.sh.in
+index 3dddf5bd4484..0f5ed85864e7 100644
+--- a/tools/frrinit.sh.in
++++ b/tools/frrinit.sh.in
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ #
+ ### BEGIN INIT INFO
+ # Provides: frr
+diff --git a/tools/watchfrr.sh.in b/tools/watchfrr.sh.in
+index 3051d910448c..712f962a0ae5 100644
+--- a/tools/watchfrr.sh.in
++++ b/tools/watchfrr.sh.in
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ #
+ # This is NOT the init script!  This is the watchfrr start/stop/restart
+ # command handler, passed to watchfrr with the -s/-r/-k commands.  It is used
+diff --git a/watchfrr/watchfrr.c b/watchfrr/watchfrr.c
+index 7e75bed2d6ed..757d10419a9c 100644
+--- a/watchfrr/watchfrr.c
++++ b/watchfrr/watchfrr.c
+@@ -53,6 +53,10 @@
+ #define DEFAULT_MIN_RESTART   60
+ #define DEFAULT_MAX_RESTART   600
++#define DEFAULT_RESTART_CMD   WATCHFRR_SH_PATH " restart %s"
++#define DEFAULT_START_CMD     WATCHFRR_SH_PATH " start %s"
++#define DEFAULT_STOP_CMD      WATCHFRR_SH_PATH " stop %s"
++
+ #define PING_TOKEN    "PING"
+ DEFINE_MGROUP(WATCHFRR, "watchfrr")
+@@ -124,6 +128,9 @@ static struct global_state {
+       .loglevel = DEFAULT_LOGLEVEL,
+       .min_restart_interval = DEFAULT_MIN_RESTART,
+       .max_restart_interval = DEFAULT_MAX_RESTART,
++      .restart_command = DEFAULT_RESTART_CMD,
++      .start_command = DEFAULT_START_CMD,
++      .stop_command = DEFAULT_STOP_CMD,
+ };
+ typedef enum {
+@@ -227,14 +234,17 @@ Otherwise, the interval is doubled (but capped at the -M value).\n\n",
+ -r, --restart Supply a Bourne shell command to use to restart a single\n\
+               daemon.  The command string should include '%%s' where the\n\
+               name of the daemon should be substituted.\n\
++              (default: '%s')\n\
+ -s, --start-command\n\
+               Supply a Bourne shell to command to use to start a single\n\
+               daemon.  The command string should include '%%s' where the\n\
+               name of the daemon should be substituted.\n\
++              (default: '%s')\n\
+ -k, --kill-command\n\
+               Supply a Bourne shell to command to use to stop a single\n\
+               daemon.  The command string should include '%%s' where the\n\
+               name of the daemon should be substituted.\n\
++              (default: '%s')\n\
+     --dry     Do not start or restart anything, just log.\n\
+ -p, --pid-file        Set process identifier file name\n\
+               (default is %s/watchfrr.pid).\n\
+@@ -247,7 +257,9 @@ Otherwise, the interval is doubled (but capped at the -M value).\n\n",
+ -h, --help    Display this help and exit\n",
+               frr_vtydir, DEFAULT_LOGLEVEL, LOG_EMERG, LOG_DEBUG, LOG_DEBUG,
+               DEFAULT_MIN_RESTART, DEFAULT_MAX_RESTART, DEFAULT_PERIOD,
+-              DEFAULT_TIMEOUT, DEFAULT_RESTART_TIMEOUT, frr_vtydir);
++              DEFAULT_TIMEOUT, DEFAULT_RESTART_TIMEOUT,
++              DEFAULT_RESTART_CMD, DEFAULT_START_CMD, DEFAULT_STOP_CMD,
++              frr_vtydir);
+ }
+ static pid_t run_background(char *shell_cmd)
+-- 
+2.20.1
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..3a90c91
--- /dev/null
@@ -0,0 +1,2 @@
+0001-vtysh-fix-pager-compatibility-handling.patch
+0002-watchfrr-build-in-defaults-for-r-s-k.patch