tk file dialogs broken?

View: New views
4 Messages — Rating Filter:   Alert me  

tk file dialogs broken?

by Jack Howarth-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

   Is anyone else seeing this problem in current
fink 10.5 unstable on powerpc-apple-darwin9.8.0?
I am finding that both pymol-py25 and sparky-py25
are both producing tk file dialogs which contain
no files or folders (for the open dialogs in both
programs). I don't believe this is a system
problem as the obsolete pymol-x11 binary from
pymol.org works fine. I have another dual G5
which hasn't been updated as recently which isn't
showing the problem. Both are running Xquartz 2.4.0.
The only other difference is that the problem machine
has Xcode 3.1.4 and the working machine has Xcode 3.1.3.
               Jack

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Fink-devel mailing list
Fink-devel@...
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Parent Message unknown Re: tk file dialogs broken?

by Jack Howarth-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

   I puzzled this one out. The culprit is the setup script for
NMPPipe (http://spin.niddk.nih.gov/NMRPipe/) which executes...

if ($?LD_LIBRARY_PATH) then
   setenv LD_LIBRARY_PATH /usr/local/NMRPipe/nmrbin.mac/lib:${LD_LIBRARY_PATH}
else
   setenv LD_LIBRARY_PATH /usr/local/NMRPipe/nmrbin.mac/lib
endif

if ($?DYLD_LIBRARY_PATH) then
   setenv DYLD_LIBRARY_PATH ${DYLD_LIBRARY_PATH}:${LD_LIBRARY_PATH}
else
   setenv DYLD_LIBRARY_PATH ${LD_LIBRARY_PATH}
endif

Do we have a convention on how to fix this sort of problem?
I would assume that since /usr/local/NMRPipe/nmrbin.mac/lib
contains...

ibBLT24.a libtcl8.4.dylib libxview.dylib tcl.timestamp
libolgx.dylib libtk8.4.dylib save xv.timestamp

that their tcltk is older than the 8.4.19 in fink and their
binaries should tolerate the newer tcltk shared libraries.
So far adding...

if ($?LD_LIBRARY_PATH) then
   setenv LD_LIBRARY_PATH /sw/lib:$LD_LIBRARY_PATH
endif

if ($?DYLD_LIBRARY_PATH) then
  setenv DYLD_LIBRARY_PATH /sw/lib:${LD_LIBRARY_PATH}
endif

to .cshrc seems to solve the issue in sparky but seems to
break pymol...

Traceback (most recent call last):
  File "/sw/lib/pymol-py25/modules/pymol/__init__.py", line 184, in <module>
    import pymol
  File "/sw/lib/pymol-py25/modules/pymol/__init__.py", line 472, in <module>
    import _cmd
ImportError: dlopen(/sw/lib/pymol-py25/modules/pymol/_cmd.so, 2): Symbol not found: __cg_jpeg_CreateCompress
  Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
  Expected in: /sw/lib/libJPEG.dylib

I find this last error rather strange. If I remove the proposed lines above that reset
LD_LIBRARY_PATH and DYLD_LIBRARY_PATH then execute...

cd /usr/local/NMRPipe/nmrbin.mac/lib
mv libtcl8.4.dylib libtcl8.4.dylib.off
mv libtk8.4.dylib libtk8.4.dylib.off

I find pymol runs fine with .cshrc setting...

LD_LIBRARY_PATH=/usr/local/NMRPipe/nmrbin.mac/lib
DYLD_LIBRARY_PATH=/usr/local/NMRPipe/nmrbin.mac/lib

however if I execute...

setenv LD_LIBRARY_PATH /sw/lib
setenv DYLD_LIBRARY_PATH /sw/lib

pymol fails as above. It seems really weird that LD_LIBRARY_PATH and DYLD_LIBRARY_PATH
can be set to a path outside of the fink lib directory and pymol runs fine but when
pointed to /sw/lib, pymol crashes. Does anyone understand this error?
             Jack


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Fink-devel mailing list
Fink-devel@...
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Parent Message unknown Re: tk file dialogs broken?

by Jack Howarth-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

   After looking over NMRPipe, it would require a major
structural overhaul in order to pass all of its components
through shell wrappers to set DYLD_LIBRARY_PATH and
LD_LIBRARY_PATH. Fortunately, only a few components really
need those set. The attached changes to the NMRPipe install.com
script eliminates the issue by resetting the RPATHs and
eliminates the breakage NMRPipe causes to fink. I'm am
trying to get upstream to adopt this change to their
installer (although it will require Xcode to be installed).
               Jack

--- install.com.org 2009-11-11 12:17:48.000000000 -0500
+++ install.com 2009-11-11 12:59:53.000000000 -0500
@@ -516,11 +516,33 @@
    endif
 endif
 
+set binDir = nmrbin.$binType
+
+# fix RPATH settings for Darwin
+if ($binType == mac) then
+   if (-e /usr/bin/install_name_tool) then
+       set origLibDir = "/net/space/delaglio/local/mac/lib"
+       set origLibDir2 = "/usr/openwin/lib"
+       install_name_tool -change "$origLibDir/libtk8.4.dylib" "$baseDir/$binDir/lib/libtk8.4.dylib" $baseDir/$binDir/nmrWish
+       install_name_tool -change "$origLibDir/libtcl8.4.dylib" "$baseDir/$binDir/lib/libtcl8.4.dylib" $baseDir/$binDir/nmrWish
+       install_name_tool -change "$origLibDir2/libxview.dylib"  "$baseDir/$binDir/lib/libxview.dylib" $baseDir/$binDir/nmrdraw.app
+       install_name_tool -change "$origLibDir2/libolgx.dylib" "$baseDir/$binDir/lib/libolgx.dylib" $baseDir/$binDir/nmrdraw.app
+       install_name_tool -change "$origLibDir2/libxview.dylib" "$baseDir/$binDir/lib/libxview.dylib" $baseDir/$binDir/xnotify.app
+       install_name_tool -change "$origLibDir2/libolgx.dylib" "$baseDir/$binDir/lib/libolgx.dylib" $baseDir/$binDir/xnotify.app
+       install_name_tool -id "$baseDir/$binDir/lib/libxview.dylib" $baseDir/$binDir/lib/libxview.dylib
+       install_name_tool -change "$origLibDir2/libolgx.dylib" "$baseDir/$binDir/lib/libolgx.dylib" $baseDir/$binDir/lib/libxview.dylib
+       install_name_tool -id "$baseDir/$binDir/lib/libolgx.dylib" $baseDir/$binDir/lib/libolgx.dylib
+       install_name_tool -change "$origLibDir2/libxview.dylib" "$baseDir/$binDir/lib/libxview.dylib" $baseDir/$binDir/lib/libolgx.dylib
+       install_name_tool -id "$baseDir/$binDir/lib/libtk8.4.dylib" $baseDir/$binDir/lib/libtk8.4.dylib
+       install_name_tool -id "$baseDir/$binDir/lib/libtcl8.4.dylib" $baseDir/$binDir/lib/libtcl8.4.dylib
+    else
+       echo "Darwin users must have Xcode installed..."
+   endif
+endif
+
 #
 # Check for nmrbin nmrtxt nmrtcl com:
 
-set binDir = nmrbin.$binType
-
 foreach i ($binDir nmrtxt nmrtcl com)
    if (!(-d $i)) then
       echo "Error: Failed to find software directory $i"
@@ -828,15 +850,17 @@
 endif
 
 if ($binType != hp) then
-   set val = "LD_LIBRARY_PATH $baseDir/$binDir/lib"
+   if ($binType != mac) then
+      set val = "LD_LIBRARY_PATH $baseDir/$binDir/lib"
 
-   echo "" >> $scriptName
-   echo "if ("'$?LD_LIBRARY_PATH'") then" >> $scriptName
-   echo "   setenv $val"':${LD_LIBRARY_PATH}'  >> $scriptName
-   echo "else" >> $scriptName
-   echo "   setenv $val" >> $scriptName
-   echo "endif" >> $scriptName
-   echo "" >> $scriptName
+      echo "" >> $scriptName
+      echo "if ("'$?LD_LIBRARY_PATH'") then" >> $scriptName
+      echo "   setenv $val"':${LD_LIBRARY_PATH}'  >> $scriptName
+      echo "else" >> $scriptName
+      echo "   setenv $val" >> $scriptName
+      echo "endif" >> $scriptName
+      echo "" >> $scriptName
+   endif
 else
    set val = "SHLIB_PATH $baseDir/$binDir/lib"
    echo "" >> $scriptName
@@ -848,17 +872,6 @@
    echo "" >> $scriptName
 endif
 
-if ($binType == mac) then
-   set val = "DYLD_LIBRARY_PATH"
-   echo "" >> $scriptName
-   echo "if ("'$?DYLD_LIBRARY_PATH'") then" >> $scriptName
-   echo "   setenv $val "'${DYLD_LIBRARY_PATH}:${LD_LIBRARY_PATH}' >> $scriptName
-   echo "else" >> $scriptName
-   echo "   setenv $val "'${LD_LIBRARY_PATH}' >> $scriptName
-   echo "endif" >> $scriptName
-   echo "" >> $scriptName
-endif
-
 echo "" >> $scriptName
 echo "if ("'!($?OPENWINHOME)'") then" >> $scriptName
 echo "   if (-d $baseDir/$binDir/openwin) then" >> $scriptName

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Fink-devel mailing list
Fink-devel@...
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Re: tk file dialogs broken?

by Martin Costabel :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Jack Howarth wrote:
[]
> ImportError: dlopen(/sw/lib/pymol-py25/modules/pymol/_cmd.so, 2): Symbol not found: __cg_jpeg_CreateCompress
>   Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
>   Expected in: /sw/lib/libJPEG.dylib
>
> I find this last error rather strange.

It is a classical error that appears whenever DYLD_LIBRARY_PATH is set
to /sw/lib and the ApplicationServices framework is invoked. Instead of
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib,
the linker then loads /sw/lib/libJPEG.dylib (which doea not exist, but
on a case-insensitive file system, /sw/lib/libjpeg.dylib will do) and
finds to its surprise that it does not contain the right symbols.

If things are compiled correctly, DYLD_LIBRARY_PATH and LD_LIBRARY_PATH
are *never* necessary.

--
Martin





------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Fink-devel mailing list
Fink-devel@...
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel