1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#!/usr/bin/make -f
include /usr/share/dpkg/architecture.mk
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
# package-specific build profiles
ifeq ($(filter pkg.frr.nortrlib,$(DEB_BUILD_PROFILES)),)
CONF_RPKI=--enable-rpki
else
CONF_RPKI=--disable-rpki
endif
ifeq ($(filter pkg.frr.nolua,$(DEB_BUILD_PROFILES)),)
CONF_LUA=--enable-scripting
else
CONF_LUA=--disable-scripting
endif
ifeq ($(filter pkg.frr.nopim6d,$(DEB_BUILD_PROFILES)),)
CONF_PIM6=--enable-pim6d
else
CONF_PIM6=--disable-pim6d
endif
export PYTHON=python3
%:
dh ${@} -Bbuild --with=sphinxdoc
override_dh_auto_configure:
$(shell dpkg-buildflags --export=sh); \
export LIBS="$${LIBS} -latomic"; \
dh_auto_configure -- \
--sbindir=/usr/lib/frr \
--with-vtysh-pager=/usr/bin/pager \
--libdir=/usr/lib/$(DEB_HOST_MULTIARCH)/frr \
--with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/frr/modules \
LIBTOOLFLAGS="-rpath /usr/lib/$(DEB_HOST_MULTIARCH)/frr" \
--disable-dependency-tracking \
\
$(CONF_RPKI) \
$(CONF_LUA) \
$(CONF_PIM6) \
--with-libpam \
--enable-doc \
--enable-doc-html \
--enable-snmp \
--enable-fpm \
--disable-protobuf \
--disable-zeromq \
--enable-ospfapi \
--enable-bgp-vnc \
--enable-multipath=256 \
\
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640
execute_after_dh_auto_install:
sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/frr-reload.py
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/frr_babeltrace.py
sed -e '1c #!/usr/bin/python3' -i debian/tmp/usr/lib/frr/ospfclient.py
# let dh_systemd do their thing automatically
cp build/tools/frr.service debian/frr.service
cp build/tools/frr@.service debian/frr@.service
rm -f debian/tmp/usr/lib/frr/frr
# install config files
mkdir -p debian/tmp/etc
cp -r tools/etc/* debian/tmp/etc/
rm -f debian/tmp/etc/frr/daemons.conf
# drop dev-only files
find debian/tmp -name '*.la' -o -name '*.a' -o -name 'lib*.so' | xargs rm -f
rm -rf debian/tmp/usr/include
rm -f debian/tmp/usr/lib/*/frr/pkgconfig/frr.pc
rm -f debian/tmp/usr/lib/frr/ssd
# drop test-tools files
rm -f debian/tmp/usr/lib/frr/fpm_listener
override_dh_installsystemd:
dh_installsystemd -r
override_dh_makeshlibs:
dh_makeshlibs -n
override_dh_missing:
dh_missing --fail-missing
ifneq ($(filter nocheck,$(DEB_BUILD_PROFILES) $(DEB_BUILD_OPTIONS)),)
override_dh_auto_test:
true
endif
execute_after_dh_auto_clean:
rm -rf tests/.pytest_cache
rm -f debian/frr.service
rm -f debian/frr@.service
|