frr: fix init and update 14695/head
authorLucian Cristian <lucian.cristian@gmail.com>
Mon, 8 Feb 2021 22:42:34 +0000 (00:42 +0200)
committerLucian Cristian <lucian.cristian@gmail.com>
Mon, 8 Feb 2021 22:42:34 +0000 (00:42 +0200)
fix ospfd startup when instances are enabled

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
net/frr/Makefile
net/frr/files/frr
net/frr/files/frrcommon.sh

index fabfbb9759ad9930d3952ccb2a46065fc207fb3f..f9767365fb55688e126d7019c0299dccc47f3973 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 PKG_NAME:=frr
 PKG_VERSION:=7.5
-PKG_RELEASE:=3
-PKG_SOURCE_DATE:=2021-01-22
+PKG_RELEASE:=4
+PKG_SOURCE_DATE:=2021-02-05
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz
-PKG_SOURCE_VERSION:=a4af08a19e93cc8560f571ffc4819d53ed35ad66
+PKG_SOURCE_VERSION:=20b35e4c3386de798f3b0cb9f2a7e6b04d995485
 PKG_SOURCE_URL:=https://codeload.github.com/FRRouting/frr/tar.gz/$(PKG_SOURCE_VERSION)?
 
 
-PKG_HASH:=69bcbcde984560e9c41f52f5c509c58ea3d8d287750cc546d3a95e2ec9110dd4
+PKG_HASH:=f3b4a4ce43ad60fcf4b908dc4467cbc9dae277b5829489b3d221913e043dd250
 PKG_MAINTAINER:=Lucian Cristian <lucian.cristian@gmail.com>
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION)
index caeea21c6be8620dd829e1fc4851af3ff8ee561b..6ae80954cb1e8f5fd9791db86c48e793f34813b5 100644 (file)
@@ -12,6 +12,8 @@ log_failure_msg() {
         echo "$@" >&2
 }
 
+# "/usr/lib/frr/frrinit.sh start somenamespace"
+FRR_PATHSPACE="$2"
 self="`dirname $0`"
 if [ -r "$self/frrcommon.sh" ]; then
        . "$self/frrcommon.sh"
index d89cd891cabdd673f9122e1e4f6d50f1deb984ef..324a972693ce0bc4fe6a82f25e759ef2762e46fc 100644 (file)
@@ -16,6 +16,9 @@
 # file does not exist.
 #
 # This script should be installed in  /usr/sbin/frrcommon.sh
+# FRR_PATHSPACE is passed in from watchfrr
+suffix="${FRR_PATHSPACE:+/${FRR_PATHSPACE}}"
+nsopt="${FRR_PATHSPACE:+-N ${FRR_PATHSPACE}}"
 
 PATH=/bin:/usr/bin:/sbin:/usr/sbin
 D_PATH="/usr/sbin" # /usr/lib/frr
@@ -25,6 +28,8 @@ VTYSH="/usr/bin/vtysh" # /usr/bin/vtysh
 FRR_USER="network" # frr
 FRR_GROUP="network" # frr
 FRR_VTY_GROUP="" # frrvty
+FRR_CONFIG_MODE="0600" # 0600
+FRR_DEFAULT_PROFILE="traditional" # traditional / datacenter
 
 # ORDER MATTERS FOR $DAEMONS!
 # - keep zebra first
@@ -53,15 +58,19 @@ debug() {
 chownfrr() {
        [ -n "$FRR_USER" ] && chown "$FRR_USER" "$1"
        [ -n "$FRR_GROUP" ] && chgrp "$FRR_GROUP" "$1"
+       [ -n "$FRR_CONFIG_MODE" ] && chmod "$FRR_CONFIG_MODE" "$1"
+       if [ -d "$1" ]; then
+               chmod u+x "$1"
+       fi
 }
 
 vtysh_b () {
        [ "$1" = "watchfrr" ] && return 0
        [ -r "$C_PATH/frr.conf" ] || return 0
        if [ -n "$1" ]; then
-               "$VTYSH" -b -n -d "$1"
+               "$VTYSH" `echo $nsopt` -b -d "$1"
        else
-               "$VTYSH" -b -n
+               "$VTYSH" `echo $nsopt` -b
        fi
 }
 
@@ -90,7 +99,8 @@ daemon_list() {
                                continue
                        fi
                        debug "$daemon enabled"
-                       enabled="$enabled $daemon"
+#                      enabled="$enabled $daemon"
+
                        if [ -n "$inst" ]; then
                                debug "$daemon multi-instance $inst"
                                oldifs="${IFS}"
@@ -99,6 +109,8 @@ daemon_list() {
                                        enabled="$enabled $daemon-$i"
                                done
                                IFS="${oldifs}"
+                       else
+                               enabled="$enabled $daemon"
                        fi
                else
                        debug "$daemon disabled"
@@ -152,7 +164,7 @@ daemon_start() {
        instopt="${inst:+-n $inst}"
        eval args="\$${daemon}_options"
 
-       if eval "$all_wrap $wrap $bin -d $instopt $args"; then
+       if eval "$all_wrap $wrap $bin $nsopt -d $frr_global_options $instopt $args"; then
                log_success_msg "Started $dmninst"
                vtysh_b "$daemon"
        else
@@ -288,9 +300,11 @@ load_old_config() {
 }
 . "$C_PATH/daemons"
 
-load_old_config "$C_PATH/daemons.conf"
-load_old_config "/etc/default/frr"
-load_old_config "/etc/sysconfig/frr"
+if [ -z "$FRR_PATHSPACE" ]; then
+       load_old_config "$C_PATH/daemons.conf"
+       load_old_config "/etc/default/frr"
+       load_old_config "/etc/sysconfig/frr"
+fi
 
 if { declare -p watchfrr_options 2>/dev/null || true; } | grep -q '^declare \-a'; then
        log_warning_msg "watchfrr_options contains a bash array value." \
@@ -299,6 +313,19 @@ if { declare -p watchfrr_options 2>/dev/null || true; } | grep -q '^declare \-a'
        unset watchfrr_options
 fi
 
+if test -z "$frr_profile"; then
+       # try to autodetect config profile
+       if test -d /etc/cumulus; then
+               frr_profile=datacenter
+       # elif test ...; then
+       # -- add your distro/system here
+       elif test -n "$FRR_DEFAULT_PROFILE"; then
+               frr_profile="$FRR_DEFAULT_PROFILE"
+       fi
+fi
+test -n "$frr_profile" && frr_global_options="$frr_global_options -F $frr_profile"
+
+
 #
 # other defaults and dispatch
 #