- update to 1.4.0

- patch to unbreak with clang and libc++
- LICENSE is GPLv3 due to a file polluting
- remove article from COMMENT
- convert to STAGEDIR
- new LIB_DEPENDS syntax
- option to build BEViewer (java frontend)

PR:		ports/183101
Approved by:	maintainer timeout (2 weeks)
This commit is contained in:
Antoine Brodin 2013-11-02 20:17:28 +00:00
parent d78b21ad4b
commit c906e171d9
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=332540
13 changed files with 248 additions and 56 deletions

View file

@ -2,31 +2,46 @@
# $FreeBSD$
PORTNAME= bulk_extractor
PORTVERSION= 1.2.2
PORTREVISION= 1
PORTVERSION= 1.4.0
CATEGORIES= sysutils
MASTER_SITES= http://cloud.github.com/downloads/simsong/bulk_extractor/
MASTER_SITES= http://www.digitalcorpora.org/downloads/bulk_extractor/
MAINTAINER= nobutaka@FreeBSD.org
COMMENT= A program that scans a disk image and extracts useful information
COMMENT= Program that scans a disk image and extracts useful information
LICENSE= PD
LICENSE_NAME= public domain
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
LIB_DEPENDS= afflib:${PORTSDIR}/sysutils/afflib \
ewf:${PORTSDIR}/devel/libewf \
exiv2:${PORTSDIR}/graphics/exiv2 \
expat:${PORTSDIR}/textproc/expat2
LIB_DEPENDS= libafflib.so:${PORTSDIR}/sysutils/afflib \
libewf.so:${PORTSDIR}/devel/libewf \
libexiv2.so:${PORTSDIR}/graphics/exiv2 \
libexpat.so:${PORTSDIR}/textproc/expat2
USE_AUTOTOOLS= autoconf
USE_OPENSSL= yes
USE_PYTHON= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= --enable-exiv2=true
CPPFLAGS+= -I${LOCALBASE}/include
MAN1= bulk_extractor.1
PLIST_FILES= bin/bulk_extractor bin/plugin_test man/man1/bulk_extractor.1.gz
PLIST_FILES= bin/bulk_extractor
OPTIONS_DEFINE= BEVIEWER
BEVIEWER_DESC= Build BEViewer (requires Java)
OPTIONS_DEFAULT=BEVIEWER
BEVIEWER_CONFIGURE_OFF= --disable-BEViewer
BEVIEWER_USE= JAVA=yes
BEVIEWER_PLIST_FILES= bin/BEViewer bin/BEViewer.jar
.include <bsd.port.options.mk>
.if ${ARCH} == i386 && ! ${CFLAGS:M-march=*}
# Needed for __sync_add_and_fetch_8
CFLAGS+= -march=i586
.endif
.if ${OSVERSION} < 1000033
BUILD_DEPENDS= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex
CONFIGURE_ENV= LEX=${LOCALBASE}/bin/flex
.endif
NO_STAGE= yes
.include <bsd.port.mk>

View file

@ -1,2 +1,2 @@
SHA256 (bulk_extractor-1.2.2.tar.gz) = d53cd3586d7a980fbf8e37eeb7b332a6a1f70f126bd4b2c831be6377b33412cb
SIZE (bulk_extractor-1.2.2.tar.gz) = 2348436
SHA256 (bulk_extractor-1.4.0.tar.gz) = 664df29fc0276f8d1b9ff259db13229ea01724915d6ad69493facdc2b4b44dd9
SIZE (bulk_extractor-1.4.0.tar.gz) = 4346859

View file

@ -1,17 +0,0 @@
--- configure.ac.orig 2012-04-30 02:24:19.000000000 +0900
+++ configure.ac 2012-04-30 02:24:27.000000000 +0900
@@ -371,12 +371,14 @@
AC_CHECK_LIB([expat],[XML_ParserCreate])
fi
+AC_LANG_PUSH(C++)
if test "${exiv2}" != "no" ; then
dnl check to see if we have the relevant headers
AC_CHECK_HEADER([exiv2/image.hpp])
AC_CHECK_HEADER([exiv2/exif.hpp])
AC_CHECK_HEADER([exiv2/error.hpp])
fi
+AC_LANG_POP()
AC_TRY_COMPILE([#pragma GCC diagnostic ignored "-Wshadow"],[],
[AC_DEFINE(GNUC_HAS_DIAGNOSTIC_PRAGMA,1,[define 1 if GCC supports #pragma GCC diagnostic])]

View file

@ -0,0 +1,48 @@
--- ./src/be13_api/plugin.cpp.orig 2013-08-18 16:35:29.000000000 +0000
+++ ./src/be13_api/plugin.cpp 2013-10-19 13:12:21.000000000 +0000
@@ -9,7 +9,16 @@
#include <sys/stat.h>
#include <dirent.h>
#include <algorithm>
+#ifdef __clang__
+#if __has_include(<unordered_set>)
+#define HAVE_CXX11_UNORDERED_SET 1
+#endif
+#endif
+#ifdef HAVE_CXX11_UNORDERED_SET
+#include <unordered_set>
+#else
#include <tr1/unordered_set>
+#endif
#ifdef HAVE_ERR_H
#include <err.h>
#endif
@@ -23,20 +32,28 @@
#include "../dfxml/src/hash_t.h"
namespace std {
+#ifndef HAVE_CXX11_UNORDERED_SET
namespace tr1 {
+#endif
template<>
struct hash<md5_t> {
size_t operator()(const md5_t &key) const {
return *(size_t *)(key.final());
}
};
+#ifndef HAVE_CXX11_UNORDERED_SET
}
+#endif
}
class atomic_hash_set
{
cppmutex M;
+#ifdef HAVE_CXX11_UNORDERED_SET
+ std::unordered_set<md5_t>myset;
+#else
std::tr1::unordered_set<md5_t>myset;
+#endif
public:
atomic_hash_set():M(),myset(){}
bool in(const md5_t &s){

View file

@ -0,0 +1,11 @@
--- ./src/be13_api/sbuf.h.orig 2013-08-19 18:54:59.000000000 +0000
+++ ./src/be13_api/sbuf.h 2013-10-19 13:09:32.000000000 +0000
@@ -61,7 +61,7 @@
* in a 64-bit number.
*/
-inline int stoi(std::string str){
+inline int be13stoi(std::string str){
std::istringstream ss(str);
int val(0);
ss >> val;

View file

@ -0,0 +1,15 @@
--- ./src/bulk_extractor.cpp.orig 2013-09-04 17:58:01.000000000 +0000
+++ ./src/bulk_extractor.cpp 2013-10-19 13:09:32.000000000 +0000
@@ -1042,9 +1042,9 @@
feature_recorder *fr = fs.get_name(params.at(1));
const std::string &cmd = params.at(2);
if(fr){
- if(cmd=="window") fr->set_context_window(stoi(it->second));
- if(cmd=="window_before") fr->set_context_window_before(stoi(it->second));
- if(cmd=="window_after") fr->set_context_window_after(stoi(it->second));
+ if(cmd=="window") fr->set_context_window(be13stoi(it->second));
+ if(cmd=="window_before") fr->set_context_window_before(be13stoi(it->second));
+ if(cmd=="window_after") fr->set_context_window_after(be13stoi(it->second));
}
}
/* See if there is a scanner? */

View file

@ -0,0 +1,11 @@
--- ./src/scan_bulk.cpp.orig 2013-08-18 16:39:31.000000000 +0000
+++ ./src/scan_bulk.cpp 2013-10-19 13:09:32.000000000 +0000
@@ -145,7 +145,7 @@
exit(1);
}
- uint32_t len = stoi(vals[1]);
+ uint32_t len = be13stoi(vals[1]);
// If no data for this sector, simply append this type
// and then continue

View file

@ -0,0 +1,24 @@
--- ./src/scan_exif.cpp.orig 2013-08-18 16:39:17.000000000 +0000
+++ ./src/scan_exif.cpp 2013-10-19 13:09:32.000000000 +0000
@@ -213,7 +213,7 @@
* Used for helping to convert TIFF's GPS format to decimal lat/long
*/
-static double stod(string s)
+static double be13stod(string s)
{
double d=0;
sscanf(s.c_str(),"%lf",&d);
@@ -223,9 +223,9 @@
static double rational(string s)
{
std::vector<std::string> parts = split(s,'/');
- if(parts.size()!=2) return stod(s); // no slash, so return without
- double top = stod(parts[0]);
- double bot = stod(parts[1]);
+ if(parts.size()!=2) return be13stod(s); // no slash, so return without
+ double top = be13stod(parts[0]);
+ double bot = be13stod(parts[1]);
return bot>0 ? top / bot : top;
}

View file

@ -0,0 +1,24 @@
--- ./src/scan_exiv2.cpp.orig 2013-08-18 16:39:17.000000000 +0000
+++ ./src/scan_exiv2.cpp 2013-10-19 13:09:32.000000000 +0000
@@ -68,7 +68,7 @@
* Used for helping to convert libexiv2's GPS format to decimal lat/long
*/
-static double stod(string s)
+static double be13stod(string s)
{
double d=0;
sscanf(s.c_str(),"%lf",&d);
@@ -78,9 +78,9 @@
static double rational(string s)
{
std::vector<std::string> parts = split(s,'/');
- if(parts.size()!=2) return stod(s); // no slash, so return without
- double top = stod(parts[0]);
- double bot = stod(parts[1]);
+ if(parts.size()!=2) return be13stod(s); // no slash, so return without
+ double top = be13stod(parts[0]);
+ double bot = be13stod(parts[1]);
return bot>0 ? top / bot : top;
}

View file

@ -0,0 +1,31 @@
--- ./src/scan_net.cpp.orig 2013-08-18 16:39:17.000000000 +0000
+++ ./src/scan_net.cpp 2013-10-19 13:09:32.000000000 +0000
@@ -27,7 +27,16 @@
#include "be13_api/utils.h"
#include <set>
+#ifdef __clang__
+#if __has_include(<unordered_set>)
+#define HAVE_CXX11_UNORDERED_SET 1
+#endif
+#endif
+#ifdef HAVE_CXX11_UNORDERED_SET
+#include <unordered_set>
+#else
#include <tr1/unordered_set>
+#endif
#include <sys/types.h>
#include <stdlib.h>
@@ -603,7 +612,11 @@
return *this; // no-op
}
public:
+#ifdef HAVE_CXX11_UNORDERED_SET
+ typedef std::unordered_set<const void *> packetset;
+#else
typedef std::tr1::unordered_set<const void *> packetset;
+#endif
feature_recorder_set &fs;
packetset ps;
feature_recorder *ip_recorder;

View file

@ -0,0 +1,11 @@
--- ./src/stand.cpp.orig 2012-12-12 15:36:14.000000000 +0000
+++ ./src/stand.cpp 2013-10-19 13:09:32.000000000 +0000
@@ -91,7 +91,7 @@
if(argc!=1) usage();
- opt_scan_bulk_block_size = stoi(be_config["bulk_block_size"]);
+ opt_scan_bulk_block_size = be13stoi(be_config["bulk_block_size"]);
feature_file_names_t feature_file_names;
enable_feature_recorders(feature_file_names);

View file

@ -0,0 +1,40 @@
--- ./src/word_and_context_list.h.orig 2012-12-12 15:36:14.000000000 +0000
+++ ./src/word_and_context_list.h 2013-10-19 13:09:32.000000000 +0000
@@ -29,8 +29,18 @@
* Typically this is used for stop lists and alert lists.
*/
+#ifdef __clang__
+#if __has_include(<unordered_set>)
+#define HAVE_CXX11_UNORDERED_SET 1
+#endif
+#endif
+#ifdef HAVE_CXX11_UNORDERED_SET
+#include <unordered_map>
+#include <unordered_set>
+#else
#include <tr1/unordered_map>
#include <tr1/unordered_set>
+#endif
class context {
public:
@@ -75,10 +85,18 @@
*/
class word_and_context_list {
private:
+#ifdef HAVE_CXX11_UNORDERED_SET
+ typedef unordered_multimap<string,context> stopmap_t;
+#else
typedef tr1::unordered_multimap<string,context> stopmap_t;
+#endif
stopmap_t fcmap; // maps features to contexts; for finding them
+#ifdef HAVE_CXX11_UNORDERED_SET
+ typedef unordered_set< string > stopset_t;
+#else
typedef tr1::unordered_set< string > stopset_t;
+#endif
stopset_t context_set; // presence of a pair in fcmap
beregex_vector patterns;

View file

@ -1,21 +0,0 @@
--- src/scan_net.cpp.orig 2012-04-30 02:52:53.000000000 +0900
+++ src/scan_net.cpp 2012-04-30 02:53:04.000000000 +0900
@@ -28,6 +28,7 @@
#include <tr1/unordered_set>
#include <sys/types.h>
+#include <sys/socket.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
@@ -233,8 +234,8 @@
u_int8_t ip_ttl; /* time to live */
u_int8_t ip_p; /* protocol */
u_short ip_sum; /* checksum */
- uint32_t ip_src;
- uint32_t ip_dst; /* source and dest address */
+ struct in_addr ip_src;
+ struct in_addr ip_dst; /* source and dest address */
};
#endif