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