aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbms <bms@FreeBSD.org>2004-05-20 19:16:06 +0800
committerbms <bms@FreeBSD.org>2004-05-20 19:16:06 +0800
commitc37849431046c9d4d60390c4ef84fd05066423bf (patch)
tree4c087c574aba38359850760abf8eec495c00fb44
parent21f79d942a624bea898c3818bb25eb74ba53fc75 (diff)
downloadfreebsd-ports-gnome-c37849431046c9d4d60390c4ef84fd05066423bf.tar.gz
freebsd-ports-gnome-c37849431046c9d4d60390c4ef84fd05066423bf.tar.zst
freebsd-ports-gnome-c37849431046c9d4d60390c4ef84fd05066423bf.zip
Add a new rc variable, quagga_extralibs_path, to workaround boot-time
shared library dependencies. Directory paths listed in this variable MUST belong to local filesystems. When Quagga is compiled with additional libraries (e.g. net-snmp) it can not start during system boot on -CURRENT because ldconfig is called after NETWORKING; "REQUIRE ldconfig" cannot be used because /etc/rc.d/ldconfig uses "REQUIRE mountcritremote" which requires NETWORKING. Wordsmith some comments in the quagga.sh rcNG script. Submitted by: Boris Kovalenko (with some cleanups)
-rw-r--r--net/quagga/Makefile7
-rw-r--r--net/quagga/files/quagga.sh23
2 files changed, 23 insertions, 7 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 52ada15711b5..2f82894a9303 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -145,7 +145,12 @@ post-install:
@${ECHO} ""
@${ECHO} "defaultrouter=\"NO\""
@${ECHO} "quagga_enable=\"YES\""
- @${ECHO} "Also You may want to set router_enable=\"NO\""
+ @${ECHO} ""
+ @${ECHO} "Also, you may wish to set the following options:"
+ @${ECHO} "quagga_daemons=\"zebra bgpd etc...\""
+ @${ECHO} "quagga_flags=\"....\""
+ @${ECHO} "quagga_extralibs_path=\"/path1 /path2\""
+ @${ECHO} "router_enable=\"NO\""
@${ECHO} ""
@${ECHO} "Note!!! Since 0.96.4_5 port uses new id for quagga user and group."
@${ECHO} " So, You need to manually chown files:"
diff --git a/net/quagga/files/quagga.sh b/net/quagga/files/quagga.sh
index caef30d1d60a..66d72674a7fc 100644
--- a/net/quagga/files/quagga.sh
+++ b/net/quagga/files/quagga.sh
@@ -7,14 +7,17 @@
# KEYWORD: FreeBSD NetBSD
#
-# Add the following lines to /etc/rc.conf to enable quagga:
-#
+# Add the following line to /etc/rc.conf to enable quagga:
#quagga_enable="YES"
#
-# You may also use next flags to tune startup
+# You may also wish to use the following variables to fine-tune startup:
#quagga_flags="-d"
#quagga_daemons="zebra ripd ripng ospfd ospf6d bgpd isisd"
#
+# If the quagga daemons require additional shared libraries to start,
+# use the following variable to run ldconfig(8) in advance:
+#quagga_extralibs_path="/usr/local/lib ..."
+#
. %%RC_SUBR%%
@@ -35,6 +38,7 @@ quagga_enable=${quagga_enable:-"NO"}
quagga_flags=${quagga_flags:-"-d"}
quagga_daemons=${quagga_daemons:-"zebra ripd ripng ospfd ospf6d bgpd isisd"}
load_rc_config $name
+quagga_extralibs_path=${quagga_extralibs_path:-""}
quagga_cmd=$1
@@ -47,9 +51,16 @@ case "$1" in
;;
esac
-if [ ${quagga_cmd} = "stop" ]; then
- quagga_daemons=$(reverse_list ${quagga_daemons})
-fi
+case "${quagga_cmd}" in
+ start)
+ if [ ! -z ${quagga_extralibs_path} ]; then
+ /sbin/ldconfig -m ${quagga_extralibs_path}
+ fi
+ ;;
+ stop)
+ quagga_daemons=$(reverse_list ${quagga_daemons})
+ ;;
+esac
for daemon in ${quagga_daemons}; do
command=%%PREFIX%%/sbin/${daemon}