Package: libgv-tcl
Version: 2.20.2-3
Severity: important
Tags: patch

 Well, the problem from subject. It could be checked
by attempting to run doted from graphviz examples on
any example graph. Nothing will appear on screen,
but canvas code is printed to console.

 Indeed, tcldot calls "tk" renderer, assuming that
it will be tkgen.c code. That code have all the needed
to return it's canvas paint strings to TCL. However,
now "tk" renderer is also available from the common plugins of
libgv. By default it just prints it's results to stdout.

 The simplest method of fixing it is to change name
of internal tcldot renderer from "tk" to "tkgen".
Also, changed renderer type from API_render to API_device --
all other codegen_t renderers are API_device, and without
it attempting to call gvjobs_output_langname would fail.
Attached patch implements this method.

 There could be another way of fixing -- to add hook to
gvc device to write all rendering results via Tcl_AppendResult
in tcldot.c. This would allow to use standard "tk"
rendering backend. However, this is less simple
and, as I saw in "tk" plugin code -- it appears to have
less features then tkgen.



-- System Information:
Debian Release: 5.0
  APT prefers oldstable
  APT policy: (500, 'oldstable'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.koi8-r, LC_CTYPE=ru_RU.koi8-r (charmap=KOI8-R)
Shell: /bin/sh linked to /bin/bash

Versions of packages libgv-tcl depends on:
ii  libc6                  2.7-18            GNU C Library: Shared libraries
ii  libcairo2              1.6.4-7           The Cairo 2D vector graphics libra
ii  libexpat1              2.0.1-4           XML parsing C library - runtime li
ii  libfontconfig1         2.6.0-3           generic font configuration library
ii  libfreetype6           2.3.7-2           FreeType 2 font engine, shared lib
ii  libgcc1                1:4.3.3-3         GCC support library
ii  libgd2-xpm             2.0.36~rc1~dfsg-3 GD Graphics Library version 2
ii  libglib2.0-0           2.16.6-1          The GLib library of C routines
ii  libgraphviz4           2.20.2-3          rich set of graph drawing tools
ii  libjpeg62              6b-14             The Independent JPEG Group's JPEG 
ii  libltdl3               1.5.26-4          A system independent dlopen wrappe
ii  libpango1.0-0          1.20.5-3          Layout and rendering of internatio
ii  libpng12-0             1.2.27-2          PNG library - runtime
ii  libstdc++6             4.3.3-3           The GNU Standard C++ Library v3
ii  libx11-6               2:1.1.5-2         X11 client-side library
ii  libxpm4                1:3.5.7-1         X11 pixmap library
ii  tk8.4                  8.4.19-2          Tk toolkit for Tcl and X11, v8.4 -
ii  zlib1g                 1:1.2.3.3.dfsg-12 compression library - runtime

libgv-tcl recommends no packages.

libgv-tcl suggests no packages.

-- no debconf information
--- graphviz-2.20.2/tclpkg/tcldot/tcldot.c	2008-04-29 21:31:05.000000000 +0400
+++ graphviz-2.20.2.patched/tclpkg/tcldot/tcldot.c	2009-03-28 13:26:00.350041677 +0300
@@ -53,7 +53,7 @@
 
 #ifdef WITH_CODEGENS
 extern codegen_t TK_CodeGen;
-static codegen_info_t cg[] = { {&TK_CodeGen, "tk", TK},
+static codegen_info_t cg[] = { {&TK_CodeGen, "tkgen", TK},
 				{NULL, NULL, 0}, };
 #endif
 
@@ -1084,9 +1084,9 @@
 	}
 	tkgendata.interp = interp;
 
-        rc = gvjobs_output_langname(gvc, "tk");
+        rc = gvjobs_output_langname(gvc, "tkgen");
 	if (rc == NO_SUPPORT) {
-	    Tcl_AppendResult(interp, " Format: \"tk\" not recognized.\n",
+	    Tcl_AppendResult(interp, " Format: \"tkgen\" not recognized.\n",
                                      (char *) 0);
 	    return TCL_ERROR;
 	}
@@ -1672,9 +1672,10 @@
     gvconfig(gvc, FALSE);
 #ifdef WITH_CODEGENS
     /* additional codegens */
-    for (p = cg; p->name; ++p)
-        gvplugin_install(gvc, API_render, p->name, 0, "cg", NULL,
+    for (p = cg; p->name; ++p) {
+        gvplugin_install(gvc, API_device, p->name, 0, "cg", NULL,
                          (gvplugin_installed_t *) p);
+    };
 #endif
 
 #ifndef TCLOBJ

Reply via email to