1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 boto3,
6 cryptography,
7 eventlet,
8 greenlet,
9 iana-etc,
10 installShellFiles,
11 libredirect,
12 lxml,
13 mock,
14 pastedeploy,
15 pbr,
16 pyeclib,
17 requests,
18 setuptools,
19 six,
20 stestr,
21 swiftclient,
22 xattr,
23}:
24
25buildPythonPackage rec {
26 pname = "swift";
27 version = "2.36.0";
28 pyproject = true;
29
30 src = fetchPypi {
31 inherit pname version;
32 hash = "sha256-3qtd++4Xm6B9TPfKvx85s71/Hz8qFrhN+XR9TuvfHXw=";
33 };
34
35 nativeBuildInputs = [ installShellFiles ];
36
37 build-system = [
38 pbr
39 setuptools
40 ];
41
42 dependencies = [
43 cryptography
44 eventlet
45 greenlet
46 lxml
47 pastedeploy
48 pyeclib
49 requests
50 six
51 xattr
52 ];
53
54 nativeCheckInputs = [
55 boto3
56 libredirect.hook
57 mock
58 stestr
59 swiftclient
60 ];
61
62 postInstall = ''
63 installManPage doc/manpages/*
64 '';
65
66 # a lot of tests currently fail while establishing a connection
67 doCheck = false;
68
69 checkPhase = ''
70 echo "nameserver 127.0.0.1" > resolv.conf
71 export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf)
72
73 export SWIFT_TEST_CONFIG_FILE=test/sample.conf
74
75 stestr run
76 '';
77
78 pythonImportsCheck = [ "swift" ];
79
80 meta = with lib; {
81 description = "OpenStack Object Storage";
82 homepage = "https://github.com/openstack/swift";
83 license = licenses.asl20;
84 teams = [ teams.openstack ];
85 };
86}