summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 8e5aee3e687557cca6928abff353274307605435 (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
#!/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

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

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 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)

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