summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 5a58aeeb6a5af99cfc2ed0933793f61c61ba8a06 (plain)
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
131
132
#!/usr/bin/make -f

DIR := debian/tmp
VYOS_SBIN_DIR := usr/sbin
VYOS_BIN_DIR := usr/bin
VYOS_LIBEXEC_DIR := usr/libexec/vyos
VYOS_DATA_DIR := usr/share/vyos
VYOS_CFG_TMPL_DIR := opt/vyatta/share/vyatta-cfg/templates
VYOS_OP_TMPL_DIR := opt/vyatta/share/vyatta-op/templates
VYOS_MIBS_DIR := usr/share/snmp/mibs

MIGRATION_SCRIPTS_DIR := opt/vyatta/etc/config-migrate/migrate
SYSTEM_SCRIPTS_DIR := usr/libexec/vyos/system
SERVICES_DIR := usr/libexec/vyos/services

DEB_TARGET_ARCH := $(shell dpkg-architecture -qDEB_TARGET_ARCH)

%:
	dh $@ --with python3, --with quilt

# Skip dh_strip_nondeterminism - this is very time consuming
# and we have no non deterministic output (yet)
override_dh_strip_nondeterminism:

override_dh_gencontrol:
	dh_gencontrol -- -v$(shell (git describe --tags --long --match 'vyos/*' --dirty 2>/dev/null || echo 0.0-no.git.tag) | sed -E 's%vyos/%%' | sed -E 's%-dirty%+dirty%')

override_dh_auto_build:
	make all
ifeq ($(DEB_TARGET_ARCH),amd64)
	# Only build XDP on amd64 systems
	make vyxdp
endif

override_dh_auto_install:
	dh_auto_install

	# convert the XML to dictionaries
	env PYTHONPATH=python python3 python/vyos/xml/generate.py

	cd python; python3 setup.py install --install-layout=deb --root ../$(DIR); cd ..

	# Install scripts
	mkdir -p $(DIR)/$(VYOS_SBIN_DIR)
	mkdir -p $(DIR)/$(VYOS_BIN_DIR)
	cp -r src/utils/* $(DIR)/$(VYOS_BIN_DIR)
	cp src/shim/vyshim $(DIR)/$(VYOS_SBIN_DIR)

	# Install conf mode scripts
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/conf_mode
	cp -r src/conf_mode/* $(DIR)/$(VYOS_LIBEXEC_DIR)/conf_mode

	# Install op mode scripts
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/op_mode
	cp -r src/op_mode/* $(DIR)/$(VYOS_LIBEXEC_DIR)/op_mode

	# Install validators
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/validators
	cp -r src/validators/* $(DIR)/$(VYOS_LIBEXEC_DIR)/validators

	# Install completion helpers
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/completion
	cp -r src/completion/* $(DIR)/$(VYOS_LIBEXEC_DIR)/completion

	# Install helper scripts
	cp -r src/helpers/* $(DIR)/$(VYOS_LIBEXEC_DIR)/

	# Install migration scripts
	mkdir -p $(DIR)/$(MIGRATION_SCRIPTS_DIR)
	cp -r src/migration-scripts/* $(DIR)/$(MIGRATION_SCRIPTS_DIR)

	# Install system scripts
	mkdir -p $(DIR)/$(SYSTEM_SCRIPTS_DIR)
	cp -r src/system/* $(DIR)/$(SYSTEM_SCRIPTS_DIR)

	# Install system services
	mkdir -p $(DIR)/$(SERVICES_DIR)
	cp -r src/services/* $(DIR)/$(SERVICES_DIR)

	# Install configuration command definitions
	mkdir -p $(DIR)/$(VYOS_CFG_TMPL_DIR)
	cp -r templates-cfg/* $(DIR)/$(VYOS_CFG_TMPL_DIR)

	# Install operational command definitions
	mkdir -p $(DIR)/$(VYOS_OP_TMPL_DIR)
	cp -r templates-op/* $(DIR)/$(VYOS_OP_TMPL_DIR)

	# Install data files
	mkdir -p $(DIR)/$(VYOS_DATA_DIR)
	cp -r data/* $(DIR)/$(VYOS_DATA_DIR)

	# Install SNMP MIBs
	mkdir -p $(DIR)/$(VYOS_MIBS_DIR)
	cp -d mibs/* $(DIR)/$(VYOS_MIBS_DIR)

	# Install etc configuration files
	mkdir -p $(DIR)/etc
	cp -r src/etc/* $(DIR)/etc

	# Install PAM configuration snippets
	mkdir -p $(DIR)/usr/share/pam-configs
	cp -r src/pam-configs/* $(DIR)/usr/share/pam-configs

	# Install systemd service units
	mkdir -p $(DIR)/lib/systemd/system
	cp -r src/systemd/* $(DIR)/lib/systemd/system

	# Make directory for generated configuration file
	mkdir -p $(DIR)/etc/vyos

	# Install smoke test scripts
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/tests/smoke/
	cp -r smoketest/scripts/* $(DIR)/$(VYOS_LIBEXEC_DIR)/tests/smoke

	# Install smoke test configs
	mkdir -p $(DIR)/$(VYOS_LIBEXEC_DIR)/tests/config/
	cp -r smoketest/configs/* $(DIR)/$(VYOS_LIBEXEC_DIR)/tests/config

	# Install system programs
	mkdir -p $(DIR)/$(VYOS_BIN_DIR)
	cp -r smoketest/bin/* $(DIR)/$(VYOS_BIN_DIR)

	# Install udev script
	mkdir -p $(DIR)/usr/lib/udev
	cp src/helpers/vyos_net_name $(DIR)/usr/lib/udev

ifeq ($(DEB_TARGET_ARCH),amd64)
	# We only install XDP on amd64 systems
	mkdir -p $(DIR)/$(VYOS_DATA_DIR)/xdp
	cp -r src/xdp/xdp_prog_kern.o $(DIR)/$(VYOS_DATA_DIR)/xdp
	find src/xdp -perm /a+x -exec cp {} $(DIR)/$(VYOS_SBIN_DIR) \;
endif