Gentoo Archives: gentoo-commits

From: Matt Thode <prometheanfire@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/neutron/
Date: Thu, 30 Aug 2018 18:58:35
Message-Id: 1535655497.bdd7c0621bd5625cc1213f85ec3d20031e5d62b9.prometheanfire@gentoo
1 commit: bdd7c0621bd5625cc1213f85ec3d20031e5d62b9
2 Author: Matthew Thode <prometheanfire <AT> gentoo <DOT> org>
3 AuthorDate: Thu Aug 30 18:57:49 2018 +0000
4 Commit: Matt Thode <prometheanfire <AT> gentoo <DOT> org>
5 CommitDate: Thu Aug 30 18:58:17 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bdd7c062
7
8 sys-cluster/neutron: 13.0.0 bump ROCKY
9
10 Package-Manager: Portage-2.3.48, Repoman-2.3.10
11
12 sys-cluster/neutron/Manifest | 5 +
13 sys-cluster/neutron/neutron-13.0.0.ebuild | 231 +++++++++++++++++++++++++
14 sys-cluster/neutron/neutron-2018.2.9999.ebuild | 231 +++++++++++++++++++++++++
15 3 files changed, 467 insertions(+)
16
17 diff --git a/sys-cluster/neutron/Manifest b/sys-cluster/neutron/Manifest
18 index 8f4332733f2..f78882d8ae6 100644
19 --- a/sys-cluster/neutron/Manifest
20 +++ b/sys-cluster/neutron/Manifest
21 @@ -1,10 +1,15 @@
22 DIST neutron-11.0.5.tar.gz 10508647 BLAKE2B f1a44d78bf3464c825f104411e5fb388f464fb7ddc0c4a4607a32233a9ec820196b0efbb6d143c428dea301d5eb4ecc97bc7c8120190a9b4a590f872745e2f8e SHA512 73f31156b9771aa404a116b7a3b8a8f9a6b97adf155fc9790b405a7b75cc4c9c6693b5984bcdd10453f85b63a1081fb28262cba4cf09de34a1e24017a920337f
23 DIST neutron-12.0.3.tar.gz 10443832 BLAKE2B d5761b3d3599f8cd638784b9a84e846eb589f5164939d08ba23fd9ccac8d12928842461d7903f398b841ae89af2204b51419924b9735c4e7e5a4073efa7761e7 SHA512 bfb423b383d52dc919a3bdf01ccf39beab32c9de8b6995f78d6badff0628bdf975e4ae52ad41d61b8bb674270739f38de8374c5a894ed0d06e02909fda813498
24 +DIST neutron-13.0.0.tar.gz 10585292 BLAKE2B 7c5a9f7bf13e2e5c3c7359b0e411481505a146564cd3b976021283df0b465eac74dc48fd3cca6db5e4c7b365c33fe2f26c9c85c90e3dc5c0faa3ed84d8a8eff7 SHA512 57e678a20eb782fba644220176d193541bcd3abc75fce04f3db2dd9138d7fa5ff4b79a7ad448e9b26bd30d2ac7fb259a500dcdf148f7ccbb8ce7a41dd258c51f
25 DIST neutron-configs-11.0.5.tar.gz 25030 BLAKE2B 6ca7507571983cdf576cb943bb2981623351c3de4220ccf990ba478147bcbaea06f4d5218ba6ad65c98f2a0c60c820be03429e8a22a624cf10339b80fcf17bbd SHA512 d82abfcfe5c911dc8a0689e23aaad810bb3aacaf64bd35439220f41390a71958e7cd34e60500580c24ea9e8b55a6fb0441ce4e5612fad9aba2e48d6f14d4d87a
26 DIST neutron-configs-12.0.3.tar.gz 26252 BLAKE2B c1493e313dc590445e60dcf8df9fc2b89a8e96e57ce072577b3a73fe247218a9ef9805ca9c61b79d2bd4c7aa088933762389258c1184e4572975db03c1674869 SHA512 05c8774d142a59da3e294f2351f1cc89f8cd275aedf3771c11d8176305ceec472980673f0ed07b3f4219a8ff4b4bb6e79f836a1f11ddd8e003d1ccd49051e5ac
27 +DIST neutron-configs-13.0.0.tar.gz 26109 BLAKE2B 5de3b90dcb6f8c86ce659b3ab439a79dd920aaf57b66a1e1b29f1b0d0fd433b222335a634dca01ce2b0e07acc3011ff6bf25983071dc0ff00e78ac847ee3fdd6 SHA512 498f41ffec6c14597e9785da9a36c2d906138215b34017aa93f56d051078682279bcce05288d2534ff7ab8208b8251c9f721256488f6850173210e41bc6dd51c
28 DIST neutron-configs-2017.2.9999.tar.gz 25030 BLAKE2B 6ca7507571983cdf576cb943bb2981623351c3de4220ccf990ba478147bcbaea06f4d5218ba6ad65c98f2a0c60c820be03429e8a22a624cf10339b80fcf17bbd SHA512 d82abfcfe5c911dc8a0689e23aaad810bb3aacaf64bd35439220f41390a71958e7cd34e60500580c24ea9e8b55a6fb0441ce4e5612fad9aba2e48d6f14d4d87a
29 DIST neutron-configs-2018.1.9999.tar.gz 26252 BLAKE2B c1493e313dc590445e60dcf8df9fc2b89a8e96e57ce072577b3a73fe247218a9ef9805ca9c61b79d2bd4c7aa088933762389258c1184e4572975db03c1674869 SHA512 05c8774d142a59da3e294f2351f1cc89f8cd275aedf3771c11d8176305ceec472980673f0ed07b3f4219a8ff4b4bb6e79f836a1f11ddd8e003d1ccd49051e5ac
30 +DIST neutron-configs-2018.2.9999.tar.gz 26109 BLAKE2B 5de3b90dcb6f8c86ce659b3ab439a79dd920aaf57b66a1e1b29f1b0d0fd433b222335a634dca01ce2b0e07acc3011ff6bf25983071dc0ff00e78ac847ee3fdd6 SHA512 498f41ffec6c14597e9785da9a36c2d906138215b34017aa93f56d051078682279bcce05288d2534ff7ab8208b8251c9f721256488f6850173210e41bc6dd51c
31 DIST neutron-ml2-plugins-11.0.5.tar.gz 6885 BLAKE2B c953d7222932d09c545dcfe01923f77cbc9e76157f78e5cb85a8e3bb03c8f3b4ab2bcc7eb2fc213578f71cf70543c4182c98bc6e5947fc1a0cbffe3d845bce20 SHA512 e5acaed2fc370e99c9c8b54040cdc994cd35bfbd3d74682d3c03c381568c89b316a6a87356aa6ae538a19c2ae83b6b3c512095afcc778525c2885b9b6bef04bd
32 DIST neutron-ml2-plugins-12.0.3.tar.gz 7060 BLAKE2B 7690218233971ab50623900e01fe4311e2b599661838a232616cdc4b56bff1a7fd6e6c3b7fe77f79c78c024eb571525b0e21a306c18fd884bd0dfdd6b814f2b4 SHA512 259db5513c014c6dda97432834f90744dec3732292a2de71d488e537f0f660959ea09890cf3dd3d22206295b259dad83440a60ee28e84a5b125547f869e0016b
33 +DIST neutron-ml2-plugins-13.0.0.tar.gz 7068 BLAKE2B fa27bd84c1d67bd36c7c7e47b6e8f98dd100e09c7a3bfa7aec615ed24e3dadf240f8ef44874c868ff92f79452afbf4a21fba46b1b9aec191bad53a62767b1861 SHA512 add4697c78c592dfe5ebadd3b0cf9b9c2a2c33bd05130a8e1422abf7456d8a0cc926a0d46f6b49ceee87017304d7c9c3486c975086e46f178e3bc142844f836f
34 DIST neutron-ml2-plugins-2017.2.9999.tar.gz 6885 BLAKE2B c953d7222932d09c545dcfe01923f77cbc9e76157f78e5cb85a8e3bb03c8f3b4ab2bcc7eb2fc213578f71cf70543c4182c98bc6e5947fc1a0cbffe3d845bce20 SHA512 e5acaed2fc370e99c9c8b54040cdc994cd35bfbd3d74682d3c03c381568c89b316a6a87356aa6ae538a19c2ae83b6b3c512095afcc778525c2885b9b6bef04bd
35 DIST neutron-ml2-plugins-2018.1.9999.tar.gz 7060 BLAKE2B 7690218233971ab50623900e01fe4311e2b599661838a232616cdc4b56bff1a7fd6e6c3b7fe77f79c78c024eb571525b0e21a306c18fd884bd0dfdd6b814f2b4 SHA512 259db5513c014c6dda97432834f90744dec3732292a2de71d488e537f0f660959ea09890cf3dd3d22206295b259dad83440a60ee28e84a5b125547f869e0016b
36 +DIST neutron-ml2-plugins-2018.2.9999.tar.gz 7068 BLAKE2B fa27bd84c1d67bd36c7c7e47b6e8f98dd100e09c7a3bfa7aec615ed24e3dadf240f8ef44874c868ff92f79452afbf4a21fba46b1b9aec191bad53a62767b1861 SHA512 add4697c78c592dfe5ebadd3b0cf9b9c2a2c33bd05130a8e1422abf7456d8a0cc926a0d46f6b49ceee87017304d7c9c3486c975086e46f178e3bc142844f836f
37
38 diff --git a/sys-cluster/neutron/neutron-13.0.0.ebuild b/sys-cluster/neutron/neutron-13.0.0.ebuild
39 new file mode 100644
40 index 00000000000..a3844c8bfd2
41 --- /dev/null
42 +++ b/sys-cluster/neutron/neutron-13.0.0.ebuild
43 @@ -0,0 +1,231 @@
44 +# Copyright 1999-2018 Gentoo Foundation
45 +# Distributed under the terms of the GNU General Public License v2
46 +
47 +EAPI=6
48 +PYTHON_COMPAT=( python2_7 python3_{5,6} )
49 +# still no 34 :( https://bugs.launchpad.net/neutron/+bug/1630439
50 +
51 +inherit distutils-r1 linux-info user
52 +
53 +DESCRIPTION="A virtual network service for Openstack"
54 +HOMEPAGE="https://launchpad.net/neutron"
55 +if [[ ${PV} == *9999 ]];then
56 + inherit git-r3
57 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/configs.tar.gz -> neutron-configs-${PV}.tar.gz
58 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz"
59 + EGIT_REPO_URI="https://github.com/openstack/neutron.git"
60 + EGIT_BRANCH="stable/rocky"
61 +else
62 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/configs.tar.gz -> neutron-configs-${PV}.tar.gz
63 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz
64 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
65 + KEYWORDS="~amd64 ~arm64 ~x86"
66 +fi
67 +
68 +LICENSE="Apache-2.0"
69 +SLOT="0"
70 +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite mysql postgres"
71 +REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
72 + compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
73 + || ( openvswitch linuxbridge ) )"
74 +
75 +CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
76 + !~dev-python/pbr-2.1.0"
77 +DEPEND="
78 + dev-python/setuptools[${PYTHON_USEDEP}]
79 + ${CDEPEND}
80 + app-admin/sudo"
81 +
82 +RDEPEND="
83 + ${CDEPEND}
84 + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
85 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
86 + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
87 + >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
88 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
89 + !~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}]
90 + >=dev-python/pecan-1.1.1[${PYTHON_USEDEP}]
91 + !~dev-python/pecan-1.2.0[${PYTHON_USEDEP}]
92 + >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
93 + >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
94 + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
95 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
96 + >=dev-python/neutron-lib-1.18.0[${PYTHON_USEDEP}]
97 + >=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}]
98 + >=dev-python/tenacity-3.2.1[${PYTHON_USEDEP}]
99 + >=dev-python/ryu-4.24[${PYTHON_USEDEP}]
100 + compute-only? (
101 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
102 + )
103 + sqlite? (
104 + >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
105 + )
106 + mysql? (
107 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
108 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
109 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
110 + )
111 + postgres? (
112 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
113 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
114 + )
115 + >=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
116 + >=dev-python/keystoneauth-3.4.0[${PYTHON_USEDEP}]
117 + >=dev-python/alembic-0.8.10[${PYTHON_USEDEP}]
118 + >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
119 + >=dev-python/stevedore-1.20.1[${PYTHON_USEDEP}]
120 + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
121 + >=dev-python/oslo-concurrency-3.25.0[${PYTHON_USEDEP}]
122 + >=dev-python/oslo-config-5.1.0[${PYTHON_USEDEP}]
123 + >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
124 + >=dev-python/oslo-db-4.27.0[${PYTHON_USEDEP}]
125 + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
126 + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
127 + >=dev-python/oslo-messaging-5.29.0[${PYTHON_USEDEP}]
128 + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
129 + >=dev-python/oslo-policy-1.30.0[${PYTHON_USEDEP}]
130 + >=dev-python/oslo-privsep-1.23.0[${PYTHON_USEDEP}]
131 + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
132 + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
133 + >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
134 + !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
135 + >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
136 + !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
137 + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
138 + >=dev-python/oslo-versionedobjects-1.31.2[${PYTHON_USEDEP}]
139 + >=dev-python/osprofiler-1.4.0[${PYTHON_USEDEP}]
140 + >=dev-python/ovs-2.8.0[${PYTHON_USEDEP}]
141 + >=dev-python/ovsdbapp-0.9.1[${PYTHON_USEDEP}]
142 + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
143 + >=dev-python/pyroute2-0.4.21[${PYTHON_USEDEP}]
144 + >=dev-python/weakrefmethod-1.0.2[$(python_gen_usedep 'python2_7')]
145 + >=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
146 + >=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}]
147 + >=dev-python/os-xenapi-0.3.1[${PYTHON_USEDEP}]
148 + dev-python/pyudev[${PYTHON_USEDEP}]
149 + sys-apps/iproute2
150 + net-misc/iputils[arping]
151 + net-misc/bridge-utils
152 + net-firewall/ipset
153 + net-firewall/iptables
154 + net-firewall/ebtables
155 + net-firewall/conntrack-tools
156 + haproxy? ( net-proxy/haproxy )
157 + openvswitch? ( <=net-misc/openvswitch-2.8.9999 )
158 + ipv6? (
159 + net-misc/radvd
160 + >=net-misc/dibbler-1.0.1
161 + )
162 + dhcp? ( net-dns/dnsmasq[dhcp-tools] )"
163 +
164 +#PATCHES=(
165 +#)
166 +
167 +pkg_pretend() {
168 + linux-info_pkg_setup
169 + CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
170 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \
171 + NF_NAT_IPV4 NF_NAT NF_CONNTRACK IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES"
172 + if linux_config_exists; then
173 + for module in ${CONFIG_CHECK_MODULES}; do
174 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
175 + done
176 + fi
177 +}
178 +
179 +pkg_setup() {
180 + enewgroup neutron
181 + enewuser neutron -1 -1 /var/lib/neutron neutron
182 +}
183 +
184 +pkg_config() {
185 + fperms 0700 /var/log/neutron
186 + fowners neutron:neutron /var/log neutron
187 +}
188 +
189 +src_prepare() {
190 + sed -i '/^hacking/d' test-requirements.txt || die
191 + # it's /bin/ip not /sbin/ip
192 + sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die
193 + distutils-r1_python_prepare_all
194 +}
195 +
196 +python_install_all() {
197 + distutils-r1_python_install_all
198 + if use server; then
199 + newinitd "${FILESDIR}/neutron.initd" "neutron-server"
200 + newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
201 + dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
202 + fi
203 + if use dhcp; then
204 + newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
205 + newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
206 + fi
207 + if use l3; then
208 + newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
209 + newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
210 + fi
211 + if use metadata; then
212 + newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
213 + newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
214 + fi
215 + if use openvswitch; then
216 + newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
217 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
218 + newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
219 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
220 + fi
221 + if use linuxbridge; then
222 + newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
223 + newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
224 + fi
225 + diropts -m 755 -o neutron -g neutron
226 + dodir /var/log/neutron /var/lib/neutron
227 + keepdir /etc/neutron
228 + insinto /etc/neutron
229 + insopts -m 0640 -o neutron -g neutron
230 +
231 + doins etc/*
232 + # stupid renames
233 + insinto /etc/neutron
234 + doins -r "etc/neutron/plugins"
235 + insopts -m 0640 -o root -g root
236 + doins "etc/rootwrap.conf"
237 + doins -r "etc/neutron/rootwrap.d"
238 +
239 + #add sudoers definitions for user neutron
240 + insinto /etc/sudoers.d/
241 + insopts -m 0440 -o root -g root
242 + newins "${FILESDIR}/neutron.sudoersd" neutron
243 +
244 + # add generated configs
245 + cd "${D}/etc/neutron" || die
246 + unpack "neutron-configs-${PV}.tar.gz"
247 + cd "${D}/etc/neutron/plugins/ml2" || die
248 + unpack "neutron-ml2-plugins-${PV}.tar.gz"
249 +
250 + # correcting perms
251 + fowners neutron:neutron -R "/etc/neutron"
252 + fperms o-rwx -R "/etc/neutron/"
253 +
254 + #remove superfluous stuff
255 + rm -R "${D}/usr/etc/"
256 +}
257 +
258 +python_install() {
259 + distutils-r1_python_install
260 + # copy migration conf file (not coppied on install via setup.py script)
261 + insopts -m 0644
262 + insinto "/$(python_get_sitedir)/neutron/db/migration/alembic_migrations/"
263 + doins -r "neutron/db/migration/alembic_migrations/versions"
264 +}
265 +
266 +pkg_postinst() {
267 + elog
268 + elog "neutron-server's conf.d file may need updating to include additional ini files"
269 + elog "We currently assume the ml2 plugin will be used but do not make assumptions"
270 + elog "on if you will use openvswitch or linuxbridge (or something else)"
271 + elog
272 + elog "Other conf.d files may need updating too, but should be good for the default use case"
273 + elog
274 +}
275
276 diff --git a/sys-cluster/neutron/neutron-2018.2.9999.ebuild b/sys-cluster/neutron/neutron-2018.2.9999.ebuild
277 new file mode 100644
278 index 00000000000..a3844c8bfd2
279 --- /dev/null
280 +++ b/sys-cluster/neutron/neutron-2018.2.9999.ebuild
281 @@ -0,0 +1,231 @@
282 +# Copyright 1999-2018 Gentoo Foundation
283 +# Distributed under the terms of the GNU General Public License v2
284 +
285 +EAPI=6
286 +PYTHON_COMPAT=( python2_7 python3_{5,6} )
287 +# still no 34 :( https://bugs.launchpad.net/neutron/+bug/1630439
288 +
289 +inherit distutils-r1 linux-info user
290 +
291 +DESCRIPTION="A virtual network service for Openstack"
292 +HOMEPAGE="https://launchpad.net/neutron"
293 +if [[ ${PV} == *9999 ]];then
294 + inherit git-r3
295 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/configs.tar.gz -> neutron-configs-${PV}.tar.gz
296 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz"
297 + EGIT_REPO_URI="https://github.com/openstack/neutron.git"
298 + EGIT_BRANCH="stable/rocky"
299 +else
300 + SRC_URI="https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/configs.tar.gz -> neutron-configs-${PV}.tar.gz
301 + https://dev.gentoo.org/~prometheanfire/dist/openstack/neutron/rocky/ml2_plugins.tar.gz -> neutron-ml2-plugins-${PV}.tar.gz
302 + https://tarballs.openstack.org/${PN}/${P}.tar.gz"
303 + KEYWORDS="~amd64 ~arm64 ~x86"
304 +fi
305 +
306 +LICENSE="Apache-2.0"
307 +SLOT="0"
308 +IUSE="compute-only dhcp haproxy ipv6 l3 metadata openvswitch linuxbridge server sqlite mysql postgres"
309 +REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) )
310 + compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server
311 + || ( openvswitch linuxbridge ) )"
312 +
313 +CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
314 + !~dev-python/pbr-2.1.0"
315 +DEPEND="
316 + dev-python/setuptools[${PYTHON_USEDEP}]
317 + ${CDEPEND}
318 + app-admin/sudo"
319 +
320 +RDEPEND="
321 + ${CDEPEND}
322 + >=dev-python/paste-2.0.2[${PYTHON_USEDEP}]
323 + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}]
324 + >=dev-python/routes-2.3.1[${PYTHON_USEDEP}]
325 + >=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
326 + >=dev-python/eventlet-0.18.4[${PYTHON_USEDEP}]
327 + !~dev-python/eventlet-0.20.1[${PYTHON_USEDEP}]
328 + >=dev-python/pecan-1.1.1[${PYTHON_USEDEP}]
329 + !~dev-python/pecan-1.2.0[${PYTHON_USEDEP}]
330 + >=dev-python/httplib2-0.9.1[${PYTHON_USEDEP}]
331 + >=dev-python/jinja-2.10[${PYTHON_USEDEP}]
332 + >=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
333 + >=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
334 + >=dev-python/neutron-lib-1.18.0[${PYTHON_USEDEP}]
335 + >=dev-python/python-neutronclient-6.3.0[${PYTHON_USEDEP}]
336 + >=dev-python/tenacity-3.2.1[${PYTHON_USEDEP}]
337 + >=dev-python/ryu-4.24[${PYTHON_USEDEP}]
338 + compute-only? (
339 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
340 + )
341 + sqlite? (
342 + >=dev-python/sqlalchemy-1.2.0[sqlite,${PYTHON_USEDEP}]
343 + )
344 + mysql? (
345 + >=dev-python/pymysql-0.7.6[${PYTHON_USEDEP}]
346 + !~dev-python/pymysql-0.7.7[${PYTHON_USEDEP}]
347 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
348 + )
349 + postgres? (
350 + >=dev-python/psycopg-2.5.0[${PYTHON_USEDEP}]
351 + >=dev-python/sqlalchemy-1.2.0[${PYTHON_USEDEP}]
352 + )
353 + >=dev-python/webob-1.7.1[${PYTHON_USEDEP}]
354 + >=dev-python/keystoneauth-3.4.0[${PYTHON_USEDEP}]
355 + >=dev-python/alembic-0.8.10[${PYTHON_USEDEP}]
356 + >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
357 + >=dev-python/stevedore-1.20.1[${PYTHON_USEDEP}]
358 + >=dev-python/oslo-cache-1.26.0[${PYTHON_USEDEP}]
359 + >=dev-python/oslo-concurrency-3.25.0[${PYTHON_USEDEP}]
360 + >=dev-python/oslo-config-5.1.0[${PYTHON_USEDEP}]
361 + >=dev-python/oslo-context-2.19.2[${PYTHON_USEDEP}]
362 + >=dev-python/oslo-db-4.27.0[${PYTHON_USEDEP}]
363 + >=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
364 + >=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
365 + >=dev-python/oslo-messaging-5.29.0[${PYTHON_USEDEP}]
366 + >=dev-python/oslo-middleware-3.31.0[${PYTHON_USEDEP}]
367 + >=dev-python/oslo-policy-1.30.0[${PYTHON_USEDEP}]
368 + >=dev-python/oslo-privsep-1.23.0[${PYTHON_USEDEP}]
369 + >=dev-python/oslo-reports-1.18.0[${PYTHON_USEDEP}]
370 + >=dev-python/oslo-rootwrap-5.8.0[${PYTHON_USEDEP}]
371 + >=dev-python/oslo-serialization-1.18.0[${PYTHON_USEDEP}]
372 + !~dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
373 + >=dev-python/oslo-service-1.24.0[${PYTHON_USEDEP}]
374 + !~dev-python/oslo-service-1.28.1[${PYTHON_USEDEP}]
375 + >=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
376 + >=dev-python/oslo-versionedobjects-1.31.2[${PYTHON_USEDEP}]
377 + >=dev-python/osprofiler-1.4.0[${PYTHON_USEDEP}]
378 + >=dev-python/ovs-2.8.0[${PYTHON_USEDEP}]
379 + >=dev-python/ovsdbapp-0.9.1[${PYTHON_USEDEP}]
380 + >=dev-python/psutil-3.2.2[${PYTHON_USEDEP}]
381 + >=dev-python/pyroute2-0.4.21[${PYTHON_USEDEP}]
382 + >=dev-python/weakrefmethod-1.0.2[$(python_gen_usedep 'python2_7')]
383 + >=dev-python/python-novaclient-9.1.0[${PYTHON_USEDEP}]
384 + >=dev-python/python-designateclient-2.7.0[${PYTHON_USEDEP}]
385 + >=dev-python/os-xenapi-0.3.1[${PYTHON_USEDEP}]
386 + dev-python/pyudev[${PYTHON_USEDEP}]
387 + sys-apps/iproute2
388 + net-misc/iputils[arping]
389 + net-misc/bridge-utils
390 + net-firewall/ipset
391 + net-firewall/iptables
392 + net-firewall/ebtables
393 + net-firewall/conntrack-tools
394 + haproxy? ( net-proxy/haproxy )
395 + openvswitch? ( <=net-misc/openvswitch-2.8.9999 )
396 + ipv6? (
397 + net-misc/radvd
398 + >=net-misc/dibbler-1.0.1
399 + )
400 + dhcp? ( net-dns/dnsmasq[dhcp-tools] )"
401 +
402 +#PATCHES=(
403 +#)
404 +
405 +pkg_pretend() {
406 + linux-info_pkg_setup
407 + CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \
408 + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \
409 + NF_NAT_IPV4 NF_NAT NF_CONNTRACK IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES"
410 + if linux_config_exists; then
411 + for module in ${CONFIG_CHECK_MODULES}; do
412 + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel"
413 + done
414 + fi
415 +}
416 +
417 +pkg_setup() {
418 + enewgroup neutron
419 + enewuser neutron -1 -1 /var/lib/neutron neutron
420 +}
421 +
422 +pkg_config() {
423 + fperms 0700 /var/log/neutron
424 + fowners neutron:neutron /var/log neutron
425 +}
426 +
427 +src_prepare() {
428 + sed -i '/^hacking/d' test-requirements.txt || die
429 + # it's /bin/ip not /sbin/ip
430 + sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die
431 + distutils-r1_python_prepare_all
432 +}
433 +
434 +python_install_all() {
435 + distutils-r1_python_install_all
436 + if use server; then
437 + newinitd "${FILESDIR}/neutron.initd" "neutron-server"
438 + newconfd "${FILESDIR}/neutron-server.confd" "neutron-server"
439 + dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini
440 + fi
441 + if use dhcp; then
442 + newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent"
443 + newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent"
444 + fi
445 + if use l3; then
446 + newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent"
447 + newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent"
448 + fi
449 + if use metadata; then
450 + newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent"
451 + newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent"
452 + fi
453 + if use openvswitch; then
454 + newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent"
455 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent"
456 + newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup"
457 + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup"
458 + fi
459 + if use linuxbridge; then
460 + newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent"
461 + newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd" "neutron-linuxbridge-agent"
462 + fi
463 + diropts -m 755 -o neutron -g neutron
464 + dodir /var/log/neutron /var/lib/neutron
465 + keepdir /etc/neutron
466 + insinto /etc/neutron
467 + insopts -m 0640 -o neutron -g neutron
468 +
469 + doins etc/*
470 + # stupid renames
471 + insinto /etc/neutron
472 + doins -r "etc/neutron/plugins"
473 + insopts -m 0640 -o root -g root
474 + doins "etc/rootwrap.conf"
475 + doins -r "etc/neutron/rootwrap.d"
476 +
477 + #add sudoers definitions for user neutron
478 + insinto /etc/sudoers.d/
479 + insopts -m 0440 -o root -g root
480 + newins "${FILESDIR}/neutron.sudoersd" neutron
481 +
482 + # add generated configs
483 + cd "${D}/etc/neutron" || die
484 + unpack "neutron-configs-${PV}.tar.gz"
485 + cd "${D}/etc/neutron/plugins/ml2" || die
486 + unpack "neutron-ml2-plugins-${PV}.tar.gz"
487 +
488 + # correcting perms
489 + fowners neutron:neutron -R "/etc/neutron"
490 + fperms o-rwx -R "/etc/neutron/"
491 +
492 + #remove superfluous stuff
493 + rm -R "${D}/usr/etc/"
494 +}
495 +
496 +python_install() {
497 + distutils-r1_python_install
498 + # copy migration conf file (not coppied on install via setup.py script)
499 + insopts -m 0644
500 + insinto "/$(python_get_sitedir)/neutron/db/migration/alembic_migrations/"
501 + doins -r "neutron/db/migration/alembic_migrations/versions"
502 +}
503 +
504 +pkg_postinst() {
505 + elog
506 + elog "neutron-server's conf.d file may need updating to include additional ini files"
507 + elog "We currently assume the ml2 plugin will be used but do not make assumptions"
508 + elog "on if you will use openvswitch or linuxbridge (or something else)"
509 + elog
510 + elog "Other conf.d files may need updating too, but should be good for the default use case"
511 + elog
512 +}