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

Message: 17 Date: Fri, 20 May 2011 15:59:51 -0700 From: Evan Laforge
Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics To: Erik Hesselink Cc: haskell-cafe@haskell.org Message-ID: 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

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
Message: 17
Date: Fri, 20 May 2011 15:59:51 -0700 From: Evan Laforge
Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics To: Erik Hesselink
Cc: haskell-cafe@haskell.org Message-ID: 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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
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
wrote: Message: 17
Date: Fri, 20 May 2011 15:59:51 -0700 From: Evan Laforge
Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics To: Erik Hesselink
Cc: haskell-cafe@haskell.org Message-ID: 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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
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
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
wrote: Message: 17
Date: Fri, 20 May 2011 15:59:51 -0700 From: Evan Laforge
Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics To: Erik Hesselink
Cc: haskell-cafe@haskell.org Message-ID: 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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
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
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
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
wrote: Message: 17 Date: Fri, 20 May 2011 15:59:51 -0700 From: Evan Laforge
Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics To: Erik Hesselink Cc: haskell-cafe@haskell.org Message-ID: 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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
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.
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
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
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
wrote: Message: 17 Date: Fri, 20 May 2011 15:59:51 -0700 From: Evan Laforge
Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics To: Erik Hesselink Cc: haskell-cafe@haskell.org Message-ID: 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
On Wed, May 25, 2011 at 11:58 AM, Conal Elliott
wrote: 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

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
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
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.
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
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
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
wrote: > > Message: 17 > Date: Fri, 20 May 2011 15:59:51 -0700 > From: Evan Laforge
> Subject: Re: [Haskell-cafe] Status of Haskell + Mac + GUIs & graphics > To: Erik Hesselink > Cc: haskell-cafe@haskell.org > Message-ID: > 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
On Wed, May 25, 2011 at 11:58 AM, Conal Elliott
wrote: 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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Conal Elliott
-
Evan Laforge
-
John Lato