Created
December 20, 2021 06:59
-
-
Save bbidulock/ec78188f23ee27bcc6347eed2f64a2e0 to your computer and use it in GitHub Desktop.
PKGBUILD for frr-8.1-2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /lib/lsb/init-functions for Debian -*- shell-script -*- | |
# | |
#Copyright (c) 2002-08 Chris Lawrence | |
#All rights reserved. | |
# | |
#Redistribution and use in source and binary forms, with or without | |
#modification, are permitted provided that the following conditions | |
#are met: | |
#1. Redistributions of source code must retain the above copyright | |
# notice, this list of conditions and the following disclaimer. | |
#2. Redistributions in binary form must reproduce the above copyright | |
# notice, this list of conditions and the following disclaimer in the | |
# documentation and/or other materials provided with the distribution. | |
#3. Neither the name of the author nor the names of other contributors | |
# may be used to endorse or promote products derived from this software | |
# without specific prior written permission. | |
# | |
#THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |
#IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
#ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE | |
#LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
#CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
#SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
#BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
#WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | |
#OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | |
#EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
start_daemon () { | |
local force nice pidfile exec args OPTIND | |
force="" | |
nice=0 | |
pidfile=/dev/null | |
OPTIND=1 | |
while getopts fn:p: opt ; do | |
case "$opt" in | |
f) force="force";; | |
n) nice="$OPTARG";; | |
p) pidfile="$OPTARG";; | |
esac | |
done | |
shift $(($OPTIND - 1)) | |
if [ "$1" = '--' ]; then | |
shift | |
fi | |
exec="$1"; shift | |
args="--start --nicelevel $nice --quiet --oknodo" | |
if [ "$force" ]; then | |
/sbin/start-stop-daemon $args \ | |
--chdir "$PWD" --startas $exec --pidfile /dev/null -- "$@" | |
elif [ $pidfile ]; then | |
/sbin/start-stop-daemon $args \ | |
--chdir "$PWD" --exec $exec --oknodo --pidfile "$pidfile" -- "$@" | |
else | |
/sbin/start-stop-daemon $args --chdir "$PWD" --exec $exec -- "$@" | |
fi | |
} | |
pidofproc () { | |
local pidfile base status specified pid OPTIND | |
pidfile= | |
specified= | |
OPTIND=1 | |
while getopts p: opt ; do | |
case "$opt" in | |
p) pidfile="$OPTARG" | |
specified="specified" | |
;; | |
esac | |
done | |
shift $(($OPTIND - 1)) | |
if [ $# -ne 1 ]; then | |
echo "$0: invalid arguments" >&2 | |
return 4 | |
fi | |
base=${1##*/} | |
if [ ! "$specified" ]; then | |
pidfile="/var/run/$base.pid" | |
fi | |
if [ -n "${pidfile:-}" -a -r "$pidfile" ]; then | |
read pid < "$pidfile" | |
if [ -n "${pid:-}" ]; then | |
if $(kill -0 "${pid:-}" 2> /dev/null); then | |
echo "$pid" || true | |
return 0 | |
elif ps "${pid:-}" >/dev/null 2>&1; then | |
echo "$pid" || true | |
return 0 # program is running, but not owned by this user | |
else | |
return 1 # program is dead and /var/run pid file exists | |
fi | |
fi | |
fi | |
if [ -n "$specified" ]; then | |
if [ -e "$pidfile" -a ! -r "$pidfile" ]; then | |
return 4 # pidfile exists, but unreadable, return unknown | |
else | |
return 3 # pidfile specified, but contains no PID to test | |
fi | |
fi | |
if [ -x /bin/pidof ]; then | |
status="0" | |
/bin/pidof -o %PPID -x $1 || status="$?" | |
if [ "$status" = 1 ]; then | |
return 3 # program is not running | |
fi | |
return 0 | |
fi | |
return 4 # Unable to determine status | |
} | |
# start-stop-daemon uses the same algorithm as "pidofproc" above. | |
killproc () { | |
local pidfile sig status base name_param is_term_sig OPTIND | |
pidfile= | |
name_param= | |
is_term_sig= | |
OPTIND=1 | |
while getopts p: opt ; do | |
case "$opt" in | |
p) pidfile="$OPTARG";; | |
esac | |
done | |
shift $(($OPTIND - 1)) | |
base=${1##*/} | |
if [ ! $pidfile ]; then | |
name_param="--name $base --pidfile /var/run/$base.pid" | |
else | |
name_param="--pidfile $pidfile" | |
fi | |
sig=$(echo ${2:-} | sed -e 's/^-\(.*\)/\1/') | |
sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/') | |
if [ "$sig" = 15 ] || [ "$sig" = TERM ]; then | |
is_term_sig="terminate_signal" | |
fi | |
status=0 | |
if [ ! "$is_term_sig" ]; then | |
if [ -n "$sig" ]; then | |
/sbin/start-stop-daemon --stop --signal "$sig" \ | |
--quiet $name_param || status="$?" | |
else | |
/sbin/start-stop-daemon --stop \ | |
--retry 5 \ | |
--quiet $name_param || status="$?" | |
fi | |
else | |
/sbin/start-stop-daemon --stop --quiet \ | |
--oknodo $name_param || status="$?" | |
fi | |
if [ "$status" = 1 ]; then | |
if [ -z "$sig" ]; then | |
return 0 | |
fi | |
return 3 # program is not running | |
fi | |
if [ "$status" = 0 ] && [ "$is_term_sig" ] && [ "$pidfile" ]; then | |
pidofproc -p "$pidfile" "$1" >/dev/null || rm -f "$pidfile" | |
fi | |
return 0 | |
} | |
# Return LSB status | |
status_of_proc () { | |
local pidfile daemon name status OPTIND | |
pidfile= | |
OPTIND=1 | |
while getopts p: opt ; do | |
case "$opt" in | |
p) pidfile="$OPTARG";; | |
esac | |
done | |
shift $(($OPTIND - 1)) | |
if [ -n "$pidfile" ]; then | |
pidfile="-p $pidfile" | |
fi | |
daemon="$1" | |
name="$2" | |
status="0" | |
pidofproc $pidfile $daemon >/dev/null || status="$?" | |
if [ "$status" = 0 ]; then | |
log_success_msg "$name is running" | |
return 0 | |
elif [ "$status" = 4 ]; then | |
log_failure_msg "could not access PID file for $name" | |
return $status | |
else | |
log_failure_msg "$name is not running" | |
return $status | |
fi | |
} | |
log_use_fancy_output () { | |
TPUT=/usr/bin/tput | |
EXPR=/usr/bin/expr | |
if [ -t 1 ] && | |
[ "x${TERM:-}" != "x" ] && | |
[ "x${TERM:-}" != "xdumb" ] && | |
[ -x $TPUT ] && [ -x $EXPR ] && | |
$TPUT hpa 60 >/dev/null 2>&1 && | |
$TPUT setaf 1 >/dev/null 2>&1 | |
then | |
[ -z $FANCYTTY ] && FANCYTTY=1 || true | |
else | |
FANCYTTY=0 | |
fi | |
case "$FANCYTTY" in | |
1|Y|yes|true) true;; | |
*) false;; | |
esac | |
} | |
log_success_msg () { | |
if [ -n "${1:-}" ]; then | |
log_begin_msg $@ | |
fi | |
log_end_msg 0 | |
} | |
log_failure_msg () { | |
if [ -n "${1:-}" ]; then | |
log_begin_msg $@ "..." | |
fi | |
log_end_msg 1 || true | |
} | |
log_warning_msg () { | |
if [ -n "${1:-}" ]; then | |
log_begin_msg $@ "..." | |
fi | |
log_end_msg 255 || true | |
} | |
# | |
# NON-LSB HELPER FUNCTIONS | |
# | |
# int get_lsb_header_val (char *scriptpathname, char *key) | |
get_lsb_header_val () { | |
if [ ! -f "$1" ] || [ -z "${2:-}" ]; then | |
return 1 | |
fi | |
LSB_S="### BEGIN INIT INFO" | |
LSB_E="### END INIT INFO" | |
sed -n "/$LSB_S/,/$LSB_E/ s/# $2: \(.*\)/\1/p" $1 | |
} | |
# If the currently running init daemon is upstart, return zero; if the | |
# calling init script belongs to a package which also provides a native | |
# upstart job, it should generally exit non-zero in this case. | |
init_is_upstart() | |
{ | |
if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | /bin/grep -q upstart; then | |
return 0 | |
fi | |
return 1 | |
} | |
# int log_begin_message (char *message) | |
log_begin_msg () { | |
log_begin_msg_pre "$@" | |
if [ -z "${1:-}" ]; then | |
return 1 | |
fi | |
echo -n "$@" || true | |
log_begin_msg_post "$@" | |
} | |
# Sample usage: | |
# log_daemon_msg "Starting GNOME Login Manager" "gdm" | |
# | |
# On Debian, would output "Starting GNOME Login Manager: gdm" | |
# On Ubuntu, would output " * Starting GNOME Login Manager..." | |
# | |
# If the second argument is omitted, logging suitable for use with | |
# log_progress_msg() is used: | |
# | |
# log_daemon_msg "Starting remote filesystem services" | |
# | |
# On Debian, would output "Starting remote filesystem services:" | |
# On Ubuntu, would output " * Starting remote filesystem services..." | |
log_daemon_msg () { | |
if [ -z "${1:-}" ]; then | |
return 1 | |
fi | |
log_daemon_msg_pre "$@" | |
if [ -z "${2:-}" ]; then | |
echo -n "$1:" || true | |
return | |
fi | |
echo -n "$1: $2" || true | |
log_daemon_msg_post "$@" | |
} | |
# #319739 | |
# | |
# Per policy docs: | |
# | |
# log_daemon_msg "Starting remote file system services" | |
# log_progress_msg "nfsd"; start-stop-daemon --start --quiet nfsd | |
# log_progress_msg "mountd"; start-stop-daemon --start --quiet mountd | |
# log_progress_msg "ugidd"; start-stop-daemon --start --quiet ugidd | |
# log_end_msg 0 | |
# | |
# You could also do something fancy with log_end_msg here based on the | |
# return values of start-stop-daemon; this is left as an exercise for | |
# the reader... | |
# | |
# On Ubuntu, one would expect log_progress_msg to be a no-op. | |
log_progress_msg () { | |
if [ -z "${1:-}" ]; then | |
return 1 | |
fi | |
echo -n " $@" || true | |
} | |
# int log_end_message (int exitstatus) | |
log_end_msg () { | |
# If no arguments were passed, return | |
if [ -z "${1:-}" ]; then | |
return 1 | |
fi | |
local retval | |
retval=$1 | |
log_end_msg_pre "$@" | |
# Only do the fancy stuff if we have an appropriate terminal | |
# and if /usr is already mounted | |
if log_use_fancy_output; then | |
RED=$( $TPUT setaf 1) | |
YELLOW=$( $TPUT setaf 3) | |
NORMAL=$( $TPUT op) | |
else | |
RED='' | |
YELLOW='' | |
NORMAL='' | |
fi | |
if [ $1 -eq 0 ]; then | |
echo "." || true | |
elif [ $1 -eq 255 ]; then | |
/bin/echo -e " ${YELLOW}(warning).${NORMAL}" || true | |
else | |
/bin/echo -e " ${RED}failed!${NORMAL}" || true | |
fi | |
log_end_msg_post "$@" | |
return $retval | |
} | |
log_action_msg () { | |
log_action_msg_pre "$@" | |
echo "$@." || true | |
log_action_msg_post "$@" | |
} | |
log_action_begin_msg () { | |
log_action_begin_msg_pre "$@" | |
echo -n "$@..." || true | |
log_action_begin_msg_post "$@" | |
} | |
log_action_cont_msg () { | |
echo -n "$@..." || true | |
} | |
log_action_end_msg () { | |
local end | |
log_action_end_msg_pre "$@" | |
if [ -z "${2:-}" ]; then | |
end="." | |
else | |
end=" ($2)." | |
fi | |
if [ $1 -eq 0 ]; then | |
echo "done${end}" || true | |
else | |
if log_use_fancy_output; then | |
RED=$( $TPUT setaf 1) | |
NORMAL=$( $TPUT op) | |
/bin/echo -e "${RED}failed${end}${NORMAL}" || true | |
else | |
echo "failed${end}" || true | |
fi | |
fi | |
log_action_end_msg_post "$@" | |
} | |
# Pre&Post empty function declaration, to be overriden from /lib/lsb/init-functions.d/* | |
log_daemon_msg_pre () { :; } | |
log_daemon_msg_post () { :; } | |
log_begin_msg_pre () { :; } | |
log_begin_msg_post () { :; } | |
log_end_msg_pre () { :; } | |
log_end_msg_post () { :; } | |
log_action_msg_pre () { :; } | |
log_action_msg_post () { :; } | |
log_action_begin_msg_pre () { :; } | |
log_action_begin_msg_post () { :; } | |
log_action_end_msg_pre () { :; } | |
log_action_end_msg_post () { :; } | |
# Include hooks from other packages in /lib/lsb/init-functions.d | |
for hook in $(run-parts --lsbsysinit --list /lib/lsb/init-functions.d 2>/dev/null); do | |
[ -r $hook ] && . $hook || true | |
done | |
FANCYTTY= | |
[ -e /etc/lsb-base-logging.sh ] && . /etc/lsb-base-logging.sh || true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Create frr user | |
g frr 177 | |
u frr 177:177 - /run/frr | |
# Create frrvty group and add frr user to this group | |
g frrvty 178 | |
m frr frrvty |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d /etc/frr 0750 frr frr | |
d /var/log/frr 0750 frr frr | |
d /run/frr 0750 frr frr | |
Z /etc/frr - frr frr |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -Naupr frr-frr-8.0_orig/lib/table.h frr-frr-8.0/lib/table.h | |
--- frr-frr-8.0_orig/lib/table.h 2021-07-21 20:06:19.000000000 +0700 | |
+++ frr-frr-8.0/lib/table.h 2021-08-14 14:44:45.820799226 +0700 | |
@@ -244,7 +244,7 @@ extern void route_table_iter_cleanup(rou | |
/* Lock node. */ | |
static inline struct route_node *route_lock_node(struct route_node *node) | |
{ | |
- (*(unsigned *)&node->lock)++; | |
+ node->lock+=1; | |
return node; | |
} | |
@@ -252,7 +252,7 @@ static inline struct route_node *route_l | |
static inline void route_unlock_node(struct route_node *node) | |
{ | |
assert(node->lock > 0); | |
- (*(unsigned *)&node->lock)--; | |
+ node->lock-=1; | |
if (node->lock == 0) | |
route_node_delete(node); | |
diff -Naupr frr-frr-8.0_orig/tools/etc/frr/daemons frr-frr-8.0/tools/etc/frr/daemons | |
--- frr-frr-8.0_orig/tools/etc/frr/daemons 2021-07-21 20:06:19.000000000 +0700 | |
+++ frr-frr-8.0/tools/etc/frr/daemons 2021-08-14 14:48:56.387345975 +0700 | |
@@ -31,6 +31,8 @@ bfdd=no | |
fabricd=no | |
vrrpd=no | |
pathd=no | |
+zebra=yes | |
+#ospfd_instances="1,2,3" | |
# | |
# If this option is set the /etc/init.d/frr script automatically loads | |
@@ -38,25 +40,25 @@ pathd=no | |
# Check /etc/pam.d/frr if you intend to use "vtysh"! | |
# | |
vtysh_enable=yes | |
-zebra_options=" -A 127.0.0.1 -s 90000000" | |
-bgpd_options=" -A 127.0.0.1" | |
-ospfd_options=" -A 127.0.0.1" | |
-ospf6d_options=" -A ::1" | |
-ripd_options=" -A 127.0.0.1" | |
-ripngd_options=" -A ::1" | |
-isisd_options=" -A 127.0.0.1" | |
-pimd_options=" -A 127.0.0.1" | |
-ldpd_options=" -A 127.0.0.1" | |
-nhrpd_options=" -A 127.0.0.1" | |
-eigrpd_options=" -A 127.0.0.1" | |
-babeld_options=" -A 127.0.0.1" | |
-sharpd_options=" -A 127.0.0.1" | |
-pbrd_options=" -A 127.0.0.1" | |
-staticd_options="-A 127.0.0.1" | |
-bfdd_options=" -A 127.0.0.1" | |
-fabricd_options="-A 127.0.0.1" | |
-vrrpd_options=" -A 127.0.0.1" | |
-pathd_options=" -A 127.0.0.1" | |
+zebra_options=" -A 127.0.0.1 -s 90000000 -d -f /etc/frr/zebra.conf" | |
+bgpd_options=" -A 127.0.0.1 -d -f /etc/frr/bgpd.conf" | |
+ospfd_options=" -A 127.0.0.1 -d -f /etc/frr/ospfd.conf" | |
+ospf6d_options=" -A ::1 -d -f /etc/frr/ospf6d.conf" | |
+ripd_options=" -A 127.0.0.1 -d -f /etc/frr/ripd.conf" | |
+ripngd_options=" -A ::1 -d -f /etc/frr/ripngd.conf" | |
+isisd_options=" -A 127.0.0.1 -d -f /etc/frr/isisd.conf" | |
+pimd_options=" -A 127.0.0.1 -d -f /etc/frr/pimd.conf" | |
+ldpd_options=" -A 127.0.0.1 -d -f /etc/frr/ldpd.conf" | |
+nhrpd_options=" -A 127.0.0.1 -d -f /etc/frr/nhrdp.conf" | |
+eigrpd_options=" -A 127.0.0.1 -d -f /etc/frr/eigrpd.conf" | |
+babeld_options=" -A 127.0.0.1 -d -f /etc/frr/babeld.conf" | |
+sharpd_options=" -A 127.0.0.1 -d -f /etc/frr/sharpd.conf" | |
+pbrd_options=" -A 127.0.0.1 -d -f /etc/frr/pbrd.conf" | |
+staticd_options="-A 127.0.0.1 -d -f /etc/frr/staticd.conf" | |
+bfdd_options=" -A 127.0.0.1 -d -f /etc/frr/bfdd.conf" | |
+fabricd_options="-A 127.0.0.1 -d -f /etc/frr/fabricd.conf" | |
+vrrpd_options=" -A 127.0.0.1 -d -f /etc/frr/vrrpd.conf" | |
+pathd_options=" -A 127.0.0.1 -d -f /etc/frr/pathd.conf" | |
# configuration profile | |
# | |
@@ -72,12 +74,13 @@ pathd_options=" -A 127.0.0.1" | |
#MAX_FDS=1024 | |
# The list of daemons to watch is automatically generated by the init script. | |
-#watchfrr_options="" | |
+watchfrr_enable=yes | |
# To make watchfrr create/join the specified netns, use the following option: | |
#watchfrr_options="--netns" | |
# This only has an effect in /etc/frr/<somename>/daemons, and you need to | |
# start FRR with "/usr/lib/frr/frrinit.sh start <somename>". | |
+watchfrr_options="-d -r '/usr/bin/frr restart %s' -s '/usr/bin/frr start %s' -k '/usr/bin/frr stop %s'" | |
# 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 -Naupr frr-frr-8.0_orig/tools/frrcommon.sh.in frr-frr-8.0/tools/frrcommon.sh.in | |
--- frr-frr-8.0_orig/tools/frrcommon.sh.in 2021-07-21 20:06:19.000000000 +0700 | |
+++ frr-frr-8.0/tools/frrcommon.sh.in 2021-08-14 14:44:45.824132559 +0700 | |
@@ -291,7 +291,7 @@ load_old_config() { | |
[ -s "$oldcfg" ] || return 0 | |
grep -v '^[[:blank:]]*\(#\|$\)' "$oldcfg" > /dev/null || return 0 | |
- log_warning_msg "Reading deprecated $oldcfg. Please move its settings to $C_PATH/daemons and remove it." | |
+ log_warning_msg "Reading deprecated $oldcfg. Please move its settings to $C_PATH/daemons.conf and remove it." | |
# save off settings from daemons for the OR below | |
for dmn in $DAEMONS; do eval "_new_$dmn=\${$dmn:-no}"; done | |
@@ -302,8 +302,8 @@ load_old_config() { | |
for dmn in $DAEMONS; do eval "test \$_new_$dmn != no && $dmn=\$_new_$dmn; unset _new_$dmn"; done | |
} | |
-[ -r "$C_PATH/daemons" ] || { | |
- log_failure_msg "cannot run $@: $C_PATH/daemons does not exist" | |
+[ -r "$C_PATH/daemons.conf" ] || { | |
+ log_failure_msg "cannot run $@: $C_PATH/daemons.conf does not exist" | |
exit 1 | |
} | |
. "$C_PATH/daemons" | |
diff -Naupr frr-frr-8.0_orig/tools/frr.in frr-frr-8.0/tools/frr.in | |
--- frr-frr-8.0_orig/tools/frr.in 2021-07-21 20:06:19.000000000 +0700 | |
+++ frr-frr-8.0/tools/frr.in 2021-08-14 14:51:47.870597234 +0700 | |
@@ -28,7 +28,7 @@ FRR_DEFAULT_PROFILE="@DFLT_NAME@" # trad | |
# See /usr/share/doc/frr/README.Debian.gz for further information. | |
# Keep zebra first and do not list watchfrr! | |
DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld pimd ldpd nhrpd eigrpd sharpd pbrd staticd bfdd fabricd vrrpd pathd" | |
-MAX_INSTANCES=5 | |
+MAX_INSTANCES=1024 | |
RELOAD_SCRIPT="$D_PATH/frr-reload.py" | |
if [ -e /lib/lsb/init-functions ]; then | |
@@ -503,10 +503,8 @@ check_status() | |
######################################################### | |
# Config broken but script must exit silently. | |
-[ ! -r "$C_PATH/daemons" ] && exit 0 | |
- | |
+[ ! -r "$C_PATH/daemons.conf" ] && exit 0 | |
# Load configuration | |
-. "$C_PATH/daemons" | |
if [ -e "$C_PATH/daemons.conf" ]; then | |
. "$C_PATH/daemons.conf" | |
fi | |
@@ -526,7 +524,7 @@ if test -z "$frr_profile"; then | |
fi | |
test -n "$frr_profile" && frr_global_options="$frr_global_options -F $frr_profile" | |
-MAX_INSTANCES=${MAX_INSTANCES:=5} | |
+MAX_INSTANCES=${MAX_INSTANCES:=1024} | |
# Set priority of un-startable daemons to 'no' and substitute 'yes' to '0' | |
convert_daemon_prios | |
diff -Naupr frr-frr-8.0_orig/tools/frr-reload frr-frr-8.0/tools/frr-reload | |
--- frr-frr-8.0_orig/tools/frr-reload 2021-07-21 20:06:19.000000000 +0700 | |
+++ frr-frr-8.0/tools/frr-reload 2021-08-14 14:44:45.824132559 +0700 | |
@@ -1,7 +1,7 @@ | |
#!/bin/sh | |
-if test -e /usr/lib/frr/frr-reload.py; then | |
- exec /usr/lib/frr/frr-reload.py --reload /etc/frr/frr.conf | |
+if test -e /usr/bin/frr-reload.py; then | |
+ exec /usr/bin/frr-reload.py --reload /etc/frr/frr.conf | |
fi | |
>&2 echo "Please install frr-pythontools package. Required for reload" | |
exit 1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Maintainer: Shalygin Konstantin <[email protected]> | |
# Contributor: Shalygin Konstantin <[email protected]> | |
# Contributor: Evgeny Cherkashin <[email protected]> | |
pkgname=frr | |
pkgver=8.1 | |
pkgrel=2 | |
pkgdesc='FRRouting (quagga fork) supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP, BFD, VRRP, NHRP and EIGRP.' | |
arch=('x86_64' 'i686' 'aarch64') | |
url="https://frrouting.org/" | |
license=('GPL2') | |
depends=('libcap' 'json-c' 'net-snmp' 'rtrlib' 'libyang' 'libunwind' 'c-ares' 'libelf') | |
makedepends=('perl-xml-libxml' 'python-sphinx') | |
checkdepends=('python-pytest') | |
optdepends=('rsyslog: syslog support' 'python: for frr-reload.py and generate_support_bundle.py') | |
conflicts=('quagga' 'babeld' 'quagga_cumulus') | |
provides=('quagga' 'quagga_cumulus') | |
backup=("etc/${pkgname}/${pkgname}.conf" | |
"etc/${pkgname}/daemons.conf" | |
"etc/${pkgname}/vtysh.conf") | |
source=("https://github.com/FRRouting/${pkgname}/archive/${pkgname}-${pkgver}.tar.gz" | |
"${pkgname}.sysusers" | |
"${pkgname}.tmpfiles" | |
"${pkgname}_8.0_Archlinux.patch" | |
"${pkgname}-init-functions") | |
sha256sums=('9d82c11b304ab89a30627fcbb4150f51e639f473f8563976e14101e796240599' | |
'b713df127ea476d6ec7793854cbb75f24085551816108b0c5ca4ae5feb9b74b6' | |
'd4ee57baa7f067e07f6456dedf59e54f56774924e2e2b2ea8ac01151237ac19b' | |
'dd02d7b6df161cf8e6f58384e40227b2bffcf626707a44e2a7fd5fe4dcb10159' | |
'e6e2592a8b0b18f7f173186fb4ebf23e642b3d912179f0bb36251962ca64cd7a') | |
prepare() { | |
cd ${pkgname}-${pkgname}-${pkgver} | |
patch -p1 -i "${srcdir}/${pkgname}_8.0_Archlinux.patch" | |
autoreconf -fvi | |
} | |
build() { | |
cd ${pkgname}-${pkgname}-${pkgver} | |
./configure \ | |
--prefix="/usr" \ | |
--sbindir="/usr/bin" \ | |
--sysconfdir="/etc/${pkgname}" \ | |
--localstatedir="/run/${pkgname}" \ | |
--with-libpam \ | |
--enable-snmp="agentx" \ | |
--enable-multipath=256 \ | |
--enable-user="${pkgname}" \ | |
--enable-group="${pkgname}" \ | |
--enable-vty-group="${pkgname}vty" \ | |
--enable-configfile-mask="0640" \ | |
--enable-logfile-mask="0640" \ | |
--enable-shell-access \ | |
--enable-rpki \ | |
--enable-fpm | |
# Fight unused direct deps | |
sed -i -e "s/ -shared / $LDFLAGS\0 /g" libtool | |
make | |
} | |
check() { | |
cd ${pkgname}-${pkgname}-${pkgver} | |
make check | |
} | |
package() { | |
cd ${pkgname}-${pkgname}-${pkgver} | |
make DESTDIR="${pkgdir}" install | |
install -Dm0644 "../frr-init-functions" "${pkgdir}/usr/bin/" | |
pushd "redhat" | |
sed -ri 's|/var/run/frr|/run/frr|g' "${pkgname}.logrotate" | |
install -Dm0644 "${pkgname}.logrotate" "${pkgdir}/etc/logrotate.d/${pkgname}" | |
install -Dm0644 "${pkgname}.pam" "${pkgdir}/etc/pam.d/${pkgname}" | |
popd | |
install -Dm0644 "../${pkgname}.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" | |
install -Dm0644 "../${pkgname}.sysusers" "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" | |
pushd "tools" | |
sed -ri 's|/usr/lib/frr/|/usr/bin/|g' "${pkgname}.service" | |
install -Dm0644 "${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/${pkgname}.service" | |
popd | |
pushd "tools/etc" | |
install -Dm0644 "${pkgname}/daemons" "${pkgdir}/etc/${pkgname}/daemons.conf" | |
install -Dm0644 "iproute2/rt_protos.d/${pkgname}.conf" "${pkgdir}/etc/iproute2/rt_protos.d/${pkgname}.conf" | |
install -Dm0644 "${pkgname}/${pkgname}.conf" "${pkgdir}/etc/${pkgname}/${pkgname}.conf" | |
install -Dm0644 "${pkgname}/vtysh.conf" "${pkgdir}/etc/${pkgname}/vtysh.conf" | |
install -Dm0644 "rsyslog.d/45-${pkgname}.conf" "${pkgdir}/etc/rsyslog.d/45-${pkgname}.conf" | |
popd | |
pushd "${pkgdir}/usr/bin" | |
for file in frr frr-reload frrcommon.sh frrinit.sh watchfrr.sh; | |
do | |
sed -ri 's|/lib/lsb/init-functions|/usr/bin/frr-init-functions|g' "$file"; | |
done | |
sed -ri 's|C_PATH/daemons\"|C_PATH/daemons.conf\"|g' frrcommon.sh | |
sed -ri 's|load_old_config \"\$C_PATH/daemons.conf\"|load_old_config \"\$C_PATH/daemons\"|g' frrcommon.sh | |
popd | |
pushd "${pkgdir}/usr/lib/systemd/system" | |
sed -ri 's|frrinit.sh|frr|g' frr.service | |
popd | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment