Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 451368 (tcltk-8.6) - [Tracker] dev-lang/tcl/tk-8.6
Summary: [Tracker] dev-lang/tcl/tk-8.6
Status: CONFIRMED
Alias: tcltk-8.6
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Library (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: TCL/TK Project
URL:
Whiteboard:
Keywords: Tracker
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
Blocks:
  Show dependency tree
 
Reported: 2013-01-11 08:56 UTC by Justin Lecher
Modified: 2017-01-19 18:47 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.