]> Pileus Git - ~andy/sunrise/commitdiff
app-forensics/ovaldi: New Ebuild for bug 225065 thanks to xarthisius, binki and tommy...
authorLABBE Corentin (Montjoie) <corentin.labbe@geomatys.fr>
Wed, 8 Dec 2010 08:18:07 +0000 (08:18 +0000)
committerLABBE Corentin (Montjoie) <corentin.labbe@geomatys.fr>
Wed, 8 Dec 2010 08:18:07 +0000 (08:18 +0000)
svn path=/sunrise/; revision=11595

app-forensics/ovaldi/ChangeLog [new file with mode: 0644]
app-forensics/ovaldi/Manifest [new file with mode: 0644]
app-forensics/ovaldi/files/ovaldi-5.8.2-strnicmp.patch [new file with mode: 0644]
app-forensics/ovaldi/files/ovaldi-5.8.2-xerces3.patch [new file with mode: 0644]
app-forensics/ovaldi/files/rpmdb.patch [new file with mode: 0644]
app-forensics/ovaldi/files/use_local_rpmdb.patch [new file with mode: 0644]
app-forensics/ovaldi/metadata.xml [new file with mode: 0644]
app-forensics/ovaldi/ovaldi-5.8.2.ebuild [new file with mode: 0644]

diff --git a/app-forensics/ovaldi/ChangeLog b/app-forensics/ovaldi/ChangeLog
new file mode 100644 (file)
index 0000000..0a93d74
--- /dev/null
@@ -0,0 +1,10 @@
+# ChangeLog for app-forensics/ovaldi
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+  08 Dec 2010; LABBE Corentin (montjoie) <corentin.labbe@geomatys.fr>
+  +ovaldi-5.8.2.ebuild, +files/ovaldi-5.8.2-strnicmp.patch,
+  +files/ovaldi-5.8.2-xerces3.patch, +files/rpmdb.patch,
+  +files/use_local_rpmdb.patch, +metadata.xml:
+  New Ebuild for bug 225065 thanks to xarthisius, binki and tommy for review
+
diff --git a/app-forensics/ovaldi/Manifest b/app-forensics/ovaldi/Manifest
new file mode 100644 (file)
index 0000000..454df4f
--- /dev/null
@@ -0,0 +1,8 @@
+AUX ovaldi-5.8.2-strnicmp.patch 292 RMD160 30058fc991df58e38be9b19855512602879d0136 SHA1 09f4ef19ba2dc009a45ff3b89e93dae6e9fd0cb6 SHA256 aa4a1f23df2fd4b8ed0456a23948cc597d0573eb1e9881f8a8f229b8778f6a54
+AUX ovaldi-5.8.2-xerces3.patch 12336 RMD160 501377cc5cbe1256a72bf2cd0be8a67943aca50e SHA1 024a2860faf0783c728d468fbe77dd6dc0da5a2f SHA256 70754174e4d390663b79b0dc070eba536d2868ce5b68aae1632e805a52b0e0f0
+AUX rpmdb.patch 2131 RMD160 eab0ea48e95ae7d278b80b555a73ca456ac07703 SHA1 ae06d023162d19019f27fdbbc9476fcf57d10cad SHA256 d40775d272b8aed6062b983640cf4c0a330a9d318012b922099eeb04d4c1d131
+AUX use_local_rpmdb.patch 429 RMD160 4a8f35be13522873bcfc5e03842964e84fc557b0 SHA1 70fe83d0f9f1c8716a2a8afec70da94c9183b2be SHA256 e7956ab2c1de68b0c5284641a36136643aa5a6e12cfd8b6042f0484c1cba63cd
+DIST ovaldi-5.8.2-src.tar.bz2 7763462 RMD160 04ce0dbce70e2a417f1ebcd612142ade49f42b81 SHA1 d5f2f82c818a5fee28822e4a3608d775df05f031 SHA256 a24d4f2ab88032887ee6a8617994836e9bd7f86565b29811891d4de6a3e9b8e2
+EBUILD ovaldi-5.8.2.ebuild 1538 RMD160 c221e4c2aa5598b58d9ca4b38486cc2c7fcd3c1b SHA1 6543ba60c197826d97b585c11916beae18bb1b61 SHA256 fa4714daeeecf13aa01162a5dfa128786186888a41c4d5ed07b10b44b77ef57d
+MISC ChangeLog 433 RMD160 4e0c13e08480b9ad748be7fce38ff4164d028f7a SHA1 f05a6b5f9ac2fb29877b1ff91287b6251b14854b SHA256 a66e5e98397f39aa2e0abaf21964f076b717cfdc590a7d2e4ae1a95652f209b6
+MISC metadata.xml 288 RMD160 c522c377e361253fbc7aefc82764bfde929e6d65 SHA1 15e559615de1ea0171ce5bd28dc29f6420d72287 SHA256 6ad915aa8571ce7d72c55c598c14784fa0f503a330842ac686a508264ff0cd4c
diff --git a/app-forensics/ovaldi/files/ovaldi-5.8.2-strnicmp.patch b/app-forensics/ovaldi/files/ovaldi-5.8.2-strnicmp.patch
new file mode 100644 (file)
index 0000000..fc127ef
--- /dev/null
@@ -0,0 +1,11 @@
+--- src/Main.h.old     2010-10-22 14:59:13.000000000 +0200
++++ src/Main.h 2010-10-22 14:59:38.000000000 +0200
+@@ -38,7 +38,7 @@
+ #endif\r
\r
+ #ifdef LINUX\r
+-#  define STRNICMP strnicmp\r
++#  define STRNICMP strncasecmp\r
+ #elif defined SUNOS\r
+ #  define STRNICMP strncasecmp\r
+ #elif defined DARWIN\r
diff --git a/app-forensics/ovaldi/files/ovaldi-5.8.2-xerces3.patch b/app-forensics/ovaldi/files/ovaldi-5.8.2-xerces3.patch
new file mode 100644 (file)
index 0000000..a5269cb
--- /dev/null
@@ -0,0 +1,270 @@
+--- src/XmlProcessor.cpp.old   2010-10-25 15:13:58.000000000 +0200
++++ src/XmlProcessor.cpp       2010-10-26 09:14:46.000000000 +0200
+@@ -34,8 +34,17 @@
+ //****************************************************************************************//\r
+ //                    DataDirResolver Class                                                                             //    \r
+ //****************************************************************************************//\r
+-\r
++#if XERCES_VERSION_MAJOR < 3\r
+ DOMInputSource* DataDirResolver::resolveEntity (const XMLCh *const /*publicId*/, const XMLCh *const systemId, const XMLCh *const /*baseURI*/) {\r
++#else\r
++InputSource* DataDirResolver::resolveEntity(const XMLCh* publicId, const XMLCh* systemId)\r
++{\r
++      return NULL;\r
++      //return DataDirResolver::resolveEntity (publicId, systemId, NULL);\r
++}\r
++\r
++DOMLSInput* DataDirResolver::resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI) {\r
++#endif\r
+       string path = "";\r
+       size_t last;\r
+       string schemapath = Common::GetSchemaPath();\r
+@@ -111,21 +120,35 @@
+     // Instantiate the DOM parser.\r
+     static const XMLCh gLS[] = { chLatin_L, chLatin_S, chNull };\r
+     DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(gLS);\r
++#if XERCES_VERSION_MAJOR < 3\r
+     parser = ((DOMImplementationLS*)impl)->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);\r
++#else\r
++    parser = ((DOMImplementationLS*)impl)->createLSParser(DOMImplementationLS::MODE_SYNCHRONOUS, 0);\r
++#endif\r
\r
+       ///////////////////////////////////////////////////////\r
+     //        Set fetuares on the builder\r
+       ///////////////////////////////////////////////////////\r
\r
++#if XERCES_VERSION_MAJOR < 3\r
++#define SetParameter(parser,n,v) parser->setFeature(n,v)\r
++#else\r
++#define SetParameter(parser,n,v) parser->getDomConfig()->setParameter(n,v)\r
++#endif\r
++      SetParameter(parser, XMLUni::fgDOMComments, false); // Discard Comment nodes in the document. \r
++      SetParameter(parser, XMLUni::fgDOMDatatypeNormalization, true); // Let the validation process do its datatype normalization that is defined in the used schema language.\r
++      SetParameter(parser, XMLUni::fgDOMNamespaces, true); //  Perform Namespace processing\r
++#if XERCES_VERSION_MAJOR < 3\r
++      SetParameter(parser, XMLUni::fgDOMValidation, true); // Report all validation errors.\r
++#else\r
++      SetParameter(parser, XMLUni::fgDOMValidate, true); // Report all validation errors.\r
++#endif\r
++      SetParameter(parser, XMLUni::fgXercesSchema, true); //  Enable the parser's schema support.\r
++      SetParameter(parser, XMLUni::fgXercesSchemaFullChecking, true); //  Enable full schema constraint checking, including checking which may be time-consuming or memory intensive. Currently, particle unique attribution constraint checking and particle derivation restriction checking are controlled by this option.\r
++      SetParameter(parser, XMLUni::fgXercesValidationErrorAsFatal, true); //  The parser will treat validation error as fatal and will exit\r
++      SetParameter(parser, XMLUni::fgXercesDOMHasPSVIInfo, true); // Enable storing of PSVI information in element and attribute nodes.\r
\r
+-      parser->setFeature(XMLUni::fgDOMComments, false); // Discard Comment nodes in the document. \r
+-    parser->setFeature(XMLUni::fgDOMDatatypeNormalization, true); // Let the validation process do its datatype normalization that is defined in the used schema language.  \r
+-      parser->setFeature(XMLUni::fgDOMNamespaces, true); //  Perform Namespace processing\r
+-      parser->setFeature(XMLUni::fgDOMValidation, true); // Report all validation errors.  \r
+-      parser->setFeature(XMLUni::fgXercesSchema, true); //  Enable the parser's schema support.\r
+-      parser->setFeature(XMLUni::fgXercesSchemaFullChecking, true); //  Enable full schema constraint checking, including checking which may be time-consuming or memory intensive. Currently, particle unique attribution constraint checking and particle derivation restriction checking are controlled by this option.  \r
+-      parser->setFeature(XMLUni::fgXercesValidationErrorAsFatal, true); //  The parser will treat validation error as fatal and will exit  \r
+-      parser->setFeature(XMLUni::fgXercesDOMHasPSVIInfo, true); // Enable storing of PSVI information in element and attribute nodes.\r
++#undef SetParameter\r
\r
+       ///////////////////////////////////////////////////////\r
+ //****************************************************************************************//\r
+@@ -133,7 +156,11 @@
+ //****************************************************************************************//\r
+       /* Look for XML schemas in local directory instead of Internet */\r
+               DataDirResolver resolver;\r
++#if XERCES_VERSION_MAJOR < 3\r
+               parser->setEntityResolver (&resolver);\r
++#else\r
++              parser->getDomConfig()->setParameter(XMLUni::fgXercesEntityResolver, &resolver);\r
++#endif\r
+ //****************************************************************************************//\r
+ //                    End of air-gap code                                                                                                                       //    \r
+ //****************************************************************************************//\r
+@@ -144,7 +171,11 @@
+       // Create a new DOMErrorHandler\r
+       // and set it to the builder\r
+       XmlProcessorErrorHandler *errHandler = new XmlProcessorErrorHandler();\r
++#if XERCES_VERSION_MAJOR < 3\r
+       parser->setErrorHandler(errHandler);\r
++#else\r
++      parser->getDomConfig()->setParameter(XMLUni::fgDOMErrorHandler, errHandler);\r
++#endif\r
\r
+     try  {\r
+               // reset document pool\r
+@@ -215,24 +246,26 @@
+               XMLCh tempStr[100];\r
+               XMLString::transcode("LS", tempStr, 99);\r
+               DOMImplementation *impl = DOMImplementationRegistry::getDOMImplementation(tempStr);\r
++#if XERCES_VERSION_MAJOR < 3\r
+               DOMWriter *theSerializer = ((DOMImplementationLS*)impl)->createDOMWriter();\r
++#else\r
++              DOMLSSerializer *theSerializer = ((DOMImplementationLS*)impl)->createLSSerializer();\r
++#endif\r
++\r
++#if XERCES_VERSION_MAJOR < 3\r
++#define SetParameter(serializer,n,v) if (serializer->canSetFeature(n,v)) serializer->setFeature(n,v)\r
++#else\r
++#define SetParameter(serializer,n,v) if (serializer->getDomConfig()->canSetParameter(n,v)) serializer->getDomConfig()->setParameter(n,v)\r
++#endif\r
\r
+               // set feature if the serializer supports the feature/mode\r
+-              if (theSerializer->canSetFeature(XMLUni::fgDOMWRTSplitCdataSections, true))\r
+-                      theSerializer->setFeature(XMLUni::fgDOMWRTSplitCdataSections, true);\r
+-\r
+-              if (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true))\r
+-                      theSerializer->setFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true);\r
+-\r
+-              if (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true))\r
+-                      theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);\r
+-\r
+-              if (theSerializer->canSetFeature(XMLUni::fgDOMWRTBOM, false))\r
+-                      theSerializer->setFeature(XMLUni::fgDOMWRTBOM, false);\r
+-\r
+-              //if (theSerializer->canSetFeature(XMLUni::fgDOMWRTDiscardDefaultContent, true))\r
+-              //      theSerializer->setFeature(XMLUni::fgDOMWRTBOM, true);\r
++              SetParameter(theSerializer, XMLUni::fgDOMWRTSplitCdataSections, true);\r
++              SetParameter(theSerializer, XMLUni::fgDOMWRTDiscardDefaultContent, true);\r
++              SetParameter(theSerializer, XMLUni::fgDOMWRTFormatPrettyPrint, true);\r
++              SetParameter(theSerializer, XMLUni::fgDOMWRTBOM, false);\r
++              //SetParameter(theSerializer, XMLUni::fgDOMWRTBOM, true);\r
\r
++#undef SetParameter\r
+               //\r
+               // Plug in a format target to receive the resultant\r
+               // XML stream from the serializer.\r
+@@ -249,7 +282,13 @@
+               //\r
+               // do the serialization through DOMWriter::writeNode();\r
+               //\r
++#if XERCES_VERSION_MAJOR < 3\r
+               theSerializer->writeNode(myFormTarget, *doc);\r
++#else\r
++              DOMLSOutput *output = ((DOMImplementationLS*)impl)->createLSOutput();\r
++              output->setByteStream(myFormTarget);\r
++              theSerializer->write(doc, output);\r
++#endif\r
\r
+               delete theSerializer;\r
+               delete myFormTarget;\r
+--- src/XmlProcessor.h.old     2010-10-22 12:06:05.000000000 +0200
++++ src/XmlProcessor.h 2010-10-22 12:06:20.000000000 +0200
+@@ -40,7 +40,7 @@
\r
+ //    required xerces includes\r
+ #include <xercesc/dom/DOMImplementationRegistry.hpp>\r
+-#include <xercesc/dom/DOMBuilder.hpp>\r
++//#include <xercesc/dom/DOMBuilder.hpp>\r
+ #include <xercesc/dom/DOMException.hpp>\r
+ #include <xercesc/dom/DOMErrorHandler.hpp>\r
+ #include <xercesc/dom/DOMError.hpp>\r
+--- src/XmlProcessor.h.old     2010-10-22 14:40:45.000000000 +0200
++++ src/XmlProcessor.h 2010-10-22 14:42:00.000000000 +0200
+@@ -50,18 +50,23 @@
+ // for dom Writer\r
+ #include <xercesc/dom/DOMImplementation.hpp>\r
+ #include <xercesc/dom/DOMImplementationLS.hpp>\r
+-#include <xercesc/dom/DOMWriter.hpp>\r
++//#include <xercesc/dom/DOMWriter.hpp>\r
+ #include <xercesc/framework/StdOutFormatTarget.hpp>\r
+ #include <xercesc/framework/LocalFileFormatTarget.hpp>\r
+ #include <xercesc/parsers/XercesDOMParser.hpp>\r
+ #include <xercesc/util/XMLUni.hpp>\r
\r
+ // for entity resolver\r
+-#include <xercesc/dom/DOMEntityResolver.hpp>\r
+-#include <xercesc/dom/DOMInputSource.hpp>\r
++//#include <xercesc/dom/DOMEntityResolver.hpp>\r
++//#include <xercesc/dom/DOMInputSource.hpp>\r
+ #include <xercesc/framework/LocalFileInputSource.hpp>\r
+ #include <xercesc/framework/Wrapper4InputSource.hpp>\r
\r
++#include <xercesc/dom/DOMImplementationRegistry.hpp>\r
++#include <xercesc/sax/EntityResolver.hpp>\r
++#include <xercesc/sax/InputSource.hpp>\r
++#include <xercesc/sax2/SAX2XMLReader.hpp>\r
++\r
\r
+ XERCES_CPP_NAMESPACE_USE\r
\r
+--- src/XmlProcessor.h.old     2010-10-22 14:43:06.000000000 +0200
++++ src/XmlProcessor.h 2010-10-22 14:44:16.000000000 +0200
+@@ -75,12 +75,14 @@
+       This class extends the default DOMEntityResolver and implments the resolve entity method \r
+       to support \r
+ */\r
+-class DataDirResolver : public DOMEntityResolver {\r
++class DataDirResolver : public EntityResolver {\r
+ public:\r
+       /**\r
+      *     \r
+       */\r
+-      DOMInputSource *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI);\r
++//    DOMInputSource *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI);\r
++      InputSource *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId);\r
++      DOMLSInput *resolveEntity (const XMLCh *const publicId, const XMLCh *const systemId, const XMLCh *const baseURI);\r
+ };\r
\r
+ /**\r
+@@ -120,7 +122,7 @@
\r
+       static XmlProcessor* instance;\r
+       \r
+-      DOMBuilder *parser;\r
++      DOMLSParser *parser;\r
+ };\r
\r
+ /** \r
+--- src/probes/independent/XmlFileContentProbe.cpp.old 2010-10-22 14:49:22.000000000 +0200
++++ src/probes/independent/XmlFileContentProbe.cpp     2010-10-22 14:51:39.000000000 +0200
+@@ -419,12 +419,24 @@
+     return new DummyEntityResolver::DoNothingBinInputStream();\r
+ }\r
\r
++#if XERCES_VERSION_MAJOR < 3\r
+ unsigned int DummyEntityResolver::DoNothingBinInputStream::curPos() const\r
++#else\r
++const XMLCh* DummyEntityResolver::DoNothingBinInputStream::getContentType() const\r
++{\r
++    return NULL;\r
++}\r
++XMLFilePos DummyEntityResolver::DoNothingBinInputStream::curPos() const\r
++#endif\r
+ {\r
+     return 0;\r
+ }\r
\r
++#if XERCES_VERSION_MAJOR < 3\r
+ unsigned int DummyEntityResolver::DoNothingBinInputStream::readBytes(XMLByte *const /*toFill*/, const unsigned int /*maxToRead*/)\r
++#else\r
++XMLSize_t DummyEntityResolver::DoNothingBinInputStream::readBytes(XMLByte *const toFill, XMLSize_t maxToRead)\r
++#endif\r
+ {\r
+     return 0;\r
+ }\r
+--- src/probes/independent/XmlFileContentProbe.h.old   2010-10-22 14:55:47.000000000 +0200
++++ src/probes/independent/XmlFileContentProbe.h       2010-10-22 14:57:00.000000000 +0200
+@@ -134,8 +134,14 @@
+     class DoNothingBinInputStream : public BinInputStream\r
+     {\r
+     public:\r
++#if XERCES_VERSION_MAJOR < 3\r
+         virtual unsigned int curPos() const;\r
+         virtual unsigned int readBytes(XMLByte *const toFill, const unsigned int maxToRead);\r
++#else\r
++      virtual XMLFilePos curPos() const;\r
++      virtual const XMLCh* getContentType() const;\r
++      virtual XMLSize_t readBytes(XMLByte *const toFill, XMLSize_t maxToRead);\r
++#endif\r
+     };\r
+ };\r
\r
+--- src/XmlCommon.cpp.old
++++ src/XmlCommon.cpp
+@@ -546,7 +546,11 @@ void XmlCommon::AddSchemaLocation(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *do
+ string XmlCommon::GetNamespace(DOMElement *element) {\r
\r
+       string xmlns = "";\r
++#if XERCES_VERSION_MAJOR < 3\r
+       xmlns = XmlCommon::ToString(element->getTypeInfo()->getNamespace());\r
++#else\r
++      xmlns = XmlCommon::ToString(element->getSchemaTypeInfo()->getTypeNamespace());\r
++#endif\r
+       if (xmlns.compare("") == 0) {\r
+               xmlns = "";\r
+       }\r
diff --git a/app-forensics/ovaldi/files/rpmdb.patch b/app-forensics/ovaldi/files/rpmdb.patch
new file mode 100644 (file)
index 0000000..0d6e626
--- /dev/null
@@ -0,0 +1,58 @@
+--- src/probes/linux/rpmdb.h.old       2010-10-22 15:16:49.000000000 +0200
++++ src/probes/linux/rpmdb.h   2010-10-22 15:22:09.000000000 +0200
+@@ -8,8 +8,8 @@
+  */
+ #include <assert.h>
+-#include "rpmlib.h"
+-#include "rpmsw.h"
++/*#include <rpmlib.h>
++#include <rpmsw.h>*/
+ #include "db.h"
+ /*@-exportlocal@*/
+@@ -508,7 +508,7 @@
+  * @param opx         per-rpmdb accumulator index (aka rpmtsOpX)
+  * @return            per-rpmdb accumulator pointer
+  */
+-void * dbiStatsAccumulator(dbiIndex dbi, int opx)
++rpmop_s * dbiStatsAccumulator(dbiIndex dbi, int opx)
+         /*@*/;
+ #if !defined(SWIG)
+@@ -576,7 +576,7 @@
+       /*@globals fileSystem, internalState @*/
+       /*@modifies dbi, *dbcursor, fileSystem, internalState @*/
+ {
+-    void * sw = dbiStatsAccumulator(dbi, 16); /* RPMTS_OP_DBDEL */
++    rpmop_s *sw = dbiStatsAccumulator(dbi, 16);       /* RPMTS_OP_DBDEL */
+     int rc;
+     assert(key->data != NULL && key->size > 0);
+     (void) rpmswEnter(sw, 0);
+@@ -600,7 +600,7 @@
+       /*@globals fileSystem, internalState @*/
+       /*@modifies dbi, *dbcursor, *key, *data, fileSystem, internalState @*/
+ {
+-    void * sw = dbiStatsAccumulator(dbi, 14); /* RPMTS_OP_DBGET */
++    rpmop_s * sw = dbiStatsAccumulator(dbi, 14);      /* RPMTS_OP_DBGET */
+     int rc;
+     assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
+     (void) rpmswEnter(sw, 0);
+@@ -625,7 +625,7 @@
+       /*@globals fileSystem, internalState @*/
+       /*@modifies dbi, *dbcursor, *key, *pkey, *data, fileSystem, internalState @*/
+ {
+-    void * sw = dbiStatsAccumulator(dbi, 14); /* RPMTS_OP_DBGET */
++    rpmop_s * sw = dbiStatsAccumulator(dbi, 14);      /* RPMTS_OP_DBGET */
+     int rc;
+     assert((flags == DB_NEXT) || (key->data != NULL && key->size > 0));
+     (void) rpmswEnter(sw, 0);
+@@ -649,7 +649,7 @@
+       /*@globals fileSystem, internalState @*/
+       /*@modifies dbi, *dbcursor, *key, fileSystem, internalState @*/
+ {
+-    void * sw = dbiStatsAccumulator(dbi, 15); /* RPMTS_OP_DBPUT */
++    rpmop_s * sw = dbiStatsAccumulator(dbi, 15);      /* RPMTS_OP_DBPUT */
+     int rc;
+     assert(key->data != NULL && key->size > 0 && data->data != NULL && data->size > 0);
+     (void) rpmswEnter(sw, 0);
diff --git a/app-forensics/ovaldi/files/use_local_rpmdb.patch b/app-forensics/ovaldi/files/use_local_rpmdb.patch
new file mode 100644 (file)
index 0000000..036d35e
--- /dev/null
@@ -0,0 +1,11 @@
+--- src/probes/linux/RPMInfoProbe.h.old        2010-10-22 15:12:50.000000000 +0200
++++ src/probes/linux/RPMInfoProbe.h    2010-10-22 15:13:02.000000000 +0200
+@@ -36,7 +36,7 @@
+ #include <rpm/rpmlib.h>\r
+ #include <rpm/rpmio.h>\r
+ #include <rpm/rpmts.h>\r
+-#include <rpm/rpmdb.h>\r
++#include "rpmdb.h"\r
+ #include <rpm/header.h>\r
+ #include <rpm/rpmcli.h> // added for rpm query function\r
+ #include <rpm/rpmds.h> // added for rpm query function\r
diff --git a/app-forensics/ovaldi/metadata.xml b/app-forensics/ovaldi/metadata.xml
new file mode 100644 (file)
index 0000000..b8ddb18
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>no-herd</herd>
+<maintainer><email>maintainer-wanted@gentoo.org</email></maintainer>
+<use>
+<flag name="rpm">Enable the RPM probes</flag>
+</use>
+</pkgmetadata>
diff --git a/app-forensics/ovaldi/ovaldi-5.8.2.ebuild b/app-forensics/ovaldi/ovaldi-5.8.2.ebuild
new file mode 100644 (file)
index 0000000..420d0a8
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=3
+
+inherit eutils
+
+DESCRIPTION="Free implementation of OVAL"
+HOMEPAGE="http://oval.mitre.org/language/interpreter.html"
+SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="rpm"
+
+DEPEND="rpm? ( app-arch/rpm )
+       dev-libs/libpcre
+       dev-libs/xalan-c
+       dev-libs/xerces-c"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${P}-src"
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-xerces3.patch
+       epatch "${FILESDIR}"/${P}-strnicmp.patch
+
+       # rpm probes support is build dependant only on the presence of the rpm binary
+       if use rpm ; then
+               #Same problems as bug 274679, so i do a local copy of the header and patch it
+               cp /usr/include/rpm/rpmdb.h src/probes/linux/ || die
+               epatch "${FILESDIR}"/use_local_rpmdb.patch
+               epatch "${FILESDIR}"/rpmdb.patch
+       else
+               einfo "Disable rpm probes"
+               sed -i 's/^PACKAGE_RPM/#PACKAGE_RPM/g' project/linux/Makefile || die
+       fi
+       # same thing for dpkg, but package dpkg is not sufficient, needs app-arch/apt-pkg that is not on tree
+       einfo "Disable dpkg probes"
+       sed -i 's/^PACKAGE_DPKG/#PACKAGE_DPKG/g' project/linux/Makefile || die
+}
+
+src_compile () {
+       emake -C project/linux || die
+}
+
+src_install () {
+       # no make install in Makefile
+       dosbin project/linux/Release/ovaldi project/linux/ovaldi.sh || die
+       dodir /var/log/${PN} || die
+       insinto /usr/share/${PN}
+       doins xml/* || die
+       dodoc docs/{README.txt,version.txt} || die
+       doman docs/ovaldi.1 || die
+}