blob: fa50aaa173d7cb914d8c397b390df7b54ab9393d [file] [log] [blame]
pauledd7c242003-06-04 13:59:38 +00001# configure options
paulb64d92a2005-04-25 15:13:42 +00002#
3# Some can be overriden on rpmbuild commandline with:
4# rpmbuild --define 'variable value'
Martin Wintera5efdb62015-10-29 22:15:42 -07005# (use any value, ie 1 for flag "with_XXXX" definitions)
paulb64d92a2005-04-25 15:13:42 +00006#
Paul Jakma283d5d72016-02-11 13:54:23 +00007# E.g. rpmbuild --define 'release_rev 02' may be useful if building
8# rpms again and again on the same day, so the newer rpms can be installed.
9# bumping the number each time.
paulb64d92a2005-04-25 15:13:42 +000010
paul11890752005-11-05 16:29:54 +000011####################### Quagga configure options #########################
12# with-feature options
Martin Wintera5efdb62015-10-29 22:15:42 -070013%{!?with_snmp: %global with_snmp 1 }
14%{!?with_vtysh: %global with_vtysh 1 }
15%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
16%{!?with_vtysh: %global with_vtysh 1 }
17%{!?with_pam: %global with_pam 1 }
18%{!?with_ospfclient: %global with_ospfclient 1 }
19%{!?with_ospfapi: %global with_ospfapi 1 }
20%{!?with_irdp: %global with_irdp 1 }
21%{!?with_rtadv: %global with_rtadv 1 }
22%{!?with_isisd: %global with_isisd 1 }
23%{!?with_pimd: %global with_pimd 1 }
24%{!?with_shared: %global with_shared 1 }
25%{!?with_multipath: %global with_multipath 64 }
26%{!?quagga_user: %global quagga_user quagga }
27%{!?vty_group: %global vty_group quaggavt }
28%{!?with_fpm: %global with_fpm 0 }
29%{!?with_watchquagga: %global with_watchquagga 1 }
paul30b9d892003-01-18 22:57:15 +000030
31# path defines
paul6bd8fd32003-08-12 12:54:13 +000032%define _sysconfdir /etc/quagga
Martin Wintera5efdb62015-10-29 22:15:42 -070033%define zeb_src %{_builddir}/%{name}-%{quaggaversion}
paul8f754982003-01-20 04:55:51 +000034%define zeb_rh_src %{zeb_src}/redhat
35%define zeb_docs %{zeb_src}/doc
paul788cdc62003-01-18 00:22:08 +000036
paule0626852003-03-18 14:11:36 +000037# defines for configure
paul6bd8fd32003-08-12 12:54:13 +000038%define _localstatedir /var/run/quagga
paul11890752005-11-05 16:29:54 +000039############################################################################
40
Martin Wintera5efdb62015-10-29 22:15:42 -070041#### Version String tweak
42# Remove invalid characters form version string and replace with _
43%{expand: %%define rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
44%define quaggaversion @VERSION@
paul11890752005-11-05 16:29:54 +000045
Martin Wintera5efdb62015-10-29 22:15:42 -070046#### Check version of texi2html
47# Old versions don't support "--number-footnotes" option.
48%{expand: %%global texi2htmlversion %(rpm -q --qf '%%{VERSION}' texi2html | cut -d. -f1 )}
paul11890752005-11-05 16:29:54 +000049
Martin Wintera5efdb62015-10-29 22:15:42 -070050#### Check for systemd or init.d (upstart)
51# Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
52%{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
53#
54# If init system is systemd, then always disable watchquagga
55#
56%if "%{initsystem}" == "systemd"
57 # Note: For systems with systemd, watchquagga will NOT be built. Systemd
58 # takes over the role of restarting crashed processes. Value will
59 # be overwritten with 0 below for systemd independent on the setting here
60 %global with_watchquagga 0
61%endif
paul11890752005-11-05 16:29:54 +000062
Martin Wintera5efdb62015-10-29 22:15:42 -070063# if FPM is enabled, then enable tcp_zebra as well
64#
65%if %{with_fpm}
66 %global with_tcp_zebra 1
67%endif
paule0626852003-03-18 14:11:36 +000068
paul15d74e92003-12-30 11:16:21 +000069# misc internal defines
paulb64d92a2005-04-25 15:13:42 +000070%{!?quagga_uid: %define quagga_uid 92 }
71%{!?quagga_gid: %define quagga_gid 92 }
Martin Wintera5efdb62015-10-29 22:15:42 -070072%{!?vty_gid: %define vty_gid 85 }
73
paul54b25dc2004-09-30 04:56:26 +000074%define daemon_list zebra ripd ospfd bgpd
paul0df63b52004-11-07 22:12:23 +000075
David Lamparter5460bae2015-05-19 00:35:04 +020076%define daemonv6_list ripngd ospf6d
paul0df63b52004-11-07 22:12:23 +000077
paul54b25dc2004-09-30 04:56:26 +000078%if %{with_isisd}
Martin Wintera5efdb62015-10-29 22:15:42 -070079%define daemon_isisd isisd
paul69f5d262004-10-07 16:23:36 +000080%else
Martin Wintera5efdb62015-10-29 22:15:42 -070081%define daemon_isisd ""
paul15d74e92003-12-30 11:16:21 +000082%endif
83
Martin Wintera5efdb62015-10-29 22:15:42 -070084%if %{with_pimd}
85%define daemon_pimd pimd
86%else
87%define daemon_pimd ""
88%endif
89
90%if %{with_watchquagga}
91%define daemon_watchquagga watchquagga
92%else
93%define daemon_watchquagga ""
94%endif
95
96%define all_daemons %{daemon_list} %{daemonv6_list} %{daemon_isisd} %{daemon_pimd} %{daemon_watchquagga}
ajsb3324e22004-12-22 17:52:29 +000097
paulb5f310c2004-09-13 13:15:25 +000098# allow build dir to be kept
Martin Wintera5efdb62015-10-29 22:15:42 -070099%{!?keep_build: %global keep_build 0 }
paulb5f310c2004-09-13 13:15:25 +0000100
paul4859e202005-11-20 02:09:32 +0000101#release sub-revision (the two digits after the CONFDATE)
102%{!?release_rev: %define release_rev 01 }
103
paul788cdc62003-01-18 00:22:08 +0000104Summary: Routing daemon
Martin Wintera5efdb62015-10-29 22:15:42 -0700105Name: quagga
106Version: %{rpmversion}
107Release: @CONFDATE@%{release_rev}%{?dist}
108License: GPLv2+
109Group: System Environment/Daemons
110Source0: http://download.savannah.gnu.org/releases/quagga/%{name}-%{quaggaversion}.tar.gz
111URL: http://www.quagga.net
112Requires: ncurses
113Requires(pre): /sbin/install-info
114Requires(preun): /sbin/install-info
115Requires(post): /sbin/install-info
116BuildRequires: texi2html texinfo autoconf patch libcap-devel groff
paul54b25dc2004-09-30 04:56:26 +0000117%if %{with_snmp}
paulb63cef72004-08-19 03:36:13 +0000118BuildRequires: net-snmp-devel
Martin Wintera5efdb62015-10-29 22:15:42 -0700119Requires: net-snmp
paul788cdc62003-01-18 00:22:08 +0000120%endif
paul54b25dc2004-09-30 04:56:26 +0000121%if %{with_vtysh}
paul30b9d892003-01-18 22:57:15 +0000122BuildRequires: readline readline-devel ncurses ncurses-devel
Martin Wintera5efdb62015-10-29 22:15:42 -0700123Requires: ncurses
pauld7ccae22003-01-18 00:24:00 +0000124%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700125%if %{with_pam}
126BuildRequires: pam-devel
127Requires: pam
128%endif
129%if "%{initsystem}" == "systemd"
130BuildRequires: systemd
131Requires(post): systemd
132Requires(preun): systemd
133Requires(postun): systemd
134%else
paul788cdc62003-01-18 00:22:08 +0000135# Initscripts > 5.60 is required for IPv6 support
Matti-Oskari Leppänenfa755852013-02-15 10:12:55 +0000136Requires(pre): initscripts >= 5.60
Martin Wintera5efdb62015-10-29 22:15:42 -0700137%endif
138Provides: routingdaemon = %{version}-%{release}
139BuildRoot: %{_tmppath}/%{name}-%{version}-root
140Obsoletes: bird gated mrt zebra quagga-sysvinit
paul788cdc62003-01-18 00:22:08 +0000141
142%description
paul6bd8fd32003-08-12 12:54:13 +0000143Quagga is a free software that manages TCP/IP based routing
paul788cdc62003-01-18 00:22:08 +0000144protocol. It takes multi-server and multi-thread approach to resolve
145the current complexity of the Internet.
146
Martin Wintera5efdb62015-10-29 22:15:42 -0700147Quagga supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng and PIM.
paul788cdc62003-01-18 00:22:08 +0000148
paul6bd8fd32003-08-12 12:54:13 +0000149Quagga is intended to be used as a Route Server and a Route Reflector. It is
150not a toolkit, it provides full routing power under a new architecture.
151Quagga by design has a process for each protocol.
152
153Quagga is a fork of GNU Zebra.
paul788cdc62003-01-18 00:22:08 +0000154
paul448ed4a2003-03-01 15:43:28 +0000155%package contrib
paul6bd8fd32003-08-12 12:54:13 +0000156Summary: contrib tools for quagga
paul448ed4a2003-03-01 15:43:28 +0000157Group: System Environment/Daemons
158
159%description contrib
paul6bd8fd32003-08-12 12:54:13 +0000160Contributed/3rd party tools which may be of use with quagga.
paul448ed4a2003-03-01 15:43:28 +0000161
paule0626852003-03-18 14:11:36 +0000162%package devel
paul6bd8fd32003-08-12 12:54:13 +0000163Summary: Header and object files for quagga development
paule0626852003-03-18 14:11:36 +0000164Group: System Environment/Daemons
Martin Wintera5efdb62015-10-29 22:15:42 -0700165Requires: %{name} = %{version}-%{release}
paule0626852003-03-18 14:11:36 +0000166
167%description devel
paul6bd8fd32003-08-12 12:54:13 +0000168The quagga-devel package contains the header and object files neccessary for
169developing OSPF-API and quagga applications.
paule0626852003-03-18 14:11:36 +0000170
paul788cdc62003-01-18 00:22:08 +0000171%prep
Martin Wintera5efdb62015-10-29 22:15:42 -0700172%setup -q -n quagga-%{quaggaversion}
paul788cdc62003-01-18 00:22:08 +0000173
174%build
ajs7966b972004-11-10 22:02:05 +0000175
176# For standard gcc verbosity, uncomment these lines:
177#CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
178#CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
179
180# For ultra gcc verbosity, uncomment these lines also:
181#CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
182#CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
183#CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
184#CFLAGS="${CFLAGS} -Wpacked -Wpadded"
185
paul788cdc62003-01-18 00:22:08 +0000186%configure \
Martin Wintera5efdb62015-10-29 22:15:42 -0700187 --sysconfdir=%{_sysconfdir} \
188 --libdir=%{_libdir} \
189 --libexecdir=%{_libexecdir} \
190 --localstatedir=%{_localstatedir} \
191 --disable-werror \
paul54b25dc2004-09-30 04:56:26 +0000192%if !%{with_shared}
193 --disable-shared \
194%endif
paul54b25dc2004-09-30 04:56:26 +0000195%if %{with_snmp}
paul788cdc62003-01-18 00:22:08 +0000196 --enable-snmp \
197%endif
paul54b25dc2004-09-30 04:56:26 +0000198%if %{with_multipath}
199 --enable-multipath=%{with_multipath} \
paul788cdc62003-01-18 00:22:08 +0000200%endif
paul54b25dc2004-09-30 04:56:26 +0000201%if %{with_tcp_zebra}
paul788cdc62003-01-18 00:22:08 +0000202 --enable-tcp-zebra \
203%endif
paul54b25dc2004-09-30 04:56:26 +0000204%if %{with_vtysh}
paul788cdc62003-01-18 00:22:08 +0000205 --enable-vtysh \
206%endif
paul54b25dc2004-09-30 04:56:26 +0000207%if %{with_ospfclient}
paul68980082003-03-25 05:07:42 +0000208 --enable-ospfclient=yes \
209%else
210 --enable-ospfclient=no\
211%endif
paul54b25dc2004-09-30 04:56:26 +0000212%if %{with_ospfapi}
paul68980082003-03-25 05:07:42 +0000213 --enable-ospfapi=yes \
214%else
215 --enable-ospfapi=no \
216%endif
paul54b25dc2004-09-30 04:56:26 +0000217%if %{with_irdp}
paul5b819262004-07-28 14:11:55 +0000218 --enable-irdp=yes \
219%else
220 --enable-irdp=no \
221%endif
paule7cd37b2005-09-08 15:18:39 +0000222%if %{with_rtadv}
223 --enable-rtadv=yes \
224%else
225 --enable-rtadv=no \
226%endif
paul54b25dc2004-09-30 04:56:26 +0000227%if %{with_isisd}
228 --enable-isisd \
229%else
paul69f5d262004-10-07 16:23:36 +0000230 --disable-isisd \
paul54b25dc2004-09-30 04:56:26 +0000231%endif
232%if %{with_pam}
pauledd7c242003-06-04 13:59:38 +0000233 --with-libpam \
paul788cdc62003-01-18 00:22:08 +0000234%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700235%if 0%{?quagga_user:1}
paul6bd8fd32003-08-12 12:54:13 +0000236 --enable-user=%quagga_user \
237 --enable-group=%quagga_user \
pauledd7c242003-06-04 13:59:38 +0000238%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700239%if 0%{?vty_group:1}
pauledd7c242003-06-04 13:59:38 +0000240 --enable-vty-group=%vty_group \
241%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700242%if %{with_fpm}
243 --enable-fpm \
244%else
245 --disable-fpm \
246%endif
247%if %{with_watchquagga}
248 --enable-watchquagga \
249%else
250 --disable-watchquagga \
251%endif
252 --enable-gcc-rdynamic
paul788cdc62003-01-18 00:22:08 +0000253
254make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
255
256pushd doc
Martin Wintera5efdb62015-10-29 22:15:42 -0700257%if %{texi2htmlversion} < 5
258texi2html --number-sections quagga.texi
259%else
Paul Jakmae07068c2015-09-04 14:25:13 +0100260texi2html --number-footnotes --number-sections quagga.texi
Martin Wintera5efdb62015-10-29 22:15:42 -0700261%endif
paul788cdc62003-01-18 00:22:08 +0000262popd
263
264%install
Martin Wintera5efdb62015-10-29 22:15:42 -0700265mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
266 %{buildroot}/var/log/quagga %{buildroot}%{_infodir}
267make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
paul788cdc62003-01-18 00:22:08 +0000268
paul9a344b72003-08-05 23:24:58 +0000269# Remove this file, as it is uninstalled and causes errors when building on RH9
Martin Wintera5efdb62015-10-29 22:15:42 -0700270rm -rf %{buildroot}/usr/share/info/dir
paul9a344b72003-08-05 23:24:58 +0000271
Martin Wintera5efdb62015-10-29 22:15:42 -0700272# install /etc sources
273%if "%{initsystem}" == "systemd"
274mkdir -p %{buildroot}%{_unitdir}
275for daemon in %{all_daemons} ; do
276 if [ x"${daemon}" != x"" ] ; then
277 install %{zeb_rh_src}/${daemon}.service \
278 %{buildroot}%{_unitdir}/${daemon}.service
279 fi
280done
281%else
282mkdir -p %{buildroot}/etc/rc.d/init.d
ajsb3324e22004-12-22 17:52:29 +0000283for daemon in %{all_daemons} ; do
paulda29c6b2004-10-08 00:49:09 +0000284 if [ x"${daemon}" != x"" ] ; then
285 install %{zeb_rh_src}/${daemon}.init \
Martin Wintera5efdb62015-10-29 22:15:42 -0700286 %{buildroot}/etc/rc.d/init.d/${daemon}
paulda29c6b2004-10-08 00:49:09 +0000287 fi
paul15d74e92003-12-30 11:16:21 +0000288done
Martin Wintera5efdb62015-10-29 22:15:42 -0700289%endif
290
Paul Jakma283d5d72016-02-11 13:54:23 +0000291install -m644 %{zeb_rh_src}/quagga.pam \
Martin Wintera5efdb62015-10-29 22:15:42 -0700292 %{buildroot}/etc/pam.d/quagga
paul15d74e92003-12-30 11:16:21 +0000293install -m644 %{zeb_rh_src}/quagga.logrotate \
Martin Wintera5efdb62015-10-29 22:15:42 -0700294 %{buildroot}/etc/logrotate.d/quagga
paul15d74e92003-12-30 11:16:21 +0000295install -m644 %{zeb_rh_src}/quagga.sysconfig \
Martin Wintera5efdb62015-10-29 22:15:42 -0700296 %{buildroot}/etc/sysconfig/quagga
297install -d -m750 %{buildroot}/var/run/quagga
pauledd7c242003-06-04 13:59:38 +0000298
299%pre
300# add vty_group
Martin Wintera5efdb62015-10-29 22:15:42 -0700301%if 0%{?vty_group:1}
paule7cd37b2005-09-08 15:18:39 +0000302if getent group %vty_group > /dev/null ; then : ; else \
Martin Wintera5efdb62015-10-29 22:15:42 -0700303 /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
pauledd7c242003-06-04 13:59:38 +0000304%endif
paule7cd37b2005-09-08 15:18:39 +0000305
paul6bd8fd32003-08-12 12:54:13 +0000306# add quagga user and group
Martin Wintera5efdb62015-10-29 22:15:42 -0700307%if 0%{?quagga_user:1}
paule7cd37b2005-09-08 15:18:39 +0000308# Ensure that quagga_gid gets correctly allocated
309if getent group %quagga_user >/dev/null; then : ; else \
310 /usr/sbin/groupadd -g %quagga_gid %quagga_user > /dev/null || : ; \
311fi
312if getent passwd %quagga_user >/dev/null ; then : ; else \
Timo Schöler2e0fb0e2017-02-23 13:16:42 +0000313 /usr/sbin/useradd -u %quagga_uid -g %quagga_gid -G %vty_group \
paule7cd37b2005-09-08 15:18:39 +0000314 -M -r -s /sbin/nologin -c "Quagga routing suite" \
315 -d %_localstatedir %quagga_user 2> /dev/null || : ; \
316fi
pauledd7c242003-06-04 13:59:38 +0000317%endif
paul788cdc62003-01-18 00:22:08 +0000318
paul788cdc62003-01-18 00:22:08 +0000319%post
paul30b9d892003-01-18 22:57:15 +0000320# zebra_spec_add_service <service name> <port/proto> <comment>
paul788cdc62003-01-18 00:22:08 +0000321# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
322
323zebra_spec_add_service ()
324{
325 # Add port /etc/services entry if it isn't already there
paul6b637e92004-10-23 00:48:51 +0000326 if [ -f /etc/services ] && \
327 ! %__sed -e 's/#.*$//' /etc/services | %__grep -wq $1 ; then
paul788cdc62003-01-18 00:22:08 +0000328 echo "$1 $2 # $3" >> /etc/services
329 fi
330}
331
332zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
333zebra_spec_add_service zebra 2601/tcp "zebra vty"
334zebra_spec_add_service ripd 2602/tcp "RIPd vty"
335zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
336zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
337zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
338zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
paul54b25dc2004-09-30 04:56:26 +0000339%if %{with_ospfapi}
paul7021c422003-07-15 12:52:22 +0000340zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
341%endif
paul54b25dc2004-09-30 04:56:26 +0000342%if %{with_isisd}
jardin5a514b12003-12-23 10:50:21 +0000343zebra_spec_add_service isisd 2608/tcp "ISISd vty"
paul54b25dc2004-09-30 04:56:26 +0000344%endif
Everton Marques871dbcf2009-08-11 15:43:05 -0300345%if %{with_pimd}
346zebra_spec_add_service pimd 2611/tcp "PIMd vty"
347%endif
paul788cdc62003-01-18 00:22:08 +0000348
Martin Wintera5efdb62015-10-29 22:15:42 -0700349%if "%{initsystem}" == "systemd"
350for daemon in %all_daemons ; do
351 %systemd_post ${daemon}.service
352done
353%else
354for daemon in %all_daemons ; do
paul15d74e92003-12-30 11:16:21 +0000355 /sbin/chkconfig --add ${daemon}
356done
Martin Wintera5efdb62015-10-29 22:15:42 -0700357%endif
paul788cdc62003-01-18 00:22:08 +0000358
paul6bd8fd32003-08-12 12:54:13 +0000359/sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
paul788cdc62003-01-18 00:22:08 +0000360
361# Create dummy files if they don't exist so basic functions can be used.
362if [ ! -e %{_sysconfdir}/zebra.conf ]; then
363 echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
Martin Wintera5efdb62015-10-29 22:15:42 -0700364%if 0%{?quagga_user:1}
365 chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf*
paule7cd37b2005-09-08 15:18:39 +0000366%endif
paul788cdc62003-01-18 00:22:08 +0000367 chmod 640 %{_sysconfdir}/zebra.conf
368fi
Martin Wintera5efdb62015-10-29 22:15:42 -0700369for daemon in %{all_daemons} ; do
370 if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
371 touch %{_sysconfdir}/${daemon}.conf
372 %if 0%{?quagga_user:1}
373 chown %quagga_user:%quagga_user %{_sysconfdir}/${daemon}.conf*
374 %endif
375 fi
376done
377%if %{with_watchquagga}
378 # No config for watchquagga - this is part of /etc/sysconfig/quagga
379 rm -f %{_sysconfdir}/watchquagga.*
380%endif
381
paul788cdc62003-01-18 00:22:08 +0000382if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
383 touch %{_sysconfdir}/vtysh.conf
384 chmod 640 %{_sysconfdir}/vtysh.conf
Martin Wintera5efdb62015-10-29 22:15:42 -0700385%if 0%{?vty_group:1}
386 chown quagga:%{vty_group} %{_sysconfdir}/vtysh.conf*
387%endif
paul788cdc62003-01-18 00:22:08 +0000388fi
389
390%postun
ajsfc43ecc2005-01-12 16:41:33 +0000391if [ "$1" -ge 1 ]; then
392 # Find out which daemons need to be restarted.
ajsb3324e22004-12-22 17:52:29 +0000393 for daemon in %all_daemons ; do
Martin Wintera5efdb62015-10-29 22:15:42 -0700394 if [ -f /var/lock/subsys/${daemon} ]; then
395 eval restart_${daemon}=yes
ajsfc43ecc2005-01-12 16:41:33 +0000396 else
Martin Wintera5efdb62015-10-29 22:15:42 -0700397 eval restart_${daemon}=no
ajsfc43ecc2005-01-12 16:41:33 +0000398 fi
paul15d74e92003-12-30 11:16:21 +0000399 done
ajsfc43ecc2005-01-12 16:41:33 +0000400 # Rename restart flags for daemons handled specially.
401 running_zebra="$restart_zebra"
402 restart_zebra=no
Martin Wintera5efdb62015-10-29 22:15:42 -0700403 %if %{with_watchquagga}
404 running_watchquagga="$restart_watchquagga"
405 restart_watchquagga=no
406 %endif
407
408 %if "%{initsystem}" == "systemd"
409 ##
410 ## Systemd Version
411 ##
412 # No watchquagga for systemd version
413 #
414 # Stop all daemons other than zebra.
415 for daemon in %all_daemons ; do
416 eval restart=\$restart_${daemon}
417 [ "$restart" = yes ] && \
418 %systemd_postun ${daemon}.service
419 done
420 # Restart zebra.
421 [ "$running_zebra" = yes ] && \
422 %systemd_postun_with_restart $daemon.service
423 # Start all daemons other than zebra.
424 for daemon in %all_daemons ; do
425 eval restart=\$restart_${daemon}
426 [ "$restart" = yes ] && \
427 %systemd_post ${daemon}.service
428 done
429 %else
430 ##
431 ## init.d Version
432 ##
433 %if %{with_watchquagga}
434 # Stop watchquagga first.
435 [ "$running_watchquagga" = yes ] && \
436 /etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
437 %endif
438 # Stop all daemons other than zebra and watchquagga.
439 for daemon in %all_daemons ; do
440 eval restart=\$restart_${daemon}
441 [ "$restart" = yes ] && \
442 /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
443 done
444 # Restart zebra.
445 [ "$running_zebra" = yes ] && \
446 /etc/rc.d/init.d/zebra restart >/dev/null 2>&1
447 # Start all daemons other than zebra and watchquagga.
448 for daemon in %all_daemons ; do
449 eval restart=\$restart_${daemon}
450 [ "$restart" = yes ] && \
451 /etc/rc.d/init.d/${daemon} start >/dev/null 2>&1
452 done
453 %if %{with_watchquagga}
454 # Start watchquagga last.
455 # Avoid postun scriptlet error if watchquagga is not running.
456 [ "$running_watchquagga" = yes ] && \
457 /etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
458 %endif
459 %endif
paul788cdc62003-01-18 00:22:08 +0000460fi
paul788cdc62003-01-18 00:22:08 +0000461
462%preun
Martin Wintera5efdb62015-10-29 22:15:42 -0700463%if "%{initsystem}" == "systemd"
464 ##
465 ## Systemd Version
466 ##
467 if [ "$1" = "0" ]; then
468 for daemon in %all_daemons ; do
469 %systemd_preun ${daemon}.service
470 done
471 fi
472%else
473 ##
474 ## init.d Version
475 ##
476 if [ "$1" = "0" ]; then
477 for daemon in %all_daemons ; do
478 /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
479 /sbin/chkconfig --del ${daemon}
480 done
481 fi
482%endif
483/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
paul788cdc62003-01-18 00:22:08 +0000484
485%clean
Martin Wintera5efdb62015-10-29 22:15:42 -0700486%if !0%{?keep_build:1}
487rm -rf %{buildroot}
paulb5f310c2004-09-13 13:15:25 +0000488%endif
paul788cdc62003-01-18 00:22:08 +0000489
490%files
491%defattr(-,root,root)
paul448ed4a2003-03-01 15:43:28 +0000492%doc */*.sample* AUTHORS COPYING
paul6bd8fd32003-08-12 12:54:13 +0000493%doc doc/quagga.html
paul30b9d892003-01-18 22:57:15 +0000494%doc doc/mpls
paul8f754982003-01-20 04:55:51 +0000495%doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
Martin Wintera5efdb62015-10-29 22:15:42 -0700496%if 0%{?quagga_user:1}
paul6bd8fd32003-08-12 12:54:13 +0000497%dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
498%dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga
499%dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
pauledd7c242003-06-04 13:59:38 +0000500%else
paul788cdc62003-01-18 00:22:08 +0000501%dir %attr(750,root,root) %{_sysconfdir}
paul6bd8fd32003-08-12 12:54:13 +0000502%dir %attr(750,root,root) /var/log/quagga
paul6bd8fd32003-08-12 12:54:13 +0000503%dir %attr(750,root,root) /var/run/quagga
pauledd7c242003-06-04 13:59:38 +0000504%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700505%if 0%{?vty_group:1}
paul6bd8fd32003-08-12 12:54:13 +0000506%attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
pauledd7c242003-06-04 13:59:38 +0000507%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700508%{_infodir}/quagga.info.gz
paul788cdc62003-01-18 00:22:08 +0000509%{_mandir}/man*/*
paul54b25dc2004-09-30 04:56:26 +0000510%{_sbindir}/zebra
511%{_sbindir}/ospfd
512%{_sbindir}/ripd
513%{_sbindir}/bgpd
Martin Wintera5efdb62015-10-29 22:15:42 -0700514%if %{with_watchquagga}
515 %{_sbindir}/watchquagga
516%endif
paul54b25dc2004-09-30 04:56:26 +0000517%{_sbindir}/ripngd
518%{_sbindir}/ospf6d
Paul Jakma283d5d72016-02-11 13:54:23 +0000519%if %{with_pimd}
520%{_sbindir}/pimd
paul54b25dc2004-09-30 04:56:26 +0000521%endif
522%if %{with_isisd}
523%{_sbindir}/isisd
524%endif
paul28f79722004-10-29 05:35:43 +0000525%if %{with_shared}
Martin Wintera5efdb62015-10-29 22:15:42 -0700526%attr(755,root,root) %{_libdir}/lib*.so
527%attr(755,root,root) %{_libdir}/lib*.so.*
paul54b25dc2004-09-30 04:56:26 +0000528%endif
529%if %{with_vtysh}
paul788cdc62003-01-18 00:22:08 +0000530%{_bindir}/*
pauld7ccae22003-01-18 00:24:00 +0000531%endif
paul6bd8fd32003-08-12 12:54:13 +0000532%config /etc/quagga/[!v]*
Martin Wintera5efdb62015-10-29 22:15:42 -0700533%if "%{initsystem}" == "systemd"
534 %config %{_unitdir}/*.service
535%else
536 %config /etc/rc.d/init.d/zebra
537 %if %{with_watchquagga}
538 %config /etc/rc.d/init.d/watchquagga
539 %endif
540 %config /etc/rc.d/init.d/ripd
541 %config /etc/rc.d/init.d/ospfd
542 %config /etc/rc.d/init.d/bgpd
543 %config /etc/rc.d/init.d/ripngd
544 %config /etc/rc.d/init.d/ospf6d
545 %if %{with_isisd}
546 %config /etc/rc.d/init.d/isisd
547 %endif
548 %if %{with_pimd}
549 %config /etc/rc.d/init.d/pimd
550 %endif
551%endif
paul15d74e92003-12-30 11:16:21 +0000552%config(noreplace) /etc/sysconfig/quagga
paul6bd8fd32003-08-12 12:54:13 +0000553%config(noreplace) /etc/pam.d/quagga
paul788cdc62003-01-18 00:22:08 +0000554%config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
555
paul448ed4a2003-03-01 15:43:28 +0000556%files contrib
557%defattr(-,root,root)
558%doc tools
559
paule0626852003-03-18 14:11:36 +0000560%files devel
561%defattr(-,root,root)
paulda29c6b2004-10-08 00:49:09 +0000562%if %{with_ospfclient}
563%{_sbindir}/ospfclient
564%endif
paul28f79722004-10-29 05:35:43 +0000565%{_libdir}/*.a
566%{_libdir}/*.la
paulcfc18422004-10-23 00:05:41 +0000567%dir %attr(755,root,root) %{_includedir}/%{name}
paul28f79722004-10-29 05:35:43 +0000568%{_includedir}/%name/*.h
paulcfc18422004-10-23 00:05:41 +0000569%dir %attr(755,root,root) %{_includedir}/%{name}/ospfd
paul28f79722004-10-29 05:35:43 +0000570%{_includedir}/%name/ospfd/*.h
paul54b25dc2004-09-30 04:56:26 +0000571%if %{with_ospfapi}
paulcfc18422004-10-23 00:05:41 +0000572%dir %attr(755,root,root) %{_includedir}/%{name}/ospfapi
paul28f79722004-10-29 05:35:43 +0000573%{_includedir}/%name/ospfapi/*.h
paul68980082003-03-25 05:07:42 +0000574%endif
paule0626852003-03-18 14:11:36 +0000575
paul788cdc62003-01-18 00:22:08 +0000576%changelog
Martin Wintera5efdb62015-10-29 22:15:42 -0700577* Thu Feb 11 2016 Paul Jakma <paul@jakma.org> - %{version}
Paul Jakma283d5d72016-02-11 13:54:23 +0000578- remove with_ipv6 conditionals, always build v6
579- Fix UTF-8 char in spec changelog
580- remove quagga.pam.stack, long deprecated.
581
Martin Wintera5efdb62015-10-29 22:15:42 -0700582* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
583- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
584 --enable-netlink
585- Remove support for old fedora 4/5
586- Fix for package nameing
587- Fix Weekdays of previous changelogs (bogus dates)
588- Add conditional logic to only build tex footnotes with supported texi2html
589- Added pimd to files section and fix double listing of /var/lib*/quagga
590- Numerous fixes to unify upstart/systemd startup into same spec file
591- Only allow use of watchquagga for non-systemd systems. no need with systemd
592
593* Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
Paul Jakmae07068c2015-09-04 14:25:13 +0100594- buildreq updates
595- add a default define for with_pimd
596
Martin Wintera5efdb62015-10-29 22:15:42 -0700597* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
paule7cd37b2005-09-08 15:18:39 +0000598- Steal some changes from Fedora spec file:
599- Add with_rtadv variable
600- Test for groups/users with getent before group/user adding
601- Readline need not be an explicit prerequisite
602- install-info delete should be postun, not preun
603
ajsfc43ecc2005-01-12 16:41:33 +0000604* Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
605- on package upgrade, implement careful, phased restart logic
606- use gcc -rdynamic flag when linking for better backtraces
607
ajsb3324e22004-12-22 17:52:29 +0000608* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajsf3931752004-12-23 00:00:58 +0000609- daemonv6_list should contain only IPv6 daemons
610
611* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajsb3324e22004-12-22 17:52:29 +0000612- watchquagga added
613- on upgrade, all daemons should be condrestart'ed
614- on removal, all daemons should be stopped
615
paul36002ae2004-11-08 17:36:29 +0000616* Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
617- Use makeinfo --html to generate quagga.html
618
paul0df63b52004-11-07 22:12:23 +0000619* Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
620- Fix with_ipv6 set to 0 build
621
paulcfc18422004-10-23 00:05:41 +0000622* Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
623- Update to 0.97.2
624
625* Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
626- Make directories be owned by the packages concerned
627- Update logrotate scripts to use correct path to killall and use pid files
628
paulda29c6b2004-10-08 00:49:09 +0000629* Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
630- Update to 0.97.0
631
paul54b25dc2004-09-30 04:56:26 +0000632* Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
633- build snmp support by default
634- build irdp support
635- build with shared libs
636- devel subpackage for archives and headers
637
paul00bc5602004-01-09 16:30:52 +0000638* Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
639- updated sysconfig files to specify local dir
640- added ospf_dump.c crash quick fix patch
641- added ospfd persistent interface configuration patch
642
paul15d74e92003-12-30 11:16:21 +0000643* Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
644- sync to CVS
645- integrate RH sysconfig patch to specify daemon options (RH)
646- default to have vty listen only to 127.1 (RH)
647- add user with fixed UID/GID (RH)
648- create user with shell /sbin/nologin rather than /bin/false (RH)
649- stop daemons on uninstall (RH)
Martin Wintera5efdb62015-10-29 22:15:42 -0700650- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
paul15d74e92003-12-30 11:16:21 +0000651- isisd added
652- cleanup tasks carried out for every daemon
653
paul406f7002003-11-02 07:30:52 +0000654* Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
655- Fix -devel package to include all files
656- Sync to 0.96.4
657
paul6bd8fd32003-08-12 12:54:13 +0000658* Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
659- Renamed to Quagga
660- Sync to Quagga release 0.96
661
Martin Wintera5efdb62015-10-29 22:15:42 -0700662* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
pauledd7c242003-06-04 13:59:38 +0000663- zebra privileges support
664
Martin Wintera5efdb62015-10-29 22:15:42 -0700665* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
paule0626852003-03-18 14:11:36 +0000666- Fix mem leak in 'show thread cpu'
667- Ralph Keller's OSPF-API
668- Amir: Fix configure.ac for net-snmp
669
paul448ed4a2003-03-01 15:43:28 +0000670* Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
671- ospfd IOS prefix to interface matching for 'network' statement
672- temporary fix for PtP and IPv6
673- sync to zebra.org CVS
674
paul8f754982003-01-20 04:55:51 +0000675* Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
676- update to latest cvs
677- Yon's "show thread cpu" patch - 17217
678- walk up tree - 17218
679- ospfd NSSA fixes - 16681
680- ospfd nsm fixes - 16824
681- ospfd OLSA fixes and new feature - 16823
682- KAME and ifindex fixes - 16525
683- spec file changes to allow redhat files to be in tree
684
pauld7ccae22003-01-18 00:24:00 +0000685* Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
686- Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
687- Fixed up some build requirements (patch)
688- Added conditional build requirements for vtysh / snmp
Martin Wintera5efdb62015-10-29 22:15:42 -0700689- Added conditional to files for _bindir depending on vtysh
pauld7ccae22003-01-18 00:24:00 +0000690
paul788cdc62003-01-18 00:22:08 +0000691* Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
692- update to latest CVS
693- add Greg Troxel's md5 buffer copy/dup fix
694- add RIPv1 fix
695- add Frank's multicast flag fix
696
697* Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
698- update to latest CVS
699- timestamped crypt_seqnum patch
700- oi->on_write_q fix
701
702* Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
703- update to latest CVS
704- add vtysh 'write-config (integrated|daemon)' patch
705- always 'make rebuild' in vtysh/ to catch new commands
706
707* Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
708- update to 0.93b
709
710* Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
711- update to latest CVS
712- add "/sbin/ip route flush proto zebra" to zebra RH init on startup
713
714* Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
715- update to current CVS
716- add OSPF point to multipoint patch
717- add OSPF bugfixes
718- add BGP hash optimisation patch
719
720* Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
721- update to 0.93-pre1 / CVS
722- add link state detection support
723- add generic PtP and RFC3021 support
724- various bug fixes
725
726* Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
727- Fix bug #51336
728
Martin Wintera5efdb62015-10-29 22:15:42 -0700729* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
paul788cdc62003-01-18 00:22:08 +0000730- Use generic initscript strings instead of initscript specific
731 ( "Starting foo: " -> "Starting $prog:" )
732
733* Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
734- Bump the release when rebuilding into the dist.
735
736* Tue Feb 6 2001 Tim Powers <timp@redhat.com>
737- built for Powertools
738
739* Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
740- Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
741- Update to 0.91a
742- Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
743- Should be quite Red Hat'isque now.