nixpkgs/pkgs/development/python-modules/python-kadmin-rs/default.nix
2026-02-15 11:22:20 +01:00

83 lines
2.6 KiB
Nix

{
lib,
pkgs,
fetchFromGitHub,
rustPlatform,
pythonImportsCheckHook,
buildPythonPackage,
pkg-config,
heimdal,
}:
buildPythonPackage rec {
pname = "python-kadmin-rs";
version = "0.7.0";
pyproject = true;
src = fetchFromGitHub {
owner = "authentik-community";
repo = "kadmin-rs";
rev = "kadmin/version/${version}";
hash = "sha256-7aRbpQblRFoCmuZJgm2mrGoUNL0BBcIpzlKblCnHVPc=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
hash = "sha256-dzTcB5GfeUbgikznq4YFEzZ75z0zvz4I1/+5UCQ0e2o=";
};
# The include directories of krb5 and heimdal contain overlapping paths.
# Only add one and set the other required paths via environment variables.
buildInputs = [
pkgs.krb5
];
env = {
KADMIN_MIT_CLIENT_INCLUDES = "${pkgs.krb5.dev}/include";
KADMIN_MIT_SERVER_INCLUDES = "${pkgs.krb5.dev}/include";
KADMIN_HEIMDAL_CLIENT_INCLUDES = "${heimdal.dev}/include";
KADMIN_HEIMDAL_SERVER_INCLUDES = "${heimdal.dev}/include";
KADMIN_MIT_CLIENT_KRB5_CONFIG = "${pkgs.krb5.dev}/bin/krb5-config";
KADMIN_MIT_SERVER_KRB5_CONFIG = "${pkgs.krb5.dev}/bin/krb5-config";
KADMIN_HEIMDAL_CLIENT_KRB5_CONFIG = "${heimdal.dev}/bin/krb5-config";
KADMIN_HEIMDAL_SERVER_KRB5_CONFIG = "${heimdal.dev}/bin/krb5-config";
K5TEST_MIT_KDB5_UTIL = "${pkgs.krb5}/bin/kdb5_util";
K5TEST_MIT_KRB5KDC = "${pkgs.krb5}/bin/krb5kdc";
K5TEST_MIT_KADMIN = "${pkgs.krb5}/bin/kadmin";
K5TEST_MIT_KADMIN_LOCAL = "${pkgs.krb5}/bin/kadmin.local";
K5TEST_MIT_KADMIND = "${pkgs.krb5}/bin/kadmind";
K5TEST_MIT_KPROP = "${pkgs.krb5}/bin/kprop";
K5TEST_MIT_KINIT = "${pkgs.krb5}/bin/kinit";
K5TEST_MIT_KLIST = "${pkgs.krb5}/bin/klist";
K5TEST_HEIMDAL_KDC = "${heimdal}/libexec/kdc";
K5TEST_HEIMDAL_KADMIN = "${heimdal}/bin/kadmin";
K5TEST_HEIMDAL_KADMIND = "${heimdal}/libexec/kadmind";
K5TEST_HEIMDAL_KINIT = "${heimdal}/bin/kinit";
K5TEST_HEIMDAL_KLIST = "${heimdal}/bin/klist";
K5TEST_HEIMDAL_KTUTIL = "${heimdal}/bin/ktutil";
};
nativeBuildInputs = [
pkg-config
pythonImportsCheckHook
rustPlatform.bindgenHook
rustPlatform.cargoSetupHook
rustPlatform.maturinBuildHook
];
pythonImportsCheck = [
"kadmin"
];
meta = {
description = "Rust and Python interfaces to the Kerberos administration interface (kadm5)";
homepage = "https://github.com/authentik-community/kadmin-rs";
changelog = "https://github.com/authentik-community/kadmin-rs/releases/tag/kadmin%2Fversion%2F${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
jvanbruegge
risson
];
};
}