1{ lib
2, buildPythonPackage
3, fetchPypi
4, boto3
5, cryptography
6, eventlet
7, greenlet
8, iana-etc
9, libredirect
10, lxml
11, mock
12, netifaces
13, pastedeploy
14, pbr
15, pyeclib
16, requests
17, setuptools
18, six
19, stestr
20, swiftclient
21, xattr
22}:
23
24buildPythonPackage rec {
25 pname = "swift";
26 version = "2.28.0";
27
28 src = fetchPypi {
29 inherit pname version;
30 sha256 = "79a216498a842226f71e9dfbbce4dba4a5718cda9b2be92b6e0aa21df977f70d";
31 };
32
33 postPatch = ''
34 # files requires boto which is incompatible with python 3.9
35 rm test/functional/s3api/{__init__.py,s3_test_client.py}
36 '';
37
38 nativeBuildInputs = [ pbr ];
39
40 propagatedBuildInputs = [
41 cryptography
42 eventlet
43 greenlet
44 lxml
45 netifaces
46 pastedeploy
47 pyeclib
48 requests
49 setuptools
50 six
51 xattr
52 ];
53
54 checkInputs = [
55 boto3
56 mock
57 stestr
58 swiftclient
59 ];
60
61 # a lot of tests currently fail while establishing a connection
62 doCheck = false;
63
64 checkPhase = ''
65 echo "nameserver 127.0.0.1" > resolv.conf
66 export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf)
67 export LD_PRELOAD=${libredirect}/lib/libredirect.so
68
69 export SWIFT_TEST_CONFIG_FILE=test/sample.conf
70
71 stestr run
72 '';
73
74 pythonImportsCheck = [ "swift" ];
75
76 meta = with lib; {
77 description = "OpenStack Object Storage";
78 homepage = "https://github.com/openstack/swift";
79 license = licenses.asl20;
80 maintainers = teams.openstack.members;
81 };
82}