Date: Sat, 16 Mar 2013 14:25:20 GMT From: Bojan Petrovic <bojan_petrovic@fastmail.fm> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/177023: x11-toolkits/flowcanvas doesn't build with recent graphviz Message-ID: <201303161425.r2GEPKp7021861@red.freebsd.org> Resent-Message-ID: <201303161430.r2GEU0BA034597@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 177023 >Category: ports >Synopsis: x11-toolkits/flowcanvas doesn't build with recent graphviz >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Mar 16 14:30:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Bojan Petrovic >Release: >Organization: >Environment: FreeBSD alpha-60 9.0-STABLE FreeBSD 9.0-STABLE #5: Wed Jul 11 22:57:50 CEST 2012 root@alpha-60:/usr/obj/usr/src/sys/SL510_9.0 amd64 >Description: The x11-toolkits/flowcanvas is already marked as BROKEN because it cannot compile with recent graphviz library. The problem seems to be twofold: First, flowcanvas relies on deprecated libraph graphviz library. Libcgraph has different function signatures and names. Second, `pkg-config --libs libgvc` reports `-L/usr/local/lib/graphviz -lgvc -lgraph -lcdt`, although libgraph is not installed by graphviz port. >How-To-Repeat: Try building x11-toolkits/flowcanvas >Fix: In the patch, src/Canvas.cpp is updated to use cgraph functions Also, wscript now replaces 'graph' with 'cgraph' in linker flags after autoconfiguring gvc library. Patch attached with submission follows: Index: Makefile =================================================================== --- Makefile (revision 314352) +++ Makefile (working copy) @@ -10,8 +10,6 @@ MAINTAINER= ports@FreeBSD.org COMMENT= An interactive Gtkmm/Gnomecanvasmm widget -BROKEN= Does not build with recent graphviz - LICENSE= GPLv2 GPLv3 LICENSE_COMB= dual Index: files/patch-src_Canvas.cpp =================================================================== --- files/patch-src_Canvas.cpp (revision 0) +++ files/patch-src_Canvas.cpp (working copy) @@ -0,0 +1,46 @@ +--- src/Canvas.cpp.orig 2011-01-10 00:19:58.000000000 +0100 ++++ src/Canvas.cpp 2013-03-16 13:45:17.797462753 +0100 +@@ -1253,21 +1253,21 @@ + */ + + GVC_t* gvc = gvContext(); +- Agraph_t* G = agopen((char*)"g", AGDIGRAPH); ++ Agraph_t* G = agopen((char*)"g", Agdirected, NULL); + + nodes.gvc = gvc; + nodes.G = G; + + if (_direction == HORIZONTAL) +- agraphattr(G, (char*)"rankdir", (char*)"LR"); ++ agattr(G, AGRAPH, (char*)"rankdir", (char*)"LR"); + else +- agraphattr(G, (char*)"rankdir", (char*)"TD"); ++ agattr(G, AGRAPH, (char*)"rankdir", (char*)"TD"); + + unsigned id = 0; + for (ItemList::const_iterator i = _items.begin(); i != _items.end(); ++i) { + std::ostringstream ss; + ss << "n" << id++; +- Agnode_t* node = agnode(G, strdup(ss.str().c_str())); ++ Agnode_t* node = agnode(G, strdup(ss.str().c_str()), true); + if (boost::dynamic_pointer_cast<Module>(*i)) { + ss.str(""); + ss << (*i)->width() / 96.0; +@@ -1310,7 +1310,7 @@ + + assert(src_node && dst_node); + +- Agedge_t* edge = agedge(G, src_node, dst_node); ++ Agedge_t* edge = agedge(G, src_node, dst_node, NULL, true); + + if (use_length_hints && c->length_hint() != 0) { + std::ostringstream len_ss; +@@ -1325,7 +1325,7 @@ + if (partner) { + GVNodes::iterator p = nodes.find(partner); + if (p != nodes.end()) +- agedge(G, i->second, p->second); ++ agedge(G, i->second, p->second, NULL, true); + } + } + Index: files/patch-wscript =================================================================== --- files/patch-wscript (revision 0) +++ files/patch-wscript (working copy) @@ -0,0 +1,10 @@ +--- wscript.orig 2011-01-12 00:09:31.000000000 +0100 ++++ wscript 2013-03-16 14:19:43.577462602 +0100 +@@ -41,6 +41,7 @@ + conf.check_tool('compiler_cxx') + autowaf.check_pkg(conf, 'libgvc', uselib_store='AGRAPH', + atleast_version='2.8', mandatory=False) ++ conf.env['LIB_AGRAPH'] = ['cgraph' if l == 'graph' else l for l in conf.env['LIB_AGRAPH']] + autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GLIBMM', + atleast_version='2.10.0', mandatory=True) + autowaf.check_pkg(conf, 'libgnomecanvasmm-2.6', uselib_store='GNOMECANVASMM', >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303161425.r2GEPKp7021861>