Thread: [tcltk-perl] Re[2]: FAIL Tcl-Tk-0.80 i686-linux 2.4.18-14
Brought to you by:
hobbs
From: Vadim K. <va...@vk...> - 2004-05-07 11:41:51
|
SR> This is on a RedHat 8.0 machine with the default Tcl and Tk (both SR> version 8.3) installed from RPM: SR> tclsh SR> % package require Tk SR> can't find package Tk SR> % SR> wish SR> % package require Tk SR> 8.3 SR> % This exactly means your tcl misses some autoloading support. There must exist a file /usr/local/lib/tk8.3/pkgIndex.tcl It has following contents on my cygwin system: if {[package vcompare [package provide Tcl] 8.4] != 0} { return } package ifneeded Tk 8.4 [list load [file join $dir .. .. bin tk84.dll] Tk] Yours will differ. However this either means RedHat distribution lacks something, or we must perform required actions in Makefile.PL I hope Tcl/Tk experts will give an advice? (Jeff, could you please advice?) Best regards, Vadim. |
From: Slaven R. <sr...@ic...> - 2004-05-07 12:20:41
|
On Fri, 2004-05-07 at 13:43, Vadim Konovalov wrote: > SR> This is on a RedHat 8.0 machine with the default Tcl and Tk (both > SR> version 8.3) installed from RPM: > > SR> tclsh > SR> % package require Tk > SR> can't find package Tk > SR> % > > SR> wish > SR> % package require Tk > SR> 8.3 > SR> % > > This exactly means your tcl misses some autoloading support. > > There must exist a file /usr/local/lib/tk8.3/pkgIndex.tcl > > It has following contents on my cygwin system: > if {[package vcompare [package provide Tcl] 8.4] != 0} { return } > package ifneeded Tk 8.4 [list load [file join $dir .. .. bin tk84.dll] Tk] > > Yours will differ. locate pkgIndex.tcl returns the following list (excluding private and source directories): /usr/lib/tcl8.3/http1.0/pkgIndex.tcl /usr/lib/tcl8.3/http2.3/pkgIndex.tcl /usr/lib/tcl8.3/msgcat1.1/pkgIndex.tcl /usr/lib/tcl8.3/opt0.4/pkgIndex.tcl /usr/lib/tcl8.3/tcltest1.0/pkgIndex.tcl /usr/local/lib/tcl8.4/http2.4/pkgIndex.tcl /usr/local/lib/tcl8.4/http1.0/pkgIndex.tcl /usr/local/lib/tcl8.4/opt0.4/pkgIndex.tcl /usr/local/lib/tcl8.4/msgcat1.3/pkgIndex.tcl /usr/local/lib/tcl8.4/tcltest2.2/pkgIndex.tcl /usr/local/lib/tk8.4/pkgIndex.tcl /usr/local/lib/Tkzinc3.2.94/pkgIndex.tcl The /usr/lib bits are from the standard RedHat install, and the /usr/local/lib ones are from my own install, but this version is apparently not used. Regards, Slaven > However this either means RedHat distribution lacks something, or we > must perform required actions in Makefile.PL > > I hope Tcl/Tk experts will give an advice? > (Jeff, could you please advice?) > > Best regards, > Vadim. > -- Slaven Rezic > Development iconmobile GmbH > Methfesselstr. 32-36 > D-10965 Berlin phone +49 30 890 686 49 > fax +49 30 890 686 50 sr...@ic... > http://www.iconmobile.com |
From: Vadim K. <va...@ar...> - 2004-05-07 12:37:50
|
> > SR> This is on a RedHat 8.0 machine with the default Tcl and Tk (both > > SR> version 8.3) installed from RPM: > > > > SR> tclsh > > SR> % package require Tk > > SR> can't find package Tk > > SR> % > > > > SR> wish > > SR> % package require Tk > > SR> 8.3 > > SR> % > > > > This exactly means your tcl misses some autoloading support. > > > > There must exist a file /usr/local/lib/tk8.3/pkgIndex.tcl > > > > It has following contents on my cygwin system: > > if {[package vcompare [package provide Tcl] 8.4] != 0} { return } > > package ifneeded Tk 8.4 [list load [file join $dir .. .. bin tk84.dll] Tk] > > locate pkgIndex.tcl returns the following list (excluding private and > source directories): > > /usr/lib/tcl8.3/http1.0/pkgIndex.tcl > /usr/lib/tcl8.3/http2.3/pkgIndex.tcl > /usr/lib/tcl8.3/msgcat1.1/pkgIndex.tcl > /usr/lib/tcl8.3/opt0.4/pkgIndex.tcl > /usr/lib/tcl8.3/tcltest1.0/pkgIndex.tcl See? That file do not exists > /usr/local/lib/tcl8.4/http2.4/pkgIndex.tcl > /usr/local/lib/tcl8.4/http1.0/pkgIndex.tcl > /usr/local/lib/tcl8.4/opt0.4/pkgIndex.tcl > /usr/local/lib/tcl8.4/msgcat1.3/pkgIndex.tcl > /usr/local/lib/tcl8.4/tcltest2.2/pkgIndex.tcl > /usr/local/lib/tk8.4/pkgIndex.tcl See? Your tk8.4 is better, if you'll try it, you'll probably get better results. > /usr/local/lib/Tkzinc3.2.94/pkgIndex.tcl > > The /usr/lib bits are from the standard RedHat install, and the > /usr/local/lib ones are from my own install, but this version is > apparently not used. Ok, to support standard RedHat 8.0 without extra recompilation we need to work around this error. Besides, AFAIK RedHat distribution comes without perlTk, so Tcl::Tk could be desried there more than usual... Asking from tcl...@li... , how do we decide to do? Best regards, Vadim. |
From: Jeff H. <je...@Ac...> - 2004-05-07 19:08:36
|
> SR> This is on a RedHat 8.0 machine with the default Tcl and Tk (both > SR> version 8.3) installed from RPM: IMO RedHat is a fairly crappy distro that has a poor package maintenance record in places (in fact, they totally screwed up things in RH9 for Tcl and Python by making incorrect core changes without first contacting either core team - which are always active and responsive). RH9 was worse than 8, and Fedora just isn't improving their record. So that's my rant ... That said, 8.3 didn't get "proper" support for Tk as a full loadable package until 8.3.4 IIRC (release 2001). I know that all distros didn't add a pkgIndex.tcl file to Tk though, so you might just need to add that. In any case, I'd like to encourage use of 8.4 instead, and perhaps add some warnings to that effect in Makefile.PL. Hmmm, on second thought, I want to *force* 8.4, as I am using several 8.4-isms in the Tk.pm code anyway. It's been the stable release since 2002 and is definitely in good shape now. It also allows some fancy stuff - just yesterday I got dll-based base kits working. This means all of Tcl/Tk + extensions can be housed in a single dll (.so, whatever) that you use for your apps. Soooo ... I'll probably be putting in code in the Makefile.PL and runtime stuff to force the use of 8.4. That's actually the case to do things right anyway, I just didn't force it in the build yet. Using stubs (--usestubs), you can actually build against 8.3 and run properly against 8.4, but we should just force the 8.4 issue as early as possible (no surprises). The easiest thing to do when 8.4 isn't the default on your path (otherwise you shouldn't need to do) is to use the --tclsh or --tclconfig options to the Tcl Makefile.PL. Jeff |
From: Vadim K. <va...@ar...> - 2004-05-07 23:28:23
|
> In any case, I'd like to encourage use of 8.4 instead, and > perhaps add some warnings to that effect in Makefile.PL. Hmmm, Encouraging is good, but IMHO even more good making tool working even with old stuff, without downloading new updates. Yat I agree that supporting old versions is low priority task and supporting obsolete versions is not necessary. > Soooo ... I'll probably be putting in code in the Makefile.PL and > runtime stuff to force the use of 8.4. That's actually the case Makefile.PL should deny all configurations that not supported, otherwise there will be FAIL's reports. Even not warnings, just strictly denying to go further. Best regards, Vadim. |
From: Jeff H. <je...@Ac...> - 2004-05-08 00:20:24
|
> > In any case, I'd like to encourage use of 8.4 instead, and perhaps add > > some warnings to that effect in Makefile.PL. Hmmm, > > Encouraging is good, but IMHO even more good making tool > working even with old stuff, without downloading new updates. > Yat I agree that supporting old versions is low priority task > and supporting obsolete versions is not necessary. If they want to work with Tcl 8.3, they can use the pre-0.77 Tcl module. We are doing current development, and the current Tcl release is Tcl 8.4 (has been the stable for a couple years now). > > Soooo ... I'll probably be putting in code in the Makefile.PL and > > runtime stuff to force the use of 8.4. That's actually the case > > Makefile.PL should deny all configurations that not > supported, otherwise there will be FAIL's reports. Even not > warnings, just strictly denying to go further. I have the Makefile.PL patches ready to accomodate this (throw errors, not warnings, for any attempt to build against pre-8.4 versions of Tcl). Jeff |