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