about summary refs log tree commit diff
path: root/pkgs/tools/security/munge/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/security/munge/default.nix')
-rw-r--r--pkgs/tools/security/munge/default.nix60
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 ];
   };
-}
+})