67 lines
2.1 KiB
Nix
67 lines
2.1 KiB
Nix
{ stdenv, fetchurl, pythonPackages, xmlsec, which, dnsmasq }:
|
|
|
|
pythonPackages.buildPythonPackage rec {
|
|
name = "neutron-${version}";
|
|
version = "7.0.0";
|
|
namePrefix = "";
|
|
|
|
PBR_VERSION = "${version}";
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/openstack/neutron/archive/${version}.tar.gz";
|
|
sha256 = "02ll081xly7zfjmgkal81fy3aplbnn5zgx8xfy3yy1nv3kfnyi40";
|
|
};
|
|
|
|
# https://github.com/openstack/neutron/blob/stable/liberty/requirements.txt
|
|
propagatedBuildInputs = with pythonPackages; [
|
|
pbr paste PasteDeploy routes debtcollector eventlet greenlet httplib2 requests2
|
|
jinja2 keystonemiddleware netaddr retrying sqlalchemy_1_0 webob alembic six
|
|
stevedore pecan ryu networking-hyperv MySQL_python
|
|
|
|
# clients
|
|
keystoneclient neutronclient novaclient
|
|
|
|
# oslo components
|
|
oslo-concurrency oslo-config oslo-context oslo-db oslo-i18n oslo-log oslo-messaging
|
|
oslo-middleware oslo-policy oslo-rootwrap oslo-serialization oslo-service oslo-utils
|
|
oslo-versionedobjects
|
|
];
|
|
|
|
# make sure we include migrations
|
|
prePatch = ''
|
|
echo "graft neutron" >> MANIFEST.in
|
|
substituteInPlace etc/neutron/rootwrap.d/dhcp.filters --replace "/sbin/dnsmasq" "${dnsmasq}/bin/dnsmasq"
|
|
'';
|
|
patches = [ ./neutron-iproute-4.patch ];
|
|
|
|
buildInputs = with pythonPackages; [
|
|
cliff coverage fixtures mock subunit requests-mock oslosphinx testrepository
|
|
testtools testresources testscenarios webtest oslotest os-testr tempest-lib
|
|
ddt pep8
|
|
];
|
|
|
|
postInstall = ''
|
|
# requires extra optional dependencies
|
|
# TODO: package networking_mlnx, networking_vsphere, bsnstacklib, XenAPI
|
|
rm $out/bin/{neutron-mlnx-agent,neutron-ovsvapp-agent,neutron-restproxy-agent,neutron-rootwrap-xen-dom0}
|
|
|
|
# check all binaries don't crash
|
|
for i in $out/bin/*; do
|
|
case "$i" in
|
|
*neutron-pd-notify|*neutron-rootwrap-daemon|*neutron-rootwrap)
|
|
:
|
|
;;
|
|
*)
|
|
$i --help
|
|
esac
|
|
done
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = http://neutron.openstack.org/;
|
|
description = "Virtual network service for Openstack";
|
|
license = stdenv.lib.licenses.asl20;
|
|
platforms = stdenv.lib.platforms.linux;
|
|
};
|
|
}
|