blob: c4eeafe1de8260e031f94e74061035cf103ea1da [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 }
Timo Teräs2d78fe72017-02-14 13:07:39 +020024%{!?with_nhrpd: %global with_nhrpd 1 }
Martin Wintera5efdb62015-10-29 22:15:42 -070025%{!?with_shared: %global with_shared 1 }
26%{!?with_multipath: %global with_multipath 64 }
27%{!?quagga_user: %global quagga_user quagga }
28%{!?vty_group: %global vty_group quaggavt }
29%{!?with_fpm: %global with_fpm 0 }
30%{!?with_watchquagga: %global with_watchquagga 1 }
paul30b9d892003-01-18 22:57:15 +000031
32# path defines
paul6bd8fd32003-08-12 12:54:13 +000033%define _sysconfdir /etc/quagga
Martin Wintera5efdb62015-10-29 22:15:42 -070034%define zeb_src %{_builddir}/%{name}-%{quaggaversion}
paul8f754982003-01-20 04:55:51 +000035%define zeb_rh_src %{zeb_src}/redhat
36%define zeb_docs %{zeb_src}/doc
paul788cdc62003-01-18 00:22:08 +000037
paule0626852003-03-18 14:11:36 +000038# defines for configure
paul6bd8fd32003-08-12 12:54:13 +000039%define _localstatedir /var/run/quagga
paul11890752005-11-05 16:29:54 +000040############################################################################
41
Martin Wintera5efdb62015-10-29 22:15:42 -070042#### Version String tweak
43# Remove invalid characters form version string and replace with _
44%{expand: %%define rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
45%define quaggaversion @VERSION@
paul11890752005-11-05 16:29:54 +000046
Martin Wintera5efdb62015-10-29 22:15:42 -070047#### Check version of texi2html
48# Old versions don't support "--number-footnotes" option.
49%{expand: %%global texi2htmlversion %(rpm -q --qf '%%{VERSION}' texi2html | cut -d. -f1 )}
paul11890752005-11-05 16:29:54 +000050
Martin Wintera5efdb62015-10-29 22:15:42 -070051#### Check for systemd or init.d (upstart)
52# Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
53%{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
54#
55# If init system is systemd, then always disable watchquagga
56#
57%if "%{initsystem}" == "systemd"
58 # Note: For systems with systemd, watchquagga will NOT be built. Systemd
59 # takes over the role of restarting crashed processes. Value will
60 # be overwritten with 0 below for systemd independent on the setting here
61 %global with_watchquagga 0
62%endif
paul11890752005-11-05 16:29:54 +000063
Martin Wintera5efdb62015-10-29 22:15:42 -070064# if FPM is enabled, then enable tcp_zebra as well
65#
66%if %{with_fpm}
67 %global with_tcp_zebra 1
68%endif
paule0626852003-03-18 14:11:36 +000069
paul15d74e92003-12-30 11:16:21 +000070# misc internal defines
paulb64d92a2005-04-25 15:13:42 +000071%{!?quagga_uid: %define quagga_uid 92 }
72%{!?quagga_gid: %define quagga_gid 92 }
Martin Wintera5efdb62015-10-29 22:15:42 -070073%{!?vty_gid: %define vty_gid 85 }
74
paul54b25dc2004-09-30 04:56:26 +000075%define daemon_list zebra ripd ospfd bgpd
paul0df63b52004-11-07 22:12:23 +000076
David Lamparter5460bae2015-05-19 00:35:04 +020077%define daemonv6_list ripngd ospf6d
paul0df63b52004-11-07 22:12:23 +000078
paul54b25dc2004-09-30 04:56:26 +000079%if %{with_isisd}
Martin Wintera5efdb62015-10-29 22:15:42 -070080%define daemon_isisd isisd
paul69f5d262004-10-07 16:23:36 +000081%else
Martin Wintera5efdb62015-10-29 22:15:42 -070082%define daemon_isisd ""
paul15d74e92003-12-30 11:16:21 +000083%endif
84
Martin Wintera5efdb62015-10-29 22:15:42 -070085%if %{with_pimd}
86%define daemon_pimd pimd
87%else
88%define daemon_pimd ""
89%endif
90
Timo Teräs2d78fe72017-02-14 13:07:39 +020091%if %{with_nhrpd}
92%define daemon_nhrpd nhrpd
93%else
94%define daemon_nhrpd ""
95%endif
96
Martin Wintera5efdb62015-10-29 22:15:42 -070097%if %{with_watchquagga}
98%define daemon_watchquagga watchquagga
99%else
100%define daemon_watchquagga ""
101%endif
102
Timo Teräs2d78fe72017-02-14 13:07:39 +0200103%define all_daemons %{daemon_list} %{daemonv6_list} %{daemon_isisd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_watchquagga}
ajsb3324e22004-12-22 17:52:29 +0000104
paulb5f310c2004-09-13 13:15:25 +0000105# allow build dir to be kept
Martin Wintera5efdb62015-10-29 22:15:42 -0700106%{!?keep_build: %global keep_build 0 }
paulb5f310c2004-09-13 13:15:25 +0000107
paul4859e202005-11-20 02:09:32 +0000108#release sub-revision (the two digits after the CONFDATE)
109%{!?release_rev: %define release_rev 01 }
110
paul788cdc62003-01-18 00:22:08 +0000111Summary: Routing daemon
Martin Wintera5efdb62015-10-29 22:15:42 -0700112Name: quagga
113Version: %{rpmversion}
114Release: @CONFDATE@%{release_rev}%{?dist}
115License: GPLv2+
116Group: System Environment/Daemons
117Source0: http://download.savannah.gnu.org/releases/quagga/%{name}-%{quaggaversion}.tar.gz
118URL: http://www.quagga.net
119Requires: ncurses
120Requires(pre): /sbin/install-info
121Requires(preun): /sbin/install-info
122Requires(post): /sbin/install-info
123BuildRequires: texi2html texinfo autoconf patch libcap-devel groff
paul54b25dc2004-09-30 04:56:26 +0000124%if %{with_snmp}
paulb63cef72004-08-19 03:36:13 +0000125BuildRequires: net-snmp-devel
Martin Wintera5efdb62015-10-29 22:15:42 -0700126Requires: net-snmp
paul788cdc62003-01-18 00:22:08 +0000127%endif
paul54b25dc2004-09-30 04:56:26 +0000128%if %{with_vtysh}
paul30b9d892003-01-18 22:57:15 +0000129BuildRequires: readline readline-devel ncurses ncurses-devel
Martin Wintera5efdb62015-10-29 22:15:42 -0700130Requires: ncurses
pauld7ccae22003-01-18 00:24:00 +0000131%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700132%if %{with_pam}
133BuildRequires: pam-devel
134Requires: pam
135%endif
136%if "%{initsystem}" == "systemd"
137BuildRequires: systemd
138Requires(post): systemd
139Requires(preun): systemd
140Requires(postun): systemd
141%else
paul788cdc62003-01-18 00:22:08 +0000142# Initscripts > 5.60 is required for IPv6 support
Matti-Oskari Leppänenfa755852013-02-15 10:12:55 +0000143Requires(pre): initscripts >= 5.60
Martin Wintera5efdb62015-10-29 22:15:42 -0700144%endif
145Provides: routingdaemon = %{version}-%{release}
146BuildRoot: %{_tmppath}/%{name}-%{version}-root
147Obsoletes: bird gated mrt zebra quagga-sysvinit
paul788cdc62003-01-18 00:22:08 +0000148
149%description
paul6bd8fd32003-08-12 12:54:13 +0000150Quagga is a free software that manages TCP/IP based routing
paul788cdc62003-01-18 00:22:08 +0000151protocol. It takes multi-server and multi-thread approach to resolve
152the current complexity of the Internet.
153
Timo Teräs2d78fe72017-02-14 13:07:39 +0200154Quagga supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM and NHRP.
paul788cdc62003-01-18 00:22:08 +0000155
paul6bd8fd32003-08-12 12:54:13 +0000156Quagga is intended to be used as a Route Server and a Route Reflector. It is
157not a toolkit, it provides full routing power under a new architecture.
158Quagga by design has a process for each protocol.
159
160Quagga is a fork of GNU Zebra.
paul788cdc62003-01-18 00:22:08 +0000161
paul448ed4a2003-03-01 15:43:28 +0000162%package contrib
paul6bd8fd32003-08-12 12:54:13 +0000163Summary: contrib tools for quagga
paul448ed4a2003-03-01 15:43:28 +0000164Group: System Environment/Daemons
165
166%description contrib
paul6bd8fd32003-08-12 12:54:13 +0000167Contributed/3rd party tools which may be of use with quagga.
paul448ed4a2003-03-01 15:43:28 +0000168
paule0626852003-03-18 14:11:36 +0000169%package devel
paul6bd8fd32003-08-12 12:54:13 +0000170Summary: Header and object files for quagga development
paule0626852003-03-18 14:11:36 +0000171Group: System Environment/Daemons
Martin Wintera5efdb62015-10-29 22:15:42 -0700172Requires: %{name} = %{version}-%{release}
paule0626852003-03-18 14:11:36 +0000173
174%description devel
paul6bd8fd32003-08-12 12:54:13 +0000175The quagga-devel package contains the header and object files neccessary for
176developing OSPF-API and quagga applications.
paule0626852003-03-18 14:11:36 +0000177
paul788cdc62003-01-18 00:22:08 +0000178%prep
Martin Wintera5efdb62015-10-29 22:15:42 -0700179%setup -q -n quagga-%{quaggaversion}
paul788cdc62003-01-18 00:22:08 +0000180
181%build
ajs7966b972004-11-10 22:02:05 +0000182
183# For standard gcc verbosity, uncomment these lines:
184#CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
185#CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
186
187# For ultra gcc verbosity, uncomment these lines also:
188#CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
189#CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
190#CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
191#CFLAGS="${CFLAGS} -Wpacked -Wpadded"
192
paul788cdc62003-01-18 00:22:08 +0000193%configure \
Martin Wintera5efdb62015-10-29 22:15:42 -0700194 --sysconfdir=%{_sysconfdir} \
195 --libdir=%{_libdir} \
196 --libexecdir=%{_libexecdir} \
197 --localstatedir=%{_localstatedir} \
198 --disable-werror \
paul54b25dc2004-09-30 04:56:26 +0000199%if !%{with_shared}
200 --disable-shared \
201%endif
paul54b25dc2004-09-30 04:56:26 +0000202%if %{with_snmp}
paul788cdc62003-01-18 00:22:08 +0000203 --enable-snmp \
204%endif
paul54b25dc2004-09-30 04:56:26 +0000205%if %{with_multipath}
206 --enable-multipath=%{with_multipath} \
paul788cdc62003-01-18 00:22:08 +0000207%endif
paul54b25dc2004-09-30 04:56:26 +0000208%if %{with_tcp_zebra}
paul788cdc62003-01-18 00:22:08 +0000209 --enable-tcp-zebra \
210%endif
paul54b25dc2004-09-30 04:56:26 +0000211%if %{with_vtysh}
paul788cdc62003-01-18 00:22:08 +0000212 --enable-vtysh \
213%endif
paul54b25dc2004-09-30 04:56:26 +0000214%if %{with_ospfclient}
paul68980082003-03-25 05:07:42 +0000215 --enable-ospfclient=yes \
216%else
217 --enable-ospfclient=no\
218%endif
paul54b25dc2004-09-30 04:56:26 +0000219%if %{with_ospfapi}
paul68980082003-03-25 05:07:42 +0000220 --enable-ospfapi=yes \
221%else
222 --enable-ospfapi=no \
223%endif
paul54b25dc2004-09-30 04:56:26 +0000224%if %{with_irdp}
paul5b819262004-07-28 14:11:55 +0000225 --enable-irdp=yes \
226%else
227 --enable-irdp=no \
228%endif
paule7cd37b2005-09-08 15:18:39 +0000229%if %{with_rtadv}
230 --enable-rtadv=yes \
231%else
232 --enable-rtadv=no \
233%endif
paul54b25dc2004-09-30 04:56:26 +0000234%if %{with_isisd}
235 --enable-isisd \
236%else
paul69f5d262004-10-07 16:23:36 +0000237 --disable-isisd \
paul54b25dc2004-09-30 04:56:26 +0000238%endif
Timo Teräs2d78fe72017-02-14 13:07:39 +0200239%if %{with_nhrpd}
240 --enable-nhrpd \
241%else
242 --disable-nhrpd \
243%endif
paul54b25dc2004-09-30 04:56:26 +0000244%if %{with_pam}
pauledd7c242003-06-04 13:59:38 +0000245 --with-libpam \
paul788cdc62003-01-18 00:22:08 +0000246%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700247%if 0%{?quagga_user:1}
paul6bd8fd32003-08-12 12:54:13 +0000248 --enable-user=%quagga_user \
249 --enable-group=%quagga_user \
pauledd7c242003-06-04 13:59:38 +0000250%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700251%if 0%{?vty_group:1}
pauledd7c242003-06-04 13:59:38 +0000252 --enable-vty-group=%vty_group \
253%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700254%if %{with_fpm}
255 --enable-fpm \
256%else
257 --disable-fpm \
258%endif
259%if %{with_watchquagga}
260 --enable-watchquagga \
261%else
262 --disable-watchquagga \
263%endif
264 --enable-gcc-rdynamic
paul788cdc62003-01-18 00:22:08 +0000265
266make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
267
268pushd doc
Martin Wintera5efdb62015-10-29 22:15:42 -0700269%if %{texi2htmlversion} < 5
270texi2html --number-sections quagga.texi
271%else
Paul Jakmae07068c2015-09-04 14:25:13 +0100272texi2html --number-footnotes --number-sections quagga.texi
Martin Wintera5efdb62015-10-29 22:15:42 -0700273%endif
paul788cdc62003-01-18 00:22:08 +0000274popd
275
276%install
Martin Wintera5efdb62015-10-29 22:15:42 -0700277mkdir -p %{buildroot}/etc/{quagga,sysconfig,logrotate.d,pam.d} \
278 %{buildroot}/var/log/quagga %{buildroot}%{_infodir}
279make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
paul788cdc62003-01-18 00:22:08 +0000280
paul9a344b72003-08-05 23:24:58 +0000281# Remove this file, as it is uninstalled and causes errors when building on RH9
Martin Wintera5efdb62015-10-29 22:15:42 -0700282rm -rf %{buildroot}/usr/share/info/dir
paul9a344b72003-08-05 23:24:58 +0000283
Martin Wintera5efdb62015-10-29 22:15:42 -0700284# install /etc sources
285%if "%{initsystem}" == "systemd"
286mkdir -p %{buildroot}%{_unitdir}
287for daemon in %{all_daemons} ; do
288 if [ x"${daemon}" != x"" ] ; then
289 install %{zeb_rh_src}/${daemon}.service \
290 %{buildroot}%{_unitdir}/${daemon}.service
291 fi
292done
293%else
294mkdir -p %{buildroot}/etc/rc.d/init.d
ajsb3324e22004-12-22 17:52:29 +0000295for daemon in %{all_daemons} ; do
paulda29c6b2004-10-08 00:49:09 +0000296 if [ x"${daemon}" != x"" ] ; then
297 install %{zeb_rh_src}/${daemon}.init \
Martin Wintera5efdb62015-10-29 22:15:42 -0700298 %{buildroot}/etc/rc.d/init.d/${daemon}
paulda29c6b2004-10-08 00:49:09 +0000299 fi
paul15d74e92003-12-30 11:16:21 +0000300done
Martin Wintera5efdb62015-10-29 22:15:42 -0700301%endif
302
Paul Jakma283d5d72016-02-11 13:54:23 +0000303install -m644 %{zeb_rh_src}/quagga.pam \
Martin Wintera5efdb62015-10-29 22:15:42 -0700304 %{buildroot}/etc/pam.d/quagga
paul15d74e92003-12-30 11:16:21 +0000305install -m644 %{zeb_rh_src}/quagga.logrotate \
Martin Wintera5efdb62015-10-29 22:15:42 -0700306 %{buildroot}/etc/logrotate.d/quagga
paul15d74e92003-12-30 11:16:21 +0000307install -m644 %{zeb_rh_src}/quagga.sysconfig \
Martin Wintera5efdb62015-10-29 22:15:42 -0700308 %{buildroot}/etc/sysconfig/quagga
309install -d -m750 %{buildroot}/var/run/quagga
pauledd7c242003-06-04 13:59:38 +0000310
311%pre
312# add vty_group
Martin Wintera5efdb62015-10-29 22:15:42 -0700313%if 0%{?vty_group:1}
paule7cd37b2005-09-08 15:18:39 +0000314if getent group %vty_group > /dev/null ; then : ; else \
Martin Wintera5efdb62015-10-29 22:15:42 -0700315 /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
pauledd7c242003-06-04 13:59:38 +0000316%endif
paule7cd37b2005-09-08 15:18:39 +0000317
paul6bd8fd32003-08-12 12:54:13 +0000318# add quagga user and group
Martin Wintera5efdb62015-10-29 22:15:42 -0700319%if 0%{?quagga_user:1}
paule7cd37b2005-09-08 15:18:39 +0000320# Ensure that quagga_gid gets correctly allocated
321if getent group %quagga_user >/dev/null; then : ; else \
322 /usr/sbin/groupadd -g %quagga_gid %quagga_user > /dev/null || : ; \
323fi
324if getent passwd %quagga_user >/dev/null ; then : ; else \
Timo Schöler2e0fb0e2017-02-23 13:16:42 +0000325 /usr/sbin/useradd -u %quagga_uid -g %quagga_gid -G %vty_group \
paule7cd37b2005-09-08 15:18:39 +0000326 -M -r -s /sbin/nologin -c "Quagga routing suite" \
327 -d %_localstatedir %quagga_user 2> /dev/null || : ; \
328fi
pauledd7c242003-06-04 13:59:38 +0000329%endif
paul788cdc62003-01-18 00:22:08 +0000330
paul788cdc62003-01-18 00:22:08 +0000331%post
paul30b9d892003-01-18 22:57:15 +0000332# zebra_spec_add_service <service name> <port/proto> <comment>
paul788cdc62003-01-18 00:22:08 +0000333# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
334
335zebra_spec_add_service ()
336{
337 # Add port /etc/services entry if it isn't already there
paul6b637e92004-10-23 00:48:51 +0000338 if [ -f /etc/services ] && \
339 ! %__sed -e 's/#.*$//' /etc/services | %__grep -wq $1 ; then
paul788cdc62003-01-18 00:22:08 +0000340 echo "$1 $2 # $3" >> /etc/services
341 fi
342}
343
344zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
345zebra_spec_add_service zebra 2601/tcp "zebra vty"
346zebra_spec_add_service ripd 2602/tcp "RIPd vty"
347zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
348zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
349zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
350zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
paul54b25dc2004-09-30 04:56:26 +0000351%if %{with_ospfapi}
paul7021c422003-07-15 12:52:22 +0000352zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
353%endif
paul54b25dc2004-09-30 04:56:26 +0000354%if %{with_isisd}
jardin5a514b12003-12-23 10:50:21 +0000355zebra_spec_add_service isisd 2608/tcp "ISISd vty"
paul54b25dc2004-09-30 04:56:26 +0000356%endif
Everton Marques871dbcf2009-08-11 15:43:05 -0300357%if %{with_pimd}
358zebra_spec_add_service pimd 2611/tcp "PIMd vty"
359%endif
Timo Teräs2d78fe72017-02-14 13:07:39 +0200360%if %{with_nhrpd}
361zebra_spec_add_service nhrpd 2612/tcp "NHRPd vty"
362%endif
paul788cdc62003-01-18 00:22:08 +0000363
Martin Wintera5efdb62015-10-29 22:15:42 -0700364%if "%{initsystem}" == "systemd"
365for daemon in %all_daemons ; do
366 %systemd_post ${daemon}.service
367done
368%else
369for daemon in %all_daemons ; do
paul15d74e92003-12-30 11:16:21 +0000370 /sbin/chkconfig --add ${daemon}
371done
Martin Wintera5efdb62015-10-29 22:15:42 -0700372%endif
paul788cdc62003-01-18 00:22:08 +0000373
paul6bd8fd32003-08-12 12:54:13 +0000374/sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
paul788cdc62003-01-18 00:22:08 +0000375
376# Create dummy files if they don't exist so basic functions can be used.
377if [ ! -e %{_sysconfdir}/zebra.conf ]; then
378 echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
Martin Wintera5efdb62015-10-29 22:15:42 -0700379%if 0%{?quagga_user:1}
380 chown %quagga_user:%quagga_user %{_sysconfdir}/zebra.conf*
paule7cd37b2005-09-08 15:18:39 +0000381%endif
paul788cdc62003-01-18 00:22:08 +0000382 chmod 640 %{_sysconfdir}/zebra.conf
383fi
Martin Wintera5efdb62015-10-29 22:15:42 -0700384for daemon in %{all_daemons} ; do
385 if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
386 touch %{_sysconfdir}/${daemon}.conf
387 %if 0%{?quagga_user:1}
388 chown %quagga_user:%quagga_user %{_sysconfdir}/${daemon}.conf*
389 %endif
390 fi
391done
392%if %{with_watchquagga}
393 # No config for watchquagga - this is part of /etc/sysconfig/quagga
394 rm -f %{_sysconfdir}/watchquagga.*
395%endif
396
paul788cdc62003-01-18 00:22:08 +0000397if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
398 touch %{_sysconfdir}/vtysh.conf
399 chmod 640 %{_sysconfdir}/vtysh.conf
Martin Wintera5efdb62015-10-29 22:15:42 -0700400%if 0%{?vty_group:1}
401 chown quagga:%{vty_group} %{_sysconfdir}/vtysh.conf*
402%endif
paul788cdc62003-01-18 00:22:08 +0000403fi
404
405%postun
ajsfc43ecc2005-01-12 16:41:33 +0000406if [ "$1" -ge 1 ]; then
407 # Find out which daemons need to be restarted.
ajsb3324e22004-12-22 17:52:29 +0000408 for daemon in %all_daemons ; do
Martin Wintera5efdb62015-10-29 22:15:42 -0700409 if [ -f /var/lock/subsys/${daemon} ]; then
410 eval restart_${daemon}=yes
ajsfc43ecc2005-01-12 16:41:33 +0000411 else
Martin Wintera5efdb62015-10-29 22:15:42 -0700412 eval restart_${daemon}=no
ajsfc43ecc2005-01-12 16:41:33 +0000413 fi
paul15d74e92003-12-30 11:16:21 +0000414 done
ajsfc43ecc2005-01-12 16:41:33 +0000415 # Rename restart flags for daemons handled specially.
416 running_zebra="$restart_zebra"
417 restart_zebra=no
Martin Wintera5efdb62015-10-29 22:15:42 -0700418 %if %{with_watchquagga}
419 running_watchquagga="$restart_watchquagga"
420 restart_watchquagga=no
421 %endif
422
423 %if "%{initsystem}" == "systemd"
424 ##
425 ## Systemd Version
426 ##
427 # No watchquagga for systemd version
428 #
429 # Stop all daemons other than zebra.
430 for daemon in %all_daemons ; do
431 eval restart=\$restart_${daemon}
432 [ "$restart" = yes ] && \
433 %systemd_postun ${daemon}.service
434 done
435 # Restart zebra.
436 [ "$running_zebra" = yes ] && \
437 %systemd_postun_with_restart $daemon.service
438 # Start all daemons other than zebra.
439 for daemon in %all_daemons ; do
440 eval restart=\$restart_${daemon}
441 [ "$restart" = yes ] && \
442 %systemd_post ${daemon}.service
443 done
444 %else
445 ##
446 ## init.d Version
447 ##
448 %if %{with_watchquagga}
449 # Stop watchquagga first.
450 [ "$running_watchquagga" = yes ] && \
451 /etc/rc.d/init.d/watchquagga stop >/dev/null 2>&1
452 %endif
453 # Stop all daemons other than zebra and watchquagga.
454 for daemon in %all_daemons ; do
455 eval restart=\$restart_${daemon}
456 [ "$restart" = yes ] && \
457 /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
458 done
459 # Restart zebra.
460 [ "$running_zebra" = yes ] && \
461 /etc/rc.d/init.d/zebra restart >/dev/null 2>&1
462 # Start all daemons other than zebra and watchquagga.
463 for daemon in %all_daemons ; do
464 eval restart=\$restart_${daemon}
465 [ "$restart" = yes ] && \
466 /etc/rc.d/init.d/${daemon} start >/dev/null 2>&1
467 done
468 %if %{with_watchquagga}
469 # Start watchquagga last.
470 # Avoid postun scriptlet error if watchquagga is not running.
471 [ "$running_watchquagga" = yes ] && \
472 /etc/rc.d/init.d/watchquagga start >/dev/null 2>&1 || :
473 %endif
474 %endif
paul788cdc62003-01-18 00:22:08 +0000475fi
paul788cdc62003-01-18 00:22:08 +0000476
477%preun
Martin Wintera5efdb62015-10-29 22:15:42 -0700478%if "%{initsystem}" == "systemd"
479 ##
480 ## Systemd Version
481 ##
482 if [ "$1" = "0" ]; then
483 for daemon in %all_daemons ; do
484 %systemd_preun ${daemon}.service
485 done
486 fi
487%else
488 ##
489 ## init.d Version
490 ##
491 if [ "$1" = "0" ]; then
492 for daemon in %all_daemons ; do
493 /etc/rc.d/init.d/${daemon} stop >/dev/null 2>&1
494 /sbin/chkconfig --del ${daemon}
495 done
496 fi
497%endif
498/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
paul788cdc62003-01-18 00:22:08 +0000499
500%clean
Martin Wintera5efdb62015-10-29 22:15:42 -0700501%if !0%{?keep_build:1}
502rm -rf %{buildroot}
paulb5f310c2004-09-13 13:15:25 +0000503%endif
paul788cdc62003-01-18 00:22:08 +0000504
505%files
506%defattr(-,root,root)
paul448ed4a2003-03-01 15:43:28 +0000507%doc */*.sample* AUTHORS COPYING
paul6bd8fd32003-08-12 12:54:13 +0000508%doc doc/quagga.html
paul30b9d892003-01-18 22:57:15 +0000509%doc doc/mpls
paul8f754982003-01-20 04:55:51 +0000510%doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
Martin Wintera5efdb62015-10-29 22:15:42 -0700511%if 0%{?quagga_user:1}
paul6bd8fd32003-08-12 12:54:13 +0000512%dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
513%dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga
514%dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
pauledd7c242003-06-04 13:59:38 +0000515%else
paul788cdc62003-01-18 00:22:08 +0000516%dir %attr(750,root,root) %{_sysconfdir}
paul6bd8fd32003-08-12 12:54:13 +0000517%dir %attr(750,root,root) /var/log/quagga
paul6bd8fd32003-08-12 12:54:13 +0000518%dir %attr(750,root,root) /var/run/quagga
pauledd7c242003-06-04 13:59:38 +0000519%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700520%if 0%{?vty_group:1}
paul6bd8fd32003-08-12 12:54:13 +0000521%attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
pauledd7c242003-06-04 13:59:38 +0000522%endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700523%{_infodir}/quagga.info.gz
paul788cdc62003-01-18 00:22:08 +0000524%{_mandir}/man*/*
paul54b25dc2004-09-30 04:56:26 +0000525%{_sbindir}/zebra
526%{_sbindir}/ospfd
527%{_sbindir}/ripd
528%{_sbindir}/bgpd
Martin Wintera5efdb62015-10-29 22:15:42 -0700529%if %{with_watchquagga}
530 %{_sbindir}/watchquagga
531%endif
paul54b25dc2004-09-30 04:56:26 +0000532%{_sbindir}/ripngd
533%{_sbindir}/ospf6d
Paul Jakma283d5d72016-02-11 13:54:23 +0000534%if %{with_pimd}
535%{_sbindir}/pimd
paul54b25dc2004-09-30 04:56:26 +0000536%endif
537%if %{with_isisd}
538%{_sbindir}/isisd
539%endif
Timo Teräs2d78fe72017-02-14 13:07:39 +0200540%if %{with_nhrpd}
541%{_sbindir}/nhrpd
542%endif
paul28f79722004-10-29 05:35:43 +0000543%if %{with_shared}
Martin Wintera5efdb62015-10-29 22:15:42 -0700544%attr(755,root,root) %{_libdir}/lib*.so
545%attr(755,root,root) %{_libdir}/lib*.so.*
paul54b25dc2004-09-30 04:56:26 +0000546%endif
547%if %{with_vtysh}
paul788cdc62003-01-18 00:22:08 +0000548%{_bindir}/*
pauld7ccae22003-01-18 00:24:00 +0000549%endif
paul6bd8fd32003-08-12 12:54:13 +0000550%config /etc/quagga/[!v]*
Martin Wintera5efdb62015-10-29 22:15:42 -0700551%if "%{initsystem}" == "systemd"
552 %config %{_unitdir}/*.service
553%else
554 %config /etc/rc.d/init.d/zebra
555 %if %{with_watchquagga}
556 %config /etc/rc.d/init.d/watchquagga
557 %endif
558 %config /etc/rc.d/init.d/ripd
559 %config /etc/rc.d/init.d/ospfd
560 %config /etc/rc.d/init.d/bgpd
561 %config /etc/rc.d/init.d/ripngd
562 %config /etc/rc.d/init.d/ospf6d
563 %if %{with_isisd}
564 %config /etc/rc.d/init.d/isisd
565 %endif
566 %if %{with_pimd}
567 %config /etc/rc.d/init.d/pimd
568 %endif
Timo Teräs2d78fe72017-02-14 13:07:39 +0200569 %if %{with_nhrpd}
570 %config /etc/rc.d/init.d/nhrpd
571 %endif
Martin Wintera5efdb62015-10-29 22:15:42 -0700572%endif
paul15d74e92003-12-30 11:16:21 +0000573%config(noreplace) /etc/sysconfig/quagga
paul6bd8fd32003-08-12 12:54:13 +0000574%config(noreplace) /etc/pam.d/quagga
paul788cdc62003-01-18 00:22:08 +0000575%config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
576
paul448ed4a2003-03-01 15:43:28 +0000577%files contrib
578%defattr(-,root,root)
579%doc tools
580
paule0626852003-03-18 14:11:36 +0000581%files devel
582%defattr(-,root,root)
paulda29c6b2004-10-08 00:49:09 +0000583%if %{with_ospfclient}
584%{_sbindir}/ospfclient
585%endif
paul28f79722004-10-29 05:35:43 +0000586%{_libdir}/*.a
587%{_libdir}/*.la
paulcfc18422004-10-23 00:05:41 +0000588%dir %attr(755,root,root) %{_includedir}/%{name}
paul28f79722004-10-29 05:35:43 +0000589%{_includedir}/%name/*.h
paulcfc18422004-10-23 00:05:41 +0000590%dir %attr(755,root,root) %{_includedir}/%{name}/ospfd
paul28f79722004-10-29 05:35:43 +0000591%{_includedir}/%name/ospfd/*.h
paul54b25dc2004-09-30 04:56:26 +0000592%if %{with_ospfapi}
paulcfc18422004-10-23 00:05:41 +0000593%dir %attr(755,root,root) %{_includedir}/%{name}/ospfapi
paul28f79722004-10-29 05:35:43 +0000594%{_includedir}/%name/ospfapi/*.h
paul68980082003-03-25 05:07:42 +0000595%endif
paule0626852003-03-18 14:11:36 +0000596
paul788cdc62003-01-18 00:22:08 +0000597%changelog
Timo Teräs2d78fe72017-02-14 13:07:39 +0200598* Tue Feb 14 2017 Timo Teräs <timo.teras@iki.fi> - %{version}
599- add nhrpd
600
601* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
Paul Jakma283d5d72016-02-11 13:54:23 +0000602- remove with_ipv6 conditionals, always build v6
603- Fix UTF-8 char in spec changelog
604- remove quagga.pam.stack, long deprecated.
605
Martin Wintera5efdb62015-10-29 22:15:42 -0700606* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
607- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
608 --enable-netlink
609- Remove support for old fedora 4/5
610- Fix for package nameing
611- Fix Weekdays of previous changelogs (bogus dates)
612- Add conditional logic to only build tex footnotes with supported texi2html
613- Added pimd to files section and fix double listing of /var/lib*/quagga
614- Numerous fixes to unify upstart/systemd startup into same spec file
615- Only allow use of watchquagga for non-systemd systems. no need with systemd
616
617* Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
Paul Jakmae07068c2015-09-04 14:25:13 +0100618- buildreq updates
619- add a default define for with_pimd
620
Martin Wintera5efdb62015-10-29 22:15:42 -0700621* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
paule7cd37b2005-09-08 15:18:39 +0000622- Steal some changes from Fedora spec file:
623- Add with_rtadv variable
624- Test for groups/users with getent before group/user adding
625- Readline need not be an explicit prerequisite
626- install-info delete should be postun, not preun
627
ajsfc43ecc2005-01-12 16:41:33 +0000628* Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
629- on package upgrade, implement careful, phased restart logic
630- use gcc -rdynamic flag when linking for better backtraces
631
ajsb3324e22004-12-22 17:52:29 +0000632* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajsf3931752004-12-23 00:00:58 +0000633- daemonv6_list should contain only IPv6 daemons
634
635* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajsb3324e22004-12-22 17:52:29 +0000636- watchquagga added
637- on upgrade, all daemons should be condrestart'ed
638- on removal, all daemons should be stopped
639
paul36002ae2004-11-08 17:36:29 +0000640* Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
641- Use makeinfo --html to generate quagga.html
642
paul0df63b52004-11-07 22:12:23 +0000643* Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
644- Fix with_ipv6 set to 0 build
645
paulcfc18422004-10-23 00:05:41 +0000646* Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
647- Update to 0.97.2
648
649* Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
650- Make directories be owned by the packages concerned
651- Update logrotate scripts to use correct path to killall and use pid files
652
paulda29c6b2004-10-08 00:49:09 +0000653* Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
654- Update to 0.97.0
655
paul54b25dc2004-09-30 04:56:26 +0000656* Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
657- build snmp support by default
658- build irdp support
659- build with shared libs
660- devel subpackage for archives and headers
661
paul00bc5602004-01-09 16:30:52 +0000662* Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
663- updated sysconfig files to specify local dir
664- added ospf_dump.c crash quick fix patch
665- added ospfd persistent interface configuration patch
666
paul15d74e92003-12-30 11:16:21 +0000667* Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
668- sync to CVS
669- integrate RH sysconfig patch to specify daemon options (RH)
670- default to have vty listen only to 127.1 (RH)
671- add user with fixed UID/GID (RH)
672- create user with shell /sbin/nologin rather than /bin/false (RH)
673- stop daemons on uninstall (RH)
Martin Wintera5efdb62015-10-29 22:15:42 -0700674- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
paul15d74e92003-12-30 11:16:21 +0000675- isisd added
676- cleanup tasks carried out for every daemon
677
paul406f7002003-11-02 07:30:52 +0000678* Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
679- Fix -devel package to include all files
680- Sync to 0.96.4
681
paul6bd8fd32003-08-12 12:54:13 +0000682* Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
683- Renamed to Quagga
684- Sync to Quagga release 0.96
685
Martin Wintera5efdb62015-10-29 22:15:42 -0700686* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
pauledd7c242003-06-04 13:59:38 +0000687- zebra privileges support
688
Martin Wintera5efdb62015-10-29 22:15:42 -0700689* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
paule0626852003-03-18 14:11:36 +0000690- Fix mem leak in 'show thread cpu'
691- Ralph Keller's OSPF-API
692- Amir: Fix configure.ac for net-snmp
693
paul448ed4a2003-03-01 15:43:28 +0000694* Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
695- ospfd IOS prefix to interface matching for 'network' statement
696- temporary fix for PtP and IPv6
697- sync to zebra.org CVS
698
paul8f754982003-01-20 04:55:51 +0000699* Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
700- update to latest cvs
701- Yon's "show thread cpu" patch - 17217
702- walk up tree - 17218
703- ospfd NSSA fixes - 16681
704- ospfd nsm fixes - 16824
705- ospfd OLSA fixes and new feature - 16823
706- KAME and ifindex fixes - 16525
707- spec file changes to allow redhat files to be in tree
708
pauld7ccae22003-01-18 00:24:00 +0000709* Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
710- Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
711- Fixed up some build requirements (patch)
712- Added conditional build requirements for vtysh / snmp
Martin Wintera5efdb62015-10-29 22:15:42 -0700713- Added conditional to files for _bindir depending on vtysh
pauld7ccae22003-01-18 00:24:00 +0000714
paul788cdc62003-01-18 00:22:08 +0000715* Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
716- update to latest CVS
717- add Greg Troxel's md5 buffer copy/dup fix
718- add RIPv1 fix
719- add Frank's multicast flag fix
720
721* Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
722- update to latest CVS
723- timestamped crypt_seqnum patch
724- oi->on_write_q fix
725
726* Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
727- update to latest CVS
728- add vtysh 'write-config (integrated|daemon)' patch
729- always 'make rebuild' in vtysh/ to catch new commands
730
731* Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
732- update to 0.93b
733
734* Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
735- update to latest CVS
736- add "/sbin/ip route flush proto zebra" to zebra RH init on startup
737
738* Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
739- update to current CVS
740- add OSPF point to multipoint patch
741- add OSPF bugfixes
742- add BGP hash optimisation patch
743
744* Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
745- update to 0.93-pre1 / CVS
746- add link state detection support
747- add generic PtP and RFC3021 support
748- various bug fixes
749
750* Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
751- Fix bug #51336
752
Martin Wintera5efdb62015-10-29 22:15:42 -0700753* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
paul788cdc62003-01-18 00:22:08 +0000754- Use generic initscript strings instead of initscript specific
755 ( "Starting foo: " -> "Starting $prog:" )
756
757* Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
758- Bump the release when rebuilding into the dist.
759
760* Tue Feb 6 2001 Tim Powers <timp@redhat.com>
761- built for Powertools
762
763* Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
764- Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
765- Update to 0.91a
766- Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
767- Should be quite Red Hat'isque now.