summary refs log tree commit diff
path: root/pkgs/tools/admin/salt/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/admin/salt/default.nix')
-rw-r--r--pkgs/tools/admin/salt/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
new file mode 100644
index 000000000000..254b7b9374eb
--- /dev/null
+++ b/pkgs/tools/admin/salt/default.nix
@@ -0,0 +1,51 @@
+{
+  stdenv, fetchurl, pythonPackages, openssl,
+
+  # Many Salt modules require various Python modules to be installed,
+  # passing them in this array enables Salt to find them.
+  extraInputs ? []
+}:
+
+pythonPackages.buildPythonApplication rec {
+  name = "salt-${version}";
+  version = "2015.8.8";
+
+  disabled = pythonPackages.isPy3k;
+
+  src = fetchurl {
+    url = "https://pypi.python.org/packages/source/s/salt/${name}.tar.gz";
+    sha256 = "1xcfcs50pyammb60myph4f8bi2r6iwkxwsnnhrjwvkv2ymxwxv5j";
+  };
+
+  propagatedBuildInputs = with pythonPackages; [
+    futures
+    jinja2
+    markupsafe
+    msgpack
+    pycrypto
+    pyyaml
+    pyzmq
+    requests
+    salttesting
+    tornado
+  ] ++ extraInputs;
+
+  patches = [ ./fix-libcrypto-loading.patch ];
+
+  postPatch = ''
+    substituteInPlace "salt/utils/rsax931.py" \
+      --subst-var-by "libcrypto" "${openssl}/lib/libcrypto.so"
+  '';
+
+  # The tests fail due to socket path length limits at the very least;
+  # possibly there are more issues but I didn't leave the test suite running
+  # as is it rather long.
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = https://saltstack.com/;
+    description = "Portable, distributed, remote execution and configuration management system";
+    maintainers = with maintainers; [ aneeshusa ];
+    license = licenses.asl20;
+  };
+}