btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / op / openscap / package.nix
blob4f807219d31fcecca7009d87634f0799713047f4
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   cmake,
6   libsepol,
7   popt,
8   libxml2,
9   libxslt,
10   openssl,
11   util-linux,
12   pcre2,
13   pcre,
14   libselinux,
15   graphviz,
16   glib,
17   python3,
18   swig,
19   libgcrypt,
20   opendbx,
21   xmlbird,
22   haskellPackages,
23   libyaml,
24   yaml-filter,
25   xmlsec,
26   bzip2,
27   valgrind,
28   asciidoc,
29   installShellFiles,
30   rpm,
31   system-sendmail,
32   hyperscan,
33   gnome2,
34   curl,
35   procps,
36   systemd,
37   perl,
38   doxygen,
39   pkg-config,
40   perl538Packages,
43 stdenv.mkDerivation rec {
44   pname = "openscap";
45   version = "1.3.10";
47   src = fetchFromGitHub {
48     owner = "OpenSCAP";
49     repo = "openscap";
50     rev = version;
51     hash = "sha256-P7k+Ygz/XmpTSKBEqbyJsd1bIDVJ1HA/RJdrEtjYD5g=";
52   };
54   strictDeps = true;
56   nativeBuildInputs = [
57     cmake
58     asciidoc
59     doxygen
60     rpm
61     swig
62     util-linux
63     pkg-config
64   ];
66   buildInputs =
67     with perl538Packages;
68     [
69       XMLXPath
70       LinuxACL
71       XMLTokeParser
72     ]
73     ++ [
74       perl
75       popt
76       openssl
77       valgrind
78       pcre2
79       pcre
80       libxslt
81       xmlsec
82       hyperscan
83       libselinux
84       libyaml
85       xmlbird
86       installShellFiles
87       bzip2
88       yaml-filter
89       python3
90       libgcrypt
91       libxml2
92       systemd
93       haskellPackages.pthread
94       graphviz
95       system-sendmail
96       procps
97       libsepol
98       curl
99       glib
100       gnome2.ORBit2
101       opendbx
102     ];
104   prePatch = ''
105     export SWIG_PERL_DIR=lib/perl
106     substituteInPlace swig/perl/CMakeLists.txt \
107       --replace-fail "DESTINATION ''${PERL_VENDORLIB}" "DESTINATION ''${SWIG_PERL_DIR}''${PERL_VERSION}" \
108       --replace-fail "DESTINATION ''${PERL_VENDORARCH}" "DESTINATION ''${SWIG_PERL_DIR}"
109     substituteInPlace src/common/oscap_pcre.c \
110       --replace-fail "#include <pcre2.h>" "#include <${pcre2.dev}/include/pcre2.h>" \
111       --replace-fail "#include <pcre.h>" "#include <${pcre.dev}/include/pcre.h>"
112   '';
114   cmakeFlags = [
115     "-DPCRE2_INCLUDE_DIRS=${pcre2.dev}/include"
116     "-DPCRE2_LIBRARIES=${pcre2.out}/lib"
117     "-DENABLE_DOCS=TRUE"
118     "-DENABLE_TESTS=TRUE"
119     "-DENABLE_OSCAP_UTIL=TRUE"
120     "-DENABLE_OSCAP_UTIL_CHROOT=TRUE"
121     "-DENABLE_OSCAP_UTIL_SSH=TRUE"
122     "-DENABLE_OSCAP_UTIL_DOCKER=TRUE"
123     "-DENABLE_OSCAP_REMEDIATE_SERVICE=TRUE"
124     "-DOPENSCAP_PROBE_INDEPENDENT_YAMLFILECONTENT=TRUE"
125     "-DSYSTEMD_UNITDIR=lib/systemd/system"
126     "-DENABLE_VALGRIND=TRUE"
127     "-DENABLE_OSCAP_REMEDIATE_SERVICE=TRUE"
128     "-DPYTHON_SITE_PACKAGES_INSTALL_DIR=${python3.pkgs.python.sitePackages}"
129     "-DOPENSCAP_INSTALL_DESTINATION=bin"
130     "-DCMAKE_INSTALL_BINDIR=bin"
131     "-DCMAKE_INSTALL_MANDIR=share"
132     "-DENABLE_MITRE=TRUE"
133     "-DCMAKE_INSTALL_LIBDIR=lib"
134     "-DCMAKE_INSTALL_INCLUDEDIR=include"
135     "-DCMAKE_INSTALL_DATADIR=share"
136     "-DBUILD_TESTING=ON"
137     "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
138     "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
139   ];
141   postBuild = ''
142     make docs
143   '';
145   installPhase = ''
146     make install
147     installManPage $out/share/man8/*.8
148     rm -rf $out/share/man8
149   '';
151   meta = {
152     description = "NIST Certified SCAP 1.2 toolkit";
153     homepage = "https://github.com/OpenSCAP/openscap";
154     changelog = "https://github.com/OpenSCAP/openscap/blob/${src.rev}/NEWS";
155     license = lib.licenses.lgpl21Only;
156     maintainers = with lib.maintainers; [ tochiaha ];
157     mainProgram = "oscap";
158     platforms = [ "x86_64-linux" ];
159   };