]> git.proxmox.com Git - mirror_frr.git/blame - redhat/README.rpm_build.md
debianpkg: Add missing XSBC-Original-Maintainer field (fixes merge error)
[mirror_frr.git] / redhat / README.rpm_build.md
CommitLineData
447a8fe9 1Building your own FRRouting RPM
c115e4a4 2======================================
c4342d27 3(Tested on CentOS 6, CentOS 7 and Fedora 24.)
f755bf6d 4
cf53d413
MW
51. On CentOS 6 (which doesn't provide a bison/automake/autoconf of a recent enough version):
6 - Check out ../doc/Building_FRR_on_CentOS6.md for details on installing
7 a bison/automake/autoconf to support frr building.
8
9 Newer automake/autoconf/bison is only needed to build the rpm and is
10 **not** needed to install the binary rpm package
11
122. Install the following packages to build the RPMs:
f755bf6d 13
826d8bef 14 yum install git autoconf automake libtool make gawk readline-devel \
02b9d130
MW
15 texinfo net-snmp-devel groff pkgconfig rpm-build json-c-devel \
16 pam-devel texi2html bison libcap-devel flex
d75d3b87
MW
17
18 Additionally, on systems with systemd (CentOS 7, Fedora)
19
20 yum install systemd-devel
f755bf6d 21
826d8bef 22 (use `dnf install` on new Fedora instead of `yum install`)
d75d3b87
MW
23
24 **CentOS 6:** Please check doc/Building_FRR_on_CentOS6.md for details on
25 how to install required version of autoconf, automake and bison. The
26 versions in the common Repo are too old.
27
cf53d413 283. Checkout FRR under a **unpriviledged** user account
f755bf6d 29
826d8bef 30 git clone https://github.com/frrouting/frr.git frr
f755bf6d 31
cf53d413 324. Run Bootstrap and make distribution tar.gz
f755bf6d 33
826d8bef
MW
34 cd frr
35 ./bootstrap.sh
36 ./configure --with-pkg-extra-version=-MyRPMVersion
37 make dist
38
39 Note: configure parameters are not important for the RPM building - except the `with-pkg-extra-version` if you want to give the RPM a specific name to
40 mark your own unoffical build
f755bf6d 41
cf53d413 425. Create RPM directory structure and populate with sources
f755bf6d 43
826d8bef
MW
44 mkdir rpmbuild
45 mkdir rpmbuild/SOURCES
46 mkdir rpmbuild/SPECS
47 cp redhat/*.spec rpmbuild/SPECS/
48 cp frr*.tar.gz rpmbuild/SOURCES/
f755bf6d 49
cf53d413 506. Edit rpm/SPECS/frr.spec with configuration as needed
826d8bef
MW
51 Look at the beginning of the file and adjust the following parameters to enable or disable features as required:
52
cf53d413 53 ############### FRRouting (FRR) configure options #################
826d8bef 54 # with-feature options
cf53d413
MW
55 %{!?with_tcp_zebra: %global with_tcp_zebra 0 }
56 %{!?with_pam: %global with_pam 0 }
57 %{!?with_ospfclient: %global with_ospfclient 1 }
58 %{!?with_ospfapi: %global with_ospfapi 1 }
59 %{!?with_irdp: %global with_irdp 1 }
60 %{!?with_rtadv: %global with_rtadv 1 }
61 %{!?with_ldpd: %global with_ldpd 1 }
03ced8e1 62 %{!?with_nhrpd: %global with_nhrpd 1 }
cf53d413
MW
63 %{!?with_shared: %global with_shared 1 }
64 %{!?with_multipath: %global with_multipath 256 }
65 %{!?frr_user: %global frr_user frr }
66 %{!?vty_group: %global vty_group frrvty }
67 %{!?with_fpm: %global with_fpm 0 }
68 %{!?with_watchfrr: %global with_watchfrr 1 }
69 %{!?with_bgp_vnc: %global with_bgp_vnc 0 }
70 %{!?with_pimd: %global with_pimd 1 }
71
727. Build the RPM
f755bf6d 73
826d8bef 74 rpmbuild --define "_topdir `pwd`/rpmbuild" -ba rpmbuild/SPECS/frr.spec
f755bf6d
MW
75
76DONE.
77
826d8bef
MW
78If all works correctly, then you should end up with the RPMs under
79`rpmbuild/RPMS` and the Source RPM under `rpmbuild/SRPMS`
f755bf6d
MW
80
81
82Enabling daemons after installation of the package:
83---------------------------------------------------
84
85### init.d based systems (ie CentOS 6):
86
c4342d27 871. Edit /etc/frr/daemons and enable required routing daemons (Zebra is probably needed for most deployments, so make sure to enable it.)
f755bf6d 88
c4342d27
MW
892. Enable the daemons as needed to run after boot (Zebra is mandatory)
90
91 chkconfig frr on
f755bf6d
MW
92
933. Check your firewall / IPtables to make sure the routing protocols are
94allowed.
826d8bef 95
c4342d27 965. Start the FRR daemons (or reboot)
f755bf6d 97
c4342d27 98 service frr start
826d8bef 99
c4342d27 100Configuration is stored in `/etc/frr/*.conf` files and daemon selection is stored in `/etc/frr/daemons`.
f755bf6d
MW
101
102
c4342d27 103### systemd based systems (ie CentOS 7, Fedora 24)
f755bf6d 104
c4342d27
MW
1051. Edit /etc/frr/daemons and enable required routing daemons (Zebra is probably needed for most deployments, so make sure to enable it.)
106
1072. Enable the frr daemons to run after boot.
826d8bef 108
c4342d27 109 systemctl enable frr
f755bf6d
MW
110
1112. Check your firewall / IPtables to make sure the routing protocols are
112allowed.
826d8bef 113
f755bf6d
MW
1143. Start the daemons (or reboot)
115
c4342d27 116 systemctl start frr
826d8bef 117
c4342d27 118Configuration is stored in `/etc/frr/*.conf` files and daemon selection is stored in `/etc/frr/daemons`.
f755bf6d 119