diff options
Diffstat (limited to 'pkgs/tools/security/munge/default.nix')
-rw-r--r-- | pkgs/tools/security/munge/default.nix | 60 |
1 files changed, 48 insertions, 12 deletions
diff --git a/pkgs/tools/security/munge/default.nix b/pkgs/tools/security/munge/default.nix index 01137be20460d..f21a9e17add38 100644 --- a/pkgs/tools/security/munge/default.nix +++ b/pkgs/tools/security/munge/default.nix @@ -1,42 +1,78 @@ -{ lib, stdenv, fetchFromGitHub, autoreconfHook, libgcrypt, zlib, bzip2 }: +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, + libgcrypt, + zlib, + bzip2, +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "munge"; version = "0.5.16"; src = fetchFromGitHub { owner = "dun"; repo = "munge"; - rev = "${pname}-${version}"; + rev = "munge-${finalAttrs.version}"; sha256 = "sha256-fv42RMUAP8Os33/iHXr70i5Pt2JWZK71DN5vFI3q7Ak="; }; - strictDeps = true; nativeBuildInputs = [ autoreconfHook libgcrypt # provides libgcrypt.m4 ]; - buildInputs = [ libgcrypt zlib bzip2 ]; - preAutoreconf = '' - # Remove the install-data stuff, since it tries to write to /var - substituteInPlace src/Makefile.am --replace "etc \\" "\\" - ''; + buildInputs = [ + libgcrypt + zlib + bzip2 + ]; + + strictDeps = true; configureFlags = [ + # Load data from proper global paths "--localstatedir=/var" - "--with-libgcrypt-prefix=${libgcrypt.dev}" + "--sysconfdir=/etc" + "--runstatedir=/run" + "--with-sysconfigdir=/etc/default" + + # Install data to proper directories + "--with-pkgconfigdir=${placeholder "out"}/lib/pkgconfig" + "--with-systemdunitdir=${placeholder "out"}/lib/systemd/system" + + # Cross-compilation hacks + "--with-libgcrypt-prefix=${lib.getDev libgcrypt}" # workaround for cross compilation: https://github.com/dun/munge/issues/103 "ac_cv_file__dev_spx=no" "x_ac_cv_check_fifo_recvfd=no" ]; + installFlags = [ + "localstatedir=${placeholder "out"}/var" + "runstatedir=${placeholder "out"}/run" + "sysconfdir=${placeholder "out"}/etc" + "sysconfigdir=${placeholder "out"}/etc/default" + ]; + + postInstall = '' + # rmdir will notify us if anything new is installed to the directories. + rmdir "$out"/{var{/{lib,log}{/munge,},},etc/munge} + ''; + meta = with lib; { description = '' An authentication service for creating and validating credentials ''; - license = licenses.lgpl3; + license = [ + # MUNGE + licenses.gpl3Plus + # libmunge + licenses.lgpl3Plus + ]; platforms = platforms.unix; maintainers = [ maintainers.rickynils ]; }; -} +}) |