debian: make cross-compile work

This allows e.g. "sbuild --host=arm64" to build packages for other
architectures on, say, fat amd64 servers.  As a side effect, the Debian
build uses a separate builddir, which helps noting issues on that front.

Signed-off-by: David Lamparter <equinox@diac24.net>
(cherry-picked from commit d1312e009b)
This commit is contained in:
David Lamparter 2020-04-06 19:28:56 +02:00 committed by David Lamparter
parent 05a13c2cd4
commit a3591eaefa
4 changed files with 30 additions and 25 deletions

8
debian/control vendored
View file

@ -25,10 +25,10 @@ Build-Depends: bison,
libyang2-dev, libyang2-dev,
lsb-base, lsb-base,
pkg-config, pkg-config,
python3, python3:native,
python3-dev, python3-dev:native,
python3-pytest <!nocheck>, python3-pytest:native <!nocheck>,
python3-sphinx, python3-sphinx:native,
texinfo (>= 4.7), texinfo (>= 4.7),
lua5.3 <pkg.frr.lua>, lua5.3 <pkg.frr.lua>,
liblua5.3-dev <pkg.frr.lua> liblua5.3-dev <pkg.frr.lua>

2
debian/frr-doc.info vendored
View file

@ -1 +1 @@
doc/user/_build/texinfo/frr.info build/doc/user/_build/texinfo/frr.info

32
debian/frr.manpages vendored
View file

@ -1,16 +1,16 @@
doc/manpages/_build/man/frr-bgpd.8 build/doc/manpages/_build/man/frr-bgpd.8
doc/manpages/_build/man/frr-eigrpd.8 build/doc/manpages/_build/man/frr-eigrpd.8
doc/manpages/_build/man/frr-fabricd.8 build/doc/manpages/_build/man/frr-fabricd.8
doc/manpages/_build/man/frr-isisd.8 build/doc/manpages/_build/man/frr-isisd.8
doc/manpages/_build/man/frr-ldpd.8 build/doc/manpages/_build/man/frr-ldpd.8
doc/manpages/_build/man/frr-nhrpd.8 build/doc/manpages/_build/man/frr-nhrpd.8
doc/manpages/_build/man/frr-ospf6d.8 build/doc/manpages/_build/man/frr-ospf6d.8
doc/manpages/_build/man/frr-ospfd.8 build/doc/manpages/_build/man/frr-ospfd.8
doc/manpages/_build/man/frr-pimd.8 build/doc/manpages/_build/man/frr-pimd.8
doc/manpages/_build/man/frr-ripd.8 build/doc/manpages/_build/man/frr-ripd.8
doc/manpages/_build/man/frr-ripngd.8 build/doc/manpages/_build/man/frr-ripngd.8
doc/manpages/_build/man/frr-watchfrr.8 build/doc/manpages/_build/man/frr-watchfrr.8
doc/manpages/_build/man/frr-zebra.8 build/doc/manpages/_build/man/frr-zebra.8
doc/manpages/_build/man/frr.1 build/doc/manpages/_build/man/frr.1
doc/manpages/_build/man/mtracebis.8 build/doc/manpages/_build/man/mtracebis.8
doc/manpages/_build/man/vtysh.1 build/doc/manpages/_build/man/vtysh.1

13
debian/rules vendored
View file

@ -36,7 +36,7 @@ endif
export PYTHON=python3 export PYTHON=python3
%: %:
dh $@ dh $@ -Bbuild
override_dh_auto_configure: override_dh_auto_configure:
$(shell dpkg-buildflags --export=sh); \ $(shell dpkg-buildflags --export=sh); \
@ -78,9 +78,9 @@ override_dh_auto_install:
sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/generate_support_bundle.py sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/generate_support_bundle.py
# let dh_systemd_* and dh_installinit do their thing automatically # let dh_systemd_* and dh_installinit do their thing automatically
cp tools/frr.service debian/frr.service cp build/tools/frr.service debian/frr.service
cp tools/frr@.service debian/frr@.service cp build/tools/frr@.service debian/frr@.service
cp tools/frrinit.sh debian/frr.init cp build/tools/frrinit.sh debian/frr.init
-rm -f debian/tmp/usr/lib/frr/frr -rm -f debian/tmp/usr/lib/frr/frr
# install config files # install config files
@ -114,6 +114,11 @@ override_dh_makeshlibs:
override_dh_missing: override_dh_missing:
dh_missing --fail-missing dh_missing --fail-missing
ifneq ($(filter nocheck,$(DEB_BUILD_PROFILES) $(DEB_BUILD_OPTIONS)),)
override_dh_auto_test:
true
endif
override_dh_auto_clean: override_dh_auto_clean:
# we generally do NOT want a full distclean since that wipes both # we generally do NOT want a full distclean since that wipes both
# debian/changelog and config.version # debian/changelog and config.version