diff options
| author | Martin Winter <mwinter@opensourcerouting.org> | 2018-11-17 14:29:03 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-11-17 14:29:03 +0100 | 
| commit | cc76fa7419294090cda1795c3d1e4f11c0d6bd35 (patch) | |
| tree | fb77c111587e56e0c8c08c2c05779ed71ec6213c | |
| parent | 71dd12d08985c31037a74d04ff8b22edb897a265 (diff) | |
| parent | c42d31b8fde890728947cddba13c055e56ff3af9 (diff) | |
Merge pull request #3226 from zhenggen-xu/5.0-sonic
debianpkg: support SONiC debian8 on FRR 5.0.x
| -rw-r--r-- | debianpkg/Makefile.am | 17 | ||||
| -rw-r--r-- | debianpkg/backports/sonic8/debian/frr.install | 11 | ||||
| -rwxr-xr-x | debianpkg/backports/sonic8/debian/rules | 205 | ||||
| -rw-r--r-- | debianpkg/backports/sonic8/debian/source/format | 1 | ||||
| -rw-r--r-- | debianpkg/backports/sonic8/exclude | 0 | ||||
| -rw-r--r-- | debianpkg/backports/sonic8/versionext | 1 | ||||
| -rwxr-xr-x | debianpkg/rules | 2 | 
7 files changed, 230 insertions, 7 deletions
diff --git a/debianpkg/Makefile.am b/debianpkg/Makefile.am index e7ae4bb58d..b557adfab3 100644 --- a/debianpkg/Makefile.am +++ b/debianpkg/Makefile.am @@ -4,12 +4,17 @@ EXTRA_DIST = README.Debian README.Maintainer \  	rules source/format tests/control \  	tests/daemons watchfrr.rc \  	backports/README backports/rules \ -        backports/debian8/debian/source/format \ -        backports/debian8/exclude \ -        backports/debian8/versionext \ -        backports/debian9/debian/source/format \ -        backports/debian9/exclude \ -        backports/debian9/versionext \ +	backports/debian8/debian/source/format \ +	backports/debian8/exclude \ +	backports/debian8/versionext \ +	backports/debian9/debian/source/format \ +	backports/debian9/exclude \ +	backports/debian9/versionext \ +	backports/sonic8/debian/frr.install \ +	backports/sonic8/debian/rules \ +	backports/sonic8/debian/source/format \ +	backports/sonic8/exclude \ +	backports/sonic8/versionext \  	backports/ubuntu12.04/debian/control \  	backports/ubuntu12.04/debian/frr.install \  	backports/ubuntu12.04/debian/frr.postinst \ diff --git a/debianpkg/backports/sonic8/debian/frr.install b/debianpkg/backports/sonic8/debian/frr.install new file mode 100644 index 0000000000..0316240c36 --- /dev/null +++ b/debianpkg/backports/sonic8/debian/frr.install @@ -0,0 +1,11 @@ +etc/frr/ +usr/bin/vtysh +usr/include/frr/ +usr/lib/ +tools/frr etc/init.d/ +usr/share/doc/frr/ +usr/share/snmp/mibs/ +tools/etc/* etc/ +tools/*.service lib/systemd/system +tools/frr-reload usr/lib/frr/ +debian/frr.conf usr/lib/tmpfiles.d diff --git a/debianpkg/backports/sonic8/debian/rules b/debianpkg/backports/sonic8/debian/rules new file mode 100755 index 0000000000..a356a12b7a --- /dev/null +++ b/debianpkg/backports/sonic8/debian/rules @@ -0,0 +1,205 @@ +#!/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 + +WANT_LDP ?= 1 +WANT_PIM ?= 0 +WANT_OSPFAPI ?= 0 +WANT_TCP_ZEBRA ?= 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 +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_LDP), 1) +  USE_LDP=--enable-ldpd +else +  USE_LDP=--disable-ldpd +endif + +ifeq ($(WANT_PIM), 1) +  USE_PIM=--enable-pimd +else +  USE_PIM=--disable-pimd +endif + +ifeq ($(WANT_OSPFAPI), 1) +  USE_OSPFAPI=--enable-ospfapi=yes +else +  USE_OSPFAPI=--enable-ospfapi=no +endif + +ifeq ($(WANT_TCP_ZEBRA),1) +  USE_TCP_ZEBRA=--enable-tcp-zebra +else +  USE_TCP_ZEBRA=--disable-tcp-zebra +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 + +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: +	# Frr needs /proc to check some BSD vs Linux specific stuff. +	# Else it fails with an obscure error message pointing out that +	# IPCTL_FORWARDING is an undefined symbol which is not very helpful. +	@if ! [ -d /proc/1 ]; then \ +		echo "./configure needs a mounted /proc"; \ +		exit 1; \ +	fi + +	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) \ +		$(USE_LDP) \ +		$(USE_TCP_ZEBRA) \ +		--enable-fpm \ +		$(USE_FRR_USER) $(USE_FRR_GROUP) \ +		$(USE_FRR_VTY_GROUP) \ +		--enable-configfile-mask=0640 \ +		--enable-logfile-mask=0640 \ +		--enable-werror \ +		--with-libpam \ +		--enable-systemd=yes \ +		--enable-poll=yes \ +		$(USE_CUMULUS) \ +		$(USE_PIM) \ +		--enable-dependency-tracking \ +		$(USE_BGP_VNC) \ +		$(USE_RPKI) \ +		$(shell dpkg-buildflags --export=configure); \ +	fi + +override_dh_auto_build: +	# doc/ is a bit crazy +ifeq ($(GENERATE_PDF), 1) +	dh_auto_build -- -C doc pdf +endif +	rm -vf doc/user/_build/texinfo/frr.info +	dh_auto_build -- -C doc info + +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* + +	# installing the Frr specific SNMP MIB +ifeq ($(WANT_SNMP), 1) +	install -D -m 644 ./zebra/GNOME-PRODUCT-ZEBRA-MIB debian/tmp/usr/share/snmp/mibs/GNOME-PRODUCT-ZEBRA-MIB +else +	mkdir -p debian/tmp/usr/share/snmp/mibs/ +endif + +	# cleaning .la files +	sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/*.la +	sed -i "/dependency_libs/ s/'.*'/''/" debian/tmp/usr/lib/frr/modules/*.la + +override_dh_systemd_start: +	dh_systemd_start frr.service + +override_dh_systemd_enable: +	dh_systemd_enable frr.service + diff --git a/debianpkg/backports/sonic8/debian/source/format b/debianpkg/backports/sonic8/debian/source/format new file mode 100644 index 0000000000..163aaf8d82 --- /dev/null +++ b/debianpkg/backports/sonic8/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debianpkg/backports/sonic8/exclude b/debianpkg/backports/sonic8/exclude new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/debianpkg/backports/sonic8/exclude diff --git a/debianpkg/backports/sonic8/versionext b/debianpkg/backports/sonic8/versionext new file mode 100644 index 0000000000..a7aaf14ed5 --- /dev/null +++ b/debianpkg/backports/sonic8/versionext @@ -0,0 +1 @@ +-1~sonic8+1 diff --git a/debianpkg/rules b/debianpkg/rules index 9c84c06516..223d772b12 100755 --- a/debianpkg/rules +++ b/debianpkg/rules @@ -205,7 +205,7 @@ override_dh_systemd_enable:  # backports  SRCPKG = frr -KNOWN_BACKPORTS = debian8 debian9 ubuntu12.04 ubuntu14.04 ubuntu16.04 ubuntu17.10 ubuntu18.04 +KNOWN_BACKPORTS = debian8 debian9 sonic8 ubuntu12.04 ubuntu14.04 ubuntu16.04 ubuntu17.10 ubuntu18.04  DEBIAN_VERSION := $(shell dh_testdir && \  		dpkg-parsechangelog -c1 < debian/changelog | \  		sed -rn 's/^Version: ?//p')  | 
