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

Pgadmin4: fix build. Also fix flask-security-too
This commit is contained in:
Martin Weinelt 2023-10-30 12:49:40 +01:00 committed by GitHub
commit 3e93e2445a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 76 additions and 16 deletions

View File

@ -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"
];

View File

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