1{
2 stdenv, python2Packages, openssl,
3
4 # Many Salt modules require various Python modules to be installed,
5 # passing them in this array enables Salt to find them.
6 extraInputs ? []
7}:
8
9python2Packages.buildPythonApplication rec {
10 pname = "salt";
11 version = "2016.11.5";
12 name = "${pname}-${version}";
13
14 src = python2Packages.fetchPypi {
15 inherit pname version;
16 sha256 = "1gpq6s87vy782z4b5h6s7zwndcxnllbdr2wldxr9hyp4lfj2f55q";
17 };
18
19 propagatedBuildInputs = with python2Packages; [
20 futures
21 jinja2
22 markupsafe
23 msgpack
24 pycrypto
25 pyyaml
26 pyzmq
27 requests
28 tornado
29 ] ++ extraInputs;
30
31 patches = [ ./fix-libcrypto-loading.patch ];
32
33 postPatch = ''
34 substituteInPlace "salt/utils/rsax931.py" \
35 --subst-var-by "libcrypto" "${openssl.out}/lib/libcrypto.so"
36 '';
37
38 # The tests fail due to socket path length limits at the very least;
39 # possibly there are more issues but I didn't leave the test suite running
40 # as is it rather long.
41 doCheck = false;
42
43 meta = with stdenv.lib; {
44 homepage = https://saltstack.com/;
45 description = "Portable, distributed, remote execution and configuration management system";
46 maintainers = with maintainers; [ aneeshusa ];
47 license = licenses.asl20;
48 };
49}