Commit b553f3a1 authored by Florian Brandes's avatar Florian Brandes
Browse files

pgadmin4: fix build due to Flask update



Also updates security-flask-too from 5.3.0 -> 5.3.2
Signed-off-by: default avatarFlorian Brandes <florian.brandes@posteo.de>
parent 741025d9
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@
, buildPythonPackage
, fetchPypi
, pythonOlder
, setuptools

# extras: babel
, babel
@@ -11,7 +12,6 @@
, bcrypt
, bleach
, flask-mailman
, qrcode

# extras: fsqla
, flask-sqlalchemy
@@ -22,17 +22,17 @@
, cryptography
, phonenumbers
, webauthn
, qrcode

# propagates
, blinker
, email-validator
, flask
, flask-login
, flask-principal
, flask-wtf
, itsdangerous
, passlib
, importlib-resources
, wtforms

# tests
, argon2-cffi
@@ -47,32 +47,30 @@

buildPythonPackage rec {
  pname = "flask-security-too";
  version = "5.3.0";
  format = "pyproject";
  version = "5.3.2";
  pyproject = true;

  disabled = pythonOlder "3.7";

  src = fetchPypi {
    pname = "Flask-Security-Too";
    inherit version;
    hash = "sha256-n12DCRPqxm8YhFeVrl99BEvdDYNq6rzP662rain3k1Q=";
    hash = "sha256-wLUHXfDWSp7zWwTIjTH79AWlkkNzb21tChpLSEWr8+U=";
  };

  postPatch = ''
    # This should be removed after updating to version 5.3.0.
    sed -i '/filterwarnings =/a ignore:pkg_resources is deprecated:DeprecationWarning' pytest.ini
  '';
  nativeBuildInputs = [
    setuptools
  ];

  propagatedBuildInputs = [
    blinker
    email-validator
    flask
    flask-login
    flask-principal
    flask-wtf
    itsdangerous
    passlib
    importlib-resources
    wtforms
  ];

  passthru.optional-dependencies = {
@@ -84,7 +82,6 @@ buildPythonPackage rec {
      bcrypt
      bleach
      flask-mailman
      qrcode
    ];
    fsqla = [
      flask-sqlalchemy
@@ -95,6 +92,7 @@ buildPythonPackage rec {
      cryptography
      phonenumbers
      webauthn
      qrcode
    ];
  };

+56 −1
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
, yarn
, fixup_yarn_lock
, nodejs
, fetchpatch
, server-mode ? true
}:

@@ -26,7 +27,61 @@ let

  # 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;