Ruby/TK on Mac OS X Tiger?

Discussion in 'Ruby' started by Tom Nakamura, May 17, 2005.

  1. Tom Nakamura

    Tom Nakamura Guest

    Can anyone do a quick test to see if "require 'tk'" work by default on
    Tiger?
    Tom
     
    Tom Nakamura, May 17, 2005
    #1
    1. Advertisements

  2. Tom Nakamura

    Mark Hubbart Guest

    Hi,

    Yes! Imagine my surprise :)

    cheers,
    Mark
     
    Mark Hubbart, May 17, 2005
    #2
    1. Advertisements

  3. Tom Nakamura

    Philipp Kern Guest

    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
     
    Philipp Kern, May 17, 2005
    #3
  4. Tom Nakamura

    Mark Hubbart Guest

    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
     
    Mark Hubbart, May 18, 2005
    #4
  5. Tom Nakamura

    Dave Baldwin Guest

    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.
     
    Dave Baldwin, May 18, 2005
    #5
  6. Tom Nakamura

    Mark Hubbart Guest

    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
     
    Mark Hubbart, May 18, 2005
    #6
  7. Tom Nakamura

    Mark Hubbart Guest

    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
     
    Mark Hubbart, May 18, 2005
    #7
  8. From: Mark Hubbart <>
    Subject: Re: Ruby/TK on Mac OS X Tiger?
    Date: Thu, 19 May 2005 01:10:50 +0900
    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.
     
    Hidetoshi NAGAI, May 19, 2005
    #8
  9. Tom Nakamura

    Mark Hubbart Guest

    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:

    [email protected]% 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
     
    Mark Hubbart, May 19, 2005
    #9
  10. From: Mark Hubbart <>
    Subject: Re: Ruby/TK on Mac OS X Tiger?
    Date: Thu, 19 May 2005 16:43:12 +0900
    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/")
     
    Hidetoshi NAGAI, May 19, 2005
    #10
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.