[Haskell-cafe] Status of Haskell + Mac + GUIs & graphics

Conal Elliott conal at conal.net
Fri Jun 3 00:19:02 CEST 2011


Thanks for these instructions, John. I had to adapt to my 32-bit ghc by
adding "+universal" to the 'port install' lines. I did not find a
gtkglext.dpatch. Has it been roled into the gtkglext darcs repo? I guess
not, since the last update was Nov 7 ("Tag 0.12.0"), according to 'darcs
changes'.

Eventually everything compiled, but I get a linking error. When building an
executable, I get

    Linking dist/build/TestImage/TestImage ...
    Undefined symbols:
      "_gdk_gl_config_get_screen", referenced from:
          _s8kj_info in libHSgtkglext-0.12.0.a(Config.o)
      "_gdk_gl_context_is_direct", referenced from:
          _s73Y_info in libHSgtkglext-0.12.0.a(Context.o)
      "_gdk_gl_context_get_gl_config", referenced from:
          _s777_info in libHSgtkglext-0.12.0.a(Context.o)
      "_gdk_gl_context_get_render_type", referenced from:
          _s7lg_info in libHSgtkglext-0.12.0.a(Context.o)
      "_gdk_gl_context_get_share_list", referenced from:
          _s75v_info in libHSgtkglext-0.12.0.a(Context.o)
      "_gdk_gl_config_get_depth", referenced from:
          _s8r6_info in libHSgtkglext-0.12.0.a(Config.o)

In ghci:

    *Main> main
    Loading package array-0.3.0.2 ... linking ... done.
    Loading package bytestring-0.9.1.10 ... linking ... done.
    ...
    Loading package cairo-0.12.0 ... linking ... done.
    Loading package glib-0.12.0 ... linking ... done.
    Loading package gio-0.12.0 ... linking ... done.
    Loading package pango-0.12.0 ... linking ... done.
    Loading package gtk-0.12.0 ... linking ... done.
    Loading package gtkglext-0.12.0 ... linking ... <interactive>:
    unknown symbol `_gdk_gl_context_get_render_type'
    ghc: unable to load package `gtkglext-0.12.0'
    *Main>

Are these failures about the missing patch?

  - Conal

On Thu, May 26, 2011 at 3:03 AM, John Lato <jwlato at gmail.com> wrote:

> fltk definitely has some good points, but I've always found it hideously
> ugly.  Of course the default gtk on osx is ugly too, but some of the
> available themes are nice.
>
> However, getting gtk with OpenGL on osx was fairly easy.  Everything worked
> out of the box except gtkglext (Haskell package).  I've submitted some
> patches for that which hopefully will be applied to the repo soon.
>
> This is what I used:
>
> git
> darcs
> ghc-7.0.3 (self-compiled)
> cabal-install
> macports gtk2 +no_x11 +quartz
> macports gtkglext +no_x11 +quartz
> gtk2hs from source
> gtkglext (Haskell) from source
>
>
> I use a self-compiled ghc, but this should work with any ghc.  Mixing ghc
> and macports can cause problems with libiconv, but the solutions are pretty
> well-known.  Since I compile ghc, I configure it to use macports's libiconv
> so there aren't any conflicts.
>
>
> > sudo port install gtkglext +no_x11 +quartz
> (wait a while...)
> > darcs get --lazy http://code.haskell.org/gtk2hs
> > cd gtk
> > cabal install gtk2hs-buildtools
> > chmod +x bootstrap.sh
> > ./bootstrap.sh "-fhave-quartz-gtk"
> (wait a while...)
> > cd ..
> > darcs get --lazy http://code.haskell.org/gtkglext
> > cd gtkglext
> > darcs apply gtkglext.dpatch
> > cabal install
>
>
> Until the source tree gets patched, you'll have to manually apply the patch
> bundle.
>
> If you want to avoid macports, it should be possible to use gtk-osx and
> gtkglext from source instead.  However, I've found gtk-osx to be unstable
> and quite difficult to build in the past, so I'd strongly recommend
> macports, at least for now.  The source install of gtkglext works just fine
> and can be used with macports gtk2 (I tested this).  Since this path already
> uses macports there's not much benefit though.
>
> Cheers,
> John L
>
>
> On Wed, May 25, 2011 at 9:07 PM, Evan Laforge <qdunkan at gmail.com> wrote:
>
>> fltk supports OpenGL on windows, X11, and OS X, though I've never used
>> it.  The thing it doesn't have is a haskell binding, but as I
>> mentioned I just bind whatever I need when I need it and since I don't
>> need much it's easy.  Dunno if this applies in your case though.
>>
>> Maybe it's my NIH, but I like to start with something too simple and
>> add what I need rather than start with something that has more than I
>> need and try to get it working.
>>
>> On Wed, May 25, 2011 at 11:58 AM, Conal Elliott <conal at conal.net> wrote:
>> > Thanks, John. Encouraging bit of news. Please do let us know what you
>> learn
>> > when you try.   - Conal
>> >
>> > On Tue, May 24, 2011 at 1:28 AM, John Lato <jwlato at gmail.com> wrote:
>> >>
>> >> You can use gtkglext to get OpenGL support.  With the official release
>> of
>> >> gtkglext-1.2.0 there's a bit of hacking involved (that was probably me
>> >> you're referring to), but it looks like the repo head has native
>> Quartz.
>> >> With any luck, you just need to build gtkglext from the repo, then the
>> >> gtkglext package.
>> >>
>> >> I might have some time to try this later today; I'll report back if I
>> get
>> >> results.
>> >>
>> >> John Lato
>> >>
>> >> On Tue, May 24, 2011 at 6:01 AM, Conal Elliott <conal at conal.net>
>> wrote:
>> >>>
>> >>> Last I tried, there wasn't native support for OpenGL with gtk, and I
>> need
>> >>> OpenGL. Then more recently, I heard of some progress in that area, but
>> >>> requiring lots of hacking to get it all compiling. Any recent news?  -
>> Conal
>> >>>
>> >>> On Mon, May 23, 2011 at 2:33 AM, John Lato <jwlato at gmail.com> wrote:
>> >>>>>
>> >>>>> Message: 17
>> >>>>> Date: Fri, 20 May 2011 15:59:51 -0700
>> >>>>> From: Evan Laforge <qdunkan at gmail.com>
>> >>>>> Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs &
>> graphics
>> >>>>> To: Erik Hesselink <hesselink at gmail.com>
>> >>>>> Cc: haskell-cafe at haskell.org
>> >>>>> Message-ID: <BANLkTi=74mM6ORtU2e192jtoOT9g49fzTQ at mail.gmail.com>
>> >>>>> Content-Type: text/plain; charset=ISO-8859-1
>> >>>>>
>> >>>>> > Note that it is supposed to be possible to build gtk2hs with
>> gtk+osx,
>> >>>>> > which will not use X11 but use the native OS X GUI. I've not been
>> >>>>> > able
>> >>>>> > to get this to work, but it's been a while since I tried. The
>> Haskell
>> >>>>> > wiki mentions it doesn't support Glade, but does support Cairo. If
>> >>>>> > this were to work, gtk2hs would be a serious option as well.
>> >>>>>
>> >>>>> I've tried this 3 or 4 times, and failed every time.  It's crazy
>> >>>>> complicated.
>> >>>>
>> >>>> I used to use this combination regularly.  IME the difficulties are
>> >>>> primarily with getting a working gtk+osx build.  Once that was
>> accomplished,
>> >>>> gtk2hs was a straightforward install, provided you build from the src
>> repo
>> >>>> with the -quartz flag.
>> >>>> Recently I've switched to using macports gtk2 with the quartz, no-x11
>> >>>> variant, which also uses native cocoa.  This is much more reliable
>> than
>> >>>> gtk+osx.  I don't know if it supports Glade though.
>> >>>> My biggest problem with wx is that there's no support for building
>> >>>> 64-bit wx applications on OS X.  If that were fixed I might prefer
>> it.
>> >>>> John Lato
>> >>>> _______________________________________________
>> >>>> Haskell-Cafe mailing list
>> >>>> Haskell-Cafe at haskell.org
>> >>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>> >>>>
>> >>>
>> >>
>> >
>> >
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110602/ef8f890e/attachment-0001.htm>


More information about the Haskell-Cafe mailing list