at 22.05-pre 50 lines 1.2 kB view raw
1{ lib, fetchFromGitHub, python3 2, libsepol, libselinux, checkpolicy 3, fetchpatch 4, withGraphics ? false 5}: 6 7with lib; 8with python3.pkgs; 9 10buildPythonApplication rec { 11 pname = "setools"; 12 version = "4.3.0"; 13 14 src = fetchFromGitHub { 15 owner = "SELinuxProject"; 16 repo = pname; 17 rev = version; 18 sha256 = "0vr20bi8w147z5lclqz1l0j1b34137zg2r04pkafkgqqk7qbyjk6"; 19 }; 20 21 patches = [ 22 (fetchpatch { # included in 4.4.0 23 url = "https://github.com/SELinuxProject/setools/commit/f1b4a5d375be05fbccedb258c940d771bff8e524.diff"; 24 sha256 = "1r38s6i4i6bdr2zdp5wcg1yifpf3pd018c73a511mgynyg7d11xy"; 25 }) 26 ]; 27 28 nativeBuildInputs = [ cython ]; 29 buildInputs = [ libsepol ]; 30 propagatedBuildInputs = [ enum34 libselinux networkx ] 31 ++ optionals withGraphics [ pyqt5 ]; 32 33 checkInputs = [ tox checkpolicy ]; 34 preCheck = '' 35 export CHECKPOLICY=${checkpolicy}/bin/checkpolicy 36 ''; 37 38 setupPyBuildFlags = [ "-i" ]; 39 40 preBuild = '' 41 export SEPOL="${lib.getLib libsepol}/lib/libsepol.a" 42 ''; 43 44 meta = { 45 description = "SELinux Policy Analysis Tools"; 46 homepage = "https://github.com/SELinuxProject/setools"; 47 license = licenses.gpl2; 48 platforms = platforms.linux; 49 }; 50}