1 Building your own FRRouting Debian Package
2 ==========================================
3 (Tested on Ubuntu 12.04, 14.04, 16.04, 17.10, 18.04, Debian 8 and 9)
5 **Note:** If you try to build for a different distro, then it will most likely
6 fail because of the missing backport. See debianpkg/backports/README about
9 1. Follow the package installation as outlined in doc/Building_on_XXXX.md
10 (XXXX refers your OS Distribution) to install the required build packages
12 2. Install the following additional packages:
14 on Ubuntu 12.04, 14.04, 16.04, 17.10, Debian 8 and 9:
16 apt-get install realpath equivs groff fakeroot debhelper devscripts
18 on Ubuntu 18.04: (realpath is now part of preinstalled by coreutils)
20 apt-get install equivs groff fakeroot debhelper devscripts
22 3. Checkout FRR under a **unpriviledged** user account
24 git clone https://github.com/frrouting/frr.git frr
26 # git checkout <branch> - if different branch than master
28 4. Run Bootstrap and make distribution tar.gz
31 ./configure --with-pkg-extra-version=-MyDebPkgVersion
34 Note: configure parameters are not important for the Debian Package
35 building - except the `with-pkg-extra-version` if you want to give the
36 Debian Package a specific name to mark your own unoffical build
38 5. Edit `debianpkg/rules` and set the configuration as needed
40 Look for section `dh_auto_configure` to modify the configure
41 options as needed. Options might be different between main `rules` and
42 `backports/XXXX/debian/rules`. Please adjust as needed on all files
44 6. Create backports debian sources
46 Move the `debianpkg` to `debian` and create the backports
47 (Debian requires to not ship a `debian` directory inside the source
48 directory to avoid build conflicts with the reserved `debian` subdirectory
49 name during the build)
52 make -f debian/rules backports
54 This will create a `frr_*.orig.tar.gz` with the source (same as dist tar),
55 and multiple `frr_*.debian.tar.xz` and `frr_*.dsc` for the debian package
56 source on each backport supported distribution
58 7. Create a new directory to build the package and populate with package src
62 tar xf ~/frr/frr_*.orig.tar.gz
65 tar xf ~/frr/frr_*${ID}${VERSION_ID}*.debian.tar.xz
67 8. Build Debian Package Dependencies and install them as needed
69 sudo mk-build-deps --install debian/control
71 9. Build Debian Package
73 Building with standard options:
77 Or change some options:
78 (see `rules` file for available options)
80 debuild --set-envvar=WANT_BGP_VNC=1 --set-envvar=WANT_CUMULUS_MODE=1 -b -uc -us
82 To build with RPKI, download the librtr packages from
83 https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
84 install librtr-dev on the build server and build the packages as
85 debuild --set-envvar=WANT_RPKI=1 -b -uc -us
86 RPKI packages have an additonal dependency of librtr0 which can be
91 If all works correctly, then you should end up with the Debian packages under
92 `frrpkg`. If distributed, please make sure you distribute it together with
93 the sources (`frr_*.orig.tar.gz`, `frr_*.debian.tar.xz` and `frr_*.dsc`)
96 Enabling daemons after installation of the package:
97 ---------------------------------------------------
99 1. Edit `/etc/frr/daemons` and enable required routing daemons (Zebra is
100 probably needed for most deployments, so make sure to enable it.)
102 2. Check your firewall / IPtables to make sure the routing protocols are
105 3. Enable FRR at startup
107 - On `init.d` based systems (Ubuntu 12.04)
109 sudo update-rc.d frr defaults
111 - On `systemd` based systems (Debian 8 and later, Ubuntu 14.04 and later)
113 sudo systemctl enable frr
115 4. Start/Restart the daemons (or reboot)
117 - On `init.d` based systems (Ubuntu 12.04)
119 sudo invoke-rc.d frr start
121 - on `systemd` based systems (Debian 8 and later, Ubuntu 14.04 and later)
123 sudo systemctl start frr
126 Configuration is stored in `/etc/frr/*.conf` files and daemon selection
127 is stored in `/etc/frr/daemons`.