Annotation of embedaddon/quagga/redhat/README.rpm_build.md, revision 1.1.1.1
1.1 misho 1: Building your own Quagga RPM
2: ============================
3: (Tested on CentOS 6, CentOS 7 and Fedora 22.)
4:
5: 1. Install the following packages to build the RPMs:
6:
7: yum install git autoconf automake libtool make gawk readline-devel \
8: texinfo dejagnu net-snmp-devel groff rpm-build net-snmp-devel \
9: libcap-devel texi2html
10:
11: (use `dnf install` on new Fedora instead of `yum install `)
12:
13: 2. Checkout Quagga under a **unpriviledged** user account
14:
15: git clone git://git.savannah.nongnu.org/quagga.git quagga
16:
17: 3. Run Bootstrap and make distribution tar.gz
18:
19: cd quagga
20: ./bootstrap.sh
21: ./configure --with-pkg-extra-version=-MyRPMVersion
22: make dist
23:
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
27:
28: 4. Create RPM directory structure and populate with sources
29:
30: mkdir rpmbuild
31: mkdir rpmbuild/SOURCES
32: mkdir rpmbuild/SPECS
33: cp redhat/*.spec rpmbuild/SPECS/
34: cp quagga*.tar.gz rpmbuild/SOURCES/
35:
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:
39:
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 }
61:
62: 6. Build the RPM
63:
64: rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/quagga.spec
65:
66: DONE.
67:
68: If all works correctly, then you should end up with the RPMs under `rpmbuild/RPMS`
69: and the Source RPM under `rpmbuild/SRPMS`
70:
71:
72: Enabling daemons after installation of the package:
73: ---------------------------------------------------
74:
75: ### init.d based systems (ie CentOS 6):
76:
77: 1. Enable the daemons as needed to run after boot (Zebra is mandatory)
78:
79: chkconfig zebra on
80: chkconfig ospfd on
81: chkconfig ospf6d on
82: chkconfig bgpd on
83: ... etc
84:
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
88:
89: chkconfig watchquagga on
90:
91: 3. Check your firewall / IPtables to make sure the routing protocols are
92: allowed.
93:
94: 4. Start the daemons (or reboot)
95:
96: service zebra start
97: service bgpd start
98: service ospfd start
99: ... etc
100:
101: Configuration is stored in `/etc/quagga/*.conf` files.
102:
103:
104: ### systemd based systems (ie CentOS 7, Fedora 22)
105:
106: 1. Enable the daemons as needed to run after boot (Zebra is mandatory)
107:
108: systemctl enable zebra
109: systemctl enable ospfd
110: systemctl enable ospf6d
111: systemctl enable bgpd
112: ... etc
113:
114: Note: There is no watchquagga on systemd based systems. Systemd contains
115: the functionality of monitoring and restarting daemons.
116:
117: 2. Check your firewall / IPtables to make sure the routing protocols are
118: allowed.
119:
120: 3. Start the daemons (or reboot)
121:
122: systemctl start zebra
123: systemctl start bgpd
124: systemctl start ospfd
125: ... etc
126:
127: Configuration is stored in `/etc/quagga/*.conf` files.
128:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>