aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysutils/bulk_extractor/Makefile6
-rw-r--r--sysutils/bulk_extractor/files/patch-plugins_dfxml_src_dfxml__configure.m48
-rw-r--r--sysutils/bulk_extractor/files/patch-plugins_dfxml_src_hash__t.h78
-rw-r--r--sysutils/bulk_extractor/files/patch-src_dfxml_src_dfxml__configure.m48
-rw-r--r--sysutils/bulk_extractor/files/patch-src_dfxml_src_hash__t.h78
5 files changed, 176 insertions, 2 deletions
diff --git a/sysutils/bulk_extractor/Makefile b/sysutils/bulk_extractor/Makefile
index 65700f1d1efe..3cb6a6599613 100644
--- a/sysutils/bulk_extractor/Makefile
+++ b/sysutils/bulk_extractor/Makefile
@@ -3,7 +3,7 @@
PORTNAME= bulk_extractor
PORTVERSION= 1.5.5
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= sysutils
MASTER_SITES= http://digitalcorpora.org/downloads/bulk_extractor/
@@ -13,8 +13,10 @@ COMMENT= Program that scans a disk image and extracts useful information
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
-USES= sqlite ssl
+USES= autoreconf iconv:wchar_t sqlite ssl
+USE_GNOME= libxml2
LIB_DEPENDS= libafflib.so:sysutils/afflib \
+ libboost_system.so:devel/boost-libs \
libewf.so:devel/libewf \
libexiv2.so:graphics/exiv2 \
libexpat.so:textproc/expat2
diff --git a/sysutils/bulk_extractor/files/patch-plugins_dfxml_src_dfxml__configure.m4 b/sysutils/bulk_extractor/files/patch-plugins_dfxml_src_dfxml__configure.m4
new file mode 100644
index 000000000000..83809b4abe68
--- /dev/null
+++ b/sysutils/bulk_extractor/files/patch-plugins_dfxml_src_dfxml__configure.m4
@@ -0,0 +1,8 @@
+--- plugins/dfxml/src/dfxml_configure.m4.orig 2014-09-16 18:34:02 UTC
++++ plugins/dfxml/src/dfxml_configure.m4
+@@ -59,4 +59,5 @@ AC_CHECK_LIB([crypto],[EVP_get_digestbyn
+ AC_CHECK_LIB([ssl],[SSL_library_init])
+ AC_CHECK_FUNCS([EVP_get_digestbyname],,
+ AC_MSG_ERROR([SSL/OpenSSL support required]))
++AC_CHECK_FUNCS([EVP_MD_CTX_new EVP_MD_CTX_free])
+
diff --git a/sysutils/bulk_extractor/files/patch-plugins_dfxml_src_hash__t.h b/sysutils/bulk_extractor/files/patch-plugins_dfxml_src_hash__t.h
new file mode 100644
index 000000000000..b303dbc6f1de
--- /dev/null
+++ b/sysutils/bulk_extractor/files/patch-plugins_dfxml_src_hash__t.h
@@ -0,0 +1,78 @@
+--- plugins/dfxml/src/hash_t.h.orig 2014-09-16 18:34:02 UTC
++++ plugins/dfxml/src/hash_t.h
+@@ -189,7 +189,8 @@ inline std::string digest_name<sha512_t>
+
+ template<const EVP_MD *md(),size_t SIZE>
+ class hash_generator__ { /* generates the hash */
+- EVP_MD_CTX mdctx; /* the context for computing the value */
++ private:
++ EVP_MD_CTX* mdctx; /* the context for computing the value */
+ bool initialized; /* has the context been initialized? */
+ bool finalized;
+ /* Static function to determine if something is zero */
+@@ -199,24 +200,36 @@ class hash_generator__ { /* generates
+ }
+ return true;
+ }
++ /* Not allowed to copy; these are prototyped but not defined, so any attempt to use them will fail, but we won't get the -Weffc++ warnings */
++ hash_generator__ & operator=(const hash_generator__ &);
++ hash_generator__(const hash_generator__ &);
+ public:
+ int64_t hashed_bytes;
+ /* This function takes advantage of the fact that different hash functions produce residues with different sizes */
+- hash_generator__():mdctx(),initialized(false),finalized(false),hashed_bytes(0){ }
++ hash_generator__():mdctx(NULL),initialized(false),finalized(false),hashed_bytes(0){ }
+ ~hash_generator__(){
+ release();
+ }
+ void release(){ /* free allocated memory */
+ if(initialized){
+- EVP_MD_CTX_cleanup(&mdctx);
++#ifdef HAVE_EVP_MD_CTX_FREE
++ EVP_MD_CTX_free(mdctx);
++#else
++ EVP_MD_CTX_destroy(mdctx);
++#endif
+ initialized = false;
+ hashed_bytes = 0;
+ }
+ }
+ void init(){
+ if(initialized==false){
+- EVP_MD_CTX_init(&mdctx);
+- EVP_DigestInit_ex(&mdctx, md(), NULL);
++#ifdef HAVE_EVP_MD_CTX_NEW
++ mdctx = EVP_MD_CTX_new();
++#else
++ mdctx = EVP_MD_CTX_create();
++#endif
++ if (!mdctx) throw std::bad_alloc();
++ EVP_DigestInit_ex(mdctx, md(), NULL);
+ initialized = true;
+ finalized = false;
+ hashed_bytes = 0;
+@@ -228,21 +241,21 @@ public:
+ std::cerr << "hashgen_t::update called after finalized\n";
+ exit(1);
+ }
+- EVP_DigestUpdate(&mdctx,buf,bufsize);
++ EVP_DigestUpdate(mdctx,buf,bufsize);
+ hashed_bytes += bufsize;
+ }
+ hash__<md,SIZE> final() {
+ if(finalized){
+ std::cerr << "currently friendly_geneator does not cache the final value\n";
+ assert(0);
+- /* code below will never be executed after assert(0) */
++ exit(1); // in case compiled with assertions disabled
+ }
+ if(!initialized){
+ init(); /* do it now! */
+ }
+ hash__<md,SIZE> val;
+ unsigned int len = sizeof(val.digest);
+- EVP_DigestFinal(&mdctx,val.digest,&len);
++ EVP_DigestFinal(mdctx,val.digest,&len);
+ finalized = true;
+ return val;
+ }
diff --git a/sysutils/bulk_extractor/files/patch-src_dfxml_src_dfxml__configure.m4 b/sysutils/bulk_extractor/files/patch-src_dfxml_src_dfxml__configure.m4
new file mode 100644
index 000000000000..826ccce1a9ba
--- /dev/null
+++ b/sysutils/bulk_extractor/files/patch-src_dfxml_src_dfxml__configure.m4
@@ -0,0 +1,8 @@
+--- src/dfxml/src/dfxml_configure.m4.orig 2018-10-10 21:44:10 UTC
++++ src/dfxml/src/dfxml_configure.m4
+@@ -59,4 +59,5 @@ AC_CHECK_LIB([crypto],[EVP_get_digestbyn
+ AC_CHECK_LIB([ssl],[SSL_library_init])
+ AC_CHECK_FUNCS([EVP_get_digestbyname],,
+ AC_MSG_ERROR([SSL/OpenSSL support required]))
++AC_CHECK_FUNCS([EVP_MD_CTX_new EVP_MD_CTX_free])
+
diff --git a/sysutils/bulk_extractor/files/patch-src_dfxml_src_hash__t.h b/sysutils/bulk_extractor/files/patch-src_dfxml_src_hash__t.h
new file mode 100644
index 000000000000..35878e920b3b
--- /dev/null
+++ b/sysutils/bulk_extractor/files/patch-src_dfxml_src_hash__t.h
@@ -0,0 +1,78 @@
+--- src/dfxml/src/hash_t.h.orig 2014-09-16 18:34:02 UTC
++++ src/dfxml/src/hash_t.h
+@@ -189,7 +189,8 @@ inline std::string digest_name<sha512_t>
+
+ template<const EVP_MD *md(),size_t SIZE>
+ class hash_generator__ { /* generates the hash */
+- EVP_MD_CTX mdctx; /* the context for computing the value */
++ private:
++ EVP_MD_CTX* mdctx; /* the context for computing the value */
+ bool initialized; /* has the context been initialized? */
+ bool finalized;
+ /* Static function to determine if something is zero */
+@@ -199,24 +200,36 @@ class hash_generator__ { /* generates
+ }
+ return true;
+ }
++ /* Not allowed to copy; these are prototyped but not defined, so any attempt to use them will fail, but we won't get the -Weffc++ warnings */
++ hash_generator__ & operator=(const hash_generator__ &);
++ hash_generator__(const hash_generator__ &);
+ public:
+ int64_t hashed_bytes;
+ /* This function takes advantage of the fact that different hash functions produce residues with different sizes */
+- hash_generator__():mdctx(),initialized(false),finalized(false),hashed_bytes(0){ }
++ hash_generator__():mdctx(NULL),initialized(false),finalized(false),hashed_bytes(0){ }
+ ~hash_generator__(){
+ release();
+ }
+ void release(){ /* free allocated memory */
+ if(initialized){
+- EVP_MD_CTX_cleanup(&mdctx);
++#ifdef HAVE_EVP_MD_CTX_FREE
++ EVP_MD_CTX_free(mdctx);
++#else
++ EVP_MD_CTX_destroy(mdctx);
++#endif
+ initialized = false;
+ hashed_bytes = 0;
+ }
+ }
+ void init(){
+ if(initialized==false){
+- EVP_MD_CTX_init(&mdctx);
+- EVP_DigestInit_ex(&mdctx, md(), NULL);
++#ifdef HAVE_EVP_MD_CTX_NEW
++ mdctx = EVP_MD_CTX_new();
++#else
++ mdctx = EVP_MD_CTX_create();
++#endif
++ if (!mdctx) throw std::bad_alloc();
++ EVP_DigestInit_ex(mdctx, md(), NULL);
+ initialized = true;
+ finalized = false;
+ hashed_bytes = 0;
+@@ -228,21 +241,21 @@ public:
+ std::cerr << "hashgen_t::update called after finalized\n";
+ exit(1);
+ }
+- EVP_DigestUpdate(&mdctx,buf,bufsize);
++ EVP_DigestUpdate(mdctx,buf,bufsize);
+ hashed_bytes += bufsize;
+ }
+ hash__<md,SIZE> final() {
+ if(finalized){
+ std::cerr << "currently friendly_geneator does not cache the final value\n";
+ assert(0);
+- /* code below will never be executed after assert(0) */
++ exit(1); // in case compiled with assertions disabled
+ }
+ if(!initialized){
+ init(); /* do it now! */
+ }
+ hash__<md,SIZE> val;
+ unsigned int len = sizeof(val.digest);
+- EVP_DigestFinal(&mdctx,val.digest,&len);
++ EVP_DigestFinal(mdctx,val.digest,&len);
+ finalized = true;
+ return val;
+ }