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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#!/usr/bin/make -f
# standard Debian options & profiles
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
ifneq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
MAKE_SILENT="V=0"
export DH_VERBOSE=0
else
MAKE_SILENT="V=1"
export DH_VERBOSE=1
export DH_OPTIONS=-v
endif
# 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.lua,$(DEB_BUILD_PROFILES)),)
CONF_LUA=--disable-scripting
else
CONF_LUA=--enable-scripting
endif
ifeq ($(filter pkg.frr.nopim6d,$(DEB_BUILD_PROFILES)),)
CONF_PIM6=--enable-pim6d
else
CONF_PIM6=--disable-pim6d
endif
ifeq ($(filter pkg.frr.grpc,$(DEB_BUILD_PROFILES)),)
CONF_GRPC=--disable-grpc
else
CONF_GRPC=--enable-grpc
endif
export PYTHON=python3
%:
dh $@ -Bbuild --with=sphinxdoc
override_dh_auto_configure:
$(shell dpkg-buildflags --export=sh); \
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) \
$(CONF_GRPC) \
--with-libpam \
--enable-doc \
--enable-doc-html \
--enable-snmp \
--enable-fpm \
--disable-protobuf \
--disable-zeromq \
--enable-ospfapi \
--enable-bgp-vnc \
--enable-multipath=256 \
--enable-pcre2posix \
\
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
# end
override_dh_auto_install:
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_* and dh_installinit do their thing automatically
cp build/tools/frr.service debian/frr.service
cp build/tools/frr@.service debian/frr@.service
cp build/tools/frrinit.sh debian/frr.init
-rm -f debian/tmp/usr/lib/frr/frr
# install config files
mkdir -p debian/tmp/etc
cp -r tools/etc/* debian/tmp/etc/
-rm 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 debian/tmp/usr/lib/frr/ssd
override_dh_auto_build:
dh_auto_build -- $(MAKE_SILENT)
override_dh_installinit:
dh_installinit -r
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
override_dh_auto_clean:
# we generally do NOT want a full distclean since that wipes both
# debian/changelog and config.version
if test -f Makefile; then make redistclean; fi
-rm -f debian/frr.init
-rm -f debian/frr.service
-rm -f debian/frr@.service
|