ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / pkgs / os-specific / linux / libsemanage / default.nix
blobf5b3a71b9545e945b3dce9da85da21f03f982c38
2   lib,
3   stdenv,
4   fetchurl,
5   pkg-config,
6   bison,
7   flex,
8   libsepol,
9   libselinux,
10   bzip2,
11   audit,
12   enablePython ? true,
13   swig ? null,
14   python ? null,
17 stdenv.mkDerivation rec {
18   pname = "libsemanage";
19   version = "3.7";
20   inherit (libsepol) se_url;
22   src = fetchurl {
23     url = "${se_url}/${version}/libsemanage-${version}.tar.gz";
24     sha256 = "sha256-4WbK4ppBfasAjbnKCHQCPzU6MBewdpOgNu2XSH7aNbE=";
25   };
27   outputs = [
28     "out"
29     "dev"
30     "man"
31   ] ++ lib.optional enablePython "py";
33   strictDeps = true;
35   nativeBuildInputs = [
36     bison
37     flex
38     pkg-config
39   ] ++ lib.optional enablePython swig;
40   buildInputs = [
41     libsepol
42     libselinux
43     bzip2
44     audit
45   ] ++ lib.optional enablePython python;
47   makeFlags = [
48     "PREFIX=$(out)"
49     "INCLUDEDIR=$(dev)/include"
50     "MAN3DIR=$(man)/share/man/man3"
51     "MAN5DIR=$(man)/share/man/man5"
52     "PYTHON=python"
53     "PYPREFIX=python"
54     "PYTHONLIBDIR=$(py)/${python.sitePackages}"
55     "DEFAULT_SEMANAGE_CONF_LOCATION=$(out)/etc/selinux/semanage.conf"
56   ];
58   # The following turns the 'clobbered' error into a warning
59   # which should fix the following error:
60   #
61   # semanage_store.c: In function 'semanage_exec_prog':
62   # semanage_store.c:1278:6: error: variable 'i' might be clobbered by 'longjmp' or 'vfork' [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wclobbered\a-Werror=clobbered8;;\a]
63   #  1278 |  int i;
64   #       |      ^
65   # cc1: all warnings being treated as errors
66   env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error=clobbered" ];
68   installTargets = [ "install" ] ++ lib.optionals enablePython [ "install-pywrap" ];
70   enableParallelBuilding = true;
72   meta = removeAttrs libsepol.meta [ "outputsToInstall" ] // {
73     description = "Policy management tools for SELinux";
74     license = lib.licenses.lgpl21;
75   };