1{ stdenv, fetchurl, bison, flex, libsepol }:
2
3stdenv.mkDerivation rec {
4 name = "checkpolicy-${version}";
5 version = "2.4";
6 inherit (libsepol) se_release se_url;
7
8 src = fetchurl {
9 url = "${se_url}/${se_release}/checkpolicy-${version}.tar.gz";
10 sha256 = "1m5wjm43lzp6bld8higsvdm2dkddydihhwv9qw2w9r4dm0largcv";
11 };
12
13 # Don't build tests
14 postPatch = ''
15 sed '/-C test/d' -i Makefile
16 sed '1i#include <ctype.h>' -i checkpolicy.c
17 '';
18
19 nativeBuildInputs = [ bison flex ];
20 buildInputs = [ libsepol ];
21
22 NIX_CFLAGS_COMPILE = "-fstack-protector-all";
23
24 preBuild = ''
25 makeFlagsArray+=("LEX=flex")
26 makeFlagsArray+=("LIBDIR=${libsepol}/lib")
27 makeFlagsArray+=("PREFIX=$out")
28 '';
29
30 meta = libsepol.meta // {
31 description = "SELinux policy compiler";
32 };
33}