summary refs log tree commit diff
path: root/pkgs/applications/virtualization/nova
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2011-03-30 15:00:53 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2011-03-30 15:00:53 +0000
commit1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd (patch)
tree0538faef424e519ed845413442e8c85bc4d34b2d /pkgs/applications/virtualization/nova
parentfc99d84ef249de275fa1e020e59bf14d105b07d5 (diff)
downloadnixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.tar
nixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.tar.gz
nixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.tar.bz2
nixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.tar.lz
nixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.tar.xz
nixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.tar.zst
nixlib-1d6b63afb9462ddeb5ab634ed1c2fc946b4d4bdd.zip
* openstack-compute -> nova (upstream doesn't know what to call it either).
svn path=/nixpkgs/branches/modular-python/; revision=26610
Diffstat (limited to 'pkgs/applications/virtualization/nova')
-rw-r--r--pkgs/applications/virtualization/nova/default.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/applications/virtualization/nova/default.nix b/pkgs/applications/virtualization/nova/default.nix
new file mode 100644
index 000000000000..fc74065169b5
--- /dev/null
+++ b/pkgs/applications/virtualization/nova/default.nix
@@ -0,0 +1,62 @@
+{ stdenv, fetchurl, pythonPackages, intltool }:
+
+with stdenv.lib;
+
+let version = "2011.1.1"; in
+
+stdenv.mkDerivation rec {
+  name = "nova-${version}";
+
+  src = fetchurl {
+    url = "http://launchpad.net/nova/bexar/${version}/+download/nova-${version}.tar.gz";
+    sha256 = "0xd7cxn60vzhkvjwnj0i6jfcxaggwwyw2pnhl4qnb759q9hvk1b9";
+  };
+
+  pythonPath = with pythonPackages;
+    [ setuptools eventlet greenlet gflags netaddr sqlalchemy carrot routes
+      paste_deploy m2crypto ipy boto twisted sqlalchemy_migrate
+      distutils_extra simplejson readline
+    ];
+
+  buildInputs =
+    [ pythonPackages.python 
+      pythonPackages.wrapPython
+      intltool
+    ] ++ pythonPath;
+
+  preConfigure =
+    ''
+      export HOME=$(pwd)
+
+      # Set the built-in state location to something sensible.
+      sed -i nova/flags.py \
+        -e "/DEFINE.*'state_path'/ s|../|/var/lib/nova|"
+    '';
+  
+  buildPhase = "python setup.py build";
+
+  installPhase =
+    ''    
+      p=$(toPythonPath $out)
+      export PYTHONPATH=$p:$PYTHONPATH
+      mkdir -p $p
+      python setup.py install --prefix=$out
+
+      # Nova doesn't like to be called ".nova-foo-wrapped" because it
+      # computes some stuff from its own argv[0].  So call the wrapped
+      # programs ".nova-foo" by overriding wrapProgram.
+      wrapProgram() {
+          local prog="$1"
+          local hidden="$(dirname "$prog")/.$(basename "$prog")"
+          mv $prog $hidden
+          makeWrapper $hidden $prog "$@"
+      }
+      
+      wrapPythonPrograms
+    '';
+
+  meta = {
+    homepage = http://nova.openstack.org/;
+    description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller";
+  };
+}