Merge pull request #14835 from groxxda/libcap
libcap: 2.24 -> 2.25, replace old split with multi-output
This commit is contained in:
@@ -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")
|
||||
];
|
||||
|
||||
makeFlags = "lib=lib prefix=$(out)";
|
||||
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"
|
||||
'';
|
||||
|
||||
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 = {
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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";
|
||||
}
|
||||
@@ -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}/"
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user