File: rules

package info (click to toggle)
nova 2%3A26.2.2-1~deb12u3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 50,240 kB
  • sloc: python: 396,844; pascal: 1,799; sh: 936; makefile: 150; xml: 83
file content (204 lines) | stat: -rwxr-xr-x 11,094 bytes parent folder | download
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#!/usr/bin/make -f

include /usr/share/openstack-pkg-tools/pkgos.make

NOVA_CONF=$(CURDIR)/debian/nova-common/usr/share/nova-common/nova.conf

%:
	dh $@ --buildsystem=python_distutils --with python3,sphinxdoc

override_dh_auto_clean:
	python3 setup.py clean
	rm -rf doc/build/ doc/source/api doc/.autogenerated
	rm -rf tests.sqlite clean.sqlite run_tests.log
	rm -rf CA
	rm -rf nova.egg-info
	rm -f po/nova.pot
	rm -rf .autogenerated
	rm -f debian/nova-common.config debian/nova-common.postinst \
		debian/nova-api.config debian/nova-api.postinst debian/nova-common.postrm
	rm -f debian/*.init debian/*.service debian/*.upstart
	rm -rf build etc/nova/nova.conf.sample
	rm -rf .testrepository subunit.log instances keys
	rm -rf debian/bla
	rm -f debian/nova-api.templates debian/nova-common.templates
	find .  -type d -name __pycache__ -exec rm -r {} \+

override_dh_auto_build:
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-common.config
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-common.postinst
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-api.config
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-api.postinst
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_postrm nova-common.postrm
	pkgos-merge-templates nova-api nova endpoint
	pkgos-merge-templates nova-common nova db rabbit ksat

override_dh_sphinxdoc:
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
	PYTHONPATH=. python3 -m sphinx -b html doc/source $(CURDIR)/debian/nova-doc/usr/share/doc/nova-doc/html
	dh_sphinxdoc -O--buildsystem=python_distutils
endif

override_dh_installman:
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
	PYTHONPATH=. python3 -m sphinx -b man doc/source doc/build/man
	dh_installman -O--buildsystem=python_distutils
endif

override_dh_auto_install:
	echo "Please do nothing"

override_dh_install:
	# Fix until https://review.opendev.org/c/openstack/nova/+/809980 is merged
	touch nova/db/api/__init__.py
	for i in $(PYTHON3S) ; do \
		python3 setup.py install -f --install-layout=deb --root=$(CURDIR)/debian/tmp ; \
	done

ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
	pkgos-dh_auto_test --no-py2 'nova\.tests\.unit\.(?!(.*virt.libvirt\.test_driver\.LibvirtConnTestCase\.test_spawn_with_config_drive.*|.*test_wsgi\.TestWSGIServerWithSSL.*|.*test_hacking\.HackingTestCase.*|.*CreateInstanceTypeTest\.test_name_with_non_printable_characters.*|.*PatternPropertiesTestCase\.test_validate_patternProperties_fails.*|.*virt\.libvirt\.test_driver\.LibvirtDriverTestCase\.test_get_disk_xml.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_detach_volume_with_vir_domain_affect_live_flag.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_update_volume_xml.*|.*console\.test_websocketproxy\.NovaProxyRequestHandlerTestCase\.test_tcp_rst_no_compute_rpcapi.*|.*virt\.libvirt\.test_blockinfo\.LibvirtBlockInfoTest\.test_get_disk_mapping_rescue_with_config.*|.*virt\.libvirt\.test_blockinfo\.LibvirtBlockInfoTest\.test_get_disk_mapping_stable_rescue_ide_cdrom.*|.*virt\.libvirt\.volume\.test_nvme\.LibvirtNVMEVolumeDriverTestCase\.test_libvirt_nvme_driver_connect.*|.*virt\.libvirt\.volume\.test_nvme\.LibvirtNVMEVolumeDriverTestCase\.test_libvirt_nvme_driver_disconnect.*|.*virt\.libvirt\.volume\.test_nvme\.LibvirtNVMEVolumeDriverTestCase\.test_libvirt_nvme_driver_get_config.*|.*virt\.libvirt\.volume\.test_scaleio\.LibvirtScaleIOVolumeDriverTestCase.*|.*virt\.libvirt\.test_driver\.LibvirtDriverTestCase\.test_cross_cell_move_rbd_flatten_fetch_image_cache.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_check_discard_for_attach_volume_blk_controller_no_unmap.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_check_discard_for_attach_volume_no_unmap.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_check_discard_for_attach_volume_valid_controller.*|.*virt\.libvirt\.test_driver\.LibvirtDriverTestCase\.test_rbd_image_flatten_during_fetch_image_cache.*|.*test_utils\.GenericUtilsTestCase\.test_temporary_chown.*|console\.test_websocketproxy\.NovaProxyRequestHandlerTestCase\.test_reject_open_redirect|console\.test_websocketproxy\.NovaProxyRequestHandlerTestCase\.test_reject_open_redirect_3_slashes|privsep\.test_utils\.SupportDirectIOTestCase\.test_supports_direct_io_with_exception_in_open|privsep\.test_utils\.SupportDirectIOTestCase\.test_supports_direct_io_with_exception_in_write))'
endif

	rm -rf $(CURDIR)/debian/tmp/usr/etc

	mkdir -p $(CURDIR)/debian/nova-common/usr/share/nova-common
	PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
		--output-file=$(CURDIR)/debian/nova-common/usr/share/nova-common/policy.json.example \
		--format json \
		--namespace nova

	PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
		--output-file=$(CURDIR)/debian/nova-common/usr/share/nova-common/policy.yaml.example \
		--format yaml \
		--namespace nova

	mkdir -p $(CURDIR)/debian/nova-common/usr/share/nova-common
	PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslo-config-generator \
		--output-file=$(CURDIR)/debian/nova-common/usr/share/nova-common/nova.conf \
		--wrap-width 140 \
		--namespace nova.conf \
		--namespace oslo.limit \
		--namespace oslo.log \
		--namespace oslo.messaging \
		--namespace oslo.policy \
		--namespace oslo.privsep \
		--namespace oslo.service.periodic_task \
		--namespace oslo.service.service \
		--namespace oslo.middleware \
		--namespace oslo.concurrency \
		--namespace oslo.reports \
		--namespace keystonemiddleware.auth_token \
		--namespace osprofiler

	pkgos-readd-keystone-authtoken-missing-options $(NOVA_CONF) keystone_authtoken nova

	mkdir -p $(CURDIR)/debian/nova-common/etc/nova/policy.d
	PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
		--output-file=$(CURDIR)/debian/nova-common/etc/nova/policy.d/00_default_policy.yaml \
		--format yaml \
		--namespace nova

	# Comment out deprecated policies, otherwise, Nova doesn't work
	sed -i 's/^"/#"/' $(CURDIR)/debian/nova-common/etc/nova/policy.d/00_default_policy.yaml

	# Use the policy.d folder
	pkgos-fix-config-default $(CURDIR)/debian/nova-common/usr/share/nova-common/nova.conf oslo_policy policy_dirs /etc/nova/policy.d


	# Otherwise, this is set to the build dir
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT pybasedir /usr/lib/python3/dist-packages
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT bindir /usr/bin

	# General needed fixes
	pkgos-fix-config-default $(NOVA_CONF) oslo_concurrency lock_path /var/lock/nova
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT state_path /var/lib/nova

	# Let's use Neutron by default, and not stupid nova-network
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT security_group_api neutron
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT network_api_class nova.network.neutronv2.api.API
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT use_neutron True
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
	pkgos-fix-config-default $(NOVA_CONF) DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
	pkgos-fix-config-default $(NOVA_CONF) neutron default_floating_pool ext-net

	# Fixup a few defaults for the [neutron] auth
	pkgos-fix-config-default $(NOVA_CONF) neutron auth_type password
	pkgos-fix-config-default $(NOVA_CONF) neutron username admin
	pkgos-fix-config-default $(NOVA_CONF) neutron user_domain_name default
	pkgos-fix-config-default $(NOVA_CONF) neutron project_name admin
	pkgos-fix-config-default $(NOVA_CONF) neutron project_domain_name default
	pkgos-fix-config-default $(NOVA_CONF) neutron service_name neutron
	pkgos-fix-config-default $(NOVA_CONF) neutron auth_url http://127.0.0.1:5000

	pkgos-fix-config-default $(NOVA_CONF) neutron service_metadata_proxy true

	# Convenient default for the SQLite default db
	pkgos-fix-config-default $(NOVA_CONF) database connection sqlite:////var/lib/nova/novadb

	# Let's use SPICE byd default
	pkgos-fix-config-default $(NOVA_CONF) VNC enabled false
	pkgos-fix-config-default $(NOVA_CONF) VNC vncserver_listen 0.0.0.0
	pkgos-fix-config-default $(NOVA_CONF) spice vncserver_listen 0.0.0.0
	pkgos-fix-config-default $(NOVA_CONF) spice server_listen 0.0.0.0
	pkgos-fix-config-default $(NOVA_CONF) spice server_proxyclient_address \$$my_ip
	pkgos-fix-config-default $(NOVA_CONF) spice enabled true

	# Works by default
	pkgos-fix-config-default $(NOVA_CONF) keystone_authtoken auth_protocol http

	# Cinder os_region_name set to regionOne as default value
	pkgos-fix-config-default $(NOVA_CONF) cinder os_region_name regionOne

	# Fixup a few default for the [placement] auth
	pkgos-fix-config-default $(NOVA_CONF) placement region_name regionOne
	pkgos-fix-config-default $(NOVA_CONF) placement project_domain_name default
	pkgos-fix-config-default $(NOVA_CONF) placement project_name service
	pkgos-fix-config-default $(NOVA_CONF) placement auth_type password
	pkgos-fix-config-default $(NOVA_CONF) placement user_domain_name default
	pkgos-fix-config-default $(NOVA_CONF) placement auth_url http://localhost:5000/v3
	pkgos-fix-config-default $(NOVA_CONF) placement username = placement

	rm debian/tmp/usr/bin/nova-api-os-compute
	rm debian/tmp/usr/bin/nova-api-metadata

	dh_install
	dh_missing --fail-missing -Xbin/nova-all -Xbin/nova-network

	install -D -m 0440 $(CURDIR)/debian/nova-common.sudoers $(CURDIR)/debian/nova-common/etc/sudoers.d/nova-common
	install -D -m 0644 $(CURDIR)/etc/nova/logging_sample.conf $(CURDIR)/debian/nova-common/usr/share/nova-common/logging.conf
	set -e ; for hypervisor in qemu kvm uml lxc ironic; do \
		install -D -m 0600 $(CURDIR)/debian/nova-compute-$${hypervisor}.conf $(CURDIR)/debian/nova-compute-$${hypervisor}/etc/nova/nova-compute.conf; \
	done
	find $(CURDIR)/debian -name .gitignore -delete

override_dh_fixperms:
	dh_fixperms -Xnova_sudoers
	dh_fixperms -Xnova_tgt

override_dh_auto_test:
	echo "Do nothing..."

# We use override_dh_installmenu because it's done in the sequence with dh,
# and we already override dh_installinit in pkgos.make.
# Obviously, we will never use a Desktop menu in such a package, so that's
# not a problem.
override_dh_installmenu:
	dh_installinit --name=nova-novncproxy
	dh_installinit --name=nova-spicehtml5proxy
	dh_installinit --name=nova-serialproxy
	dh_installinit --name=nova-api
	dh_installinit --name=nova-api-metadata
	install -D -m 0644 $(CURDIR)/debian/nova-consoleproxy.mydefault $(CURDIR)/debian/nova-consoleproxy/usr/share/nova-consoleproxy/default

override_dh_installsystemd:
	dh_installsystemd -pnova-compute
	dh_installsystemd -pnova-conductor
	dh_installsystemd -pnova-scheduler
	dh_installsystemd -pnova-api --name=nova-api
	dh_installsystemd -pnova-api --name=nova-api-metadata
	dh_installsystemd -pnova-consoleproxy --name=nova-novncproxy
	dh_installsystemd -pnova-consoleproxy --name=nova-serialproxy
	dh_installsystemd -pnova-consoleproxy --name=nova-spicehtml5proxy

override_dh_python3:
	dh_python3 --shebang=/usr/bin/python3