forked from mirrors/nixpkgs
4b80acb94c
Between libcap 2.51 and 2.52, the CROSS_COMPILE flag appears in more places. Maybe it was already required before, but now the build fails due to it not being set. Set it unconditionally.
67 lines
1.9 KiB
Nix
67 lines
1.9 KiB
Nix
{ stdenv, lib, buildPackages, fetchurl, attr, runtimeShell
|
|
, usePam ? !isStatic, pam ? null
|
|
, isStatic ? stdenv.hostPlatform.isStatic
|
|
}:
|
|
|
|
assert usePam -> pam != null;
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "libcap";
|
|
version = "2.63";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz";
|
|
sha256 = "sha256-DGN7j0T8fYYneH6c9X8VrAbB3cy1PkH+7FSWvjRm938=";
|
|
};
|
|
|
|
outputs = [ "out" "dev" "lib" "man" "doc" ]
|
|
++ lib.optional usePam "pam";
|
|
|
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
|
|
|
buildInputs = lib.optional usePam pam;
|
|
|
|
propagatedBuildInputs = [ attr ];
|
|
|
|
makeFlags = [
|
|
"lib=lib"
|
|
"PAM_CAP=${if usePam then "yes" else "no"}"
|
|
"BUILD_CC=$(CC_FOR_BUILD)"
|
|
"CC:=$(CC)"
|
|
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
|
] ++ lib.optional isStatic "SHARED=no";
|
|
|
|
postPatch = ''
|
|
patchShebangs ./progs/mkcapshdoc.sh
|
|
|
|
# use full path to bash
|
|
substituteInPlace progs/capsh.c --replace "/bin/bash" "${runtimeShell}"
|
|
|
|
# set prefixes
|
|
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 = ''
|
|
${lib.optionalString (!isStatic) ''rm "$lib"/lib/*.a''}
|
|
mkdir -p "$doc/share/doc/${pname}-${version}"
|
|
cp License "$doc/share/doc/${pname}-${version}/"
|
|
'' + lib.optionalString usePam ''
|
|
mkdir -p "$pam/lib/security"
|
|
mv "$lib"/lib/security "$pam/lib"
|
|
'';
|
|
|
|
meta = {
|
|
description = "Library for working with POSIX capabilities";
|
|
homepage = "https://sites.google.com/site/fullycapable";
|
|
platforms = lib.platforms.linux;
|
|
license = lib.licenses.bsd3;
|
|
};
|
|
}
|