8a8ce1d3914ff67f86478e0b4d5126c4a441565d
[openstack-build/neutron-build.git] / 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
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         sed -i 's|^[ #\t]*interface_driver[ \t]*=.*|interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver|' $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron/dhcp_agent.ini
28         sed -i 's|^[ #\t]*ovs_integration_bridge[ \t]*=.*|ovs_integration_bridge = br-int|' $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron/dhcp_agent.ini
29         sed -i 's|^[ #\t]*dhcp_driver[ \t]*=.*|dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq|' $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron/dhcp_agent.ini
30         sed -i 's|^[ #\t]*enable_isolated_metadata[ \t]*=.*|enable_isolated_metadata = False|' $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron/dhcp_agent.ini
31         sed -i 's|^[ #\t]*dnsmasq_config_file[ \t]*=.*|dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf|' $(CURDIR)/debian/neutron-dhcp-agent/etc/neutron/dhcp_agent.ini
32
33         # l3_agent.ini
34         mkdir -p $(CURDIR)/debian/neutron-l3-agent/etc/neutron
35         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 \
36                 --wrap-width 140 \
37                 --namespace neutron.base.agent \
38                 --namespace neutron.l3.agent \
39                 --namespace oslo.log
40         sed -i 's|^[ #\t]*interface_driver[ \t]*=.*|interface_driver = openvswitch|' $(CURDIR)/debian/neutron-l3-agent/etc/neutron/l3_agent.ini
41         sed -i 's|^[ #\t]*handle_internal_only_routers[ \t]*=.*|handle_internal_only_routers = True|' $(CURDIR)/debian/neutron-l3-agent/etc/neutron/l3_agent.ini
42         sed -i 's|^[ #\t]*external_network_bridge[ \t]*=.*|external_network_bridge = br-ex|' $(CURDIR)/debian/neutron-l3-agent/etc/neutron/l3_agent.ini
43         sed -i 's|^[ #\t]*enable_metadata_proxy[ \t]*=.*|enable_metadata_proxy = True|' $(CURDIR)/debian/neutron-l3-agent/etc/neutron/l3_agent.ini
44         sed -i 's|^[ #\t]*agent_mode[ \t]*=.*|agent_mode = legacy|' $(CURDIR)/debian/neutron-l3-agent/etc/neutron/l3_agent.ini
45
46         # linuxbridge_agent.ini
47         mkdir -p $(CURDIR)/debian/neutron-linuxbridge-agent/etc/neutron/plugins/ml2
48         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 \
49                 --wrap-width 140 \
50                 --namespace neutron.ml2.linuxbridge.agent \
51                 --namespace oslo.log
52
53         # metadata_agent.ini
54         mkdir -p $(CURDIR)/debian/neutron-metadata-agent/usr/share/neutron-metadata-agent
55         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 \
56                 --wrap-width 140 \
57                 --namespace neutron.metadata.agent \
58                 --namespace oslo.log
59         sed -i 's|^[ #\t]*nova_metadata_protocol[ \t]*=.*|nova_metadata_protocol = http|' $(CURDIR)/debian/neutron-metadata-agent/usr/share/neutron-metadata-agent/metadata_agent.ini
60         sed -i 's|^[ #\t]*nova_metadata_ip[ \t]*=.*|nova_metadata_ip = 127.0.0.1|' $(CURDIR)/debian/neutron-metadata-agent/usr/share/neutron-metadata-agent/metadata_agent.ini
61
62         # metering_agent.ini
63         mkdir -p $(CURDIR)/debian/neutron-metering-agent/etc/neutron
64         PYTHONPATH=$(CURDIR)/debian/tmp oslo-config-generator --output-file $(CURDIR)/debian/neutron-metering-agent/etc/neutron/metering_agent.ini \
65                 --wrap-width 140 \
66                 --namespace neutron.metering.agent \
67                 --namespace oslo.log
68
69         # ml2_conf.ini
70         mkdir -p $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2
71         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 \
72                 --wrap-width 140 \
73                 --namespace neutron.ml2 \
74                 --namespace oslo.log
75         sed -i 's|^[ #\t]*type_drivers[ \t]*=.*|type_drivers = flat,gre|' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
76         sed -i 's|^[ #\t]*tenant_network_types[ \t]*=.*|tenant_network_types = gre|' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
77         sed -i 's|^[ #\t]*mechanism_drivers[ \t]*=.*|mechanism_drivers = openvswitch,l2population|' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
78         sed -i 's|^[ #\t]*flat_networks[ \t]*=.*|flat_networks = external|' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
79         sed -i 's|^[ #\t]*tunnel_id_ranges[ \t]*=.*|tunnel_id_ranges = 1:1000|' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
80         sed -i 's|^[ #\t]*enable_security_group[ \t]*=.*|enable_security_group = True|' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
81         sed -i 's|^[ #\t]*enable_ipset[ \t]*=.*|enable_ipset = True |' $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2/ml2_conf.ini
82
83         # ml2_conf_sriov.ini
84         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 \
85                 --wrap-width 140 \
86                 --namespace neutron.ml2.sriov \
87                 --namespace oslo.log
88
89         # neutron.conf
90         mkdir -p $(CURDIR)/debian/neutron-common/usr/share/neutron-common
91         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 \
92                 --wrap-width 140 \
93                 --namespace neutron \
94                 --namespace neutron.agent \
95                 --namespace neutron.db \
96                 --namespace neutron.extensions \
97                 --namespace neutron.qos \
98                 --namespace nova.auth \
99                 --namespace oslo.log \
100                 --namespace oslo.db \
101                 --namespace oslo.policy \
102                 --namespace oslo.concurrency \
103                 --namespace oslo.messaging \
104                 --namespace oslo.middleware.cors \
105                 --namespace oslo.service.sslutils \
106                 --namespace oslo.service.wsgi \
107                 --namespace keystonemiddleware.auth_token
108         sed -i 's|^[ #\t]*core_plugin[ \t]*=.*|core_plugin = ml2|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
109         sed -i 's|^[ #\t]*service_plugins[ \t]*=.*|service_plugins = router,metering|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
110         sed -i 's|^[ #\t]*auth_strategy[ \t]*=.*|auth_strategy = keystone|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
111         sed -i 's|^[ #\t]*allow_overlapping_ips[ \t]*=.*|allow_overlapping_ips = True|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
112         sed -i 's|^[ #\t]*notify_nova_on_port_status_changes[ \t]*=.*|notify_nova_on_port_status_changes = True |' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
113         sed -i 's|^[ #\t]*rpc_backend[ \t]*=.*|rpc_backend = rabbit|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
114         sed -i 's|^[ #\t]*root_helper[ \t]*=.*|root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
115         sed -i 's|^[ #\t]*connection[ \t]*=.*|connection = sqlite:///var/lib/neutron/neutrondb|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
116         sed -i 's|^[ #\t]*region_name[ \t]*=.*|region_name = regionOne|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
117         sed -i 's|^[ #\t]*rabbit_host[ \t]*=.*|rabbit_host = localhost|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
118         sed -i 's|^[ #\t]*rabbit_userid[ \t]*=.*|rabbit_userid = guest|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
119         sed -i 's|^[ #\t]*rabbit_password[ \t]*=.*|rabbit_password = guest|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
120         sed -i 's/^[ \t#]*auth_protocol[ \t]*=[ \t].*/auth_protocol = http/' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf
121         pkgos-fix-config-default $(CURDIR)/debian/neutron-common/usr/share/neutron-common/neutron.conf oslo_concurrency lock_path /var/lock/neutron
122
123         # openvswitch_agent.ini
124         mkdir -p $(CURDIR)/debian/neutron-common/usr/share/neutron-common
125         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 \
126                 --wrap-width 140 \
127                 --namespace neutron.ml2.ovs.agent \
128                 --namespace oslo.log
129         sed -i 's|^[ #\t]*integration_bridge[ \t]*=.*|integration_bridge = br-int|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
130         sed -i 's|^[ #\t]*bridge_mappings[ \t]*=.*|bridge_mappings = external:br-ex|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
131         sed -i 's|^[ #\t]*polling_interval[ \t]*=.*|polling_interval = 15|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
132         sed -i 's|^[ #\t]*tunnel_types[ \t]*=.*|tunnel_types = gre|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
133         sed -i 's|^[ #\t]*l2_population[ \t]*=.*|l2_population = True|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
134         sed -i 's|^[ #\t]*arp_responder[ \t]*=.*|arp_responder = False|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
135         sed -i 's|^[ #\t]*enable_distributed_routing[ \t]*=.*|enable_distributed_routing = False|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
136         sed -i 's|^[ #\t]*firewall_driver[ \t]*=.*|firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver|' $(CURDIR)/debian/neutron-common/usr/share/neutron-common/openvswitch_agent.ini
137
138         # sriov_agent.ini
139         mkdir -p $(CURDIR)/debian/neutron-common/etc/neutron/plugins/ml2
140         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 \
141                 --wrap-width 140 \
142                 --namespace neutron.ml2.sriov.agent \
143                 --namespace oslo.log
144
145         dh_install --fail-missing -X/usr/etc
146         
147 override_dh_auto_clean:
148         dh_auto_clean
149         find . -type f -name "*.pyc" | xargs rm -fr
150         rm -rf build neutron.egg-info
151         rm -f debian/neutron-common.config \
152                 debian/neutron-common.postinst \
153                 debian/neutron-server.config \
154                 debian/neutron-server.postinst \
155                 debian/neutron-dhcp-agent.postinst \
156                 debian/neutron-metadata-agent.config \
157                 debian/neutron-metadata-agent.postinst
158         rm -f debian/*.init debian/*.service debian/*.upstart
159
160 override_dh_clean:
161         dh_clean
162         find . -type f -name "*.pyc" -delete
163
164 override_dh_auto_test:
165 ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
166         PYTHONPATH=build/* ./run_tests.sh -N -P || true
167 endif
168
169 override_dh_auto_build:
170         dh_auto_build -O--buildsystem=python_distutils
171
172         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-common.config
173         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-common.postinst
174         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-server.config
175         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-server.postinst
176         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-dhcp-agent.postinst
177         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-metadata-agent.postinst
178         /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func neutron-metadata-agent.config