Co-Authored-By: Martin Weinelt <mweinelt@users.noreply.github.com> Co-Authored-By: Flakebi <flakebi@t-online.de>main
parent
b0431d9d91
commit
3b5fc1fde1
@ -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 ]; |
||||
}; |
||||
} |
Loading…
Reference in new issue