1{ stdenv, fetchFromGitHub, bison, flex, python3 , swig
2, libsepol, libselinux, checkpolicy
3, withGraphics ? false
4}:
5
6with stdenv.lib;
7with python3.pkgs;
8
9buildPythonApplication rec {
10 pname = "setools";
11 version = "2017-11-10";
12
13 src = fetchFromGitHub {
14 owner = "TresysTechnology";
15 repo = pname;
16 rev = "a1aa0f33f5c428d3f9fe82960ed5de36f38047f7";
17 sha256 = "0iyj35fff93cprjkzbkg9dn5xz8dg5h2kjx3476fl625nxxskndn";
18 };
19
20 nativeBuildInputs = [ bison flex ];
21 buildInputs = [ libsepol swig ];
22 propagatedBuildInputs = [ enum34 libselinux networkx ]
23 ++ optionals withGraphics [ pyqt5 ];
24
25 checkInputs = [ tox checkpolicy ];
26 preCheck = ''
27 export CHECKPOLICY=${checkpolicy}/bin/checkpolicy
28 '';
29
30 setupPyBuildFlags = [ "-i" ];
31
32 preBuild = ''
33 export SEPOL="${stdenv.lib.getLib libsepol}/lib/libsepol.a"
34 '';
35
36 meta = {
37 description = "SELinux Tools";
38 homepage = https://github.com/TresysTechnology/setools/wiki;
39 license = licenses.gpl2;
40 platforms = platforms.linux;
41 };
42}