mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-10-31 18:40:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| set -e
 | |
| # bash is required since /etc/frr/daemons.conf used a bash array in some
 | |
| # previous versions.
 | |
| 
 | |
| # NOTE: this code exists specifically to make migrations from Quagga to
 | |
| # FRR easier.  FRR is able to load most Quagga configurations, but the
 | |
| # config handling itself has changed with the move towards the "integrated"
 | |
| # /etc/frr/frr.conf approach instead of separate per-daemon config files.
 | |
| #
 | |
| # That said, with this in place there's a good chance users can use a
 | |
| # preexisting Quagga config with little hassle.
 | |
| 
 | |
| case "$1" in
 | |
| install|upgrade)
 | |
| 	(
 | |
| 		test -f /etc/frr/daemons      && . /etc/frr/daemons
 | |
| 		test -f /etc/frr/daemons.conf && . /etc/frr/daemons.conf
 | |
| 		test -f /etc/default/frr      && . /etc/default/frr
 | |
| 
 | |
| 		if [ "$watchfrr_enable" = no -o \
 | |
| 			"$watchfrr_enable" = "0" ]; then
 | |
| 			cat >&2 <<EOF
 | |
| ERROR: Pre-existing frr configuration file disables watchfrr.
 | |
| 
 | |
| This configuration is deprecated upstream and not supported by the Debian
 | |
| FRR package.  Refusing to $1 in order to not break running setups.
 | |
| Please change your setup to use watchfrr and remove the "watchfrr_enable"
 | |
| option from /etc/frr/daemons, /etc/frr/daemons.conf and/or /etc/default/frr.
 | |
| EOF
 | |
| 			exit 1
 | |
| 		fi
 | |
| 	)
 | |
| 	vtysh=''
 | |
| 	if test -f /etc/frr/vtysh.conf; then
 | |
| 		if grep -q '^[[:space:]]*service[[:space:]]\+integrated-vtysh-config' /etc/frr/vtysh.conf; then
 | |
| 			# existing vtysh.conf with integrated statement
 | |
| 			# - do nothing (=> integrated config)
 | |
| 			vtysh='i'
 | |
| 		elif grep -q '^[[:space:]]*no[[:space:]]\+service[[:space:]]\+integrated-vtysh-config' /etc/frr/vtysh.conf; then
 | |
| 			# explicit non-integrated
 | |
| 			# => need to fix vtysh.conf & frr.conf in postinst
 | |
| 			vtysh='ni'
 | |
| 			if test -f /etc/frr/frr.conf; then
 | |
| 				cat >&2 <<EOF
 | |
| ERROR: Pre-existing /etc/frr/vtysh.conf specifies
 | |
| "no service integrated-vtysh-config", but /etc/frr/frr.conf exists.  This
 | |
| will cause the frr package to malfunction.  Please remove /etc/frr/frr.conf
 | |
| or remove the "no service integrated-vtysh-config" statement from
 | |
| /etc/frr/vtysh.conf.
 | |
| EOF
 | |
| 				exit 1
 | |
| 			fi
 | |
| 		else
 | |
| 			# vtysh.conf exists but has no statement
 | |
| 			:
 | |
| 		fi
 | |
| 	fi
 | |
| 	if test -f /etc/frr/frr.conf; then
 | |
| 		# vtysh.conf has no explicit statement but frr.conf exists
 | |
| 		# => integrated config used
 | |
| 		vtysh='i'
 | |
| 	elif test -f /etc/frr/zebra.conf \
 | |
| 		-o -f /etc/frr/bgpd.conf \
 | |
| 		-o -f /etc/frr/ospfd.conf \
 | |
| 		-o -f /etc/frr/ospf6d.conf \
 | |
| 		-o -f /etc/frr/ripd.conf \
 | |
| 		-o -f /etc/frr/ripngd.conf \
 | |
| 		-o -f /etc/frr/isisd.conf \
 | |
| 		-o -f /etc/frr/pimd.conf \
 | |
| 		-o -f /etc/frr/ldpd.conf \
 | |
| 		-o -f /etc/frr/nhrpd.conf \
 | |
| 		-o -f /etc/frr/eigrpd.conf \
 | |
| 		-o -f /etc/frr/babeld.conf \
 | |
| 		-o -f /etc/frr/pbrd.conf \
 | |
| 		-o -f /etc/frr/pathd.conf \
 | |
| 		-o -f /etc/frr/bfdd.conf; then
 | |
| 		# no explicit statement, but some split config file exists
 | |
| 		# => need to fix vtysh.conf & frr.conf in postinst
 | |
| 		test -n "$vtysh" || vtysh='ni'
 | |
| 	else
 | |
| 		# no config at all - use integrated
 | |
| 		:
 | |
| 	fi
 | |
| 	if test "$vtysh" = "ni"; then
 | |
| 		touch /etc/frr/.pkg.frr.nointegrated
 | |
| 	fi
 | |
| 	;;
 | |
| abort-upgrade)
 | |
| 	# shouldn't fail an upgrade abort
 | |
| 	;;
 | |
| esac
 | |
| 
 | |
| #DEBHELPER#
 | 
