# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{10..12} ) inherit cmake python-single-r1 DESCRIPTION="Framework which enables integration with Security Content Automation Protocol" HOMEPAGE="https://www.open-scap.org/" SRC_URI="https://github.com/OpenSCAP/openscap/releases/download/${PV}/${P}.tar.gz" KEYWORDS="~amd64" # app-containers/podman — is not support '~x86' keyword LICENSE="LGPL-2.1+" SLOT="0" IUSE="acl caps chroot doc docker ldap nss dbus pcre perl podman python rpm selinux sce ssh sql test vm xattr" RESTRICT="!test? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE} test? ( perl python ) docker? ( python )" RDEPEND=" app-arch/bzip2 dev-libs/libyaml sys-apps/util-linux acl? ( virtual/acl ) dbus? ( sys-apps/dbus ) caps? ( sys-libs/libcap ) dev-libs/libxslt dev-libs/libxml2:2= dev-libs/popt dev-libs/xmlsec:= ldap? ( net-nds/openldap ) net-misc/curl nss? ( dev-libs/nss ) !nss? ( dev-libs/libgcrypt:0= ) pcre? ( dev-libs/libpcre:3=[unicode] ) podman? ( app-containers/podman ) perl? ( dev-lang/perl:= dev-perl/XML-Parser dev-perl/XML-XPath ) python? ( ${PYTHON_DEPS} $(python_gen_cond_dep ' dev-python/docker[${PYTHON_USEDEP}] docker? ( dev-python/requests[${PYTHON_USEDEP}] ) ') ) rpm? ( app-arch/rpm ) selinux? ( sys-libs/libselinux ) ssh? ( virtual/ssh ) sql? ( dev-db/opendbx ) sys-process/procps:= xattr? ( sys-apps/attr )" DEPEND="${RDEPEND} doc? ( app-text/doxygen app-text/asciidoc ) test? ( net-misc/ipcalc )" BDEPEND="python? ( dev-lang/swig )" pkg_setup() { #if use python; then python-single-r1_pkg_setup #fi } src_prepare() { if use test; then # modify/disable not gentoo specific tests sed -i 's,.*test_run ,#&,' tests/API/XCCDF/default_cpe/test_default_cpe.sh || die sed -i 's,.*assert_exists ,#&,' tests/API/XCCDF/unittests/test_deriving_xccdf_result_from_oval.sh || die sed -i '/\[ $ret -eq 2 \]/d;s,.*assert_exists ,#&,' tests/API/XCCDF/unittests/test_remediate_unresolved.sh || die sed -i 's/uname -p/uname -m/' tests/probes/uname/test_probes_uname.xml.sh || die #sed -i 's,.*test_run ,#&,' tests/probes/rpminfo/test_probes_rpminfo.xml.sh || die #sed -i 's,.*test_run ,#&,' tests/probes/rpmverify/all.sh || die #sed -i 's,.*test_run ,#&,' tests/probes/rpmverifyfile/all.sh || die #sed -i 's,.*test_run ,#&,' tests/probes/rpmverifypackage/test_probes_rpmverifypackage.sh || die sed -i 's,.*test_run ,#&,' tests/probes/sysctl/all.sh || die # update paths for valgrind #sed -i "s:valgrind_output=/tmp/valgrind_\$$.log:valgrind_output=${T}/valgrind_\$$.log:" \ # tests/valgrind_test.sh || die #sed -i 's:oscap_program=$actualdir/utils/.libs/oscap:oscap_program=$actualdir/utils/oscap:' \ # tests/valgrind_test.sh || die # https://github.com/OpenSCAP/openscap/blob/52be17e064df72d8453c7b484bd6224f3f3263b6/src/OVAL/probes/SEAP/seap-packet.c#L845 : fi python_fix_shebang -q "${S}" cmake_src_prepare } src_configure() { local mycmakeargs=( -DENABLE_SCE="$(usex sce)" -DENABLE_PERL="$(usex perl)" -DENABLE_PYTHON3="$(usex python)" -DPYTHON_EXECUTABLE="${PYTHON}" -DENABLE_DOCS="$(usex doc)" -DCMAKE_INSTALL_DOCDIR="/usr/share/doc/${PF}" -DENABLE_OSCAP_UTIL="ON" -DENABLE_OSCAP_UTIL_AS_RPM="$(usex rpm)" # scap-as-rpm — is a py3 script -DENABLE_OSCAP_UTIL_PODMAN="$(usex podman)" -DENABLE_OSCAP_UTIL_SSH="$(usex ssh)" -DENABLE_OSCAP_UTIL_CHROOT="$(usex chroot)" -DENABLE_OSCAP_UTIL_VM="$(usex vm)" # req: ENABLE_OSCAP_UTIL=yes -DENABLE_OSCAP_UTIL_DOCKER="$(usex docker)" # req: python flag (python bindings) -DENABLE_TESTS="$(usex test)" -DENABLE_MITRE="OFF" # mitre testing requires specific environment support — fuck it -DENABLE_VALGRIND="OFF" # fuck it because it's not completely with sandbox too ) # upstream wants to building it only in ${S}/build directory # do not remove it without testing. # # see more: # * https://github.com/OpenSCAP/openscap/blob/2c04d939b93b7394f76adb86bf0b24ff0d76d963/CMakeLists.txt#L50-L54 BUILD_DIR="${S}/build" cmake_src_configure } src_install() { cmake_src_install use python && python_optimize "${D}$(python_get_sitedir)" }