From: SourceForge.net <no...@so...> - 2006-09-25 16:58:30
|
Bugs item #1563874, was opened at 2006-09-22 21:10 Message generated for change (Comment added) made by andreas_kupries You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=1563874&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 63. Tk_Win Functions Group: development: 8.4.14 Status: Open Resolution: None Priority: 9 Submitted By: Don Porter (dgp) Assigned to: Andreas Kupries (andreas_kupries) Summary: [package require Tk] broken by TIP 268 in Tk 8.4.14 Initial Comment: Build current Tk 8.4.14 sources against current Tcl 8.4.14 headers in their default configuration. Install. Then: % info patch 8.4.14 % package provide Tcl 8.4 % package require Tk can't find package Tk Examining $libdir/tk8.4/pkgIndex.tcl: if {[package vcompare [package provide Tcl] 8.4.14] != 0} { return } package ifneeded Tk 8.4.14 [list load [file join $dir .. libtk8.4.so] Tk] We see that Tk 8.4(.14) isn't offered because the version of Tcl (8.4) doesn't pass the screen for a minimum requirement of 8.4.14. Comment out the screen line, and we get this: % package require Tk version conflict for package "Tcl": have 8.4, need 8.4.14 % set errorInfo version conflict for package "Tcl": have 8.4, need 8.4.14 while executing "load /usr/local/lib/tk8.4/../libtk8.4.so Tk" ("package ifneeded" script) invoked from within "package require Tk" The problem is at line 2948 of tkWindow.c: if (Tcl_InitStubs(interp, TCL_PATCH_LEVEL, 1) == NULL) { return TCL_ERROR; } This is demanding a Tcl stubs table of exactly version 8.4.14, but no default config build of Tcl 8.4 will label its stub table with that version number, so currently Tk 8.4.14 will not load in a standard Tcl interp. Tcl 8.4 does have a config option to make use of TIP 268 features, and I presume that would make things work, but the default build of Tk ought to work with the default build of Tcl. ---------------------------------------------------------------------- >Comment By: Andreas Kupries (andreas_kupries) Date: 2006-09-25 09:58 Message: Logged In: YES user_id=75003 You are welcome. Note that this will also get rid of "tip,268" entry in tcl_platform. ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2006-09-25 09:57 Message: Logged In: YES user_id=80530 Yes, that sounds much better. Thanks. ---------------------------------------------------------------------- Comment By: Andreas Kupries (andreas_kupries) Date: 2006-09-25 09:55 Message: Logged In: YES user_id=75003 There is a better solution ... Change Tcl 8.4 to not register the patchlevel as part of the core version. At that point we can revert all changes to Tk, as they will not be needed anymore. In 8.5 the exposure of the core patchlevel for 'package require' stays, per the TIP. ---------------------------------------------------------------------- Comment By: Andreas Kupries (andreas_kupries) Date: 2006-09-25 09:13 Message: Logged In: YES user_id=75003 ::tcl::pkgconfig is an 8.5 feature and not available in Tcl 8.4. And for 8.5 we do not need this information as TIP#268 is unconditionallly activated in that revision of the core. I am working on fixing the 8.4 trouble right now. Most is simple, make the C code conditional on the same define as the Tcl core (TCL_TIP268). The index requires a bit more thought. I will likely replace the vcompare with a 'package require -exact', which will work independent of 268 active or not. ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2006-09-23 09:32 Message: Logged In: YES user_id=80530 Semi-related matter in Tcl 8.4.14... I see a tcl_platform(tip,268) entry for runtime testing of this config setting. Isn't that info better suited for [::tcl::pkgconfig] ? ---------------------------------------------------------------------- Comment By: Andreas Kupries (andreas_kupries) Date: 2006-09-22 23:03 Message: Logged In: YES user_id=75003 Fully agree. Stupid error on my part. Should have made this as conditional as was done for the Tcl core itself. But forgot :( Will work on this ASAP. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=1563874&group_id=12997 |