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