diff options
Diffstat (limited to 'pkgs/tools/admin/pgadmin/default.nix')
-rw-r--r-- | pkgs/tools/admin/pgadmin/default.nix | 65 |
1 files changed, 60 insertions, 5 deletions
diff --git a/pkgs/tools/admin/pgadmin/default.nix b/pkgs/tools/admin/pgadmin/default.nix index 3040258c0ca..117f02a593b 100644 --- a/pkgs/tools/admin/pgadmin/default.nix +++ b/pkgs/tools/admin/pgadmin/default.nix @@ -9,28 +9,83 @@ , yarn , fixup_yarn_lock , nodejs +, fetchpatch , server-mode ? true }: let pname = "pgadmin"; - version = "7.5"; - yarnSha256 = "sha256-rEKMUZksmR2jPwtXy6drNwAJktK/3Dee6EZVFHPngWs="; + version = "7.7"; + yarnHash = "sha256-8EbbyZHodrYz4a2IYuIWYGutqvrjauSv34o9KFvR/6c="; src = fetchFromGitHub { owner = "pgadmin-org"; repo = "pgadmin4"; rev = "REL-${lib.versions.major version}_${lib.versions.minor version}"; - hash = "sha256-o8jPqp4jLF/lZ0frCzPDCSxCy51Nt0mbdeNB44ZwNHI="; + hash = "sha256-+KD05hzghNFpuw2xW3NUVyKwspCUO9fyJgMPzYk1Xt8="; }; # keep the scope, as it is used throughout the derivation and tests # this also makes potential future overrides easier - pythonPackages = python3.pkgs.overrideScope (final: prev: rec { }); + pythonPackages = python3.pkgs.overrideScope (final: prev: rec { + # pgadmin 7.8 is incompatible with Flask >= 2.3 + flask = prev.flask.overridePythonAttrs (oldAttrs: rec { + version = "2.2.5"; + src = oldAttrs.src.override { + pname = "Flask"; + inherit version; + hash = "sha256-7e6bCn/yZiG9WowQ/0hK4oc3okENmbC7mmhQx/uXeqA="; + }; + format = "setuptools"; + }); + # downgrade needed for older Flask + httpbin = prev.httpbin.overridePythonAttrs (oldAttrs: rec { + version = "0.7.0"; + src = oldAttrs.src.override { + inherit version; + hash = "sha256-y7N3kMkVdfTxV1f0KtQdn3KesifV7b6J5OwXVIbbjfo="; + }; + format = "setuptools"; + patches = [ + (fetchpatch { + # Replaces BaseResponse class with Response class for Werkezug 2.1.0 compatibility + # https://github.com/postmanlabs/httpbin/pull/674 + url = "https://github.com/postmanlabs/httpbin/commit/5cc81ce87a3c447a127e4a1a707faf9f3b1c9b6b.patch"; + hash = "sha256-SbEWjiqayMFYrbgAPZtSsXqSyCDUz3z127XgcKOcrkE="; + }) + ]; + pytestFlagsArray = [ + "test_httpbin.py" + ]; + propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ final.pythonPackages.brotlipy ]; + }); + # downgrade needed for older httpbin + werkzeug = prev.werkzeug.overridePythonAttrs (oldAttrs: rec { + version = "2.2.3"; + format = "setuptools"; + src = oldAttrs.src.override { + pname = "Werkzeug"; + inherit version; + hash = "sha256-LhzMlBfU2jWLnebxdOOsCUOR6h1PvvLWZ4ZdgZ39Cv4="; + }; + }); + # Downgrade needed for older Flask + flask-security-too = prev.flask-security-too.overridePythonAttrs (oldAttrs: rec { + version = "5.1.2"; + src = oldAttrs.src.override { + inherit version; + hash = "sha256-lZzm43m30y+2qjxNddFEeg9HDlQP9afq5VtuR25zaLc="; + }; + postPatch = '' + # This should be removed after updating to version 5.3.0. + sed -i '/filterwarnings =/a ignore:pkg_resources is deprecated:DeprecationWarning' pytest.ini + ''; + }); + }); offlineCache = fetchYarnDeps { yarnLock = ./yarn.lock; - hash = yarnSha256; + hash = yarnHash; }; in |