]> git.proxmox.com Git - mirror_frr.git/blame - redhat/frr.spec.in
yang: add a module translator for ietf-rip.yang
[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
1c64265f 219Requires: python-ipaddress
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}
a214288c 346 --enable-bfdd \
9f892cc5 347%else
a214288c 348 --disable-bfdd \
aaf38c94 349%endif
a214288c 350 SPHINXBUILD=%{sphinx}
788cdc6d 351
a214288c 352make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
788cdc6d 353
354pushd doc
a214288c 355make info
788cdc6d 356popd
357
95c16f4c 358
788cdc6d 359%install
9b979646 360mkdir -p %{buildroot}%{_sysconfdir}/{frr,sysconfig,logrotate.d,pam.d,default} \
4f20eab1 361 %{buildroot}%{_localstatedir}/log/frr %{buildroot}%{_infodir}
a214288c 362make DESTDIR=%{buildroot} INSTALL="install -p" CP="cp -p" install
788cdc6d 363
9a344b74 364# Remove this file, as it is uninstalled and causes errors when building on RH9
f755bf6d 365rm -rf %{buildroot}/usr/share/info/dir
9a344b74 366
2cdd3d94
MW
367# Remove debian init script if it was installed
368rm -f %{buildroot}%{_sbindir}/frr
c63f5f2c 369
5c3ad1d4
RK
370# kill bogus libtool files
371rm -vf %{buildroot}%{_libdir}/frr/modules/*.la
372rm -vf %{buildroot}%{_libdir}/*.la
0ed9196b 373
f755bf6d
MW
374# install /etc sources
375%if "%{initsystem}" == "systemd"
376mkdir -p %{buildroot}%{_unitdir}
5f371d0b
RK
377install -m644 %{zeb_rh_src}/frr.service %{buildroot}%{_unitdir}/frr.service
378install %{zeb_rh_src}/frr.init %{buildroot}%{_sbindir}/frr
f755bf6d 379%else
9b979646 380mkdir -p %{buildroot}%{_initddir}
5f371d0b
RK
381install %{zeb_rh_src}/frr.init %{buildroot}%{_sbindir}/frr
382ln -s %{_sbindir}/frr %{buildroot}%{_initddir}/frr
f755bf6d
MW
383%endif
384
9b979646 385install %{zeb_rh_src}/daemons %{buildroot}%{_sysconfdir}/frr
0817301a 386# add rpki module to daemon
387%if %{with_rpki}
388 sed -i -e 's/^\(bgpd_options=\)\(.*\)\(".*\)/\1\2 -M rpki\3/' %{buildroot}%{_sysconfdir}/frr/daemons
389%endif
5f371d0b
RK
390install -m644 %{zeb_rh_src}/frr.pam %{buildroot}%{_sysconfdir}/pam.d/frr
391install -m644 %{zeb_rh_src}/frr.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/frr
392install -d -m750 %{buildroot}%{rundir}
edd7c245 393
95c16f4c 394
edd7c245 395%pre
396# add vty_group
f755bf6d 397%if 0%{?vty_group:1}
1a629db7 398 getent group %{vty_group} >/dev/null || groupadd -r -g %{vty_gid} %{vty_group}
edd7c245 399%endif
e7cd37bf 400
c115e4a4
MW
401# add frr user and group
402%if 0%{?frr_user:1}
1a629db7
RK
403 # Ensure that frr_gid gets correctly allocated
404 getent group %{frr_user} >/dev/null || groupadd -g %{frr_gid} %{frr_user}
405 getent passwd %{frr_user} >/dev/null || \
406 useradd -r -u %{frr_uid} -g %{frr_user} \
407 -s /sbin/nologin -c "FRRouting suite" \
408 -d %{rundir} %{frr_user}
409
410 %if 0%{?vty_group:1}
411 usermod -a -G %{vty_group} %{frr_user}
412 %endif
413%endif
414exit 0
f676b06e 415
788cdc6d 416
788cdc6d 417%post
30b9d89b 418# zebra_spec_add_service <service name> <port/proto> <comment>
788cdc6d 419# e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
420
421zebra_spec_add_service ()
422{
150e7c7e 423 # Add port /etc/services entry if it isn't already there
9b979646
RK
424 if [ -f %{_sysconfdir}/services ] && \
425 ! %__sed -e 's/#.*$//' %{_sysconfdir}/services | %__grep -wq $1 ; then
426 echo "$1 $2 # $3" >> %{_sysconfdir}/services
9a581ae4 427 fi
788cdc6d 428}
429
430zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
431zebra_spec_add_service zebra 2601/tcp "zebra vty"
7ac1de8e 432zebra_spec_add_service staticd 2616/tcp "staticd vty"
788cdc6d 433zebra_spec_add_service ripd 2602/tcp "RIPd vty"
434zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
435zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
436zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
437zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
5f371d0b 438zebra_spec_add_service isisd 2608/tcp "ISISd vty"
54b25dca 439%if %{with_ospfapi}
5f371d0b 440 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
7021c425 441%endif
e763afa5 442%if %{with_babeld}
5f371d0b 443 zebra_spec_add_service babeld 2609/tcp "BABELd vty"
5a76db68 444%endif
729f041c 445%if %{with_nhrpd}
5f371d0b 446 zebra_spec_add_service nhrpd 2610/tcp "NHRPd vty"
729f041c 447%endif
41b86ba4 448%if %{with_pimd}
5f371d0b 449 zebra_spec_add_service pimd 2611/tcp "PIMd vty"
41b86ba4 450%endif
1abe1280 451%if %{with_pbrd}
5f371d0b 452 zebra_spec_add_service pbrd 2615/tcp "PBRd vty"
1abe1280 453%endif
b021388f 454%if %{with_ldpd}
5f371d0b 455 zebra_spec_add_service ldpd 2612/tcp "LDPd vty"
b021388f 456%endif
e763afa5 457%if %{with_eigrpd}
5f371d0b 458 zebra_spec_add_service eigrpd 2613/tcp "EIGRPd vty"
e763afa5 459%endif
7134904b
RZ
460%if %{with_bfdd}
461 zebra_spec_add_service bfdd 2617/tcp "BFDd vty"
462%endif
13d9aad8 463zebra_spec_add_service fabricd 2618/tcp "Fabricd vty"
788cdc6d 464
f755bf6d 465%if "%{initsystem}" == "systemd"
5f371d0b
RK
466 for daemon in %all_daemons ; do
467 %systemd_post frr.service
468 done
f755bf6d 469%else
5f371d0b 470 /sbin/chkconfig --add frr
f755bf6d 471%endif
788cdc6d 472
75429e11
MW
473# Fix bad path in previous config files
474# Config files won't get replaced by default, so we do this ugly hack to fix it
931e1d68 475%__sed -i 's|/etc/init.d/|%{_sbindir}/|g' %{configdir}/daemons 2> /dev/null || true
75429e11 476
5b7077e8
DS
477# With systemd, watchfrr is mandatory. Fix config to make sure it's enabled if
478# we install or upgrade to a frr built with systemd
479%if "%{initsystem}" == "systemd"
931e1d68 480 %__sed -i 's|watchfrr_enable=no|watchfrr_enable=yes|g' %{configdir}/daemons 2> /dev/null || true
5b7077e8
DS
481%endif
482
c115e4a4 483/sbin/install-info %{_infodir}/frr.info.gz %{_infodir}/dir
788cdc6d 484
485# Create dummy files if they don't exist so basic functions can be used.
931e1d68
RK
486if [ ! -e %{configdir}/zebra.conf ]; then
487 echo "hostname `hostname`" > %{configdir}/zebra.conf
c115e4a4 488%if 0%{?frr_user:1}
1dc5a0dc 489 chown %{frr_user}:%{frr_user} %{configdir}/zebra.conf*
e7cd37bf 490%endif
931e1d68 491 chmod 640 %{configdir}/zebra.conf*
788cdc6d 492fi
f755bf6d 493for daemon in %{all_daemons} ; do
33fdbd5e 494 if [ x"${daemon}" != x"" ] ; then
931e1d68
RK
495 if [ ! -e %{configdir}/${daemon}.conf ]; then
496 touch %{configdir}/${daemon}.conf
33fdbd5e 497 %if 0%{?frr_user:1}
1dc5a0dc 498 chown %{frr_user}:%{frr_user} %{configdir}/${daemon}.conf*
33fdbd5e
MW
499 %endif
500 fi
9a581ae4 501 fi
f755bf6d 502done
2cdd3d94 503%if 0%{?frr_user:1}
1dc5a0dc 504 chown %{frr_user}:%{frr_user} %{configdir}/daemons
2cdd3d94
MW
505%endif
506
9473e340 507%if %{with_watchfrr}
9a581ae4 508 # No config for watchfrr - this is part of /etc/sysconfig/frr
931e1d68 509 rm -f %{configdir}/watchfrr.*
f755bf6d
MW
510%endif
511
931e1d68
RK
512if [ ! -e %{configdir}/vtysh.conf ]; then
513 touch %{configdir}/vtysh.conf
514 chmod 640 %{configdir}/vtysh.conf
2cdd3d94 515%if 0%{?frr_user:1}
5f371d0b
RK
516 %if 0%{?vty_group:1}
517 chown %{frr_user}:%{vty_group} %{configdir}/vtysh.conf*
518 %endif
f755bf6d 519%endif
788cdc6d 520fi
521
95c16f4c 522
788cdc6d 523%postun
fc43ecc7 524if [ "$1" -ge 1 ]; then
19ced9a4
MW
525 #
526 # Upgrade from older version
527 #
9a581ae4
MW
528 %if "%{initsystem}" == "systemd"
529 ##
530 ## Systemd Version
531 ##
c88ca85d 532 %systemd_postun_with_restart frr.service
9a581ae4
MW
533 %else
534 ##
535 ## init.d Version
536 ##
515a8ee8 537 service frr restart >/dev/null 2>&1
9a581ae4 538 %endif
e321aed1 539 :
788cdc6d 540fi
788cdc6d 541
95c16f4c 542
788cdc6d 543%preun
f755bf6d 544%if "%{initsystem}" == "systemd"
9a581ae4
MW
545 ##
546 ## Systemd Version
547 ##
c88ca85d
MW
548 if [ $1 -eq 0 ] ; then
549 %systemd_preun frr.service
9a581ae4 550 fi
f755bf6d 551%else
9a581ae4
MW
552 ##
553 ## init.d Version
554 ##
c88ca85d 555 if [ $1 -eq 0 ] ; then
515a8ee8 556 service frr stop >/dev/null 2>&1
c2953ac5 557 /sbin/chkconfig --del frr
9a581ae4 558 fi
f755bf6d 559%endif
c115e4a4 560/sbin/install-info --delete %{_infodir}/frr.info.gz %{_infodir}/dir
788cdc6d 561
95c16f4c 562
788cdc6d 563%files
d88f1144 564%doc */*.sample* COPYING
30b9d89b 565%doc doc/mpls
f20aafee 566%doc README.md
c115e4a4 567%if 0%{?frr_user:1}
1dc5a0dc 568 %dir %attr(751,%{frr_user},%{frr_user}) %{configdir}
4f20eab1 569 %dir %attr(750,%{frr_user},%{frr_user}) %{_localstatedir}/log/frr
1dc5a0dc 570 %dir %attr(751,%{frr_user},%{frr_user}) %{rundir}
edd7c245 571%else
5f371d0b 572 %dir %attr(750,root,root) %{configdir}
4f20eab1 573 %dir %attr(750,root,root) %{_localstatedir}/log/frr
5f371d0b 574 %dir %attr(750,root,root) %{rundir}
edd7c245 575%endif
f755bf6d 576%if 0%{?vty_group:1}
1dc5a0dc 577 %attr(750,%{frr_user},%{vty_group}) %{configdir}/vtysh.conf.sample
edd7c245 578%endif
c115e4a4 579%{_infodir}/frr.info.gz
788cdc6d 580%{_mandir}/man*/*
54b25dca 581%{_sbindir}/zebra
7ac1de8e 582%{_sbindir}/staticd
54b25dca 583%{_sbindir}/ospfd
584%{_sbindir}/ripd
585%{_sbindir}/bgpd
2cdd3d94 586%exclude %{_sbindir}/ssd
9473e340 587%if %{with_watchfrr}
9a581ae4 588 %{_sbindir}/watchfrr
f755bf6d 589%endif
54b25dca 590%{_sbindir}/ripngd
591%{_sbindir}/ospf6d
41b86ba4
MW
592%if %{with_pimd}
593 %{_sbindir}/pimd
594%endif
1abe1280
DS
595%if %{with_pbrd}
596 %{_sbindir}/pbrd
597%endif
54b25dca 598%{_sbindir}/isisd
13d9aad8 599%{_sbindir}/fabricd
b021388f 600%if %{with_ldpd}
c2953ac5 601 %{_sbindir}/ldpd
b021388f 602%endif
5a76db68
MW
603%if %{with_eigrpd}
604 %{_sbindir}/eigrpd
605%endif
729f041c 606%if %{with_nhrpd}
5a76db68 607 %{_sbindir}/nhrpd
729f041c 608%endif
e763afa5
DL
609%if %{with_babeld}
610 %{_sbindir}/babeld
611%endif
7134904b
RZ
612%if %{with_bfdd}
613 %{_sbindir}/bfdd
614%endif
5c3ad1d4 615%{_libdir}/lib*.so.0
4aa7422e 616%{_libdir}/lib*.so.0.*
84b05ca1 617%if %{with_fpm}
4aa7422e 618 %{_libdir}/frr/modules/zebra_fpm.so
84b05ca1 619%endif
b4c554e2 620%if %{with_rpki}
4aa7422e 621 %{_libdir}/frr/modules/bgpd_rpki.so
b4c554e2 622%endif
4aa7422e 623%{_libdir}/frr/modules/zebra_irdp.so
788cdc6d 624%{_bindir}/*
9b979646 625%config(noreplace) %{configdir}/[!v]*.conf*
1dc5a0dc 626%config(noreplace) %attr(750,%{frr_user},%{frr_user}) %{configdir}/daemons
f755bf6d 627%if "%{initsystem}" == "systemd"
07a138ec 628 %{_unitdir}/frr.service
f755bf6d 629%else
9b979646 630 %{_initddir}/frr
f755bf6d 631%endif
2d2ab699 632%{_sbindir}/frr
9b979646
RK
633%config(noreplace) %{_sysconfdir}/pam.d/frr
634%config(noreplace) %{_sysconfdir}/logrotate.d/frr
32398f01 635%{_sbindir}/frr-reload
788cdc6d 636
95c16f4c 637
448ed4a2 638%files contrib
448ed4a2 639%doc tools
640
95c16f4c 641
386fcd12 642%files pythontools
386fcd12
MW
643%{_sbindir}/frr-reload.py
644%{_sbindir}/frr-reload.pyc
645%{_sbindir}/frr-reload.pyo
646
95c16f4c 647
e0626854 648%files devel
d1ef2aaf 649%{_libdir}/lib*.so
da29c6b0 650%if %{with_ospfclient}
5f371d0b 651 %{_sbindir}/ospfclient
da29c6b0 652%endif
4aa7422e 653%dir %{_includedir}/%{name}
b8b18c06 654%{_includedir}/%{name}/*.h
4aa7422e 655%dir %{_includedir}/%{name}/ospfd
b8b18c06 656%{_includedir}/%{name}/ospfd/*.h
54b25dca 657%if %{with_ospfapi}
4aa7422e 658 %dir %{_includedir}/%{name}/ospfapi
b8b18c06 659 %{_includedir}/%{name}/ospfapi/*.h
68980084 660%endif
5a76db68 661%if %{with_eigrpd}
4aa7422e 662 %dir %{_includedir}/%{name}/eigrpd
b8b18c06 663 %{_includedir}/%{name}/eigrpd/*.h
5a76db68 664%endif
e0626854 665
95c16f4c 666
788cdc6d 667%changelog
7134904b
RZ
668* Sun May 28 2018 Rafael Zalamena <rzalamena@opensourcerouting.org> - %{version}
669- Add BFDd support
670
bc1dc4fe 671* Sun May 20 2018 Martin Winter <mwinter@opensourcerouting.org>
b4c554e2
MW
672- Fixed RPKI RPM build
673
674* Sun Mar 4 2018 Martin Winter <mwinter@opensourcerouting.org>
aaf38c94
MW
675- Add option to build with RPKI (default: disabled)
676
677* Tue Feb 20 2018 Martin Winter <mwinter@opensourcerouting.org>
609dee9d
MW
678- Adapt to new documentation structure based on Sphinx
679
680* Fri Oct 20 2017 Martin Winter <mwinter@opensourcerouting.org>
75429e11 681- Fix script location for watchfrr restart functions in daemon config
c88ca85d 682- Fix postun script to restart frr during upgrade
75429e11
MW
683
684* Mon Jun 5 2017 Martin Winter <mwinter@opensourcerouting.org>
5a76db68
MW
685- added NHRP and EIGRP daemon
686
687* Mon Apr 17 2017 Martin Winter <mwinter@opensourcerouting.org>
41b86ba4
MW
688- new subpackage frr-pythontools with python 2.7 restart script
689- remove PIMd from CentOS/RedHat 6 RPM packages (won't work - too old)
2cdd3d94 690- converted to single frr init script (not per daemon) based on debian init script
150e7c7e 691- created systemd service file for systemd based systems (which uses init script)
41b86ba4
MW
692- Various other RPM package fixes for FRR 2.0
693
694* Fri Jan 6 2017 Martin Winter <mwinter@opensourcerouting.org>
447a8fe9 695- Renamed to frr for FRRouting fork of Quagga
c115e4a4 696
150e7c7e 697* Thu Feb 11 2016 Paul Jakma <paul@jakma.org>
30da4585
PJ
698- remove with_ipv6 conditionals, always build v6
699- Fix UTF-8 char in spec changelog
700- remove quagga.pam.stack, long deprecated.
701
f755bf6d
MW
702* Thu Oct 22 2015 Martin Winter <mwinter@opensourcerouting.org>
703- Cleanup configure: remove --enable-ipv6 (default now), --enable-nssa,
704 --enable-netlink
705- Remove support for old fedora 4/5
706- Fix for package nameing
707- Fix Weekdays of previous changelogs (bogus dates)
150e7c7e 708- Add conditional logic to only build tex footnotes with supported texi2html
f755bf6d
MW
709- Added pimd to files section and fix double listing of /var/lib*/quagga
710- Numerous fixes to unify upstart/systemd startup into same spec file
9473e340 711- Only allow use of watchfrr for non-systemd systems. no need with systemd
f755bf6d
MW
712
713* Fri Sep 4 2015 Paul Jakma <paul@jakma.org>
7c08d77f
PJ
714- buildreq updates
715- add a default define for with_pimd
716
f755bf6d 717* Mon Sep 12 2005 Paul Jakma <paul@dishone.st>
e7cd37bf 718- Steal some changes from Fedora spec file:
719- Add with_rtadv variable
720- Test for groups/users with getent before group/user adding
721- Readline need not be an explicit prerequisite
722- install-info delete should be postun, not preun
723
fc43ecc7 724* Wed Jan 12 2005 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
725- on package upgrade, implement careful, phased restart logic
726- use gcc -rdynamic flag when linking for better backtraces
727
f3931751 728* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
729- daemonv6_list should contain only IPv6 daemons
730
b3324e27 731* Wed Dec 22 2004 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
9473e340 732- watchfrr added
b3324e27 733- on upgrade, all daemons should be condrestart'ed
734- on removal, all daemons should be stopped
735
36002ae5 736* Mon Nov 08 2004 Paul Jakma <paul@dishone.st>
737- Use makeinfo --html to generate quagga.html
738
0df63b52 739* Sun Nov 07 2004 Paul Jakma <paul@dishone.st>
740- Fix with_ipv6 set to 0 build
741
cfc1842b 742* Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
743- Update to 0.97.2
744
745* Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
746- Make directories be owned by the packages concerned
747- Update logrotate scripts to use correct path to killall and use pid files
748
da29c6b0 749* Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
750- Update to 0.97.0
751
54b25dca 752* Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
753- build snmp support by default
754- build irdp support
755- build with shared libs
756- devel subpackage for archives and headers
757
00bc5603 758* Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
759- updated sysconfig files to specify local dir
760- added ospf_dump.c crash quick fix patch
761- added ospfd persistent interface configuration patch
762
15d74e93 763* Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
764- sync to CVS
765- integrate RH sysconfig patch to specify daemon options (RH)
766- default to have vty listen only to 127.1 (RH)
767- add user with fixed UID/GID (RH)
768- create user with shell /sbin/nologin rather than /bin/false (RH)
769- stop daemons on uninstall (RH)
f755bf6d 770- delete info file on preun, not postun to avoid deletion on upgrade. (RH)
15d74e93 771- isisd added
772- cleanup tasks carried out for every daemon
773
406f7000 774* Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
775- Fix -devel package to include all files
776- Sync to 0.96.4
777
6bd8fd3b 778* Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
779- Renamed to Quagga
780- Sync to Quagga release 0.96
781
f755bf6d 782* Thu Mar 20 2003 Paul Jakma <paul@dishone.st>
edd7c245 783- zebra privileges support
784
f755bf6d 785* Tue Mar 18 2003 Paul Jakma <paul@dishone.st>
e0626854 786- Fix mem leak in 'show thread cpu'
787- Ralph Keller's OSPF-API
788- Amir: Fix configure.ac for net-snmp
789
448ed4a2 790* Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
791- ospfd IOS prefix to interface matching for 'network' statement
792- temporary fix for PtP and IPv6
793- sync to zebra.org CVS
794
8f754983 795* Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
796- update to latest cvs
797- Yon's "show thread cpu" patch - 17217
798- walk up tree - 17218
799- ospfd NSSA fixes - 16681
800- ospfd nsm fixes - 16824
150e7c7e 801- ospfd OLSA fixes and new feature - 16823
8f754983 802- KAME and ifindex fixes - 16525
803- spec file changes to allow redhat files to be in tree
804
d7ccae28 805* Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
806- Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
807- Fixed up some build requirements (patch)
808- Added conditional build requirements for vtysh / snmp
f755bf6d 809- Added conditional to files for _bindir depending on vtysh
d7ccae28 810
788cdc6d 811* Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
812- update to latest CVS
813- add Greg Troxel's md5 buffer copy/dup fix
814- add RIPv1 fix
815- add Frank's multicast flag fix
816
817* Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
818- update to latest CVS
819- timestamped crypt_seqnum patch
820- oi->on_write_q fix
821
822* Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
823- update to latest CVS
824- add vtysh 'write-config (integrated|daemon)' patch
825- always 'make rebuild' in vtysh/ to catch new commands
826
827* Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
828- update to 0.93b
829
830* Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
831- update to latest CVS
832- add "/sbin/ip route flush proto zebra" to zebra RH init on startup
833
834* Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
835- update to current CVS
836- add OSPF point to multipoint patch
837- add OSPF bugfixes
838- add BGP hash optimisation patch
839
840* Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
841- update to 0.93-pre1 / CVS
842- add link state detection support
843- add generic PtP and RFC3021 support
844- various bug fixes
845
846* Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
847- Fix bug #51336
848
f755bf6d 849* Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
788cdc6d 850- Use generic initscript strings instead of initscript specific
851 ( "Starting foo: " -> "Starting $prog:" )
852
853* Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
854- Bump the release when rebuilding into the dist.
855
856* Tue Feb 6 2001 Tim Powers <timp@redhat.com>
857- built for Powertools
858
150e7c7e 859* Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
788cdc6d 860- Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
861- Update to 0.91a
862- Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
863- Should be quite Red Hat'isque now.