mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-04 23:39:52 +00:00

This separates the init script used for the system (and called in the systemd unit file) from the script that watchfrr uses to control daemons. Mixing these two caused the entire thing to become a rather huge spaghetti mess. Note that there is a behaviour change in that the new script always starts zebra regardless of zebra_enable. Side changes: - Ubuntu 12.04 removed from backports since it doesn't work anyway - zebra is always started regardless of zebra_enable. To disable FRR, the entire init script should be disabled through policy. - no-watchfrr operation is no longer supported by the scripts in the Debian packages. (This is intentional.) Signed-off-by: David Lamparter <equinox@diac24.net>
200 lines
5.1 KiB
Makefile
Executable File
200 lines
5.1 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
|
|
# FRRouting Configuration options
|
|
######################################
|
|
#
|
|
# WANT_xxxx --> Set to 1 for enable, 0 for disable
|
|
# The following are the defaults. They can be overridden by setting a
|
|
# env variable to a different value
|
|
|
|
# -Werror - don't enable this unless you're doing a dev package build
|
|
WANT_WERROR ?= 0
|
|
|
|
WANT_OSPFAPI ?= 1
|
|
WANT_BGP_VNC ?= 1
|
|
WANT_CUMULUS_MODE ?= 0
|
|
WANT_MULTIPATH ?= 1
|
|
WANT_SNMP ?= 0
|
|
WANT_RPKI ?= 0
|
|
|
|
# NOTES:
|
|
#
|
|
# If you use WANT_RPKI, then there is a new dependency for librtr0 package
|
|
# and a build dependency of the librtr-dev package.
|
|
# While the librtr0 is added to the depenencies automatically, the build
|
|
# dependency can't be changed dynamically and building will fail if the
|
|
# librtr-dev isn't installed during package build
|
|
# Tested versions of both packages can be found at
|
|
# https://ci1.netdef.org/browse/RPKI-RTRLIB/latestSuccessful/artifact
|
|
#
|
|
# If multipath is enabled (WANT_MULTIPATH=1), then set number of multipaths here
|
|
# Please be aware that 0 is NOT disabled, but treated as unlimited
|
|
|
|
MULTIPATH ?= 256
|
|
|
|
# Set the following to the value required (or leave alone for the default below)
|
|
# WANT_FRR_USER is used for the username and groupname of the FRR user account
|
|
|
|
WANT_FRR_USER ?= frr
|
|
WANT_FRR_VTY_GROUP ?= frrvty
|
|
|
|
# Don't build PDF docs by default
|
|
# add build deps: texlive-latex-base, texlive-generic-recommended
|
|
GENERATE_PDF ?= 0
|
|
|
|
#
|
|
####################################
|
|
|
|
export DH_VERBOSE=1
|
|
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
|
export DH_OPTIONS=-v
|
|
|
|
ifeq ($(WANT_SNMP), 1)
|
|
USE_SNMP=--enable-snmp
|
|
$(warning "DEBIAN: SNMP enabled, sorry for your inconvenience")
|
|
else
|
|
USE_SNMP=--disable-snmp
|
|
$(warning "DEBIAN: SNMP disabled, see README.Debian")
|
|
endif
|
|
|
|
ifeq ($(WANT_OSPFAPI), 1)
|
|
USE_OSPFAPI=--enable-ospfapi=yes
|
|
else
|
|
USE_OSPFAPI=--enable-ospfapi=no
|
|
endif
|
|
|
|
ifeq ($(WANT_BGP_VNC), 1)
|
|
USE_BGP_VNC=--enable-bgp-vnc=yes
|
|
else
|
|
USE_BGP_VNC=--enable-bgp-vnc=no
|
|
endif
|
|
|
|
USE_FRR_USER=--enable-user=$(WANT_FRR_USER)
|
|
USE_FRR_GROUP=--enable-group=$(WANT_FRR_USER)
|
|
USE_FRR_VTY_GROUP=--enable-vty-group=$(WANT_FRR_VTY_GROUP)
|
|
|
|
ifeq ($(WANT_MULTIPATH), 1)
|
|
USE_MULTIPATH=--enable-multipath=$(MULTIPATH)
|
|
else
|
|
USE_MULTIPATH=--disable-multipath
|
|
endif
|
|
|
|
ifeq ($(WANT_CUMULUS_MODE), 1)
|
|
USE_CUMULUS=--enable-cumulus=yes
|
|
else
|
|
USE_CUMULUS=--enable-cumulus=no
|
|
endif
|
|
|
|
ifeq ($(WANT_RPKI), 1)
|
|
USE_RPKI=--enable-rpki
|
|
else
|
|
USE_RPKI=--disable-rpki
|
|
endif
|
|
|
|
ifeq ($(WANT_WERROR), 1)
|
|
USE_WERROR=--enable-werror
|
|
else
|
|
USE_WERROR=--disable-werror
|
|
endif
|
|
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
DEBIAN_JOBS := $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
endif
|
|
|
|
ifdef DEBIAN_JOBS
|
|
MAKEFLAGS += -j$(DEBIAN_JOBS)
|
|
endif
|
|
|
|
%:
|
|
dh $@ --with=systemd,autoreconf --parallel --dbg-package=frr-dbg --list-missing
|
|
|
|
override_dh_gencontrol:
|
|
ifeq ($(WANT_RPKI), 1)
|
|
dh_gencontrol -- -Vdist:Depends="librtr0 (>= 0.5)"
|
|
else
|
|
dh_gencontrol
|
|
endif
|
|
|
|
override_dh_auto_configure:
|
|
if ! [ -e config.status ]; then \
|
|
dh_auto_configure -- \
|
|
--enable-exampledir=/usr/share/doc/frr/examples/ \
|
|
--localstatedir=/var/run/frr \
|
|
--sbindir=/usr/lib/frr \
|
|
--sysconfdir=/etc/frr \
|
|
$(USE_SNMP) \
|
|
$(USE_OSPFAPI) \
|
|
$(USE_MULTIPATH) \
|
|
--enable-fpm \
|
|
$(USE_FRR_USER) $(USE_FRR_GROUP) \
|
|
$(USE_FRR_VTY_GROUP) \
|
|
--enable-configfile-mask=0640 \
|
|
--enable-logfile-mask=0640 \
|
|
$(USE_WERROR) \
|
|
--with-libpam \
|
|
--enable-systemd=yes \
|
|
$(USE_CUMULUS) \
|
|
--disable-dependency-tracking \
|
|
$(USE_BGP_VNC) \
|
|
$(USE_RPKI) \
|
|
$(shell dpkg-buildflags --export=configure); \
|
|
fi
|
|
|
|
override_dh_auto_build:
|
|
dh_auto_build
|
|
|
|
override_dh_auto_test:
|
|
|
|
override_dh_auto_install:
|
|
dh_auto_install
|
|
|
|
# installed in frr-pythontools
|
|
rm debian/tmp/usr/lib/frr/frr-reload.py
|
|
|
|
# cleaning up the info dir
|
|
rm -f debian/tmp/usr/share/info/dir*
|
|
|
|
# install config files
|
|
mkdir -p debian/tmp/etc/frr/
|
|
perl -pi -e 's#^!log file #!log file /var/log/frr/#' debian/tmp/usr/share/doc/frr/examples/*sample*
|
|
|
|
# we don't need .la files
|
|
rm debian/tmp/usr/lib/*.la
|
|
rm debian/tmp/usr/lib/frr/modules/*.la
|
|
rm debian/tmp/usr/lib/frr/libyang_plugins/*.la
|
|
|
|
override_dh_systemd_start:
|
|
dh_systemd_start frr.service
|
|
|
|
override_dh_systemd_enable:
|
|
dh_systemd_enable frr.service
|
|
|
|
# backports
|
|
SRCPKG = frr
|
|
KNOWN_BACKPORTS = debian8 debian9 ubuntu14.04 ubuntu16.04 ubuntu17.10 ubuntu18.04
|
|
DEBIAN_VERSION := $(shell dh_testdir && \
|
|
dpkg-parsechangelog -c1 < debian/changelog | \
|
|
sed -rn 's/^Version: ?//p')
|
|
ORIG_VERSION := $(DEBIAN_VERSION)
|
|
-include debian/backports/rules
|
|
|
|
ifneq ($(TARBALLDIR),)
|
|
ifeq ($(wildcard frr-$(ORIG_VERSION).tar.gz),frr-$(ORIG_VERSION).tar.gz)
|
|
|
|
$(TARBALLDIR)/$(SRCPKG)_$(ORIG_VERSION).orig.tar.gz: \
|
|
frr-$(ORIG_VERSION).tar.gz
|
|
cp $< $@
|
|
|
|
else # wildcard frr-$(ORIG_VERSION).tar.gz
|
|
|
|
# better error message on missing .orig.tar.gz
|
|
$(TARBALLDIR)/$(SRCPKG)_$(ORIG_VERSION).orig.tar.gz:
|
|
@ echo "\`$(TARBALLDIR)/$(SRCPKG)-$(ORIG_VERSION).tar.gz'" not \
|
|
found and not generated by debian/rules. Provided you have the \
|
|
necessary packages installed, you can generate it yourself via \
|
|
"\"./bootstrap.sh && ./configure && make dist\"".
|
|
exit 1
|
|
|
|
endif # wildcard frr-$(ORIG_VERSION).tar.gz
|
|
endif # TARBALLDIR nonempty
|