Unverified Commit 3e93e244 authored by Martin Weinelt's avatar Martin Weinelt Committed by GitHub
Browse files

Merge pull request #262702 from gador/pgadmin7.7-fix-build-flask

Pgadmin4: fix build. Also fix flask-security-too
parents 4651ac9b b553f3a1
Loading
Loading
Loading
Loading
+20 −15
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
@@ -21,20 +21,21 @@
# extras: mfa
, cryptography
, phonenumbers
, webauthn
, qrcode

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

# tests
, argon2-cffi
, flask-mongoengine
, mongoengine
, mongomock
, peewee
@@ -46,31 +47,30 @@

buildPythonPackage rec {
  pname = "flask-security-too";
  version = "5.3.0";
  format = "setuptools";
  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 = {
@@ -82,7 +82,6 @@ buildPythonPackage rec {
      bcrypt
      bleach
      flask-mailman
      qrcode
    ];
    fsqla = [
      flask-sqlalchemy
@@ -92,12 +91,13 @@ buildPythonPackage rec {
    mfa = [
      cryptography
      phonenumbers
      webauthn
      qrcode
    ];
  };

  nativeCheckInputs = [
    argon2-cffi
    flask-mongoengine
    mongoengine
    mongomock
    peewee
@@ -112,6 +112,11 @@ buildPythonPackage rec {
  ++ passthru.optional-dependencies.mfa;


  disabledTests = [
    # needs /etc/resolv.conf
    "test_login_email_whatever"
  ];

  pythonImportsCheck = [
    "flask_security"
  ];
+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;