1 Building your own Quagga RPM
2 ============================
3 (Tested on CentOS 6, CentOS 7 and Fedora 22.)
5 1. Install the following packages to build the RPMs:
7 yum install git autoconf automake libtool make gawk readline-devel \
8 texinfo dejagnu net-snmp-devel groff rpm-build net-snmp-devel \
11 (use `dnf install` on new Fedora instead of `yum install `)
13 2. Checkout Quagga under a **unpriviledged** user account
15 git clone git://git.savannah.nongnu.org/quagga.git quagga
17 3. Run Bootstrap and make distribution tar.gz
21 ./configure --with-pkg-extra-version=-MyRPMVersion
24 Note: configure parameters are not important for the RPM building - except the
25 `with-pkg-extra-version` if you want to give the RPM a specific name to
26 mark your own unoffical build
28 4. Create RPM directory structure and populate with sources
31 mkdir rpmbuild/SOURCES
33 cp redhat/*.spec rpmbuild/SPECS/
34 cp quagga*.tar.gz rpmbuild/SOURCES/
36 5. Edit rpm/SPECS/quagga.spec with configuration as needed
37 Look at the beginning of the file and adjust the following parameters to enable
38 or disable features as required:
40 ################# Quagga configure options ####################
41 # with-feature options
42 %{!?with_snmp: %global with_snmp 1 }
43 %{!?with_vtysh: %global with_vtysh 1 }
44 %{!?with_ospf_te: %global with_ospf_te 1 }
45 %{!?with_opaque_lsa: %global with_opaque_lsa 1 }
46 %{!?with_tcp_zebra: %global with_tcp_zebra 0 }
47 %{!?with_vtysh: %global with_vtysh 1 }
48 %{!?with_pam: %global with_pam 1 }
49 %{!?with_ospfclient: %global with_ospfclient 1 }
50 %{!?with_ospfapi: %global with_ospfapi 1 }
51 %{!?with_irdp: %global with_irdp 1 }
52 %{!?with_rtadv: %global with_rtadv 1 }
53 %{!?with_isisd: %global with_isisd 1 }
54 %{!?with_pimd: %global with_pimd 1 }
55 %{!?with_shared: %global with_shared 1 }
56 %{!?with_multipath: %global with_multipath 64 }
57 %{!?quagga_user: %global quagga_user quagga }
58 %{!?vty_group: %global vty_group quaggavt }
59 %{!?with_fpm: %global with_fpm 0 }
60 %{!?with_watchquagga: %global with_watchquagga 1 }
64 rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/quagga.spec
68 If all works correctly, then you should end up with the RPMs under `rpmbuild/RPMS`
69 and the Source RPM under `rpmbuild/SRPMS`
72 Enabling daemons after installation of the package:
73 ---------------------------------------------------
75 ### init.d based systems (ie CentOS 6):
77 1. Enable the daemons as needed to run after boot (Zebra is mandatory)
85 2. If you want to run `watchquagga`, then configure `/etc/sysconfig/quagga`
86 and uncomment the line with the daemons for `watchquagga` to monitor,
87 then enable watchquagga
89 chkconfig watchquagga on
91 3. Check your firewall / IPtables to make sure the routing protocols are
94 4. Start the daemons (or reboot)
101 Configuration is stored in `/etc/quagga/*.conf` files.
104 ### systemd based systems (ie CentOS 7, Fedora 22)
106 1. Enable the daemons as needed to run after boot (Zebra is mandatory)
108 systemctl enable zebra
109 systemctl enable ospfd
110 systemctl enable ospf6d
111 systemctl enable bgpd
114 Note: There is no watchquagga on systemd based systems. Systemd contains
115 the functionality of monitoring and restarting daemons.
117 2. Check your firewall / IPtables to make sure the routing protocols are
120 3. Start the daemons (or reboot)
122 systemctl start zebra
124 systemctl start ospfd
127 Configuration is stored in `/etc/quagga/*.conf` files.