aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-forensics/vine/ChangeLog11
-rw-r--r--app-forensics/vine/Manifest1
-rw-r--r--app-forensics/vine/files/vine-1.0-binutils.patch16
-rw-r--r--app-forensics/vine/files/vine-1.0-gcc46.patch37
-rw-r--r--app-forensics/vine/files/vine-1.0-install.patch89
-rw-r--r--app-forensics/vine/files/vine-1.0-ocamlgraph182.patch68
-rw-r--r--app-forensics/vine/metadata.xml8
-rw-r--r--app-forensics/vine/vine-1.0.ebuild40
8 files changed, 270 insertions, 0 deletions
diff --git a/app-forensics/vine/ChangeLog b/app-forensics/vine/ChangeLog
new file mode 100644
index 000000000..1cb3961e3
--- /dev/null
+++ b/app-forensics/vine/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for app-forensics/vine
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*vine-1.0 (16 Mar 2013)
+
+ 16 Mar 2013; Christoph Junghans <ottxor@gentoo.org>
+ +files/vine-1.0-binutils.patch, +files/vine-1.0-gcc46.patch,
+ +files/vine-1.0-install.patch, +files/vine-1.0-ocamlgraph182.patch,
+ +metadata.xml, +vine-1.0.ebuild:
+ initial commit
diff --git a/app-forensics/vine/Manifest b/app-forensics/vine/Manifest
new file mode 100644
index 000000000..91dd64f8c
--- /dev/null
+++ b/app-forensics/vine/Manifest
@@ -0,0 +1 @@
+DIST vine-1.0.tar.gz 3401264 SHA256 d31b13ef6d5bcdd8f4183f94c561971e3770e4682b088b3b48ae32b34ab14329 SHA512 9e204fe1954331bc2cfc5f1c648f828e9441adc8ba2e7cdec5f09f805ecc89c97a7995d9bf8a78574b9b37e53cac7b433b3f9b22d7148add2931fbbb8821cf70 WHIRLPOOL e1926ec7a09c91cff3b3c9daac2fd15811b1e842c5d4cf1daab6e1e3304ce9801efe6547650b5707594c472b84e7909ffa66f0dec4a6bdedbe8af3a4495adff8
diff --git a/app-forensics/vine/files/vine-1.0-binutils.patch b/app-forensics/vine/files/vine-1.0-binutils.patch
new file mode 100644
index 000000000..b9d55daa0
--- /dev/null
+++ b/app-forensics/vine/files/vine-1.0-binutils.patch
@@ -0,0 +1,16 @@
+https://groups.google.com/d/msg/bitblaze-users/Zpg7Ddzngns/o7LNnR0qqxwJ
+
+Index: libasmir/src/disasm/asm_program.cpp
+===================================================================
+--- libasmir/src/disasm/asm_program.cpp (older version)
++++ libasmir/src/disasm/asm_program.cpp (fixed version)
+@@ -7,6 +7,11 @@
+ #include "debug.h"
+ #include "asm_program.h"
+ #include "objdump.h"
++/* Some versions of glibc and the binutils libiberty library give
++ conflicting prototypes for basename(). We don't use that function
++ anyway, but to work around the problem, make libliberty.h think
++ that it has already been declared. */
++#define HAVE_DECL_BASENAME 1
+ #include "libiberty.h"
diff --git a/app-forensics/vine/files/vine-1.0-gcc46.patch b/app-forensics/vine/files/vine-1.0-gcc46.patch
new file mode 100644
index 000000000..89a52290b
--- /dev/null
+++ b/app-forensics/vine/files/vine-1.0-gcc46.patch
@@ -0,0 +1,37 @@
+https://groups.google.com/d/msg/bitblaze-users/sTTPlFEzWo0/0ZjPL0QYC8IJ
+
+Index: libasmir/src/vex/irtoir-i386.cpp
+===================================================================
+--- libasmir/src/vex/irtoir-i386.cpp (old revision)
++++ libasmir/src/vex/irtoir-i386.cpp (new revision)
+@@ -9,6 +9,13 @@
+ web site at: http://bitblaze.cs.berkeley.edu/
+ */
+
++/* Because we use offsetof() for values that go in switch statement
++ cases, we need a definition in terms of __builtin_offsetof so that
++ GCC >= 4.6 can accept the results of offsetof() as a constant
++ expression. They've stopped supporting the traditional definition
++ as a macro &((type*)0)->memb, which appears in VEX's headers. */
++#include <stddef.h>
++
+ #include <string>
+ #include <vector>
+ #include <iostream>
+Index: libasmir/src/vex/irtoir-arm.cpp
+===================================================================
+--- libasmir/src/vex/irtoir-arm.cpp (old revision)
++++ libasmir/src/vex/irtoir-arm.cpp (new revision)
+@@ -9,6 +9,12 @@
+ web site at: http://bitblaze.cs.berkeley.edu/
+ */
+
++/* Because we use offsetof() for values that go in switch statement
++ cases, we need a definition in terms of __builtin_offsetof so that
++ GCC >= 4.6 can accept the results of offsetof() as a constant
++ expression. They've stopped supporting the traditional definition
++ as a macro &((type*)0)->memb, which appears in VEX's headers. */
++#include <stddef.h>
+
+ #include "irtoir-internal.h"
+ #include "libvex_guest_arm.h"
diff --git a/app-forensics/vine/files/vine-1.0-install.patch b/app-forensics/vine/files/vine-1.0-install.patch
new file mode 100644
index 000000000..62a84bca1
--- /dev/null
+++ b/app-forensics/vine/files/vine-1.0-install.patch
@@ -0,0 +1,89 @@
+--- vine-1.0.orig/stp/ocaml/Makefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/stp/ocaml/Makefile 2013-03-14 20:22:49.993194747 -0600
+@@ -14,3 +14,6 @@
+ Makefile
+
+ include $(OCAMLMAKEFILE)
++
++install: rawinstall
++
+--- vine-1.0.orig/stp/ocaml/OCamlMakefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/stp/ocaml/OCamlMakefile 2013-03-14 20:20:23.012069386 -0600
+@@ -1126,10 +1126,10 @@
+ .PHONY: rawinstall
+ rawinstall: all
+ $(QUIET)printf "\nInstalling library to: $(OCAML_LIB_INSTALL)\n"
+- -install -d $(OCAML_LIB_INSTALL)
++ -install -d $(DESTDIR)$(OCAML_LIB_INSTALL)
+ for i in $(LIBINSTALL_FILES); do \
+ if [ -f $$i ]; then \
+- install -c -m 0644 $$i $(OCAML_LIB_INSTALL); \
++ install -c -m 0644 $$i $(DESTDIR)$(OCAML_LIB_INSTALL); \
+ fi; \
+ done
+ $(QUIET)printf "\nInstallation successful.\n"
+
+--- vine-1.0.orig/ocaml/Makefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/ocaml/Makefile 2013-03-14 20:22:49.993194747 -0600
+@@ -14,3 +14,6 @@
+
+
+ include $(OCAMLMAKEFILE)
++
++install: rawinstall
++
+--- vine-1.0.orig/ocaml/OCamlMakefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/ocaml/OCamlMakefile 2013-03-14 20:20:23.012069386 -0600
+@@ -1126,10 +1126,10 @@
+ .PHONY: rawinstall
+ rawinstall: all
+ $(QUIET)printf "\nInstalling library to: $(OCAML_LIB_INSTALL)\n"
+- -install -d $(OCAML_LIB_INSTALL)
++ -install -d $(DESTDIR)$(OCAML_LIB_INSTALL)
+ for i in $(LIBINSTALL_FILES); do \
+ if [ -f $$i ]; then \
+- install -c -m 0644 $$i $(OCAML_LIB_INSTALL); \
++ install -c -m 0644 $$i $(DESTDIR)$(OCAML_LIB_INSTALL); \
+ fi; \
+ done
+ $(QUIET)printf "\nInstallation successful.\n"
+--- vine-1.0.orig/trace/Makefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/trace/Makefile 2013-03-14 20:22:49.993194747 -0600
+@@ -14,3 +14,6 @@
+
+
+ include $(OCAMLMAKEFILE)
++
++install: rawinstall
++
+--- vine-1.0.orig/trace_utils/Makefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/trace_utils/Makefile 2013-03-16 14:31:46.375690732 -0600
+@@ -88,6 +88,8 @@
+ # * subprjs
+
+
++install:
++
+
+ %:
+ make -f $(OCAMLMAKEFILE) subprojs SUBTARGET=$@
+--- vine-1.0.orig/utils/Makefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/utils/Makefile 2013-03-16 14:31:46.375690732 -0600
+@@ -88,6 +88,8 @@
+ # * subprjs
+
+
++install:
++
+
+ %:
+ make -f $(OCAMLMAKEFILE) subprojs SUBTARGET=$@
+--- vine-1.0.orig/doc/Makefile 2009-09-24 15:45:57.000000000 -0600
++++ vine-1.0/doc/Makefile 2013-03-16 14:41:59.182926821 -0600
+@@ -17,3 +17,6 @@
+
+ clean:
+ (cd howto && $(MAKE) clean)
++
++install:
++
diff --git a/app-forensics/vine/files/vine-1.0-ocamlgraph182.patch b/app-forensics/vine/files/vine-1.0-ocamlgraph182.patch
new file mode 100644
index 000000000..5cb79f224
--- /dev/null
+++ b/app-forensics/vine/files/vine-1.0-ocamlgraph182.patch
@@ -0,0 +1,68 @@
+Index: ocaml/vine_cfg.mli
+===================================================================
+--- ocaml/vine_cfg.mli (old version)
++++ ocaml/vine_cfg.mli (new version)
+@@ -86,6 +86,11 @@
+ (** [cfg#iter_edges f] calls [f a b] forall [(a,b)] where there is an edge
+ vine-1.0-from [a] to [b] in the CFG. *)
+
++ method fold_edges : 'b. ('a bb -> 'a bb -> 'b -> 'b) -> 'b -> 'b
++ (** [cfg#fold_edges f init] computes [f uN uN (... (f u1 v1
++init)...)] where [(u1, v1) ... (uN, vN)] is an enumeration of all
++the edges in the graph, in an unspecified order. *)
++
+ method get_info : 'a bb -> 'a
+ (** Returns the info associated with the given bb. *)
+
+@@ -225,6 +230,7 @@
+ val iter_vertex : (bbid -> unit) -> t -> unit
+ val fold_vertex : (vertex -> 'a -> 'a) -> t -> 'a -> 'a
+ val iter_edges_e : (E.t -> unit) -> t -> unit
++ val fold_edges_e : (E.t -> 'a -> 'a) -> t -> 'a -> 'a
+ val iter_succ : (vertex -> unit) -> t -> vertex -> unit
+ val iter_pred : (vertex -> unit) -> t -> vertex -> unit
+ val in_degree : t -> vertex -> int
+Index: ocaml/vine_cfg.ml
+===================================================================
+--- ocaml/vine_cfg.ml (old version)
++++ ocaml/vine_cfg.ml (new version)
+@@ -115,6 +115,7 @@
+ method iter_bb : ('a bb -> unit) -> unit
+ method fold_bb : 'b. ('a bb -> 'b -> 'b) -> 'b -> 'b
+ method iter_edges : ('a bb -> 'a bb -> unit) -> unit
++ method fold_edges : 'b. ('a bb -> 'a bb -> 'b -> 'b) -> 'b -> 'b
+ method get_info : 'a bb -> 'a
+ method set_info : 'a bb -> 'a -> unit
+ method get_id : 'a bb -> bbid
+@@ -306,6 +307,14 @@
+ self#iter_bb (fun b -> List.iter (f b) (self#succ b));
+ self#check_graph;
+
++ method fold_edges f a =
++ self#check_graph;
++ let res = self#fold_bb
++ (fun b a2 -> List.fold_left (fun a3 b2 -> f b b2 a3) a2 (self#succ b)) a
++ in
++ self#check_graph;
++ res
++
+ method length = Hashtbl.length blktbl
+
+ method get_info b =
+@@ -1122,6 +1131,7 @@
+ val iter_vertex : (bbid -> unit) -> t -> unit
+ val fold_vertex : (bbid -> 'a -> 'a) -> t -> 'a -> 'a
+ val iter_edges_e : (E.t -> unit) -> t -> unit
++ val fold_edges_e : (E.t -> 'a -> 'a) -> t -> 'a -> 'a
+ val iter_succ : (vertex -> unit) -> t -> vertex -> unit
+ val iter_pred : (vertex -> unit) -> t -> vertex -> unit
+ val in_degree : t -> vertex -> int
+@@ -1170,6 +1180,8 @@
+ let fold_vertex f (g:t) a = g#fold_bb (fun b -> f b.id) a
+ let iter_edges_e f (g:t) =
+ g#iter_edges (fun x y -> f (g#get_id x, g#get_id y))
++ let fold_edges_e f (g:t) a =
++ g#fold_edges (fun x y a -> f (g#get_id x, g#get_id y) a) a
+ let iter_succ f g v = List.iter f (bb_succ g v)
+ let iter_pred f g v = List.iter f (bb_pred g v)
+ let in_degree g v = List.length (bb_pred g v)
diff --git a/app-forensics/vine/metadata.xml b/app-forensics/vine/metadata.xml
new file mode 100644
index 000000000..745b9e1ce
--- /dev/null
+++ b/app-forensics/vine/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer>
+ <email>ottxor@gentoo.org</email>
+ <name>Christoph Junghans</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/app-forensics/vine/vine-1.0.ebuild b/app-forensics/vine/vine-1.0.ebuild
new file mode 100644
index 000000000..522599029
--- /dev/null
+++ b/app-forensics/vine/vine-1.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/gmetadom/gmetadom-0.2.6.ebuild,v 1.9 2012/05/04 18:35:48 jdhore Exp $
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="The BitBlaze Static Analysis Component"
+HOMEPAGE="http://bitblaze.cs.berkeley.edu/vine.html"
+SRC_URI="http://bitblaze.cs.berkeley.edu/release/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+DEPEND="
+ dev-lang/ocaml
+ dev-ml/findlib
+ dev-ml/camlidl
+ >=dev-libs/gmetadom-0.2.6-r1[ocaml]
+ dev-ml/extlib
+ sys-devel/binutils
+ dev-ml/ocamlgraph"
+RDEPEND="${DEPEND}"
+
+MAKEOPTS="${MAKEOPTS} -j1"
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${P}-binutils.patch \
+ "${FILESDIR}"/${P}-gcc46.patch \
+ "${FILESDIR}"/${P}-install.patch \
+ "${FILESDIR}"/${P}-ocamlgraph182.patch
+}
+
+src_compile() {
+ emake CC=$(tc-getCC) CCFLAGS="${CFLAGS} -fpic"
+}