]> git.proxmox.com Git - mirror_frr.git/blobdiff - redhat/quagga.spec.in
2004-11-07 Paul Jakma <paul@dishone.st>
[mirror_frr.git] / redhat / quagga.spec.in
index 470197006f80ebc21cb945b0cc6398c884c29294..ec7f206fc26f12607dc4583c0466ffc16bc217c4 100644 (file)
@@ -1,5 +1,5 @@
 # configure options
-%define        with_snmp       0
+%define        with_snmp       1
 %define                with_vtysh      1
 %define                with_ospf_te    1
 %define                with_nssa       1
@@ -10,6 +10,9 @@
 %define                with_ipv6       1
 %define                with_ospfclient 1
 %define                with_ospfapi    1
+%define                with_irdp       1
+%define                with_isisd      0
+%define                with_shared     1
 %define                with_multipath  64
 %define                quagga_user     quagga
 %define                vty_group       quaggavty
 
 # defines for configure
 %define                _libexecdir     %{_exec_prefix}/libexec/quagga
-%define                _includedir     %{_prefix}/include/quagga
 %define                _libdir         %{_exec_prefix}/%{_lib}/quagga
+%define                _includedir     %{_prefix}/include
 %define                _localstatedir  /var/run/quagga
 
+# misc internal defines
+%define         quagga_uid      92
+%define         quagga_gid      92
+%define                daemon_list     zebra ripd ospfd bgpd
+%if %{with_ipv6}
+%define                daemonv6_list   %{daemon_list} ripngd ospf6d
+%endif
+%if %{with_isisd}
+%define                daemon_other    isisd
+%else
+%define                daemon_other    ""
+%endif
+
+# allow build dir to be kept
+%define                keep_build      0
+
 Summary: Routing daemon
 Name:          quagga
 Version:       @VERSION@
@@ -34,15 +53,15 @@ License:    GPL
 Group: System Environment/Daemons
 Source0:       http://www.quagga.net/snapshots/cvs/%{name}-%{version}.tar.gz
 URL:           http://www.quagga.net
-%if %with_snmp
-#BuildRequires:        ucd-snmp-devel
-Prereq:                ucd-snmp
+%if %{with_snmp}
+BuildRequires: net-snmp-devel
+Prereq:                net-snmp
 %endif
-%if %with_vtysh
+%if %{with_vtysh}
 BuildRequires: readline readline-devel ncurses ncurses-devel
 Prereq:                readline ncurses
 %endif
-BuildRequires: texinfo tetex autoconf pam-devel patch
+BuildRequires: texinfo tetex autoconf pam-devel patch libcap-devel
 # Initscripts > 5.60 is required for IPv6 support
 Prereq:                initscripts >= 5.60
 Prereq:                ncurses readline pam
@@ -84,41 +103,54 @@ developing OSPF-API and quagga applications.
 
 %build
 %configure \
-%if %with_ipv6
+%if !%{with_shared}
+       --disable-shared \
+%endif
+%if %{with_ipv6}
        --enable-ipv6 \
 %endif
-%if %with_snmp
+%if %{with_snmp}
        --enable-snmp \
 %endif
-%if %with_multipath
-       --enable-multipath=%with_multipath \
+%if %{with_multipath}
+       --enable-multipath=%{with_multipath} \
 %endif
-%if %with_tcp_zebra
+%if %{with_tcp_zebra}
        --enable-tcp-zebra \
 %endif
-%if %with_nssa
+%if %{with_nssa}
        --enable-nssa \
 %endif
-%if %with_opaque_lsa
+%if %{with_opaque_lsa}
        --enable-opaque-lsa \
 %endif
-%if %with_ospf_te
+%if %{with_ospf_te}
        --enable-ospf-te \
 %endif
-%if %with_vtysh
+%if %{with_vtysh}
        --enable-vtysh \
 %endif
-%if %with_ospfclient 
+%if %{with_ospfclient}
        --enable-ospfclient=yes \
 %else
        --enable-ospfclient=no\
 %endif
-%if %with_ospfapi
+%if %{with_ospfapi}
        --enable-ospfapi=yes \
 %else
        --enable-ospfapi=no \
 %endif
-%if %with_pam
+%if %{with_irdp}
+       --enable-irdp=yes \
+%else
+       --enable-irdp=no \
+%endif
+%if %{with_isisd}
+       --enable-isisd \
+%else
+       --disable-isisd \
+%endif
+%if %{with_pam}
        --with-libpam \
 %endif
 %if %quagga_user
@@ -128,7 +160,6 @@ developing OSPF-API and quagga applications.
 %if %vty_group
        --enable-vty-group=%vty_group \
 %endif
---with-cflags="-O2" \
 --enable-netlink
 
 make %{?_smp_mflags} MAKEINFO="makeinfo --no-split"
@@ -149,16 +180,19 @@ make install \
 # Remove this file, as it is uninstalled and causes errors when building on RH9
 rm -rf $RPM_BUILD_ROOT/usr/share/info/dir
 
-install %{zeb_rh_src}/zebra.init $RPM_BUILD_ROOT/etc/rc.d/init.d/zebra
-install %{zeb_rh_src}/bgpd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/bgpd
-%if %with_ipv6
-install %{zeb_rh_src}/ospf6d.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospf6d
-install %{zeb_rh_src}/ripngd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripngd
-%endif
-install %{zeb_rh_src}/ospfd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ospfd
-install %{zeb_rh_src}/ripd.init $RPM_BUILD_ROOT/etc/rc.d/init.d/ripd
-install -m644 %{zeb_rh_src}/quagga.pam $RPM_BUILD_ROOT/etc/pam.d/quagga
-install -m644 %{zeb_rh_src}/quagga.logrotate $RPM_BUILD_ROOT/etc/logrotate.d/quagga
+# install etc sources
+for daemon in %{daemon_list} %{daemonv6_list} %{daemon_other} ; do
+       if [ x"${daemon}" != x"" ] ; then
+               install %{zeb_rh_src}/${daemon}.init \
+                       $RPM_BUILD_ROOT/etc/rc.d/init.d/${daemon}
+       fi
+done
+install -m644 %{zeb_rh_src}/quagga.pam \
+       $RPM_BUILD_ROOT/etc/pam.d/quagga
+install -m644 %{zeb_rh_src}/quagga.logrotate \
+       $RPM_BUILD_ROOT/etc/logrotate.d/quagga
+install -m644 %{zeb_rh_src}/quagga.sysconfig \
+       $RPM_BUILD_ROOT/etc/sysconfig/quagga
 install -d -m750  $RPM_BUILD_ROOT/var/run/quagga
 
 %pre
@@ -168,7 +202,9 @@ groupadd -r %vty_group 2> /dev/null || :
 %endif
 # add quagga user and group
 %if %quagga_user
-/usr/sbin/useradd -M -r -s /bin/false -c "Quagga routing suite" \
+/usr/sbin/groupadd -g %quagga_gid quagga 2> /dev/null || :
+/usr/sbin/useradd  -u %quagga_uid -g %quagga_gid \
+ -M -r -s /sbin/nologin -c "Quagga routing suite" \
  -d %_localstatedir %quagga_user 2> /dev/null || :
 %endif
 
@@ -179,7 +215,8 @@ groupadd -r %vty_group 2> /dev/null || :
 zebra_spec_add_service ()
 {
   # Add port /etc/services entry if it isn't already there 
-  if [ -f /etc/services ] && ! grep -q "^$1[^a-zA-Z0-9]" /etc/services ; then
+  if [ -f /etc/services ] && \
+      ! %__sed -e 's/#.*$//' /etc/services | %__grep -wq $1 ; then
     echo "$1           $2                      # $3"  >> /etc/services
   fi
 }
@@ -187,26 +224,24 @@ zebra_spec_add_service ()
 zebra_spec_add_service zebrasrv 2600/tcp "zebra service"
 zebra_spec_add_service zebra    2601/tcp "zebra vty"
 zebra_spec_add_service ripd     2602/tcp "RIPd vty"
-%if %with_ipv6
+%if %{with_ipv6}
 zebra_spec_add_service ripngd   2603/tcp "RIPngd vty"
 %endif
 zebra_spec_add_service ospfd    2604/tcp "OSPFd vty"
 zebra_spec_add_service bgpd     2605/tcp "BGPd vty"
-%if %with_ipv6
+%if %{with_ipv6}
 zebra_spec_add_service ospf6d   2606/tcp "OSPF6d vty"
 %endif
-%if %with_ospfapi
+%if %{with_ospfapi}
 zebra_spec_add_service ospfapi  2607/tcp "OSPF-API"
 %endif
-
-/sbin/chkconfig --add zebra 
-/sbin/chkconfig --add ripd
-%if %with_ipv6
-/sbin/chkconfig --add ripngd
-/sbin/chkconfig --add ospf6d
+%if %{with_isisd}
+zebra_spec_add_service isisd    2608/tcp "ISISd vty"
 %endif
-/sbin/chkconfig --add ospfd
-/sbin/chkconfig --add bgpd
+
+for daemon in %daemon_list ; do
+       /sbin/chkconfig --add ${daemon}
+done
 
 /sbin/install-info %{_infodir}/quagga.info.gz %{_infodir}/dir
 
@@ -222,35 +257,24 @@ fi
 
 %postun
 if [ "$1" -ge  "1" ]; then
-       /etc/rc.d/init.d/zebra  condrestart >/dev/null 2>&1
-       /etc/rc.d/init.d/ripd   condrestart >/dev/null 2>&1
-%if %with_ipv6
-       /etc/rc.d/init.d/ripngd condrestart >/dev/null 2>&1
-%endif
-       /etc/rc.d/init.d/ospfd  condrestart >/dev/null 2>&1
-%if %with_ipv6
-       /etc/rc.d/init.d/ospf6d condrestart >/dev/null 2>&1
-%endif
-       /etc/rc.d/init.d/bgpd   condrestart >/dev/null 2>&1
+       for daemon in %daemon_list ; do
+               /etc/rc.d/init.d/${daemon} condrestart >/dev/null 2>&1
+       done
 fi
-/sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
 
 %preun
 if [ "$1" = "0" ]; then
-        /sbin/chkconfig --del zebra
-       /sbin/chkconfig --del ripd
-%if %with_ipv6
-       /sbin/chkconfig --del ripngd
-%endif
-       /sbin/chkconfig --del ospfd
-%if %with_ipv6
-       /sbin/chkconfig --del ospf6d
-%endif
-       /sbin/chkconfig --del bgpd
+       for daemon in %daemon_list ; do
+               /etc/rc.d/init.d/${daemon} stop  >/dev/null 2>&1
+               /sbin/chkconfig --del ${daemon}
+       done
+       /sbin/install-info --delete %{_infodir}/quagga.info.gz %{_infodir}/dir
 fi
 
 %clean
-#rm -rf $RPM_BUILD_ROOT
+%if !%{keep_build}
+rm -rf $RPM_BUILD_ROOT
+%endif
 
 %files
 %defattr(-,root,root)
@@ -258,7 +282,7 @@ fi
 %doc doc/quagga.html
 %doc doc/mpls
 %doc ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
-%if %quagga_user
+%if %{quagga_user}
 %dir %attr(751,%quagga_user,%quagga_user) %{_sysconfdir}
 %dir %attr(750,%quagga_user,%quagga_user) /var/log/quagga 
 %dir %attr(751,%quagga_user,%quagga_user) /var/run/quagga
@@ -268,17 +292,33 @@ fi
 %dir %attr(755,root,root) /usr/share/info
 %dir %attr(750,root,root) /var/run/quagga
 %endif
-%if %vty_group
+%if %{vty_group}
 %attr(750,%quagga_user,%vty_group) %{_sysconfdir}/vtysh.conf.sample
 %endif
 %{_infodir}/*info*
 %{_mandir}/man*/*
-%{_sbindir}/*
-%if %with_vtysh
+%{_sbindir}/zebra
+%{_sbindir}/ospfd
+%{_sbindir}/ripd
+%{_sbindir}/bgpd
+%if %{with_ipv6}
+%{_sbindir}/ripngd
+%{_sbindir}/ospf6d
+%endif
+%if %{with_isisd}
+%{_sbindir}/isisd
+%endif
+%dir %attr(755,root,root) %{_libdir}
+%if %{with_shared}
+%{_libdir}/lib*.so
+%{_libdir}/lib*.so.*
+%endif
+%if %{with_vtysh}
 %{_bindir}/*
 %endif
 %config /etc/quagga/[!v]*
 %config /etc/rc.d/init.d/*
+%config(noreplace) /etc/sysconfig/quagga
 %config(noreplace) /etc/pam.d/quagga
 %config(noreplace) %attr(640,root,root) /etc/logrotate.d/*
 
@@ -288,14 +328,54 @@ fi
 
 %files devel
 %defattr(-,root,root)
-%dir %{_libdir}/*
-%dir %{_includedir}/*.h
-%dir %{_includedir}/ospfd/*
-%if %with_ospfapi
-%dir %{_includedir}/ospfapi/*
+%if %{with_ospfclient}
+%{_sbindir}/ospfclient
+%endif
+%{_libdir}/*.a
+%{_libdir}/*.la
+%dir %attr(755,root,root) %{_includedir}/%{name}
+%{_includedir}/%name/*.h
+%dir %attr(755,root,root) %{_includedir}/%{name}/ospfd
+%{_includedir}/%name/ospfd/*.h
+%if %{with_ospfapi}
+%dir %attr(755,root,root) %{_includedir}/%{name}/ospfapi
+%{_includedir}/%name/ospfapi/*.h
 %endif
 
 %changelog
+%changelog
+* Sat Oct 23 2004 Paul Jakma <paul@dishone.st>
+- Update to 0.97.2
+
+* Sat Oct 23 2004 Andrew J. Schorr <aschorr@telemetry-investments.com>
+- Make directories be owned by the packages concerned
+- Update logrotate scripts to use correct path to killall and use pid files
+
+* Fri Oct 08 2004 Paul Jakma <paul@dishone.st>
+- Update to 0.97.0
+
+* Wed Sep 15 2004 Paul Jakma <paul@dishone.st>
+- build snmp support by default
+- build irdp support
+- build with shared libs
+- devel subpackage for archives and headers
+
+* Thu Jan 08 2004 Paul Jakma <paul@dishone.st>
+- updated sysconfig files to specify local dir
+- added ospf_dump.c crash quick fix patch
+- added ospfd persistent interface configuration patch
+
+* Tue Dec 30 2003 Paul Jakma <paul@dishone.st>
+- sync to CVS
+- integrate RH sysconfig patch to specify daemon options (RH)
+- default to have vty listen only to 127.1 (RH)
+- add user with fixed UID/GID (RH)
+- create user with shell /sbin/nologin rather than /bin/false (RH)
+- stop daemons on uninstall (RH)
+- delete info file on %preun, not %postun to avoid deletion on upgrade. (RH)
+- isisd added
+- cleanup tasks carried out for every daemon
+
 * Sun Nov 2 2003 Paul Jakma <paul@dishone.st>
 - Fix -devel package to include all files
 - Sync to 0.96.4