Hi Simon,
Simon Marlow <marlo...@gmail.com> writes:

> On 09/04/2010 17:14, Axel Simon wrote:
>>
>> On 09.04.2010, at 17:13, Simon Marlow wrote:
>>
>>> On 09/04/2010 16:01, Simon Marlow wrote:
>>>
>>>> Now I have a different problem:
>>>>
>>>> /home/simonmar/fp/bin/x86_64-unknown-linux/ghc-6.12.1.20100330 +RTS -RTS
>>>> -c soegtk/Graphics/SOE/Gtk.hs -o soegtk/Graphics/SOE/Gtk.o -O -isoegtk
>>>> -package-conf package.conf.inplace -hide-all-packages -ignore-package
>>>> soegtk -package base-4.2.0.1 -package old-time-1.0.0.4 -package
>>>> mtl-1.1.0.2 -package glib-0.10.1 -package gtk-0.10.1 -package
>>>> cairo-0.10.1 -package-name soegtk-0.10.1 '-#include<gtk/hsgtk.h>'
>>>> -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
>>>> -I/usr/include/pango-1.0 -I/usr/include/glib-2.0
>>>> -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-2.0
>>>> -I/usr/lib64/gtk-2.0/include -I/usr/include/cairo -I/usr/include/atk-1.0
>>>> -I.
>>>> <command line>: cannot satisfy -package gtk-0.10.1:
>>>> gtk-0.10.1 is unusable due to missing or recursive dependencies:
>>>> gio-0.10.1
>>>> (use -v for more information)
>>>> make[1]: *** [soegtk/Graphics/SOE/Gtk.o] Error 1
>>>>
>>>> I presume I need to build gio, and it's not being built because I don't
>>>> have the development library installed?
>>>
>>> Having poked around a bit more, I see that
>>>
>>> - configure.ac wants gio >= 2.16.4 to enable gio support
>>> - gtk now depends on gio
>>> - this distro (Fedora 9) only provides gio 2.16.3
>>>
>>> So I'm out of luck. Looks like some updates to the configure script are
>>> needed so this fails a bit earlier though?
>>>
>>
>> Ok, so gio is fairly new and we should probably try to make Gtk build
>> without it. As far as I understand, there are only a few data types that
>> GIO uses and which are also used by Gtk. If that is the sole reason that
>> gtk depends on gio, then maybe we can conditionally compile those gtk
>> functions that use the gio data types.
>>
>> Thanks Simon for bearing with us. I really want to keep Gtk2Hs compiling
>> against every release of Gtk+ starting from 2.8 (which is where Cairo
>> was introduced).
>
> I've been away for a week, and I see there is much upheaval in the gtk2hs 
> camp.  I really wanted to
> get gtk2hs built with GHC 6.12.1 so that I could investigate Andy's bug with 
> forkProcess
>
> http://hackage.haskell.org/trac/ghc/ticket/3918
I have found why, below is notes i wrote in
`gtk2hs/demo/embedded/Notes.txt` :

------------------------------> Notes start <------------------------------
If you use GtkSocket/GtkPlug with multi-processes framework.
DON'T use function `forkProcess` to spawn process!

Because `forkProcess` just simple call C `fork`, haven't any protection,
then two processes will got *race condition*,
you will get X Window error (such as `BadWindow`) when those two processes
try to access same X resource.

So use `runProcess` or `runCommand` instead.
Above two functions add MVar lock when spawn processes (call 
c_runInteractiveProcess)
to make sure two processes won't get *race condition* problem on X resource.
------------------------------> Notes end   <------------------------------

>
> I can't use the latest release of gtk2hs because it doesn't work with GHC 
> 6.12.x.  So if anyone has
> any advice, please let me know!
Axel has working on cabalized version, i think he will release it very
soon.

Cheers,

  -- Andy

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Gtk2hs-devel mailing list
Gtk2hs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

Reply via email to