[Haskell-beginners] Getting Gtk2Hs working in windows

Kyle Murphy orclev at gmail.com
Sat Mar 19 02:24:52 CET 2011


I got Gtk2Hs installed finally, although I'm not happy with at least one
step of the process. First of all, the process outlined on the wiki is
incorrect, in that the glade installer apparently does not come with
everything you need in order to build the gtk module. Downloading the dev
gtk all in one bundle off the gtk site gets you most of the way to a working
install. It appears the environment variables mentioned in the wiki are also
slightly off. You need to set the following:

GTK_HOME: Location you unpacked the gtk all in one bundle to.
INCLUDE: %GTK_HOME%\include
LIB: %GTK_HOME%\lib
PATH: %GTK_HOME%\bin
PKG_CONFIG_PATH: %GTK_HOME%\lib\pkgconfig

Furthermore at least in the configuration I have it appears that running
"cabal install gtk" will fail. Instead you need to run "cabal install gtk
--global", and you need to make sure that the cmd prompt you run it from is
running with administrator permissions. I haven't gotten the glade bindings
installed yet, but that should only be a matter of time. Most likely I'll
have to go grab some other dev package off the gtk site.

-R. Kyle Murphy
--
Curiosity was framed, Ignorance killed the cat.


On Fri, Mar 18, 2011 at 20:18, Kyle Murphy <orclev at gmail.com> wrote:

> Yes, I read the thread you made. Working on a hunch I downloaded the Gtk+
> all in one bundle and installed it but used all the environment variables
> defined by the glade installer (I just changed GTK_HOME to the newly
> downloaded all in one bundle and updated the other variables as needed).
> This seems to have fixed the libraries not being found, but it now looks
> like I'm being bitten by another issue entirely. I'm getting the following
> error:
> Registering cairo-0.12.0...
> Installing library in
> C:\Users\Kyle\AppData\Roaming\cabal\cairo-0.12.0\ghc-7.0.2
> Registering cairo-0.12.0...
> setup.exe: internal error: unexpected package db stack: [UserPackageDB]
>
> What's weird is that I found a ticket for cabal that's similar to this one
> (http://hackage.haskell.org/trac/hackage/ticket/731) but it's specifically
> in the case of using a custom package db which I don't think I'm doing
> (unless the gtk package is doing something really weird). Maybe this is a
> more general issue with the latest version of Cabal? Just in case the output
> from running cabal --version:
>
> cabal-install version 0.10.2
> using version 1.10.1.0 of the Cabal library
>
> I'm going to keep experimenting and hopefully find a way to get this all
> working.
>
>
> -R. Kyle Murphy
> --
> Curiosity was framed, Ignorance killed the cat.
>
>
> On Fri, Mar 18, 2011 at 19:23, aditya siram <aditya.siram at gmail.com>wrote:
>
>> Hi Kyle,
>> I ran into this exact issue and fixed it on my Windows box at work but
>> I forgot how. I won't be back there till Monday, can I get back to you
>> then?
>>
>> If this is still an issue could send me email on Monday morning to remind
>> me?
>>
>> thanks...
>> -deech
>>
>> On Fri, Mar 18, 2011 at 5:49 PM, Kyle Murphy <orclev at gmail.com> wrote:
>> > I'm trying to follow the instructions provided on
>> > http://www.haskell.org/haskellwiki/Gtk2Hs to install Gtk2Hs in Windows
>> 7 (64
>> > bit) and running into problems.
>> > Originally I was trying to get wxHaskell installed, but it kept crashing
>> > trying to build the monolithic library due to an apparent bug in the
>> latest
>> > port of GCC, so after talking with some of the people in #haskell I was
>> > advised that Gtk2Hs was better supported and might be easier to get
>> working.
>> > For the most part, that appears to be true but I (as well as several
>> others
>> > it seems) am running into a problem where cabal can't seem to find quite
>> a
>> > few of the Gtk+ libraries (specifically z, cairo, gobject, glib, and
>> intl).
>> > Near as I can tell everything should be functioning, and running
>> pkg-config
>> > --modversion glib-2.0 outputs "2.20.3" so at least pkg-config seems to
>> be
>> > able to find glib. Looking in the Gtk+\lib\pkgconfig folder I see pc
>> files
>> > for everything but z and intl listed. Running cabal install
>> > gtk2hs-buildtools also succeeds, it's only when I get to the cabal
>> install
>> > gtk step that things fail.
>> >
>> > cmd console output for the usual environment variables:
>> >
>> > INCLUDE: C:\libxml\include;C:\Program Files (x86)\Gtk+\include
>> > LIB: C:\libxml\lib;C:\Program Files (x86)\Gtk+\lib
>> > PKG_CONFIG_PATH: C:\libxml\lib\pkgconfig;C:\Program Files
>> > (x86)\Gtk+\lib\pkgconfig
>> >
>> > I trimmed the PATH output below for everyones sanity. The vast majority
>> was
>> > stuff in the Windows folder or one of dozens of entries dumped in there
>> by
>> > some version or other of Java.
>> >
>> > PATH:
>> > C:\Program Files (x86)\Haskell\bin;
>> > C:\Program Files (x86)\Haskell Platform\2011.2.0.0\lib\extralibs\bin;
>> > C:\Program Files (x86)\Haskell Platform\2011.2.0.0\bin;
>> > C:\MinGW\bin;
>> > C:\Users\Kyle\AppData\Roaming\cabal\bin;
>> > C:\Program Files (x86)\Haskell\bin;
>> > C:\Program Files (x86)\Gtk+\bin
>> >
>> > The exact error I'm getting when building is the following:
>> > C:\Users\Kyle>cabal install gtk
>> > Warning: The package list for 'hackage.haskell.org' is 23 days old.
>> > Run 'cabal update' to get the latest list of available packages.
>> > Resolving dependencies...
>> >
>> C:\Users\Kyle\AppData\Local\Temp\cairo-0.12.05760\cairo-0.12.0\Gtk2HsSetup.hs:25:2:
>> > warning: #warning Setup.hs is guessing the version of Cabal. If
>> > compilationof Setup.hs fails use -DCABAL_VERSION_MINOR=x for Cabal
>> version
>> > 1.x.0 when building (prefixed by --ghc-option= when using the 'cabal'
>> > command)
>> > [1 of 2] Compiling Gtk2HsSetup      (
>> >
>> C:\Users\Kyle\AppData\Local\Temp\cairo-0.12.05760\cairo-0.12.0\Gtk2HsSetup.hs,
>> >
>> C:\Users\Kyle\AppData\Local\Temp\cairo-0.12.05760\cairo-0.12.0\dist\setup\Gtk2HsSetup.o
>> > )
>> > [2 of 2] Compiling Main             (
>> > C:\Users\Kyle\AppData\Local\Temp\cairo-0.12.05760\cairo-0.12.0\Setup.hs,
>> >
>> C:\Users\Kyle\AppData\Local\Temp\cairo-0.12.05760\cairo-0.12.0\dist\setup\Main.o
>> > )
>> > Linking
>> >
>> C:\Users\Kyle\AppData\Local\Temp\cairo-0.12.05760\cairo-0.12.0\dist\setup\setup.exe
>> > ...
>> > Configuring cairo-0.12.0...
>> > setup.exe: Missing dependencies on foreign libraries:
>> > * Missing C libraries: z, cairo
>> > This problem can usually be solved by installing the system packages
>> that
>> > provide these libraries (you may need the "-dev" versions). If the
>> libraries
>> > are already installed but in a non-standard location then you can use
>> the
>> > flags --extra-include-dirs= and --extra-lib-dirs= to specify where they
>> are.
>> >
>> C:\Users\Kyle\AppData\Local\Temp\glib-0.12.05760\glib-0.12.0\Gtk2HsSetup.hs:25:2:
>> > warning: #warning Setup.hs is guessing the version of Cabal. If
>> compilation
>> > of Setup.hs fails use -DCABAL_VERSION_MINOR=x for Cabal version 1.x.0
>> when
>> > building (prefixed by --ghc-option= when using the 'cabal' command)
>> > [1 of 2] Compiling Gtk2HsSetup      (
>> >
>> C:\Users\Kyle\AppData\Local\Temp\glib-0.12.05760\glib-0.12.0\Gtk2HsSetup.hs,
>> >
>> C:\Users\Kyle\AppData\Local\Temp\glib-0.12.05760\glib-0.12.0\dist\setup\Gtk2HsSetup.o
>> > )
>> > [2 of 2] Compiling Main             (
>> > C:\Users\Kyle\AppData\Local\Temp\glib-0.12.05760\glib-0.12.0\Setup.hs,
>> >
>> C:\Users\Kyle\AppData\Local\Temp\glib-0.12.05760\glib-0.12.0\dist\setup\Main.o
>> > )
>> > Linking
>> > C:\Users\Kyle\AppData\Local\Temp\glib-0.12.05760\glib-0.12.0\dist\setup\
>> > setup.exe ...
>> > Configuring glib-0.12.0...
>> > setup.exe: Missing dependencies on foreign libraries:
>> > * Missing C libraries: gobject-2.0, glib-2.0, intl
>> > This problem can usually be solved by installing the system packages
>> that
>> > provide these libraries (you may need the "-dev" versions). If the
>> libraries
>> > are already installed but in a non-standard location then you can use
>> the
>> > flags --extra-include-dirs= and --extra-lib-dirs= to specify where they
>> are.
>> > cabal: permission denied
>> >
>> >
>> > -R. Kyle Murphy
>> > --
>> > Curiosity was framed, Ignorance killed the cat.
>> >
>> > _______________________________________________
>> > Beginners mailing list
>> > Beginners at haskell.org
>> > http://www.haskell.org/mailman/listinfo/beginners
>> >
>> >
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20110318/cfdf7aea/attachment-0001.htm>


More information about the Beginners mailing list