Unverified Commit b2f2262e authored by nixpkgs-ci[bot]'s avatar nixpkgs-ci[bot] Committed by GitHub
Browse files

openscap: discover built-in plugins (like SCE) (#461893)

parents 16320005 acdb865b
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
  valgrind,
  asciidoc,
  installShellFiles,
  makeWrapper,
  rpm,
  system-sendmail,
  gnome2,
@@ -55,6 +56,7 @@ stdenv.mkDerivation rec {
    cmake
    asciidoc
    doxygen
    makeWrapper
    rpm
    swig
    util-linux
@@ -104,6 +106,10 @@ stdenv.mkDerivation rec {
      --replace-fail "DESTINATION ''${PERL_VENDORARCH}" "DESTINATION ''${SWIG_PERL_DIR}"
    substituteInPlace src/common/oscap_pcre.c \
      --replace-fail "#include <pcre2.h>" "#include <${pcre2.dev}/include/pcre2.h>"

    # Patch SCE engine to not hardcode FHS paths, allowing it to use the transient environment's PATH
    substituteInPlace src/SCE/sce_engine.c \
      --replace-fail 'env_values[0] = "PATH=/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin";' 'env_values[0] = "_PATCHED_OUT_DUMMY_VAR=patched-out";'
  '';

  cmakeFlags = [
@@ -143,6 +149,13 @@ stdenv.mkDerivation rec {
    rm -rf $out/share/man8
  '';

  postFixup = ''
    # Set plugin directory to discover the SCE plugin.
    # openscap calls dlopen with this as the directory prefix.
    wrapProgram $out/bin/oscap \
      --set OSCAP_CHECK_ENGINE_PLUGIN_DIR $out/lib
  '';

  meta = {
    description = "NIST Certified SCAP 1.2 toolkit";
    homepage = "https://github.com/OpenSCAP/openscap";