SCIENTIFIC-LINUX-USERS Archives

May 2008

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Jon Peatfield <[log in to unmask]>
Reply To:
Jon Peatfield <[log in to unmask]>
Date:
Mon, 12 May 2008 20:57:52 +0100
Content-Type:
TEXT/PLAIN
Parts/Attachments:
TEXT/PLAIN (57 lines)
On Mon, 12 May 2008, Shane Voss wrote:

> John Summerfield wrote:
<snip>
>> >  Am I missing something?
>> > 
>> >     Shane
>> >
>>  This?
>>         package require Tclx
>> 
>
> Sorry John, I've either missed something else or you need to use more words.
>
> On my system, I have installed   tclx  using the above named RPM.
> I can see that it has installed  /usr/lib/tclx8.4/libtclx8.4.so  but when I 
> then try to run an executable which has been built against it, it fails to 
> load because that file can't be found.
>
> If I tweak my system or my environment I can make it work.  My question is 
> shouldn't a well behaved RPM do that for me?

Code using the tclsh/wish interpretter should just need to ask for the 
tclx to be loaded using the package require magic.

Recent versions of tclx are implemented as a tcl extension and the loading 
of any shared libraries (as needed) happens when the tcl interpretter 
pulls in the tclx package.

If a binary is explictly linked against libtclx (part of the requirements 
for some embeded tcl/tclx stuff perhaps) then it almost certainly wasn't 
compiled against *this* version of tcl/tclx - so all bets are probably off 
and who can tell if it will work.

In earlier versions of sl (3,4 anyway) the tclx (8.3.x) package was rather 
more complicated because it essentially was a complete additional tcl 
system (and it provided the the /usr/bin/tcl, /usr/bin/wishx commands 
etc).  With sl5 the tcl is the newer 8.4 release so tclx no longer needs 
to implement so much itself...  Also note that many features from tclx 
have migrated over to standard tcl over the years so the code might not 
actually need tclx any more.

See http://wiki.tcl.tk/207 for a bit more info about tclx history.

What binaries do you have that explicitly link against libtclx?  Where 
were they built?  What does ldd show them as requesting?  Maybe the app 
just needs rebuilding, or if it dates from before tcl-8.4 it might need a 
bit more work first.

So why does the tclx rpm run ldconfig in %post etc?  I don't know for sure 
but just *maybe* that is to cope with an upgrade from the older tclx which 
did put libtclx etc into %{_libdir} (/usr/lib{,64}/ as appropriate).

-- 
Jon Peatfield,  Computer Officer,  DAMTP,  University of Cambridge
Mail:  [log in to unmask]     Web:  http://www.damtp.cam.ac.uk/

ATOM RSS1 RSS2