Ruby/TK on Mac OS X Tiger?

T

Tom Nakamura

Can anyone do a quick test to see if "require 'tk'" work by default on
Tiger?
Tom
 
P

Philipp Kern

Mark said:
Yes! Imagine my surprise :)

And it looks really nice (apart from the window background colour, but
I'm sure that one could fix this) as the OS X Tk uses native controls
where possible. I think I had the same surprised look on my eyes like
you, Mark. (=

Kind regards,
Philipp Kern
 
M

Mark Hubbart

Hi --

=20
And it looks really nice (apart from the window background colour, but
I'm sure that one could fix this) as the OS X Tk uses native controls
where possible. I think I had the same surprised look on my eyes like
you, Mark. (=3D

Yeah :) I guess they used the TclTkAqua framework. It sure seems to be
the same thing, anyway, and I don't think there was any other
distribution that used native widgets. Also, the tcl/tk extension
compiles right out of the box, so that's great for the project I'm
working on. Now I just have to start learning to use it; I never
bothered before.

cheers,
Mark
 
D

Dave Baldwin

Hi --



Yeah :) I guess they used the TclTkAqua framework. It sure seems to be
the same thing, anyway, and I don't think there was any other
distribution that used native widgets. Also, the tcl/tk extension
compiles right out of the box, so that's great for the project I'm
working on. Now I just have to start learning to use it; I never
bothered before.

cheers,
Mark
I tried this simple program from Pickaxe
require 'tk'
TkLabel.new { text 'Hello, World!'; pack }
Tk.mainloop

and got:

dyld: NSLinkModule() error
dyld: Library not loaded: /usr/X11R6/lib/libX11.6.dylib
Referenced from: /usr/lib/ruby/1.8/powerpc-darwin8.0/tcltklib.bundle
Reason: image not found
Trace/BPT trap

so it looks like it relies on X11 being installed. I did a standard
Tiger install with xcode but not x11.

Dave.
 
M

Mark Hubbart

=20
On 18 May 2005, at 02:31, Mark Hubbart wrote:
=20
I tried this simple program from Pickaxe
require 'tk'
TkLabel.new { text 'Hello, World!'; pack }
Tk.mainloop
=20
and got:
=20
dyld: NSLinkModule() error
dyld: Library not loaded: /usr/X11R6/lib/libX11.6.dylib
Referenced from: /usr/lib/ruby/1.8/powerpc-darwin8.0/tcltklib.bundle
Reason: image not found
Trace/BPT trap
=20
so it looks like it relies on X11 being installed. I did a standard
Tiger install with xcode but not x11.

It works fine here, with X11. If you are doing any unix stuff, you
really should have X11 installed anyway. The only thing that bothers
me is that this means a Ruby/Tk app will only run on a computer that
has the X11 lib.

Since Tk uses Aqua, not X11, as a display (you get an icon in the dock
and everything here), I'm guessing that it links to X11 for some other
dependencies. But it *is* a bit annoying... I wonder if that
dependency could be eliminated?

cheers,
Mark
 
M

Mark Hubbart

=20
It works fine here, with X11. If you are doing any unix stuff, you
really should have X11 installed anyway. The only thing that bothers
me is that this means a Ruby/Tk app will only run on a computer that
has the X11 lib.
=20
Since Tk uses Aqua, not X11, as a display (you get an icon in the dock
and everything here), I'm guessing that it links to X11 for some other
dependencies. But it *is* a bit annoying... I wonder if that
dependency could be eliminated?

I forgot to specify that the requirement is in the *Ruby* Tk
extension, not in the Tk framework itself. Tk apps run fine without
X11, RubyTk apps don't.

cheers,
Mark
 
H

Hidetoshi NAGAI

From: Mark Hubbart <[email protected]>
Subject: Re: Ruby/TK on Mac OS X Tiger?
Date: Thu, 19 May 2005 01:10:50 +0900
Message-ID: said:
I forgot to specify that the requirement is in the *Ruby* Tk
extension, not in the Tk framework itself. Tk apps run fine without
X11, RubyTk apps don't.

Hmmm...
I think, when do configure with "--enable-mac-tcltk-framework"
option, Ruby/Tk (tcltklib) doesn't need to link the X11 library.
Am I wrong?
Could anyone try to compile with "--enable-mac-tcltk-framework" ?

# I have no MacOSX machines. So, I cannot test it.
 
M

Mark Hubbart

From: Mark Hubbart <[email protected]>
Subject: Re: Ruby/TK on Mac OS X Tiger?
Date: Thu, 19 May 2005 01:10:50 +0900

=20
Hmmm...
I think, when do configure with "--enable-mac-tcltk-framework"
option, Ruby/Tk (tcltklib) doesn't need to link the X11 library.
Am I wrong?
Could anyone try to compile with "--enable-mac-tcltk-framework" ?

I'll try it out. I suspect Apple used it when compiling, though, since
they linked it against the framework.

configure --prefix=3D/foo/local --enable-mac-tcltk-framework --enable-pthre=
ad

...

configured, compiled, installed, moved the X11 library out of the way.
it fails while trying to load libx11.

Tried removing X11 and compiling the tcltklib extension. It wouldn't compil=
e.

Here's the extconf output from a successful configuration:

mark@eMac% ruby extconf.rb=20
checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for dlopen() in -ldl... yes
checking for log() in -lm... no
checking for tcl.h... yes
checking for tk.h... yes
checking for XOpenDisplay() in -lX11... yes
checking for Tcl_FindExecutable() in -ltcl... yes
checking for Tk_Init() in -ltk... yes
creating Makefile

Also, since my recent Tiger (OSX 10.4) upgrade, the average c file in
the ruby source gives a good 20-30 warnings about pointers differing
in signedness. Yay, megabytes of text in my scrollback buffer. :)

HTH,
Mark
 
H

Hidetoshi NAGAI

From: Mark Hubbart <[email protected]>
Subject: Re: Ruby/TK on Mac OS X Tiger?
Date: Thu, 19 May 2005 16:43:12 +0900
Message-ID: said:
I'll try it out. I suspect Apple used it when compiling, though, since
they linked it against the framework.

configure --prefix=/foo/local --enable-mac-tcltk-framework --enable-pthread (snip)
Here's the extconf output from a successful configuration:

mark@eMac% ruby extconf.rb
checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for dlopen() in -ldl... yes
checking for log() in -lm... no
checking for tcl.h... yes
checking for tk.h... yes
checking for XOpenDisplay() in -lX11... yes
checking for Tcl_FindExecutable() in -ltcl... yes
checking for Tk_Init() in -ltk... yes
creating Makefile

Thank you for your report.
Possibly, at least one of the following tests returns fail.
------------------------------------------------------------------
is_macosx = (/darwin/ =~ RUBY_PLATFORM)

mac_need_framework =
is_macosx &&
enable_config("mac-tcltk-framework", false) &&
FileTest.directory?("/Library/Frameworks/Tcl.framework/") &&
FileTest.directory?("/Library/Frameworks/Tk.framework/")
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top