1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 alembic,
12 argcomplete,
13 boto3,
14 dogpile-cache,
15 flask,
16 geoip2,
17 gfal2-python,
18 google-auth,
19 jsonschema,
20 oic,
21 paramiko,
22 prometheus-client,
23 pymemcache,
24 python-dateutil,
25 python-magic,
26 redis,
27 requests,
28 sqlalchemy,
29 statsd,
30 stomp-py,
31 tabulate,
32 urllib3,
33
34 # tests
35 pytestCheckHook,
36}:
37
38buildPythonPackage rec {
39 pname = "rucio";
40 version = "32.8.6";
41 pyproject = true;
42
43 src = fetchFromGitHub {
44 owner = "rucio";
45 repo = "rucio";
46 tag = version;
47 hash = "sha256-VQQ4gy9occism1WDrlcHnB7b7D5/G68wKct2PhD59FA=";
48 };
49
50 pythonRelaxDeps = [
51 "alembic"
52 "argcomplete"
53 "boto3"
54 "dogpile.cache"
55 "flask"
56 "geoip2"
57 "google-auth"
58 "jsonschema"
59 "oic"
60 "paramiko"
61 "prometheus_client"
62 "python-dateutil"
63 "redis"
64 "requests"
65 "sqlalchemy"
66 "stomp.py"
67 "urllib3"
68 ];
69
70 build-system = [
71 setuptools
72 ];
73
74 dependencies = [
75 alembic
76 argcomplete
77 boto3
78 dogpile-cache
79 flask
80 geoip2
81 gfal2-python # needed for rucio download
82 google-auth
83 jsonschema
84 oic
85 paramiko
86 prometheus-client
87 pymemcache
88 python-dateutil
89 python-magic
90 redis
91 requests
92 sqlalchemy
93 statsd
94 stomp-py
95 tabulate
96 urllib3
97 ];
98
99 nativeCheckInputs = [
100 pytestCheckHook
101 ];
102
103 doCheck = false; # needs a rucio.cfg
104
105 pythonImportsCheck = [ "rucio" ];
106
107 meta = {
108 description = "Tool for Scientific Data Management";
109 homepage = "http://rucio.cern.ch/";
110 changelog = "https://github.com/rucio/rucio/releases/tag/${version}";
111 license = lib.licenses.asl20;
112 maintainers = with lib.maintainers; [ veprbl ];
113 };
114}