Skip to content

Commit

Permalink
app-forensics/ovaldi: Port to EAPI 7
Browse files Browse the repository at this point in the history
* GCC 11 fixes
* Respect LDFLAGS

Closes: https://bugs.gentoo.org/722198
Closes: https://bugs.gentoo.org/786660
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: David Seifert <[email protected]>
  • Loading branch information
SoapGentoo committed Apr 29, 2021
1 parent 28d806d commit 99ffb10
Show file tree
Hide file tree
Showing 4 changed files with 104 additions and 24 deletions.
4 changes: 2 additions & 2 deletions app-forensics/ovaldi/files/ovaldi-5.10.1.7-disable-acl.patch
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/probes/unix/FileProbe.cpp.old 2014-10-08 09:15:37.000000000 +0200
+++ src/probes/unix/FileProbe.cpp 2014-10-08 09:15:55.000000000 +0200
--- a/src/probes/unix/FileProbe.cpp
+++ b/src/probes/unix/FileProbe.cpp
@@ -386,18 +386,8 @@
6) If a file has an ACL, the value will be 'true'.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
--- src/probes/unix/Process58Probe.cpp.old 2014-10-08 08:56:37.000000000 +0200
+++ src/probes/unix/Process58Probe.cpp 2014-10-08 08:57:58.000000000 +0200
--- a/src/probes/unix/Process58Probe.cpp
+++ b/src/probes/unix/Process58Probe.cpp
@@ -743,26 +743,8 @@
}

Expand Down
72 changes: 72 additions & 0 deletions app-forensics/ovaldi/files/ovaldi-5.10.1.7-gcc11.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
--- a/src/AbsProbe.cpp
+++ b/src/AbsProbe.cpp
@@ -52,7 +52,7 @@
// use const wherever it makes sense, to ensure const-correctness??
// Or maybe I should have implemented operator<() for items and
// used the default std::less template...?
- typedef set<Item*, std::less<const Item*> > ItemCache;
+ typedef set<Item*, std::less<Item*> > ItemCache;
ItemCache globalItemCache;
}

--- a/src/ErrnoException.h
+++ b/src/ErrnoException.h
@@ -49,10 +49,10 @@
SetErrorMessage(syscall+": "+std::strerror(errnoVal));
}

- virtual ~ErrnoException() throw () {
+ virtual ~ErrnoException() {
}

- virtual const char* what() const throw() {
+ virtual const char* what() const noexcept {
return errorMessage.c_str();
}
};
--- a/src/OutOfMemoryException.h
+++ b/src/OutOfMemoryException.h
@@ -47,10 +47,10 @@
: Exception(msg, severity, cause) {
}

- virtual ~OutOfMemoryException() throw () {
+ virtual ~OutOfMemoryException() {
}

- virtual const char* what() const throw() {
+ virtual const char* what() const noexcept {
return errorMessage.c_str();
}
};
--- a/src/probes/unix/RunLevelProbe.cpp
+++ b/src/probes/unix/RunLevelProbe.cpp
@@ -125,7 +125,7 @@


void
-RunLevelProbe::_verifyRunlevelObjectAttr( ObjectEntity * service_name, ObjectEntity * runlevel ) const throw( ProbeException ) {
+RunLevelProbe::_verifyRunlevelObjectAttr( ObjectEntity * service_name, ObjectEntity * runlevel ) const {

// check datatypes - only allow string
if( service_name->GetDatatype() != OvalEnum::DATATYPE_STRING ){
--- a/src/probes/unix/RunLevelProbe.h
+++ b/src/probes/unix/RunLevelProbe.h
@@ -76,7 +76,7 @@
*/
struct ltrunlevel_item_comparator
{
- bool operator() ( const runlevel_item &r1, const runlevel_item &r2 )
+ bool operator() ( const runlevel_item &r1, const runlevel_item &r2 ) const
{
return r1.service_name.compare(r2.service_name) < 0;
}
@@ -115,7 +115,7 @@
@param runlevel the runlevel runlevel_object entity
@throws ProbeException if invalid operations or datatypes are encountered
*/
- void _verifyRunlevelObjectAttr( ObjectEntity * service_name, ObjectEntity * runlevel ) const throw( ProbeException );
+ void _verifyRunlevelObjectAttr( ObjectEntity * service_name, ObjectEntity * runlevel ) const;

/**
Checks to see if the given filename is either "." or ".."
48 changes: 28 additions & 20 deletions app-forensics/ovaldi/ovaldi-5.10.1.7.ebuild
Original file line number Diff line number Diff line change
@@ -1,34 +1,32 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=5
EAPI=7

inherit epatch toolchain-funcs
inherit toolchain-funcs

DESCRIPTION="Free implementation of OVAL"
HOMEPAGE="http://oval.mitre.org/language/interpreter.html"
SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.bz2"
S="${WORKDIR}/${P}-src"

LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="acl ldap selinux"

CDEPEND="dev-libs/libgcrypt:0
dev-libs/libpcre
dev-libs/xalan-c
dev-libs/xerces-c
sys-apps/util-linux
DEPEND="
dev-libs/libgcrypt:=
dev-libs/libpcre:=
dev-libs/xalan-c:=
dev-libs/xerces-c:=
sys-apps/util-linux:=
sys-libs/libcap
acl? ( sys-apps/acl )
acl? ( sys-apps/acl:= )
ldap? ( net-nds/openldap )"
DEPEND="${CDEPEND}
sys-apps/sed"
RDEPEND="${CDEPEND}
RDEPEND="${DEPEND}
selinux? ( sys-libs/libselinux )"

S="${WORKDIR}/${P}-src"

src_prepare() {
if ! use ldap ; then
einfo "Disabling LDAP probes"
Expand All @@ -42,7 +40,7 @@ src_prepare() {

if ! use acl ; then
sed -i 's,.*libacl,//&,' src/probes/unix/FileProbe.h || die
epatch "${FILESDIR}"/${P}-disable-acl.patch
eapply "${FILESDIR}"/${P}-disable-acl.patch
sed -i 's, -lacl , ,' project/linux/Makefile || die
fi

Expand All @@ -58,7 +56,7 @@ src_prepare() {
rm src/probes/linux/SelinuxSecurityContextProbe.cpp || die
rm src/probes/linux/SelinuxBooleanProbe.cpp || die
rm src/probes/linux/SelinuxBooleanProbe.h || die
epatch "${FILESDIR}"/${P}-disable_RetrieveSelinuxDomainLabel.patch
eapply "${FILESDIR}"/${P}-disable_RetrieveSelinuxDomainLabel.patch
sed -i 's,.*selinux.*,//&,' src/linux/ProbeFactory.cpp || die
sed -i 's,.*Selinux.*,//&,' src/linux/ProbeFactory.cpp || die
sed -i 's,.*selinux.*.h.*,//&,' src/probes/unix/Process58Probe.cpp || die
Expand All @@ -70,11 +68,19 @@ src_prepare() {
sed -i 's,#include <unistd.h>,&\n#include <stdlib.h>,' src/linux/NetworkInterfaces.cpp || die
sed -i 's,#include <unistd.h>,&\n#include <stdlib.h>,' src/linux/SystemInfo.cpp || die

# respect CXXFLAGS and CXX
sed -i -e '/^CPPFLAGS/s/$(INCDIRS)/$(CXXFLAGS) \0/' project/linux/Makefile || die
# respect CXX, CXXFLAGS and LDFLAGS
sed -e '/^CPPFLAGS/s/$(INCDIRS)/$(CXXFLAGS) \0/' \
-e 's/$(CXX) $^/$(CXX) $(LDFLAGS) $^/g' \
-i project/linux/Makefile || die

# no such library on linux
sed -i 's,-lxalanMsg,,' project/linux/Makefile || die

eapply "${FILESDIR}"/${P}-gcc11.patch
eapply_user
}

src_configure() {
tc-export CXX
}

Expand All @@ -85,9 +91,11 @@ src_compile() {
src_install() {
# no make install in Makefile
dosbin project/linux/Release/ovaldi project/linux/ovaldi.sh
dodir /var/log/${PN}
insinto /usr/share/${PN}
doins xml/*
dodir /var/log/ovaldi

insinto /usr/share/ovaldi
doins -r xml/.

dodoc docs/{README.txt,version.txt}
doman docs/ovaldi.1
}

0 comments on commit 99ffb10

Please sign in to comment.