]>
Commit | Line | Data |
---|---|---|
9251d1f5 QY |
1 | .. _packaging-redhat: |
2 | ||
3 | Packaging Red Hat | |
4 | ================= | |
5 | ||
1fe4beb2 | 6 | Tested on CentOS 6, CentOS 7, CentOS 8 and Fedora 24. |
9251d1f5 QY |
7 | |
8 | 1. On CentOS 6, refer to :ref:`building-centos6` for details on installing | |
9 | sufficiently up-to-date package versions to enable building FRR. | |
10 | ||
11 | Newer automake/autoconf/bison is only needed to build the RPM and is **not** | |
12 | needed to install the binary RPM package. | |
13 | ||
14 | 2. Install the build dependencies for your platform. Refer to the | |
15 | platform-specific build documentation on how to do this. | |
16 | ||
17 | 3. Install the following additional packages:: | |
18 | ||
19 | yum install rpm-build net-snmp-devel pam-devel libcap-devel | |
20 | ||
21 | If your platform uses systemd:: | |
22 | ||
23 | yum install systemd-devel | |
24 | ||
03d2acc8 MW |
25 | For CentOS 7 and CentOS 8, the package will be built using python3 |
26 | and requires additional python3 packages:: | |
27 | ||
28 | yum install python3-devel python3-sphinx | |
29 | ||
1fe4beb2 DA |
30 | .. note:: |
31 | ||
32 | For CentOS 8 you need to install ``platform-python-devel`` package | |
33 | to provide ``/usr/bin/pathfix.py``:: | |
34 | ||
35 | yum install platform-python-devel | |
36 | ||
1fe4beb2 | 37 | |
9251d1f5 QY |
38 | If ``yum`` is not present on your system, use ``dnf`` instead. |
39 | ||
1fe4beb2 DA |
40 | You should enable ``PowerTools`` repo if using CentOS 8 which |
41 | is disabled by default. | |
42 | ||
ca326047 | 43 | 4. Checkout FRR:: |
9251d1f5 QY |
44 | |
45 | git clone https://github.com/frrouting/frr.git frr | |
46 | ||
ca326047 | 47 | 5. Run Bootstrap and make distribution tar.gz:: |
9251d1f5 QY |
48 | |
49 | cd frr | |
50 | ./bootstrap.sh | |
45da32d7 | 51 | ./configure --with-pkg-extra-version=-MyRPMVersion |
9251d1f5 QY |
52 | make dist |
53 | ||
54 | .. note:: | |
55 | ||
56 | The only ``configure`` option respected when building RPMs is | |
57 | ``--with-pkg-extra-version``. | |
58 | ||
ca326047 | 59 | 6. Create RPM directory structure and populate with sources:: |
9251d1f5 QY |
60 | |
61 | mkdir rpmbuild | |
62 | mkdir rpmbuild/SOURCES | |
63 | mkdir rpmbuild/SPECS | |
64 | cp redhat/*.spec rpmbuild/SPECS/ | |
65 | cp frr*.tar.gz rpmbuild/SOURCES/ | |
66 | ||
ca326047 | 67 | 7. Edit :file:`rpm/SPECS/frr.spec` with configuration as needed. |
9251d1f5 QY |
68 | |
69 | Look at the beginning of the file and adjust the following parameters to | |
70 | enable or disable features as required:: | |
71 | ||
72 | ############### FRRouting (FRR) configure options ################# | |
73 | # with-feature options | |
74 | %{!?with_pam: %global with_pam 0 } | |
75 | %{!?with_ospfclient: %global with_ospfclient 1 } | |
76 | %{!?with_ospfapi: %global with_ospfapi 1 } | |
77 | %{!?with_irdp: %global with_irdp 1 } | |
78 | %{!?with_rtadv: %global with_rtadv 1 } | |
79 | %{!?with_ldpd: %global with_ldpd 1 } | |
80 | %{!?with_nhrpd: %global with_nhrpd 1 } | |
81 | %{!?with_eigrp: %global with_eigrpd 1 } | |
82 | %{!?with_shared: %global with_shared 1 } | |
83 | %{!?with_multipath: %global with_multipath 256 } | |
84 | %{!?frr_user: %global frr_user frr } | |
85 | %{!?vty_group: %global vty_group frrvty } | |
86 | %{!?with_fpm: %global with_fpm 0 } | |
87 | %{!?with_watchfrr: %global with_watchfrr 1 } | |
88 | %{!?with_bgp_vnc: %global with_bgp_vnc 0 } | |
89 | %{!?with_pimd: %global with_pimd 1 } | |
90 | %{!?with_rpki: %global with_rpki 0 } | |
91 | ||
ca326047 | 92 | 8. Build the RPM:: |
9251d1f5 QY |
93 | |
94 | rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/frr.spec | |
95 | ||
96 | If building with RPKI, then download and install the additional RPKI | |
97 | packages from | |
98 | https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact | |
99 | ||
100 | If all works correctly, then you should end up with the RPMs under | |
101 | :file:`rpmbuild/RPMS` and the source RPM under :file:`rpmbuild/SRPMS`. |