aboutsummaryrefslogtreecommitdiff
path: root/math/ocaml-ocamlgraph
diff options
context:
space:
mode:
authorJohan van Selst <johans@FreeBSD.org>2013-06-14 05:12:34 +0000
committerJohan van Selst <johans@FreeBSD.org>2013-06-14 05:12:34 +0000
commitb9882db9395520dc23847d7e432168da9e6b0b58 (patch)
tree6ab94de8193a8d89a6feba0b92817e347da7837b /math/ocaml-ocamlgraph
parentc27dac147f59c67a93bdfe4b3c11159f354f37da (diff)
downloadports-b9882db9395520dc23847d7e432168da9e6b0b58.tar.gz
ports-b9882db9395520dc23847d7e432168da9e6b0b58.zip
- Update ocamlgraph to 1.8.3
- This includes two patches from upstream, (will be included in the next release) Submitted by: bf
Notes
Notes: svn path=/head/; revision=320883
Diffstat (limited to 'math/ocaml-ocamlgraph')
-rw-r--r--math/ocaml-ocamlgraph/Makefile10
-rw-r--r--math/ocaml-ocamlgraph/distinfo4
-rw-r--r--math/ocaml-ocamlgraph/files/patch-20130523100
-rw-r--r--math/ocaml-ocamlgraph/pkg-plist3
4 files changed, 108 insertions, 9 deletions
diff --git a/math/ocaml-ocamlgraph/Makefile b/math/ocaml-ocamlgraph/Makefile
index 258a3e26bf7c..18d41d51de21 100644
--- a/math/ocaml-ocamlgraph/Makefile
+++ b/math/ocaml-ocamlgraph/Makefile
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= ocamlgraph
-PORTVERSION= 1.8.2
-PORTREVISION= 1
+PORTVERSION= 1.8.3
CATEGORIES= math
-MASTER_SITES= http://ocamlgraph.lri.fr/download/
+MASTER_SITES= http://ocamlgraph.lri.fr/download/ \
+ ftp://ftp.stack.nl/pub/users/johans/ocamlgraph/
PKGNAMEPREFIX= ocaml-
MAINTAINER= johans@FreeBSD.org
@@ -51,10 +51,6 @@ post-patch:
.if empty(PORT_OPTIONS:MGUI)
# Override auto-detection
@${REINPLACE_CMD} -Ee 's/(LABLGTK2)=yes/\1=no/' ${WRKSRC}/configure
-.else
- @${REINPLACE_CMD} -Ee 's@(\+|/)(lablgtk2)@\1site-lib/\2@' \
- ${WRKSRC}/configure \
- ${WRKSRC}/view_graph/Makefile
.endif
post-install:
diff --git a/math/ocaml-ocamlgraph/distinfo b/math/ocaml-ocamlgraph/distinfo
index d12e6b013a2d..405010a66f82 100644
--- a/math/ocaml-ocamlgraph/distinfo
+++ b/math/ocaml-ocamlgraph/distinfo
@@ -1,2 +1,2 @@
-SHA256 (ocamlgraph-1.8.2.tar.gz) = e54ae60cd977a032854166dad56348d0fb76c6cd8e03e960af455268f0c8b5a6
-SIZE (ocamlgraph-1.8.2.tar.gz) = 249253
+SHA256 (ocamlgraph-1.8.3.tar.gz) = 0df7114b6b6a57125b9c998cc08870b6595fcfd6f2376a0e84cb666c1fd345bd
+SIZE (ocamlgraph-1.8.3.tar.gz) = 262876
diff --git a/math/ocaml-ocamlgraph/files/patch-20130523 b/math/ocaml-ocamlgraph/files/patch-20130523
new file mode 100644
index 000000000000..34aeec315ebe
--- /dev/null
+++ b/math/ocaml-ocamlgraph/files/patch-20130523
@@ -0,0 +1,100 @@
+diff --git CHANGES CHANGES
+index 5a8db64..8b53839 100644
+--- CHANGES
++++ CHANGES
+@@ -1,7 +1,10 @@
+
++ o Merge: fixed bug with vertices with no incoming nor outcoming edge.
++ o fixed compilation issue with OCaml 3.12.1
++
+ version 1.8.3, April 17, 2013
+ ---------------------------
+- o new module Merge implementing several different of merges of vertices and
++ o new module Merge implementing several different merges of vertices and
+ edges into a graph (contributed by Emmanuel Haucourt)
+ o fixed DOT parser (contributed by Alex Reece)
+ o Topological: fixed bug in presence of disjoint cycles; new implementation
+diff --git src/merge.ml src/merge.ml
+index c8581e3..563ab77 100644
+--- src/merge.ml
++++ src/merge.ml
+@@ -57,12 +57,26 @@ module B(B: Builder.S) = struct
+ in
+ B.G.fold_edges_e f g []
+
++ (* – former buggy version – the case where v is neither the source nor the
++ destination of some arrow was not taken into account, so that vertices were
++ just removed
++
++ let merge_vertex g vl = match vl with
++ | [] -> g
++ | _ :: vl' ->
++ let to_be_added = identify_extremities g vl in
++ let g = List.fold_left B.remove_vertex g vl' in
++ List.fold_left B.add_edge_e g to_be_added
++ *)
++
+ let merge_vertex g vl = match vl with
+ | [] -> g
+- | _ :: vl' ->
++ | v :: vl' ->
+ let to_be_added = identify_extremities g vl in
+ let g = List.fold_left B.remove_vertex g vl' in
+- List.fold_left B.add_edge_e g to_be_added
++ if to_be_added = []
++ then B.add_vertex g v
++ else List.fold_left B.add_edge_e g to_be_added
+
+ let merge_edges_e ?src ?dst g el = match el with
+ | e :: el' ->
+@@ -108,13 +122,32 @@ module B(B: Builder.S) = struct
+ in
+ let edges_to_be_merged = B.G.fold_edges_e collect_edge g [] in
+ merge_edges_e ?src ?dst g edges_to_be_merged
++
++ (* To deduce a comparison function on labels from a comparison function on
++ edges *)
++
++ let compare_label g =
++ try
++ let default_vertex =
++ let a_vertex_of_g = ref None in
++ (try B.G.iter_vertex (fun v -> a_vertex_of_g := Some v ; raise Exit) g
++ with Exit -> ());
++ match !a_vertex_of_g with
++ | Some v -> v
++ | None -> raise Exit (*hence g is empty*) in
++ fun l1 l2 ->
++ let e1 = B.G.E.create default_vertex l1 default_vertex in
++ let e2 = B.G.E.create default_vertex l2 default_vertex in
++ B.G.E.compare e1 e2
++ with Exit -> (fun l1 l2 -> 0)
+
+ let merge_isolabelled_edges g =
+ let module S = Set.Make(B.G.V) in
+ let do_meet s1 s2 = S.exists (fun x -> S.mem x s2) s1 in
+ let module M =
+- (* TODO: using [compare] here is really suspicious *)
+- Map.Make(struct type t = B.G.E.label let compare = compare end)
++ (* TODO: using [compare] here is really suspicious ...
++ DONE – yet not so clean *)
++ Map.Make(struct type t = B.G.E.label let compare = compare_label g end)
+ in
+ let accumulating e accu =
+ let l = B.G.E.label e in
+diff --git src/merge.mli src/merge.mli
+index 3b13413..8e574ae 100644
+--- src/merge.mli
++++ src/merge.mli
+@@ -133,10 +133,7 @@ module I(G: Sig.I): sig
+ ?loop_killer:bool -> ?specified_vertex:(vertex list -> vertex) -> graph ->
+ unit
+
+-end with type graph = G.t
+- and type vertex := G.vertex
+- and type edge := G.edge
+- and type edge_label = G.E.label
++end
+
+ (*
+ Local Variables:
diff --git a/math/ocaml-ocamlgraph/pkg-plist b/math/ocaml-ocamlgraph/pkg-plist
index 69da1ba4ab93..a5df114675cd 100644
--- a/math/ocaml-ocamlgraph/pkg-plist
+++ b/math/ocaml-ocamlgraph/pkg-plist
@@ -11,6 +11,7 @@
%%OCAMLGRAPHDIR%%/components.mli
%%OCAMLGRAPHDIR%%/contraction.mli
%%OCAMLGRAPHDIR%%/delaunay.mli
+%%OCAMLGRAPHDIR%%/dominator.mli
%%OCAMLGRAPHDIR%%/dot.mli
%%OCAMLGRAPHDIR%%/dot_ast.mli
%%OCAMLGRAPHDIR%%/dot_parser.mli
@@ -24,12 +25,14 @@
%%OCAMLGRAPHDIR%%/graph.cmo
%%OCAMLGRAPHDIR%%/graph.cmx
%%OCAMLGRAPHDIR%%/graph.cmxa
+%%OCAMLGRAPHDIR%%/graphml.mli
%%OCAMLGRAPHDIR%%/graphviz.mli
%%OCAMLGRAPHDIR%%/imperative.mli
%%OCAMLGRAPHDIR%%/kruskal.mli
%%OCAMLGRAPHDIR%%/leaderlist.mli
%%OCAMLGRAPHDIR%%/mcs_m.mli
%%OCAMLGRAPHDIR%%/md.mli
+%%OCAMLGRAPHDIR%%/merge.mli
%%OCAMLGRAPHDIR%%/minsep.mli
%%OCAMLGRAPHDIR%%/nonnegative.mli
%%OCAMLGRAPHDIR%%/oper.mli