about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFranz Pletz <fpletz@fnordicwalking.de>2016-05-06 03:15:16 +0200
committerFranz Pletz <fpletz@fnordicwalking.de>2016-05-06 03:15:16 +0200
commite478b63b27f8a3e23a56867d5b320b0ae7210acd (patch)
tree80e69e01ae06a22bc422c9322e9361e8f6da5875
parentaae11b178188a026c68953eab644b5b9a75a541c (diff)
parenta0a6a3df88e6d1d3542dee0e8d7c8f71fb8293b9 (diff)
downloadnixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.tar
nixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.tar.gz
nixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.tar.bz2
nixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.tar.lz
nixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.tar.xz
nixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.tar.zst
nixlib-e478b63b27f8a3e23a56867d5b320b0ae7210acd.zip
Merge pull request #14835 from groxxda/libcap
libcap: 2.24 -> 2.25, replace old split with multi-output
-rw-r--r--pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix3
-rw-r--r--pkgs/os-specific/linux/libcap/default.nix46
-rw-r--r--pkgs/os-specific/linux/libcap/man.nix13
-rw-r--r--pkgs/os-specific/linux/libcap/pam.nix15
-rw-r--r--pkgs/os-specific/linux/libcap/progs.nix28
-rw-r--r--pkgs/tools/misc/xfstests/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix6
8 files changed, 43 insertions, 75 deletions
diff --git a/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix b/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix
index 64210ca76051..90dbf96972fa 100644
--- a/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix
+++ b/pkgs/desktops/kde-5/frameworks-5.19/kinit/default.nix
@@ -1,13 +1,12 @@
 { kdeFramework, lib, copyPathsToStore, extra-cmake-modules, kconfig, kcrash
 , kdoctools, ki18n, kio, kservice, kwindowsystem, libcap
-, libcap_progs
 }:
 
 # TODO: setuid wrapper
 
 kdeFramework {
   name = "kinit";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools libcap_progs ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools libcap.out ];
   buildInputs = [ kconfig kcrash kservice libcap ];
   propagatedBuildInputs = [ ki18n kio kwindowsystem ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
diff --git a/pkgs/os-specific/linux/libcap/default.nix b/pkgs/os-specific/linux/libcap/default.nix
index c8484babcdf8..13d2fb7f5c5a 100644
--- a/pkgs/os-specific/linux/libcap/default.nix
+++ b/pkgs/os-specific/linux/libcap/default.nix
@@ -1,27 +1,55 @@
-{ stdenv, fetchurl, attr, perl }:
+{ stdenv, fetchurl, attr, perl, pam ? null }:
+assert pam != null -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   name = "libcap-${version}";
-  version = "2.24";
+  version = "2.25";
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${name}.tar.xz";
-    sha256 = "0rbc9qbqs5bp9am9s9g83wxj5k4ixps2agy9dxr1v1fwg27mdr6f";
+    sha256 = "0qjiqc5pknaal57453nxcbz3mn1r4hkyywam41wfcglq3v2qlg39";
   };
 
-  outputs = [ "dev" "out" ];
+  outputs = [ "dev" "lib" "doc" "out" ]
+    ++ stdenv.lib.optional (pam != null) "pam";
 
   nativeBuildInputs = [ perl ];
+
+  buildInputs = [ pam ];
+
   propagatedBuildInputs = [ attr ];
 
-  preConfigure = "cd libcap";
+  makeFlags = [
+    "lib=lib"
+    (stdenv.lib.optional (pam != null) "PAM_CAP=yes")
+  ];
+
+  prePatch = ''
+    # use relative bash path
+    substituteInPlace progs/capsh.c --replace "/bin/bash" "bash"
+
+    # ensure capsh can find bash in $PATH
+    substituteInPlace progs/capsh.c --replace execve execvpe
+  '';
+
+  preInstall = ''
+    substituteInPlace Make.Rules \
+      --replace 'prefix=/usr' "prefix=$lib" \
+      --replace 'exec_prefix=' "exec_prefix=$out" \
+      --replace 'lib_prefix=$(exec_prefix)' "lib_prefix=$lib" \
+      --replace 'inc_prefix=$(prefix)' "inc_prefix=$dev" \
+      --replace 'man_prefix=$(prefix)' "man_prefix=$doc"
+  '';
 
-  makeFlags = "lib=lib prefix=$(out)";
+  installFlags = "RAISE_SETFCAP=no";
 
   postInstall = ''
-    rm "$out"/lib/*.a
-    mkdir -p "$dev/share/doc/${name}"
-    cp ../License "$dev/share/doc/${name}/License"
+    rm "$lib"/lib/*.a
+    mkdir -p "$doc/share/doc/${name}"
+    cp License "$doc/share/doc/${name}/"
+  '' + stdenv.lib.optionalString (pam != null) ''
+    mkdir -p "$pam/lib/security"
+    mv "$lib"/lib/security "$pam/lib"
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/libcap/man.nix b/pkgs/os-specific/linux/libcap/man.nix
deleted file mode 100644
index eeb780f095bd..000000000000
--- a/pkgs/os-specific/linux/libcap/man.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{stdenv, libcap}:
-
-assert stdenv.isLinux;
-
-stdenv.mkDerivation rec {
-  name = "libcap-docs-${libcap.version}";
-
-  inherit (libcap) src;
-
-  makeFlags = "MANDIR=$(out)/share/man";
-
-  preConfigure = "cd doc";
-}
diff --git a/pkgs/os-specific/linux/libcap/pam.nix b/pkgs/os-specific/linux/libcap/pam.nix
deleted file mode 100644
index 3dd7cd947af2..000000000000
--- a/pkgs/os-specific/linux/libcap/pam.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{stdenv, pam, libcap}:
-
-assert stdenv.isLinux;
-
-stdenv.mkDerivation rec {
-  name = "libcap-pam-${libcap.version}";
-
-  inherit (libcap) src;
-
-  buildInputs = [ libcap pam ];
-
-  preConfigure = "cd pam_cap";
-
-  makeFlags = "${libcap.makeFlags} PAM_CAP=yes";
-}
diff --git a/pkgs/os-specific/linux/libcap/progs.nix b/pkgs/os-specific/linux/libcap/progs.nix
deleted file mode 100644
index e3871f15f885..000000000000
--- a/pkgs/os-specific/linux/libcap/progs.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{stdenv, libcap}:
-
-assert stdenv.isLinux;
-
-stdenv.mkDerivation rec {
-  name = "libcap-progs-${libcap.version}";
-
-  inherit (libcap) src makeFlags;
-
-  buildInputs = [ libcap ];
-
-  prePatch = ''
-    # use relative bash path
-    substituteInPlace progs/capsh.c --replace "/bin/bash" "bash"
-
-    # ensure capsh can find bash in $PATH
-    substituteInPlace progs/capsh.c --replace execve execvpe
-  '';
-
-  preConfigure = "cd progs";
-
-  installFlags = "RAISE_SETFCAP=no";
-
-  postInstall = ''
-    mkdir -p "$out/share/doc/${name}"
-    cp ../License "$out/share/doc/${name}/"
-  '';
-}
diff --git a/pkgs/tools/misc/xfstests/default.nix b/pkgs/tools/misc/xfstests/default.nix
index 957582a3687f..5269955ebdf9 100644
--- a/pkgs/tools/misc/xfstests/default.nix
+++ b/pkgs/tools/misc/xfstests/default.nix
@@ -1,5 +1,5 @@
 { stdenv, acl, attr, autoreconfHook, bash, bc, coreutils, e2fsprogs, fetchgit, fio, gawk
-, lib, libaio, libcap_progs, libuuid, libxfs, lvm2, openssl, perl, procps, psmisc, su
+, lib, libaio, libcap, libuuid, libxfs, lvm2, openssl, perl, procps, psmisc, su
 , time, utillinux, which, writeScript, xfsprogs }:
 
 stdenv.mkDerivation {
@@ -72,7 +72,7 @@ stdenv.mkDerivation {
       ln -s @out@/lib/xfstests/$f $f
     done
 
-    export PATH=${lib.makeBinPath [acl attr bc e2fsprogs fio gawk libcap_progs lvm2 perl procps psmisc su utillinux which xfsprogs]}:$PATH
+    export PATH=${lib.makeBinPath [acl attr bc e2fsprogs fio gawk libcap lvm2 perl procps psmisc su utillinux which xfsprogs]}:$PATH
     exec ./check "$@"
   '';
 
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 266313c81e10..964e78413441 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -54,6 +54,9 @@ doNotDisplayTwice rec {
   joseki = apache-jena-fuseki; # added 2016-02-28
   jquery_ui = jquery-ui;  # added 2014-09-07
   libdbusmenu_qt5 = qt5.libdbusmenu;  # added 2015-12-19
+  libcap_manpages = libcap.doc; # added 2016-04-29
+  libcap_pam = if stdenv.isLinux then libcap.pam else null; # added 2016-04-29
+  libcap_progs = libcap.out; # added 2016-04-29
   libtidy = html-tidy;  # added 2014-12-21
   links = links2; # added 2016-01-31
   lttngTools = lttng-tools;  # added 2014-07-31
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index a02bd4a3da6e..40d59a52931b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10951,12 +10951,6 @@ in
 
   libcap = callPackage ../os-specific/linux/libcap { };
 
-  libcap_progs = callPackage ../os-specific/linux/libcap/progs.nix { };
-
-  libcap_pam = callPackage ../os-specific/linux/libcap/pam.nix { };
-
-  libcap_manpages = callPackage ../os-specific/linux/libcap/man.nix { };
-
   libcap_ng = callPackage ../os-specific/linux/libcap-ng {
     swig = null; # Currently not using the python2/3 bindings
     python2 = null; # Currently not using the python2 bindings