kanidm: init at 1.1.0-alpha.8

Co-Authored-By:  Martin Weinelt <mweinelt@users.noreply.github.com>
Co-Authored-By:  Flakebi <flakebi@t-online.de>
main
Kerstin Humm 2 years ago committed by Kerstin
parent b0431d9d91
commit 3b5fc1fde1
  1. 89
      pkgs/servers/kanidm/default.nix
  2. 2
      pkgs/top-level/all-packages.nix

@ -0,0 +1,89 @@
{ stdenv
, lib
, formats
, nixosTests
, rustPlatform
, fetchFromGitHub
, installShellFiles
, pkg-config
, udev
, openssl
, sqlite
, pam
}:
let
arch = if stdenv.isx86_64 then "x86_64" else "generic";
in
rustPlatform.buildRustPackage rec {
pname = "kanidm";
version = "1.1.0-alpha.8";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = "v${version}";
sha256 = "sha256-zMtbE6Y9wXFPBqhmiTMJ3m6bLVZl+c6lRY39DWDlJNo=";
};
cargoSha256 = "sha256:1l7xqp457zfd9gfjp6f4lzgadfp6112jbip4irazw4084qwj0z6x";
KANIDM_BUILD_PROFILE = "release_nixos_${arch}";
postPatch =
let
format = (formats.toml { }).generate "${KANIDM_BUILD_PROFILE}.toml";
profile = {
web_ui_pkg_path = "@web_ui_pkg_path@";
cpu_flags = if stdenv.isx86_64 then "x86_64_v1" else "none";
};
in
''
cp ${format profile} profiles/${KANIDM_BUILD_PROFILE}.toml
substituteInPlace profiles/${KANIDM_BUILD_PROFILE}.toml \
--replace '@web_ui_pkg_path@' "$out/ui"
'';
nativeBuildInputs = [
pkg-config
installShellFiles
];
buildInputs = [
udev
openssl
sqlite
pam
];
# Failing tests, probably due to network issues
checkFlags = [
"--skip default_entries"
"--skip oauth2_openid_basic_flow"
"--skip test_server"
"--skip test_cache"
];
preFixup = ''
installShellCompletion --bash $releaseDir/build/completions/*.bash
installShellCompletion --zsh $releaseDir/build/completions/_*
# PAM and NSS need fix library names
mv $out/lib/libnss_kanidm.so $out/lib/libnss_kanidm.so.2
mv $out/lib/libpam_kanidm.so $out/lib/pam_kanidm.so
# We don't compile the wasm-part form source, as there isn't a rustc for
# wasm32-unknown-unknown in nixpkgs yet.
cp -r kanidmd_web_ui/pkg $out/ui
'';
passthru.tests = { inherit (nixosTests) kanidm; };
meta = with lib; {
description = "A simple, secure and fast identity management platform";
homepage = "https://github.com/kanidm/kanidm";
license = licenses.mpl20;
platforms = platforms.linux;
maintainers = with maintainers; [ erictapen Flakebi ];
};
}

@ -21845,6 +21845,8 @@ with pkgs;
jitsi-videobridge = callPackage ../servers/jitsi-videobridge { };
kanidm = callPackage ../servers/kanidm { };
kapowbang = callPackage ../servers/kapowbang { };
keycloak = callPackage ../servers/keycloak { };

Loading…
Cancel
Save