canaille: 0.0.57 -> 0.0.74 (#402797)

Changed files
+146 -21
nixos
tests
pkgs
by-name
ca
canaille
fi
fittrackee
ma
matrix-synapse-unwrapped
development
python-modules
authlib
flask-alembic
pytest-scim2-server
top-level
+1 -1
nixos/tests/canaille.nix
···
server.succeed("sudo -iu canaille -- canaille create user --user-name admin --password adminpass --emails admin@${domain}")
json_str = server.succeed("sudo -iu canaille -- canaille get user")
assert json.loads(json_str)[0]["user_name"] == "admin"
-
server.succeed("sudo -iu canaille -- canaille check")
+
server.succeed("sudo -iu canaille -- canaille config check")
'';
}
)
+26 -16
pkgs/by-name/ca/canaille/package.nix
···
lib,
python3,
fetchFromGitLab,
+
fetchpatch,
openldap,
nixosTests,
}:
···
in
python.pkgs.buildPythonApplication rec {
pname = "canaille";
-
version = "0.0.57";
+
version = "0.0.74";
pyproject = true;
disabled = python.pythonOlder "3.10";
···
owner = "yaal";
repo = "canaille";
rev = "refs/tags/${version}";
-
hash = "sha256-pesN7k5kGHi3dqTMaXWdCsNsnaJxXv/Ku1wVC9N9a3k=";
+
hash = "sha256-FL02ADM7rUU43XR71UWr4FLr/NeUau7zRwTMOSFm1T4=";
};
+
patches = [
+
# https://gitlab.com/yaal/canaille/-/merge_requests/275
+
(fetchpatch {
+
url = "https://gitlab.com/yaal/canaille/-/commit/1c7fc8b1034a4423f7f46ad8adeced854910b702.patch";
+
hash = "sha256-fu7D010NG7yUChOve7HY3e7mm2c/UGpfcTAiTU8BnGg=";
+
})
+
];
+
build-system = with python.pkgs; [
hatchling
babel
···
dependencies =
with python.pkgs;
[
+
blinker
flask
+
flask-caching
flask-wtf
pydantic-settings
-
requests
+
httpx
wtforms
]
++ sentry-sdk.optional-dependencies.flask;
···
toml
faker
time-machine
+
pytest-scim2-server
]
++ optional-dependencies.front
++ optional-dependencies.oidc
···
export SCHEMA="${openldap}/etc/schema"
# Just use their example config for testing
-
export CONFIG=canaille/config.sample.toml
+
export CONFIG=tests/app/fixtures/default-config.toml
'';
optional-dependencies = with python.pkgs; {
front = [
email-validator
flask-babel
+
flask-talisman
flask-themer
pycountry
pytz
-
toml
+
tomlkit
zxcvbn-rs-py
];
-
oidc = [ authlib ];
+
oidc = [
+
authlib
+
joserfc
+
];
scim = [
+
httpx
scim2-models
authlib
+
scim2-client
];
ldap = [ python-ldap ];
sentry = [ sentry-sdk ];
postgresql = [
+
flask-alembic
passlib
sqlalchemy
sqlalchemy-json
···
qrcode
];
sms = [ smpplib ];
+
server = [ hypercorn ];
};
passthru = {
···
inherit (nixosTests) canaille;
};
};
-
-
disabledTests = [
-
# cause by authlib being too up-to-date for this version of canaille
-
# see: https://github.com/NixOS/nixpkgs/issues/389861#issuecomment-2726361949
-
# FIX: update and see if this is fixed
-
"test_invalid_client[ldap_backend]"
-
"test_invalid_client[memory_backend]"
-
"test_invalid_client[sql_backend]"
-
"test_password_reset[sql_backend]"
-
];
meta = with lib; {
description = "Lightweight Identity and Authorization Management";
+2 -2
pkgs/by-name/fi/fittrackee/package.nix
···
}:
python3Packages.buildPythonApplication rec {
pname = "fittrackee";
-
version = "0.9.4";
+
version = "0.9.8";
pyproject = true;
src = fetchFromGitHub {
owner = "SamR1";
repo = "FitTrackee";
tag = "v${version}";
-
hash = "sha256-01lkPboF4KaCPnZHYVXUdIhXpJYGwcRPubnbjMm3mLY=";
+
hash = "sha256-WwyDDH/ucXyYF0uCaDPdb32Fof+UlM9eBNk11cyhH90=";
};
build-system = [
+10
pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix
···
lib,
stdenv,
fetchFromGitHub,
+
fetchpatch,
python3,
openssl,
libiconv,
···
name = "${pname}-${version}";
hash = "sha256-PdAyEGLYmMLgcPQjzjuwvQo55olKgr079gsgQnUoKTM=";
};
+
+
patches = [
+
# fix compatibility with authlib 1.5.2
+
# https://github.com/element-hq/synapse/pull/18390
+
(fetchpatch {
+
url = "https://github.com/element-hq/synapse/commit/c9adbc6a1ce6039b1c04ae3298e463a3e3b25c38.patch";
+
hash = "sha256-0EZL0esZ6IEjmBV1whSpfZoFsMJ2yZQPi1GjW7NQ484=";
+
})
+
];
postPatch = ''
# Remove setuptools_rust from runtime dependencies
+2 -2
pkgs/development/python-modules/authlib/default.nix
···
buildPythonPackage rec {
pname = "authlib";
-
version = "1.5.1";
+
version = "1.5.2";
pyproject = true;
disabled = pythonOlder "3.8";
···
owner = "lepture";
repo = "authlib";
tag = "v${version}";
-
hash = "sha256-VMihaWqR4FbnTJ50fVf5e5B9GfVwRguq5UAC+D4bpxs=";
+
hash = "sha256-ra1RKprUAqhax0z1osl0lFgFENQZuSW/5FxSmsCdKNY=";
};
build-system = [ setuptools ];
+52
pkgs/development/python-modules/flask-alembic/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchFromGitHub,
+
pythonAtLeast,
+
flit-core,
+
alembic,
+
flask,
+
sqlalchemy,
+
pytestCheckHook,
+
flask-sqlalchemy,
+
flask-sqlalchemy-lite,
+
}:
+
+
buildPythonPackage rec {
+
pname = "flask-alembic";
+
version = "3.1.1";
+
+
pyproject = true;
+
+
src = fetchFromGitHub {
+
owner = "pallets-eco";
+
repo = "flask-alembic";
+
tag = version;
+
hash = "sha256-iHJr9l3w1WwZXDl573IV7+A7RDcawGL20sxxhAQQ628=";
+
};
+
+
build-system = [ flit-core ];
+
+
dependencies = [
+
alembic
+
flask
+
sqlalchemy
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
flask-sqlalchemy
+
flask-sqlalchemy-lite
+
];
+
+
pythonImportChecks = [ "flask_alembic" ];
+
+
meta = with lib; {
+
# https://github.com/pallets-eco/flask-alembic/issues/47
+
broken = pythonAtLeast "3.13";
+
homepage = "https://github.com/pallets-eco/flask-alembic";
+
changelog = "https://github.com/pallets-eco/flask-alembic/blob/${src.tag}/CHANGES.md";
+
license = licenses.mit;
+
maintainers = with maintainers; [ erictapen ];
+
};
+
}
+49
pkgs/development/python-modules/pytest-scim2-server/default.nix
···
+
{
+
lib,
+
buildPythonPackage,
+
fetchPypi,
+
hatchling,
+
portpicker,
+
pytest,
+
scim2-server,
+
pytestCheckHook,
+
scim2-client,
+
cacert,
+
}:
+
+
buildPythonPackage rec {
+
pname = "pytest-scim2-server";
+
version = "0.1.2";
+
+
pyproject = true;
+
+
# Pypi doesn't link a VCS repository
+
src = fetchPypi {
+
pname = "pytest_scim2_server";
+
inherit version;
+
hash = "sha256-uWWFqkloTkvtIfpBNy93fa+c+b/FATjwytLKRde4bHg=";
+
};
+
+
build-system = [ hatchling ];
+
+
dependencies = [
+
portpicker
+
pytest
+
scim2-server
+
];
+
+
nativeCheckInputs = [
+
pytestCheckHook
+
scim2-client
+
] ++ scim2-client.optional-dependencies.httpx;
+
+
env.SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+
+
pythonImportsCheck = [ "pytest_scim2_server" ];
+
+
meta = {
+
homepage = "https://pypi.org/project/pytest-scim2-server";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ erictapen ];
+
};
+
}
+4
pkgs/top-level/python-packages.nix
···
flask-admin = callPackage ../development/python-modules/flask-admin { };
+
flask-alembic = callPackage ../development/python-modules/flask-alembic { };
+
flask-allowed-hosts = callPackage ../development/python-modules/flask-allowed-hosts { };
flask-api = callPackage ../development/python-modules/flask-api { };
···
pytest-run-parallel = callPackage ../development/python-modules/pytest-run-parallel { };
pytest-ruff = callPackage ../development/python-modules/pytest-ruff { };
+
+
pytest-scim2-server = callPackage ../development/python-modules/pytest-scim2-server { };
pytest-selenium = callPackage ../development/python-modules/pytest-selenium { };