Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 451368 (tcltk-8.6)

Summary: [Tracker] dev-lang/tcl/tk-8.6
Product: Gentoo Linux Reporter: Justin Lecher <jlec>
Component: [OLD] LibraryAssignee: TCL/TK Project <tcltk>
Status: CONFIRMED ---    
Severity: normal CC: kripton, nikoli, pacho
Priority: Normal Keywords: Tracker
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=586300
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 454118, 451112, 451142, 451288, 451294, 451296, 451346, 451356, 451358, 451360, 451400, 451548, 451614, 451664, 451674, 451692, 451818, 451824, 452034, 452654, 452820, 452852, 453370, 454762, 455032, 456190, 456366, 460006, 464650, 467442, 467444, 482318, 492710, 497130, 554260    
Bug Blocks:    

Description Justin Lecher gentoo-dev 2013-01-11 08:56:39 UTC
some packages do not build against version 8.6 and show errors like this:

error: 'Tcl_Interp' has no member named 'result'

and

error: 'Tcl_Interp' has no member named 'errorline'

This is due to a removal of an old and deprecated (at least since 2004) feature.

Here some simple fixes:


Version A (will stop working with tcl/tk-9.0):

append 

-DUSE_INTERP_RESULT and/or -DUSE_INTERP_ERRORLINE

to the *FLAGS.



Version B (long lasting and better):

patch code (and send upstream) to use
Tcl_GetResult(), Tcl_GetStringResult(), Tcl_SetResult(), Tcl_SetStringResult(), Tcl_GetErrorLine()

Examples:

@@ -1980,10 +1980,10 @@ void tcl_run(
     trace = (char *)Tcl_GetVar(interp, "errorInfo", 0);

     if (trace == NULL)
-      trace = interp->result;
+      trace = Tcl_GetStringResult(interp);

     fprintf(stderr, "%s: TCL error @ line %d: %s\n",
-            script, interp->errorLine, trace);
+            script, Tcl_GetErrorLine(interp), trace);
     }

   Tcl_DeleteInterp(interp);



Some more little facts:

* Please link against libtcl.so and libtk.so instead of libtcl8.6.so and libtk8.6.
* Version 8.6 supports pkg-config
* Version 8.6 is subslotted.
Comment 1 Justin Lecher gentoo-dev 2013-01-11 09:26:32 UTC
One additional note:

application-specific initialization failed: package not known
invalid command name "auto_mkindex_parser::command"


This comes from a broken dev-lang/tcl-8.6.0. Revision 1 is fixed.
Comment 2 Karl Ernst Brunk 2013-01-14 20:38:11 UTC
(In reply to comment #1)
> One additional note:
> 
> application-specific initialization failed: package not known
> invalid command name "auto_mkindex_parser::command"
> 
> 
> This comes from a broken dev-lang/tcl-8.6.0. Revision 1 is fixed.

my way is from bug 154 - 360 to here, but sorry to say - i dont see that -r1 is fixing this problem. At least the 360 bug (opencascade) still ends at the same place.
Comment 3 zlg (RETIRED) gentoo-dev 2016-06-21 02:06:39 UTC
I'm not seeing how packages that misuse Tcl APIs (e.g dev-lang/gnu-smalltalk) are halting stabilization of Tcl. I've already done due diligence on bug 492710 and got something in motion there, but in my research I didn't find problems with Tcl itself building.

There is a QA bug (bug #554260) regarding manpage/library permissions, which I've added to Depends-On. It should be a simple fix (find out when/where it installs manpages and alter accordingly), but it's a legitimate blocker.