1cc0729f3cdcf8ae6064958af5a342bfebbf2fd5
[openstack-build/neutron-build.git] / xenial / debian / rules
1 #!/usr/bin/make -f
2
3 include /usr/share/openstack-pkg-tools/pkgos.make
4 export OSLO_PACKAGE_VERSION=$(shell dpkg-parsechangelog | grep Version: | cut -d' ' -f2 | sed -e 's/^[[:digit:]]*://' -e 's/[-].*//' -e 's/~/.0/' | head -n 1)
5
6 PYTHONS:=$(shell pyversions -vr)
7
8 %:
9         dh $@ --buildsystem=python_distutils --with python2,systemd,sphinxdoc
10
11 override_dh_auto_install:
12         echo "Do nothing"
13
14 override_dh_install:
15         rm -rf $(CURDIR)/debian/tmp
16         python2.7 setup.py install --install-layout=deb --root=$(CURDIR)/debian/tmp
17         cp -auxf neutron $(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages
18         rm -rf $(CURDIR)/debian/tmp/usr/etc
19
20         # dhcp_agent.ini
21         mkdir -p $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron
22         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron/dhcp_agent.ini \
23                 --wrap-width 140 \
24                 --namespace neutron.base.agent \
25                 --namespace neutron.dhcp.agent \
26                 --namespace oslo.log
27
28         # l3_agent.ini
29         mkdir -p $(CURDIR)/debian/neutron-l3-agent/etc/neutron
30         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-l3-agent/etc/neutron/l3_agent.ini \
31                 --wrap-width 140 \
32                 --namespace neutron.base.agent \
33                 --namespace neutron.l3.agent \
34                 --namespace oslo.log
35
36         # linuxbridge_agent.ini
37         mkdir -p $(CURDIR)/debian/neutron-linuxbridge-agent/etc/neutron/plugins/ml2
38         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-linuxbridge-agent/etc/neutron/plugins/ml2/linuxbridge_agent.ini \
39                 --wrap-width 140 \
40                 --namespace neutron.ml2.linuxbridge.agent \
41                 --namespace oslo.log
42
43         # metadata_agent.ini
44         mkdir -p $(CURDIR)/debian/neutron-metadata-agent/usr/share/neutron-metadata-agent
45         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-metadata-agent/usr/share/neutron-metadata-agent/metadata_agent.ini \
46                 --wrap-width 140 \
47                 --namespace neutron.metadata.agent \
48                 --namespace oslo.log
49
50         # metering_agent.ini
51         mkdir -p $(CURDIR)/debian/neutron-metering-agent/etc/neutron
52         PYTHONPATH=$(CURDIR)/debian/tmp oslo-config-generator --output-file $(CURDIR)/debian/neutron-metering-agent/etc/neutron/metering_agent.ini \
53                 --wrap-width 140 \
54                 --namespace neutron.metering.agent \
55                 --namespace oslo.log
56
57         # ml2_conf.ini
58         mkdir -p $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2
59         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini \
60                 --wrap-width 140 \
61                 --namespace neutron.ml2 \
62                 --namespace oslo.log
63
64         # ml2_conf_sriov.ini
65         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf_sriov.ini \
66                 --wrap-width 140 \
67                 --namespace neutron.ml2.sriov \
68                 --namespace oslo.log
69
70         # neutron.conf
71         mkdir -p $(CURDIR)/debian/neutron-common/usr/share/neutron-common
72         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf \
73                 --wrap-width 140 \
74                 --namespace neutron \
75                 --namespace neutron.agent \
76                 --namespace neutron.db \
77                 --namespace neutron.extensions \
78                 --namespace neutron.qos \
79                 --namespace nova.auth \
80                 --namespace oslo.log \
81                 --namespace oslo.db \
82                 --namespace oslo.policy \
83                 --namespace oslo.concurrency \
84                 --namespace oslo.messaging \
85                 --namespace oslo.middleware.cors \
86                 --namespace oslo.service.sslutils \
87                 --namespace oslo.service.wsgi \
88                 --namespace keystonemiddleware.auth_token
89
90
91         # openvswitch_agent.ini
92         mkdir -p $(CURDIR)/debian/neutron-common/usr/share/neutron-common
93         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini \
94                 --wrap-width 140 \
95                 --namespace neutron.ml2.ovs.agent \
96                 --namespace oslo.log
97
98         # sriov_agent.ini
99         mkdir -p $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2
100         PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python2.7/dist-packages oslo-config-generator --output-file $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/sriov_agent.ini \
101                 --wrap-width 140 \
102                 --namespace neutron.ml2.sriov.agent \
103                 --namespace oslo.log
104
105         dh_install --fail-missing -X/usr/etc
106
107 override_dh_auto_clean:
108         dh_auto_clean
109         find . -type f -name "*.pyc" | xargs rm -fr
110         rm -rf build neutron.egg-info
111         rm -f debian/neutron-common.config \
112                 debian/neutron-common.postinst \
113                 debian/neutron-server.config \
114                 debian/neutron-server.postinst \
115                 debian/neutron-dhcp-agent.postinst \
116                 debian/neutron-metadata-agent.config \
117                 debian/neutron-metadata-agent.postinst
118         rm -f debian/*.init debian/*.service debian/*.upstart
119
120 override_dh_clean:
121         dh_clean
122         find . -type f -name "*.pyc" -delete
123
124 override_dh_auto_test:
125 ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
126         echo "No unit tests: currently broken."
127 #       python2-ostestr --pretty --color --slowest
128 #       @echo "===> Running tests"
129 #       set -e ; set -x ; for i in 2.7 ; do \
130 #               PYMAJOR=`echo $$i | cut -d'.' -f1` ; \
131 #               echo "===> Testing with python$$i (python$$PYMAJOR)" ; \
132 #               rm -rf .testrepository ; \
133 #               testr-python$$PYMAJOR init ; \
134 #               TEMP_REZ=`mktemp -t` ; \
135 #               PYTHONPATH=$(CURDIR) PYTHON=python$$i testr-python$$PYMAJOR run --subunit 'neutron\.tests\.unit.*' | tee $$TEMP_REZ | subunit2pyunit ; \
136 #               cat $$TEMP_REZ | subunit-filter -s --no-passthrough | subunit-stats ; \
137 #               rm -f $$TEMP_REZ ; \
138 #               testr-python$$PYMAJOR slowest ; \
139 #       done
140         #PYTHONPATH=build/* ./run_tests.sh -N -P
141 endif
142
143 override_dh_auto_build:
144         dh_auto_build -O--buildsystem=python_distutils
145
146         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-common.config
147         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-common.postinst
148         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-server.config
149         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-server.postinst
150         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-dhcp-agent.postinst
151         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-metadata-agent.postinst
152         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-metadata-agent.config
153
154 override_dh_sphinxdoc:
155 ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
156         python setup.py build_sphinx
157         cp -rf doc/build/html $(CURDIR)/debian/neutron-doc/usr/share/doc/neutron-doc
158         dh_sphinxdoc -O--buildsystem=python_distutils
159 endif