diff --git a/pkgs/by-name/ru/rucio/package.nix b/pkgs/by-name/ru/rucio/package.nix new file mode 100644 index 000000000000..c50e22324b5c --- /dev/null +++ b/pkgs/by-name/ru/rucio/package.nix @@ -0,0 +1,5 @@ +{ python3Packages }: + +with python3Packages; + +toPythonApplication rucio diff --git a/pkgs/development/python-modules/gfal2-python/default.nix b/pkgs/development/python-modules/gfal2-python/default.nix index 52cb5ad1b227..03cd735683ca 100644 --- a/pkgs/development/python-modules/gfal2-python/default.nix +++ b/pkgs/development/python-modules/gfal2-python/default.nix @@ -13,12 +13,12 @@ }: buildPythonPackage rec { pname = "gfal2-python"; - version = "1.12.2"; + version = "1.13.0"; src = fetchFromGitHub { owner = "cern-fts"; repo = "gfal2-python"; rev = "v${version}"; - hash = "sha256-Xk+gLTrqfWb0kGB6QhnM62zAHVFb8rRAqCIBxn0V824="; + hash = "sha256-TF8EwT1UEtB9lhfq8Jkn9rrSkSxMSLzuAywfB23K1kE="; }; nativeBuildInputs = [ cmake @@ -44,8 +44,5 @@ buildPythonPackage rec { homepage = "https://github.com/cern-fts/gfal2-python"; license = licenses.asl20; maintainers = with maintainers; [ ShamrockLee ]; - # It currently fails to build against Python 3.12 or later, - # complaining CMake faililng to find Python include path, library path and site package path. - broken = pythonAtLeast "3.12"; }; } diff --git a/pkgs/development/python-modules/oic/default.nix b/pkgs/development/python-modules/oic/default.nix new file mode 100644 index 000000000000..3d222a196417 --- /dev/null +++ b/pkgs/development/python-modules/oic/default.nix @@ -0,0 +1,68 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + requests, + pycryptodomex, + pydantic-settings, + pyjwkest, + mako, + cryptography, + defusedxml, + + # tests + pytestCheckHook, + freezegun, + responses, + testfixtures, +}: + +buildPythonPackage rec { + pname = "oic"; + version = "1.7.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "CZ-NIC"; + repo = "pyoidc"; + tag = version; + hash = "sha256-7qEK1HWLEGCKu+gDAfbyT1a+sM9fVOfjtkqZ33GWv6U="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + requests + pycryptodomex + pydantic-settings + pyjwkest + mako + cryptography + defusedxml + ]; + + nativeCheckInputs = [ + pytestCheckHook + freezegun + responses + testfixtures + ]; + + pythonImportsCheck = [ "oic" ]; + + meta = { + description = "OpenID Connect implementation in Python"; + homepage = "https://github.com/CZ-NIC/pyoidc"; + changelog = "https://github.com/CZ-NIC/pyoidc/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/development/python-modules/rucio/default.nix b/pkgs/development/python-modules/rucio/default.nix new file mode 100644 index 000000000000..15ffb3309b94 --- /dev/null +++ b/pkgs/development/python-modules/rucio/default.nix @@ -0,0 +1,114 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + alembic, + argcomplete, + boto3, + dogpile-cache, + flask, + geoip2, + gfal2-python, + google-auth, + jsonschema, + oic, + paramiko, + prometheus-client, + pymemcache, + python-dateutil, + python-magic, + redis, + requests, + sqlalchemy, + statsd, + stomp-py, + tabulate, + urllib3, + + # tests + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "rucio"; + version = "32.8.6"; + pyproject = true; + + src = fetchFromGitHub { + owner = "rucio"; + repo = "rucio"; + tag = version; + hash = "sha256-VQQ4gy9occism1WDrlcHnB7b7D5/G68wKct2PhD59FA="; + }; + + pythonRelaxDeps = [ + "alembic" + "argcomplete" + "boto3" + "dogpile.cache" + "flask" + "geoip2" + "google-auth" + "jsonschema" + "oic" + "paramiko" + "prometheus_client" + "python-dateutil" + "redis" + "requests" + "sqlalchemy" + "stomp.py" + "urllib3" + ]; + + build-system = [ + setuptools + ]; + + dependencies = [ + alembic + argcomplete + boto3 + dogpile-cache + flask + geoip2 + gfal2-python # needed for rucio download + google-auth + jsonschema + oic + paramiko + prometheus-client + pymemcache + python-dateutil + python-magic + redis + requests + sqlalchemy + statsd + stomp-py + tabulate + urllib3 + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + doCheck = false; # needs a rucio.cfg + + pythonImportsCheck = [ "rucio" ]; + + meta = { + description = "Tool for Scientific Data Management"; + homepage = "http://rucio.cern.ch/"; + changelog = "https://github.com/rucio/rucio/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/development/python-modules/stomp-py/default.nix b/pkgs/development/python-modules/stomp-py/default.nix new file mode 100644 index 000000000000..27c5a1639933 --- /dev/null +++ b/pkgs/development/python-modules/stomp-py/default.nix @@ -0,0 +1,54 @@ +{ + lib, + stdenv, + buildPythonPackage, + fetchFromGitHub, + + # build-system + poetry-core, + + # dependencies + docopt, + websocket-client, + + # tests + pytestCheckHook, +}: + +buildPythonPackage rec { + pname = "stomp-py"; + version = "8.2.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "jasonrbriggs"; + repo = "stomp.py"; + tag = "v${version}"; + hash = "sha256-UkNmE0+G9d3k1OhkNl98Jy5sP6MAywynzBmBtK9mZ90="; + }; + + build-system = [ + poetry-core + ]; + + dependencies = [ + docopt + websocket-client + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + doCheck = false; # needs external services setup + + pythonImportsCheck = [ "stomp" ]; + + meta = { + description = "Client library for accessing messaging servers (such as ActiveMQ or RabbitMQ) using the STOMP protocol"; + homepage = "https://github.com/jasonrbriggs/stomp.py"; + changelog = "https://github.com/jasonrbriggs/stomp.py/releases/tag/${version}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ veprbl ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 78cb8d022fdb..57780cdf596c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4345,6 +4345,12 @@ with pkgs; pythonPackages = python3Packages; }; + rucio = callPackage ../by-name/ru/rucio/package.nix { + # Pinned to python 3.12 while python313Packages.future does not evaluate and + # until https://github.com/CZ-NIC/pyoidc/issues/649 is resolved + python3Packages = python312Packages; + }; + rubocop = rubyPackages.rubocop; ruby-lsp = rubyPackages.ruby-lsp; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index db966ff2b84e..eca390dea190 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10410,6 +10410,8 @@ self: super: with self; { ohme = callPackage ../development/python-modules/ohme { }; + oic = callPackage ../development/python-modules/oic { }; + okonomiyaki = callPackage ../development/python-modules/okonomiyaki { }; okta = callPackage ../development/python-modules/okta { }; @@ -15576,6 +15578,8 @@ self: super: with self; { rubymarshal = callPackage ../development/python-modules/rubymarshal { }; + rucio = callPackage ../development/python-modules/rucio { }; + ruff = callPackage ../development/python-modules/ruff { inherit (pkgs) ruff; }; ruff-api = callPackage ../development/python-modules/ruff-api { }; @@ -16946,6 +16950,8 @@ self: super: with self; { stm32loader = callPackage ../development/python-modules/stm32loader { }; + stomp-py = callPackage ../development/python-modules/stomp-py { }; + stone = callPackage ../development/python-modules/stone { }; stookalert = callPackage ../development/python-modules/stookalert { };