]> git.proxmox.com Git - mirror_frr.git/blame - redhat/frr.spec.in
redhat: Fix rpm scripts to correctly restart daemons on upgrade
[mirror_frr.git] / redhat / frr.spec.in
CommitLineData
edd7c245 1# configure options
b64d92a8 2#
3# Some can be overriden on rpmbuild commandline with:
4# rpmbuild --define 'variable value'
f755bf6d 5# (use any value, ie 1 for flag "with_XXXX" definitions)
b64d92a8 6#
30da4585
PJ
7# 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.
b64d92a8 10
d31223c5 11#################### FRRouting (FRR) configure options #####################
1189075b 12# with-feature options
192c13ac
MW
13%{!?with_tcp_zebra: %global with_tcp_zebra 0 }
14%{!?with_pam: %global with_pam 0 }
15%{!?with_ospfclient: %global with_ospfclient 1 }
16%{!?with_ospfapi: %global with_ospfapi 1 }
17%{!?with_irdp: %global with_irdp 1 }
18%{!?with_rtadv: %global with_rtadv 1 }
03ced8e1 19%{!?with_ldpd: %global with_ldpd 1 }
192c13ac
MW
20%{!?with_nhrpd: %global with_nhrpd 1 }
21%{!?with_shared: %global with_shared 1 }
22%{!?with_multipath: %global with_multipath 256 }
23%{!?frr_user: %global frr_user frr }
24%{!?vty_group: %global vty_group frrvty }
25%{!?with_fpm: %global with_fpm 0 }
26%{!?with_watchfrr: %global with_watchfrr 1 }
27%{!?with_bgp_vnc: %global with_bgp_vnc 0 }
63ef966e 28%{!?with_pimd: %global with_pimd 1 }
30b9d89b 29
30# path defines
192c13ac
MW
31%define _sysconfdir /etc/frr
32%define _sbindir /usr/lib/frr
33%define zeb_src %{_builddir}/%{name}-%{frrversion}
34%define zeb_rh_src %{zeb_src}/redhat
35%define zeb_docs %{zeb_src}/doc
36%define frr_tools %{zeb_src}/tools
788cdc6d 37
e0626854 38# defines for configure
192c13ac 39%define _localstatedir /var/run/frr
1189075b 40############################################################################
41
f755bf6d
MW
42#### Version String tweak
43# Remove invalid characters form version string and replace with _
d4fbc1de 44%{expand: %%global rpmversion %(echo '@VERSION@' | tr [:blank:]- _ )}
c115e4a4 45%define frrversion @VERSION@
1189075b 46
f755bf6d
MW
47#### Check version of texi2html
48# Old versions don't support "--number-footnotes" option.
d31223c5 49%{expand: %%global texi2htmlversion %(if [[ -f /usr/bin/texi2html ]]; then /usr/bin/texi2html --version | cut -d. -f1; else echo 0; fi)}
1189075b 50
f755bf6d
MW
51#### Check for systemd or init.d (upstart)
52# Check for init.d (upstart) as used in CentOS 6 or systemd (ie CentOS 7)
e144d2ef 53%{expand: %%global initsystem %(if [[ `/sbin/init --version 2> /dev/null` =~ upstart ]]; then echo upstart; elif [[ `file /sbin/init` =~ "symbolic link to \`../lib/systemd/systemd'" ]]; then echo systemd; elif [[ `systemctl` =~ -\.mount ]]; then echo systemd; fi)}
f755bf6d 54#
9473e340 55# If init system is systemd, then always disable watchfrr
f755bf6d
MW
56#
57%if "%{initsystem}" == "systemd"
192c13ac
MW
58 # Note: For systems with systemd, watchfrr 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_watchfrr 1
f755bf6d 62%endif
7c08d77f 63
63ef966e
MW
64#### Check for RedHat 6.x or CentOS 6.x - they are too old to support PIM.
65#### Always disable it on these old systems unconditionally
414ec6e9 66%{expand: %%global redhat6 %(if [[ `cat /etc/redhat-release 2> /dev/null` =~ release\ 6\. ]]; then echo 6; else echo 0; fi)}
63ef966e
MW
67#
68# if CentOS 6 / RedHat 6, then disable PIMd
69%if "%{redhat6}" == "6"
70 %global with_pimd 0
71%endif
72
73# if FPM is enabled, then enable tcp_zebra as well
f755bf6d
MW
74#
75%if %{with_fpm}
192c13ac 76 %global with_tcp_zebra 1
f755bf6d 77%endif
e0626854 78
15d74e93 79# misc internal defines
192c13ac
MW
80%{!?frr_uid: %global frr_uid 92 }
81%{!?frr_gid: %global frr_gid 92 }
82%{!?vty_gid: %global vty_gid 85 }
f755bf6d 83
63ef966e 84%define daemon_list zebra ripd ospfd bgpd isisd ripngd ospf6d
0df63b52 85
b021388f 86%if %{with_ldpd}
192c13ac 87%define daemon_ldpd ldpd
b021388f 88%else
192c13ac 89%define daemon_ldpd ""
b021388f
RW
90%endif
91
63ef966e
MW
92%if %{with_pimd}
93%define daemon_pimd pimd
729f041c 94%else
63ef966e 95%define daemon_pimd ""
729f041c
TT
96%endif
97
31c98471 98%if %{with_nhrpd}
03ced8e1 99%define daemon_nhrpd nhrpd
31c98471 100%else
03ced8e1 101%define daemon_nhrpd ""
31c98471
MW
102%endif
103
9473e340 104%if %{with_watchfrr}
192c13ac 105%define daemon_watchfrr watchfrr
f755bf6d 106%else
192c13ac 107%define daemon_watchfrr ""
f755bf6d
MW
108%endif
109
03ced8e1 110%define all_daemons %{daemon_list} %{daemon_ldpd} %{daemon_pimd} %{daemon_nhrpd} %{daemon_watchfrr}
b3324e27 111
b5f310cb 112# allow build dir to be kept
192c13ac 113%{!?keep_build: %global keep_build 0 }
b5f310cb 114
4859e20c 115#release sub-revision (the two digits after the CONFDATE)
192c13ac 116%{!?release_rev: %global release_rev 01 }
4859e20c 117
788cdc6d 118Summary: Routing daemon
192c13ac
MW
119Name: frr
120Version: %{rpmversion}
121Release: @CONFDATE@%{release_rev}%{?dist}
122License: GPLv2+
123Group: System Environment/Daemons
124Source0: http://www.frrouting.org/releases/frr/%{name}-%{frrversion}.tar.gz
125URL: http://www.frrouting.org
192c13ac 126Requires(pre): /sbin/install-info
f755bf6d 127Requires(preun): /sbin/install-info
192c13ac 128Requires(post): /sbin/install-info
d31223c5 129BuildRequires: gcc texi2html texinfo patch libcap-devel groff
192c13ac 130BuildRequires: readline readline-devel ncurses ncurses-devel
d31223c5 131BuildRequires: json-c-devel bison >= 2.7 flex make
be5df5f7 132Requires: ncurses json-c initscripts
f755bf6d 133%if %{with_pam}
192c13ac
MW
134BuildRequires: pam-devel
135Requires: pam
f755bf6d
MW
136%endif
137%if "%{initsystem}" == "systemd"
d75d3b87 138BuildRequires: systemd systemd-devel
192c13ac
MW
139Requires(post): systemd
140Requires(preun): systemd
141Requires(postun): systemd
f755bf6d 142%else
788cdc6d 143# Initscripts > 5.60 is required for IPv6 support
192c13ac 144Requires(pre): initscripts >= 5.60
f755bf6d 145%endif
192c13ac
MW
146Provides: routingdaemon = %{version}-%{release}
147BuildRoot: %{_tmppath}/%{name}-%{version}-root
148Obsoletes: bird gated mrt zebra frr-sysvinit
788cdc6d 149
150%description
447a8fe9 151FRRouting is a free software that manages TCP/IP based routing
788cdc6d 152protocol. It takes multi-server and multi-thread approach to resolve
153the current complexity of the Internet.
154
3e7c8d04 155FRRouting supports BGP4, OSPFv2, OSPFv3, ISIS, RIP, RIPng, PIM, LDP
03ced8e1 156NHRP and EIGRP.
788cdc6d 157
447a8fe9 158FRRouting is a fork of Quagga.
788cdc6d 159
448ed4a2 160%package contrib
c115e4a4 161Summary: contrib tools for frr
448ed4a2 162Group: System Environment/Daemons
163
164%description contrib
c115e4a4 165Contributed/3rd party tools which may be of use with frr.
448ed4a2 166
52134ac6
MW
167%package pythontools
168Summary: python tools for frr
ba4ec8dc
MW
169BuildRequires: python
170Requires: python python-ipaddr
52134ac6
MW
171Group: System Environment/Daemons
172
173%description pythontools
174Contributed python 2.7 tools which may be of use with frr.
175
e0626854 176%package devel
c115e4a4 177Summary: Header and object files for frr development
e0626854 178Group: System Environment/Daemons
f755bf6d 179Requires: %{name} = %{version}-%{release}
e0626854 180
181%description devel
c115e4a4
MW
182The frr-devel package contains the header and object files neccessary for
183developing OSPF-API and frr applications.
e0626854 184
788cdc6d 185%prep
c115e4a4 186%setup -q -n frr-%{frrversion}
788cdc6d 187
188%build
7966b97c 189
190# For standard gcc verbosity, uncomment these lines:
191#CFLAGS="%{optflags} -Wall -Wsign-compare -Wpointer-arith"
192#CFLAGS="${CFLAGS} -Wbad-function-cast -Wwrite-strings"
193
194# For ultra gcc verbosity, uncomment these lines also:
195#CFLAGS="${CFLAGS} -W -Wcast-qual -Wstrict-prototypes"
196#CFLAGS="${CFLAGS} -Wmissing-declarations -Wmissing-noreturn"
197#CFLAGS="${CFLAGS} -Wmissing-format-attribute -Wunreachable-code"
198#CFLAGS="${CFLAGS} -Wpacked -Wpadded"
199
788cdc6d 200%configure \
c63f5f2c 201 --sbindir=%{_sbindir} \
f755bf6d
MW
202 --sysconfdir=%{_sysconfdir} \
203 --libdir=%{_libdir} \
204 --libexecdir=%{_libexecdir} \
205 --localstatedir=%{_localstatedir} \
192c13ac 206 --disable-werror \
54b25dca 207%if !%{with_shared}
192c13ac 208 --disable-shared \
54b25dca 209%endif
54b25dca 210%if %{with_multipath}
192c13ac 211 --enable-multipath=%{with_multipath} \
788cdc6d 212%endif
54b25dca 213%if %{with_tcp_zebra}
192c13ac 214 --enable-tcp-zebra \
788cdc6d 215%endif
192c13ac 216 --enable-vtysh \
54b25dca 217%if %{with_ospfclient}
00e3b7aa 218 --enable-ospfclient \
68980084 219%else
00e3b7aa 220 --disable-ospfclient\
68980084 221%endif
54b25dca 222%if %{with_ospfapi}
192c13ac 223 --enable-ospfapi=yes \
68980084 224%else
192c13ac 225 --enable-ospfapi=no \
68980084 226%endif
54b25dca 227%if %{with_irdp}
192c13ac 228 --enable-irdp=yes \
5b819262 229%else
192c13ac 230 --enable-irdp=no \
5b819262 231%endif
e7cd37bf 232%if %{with_rtadv}
192c13ac 233 --enable-rtadv=yes \
e7cd37bf 234%else
192c13ac 235 --enable-rtadv=no \
e7cd37bf 236%endif
b021388f 237%if %{with_ldpd}
192c13ac 238 --enable-ldpd \
b021388f 239%else
192c13ac 240 --disable-ldpd \
b021388f 241%endif
63ef966e
MW
242%if %{with_pimd}
243 --enable-pimd \
244%else
245 --disable-pimd \
729f041c 246%endif
03ced8e1
MW
247%if %{with_nhrpd}
248 --enable-nhrpd \
249%else
250 --disable-nhrpd \
251%endif
54b25dca 252%if %{with_pam}
192c13ac 253 --with-libpam \
788cdc6d 254%endif
c115e4a4 255%if 0%{?frr_user:1}
192c13ac
MW
256 --enable-user=%frr_user \
257 --enable-group=%frr_user \
edd7c245 258%endif
f755bf6d 259%if 0%{?vty_group:1}
192c13ac 260 --enable-vty-group=%vty_group \
edd7c245 261%endif
f755bf6d 262%if %{with_fpm}
192c13ac 263 --enable-fpm \
f755bf6d 264%else
192c13ac 265 --disable-fpm \
f755bf6d 266%endif
9473e340 267%if %{with_watchfrr}
192c13ac 268 --enable-watchfrr \
f755bf6d 269%else
192c13ac 270 --disable-watchfrr \
65efcfce
LB
271%endif
272%if %{with_bgp_vnc}
192c13ac 273 --enable-bgp-vnc \
65efcfce 274%else
192c13ac 275 --disable-bgp-vnc \
f755bf6d 276%endif
192c13ac
MW
277 --enable-gcc-rdynamic \
278 --enable-isisd=yes \
d75d3b87 279%if "%{initsystem}" == "systemd"
192c13ac 280 --enable-systemd=yes \
d75d3b87 281%endif
192c13ac 282 --enable-poll=yes
788cdc6d 283
284make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
285
286pushd doc
f755bf6d 287%if %{texi2htmlversion} < 5
c115e4a4 288texi2html --number-sections frr.texi
f755bf6d 289%else
c115e4a4 290texi2html --number-footnotes --number-sections frr.texi
f755bf6d 291%endif
788cdc6d 292popd
293
294%install
c115e4a4
MW
295mkdir -p %{buildroot}/etc/{frr,sysconfig,logrotate.d,pam.d,default} \
296 %{buildroot}/var/log/frr %{buildroot}%{_infodir}
f755bf6d 297make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
788cdc6d 298
9a344b74 299# Remove this file, as it is uninstalled and causes errors when building on RH9
f755bf6d 300rm -rf %{buildroot}/usr/share/info/dir
9a344b74 301
2931e394
MW
302# Remove debian init script if it was installed
303rm -f %{buildroot}%{_sbindir}/frr
c63f5f2c 304
f755bf6d
MW
305# install /etc sources
306%if "%{initsystem}" == "systemd"
307mkdir -p %{buildroot}%{_unitdir}
2931e394 308install %{zeb_rh_src}/frr.service \
192c13ac 309 %{buildroot}%{_unitdir}/frr.service
2931e394
MW
310install %{zeb_rh_src}/frr.init \
311 %{buildroot}%{_sbindir}/frr
f755bf6d
MW
312%else
313mkdir -p %{buildroot}/etc/rc.d/init.d
ba4ec8dc 314install %{zeb_rh_src}/frr.init \
b9aaacb1
MW
315 %{buildroot}%{_sbindir}/frr
316ln -s %{_sbindir}/frr \
ba4ec8dc 317 %{buildroot}/etc/rc.d/init.d/frr
f755bf6d
MW
318%endif
319
ba4ec8dc 320install %{zeb_rh_src}/daemons %{buildroot}/etc/frr
c115e4a4 321install -m644 %{zeb_rh_src}/frr.pam \
192c13ac 322 %{buildroot}/etc/pam.d/frr
c115e4a4 323install -m644 %{zeb_rh_src}/frr.logrotate \
192c13ac 324 %{buildroot}/etc/logrotate.d/frr
c115e4a4 325install -d -m750 %{buildroot}/var/run/frr
edd7c245 326
327%pre
328# add vty_group
f755bf6d 329%if 0%{?vty_group:1}
e7cd37bf 330if getent group %vty_group > /dev/null ; then : ; else \
f755bf6d 331 /usr/sbin/groupadd -r -g %vty_gid %vty_group > /dev/null || : ; fi
edd7c245 332%endif
e7cd37bf 333
c115e4a4
MW
334# add frr user and group
335%if 0%{?frr_user:1}
336# Ensure that frr_gid gets correctly allocated
337if getent group %frr_user >/dev/null; then : ; else \
338 /usr/sbin/groupadd -g %frr_gid %frr_user > /dev/null || : ; \
e7cd37bf 339fi
c115e4a4
MW
340if getent passwd %frr_user >/dev/null ; then : ; else \
341 /usr/sbin/useradd -u %frr_uid -g %frr_gid \
447a8fe9 342 -M -r -s /sbin/nologin -c "FRRouting suite" \
c115e4a4 343 -d %_localstatedir %frr_user 2> /dev/null || : ; \
e7cd37bf 344fi
f676b06e 345%if 0%{?vty_group:1}
c115e4a4 346/usr/sbin/usermod -a -G %vty_group %frr_user
edd7c245 347%endif
f676b06e
DS
348%endif
349
788cdc6d 350
788cdc6d 351%post
30b9d89b 352# zebra_spec_add_service <service name> <port/proto> <comment>
788cdc6d 353# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
354
355zebra_spec_add_service ()
356{
192c13ac
MW
357 # Add port /etc/services entry if it isn't already there
358 if [ -f /etc/services ] && \
359 ! %__sed -e 's/#.*$//' /etc/services | %__grep -wq $1 ; then
360 echo "$1 $2 # $3" >> /etc/services
361 fi
788cdc6d 362}
363
364zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
365zebra_spec_add_service zebra 2601/tcp "zebra vty"
366zebra_spec_add_service ripd 2602/tcp "RIPd vty"
367zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
368zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
369zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
370zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
54b25dca 371%if %{with_ospfapi}
7021c425 372zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
373%endif
5a514b14 374zebra_spec_add_service isisd 2608/tcp "ISISd vty"
729f041c
TT
375%if %{with_nhrpd}
376zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
377%endif
63ef966e 378%if %{with_pimd}
12e41d03 379zebra_spec_add_service pimd 2611/tcp "PIMd vty"
63ef966e 380%endif
b021388f
RW
381%if %{with_ldpd}
382zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
383%endif
788cdc6d 384
f755bf6d
MW
385%if "%{initsystem}" == "systemd"
386for daemon in %all_daemons ; do
192c13ac 387 %systemd_post frr.service
f755bf6d
MW
388done
389%else
ba4ec8dc 390/sbin/chkconfig --add frr
f755bf6d 391%endif
788cdc6d 392
6f47eceb
MW
393# Fix bad path in previous config files
394# Config files won't get replaced by default, so we do this ugly hack to fix it
395%__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{_sysconfdir}/daemons 2> /dev/null || true
396
c115e4a4 397/sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
788cdc6d 398
399# Create dummy files if they don't exist so basic functions can be used.
400if [ ! -e %{_sysconfdir}/zebra.conf ]; then
192c13ac 401 echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
c115e4a4 402%if 0%{?frr_user:1}
192c13ac 403 chown %frr_user:%frr_user %{_sysconfdir}/zebra.conf*
e7cd37bf 404%endif
2931e394 405 chmod 640 %{_sysconfdir}/zebra.conf*
788cdc6d 406fi
f755bf6d 407for daemon in %{all_daemons} ; do
da69cb8e
MW
408 if [ x"${daemon}" != x"" ] ; then
409 if [ ! -e %{_sysconfdir}/${daemon}.conf ]; then
410 touch %{_sysconfdir}/${daemon}.conf
411 %if 0%{?frr_user:1}
412 chown %frr_user:%frr_user %{_sysconfdir}/${daemon}.conf*
413 %endif
414 fi
192c13ac 415 fi
f755bf6d 416done
2931e394
MW
417%if 0%{?frr_user:1}
418 chown %frr_user:%frr_user %{_sysconfdir}/daemons
419%endif
420
9473e340 421%if %{with_watchfrr}
192c13ac
MW
422 # No config for watchfrr - this is part of /etc/sysconfig/frr
423 rm -f %{_sysconfdir}/watchfrr.*
f755bf6d
MW
424%endif
425
788cdc6d 426if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
192c13ac
MW
427 touch %{_sysconfdir}/vtysh.conf
428 chmod 640 %{_sysconfdir}/vtysh.conf
2931e394 429%if 0%{?frr_user:1}
f755bf6d 430%if 0%{?vty_group:1}
2931e394
MW
431 chown %{frr_user}:%{vty_group} %{_sysconfdir}/vtysh.conf*
432%endif
f755bf6d 433%endif
788cdc6d 434fi
435
436%postun
fc43ecc7 437if [ "$1" -ge 1 ]; then
00e3b7aa
MW
438 #
439 # Upgrade from older version
440 #
192c13ac
MW
441 %if "%{initsystem}" == "systemd"
442 ##
443 ## Systemd Version
444 ##
58c8cfdd 445 %systemd_postun_with_restart frr.service
192c13ac
MW
446 %else
447 ##
448 ## init.d Version
449 ##
00e3b7aa 450 /etc/rc.d/init.d/frr restart >/dev/null 2>&1
192c13ac 451 %endif
03ced8e1 452 :
788cdc6d 453fi
788cdc6d 454
455%preun
f755bf6d 456%if "%{initsystem}" == "systemd"
192c13ac
MW
457 ##
458 ## Systemd Version
459 ##
58c8cfdd
MW
460 if [ $1 -eq 0 ] ; then
461 %systemd_preun frr.service
192c13ac 462 fi
f755bf6d 463%else
192c13ac
MW
464 ##
465 ## init.d Version
466 ##
58c8cfdd 467 if [ $1 -eq 0 ] ; then
ba4ec8dc
MW
468 /etc/rc.d/init.d/frr stop >/dev/null 2>&1
469 /sbin/chkconfig --del frr
192c13ac 470 fi
f755bf6d 471%endif
c115e4a4 472/sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
788cdc6d 473
474%clean
f755bf6d
MW
475%if !0%{?keep_build:1}
476rm -rf %{buildroot}
b5f310cb 477%endif
788cdc6d 478
479%files
480%defattr(-,root,root)
448ed4a2 481%doc */*.sample* AUTHORS COPYING
c115e4a4 482%doc doc/frr.html
30b9d89b 483%doc doc/mpls
6d19ff21 484%doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES
c115e4a4
MW
485%if 0%{?frr_user:1}
486%dir %attr(751,%frr_user,%frr_user) %{_sysconfdir}
487%dir %attr(750,%frr_user,%frr_user) /var/log/frr
488%dir %attr(751,%frr_user,%frr_user) /var/run/frr
edd7c245 489%else
788cdc6d 490%dir %attr(750,root,root) %{_sysconfdir}
c115e4a4
MW
491%dir %attr(750,root,root) /var/log/frr
492%dir %attr(750,root,root) /var/run/frr
edd7c245 493%endif
f755bf6d 494%if 0%{?vty_group:1}
c115e4a4 495%attr(750,%frr_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
edd7c245 496%endif
c115e4a4 497%{_infodir}/frr.info.gz
788cdc6d 498%{_mandir}/man*/*
54b25dca 499%{_sbindir}/zebra
500%{_sbindir}/ospfd
501%{_sbindir}/ripd
502%{_sbindir}/bgpd
2931e394 503%exclude %{_sbindir}/ssd
9473e340 504%if %{with_watchfrr}
192c13ac 505 %{_sbindir}/watchfrr
f755bf6d 506%endif
54b25dca 507%{_sbindir}/ripngd
508%{_sbindir}/ospf6d
63ef966e
MW
509%if %{with_pimd}
510 %{_sbindir}/pimd
511%endif
54b25dca 512%{_sbindir}/isisd
b021388f 513%if %{with_ldpd}
ba4ec8dc 514 %{_sbindir}/ldpd
b021388f 515%endif
729f041c 516%if %{with_nhrpd}
03ced8e1 517 %{_sbindir}/nhrpd
729f041c 518%endif
28f79728 519%if %{with_shared}
167a5efe
MW
520%{_libdir}/lib*.so
521%{_libdir}/lib*.so.0
522%attr(755,root,root) %{_libdir}/lib*.so.0.*
54b25dca 523%endif
788cdc6d 524%{_bindir}/*
d31223c5
MW
525%config(noreplace) /etc/frr/[!v]*.conf*
526%config(noreplace) %attr(750,%frr_user,%frr_user) /etc/frr/daemons
f755bf6d 527%if "%{initsystem}" == "systemd"
71dad1d0 528 %attr(644,root,root) %{_unitdir}/frr.service
2931e394 529 %{_sbindir}/frr
f755bf6d 530%else
b9aaacb1
MW
531 /etc/rc.d/init.d/frr
532 %{_sbindir}/frr
f755bf6d 533%endif
c115e4a4 534%config(noreplace) /etc/pam.d/frr
788cdc6d 535%config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
536
448ed4a2 537%files contrib
538%defattr(-,root,root)
539%doc tools
540
52134ac6
MW
541%files pythontools
542%defattr(-,root,root)
543%{_sbindir}/frr-reload.py
544%{_sbindir}/frr-reload.pyc
545%{_sbindir}/frr-reload.pyo
546
e0626854 547%files devel
548%defattr(-,root,root)
da29c6b0 549%if %{with_ospfclient}
550%{_sbindir}/ospfclient
551%endif
28f79728 552%{_libdir}/*.a
553%{_libdir}/*.la
cfc1842b 554%dir %attr(755,root,root) %{_includedir}/%{name}
28f79728 555%{_includedir}/%name/*.h
cfc1842b 556%dir %attr(755,root,root) %{_includedir}/%{name}/ospfd
28f79728 557%{_includedir}/%name/ospfd/*.h
54b25dca 558%if %{with_ospfapi}
cfc1842b 559%dir %attr(755,root,root) %{_includedir}/%{name}/ospfapi
28f79728 560%{_includedir}/%name/ospfapi/*.h
68980084 561%endif
e0626854 562
788cdc6d 563%changelog
6f47eceb
MW
564* Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org> - %{version}
565- Fix script location for watchfrr restart functions in daemon config
58c8cfdd 566- Fix postun script to restart frr during upgrade
6f47eceb
MW
567
568* Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
31c98471 569- added NHRP daemon
729f041c 570
03ced8e1 571* Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
63ef966e
MW
572- new subpackage frr-pythontools with python 2.7 restart script
573- remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
2931e394
MW
574- converted to single frr init script (not per daemon) based on debian init script
575- created systemd service file for systemd based systems (which uses init script)
63ef966e
MW
576- Various other RPM package fixes for FRR 2.0
577
578* Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
447a8fe9 579- Renamed to frr for FRRouting fork of Quagga
c115e4a4 580
f89f4f10 581* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
30da4585
PJ
582- remove with_ipv6 conditionals, always build v6
583- Fix UTF-8 char in spec changelog
584- remove quagga.pam.stack, long deprecated.
585
f755bf6d
MW
586* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
587- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
588 --enable-netlink
589- Remove support for old fedora 4/5
590- Fix for package nameing
591- Fix Weekdays of previous changelogs (bogus dates)
592- Add conditional logic to only build tex footnotes with supported texi2html
593- Added pimd to files section and fix double listing of /var/lib*/quagga
594- Numerous fixes to unify upstart/systemd startup into same spec file
9473e340 595- Only allow use of watchfrr for non-systemd systems. no need with systemd
f755bf6d
MW
596
597* Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
7c08d77f
PJ
598- buildreq updates
599- add a default define for with_pimd
600
f755bf6d 601* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
e7cd37bf 602- Steal some changes from Fedora spec file:
603- Add with_rtadv variable
604- Test for groups/users with getent before group/user adding
605- Readline need not be an explicit prerequisite
606- install-info delete should be postun, not preun
607
fc43ecc7 608* Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
609- on package upgrade, implement careful, phased restart logic
610- use gcc -rdynamic flag when linking for better backtraces
611
f3931751 612* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
613- daemonv6_list should contain only IPv6 daemons
614
b3324e27 615* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
9473e340 616- watchfrr added
b3324e27 617- on upgrade, all daemons should be condrestart'ed
618- on removal, all daemons should be stopped
619
36002ae5 620* Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
621- Use makeinfo --html to generate quagga.html
622
0df63b52 623* Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
624- Fix with_ipv6 set to 0 build
625
cfc1842b 626* Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
627- Update to 0.97.2
628
629* Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
630- Make directories be owned by the packages concerned
631- Update logrotate scripts to use correct path to killall and use pid files
632
da29c6b0 633* Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
634- Update to 0.97.0
635
54b25dca 636* Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
637- build snmp support by default
638- build irdp support
639- build with shared libs
640- devel subpackage for archives and headers
641
00bc5603 642* Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
643- updated sysconfig files to specify local dir
644- added ospf_dump.c crash quick fix patch
645- added ospfd persistent interface configuration patch
646
15d74e93 647* Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
648- sync to CVS
649- integrate RH sysconfig patch to specify daemon options (RH)
650- default to have vty listen only to 127.1 (RH)
651- add user with fixed UID/GID (RH)
652- create user with shell /sbin/nologin rather than /bin/false (RH)
653- stop daemons on uninstall (RH)
f755bf6d 654- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
15d74e93 655- isisd added
656- cleanup tasks carried out for every daemon
657
406f7000 658* Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
659- Fix -devel package to include all files
660- Sync to 0.96.4
661
6bd8fd3b 662* Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
663- Renamed to Quagga
664- Sync to Quagga release 0.96
665
f755bf6d 666* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
edd7c245 667- zebra privileges support
668
f755bf6d 669* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
e0626854 670- Fix mem leak in 'show thread cpu'
671- Ralph Keller's OSPF-API
672- Amir: Fix configure.ac for net-snmp
673
448ed4a2 674* Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
675- ospfd IOS prefix to interface matching for 'network' statement
676- temporary fix for PtP and IPv6
677- sync to zebra.org CVS
678
8f754983 679* Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
680- update to latest cvs
681- Yon's "show thread cpu" patch - 17217
682- walk up tree - 17218
683- ospfd NSSA fixes - 16681
684- ospfd nsm fixes - 16824
685- ospfd OLSA fixes and new feature - 16823
686- KAME and ifindex fixes - 16525
687- spec file changes to allow redhat files to be in tree
688
d7ccae28 689* Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
690- Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
691- Fixed up some build requirements (patch)
692- Added conditional build requirements for vtysh / snmp
f755bf6d 693- Added conditional to files for _bindir depending on vtysh
d7ccae28 694
788cdc6d 695* Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
696- update to latest CVS
697- add Greg Troxel's md5 buffer copy/dup fix
698- add RIPv1 fix
699- add Frank's multicast flag fix
700
701* Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
702- update to latest CVS
703- timestamped crypt_seqnum patch
704- oi->on_write_q fix
705
706* Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
707- update to latest CVS
708- add vtysh 'write-config (integrated|daemon)' patch
709- always 'make rebuild' in vtysh/ to catch new commands
710
711* Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
712- update to 0.93b
713
714* Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
715- update to latest CVS
716- add "/sbin/ip route flush proto zebra" to zebra RH init on startup
717
718* Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
719- update to current CVS
720- add OSPF point to multipoint patch
721- add OSPF bugfixes
722- add BGP hash optimisation patch
723
724* Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
725- update to 0.93-pre1 / CVS
726- add link state detection support
727- add generic PtP and RFC3021 support
728- various bug fixes
729
730* Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
731- Fix bug #51336
732
f755bf6d 733* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
788cdc6d 734- Use generic initscript strings instead of initscript specific
735 ( "Starting foo: " -> "Starting $prog:" )
736
737* Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
738- Bump the release when rebuilding into the dist.
739
740* Tue Feb 6 2001 Tim Powers <timp@redhat.com>
741- built for Powertools
742
743* Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
744- Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
745- Update to 0.91a
746- Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
747- Should be quite Red Hat'isque now.