]> git.proxmox.com Git - mirror_frr.git/blob - redhat/quagga.spec.in
2003-11-02 Paul Jakma <paul@dishone.st>
[mirror_frr.git] / redhat / quagga.spec.in
1 # configure options
2 %define with_snmp 0
3 %define with_vtysh 1
4 %define with_ospf_te 1
5 %define with_nssa 1
6 %define with_opaque_lsa 1
7 %define with_tcp_zebra 0
8 %define with_vtysh 1
9 %define with_pam 1
10 %define with_ipv6 1
11 %define with_ospfclient 1
12 %define with_ospfapi 1
13 %define with_multipath 64
14 %define quagga_user quagga
15 %define vty_group quaggavty
16
17 # path defines
18 %define _sysconfdir /etc/quagga
19 %define zeb_src %{_builddir}/%{name}-%{version}
20 %define zeb_rh_src %{zeb_src}/redhat
21 %define zeb_docs %{zeb_src}/doc
22
23 # defines for configure
24 %define _libexecdir %{_exec_prefix}/libexec/quagga
25 %define _includedir %{_prefix}/include/quagga
26 %define _libdir %{_exec_prefix}/%{_lib}/quagga
27 %define _localstatedir /var/run/quagga
28
29 Summary: Routing daemon
30 Name: quagga
31 Version: @VERSION@
32 Release: @CONFDATE@01
33 License: GPL
34 Group: System Environment/Daemons
35 Source0: http://www.quagga.net/snapshots/cvs/%{name}-%{version}.tar.gz
36 URL: http://www.quagga.net
37 %if %with_snmp
38 #BuildRequires: ucd-snmp-devel
39 Prereq: ucd-snmp
40 %endif
41 %if %with_vtysh
42 BuildRequires: readline readline-devel ncurses ncurses-devel
43 Prereq: readline ncurses
44 %endif
45 BuildRequires: texinfo tetex autoconf pam-devel patch
46 # Initscripts > 5.60 is required for IPv6 support
47 Prereq: initscripts >= 5.60
48 Prereq: ncurses readline pam
49 Prereq: /sbin/install-info
50 Provides: routingdaemon
51 BuildRoot: %{_tmppath}/%{name}-%{version}-root
52 Obsoletes: bird gated mrt zebra
53
54 %description
55 Quagga is a free software that manages TCP/IP based routing
56 protocol. It takes multi-server and multi-thread approach to resolve
57 the current complexity of the Internet.
58
59 Quagga supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, and RIPng.
60
61 Quagga is intended to be used as a Route Server and a Route Reflector. It is
62 not a toolkit, it provides full routing power under a new architecture.
63 Quagga by design has a process for each protocol.
64
65 Quagga is a fork of GNU Zebra.
66
67 %package contrib
68 Summary: contrib tools for quagga
69 Group: System Environment/Daemons
70
71 %description contrib
72 Contributed/3rd party tools which may be of use with quagga.
73
74 %package devel
75 Summary: Header and object files for quagga development
76 Group: System Environment/Daemons
77
78 %description devel
79 The quagga-devel package contains the header and object files neccessary for
80 developing OSPF-API and quagga applications.
81
82 %prep
83 %setup -q
84
85 %build
86 %configure \
87 %if %with_ipv6
88 --enable-ipv6 \
89 %endif
90 %if %with_snmp
91 --enable-snmp \
92 %endif
93 %if %with_multipath
94 --enable-multipath=%with_multipath \
95 %endif
96 %if %with_tcp_zebra
97 --enable-tcp-zebra \
98 %endif
99 %if %with_nssa
100 --enable-nssa \
101 %endif
102 %if %with_opaque_lsa
103 --enable-opaque-lsa \
104 %endif
105 %if %with_ospf_te
106 --enable-ospf-te \
107 %endif
108 %if %with_vtysh
109 --enable-vtysh \
110 %endif
111 %if %with_ospfclient
112 --enable-ospfclient=yes \
113 %else
114 --enable-ospfclient=no\
115 %endif
116 %if %with_ospfapi
117 --enable-ospfapi=yes \
118 %else
119 --enable-ospfapi=no \
120 %endif
121 %if %with_pam
122 --with-libpam \
123 %endif
124 %if %quagga_user
125 --enable-user=%quagga_user \
126 --enable-group=%quagga_user \
127 %endif
128 %if %vty_group
129 --enable-vty-group=%vty_group \
130 %endif
131 --with-cflags="-O2" \
132 --enable-netlink
133
134 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
135
136 pushd doc
137 texi2html quagga.texi
138 popd
139
140 %install
141 rm -rf $RPM_BUILD_ROOT
142
143 install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,logrotate.d,pam.d} \
144 $RPM_BUILD_ROOT/var/log/quagga $RPM_BUILD_ROOT%{_infodir}
145
146 make install \
147 DESTDIR=$RPM_BUILD_ROOT
148
149 # Remove this file, as it is uninstalled and causes errors when building on RH9
150 rm -rf $RPM_BUILD_ROOT/usr/share/info/dir
151
152 install %{zeb_rh_src}/zebra.init $RPM_BUILD_ROOT/etc/rc.d/init.d/zebra
153 install %{zeb_rh_src}/bgpd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/bgpd
154 %if %with_ipv6
155 install %{zeb_rh_src}/ospf6d.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospf6d
156 install %{zeb_rh_src}/ripngd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripngd
157 %endif
158 install %{zeb_rh_src}/ospfd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospfd
159 install %{zeb_rh_src}/ripd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripd
160 install -m644 %{zeb_rh_src}/quagga.pam $RPM_BUILD_ROOT/etc/pam.d/quagga
161 install -m644 %{zeb_rh_src}/quagga.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/quagga
162 install -d -m750 $RPM_BUILD_ROOT/var/run/quagga
163
164 %pre
165 # add vty_group
166 %if %vty_group
167 groupadd -r %vty_group 2> /dev/null || :
168 %endif
169 # add quagga user and group
170 %if %quagga_user
171 /usr/sbin/useradd -M -r -s /bin/false -c "Quagga routing suite" \
172 -d %_localstatedir %quagga_user 2> /dev/null || :
173 %endif
174
175 %post
176 # zebra_spec_add_service <service name> <port/proto> <comment>
177 # e.g. zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
178
179 zebra_spec_add_service ()
180 {
181 # Add port /etc/services entry if it isn't already there
182 if [ -f /etc/services ] && ! grep -q "^$1[^a-zA-Z0-9]" /etc/services ; then
183 echo "$1 $2 # $3" >> /etc/services
184 fi
185 }
186
187 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
188 zebra_spec_add_service zebra 2601/tcp "zebra vty"
189 zebra_spec_add_service ripd 2602/tcp "RIPd vty"
190 %if %with_ipv6
191 zebra_spec_add_service ripngd 2603/tcp "RIPngd vty"
192 %endif
193 zebra_spec_add_service ospfd 2604/tcp "OSPFd vty"
194 zebra_spec_add_service bgpd 2605/tcp "BGPd vty"
195 %if %with_ipv6
196 zebra_spec_add_service ospf6d 2606/tcp "OSPF6d vty"
197 %endif
198 %if %with_ospfapi
199 zebra_spec_add_service ospfapi 2607/tcp "OSPF-API"
200 %endif
201
202 /sbin/chkconfig --add zebra
203 /sbin/chkconfig --add ripd
204 %if %with_ipv6
205 /sbin/chkconfig --add ripngd
206 /sbin/chkconfig --add ospf6d
207 %endif
208 /sbin/chkconfig --add ospfd
209 /sbin/chkconfig --add bgpd
210
211 /sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
212
213 # Create dummy files if they don't exist so basic functions can be used.
214 if [ ! -e %{_sysconfdir}/zebra.conf ]; then
215 echo "hostname `hostname`" > %{_sysconfdir}/zebra.conf
216 chmod 640 %{_sysconfdir}/zebra.conf
217 fi
218 if [ ! -e %{_sysconfdir}/vtysh.conf ]; then
219 touch %{_sysconfdir}/vtysh.conf
220 chmod 640 %{_sysconfdir}/vtysh.conf
221 fi
222
223 %postun
224 if [ "$1" -ge "1" ]; then
225 /etc/rc.d/init.d/zebra condrestart >/dev/null 2>&1
226 /etc/rc.d/init.d/ripd condrestart >/dev/null 2>&1
227 %if %with_ipv6
228 /etc/rc.d/init.d/ripngd condrestart >/dev/null 2>&1
229 %endif
230 /etc/rc.d/init.d/ospfd condrestart >/dev/null 2>&1
231 %if %with_ipv6
232 /etc/rc.d/init.d/ospf6d condrestart >/dev/null 2>&1
233 %endif
234 /etc/rc.d/init.d/bgpd condrestart >/dev/null 2>&1
235 fi
236 /sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
237
238 %preun
239 if [ "$1" = "0" ]; then
240 /sbin/chkconfig --del zebra
241 /sbin/chkconfig --del ripd
242 %if %with_ipv6
243 /sbin/chkconfig --del ripngd
244 %endif
245 /sbin/chkconfig --del ospfd
246 %if %with_ipv6
247 /sbin/chkconfig --del ospf6d
248 %endif
249 /sbin/chkconfig --del bgpd
250 fi
251
252 %clean
253 #rm -rf $RPM_BUILD_ROOT
254
255 %files
256 %defattr(-,root,root)
257 %doc */*.sample* AUTHORS COPYING
258 %doc doc/quagga.html
259 %doc doc/mpls
260 %doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
261 %if %quagga_user
262 %dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
263 %dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga
264 %dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
265 %else
266 %dir %attr(750,root,root) %{_sysconfdir}
267 %dir %attr(750,root,root) /var/log/quagga
268 %dir %attr(755,root,root) /usr/share/info
269 %dir %attr(750,root,root) /var/run/quagga
270 %endif
271 %if %vty_group
272 %attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
273 %endif
274 %{_infodir}/*info*
275 %{_mandir}/man*/*
276 %{_sbindir}/*
277 %if %with_vtysh
278 %{_bindir}/*
279 %endif
280 %config /etc/quagga/[!v]*
281 %config /etc/rc.d/init.d/*
282 %config(noreplace) /etc/pam.d/quagga
283 %config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
284
285 %files contrib
286 %defattr(-,root,root)
287 %doc tools
288
289 %files devel
290 %defattr(-,root,root)
291 %dir %{_libdir}/*
292 %dir %{_includedir}/ospfd/*
293 %if %with_ospfapi
294 %dir %{_includedir}/ospfapi/*
295 %endif
296
297 %changelog
298 * Tue Aug 12 2003 Paul Jakma <paul@dishone.st>
299 - Renamed to Quagga
300 - Sync to Quagga release 0.96
301
302 * Tue Mar 20 2003 Paul Jakma <paul@dishone.st>
303 - zebra privileges support
304
305 * Mon Mar 18 2003 Paul Jakma <paul@dishone.st>
306 - Fix mem leak in 'show thread cpu'
307 - Ralph Keller's OSPF-API
308 - Amir: Fix configure.ac for net-snmp
309
310 * Sat Mar 1 2003 Paul Jakma <paul@dishone.st>
311 - ospfd IOS prefix to interface matching for 'network' statement
312 - temporary fix for PtP and IPv6
313 - sync to zebra.org CVS
314
315 * Mon Jan 20 2003 Paul Jakma <paul@dishone.st>
316 - update to latest cvs
317 - Yon's "show thread cpu" patch - 17217
318 - walk up tree - 17218
319 - ospfd NSSA fixes - 16681
320 - ospfd nsm fixes - 16824
321 - ospfd OLSA fixes and new feature - 16823
322 - KAME and ifindex fixes - 16525
323 - spec file changes to allow redhat files to be in tree
324
325 * Sat Dec 28 2002 Alexander Hoogerhuis <alexh@ihatent.com>
326 - Added conditionals for building with(out) IPv6, vtysh, RIP, BGP
327 - Fixed up some build requirements (patch)
328 - Added conditional build requirements for vtysh / snmp
329 - Added conditional to %files for %_bindir depending on vtysh
330
331 * Mon Nov 11 2002 Paul Jakma <paulj@alphyra.ie>
332 - update to latest CVS
333 - add Greg Troxel's md5 buffer copy/dup fix
334 - add RIPv1 fix
335 - add Frank's multicast flag fix
336
337 * Wed Oct 09 2002 Paul Jakma <paulj@alphyra.ie>
338 - update to latest CVS
339 - timestamped crypt_seqnum patch
340 - oi->on_write_q fix
341
342 * Mon Sep 30 2002 Paul Jakma <paulj@alphyra.ie>
343 - update to latest CVS
344 - add vtysh 'write-config (integrated|daemon)' patch
345 - always 'make rebuild' in vtysh/ to catch new commands
346
347 * Fri Sep 13 2002 Paul Jakma <paulj@alphyra.ie>
348 - update to 0.93b
349
350 * Wed Sep 11 2002 Paul Jakma <paulj@alphyra.ie>
351 - update to latest CVS
352 - add "/sbin/ip route flush proto zebra" to zebra RH init on startup
353
354 * Sat Aug 24 2002 Paul Jakma <paulj@alphyra.ie>
355 - update to current CVS
356 - add OSPF point to multipoint patch
357 - add OSPF bugfixes
358 - add BGP hash optimisation patch
359
360 * Fri Jun 14 2002 Paul Jakma <paulj@alphyra.ie>
361 - update to 0.93-pre1 / CVS
362 - add link state detection support
363 - add generic PtP and RFC3021 support
364 - various bug fixes
365
366 * Thu Aug 09 2001 Elliot Lee <sopwith@redhat.com> 0.91a-6
367 - Fix bug #51336
368
369 * Wed Aug 1 2001 Trond Eivind Glomsrød <teg@redhat.com> 0.91a-5
370 - Use generic initscript strings instead of initscript specific
371 ( "Starting foo: " -> "Starting $prog:" )
372
373 * Fri Jul 27 2001 Elliot Lee <sopwith@redhat.com> 0.91a-4
374 - Bump the release when rebuilding into the dist.
375
376 * Tue Feb 6 2001 Tim Powers <timp@redhat.com>
377 - built for Powertools
378
379 * Sun Feb 4 2001 Pekka Savola <pekkas@netcore.fi>
380 - Hacked up from PLD Linux 0.90-1, Mandrake 0.90-1mdk and one from zebra.org.
381 - Update to 0.91a
382 - Very heavy modifications to init.d/*, .spec, pam, i18n, logrotate, etc.
383 - Should be quite Red Hat'isque now.