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