Index: head/devel/monotone-viz/Makefile =================================================================== --- head/devel/monotone-viz/Makefile (revision 418020) +++ head/devel/monotone-viz/Makefile (revision 418021) @@ -1,39 +1,60 @@ # Created by: Tarasov Alexey # $FreeBSD$ PORTNAME= monotone-viz PORTVERSION= 1.0.2 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= devel MASTER_SITES= http://oandrieu.nerim.net/monotone-viz/ +PATCH_SITES= DEBIAN_POOL +PATCHFILES= ${PORTNAME}_${PORTVERSION}-4.diff.gz +PATCH_DIST_STRIP= -p1 + MAINTAINER= ports@FreeBSD.org COMMENT= Visual interface for Monotone VCS with revision graphs -LICENSE= GPLv2 +LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING -BROKEN= fails to build -DEPRECATED= Broken for more than 6 months -EXPIRATION_DATE= 2016-07-04 - -BUILD_DEPENDS= lablgtk2:x11-toolkits/ocaml-lablgtk2 -RUN_DEPENDS+= dot:graphics/graphviz \ +BUILD_DEPENDS= xpmtoppm:graphics/netpbm \ + lablgtk2:x11-toolkits/ocaml-lablgtk2 +RUN_DEPENDS= dot:graphics/graphviz \ mtn:devel/monotone \ + bash:shells/bash \ lablgtk2:x11-toolkits/ocaml-lablgtk2 USES= gmake USE_OCAML= yes USE_OCAML_CAMLP4=yes GNU_CONFIGURE= yes -CONFIGURE_ARGS+= --without-local-lablgtk +CONFIGURE_ARGS= --without-local-lablgtk -ALL_TARGET= +ALL_TARGET= monotone-viz MAKE_JOBS_UNSAFE= yes -PLIST_FILES= bin/monotone-viz +PLIST_FILES= bin/monotone-viz share/pixmaps/monotone-viz.png +DESKTOP_ENTRIES="Monotone-viz" "" "monotone-viz" "monotone-viz" \ + "Development;RevisionControl;GTK;" "" + +post-patch: +.for i in 10-new-stdio.diff 20-dot-rankdir.diff 50-ocaml-4.02.2.diff + @${PATCH} -d ${WRKSRC} -p1 --quiet < ${WRKSRC}/debian/patches/${i} +.endfor + @${REINPLACE_CMD} -e 's|"/bin/bash"|"${LOCALBASE}/bin/bash"|' \ + ${WRKSRC}/agraph.ml + +# Monkey patch the icon.ml into an xpm file. +post-build: + @${SED} -e 's|^(\(\* XPM \*\))$$|/\1/|; \ + s/^let \(monotone_xpm\) = \[|$$/static char * \1[] = {/; \ + s/";$$/",/; s/|\]$$/};/; /GdkPixbuf/d' ${WRKSRC}/icon.ml | \ + xpmtoppm --alphaout=${WRKDIR}/icon.pgm | \ + pnmtopng --alpha=${WRKDIR}/icon.pgm > ${WRKDIR}/monotone-viz.png + post-install: + ${INSTALL_DATA} ${WRKDIR}/monotone-viz.png ${STAGEDIR}${PREFIX}/share/pixmaps ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/monotone-viz .include Index: head/devel/monotone-viz/distinfo =================================================================== --- head/devel/monotone-viz/distinfo (revision 418020) +++ head/devel/monotone-viz/distinfo (revision 418021) @@ -1,2 +1,4 @@ SHA256 (monotone-viz-1.0.2.tar.gz) = 404ee47378b144a62eb2dcdfb80430e68d193360216d120977a457cdbf85b7f6 SIZE (monotone-viz-1.0.2.tar.gz) = 545631 +SHA256 (monotone-viz_1.0.2-4.diff.gz) = aed1582e303395790f4b2f3d9a2838d98440f5e3c307e8222d7015fe72fd1bda +SIZE (monotone-viz_1.0.2-4.diff.gz) = 11922 Index: head/devel/monotone-viz/files/patch-agraph.ml =================================================================== --- head/devel/monotone-viz/files/patch-agraph.ml (revision 418020) +++ head/devel/monotone-viz/files/patch-agraph.ml (nonexistent) @@ -1,29 +0,0 @@ ---- agraph.ml.orig 2007-03-07 22:53:54.000000000 +0100 -+++ agraph.ml 2010-08-25 13:13:33.000000000 +0200 -@@ -50,8 +50,9 @@ let dot_format params agraph = - agraph.nodes in - - !+ "digraph \"monotone-viz\"\n{\n" ; -- if params.lr_layout then -- !+ " graph [rankdir=LR] ;\n" ; -+ if params.lr_layout -+ then !+ " graph [rankdir=LR] ;\n" -+ else !+ " graph [rankdir=BT] ;\n" ; - !+ " graph [ranksep=\"0.25\"] ;\n" ; - !+ " node [label=\"\"] ;\n" ; - -@@ -222,11 +223,11 @@ let spawn_dot graph status done_cb = - let dot_prg = graph.layout_params.dot_program in - let cmd = - if Viz_misc.debug "dot" -- then [ "/bin/sh" ; "-c" ; -+ then [ "/usr/local/bin/bash" ; "-c" ; - Printf.sprintf - "set -o pipefail ; \ -- tee agraph.in.dot | %s -q -y -s%.0f | tee agraph.out.dot" dot_prg ppi ] -- else [ dot_prg ; "-q" ; "-y" ; Printf.sprintf "-s%.0f" ppi ] in -+ tee agraph.in.dot | %s -q -s%.0f | tee agraph.out.dot" dot_prg ppi ] -+ else [ dot_prg ; "-q" ; Printf.sprintf "-s%.0f" ppi ] in - let error fmt = - Printf.kprintf (fun s -> done_cb (`LAYOUT_ERROR s)) fmt in - try Property changes on: head/devel/monotone-viz/files/patch-agraph.ml ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: head/devel/monotone-viz/files/patch-automate.ml =================================================================== --- head/devel/monotone-viz/files/patch-automate.ml (revision 418020) +++ head/devel/monotone-viz/files/patch-automate.ml (nonexistent) @@ -1,124 +0,0 @@ ---- automate.ml.orig 2010-11-05 11:14:53.000000000 +0100 -+++ automate.ml 2010-11-05 11:14:55.000000000 +0100 -@@ -44,7 +44,7 @@ type output = [ - | `OUTPUT of string - | `ERROR of string - | `SYNTAX_ERROR of string] --type chunk = command_id * int * bool * string -+type chunk = command_id * bool * string - type process = { - p_in : in_watch ; - p_out : out_watch ; -@@ -152,7 +152,7 @@ let _read_cb w conditions = - try - match Giochannel.read_chars w.out_w.w_chan w.out_sb with - | `NORMAL read -> -- if debug then log "%s cb: read %d" w.out_w.w_name read ; -+ if debug then log "%s cb: read %d" w.out_w.w_name read; - Buffer.add_substring w.out_buffer w.out_sb 0 read ; - w.out_cb w.out_buffer - | `EOF -> -@@ -258,8 +258,8 @@ let encode_stdio cmd = - - - --let find_four_colon b = -- let to_find = ref 4 in -+let find_three_colon b = -+ let to_find = ref 3 in - let i = ref 0 in - while !to_find > 0 do - let c = Buffer.nth b !i in -@@ -277,22 +277,20 @@ let truncate_buffer b off len = - - let decode_stdio_chunk b = - try -- let header_len = find_four_colon b in -+ let header_len = find_three_colon b in - let h = Buffer.sub b 0 header_len in - let c1 = String.index_from h 0 ':' in - let number = int_of_string (string_slice ~e:c1 h) in -- let code = int_of_char h.[c1 + 1] - int_of_char '0' in - let c2 = String.index_from h (c1 + 1) ':' in -- let last = h.[c2 + 1] in -+ let last = h.[c1 + 1] in - let c3 = String.index_from h (c2 + 1) ':' in -- let c4 = String.index_from h (c3 + 1) ':' in -- let len = int_of_string (string_slice ~s:(c3 + 1) ~e:c4 h) in -+ let len = int_of_string (string_slice ~s:(c2 + 1) ~e:c3 h) in - if Buffer.length b < header_len + len - then - `INCOMPLETE - else - let data = truncate_buffer b header_len len in -- `CHUNK (number, code, last = 'l', data) -+ `CHUNK (number, last = 'l', data) - with Invalid_argument _ -> - `INCOMPLETE - -@@ -305,11 +303,11 @@ let rec out_cb p b = - | `INCOMPLETE -> - () - -- | `CHUNK (nb, _, _, _) when aborted_cmd p nb -> -+ | `CHUNK (nb, _, _) when aborted_cmd p nb -> - p.chunks <- List.remove_assoc nb p.chunks ; - out_cb p b - -- | `CHUNK ((nb, code, false, data) as chunk) -> -+ | `CHUNK ((nb, false, data) as chunk) -> - if debug then log "decoded a chunk" ; - let previous_chunks = - try List.assoc nb p.chunks -@@ -320,7 +318,7 @@ let rec out_cb p b = - previous_chunks := chunk :: !previous_chunks ; - out_cb p b - -- | `CHUNK ((nb, code, true, data) as chunk) -> -+ | `CHUNK ((nb, true, data) as chunk) -> - if debug then log "decoded last chunk" ; - let chunks = - try -@@ -333,14 +331,14 @@ let rec out_cb p b = - p.callbacks <- List.remove_assoc nb p.callbacks ; - let msg = - String.concat "" -- (List.map (fun (_, _, _, d) -> d) chunks) in -- let data = -- match code with -- | 0 -> `OUTPUT msg -- | 1 -> `SYNTAX_ERROR msg -- | 2 -> `ERROR msg -+ (List.map (function (_, false, d) -> d | (_, true, d) -> "") chunks) in -+ let code = -+ match data with -+ | "0" -> `OUTPUT msg -+ | "1" -> `SYNTAX_ERROR msg -+ | "2" -> `ERROR msg - | _ -> failwith "invalid_code in automate stdio output" in -- ignore (Glib.Idle.add ~prio:0 (fun () -> cb data ; false)) ; -+ ignore (Glib.Idle.add ~prio:0 (fun () -> cb code ; false)) ; - out_cb p b - - -@@ -409,6 +407,20 @@ let spawn mtn db = - chunks = [] ; - exit_cb = (fun _ -> assert false) - } in -+ let rec check_version buf = -+ if String.contains buf '\n' then -+ String.length buf >= 18 && String.sub buf 0 18 = "format-version: 2\n" -+ else -+ match Giochannel.read_chars p.p_out.out_w.w_chan p.p_out.out_sb with -+ | `NORMAL read -> check_version (buf ^ String.sub p.p_out.out_sb 0 read) -+ | `EOF -> -+ Giochannel.shutdown p.p_out.out_w.w_chan false; -+ Giochannel.shutdown p.p_err.out_w.w_chan false; -+ failwith "mtn version 0.46 or above is required"; -+ | `AGAIN -> check_version buf -+ in -+ if not (check_version "") -+ then failwith "mtn stdio uses an unknown format-version"; - let pid = some child.Gspawn.pid in - ignore (Gspawn.add_child_watch ~prio:50 pid (reap_cb p pid)) ; - p.p_out.out_cb <- out_cb p ; Property changes on: head/devel/monotone-viz/files/patch-automate.ml ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property