diff --git a/sys-cluster/neutron/Manifest b/sys-cluster/neutron/Manifest index ceedafac9335e..314f79c542de7 100644 --- a/sys-cluster/neutron/Manifest +++ b/sys-cluster/neutron/Manifest @@ -1,2 +1,3 @@ DIST neutron-7.0.1.tar.gz 2500003 SHA256 99d9f2d05b225777f521a88849bd42691408e7986af76a6d76a18eeac736c19e SHA512 a072e7c44c55c00d4bcf1d17e0de8801b729849d354003c2eac2a14033fa9c81a5d7f83411bc235bdce070c55c1b76bbb86a836336eb17c3c04f00c2358ac953 WHIRLPOOL ce8ef78b8f0df852b561b336812b9101708cc8a036c28ccf8c7f7eee16d52ba0a61179f519f9ec469935e4920dacb7e9cdc6c3f37a8d71997885d29b7df58ba9 DIST neutron-7.0.2.tar.gz 2512153 SHA256 6e6988b301b87f21cc470c2ca7dd6fb91586860b477f958aba1be77c79afe51a SHA512 841e2e7aad0585a0f906aef90f67168ba9d95b4afdc94be0ac415fc1b975141c3488d31ae3096fc6d3eb47ef67d93d5e1e7980d9b95ea53e720aa0e08091d476 WHIRLPOOL 5a690ddbb0030df2d97e42c559c614b0d0eb003b814f8d0fd43cb62ac684109cd4b0b010a5cd827508fe83a14b0d580be32ab0ff775328b5666aa41b1515160e +DIST neutron-7.0.3.tar.gz 2522096 SHA256 07bc7ae4ef28937d371426c9dafb7a11e1233b1b4d1c7b2ce13c5751b76bb2f7 SHA512 a32623a65eba761ca4d10e5db817dd3253310d5b00babd6f2a54ff671296fde25802d35adbb9dc6c221752b1ad41bc5b210d40ec6f6f3dfac2835b58bda1160d WHIRLPOOL c7b633774af24ca143d7f991e55ce4f262274ca4912073db9e6d9b48be2f0420d3f621063018fa81f27daacf8ae8407dd8224b899b244a24c011da84b4539d74 diff --git a/sys-cluster/neutron/neutron-7.0.3.ebuild b/sys-cluster/neutron/neutron-7.0.3.ebuild new file mode 100644 index 0000000000000..6d9089c15a98c --- /dev/null +++ b/sys-cluster/neutron/neutron-7.0.3.ebuild @@ -0,0 +1,304 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 linux-info user + +DESCRIPTION="A virtual network service for Openstack" +HOMEPAGE="https://launchpad.net/neutron" +SRC_URI="https://tarballs.openstack.org/${PN}/${P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="compute-only dhcp doc ipv6 l3 metadata openvswitch linuxbridge server test sqlite mysql postgres" +REQUIRED_USE="!compute-only? ( || ( mysql postgres sqlite ) ) + compute-only? ( !mysql !postgres !sqlite !dhcp !l3 !metadata !server + || ( openvswitch linuxbridge ) )" + +CDEPEND=">=dev-python/pbr-1.8[${PYTHON_USEDEP}]" +DEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + ${CDEPEND} + app-admin/sudo + test? ( + ${RDEPEND} + >=dev-python/cliff-1.14.0[${PYTHON_USEDEP}] + <=dev-python/cliff-1.15.0[${PYTHON_USEDEP}] + >=dev-python/cliff-1.14.0[${PYTHON_USEDEP}] + >=dev-python/coverage-3.6[${PYTHON_USEDEP}] + <=dev-python/coverage-4.0.3[${PYTHON_USEDEP}] + >=dev-python/fixtures-1.3.1[${PYTHON_USEDEP}] + <=dev-python/fixtures-1.4.0-r9999[${PYTHON_USEDEP}] + >=dev-python/mock-1.2[${PYTHON_USEDEP}] + <=dev-python/mock-1.3.0[${PYTHON_USEDEP}] + >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}] + <=dev-python/subunit-1.2.0[${PYTHON_USEDEP}] + >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}] + <=dev-python/requests-mock-0.7.0[${PYTHON_USEDEP}] + >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] + !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] + =dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}] + <=dev-python/oslo-sphinx-4.1.0[${PYTHON_USEDEP}] + >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] + <=dev-python/testrepository-0.0.20[${PYTHON_USEDEP}] + >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}] + <=dev-python/testtools-1.8.1[${PYTHON_USEDEP}] + >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}] + <=dev-python/testresources-1.0.0-r9999[${PYTHON_USEDEP}] + >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}] + <=dev-python/testscenarios-0.5[${PYTHON_USEDEP}] + >=dev-python/webtest-2.0[${PYTHON_USEDEP}] + <=dev-python/webtest-2.0.20[${PYTHON_USEDEP}] + >=dev-python/oslotest-1.10.0[${PYTHON_USEDEP}] + <=dev-python/oslotest-2.0.0[${PYTHON_USEDEP}] + >=dev-python/os-testr-0.1.0[${PYTHON_USEDEP}] + <=dev-python/os-testr-0.6.0[${PYTHON_USEDEP}] + >=dev-python/tempest-lib-0.8.0[${PYTHON_USEDEP}] + <=dev-python/tempest-lib-0.11.0[${PYTHON_USEDEP}] + >=dev-python/ddt-0.7.0[${PYTHON_USEDEP}] + <=dev-python/ddt-1.0.1[${PYTHON_USEDEP}] + ~dev-python/pylint-1.4.4[${PYTHON_USEDEP}] + >=dev-python/reno-0.1.1[${PYTHON_USEDEP}] + )" + +RDEPEND=" + <=dev-python/paste-2.0.2[${PYTHON_USEDEP}] + >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] + <=dev-python/pastedeploy-1.5.2[${PYTHON_USEDEP}] + >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] + !~dev-python/routes-2.0[${PYTHON_USEDEP}] + !~dev-python/routes-2.1[$(python_gen_usedep 'python2_7')] + <=dev-python/routes-2.2[${PYTHON_USEDEP}] + >=dev-python/debtcollector-0.3.0[${PYTHON_USEDEP}] + <=dev-python/debtcollector-1.1.0[${PYTHON_USEDEP}] + ~dev-python/eventlet-0.17.4[${PYTHON_USEDEP}] + >=dev-python/pecan-1.0.0[${PYTHON_USEDEP}] + <=dev-python/pecan-1.0.3[${PYTHON_USEDEP}] + >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}] + <=dev-python/greenlet-0.4.9[${PYTHON_USEDEP}] + >=dev-python/httplib2-0.7.5[${PYTHON_USEDEP}] + <=dev-python/httplib2-0.9.2[${PYTHON_USEDEP}] + >=dev-python/requests-2.5.2[${PYTHON_USEDEP}] + !~dev-python/requests-2.8.0[${PYTHON_USEDEP}] + !~dev-python/requests-2.9.0[${PYTHON_USEDEP}] + <=dev-python/requests-2.8.1[${PYTHON_USEDEP}] + >=dev-python/jinja-2.6[${PYTHON_USEDEP}] + <=dev-python/jinja-2.8[${PYTHON_USEDEP}] + >=dev-python/keystonemiddleware-2.0.0[${PYTHON_USEDEP}] + !=dev-python/keystonemiddleware-2.4.0[${PYTHON_USEDEP}] + <=dev-python/keystonemiddleware-4.0.0[${PYTHON_USEDEP}] + >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}] + !~dev-python/netaddr-0.7.16[${PYTHON_USEDEP}] + <=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}] + >=dev-python/python-neutronclient-2.6.0[${PYTHON_USEDEP}] + <=dev-python/python-neutronclient-3.1.0[${PYTHON_USEDEP}] + >=dev-python/retrying-1.2.3[${PYTHON_USEDEP}] + !~dev-python/retrying-1.3.0[${PYTHON_USEDEP}] + <=dev-python/retrying-1.3.3[${PYTHON_USEDEP}] + >=dev-python/ryu-3.23.2[${PYTHON_USEDEP}] + <=dev-python/ryu-3.26[${PYTHON_USEDEP}] + compute-only? ( + >=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}] + =dev-python/sqlalchemy-0.9.9[sqlite,${PYTHON_USEDEP}] + =dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}] + =dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}] + =dev-python/webob-1.2.3[${PYTHON_USEDEP}] + <=dev-python/webob-1.5.1[${PYTHON_USEDEP}] + >=dev-python/python-keystoneclient-1.6.0[${PYTHON_USEDEP}] + !~dev-python/python-keystoneclient-1.8.0[${PYTHON_USEDEP}] + <=dev-python/python-keystoneclient-2.0.0-r9999[${PYTHON_USEDEP}] + >=dev-python/alembic-0.8.0[${PYTHON_USEDEP}] + <=dev-python/alembic-0.8.3[${PYTHON_USEDEP}] + >=dev-python/six-1.9.0[${PYTHON_USEDEP}] + <=dev-python/six-1.10.0[${PYTHON_USEDEP}] + >=dev-python/stevedore-1.5.0[${PYTHON_USEDEP}] + <=dev-python/stevedore-1.10.0[${PYTHON_USEDEP}] + >=dev-python/oslo-concurrency-2.3.0[${PYTHON_USEDEP}] + <=dev-python/oslo-concurrency-3.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-config-2.3.0[${PYTHON_USEDEP}] + <=dev-python/oslo-config-3.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}] + <=dev-python/oslo-context-1.0.0[${PYTHON_USEDEP}] + >=dev-python/oslo-db-2.4.1[${PYTHON_USEDEP}] + <=dev-python/oslo-db-4.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}] + <=dev-python/oslo-i18n-3.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-log-1.8.0[${PYTHON_USEDEP}] + <=dev-python/oslo-log-2.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-messaging-1.16.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-1.17.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-1.17.1[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-2.6.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-2.6.1[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-2.7.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-2.8.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-2.8.1[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-2.9.0[${PYTHON_USEDEP}] + !~dev-python/oslo-messaging-3.1.0[${PYTHON_USEDEP}] + <=dev-python/oslo-messaging-3.0.0[${PYTHON_USEDEP}] + >=dev-python/oslo-middleware-2.8.0[${PYTHON_USEDEP}] + !~dev-python/oslo-middleware-3.0.0[${PYTHON_USEDEP}] + !~dev-python/oslo-middleware-3.1.0[${PYTHON_USEDEP}] + !~dev-python/oslo-middleware-3.2.0[${PYTHON_USEDEP}] + <=dev-python/oslo-middleware-3.3.0[${PYTHON_USEDEP}] + >=dev-python/oslo-policy-0.5.0[${PYTHON_USEDEP}] + <=dev-python/oslo-policy-1.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-rootwrap-2.0.0[${PYTHON_USEDEP}] + <=dev-python/oslo-rootwrap-3.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}] + <=dev-python/oslo-serialization-2.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-service-0.7.0[${PYTHON_USEDEP}] + <=dev-python/oslo-service-1.1.0[${PYTHON_USEDEP}] + >=dev-python/oslo-utils-2.0.0[${PYTHON_USEDEP}] + !~dev-python/oslo-utils-2.6.0[${PYTHON_USEDEP}] + <=dev-python/oslo-utils-3.2.0[${PYTHON_USEDEP}] + >=dev-python/oslo-versionedobjects-0.9.0[${PYTHON_USEDEP}] + <=dev-python/oslo-versionedobjects-1.1.0[${PYTHON_USEDEP}] + >=dev-python/python-novaclient-2.28.1[${PYTHON_USEDEP}] + !~dev-python/python-novaclient-2.33.0[${PYTHON_USEDEP}] + <=dev-python/python-novaclient-2.35.0[${PYTHON_USEDEP}] + <=dev-python/pyudev-0.18[${PYTHON_USEDEP}] + sys-apps/iproute2 + net-misc/bridge-utils + net-firewall/ipset + net-firewall/iptables + net-firewall/ebtables + openvswitch? ( <=net-misc/openvswitch-2.4.0 ) + ipv6? ( net-misc/radvd ) + dhcp? ( net-dns/dnsmasq[dhcp-tools] )" + +PATCHES=( +) + +pkg_setup() { + linux-info_pkg_setup + CONFIG_CHECK_MODULES="VLAN_8021Q IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \ + IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 \ + NF_NAT_IPV4 NF_NAT NF_CONNTRACK IP_NF_FILTER IP_NF_IPTABLES NETFILTER_XTABLES" + if linux_config_exists; then + for module in ${CONFIG_CHECK_MODULES}; do + linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel" + done + fi + enewgroup neutron + enewuser neutron -1 -1 /var/lib/neutron neutron +} + +pkg_config() { + fperms 0700 /var/log/neutron + fowners neutron:neutron /var/log neutron +} + +src_prepare() { + sed -i '/^hacking/d' test-requirements.txt || die + # it's /bin/ip not /sbin/ip + sed -i 's/sbin\/ip\,/bin\/ip\,/g' etc/neutron/rootwrap.d/* || die + distutils-r1_python_prepare_all +} + +python_compile_all() { + use doc && make -C doc html +} + +python_test() { + # https://bugs.launchpad.net/neutron/+bug/1234857 + # https://bugs.launchpad.net/swift/+bug/1249727 + # https://bugs.launchpad.net/neutron/+bug/1251657 + # Move tests out that attempt net connection, have failures + mv $(find . -name test_ovs_tunnel.py) . || die + sed -e 's:test_app_using_ipv6_and_ssl:_&:' \ + -e 's:test_start_random_port_with_ipv6:_&:' \ + -i neutron/tests/unit/test_wsgi.py || die + testr init + testr run --parallel || die "failed testsuite under python2.7" +} + +python_install() { + distutils-r1_python_install + if use server; then + newinitd "${FILESDIR}/neutron.initd" "neutron-server" + newconfd "${FILESDIR}/neutron-server.confd" "neutron-server" + dosym /etc/neutron/plugin.ini /etc/neutron/plugins/ml2/ml2_conf.ini + fi + if use dhcp; then + newinitd "${FILESDIR}/neutron.initd" "neutron-dhcp-agent" + newconfd "${FILESDIR}/neutron-dhcp-agent.confd" "neutron-dhcp-agent" + fi + if use l3; then + newinitd "${FILESDIR}/neutron.initd" "neutron-l3-agent" + newconfd "${FILESDIR}/neutron-l3-agent.confd" "neutron-l3-agent" + fi + if use metadata; then + newinitd "${FILESDIR}/neutron.initd" "neutron-metadata-agent" + newconfd "${FILESDIR}/neutron-metadata-agent.confd" "neutron-metadata-agent" + fi + if use openvswitch; then + newinitd "${FILESDIR}/neutron.initd" "neutron-openvswitch-agent" + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-openvswitch-agent" + newinitd "${FILESDIR}/neutron.initd" "neutron-ovs-cleanup" + newconfd "${FILESDIR}/neutron-openvswitch-agent.confd" "neutron-ovs-cleanup" + fi + if use linuxbridge; then + newinitd "${FILESDIR}/neutron.initd" "neutron-linuxbridge-agent" + newconfd "${FILESDIR}/neutron-linuxbridge-agent.confd.liberty" "neutron-linuxbridge-agent" + fi + diropts -m 755 -o neutron -g neutron + dodir /var/log/neutron /var/lib/neutron + keepdir /etc/neutron + insinto /etc/neutron + insopts -m 0640 -o neutron -g neutron + + doins etc/* + # stupid renames + rm "${D}etc/neutron/quantum" + insinto /etc/neutron + doins -r "etc/neutron/plugins" + insopts -m 0640 -o root -g root + doins "etc/rootwrap.conf" + doins -r "etc/neutron/rootwrap.d" + + insopts -m 0644 + insinto "/usr/lib64/python2.7/site-packages/neutron/db/migration/alembic_migrations/" + doins -r "neutron/db/migration/alembic_migrations/versions" + + #add sudoers definitions for user neutron + insinto /etc/sudoers.d/ + insopts -m 0440 -o root -g root + newins "${FILESDIR}/neutron.sudoersd" neutron + + #remove superfluous stuff + rm -R "${D}/usr/etc/" +} + +python_install_all() { + use doc && local HTML_DOCS=( doc/build/html/. ) + distutils-r1_python_install_all +} + +pkg_postinst() { + elog + elog "neutron-server's conf.d file may need updating to include additional ini files" + elog "We currently assume the ml2 plugin will be used but do not make assumptions" + elog "on if you will use openvswitch or linuxbridge (or something else)" + elog + elog "Other conf.d files may need updating too, but should be good for the default use case" + elog +}