From: Peter S. <ps....@gm...> - 2010-08-13 02:47:25
|
(I am posting this to Cafe and Gtk2Hs Users; if you subscribe to both, please reply to Cafe; but I will see your replies either place; thanks much.) I am trying to compile the Gtk2Hs demo program GladeTest.hs (located in the ...\demo\glade dir), under MS Windows XP. The error I get is: H:\proc\tools\Gtk2Hs\demo\glade>ghc --make GladeTest.hs GladeTest.hs:4:7: Could not find module `Graphics.UI.Gtk.Glade': (--Note:-- I am using H: instead of C: for reasons described later.) I did these okay: cabal install cabal-install cabal update cabal install gtk2hs-buildtools cabal install gtk and I can compile and run some other Gtk2Hs demos (that do not use Glade) okay. In general, I am assuming that I need to "cabal install foo" when Haskell module foo cannot be found during compile. (Please correct me if I am wrong.) I get an error during the glade install: H:\proc\dev\cmd>cabal install glade ... Configuring glade-0.11.1... setup.exe: The pkg-config package libglade-2.0 version >=2.0.0 is required but it could not be found. ... (the full output is listed below) I think I have package libglade-2.0 installed, because I installed the GTK+ and Glade bundle from: http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/glade3-3.6.7-with-GTK+.exe at: http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/ at: http://glade.gnome.org/ That install created tree: H:\proc\tools\Gtk+\ which includes these: H:\proc\tools\Gtk+\include\libglade-2.0\ and H:\proc\tools\Gtk+\glade-3.exe H:\proc\tools\Gtk+\bin\libglade-2.0-0.dll H:\proc\tools\Gtk+\lib\libglade-2.0.a H:\proc\tools\Gtk+\lib\pkgconfig\libglade-2.0.pc So, I'm thinking maybe my install of Gtk+ (just running glade3-3.6.7-with-GTK+.exe) was lacking somehow, or cabal somehow doesn't see my Gtk+ dir (during "cabal install glade") ? So, I tried editing my cabal config so it would see my Gtk+ tree. I uncommented and edited these lines in the main, un-indented section: extra-include-dirs: H:\proc\tools\Gtk+\include extra-lib-dirs: H:\proc\tools\Gtk+\lib but it doesn't seem to help. (my full cabal config listing is below) Regarding my use of H: instead of C:, I have a non-standard configuration of the Haskell Platform and cabal. I need to develop (Haskell code that uses Gtk2Hs, Glade, etc.) in a MS Windows network, from any of several PCs (one at a time), each of which uses a common tools tree. So, instead of installing the Haskell Platform, cabal, Gtk+, etc. to C:, I have installed them to a network drive (H:). So, I have: H:\proc\tools\Haskell Platform H:\proc\tools\Gtk+ H:\proc\tools\cabal etc. Any help or pointers would be appreciated. Thanks very much, -- Peter --- Following is various config and output info --- My PATH is: ++++++++++++++ SET P_TOOLS=H:\proc\tools SET HASK_PLAT=%P_TOOLS%\Haskell Platform\2010.1.0.0 PATH %HASK_PLAT%\bin; %P_TOOLS%\cabal\bin; %P_TOOLS%\gtk\bin; %HASK_PLAT%\lib\extralibs\bin; %HASK_PLAT%\mingw\bin ++++++++++++++ Some of my environment vars are: ============== REM This is so Cabal will get its config from the Haskell Platform, REM rather than C:\Documents and Settings\pschmitz\Application Data\cabal SET CABAL_CONFIG=%P_TOOLS%\cabal\config CABAL_CONFIG=H:\proc\tools\cabal\config PKG_CONFIG_PATH=H:\proc\tools\Gtk+\lib\pkgconfig GTK_HOME=\\fbpxfile01\users$\pschmitz\proc\tools\Gtk+ HASK_PLAT=H:\proc\tools\Haskell Platform\2010.1.0.0 INCLUDE=\\fbpxfile01\users$\pschmitz\proc\tools\Gtk+\include LIB=\\fbpxfile01\users$\pschmitz\proc\tools\Gtk+\lib Path=H:\proc\tools\Haskell Platform\2010.1.0.0\bin;H:\proc\tools\cabal\bin;H:\proc\tools\Gtk+\bin; H:\proc\tools\Haskell Platform\2010.1.0.0\lib\extralibs\bin;H:\proc\tools\Haskell Platform\2010.1. 0.0\mingw\bin; ============== The full output from "cabal install glade" is: ----------------------------- H:\proc\dev\cmd>cabal --version cabal-install version 0.8.2 using version 1.8.0.2 of the Cabal library H:\proc\dev\cmd>cabal list glade * glade Synopsis: Binding to the glade library. Latest version available: 0.11.1 Latest version installed: [ Not installed ] Homepage: http://www.haskell.org/gtk2hs/ License: LGPL-2.1 ... H:\proc\dev\cmd>cabal info glade * glade (library) Synopsis: Binding to the glade library. Latest version available: 0.11.1 Latest version installed: [ Not installed ] Homepage: http://www.haskell.org/gtk2hs/ Bug reports: http://hackage.haskell.org/trac/gtk2hs/ Description: This library allows to load externally stored user interfaces into programs. This allows alteration of the interface without recompilation of the program. Category: Graphics License: LGPL-2.1 Author: Manuel M T Chakravarty Maintainer: gtk...@so... Source repo: http://code.haskell.org/glade/ Dependencies: base >=4 && <5, array -any, containers -any, haskell98 -any, mtl -any, glib >=0.11 && <0.12, pango >=0.11 && <0.12, cairo >=0.11 && <0.12, gtk >=0.11 && <0.12 Cached: Yes Modules: Graphics.UI.Gtk.Glade H:\proc\dev\cmd>cabal install glade Resolving dependencies... C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.13100\glade-0.11.1\Gtk2HsSetup.hs:25: 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:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.13100\glade-0.11.1\Gtk2HsSetup.hs, C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.13100\glade-0.11.1\dist\setup\Gtk2HsSetup.o ) [2 of 2] Compiling Main ( C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.13100\glade-0.11.1\Setup.hs, C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.13100\glade-0.11.1\dist\setup\Main.o ) Linking C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.13100\glade-0.11.1\dist\setup\setup.exe ... Configuring glade-0.11.1... setup.exe: The pkg-config package libglade-2.0 version >=2.0.0 is required but it could not be found. cabal: Error: some packages failed to install: glade-0.11.1 failed during the configure step. The exception was: ExitFailure 1 ----------------------------- My complete Cabal config follows. The email may alter the indentation, but I was careful to maintain the original indentation when editing. -- ---------------------------------------------------------------------------------------------- -- This is the configuration file for the 'cabal' command line tool. -- The available configuration options are listed below. -- Some of them have default values listed. -- Lines (like this one) beginning with '--' are comments. -- Be careful with spaces and indentation because they are -- used to indicate layout for nested sections. remote-repo: hackage.haskell.org:http://hackage.haskell.org/packages/archive remote-repo-cache: H:\proc\tools\cabal\packages -- local-repo: -- verbose: 1 -- compiler: ghc -- with-compiler: -- with-hc-pkg: -- scratchdir: -- program-prefix: -- program-suffix: -- library-vanilla: True -- library-profiling: False -- shared: False -- executable-profiling: False -- optimization: True -- library-for-ghci: True -- split-objs: False -- executable-stripping: True -- user-install: True -- package-db: -- flags: -- -- -------------------------------- -- extra-include-dirs: -- extra-lib-dirs: extra-include-dirs: H:\proc\tools\Gtk+\include extra-lib-dirs: H:\proc\tools\Gtk+\lib -- -------------------------------- -- -- constraint: -- cabal-lib-version: -- preference: -- documentation: False -- doc-index-file: $datadir\doc\index.html -- root-cmd: -- symlink-bindir: build-summary: H:\proc\tools\cabal\logs\build.log -- build-log: remote-build-reporting: anonymous -- username: -- password: install-dirs user prefix: "H:\\proc\\tools\\cabal" -- bindir: $prefix\bin -- libdir: $prefix -- libsubdir: $pkgid\$compiler -- libexecdir: $prefix\$pkgid datadir: "H:\\proc\\tools\\Haskell Platform\\2010.1.0.0" -- datasubdir: $pkgid -- docdir: $prefix\doc\$pkgid -- htmldir: $docdir\html -- haddockdir: $htmldir install-dirs global prefix: "H:\\proc\\tools\\Haskell Platform\\2010.1.0.0" -- bindir: $prefix\bin -- libdir: $prefix -- libsubdir: $pkgid\$compiler -- libexecdir: $prefix\$pkgid datadir: "H:\\proc\\tools\\Haskell Platform\\2010.1.0.0" -- datasubdir: $pkgid -- docdir: $prefix\doc\$pkgid -- htmldir: $docdir\html -- haddockdir: $htmldir -- ---------------------------------------------------------------------------------------------- -- end of post: Trying to compile Glade Gtk2Hs demo / cabal install glade problem -- |
From: Axel S. <Axe...@in...> - 2010-08-13 07:03:53
|
Hi Peter, this is likely to only to to gtk2hs-users. On 13.08.2010, at 04:47, Peter Schmitz wrote: > > I am trying to compile the Gtk2Hs demo program GladeTest.hs (located > in the ...\demo\glade dir), under MS Windows XP. > > The error I get is: > H:\proc\tools\Gtk2Hs\demo\glade>ghc --make GladeTest.hs > GladeTest.hs:4:7: > Could not find module `Graphics.UI.Gtk.Glade': > [..] > I get an error during the glade install: > H:\proc\dev\cmd>cabal install glade > ... > Configuring glade-0.11.1... > setup.exe: The pkg-config package libglade-2.0 version >=2.0.0 is > required but it could not be found. > ... In order to make the package compile, you need to make sure that pkg-config --modversion libglade-2.0 returns a version number and not an error. For this to work, you need to have pkg-config on your path and set PKG_CONFIG_PATH to the directory containing the glade .pc file. I'll check the installation instructions before the next release. The pkg-config program is quite ubiquitous but only used to link against desktop/ui libraries which most people probably have no exposure to. Cheers, Axel |
From: Ivan V. <ve...@gm...> - 2010-08-13 08:14:03
|
Hi Peter! I had the same problem some weeks ago. As Axel suggests you should have this: pkg-config --modversion libglade-2.0 resulting in a correct version of libglade. While resolving this version it uses .pc files which contains some packages configuration. I have these files under: D:\dev\gtk\lib\pkgconfig\ where d:\dev\gtk is a place for my GTK installation. The problem was that despite the fact I've copied libglade-2.0.pc to that directory (from the separate glade installation, along with all the related .dll-s .dll.a and so on), it still didn't work, because the content of this file was the following: prefix=c:/libglade exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include # so people can do "pkg-config --variable moduledir libglade-2.0" # (which is broken - users can now use the LIBGLADE_MODULE_PATH # environment variable moduledir=${libdir}/libglade/2.0 Name: Libglade Description: a library for dynamically loading GLADE interface files Version: 2.6.4 Requires: gtk+-2.0 libxml-2.0 Libs: -L${libdir} -lglade-2.0 Cflags: -I${includedir}/libglade-2.0 As you can see it contains libxml-2.0 in the dependencies ("Requires:" line), but I didn't have .pc file for this libxml (although I had libxml-2.0.dll, so it should run fine). So I just commented it out and left only "Requires: gtk+-2.0". And this helped, "pkg-config --modversion libglade-2.0" returned the version correctly and I was able to install glade package successfully. Hope this will help. Best regards, Ivan Veselov. On Fri, Aug 13, 2010 at 10:03, Axel Simon <Axe...@in...> wrote: > Hi Peter, > > this is likely to only to to gtk2hs-users. > > > On 13.08.2010, at 04:47, Peter Schmitz wrote: > >> >> I am trying to compile the Gtk2Hs demo program GladeTest.hs (located >> in the ...\demo\glade dir), under MS Windows XP. >> >> The error I get is: >> H:\proc\tools\Gtk2Hs\demo\glade>ghc --make GladeTest.hs >> GladeTest.hs:4:7: >> Could not find module `Graphics.UI.Gtk.Glade': >> > [..] >> I get an error during the glade install: >> H:\proc\dev\cmd>cabal install glade >> ... >> Configuring glade-0.11.1... >> setup.exe: The pkg-config package libglade-2.0 version >=2.0.0 is >> required but it could not be found. >> ... > > In order to make the package compile, you need to make sure that > > pkg-config --modversion libglade-2.0 > > returns a version number and not an error. For this to work, you need > to have pkg-config on your path and set PKG_CONFIG_PATH to the > directory containing the glade .pc file. > > I'll check the installation instructions before the next release. The > pkg-config program is quite ubiquitous but only used to link against > desktop/ui libraries which most people probably have no exposure to. > > Cheers, > Axel > |
From: Peter S. <ps....@gm...> - 2010-08-13 22:47:53
|
Thanks so very much Axel and Ivan. You were both absolutely correct and I can compile Glade apps now fine. Great help! The tricky part (for me) would have been looking at the error from cabal install glade: "setup.exe: The pkg-config package libglade-2.0 version >=2.0.0 is required but it could not be found." and determining that the problem was that libglade-2.0.pc needed the edit you described, but I made the edit and it all works now. -- Peter And I guess I don't need these edits to cabal/config after all: -- -------------------------------- -- extra-include-dirs: -- extra-lib-dirs: extra-include-dirs: H:\proc\tools\Gtk+\include extra-lib-dirs: H:\proc\tools\Gtk+\lib -- -------------------------------- New "cabal install glade" after libglade-2.0.pc edit: H:\proc\dev\cmd>pkg-config --modversion libglade-2.0 2.6.4 H:\proc\dev\cmd>cabal install glade Resolving dependencies... C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\Gtk2HsSetup.hs:25: 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:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\Gtk2HsSetup.hs, C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\dist\setup\Gtk2HsSetup.o ) [2 of 2] Compiling Main ( C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\Setup.hs, C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\dist\setup\Main.o ) Linking C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\dist\setup\setup.exe ... Configuring glade-0.11.1... Preprocessing library glade-0.11.1... Building glade-0.11.1... [1 of 2] Compiling Graphics.UI.Gtk.Glade.Types ( dist\build\Graphics\UI\Gtk\Glade\Types.hs, dist\build\Graphics\UI\Gtk\Glade\Types.o ) [2 of 2] Compiling Graphics.UI.Gtk.Glade ( dist\build\Graphics\UI\Gtk\Glade.hs, dist\build\Graphics\UI\Gtk\Glade.o ) Registering glade-0.11.1... Installing library in H:\proc\tools\cabal\glade-0.11.1\ghc-6.12.1 Registering glade-0.11.1... H:\proc\dev\cmd> |
From: Ivan V. <ve...@gm...> - 2010-08-31 10:34:45
|
Hi all! As I've been asked about the minor details of this Glade installation procedure several times, I decided to post it here once more with more detailed instructions. Hope it might be helpful for someone again! :) Here we go: ======================================================== I will refer to my GTK installation folder as "$GTK" later on. First, you should take a Glade installation from the official site: http://glade.gnome.org/ Following "Windows binaries" link we can get various installers, I have 3.6.6: http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/glade3-3.6.6-with-GTK+.exe After the installation, we can find a lot of useful files inside Glade directory: 1) include/libglade-2.0/glade/* with .h-files which I copied to "include" folder of my GTK installation (I mean that I copied the entire directory libglade-2.0 with all its subdirectories to my $GTK folder) 2) lib/libglade-2.0.a lib/libglade-2.0.dll.a lib/libglade-2.0.la which I copied to "lib" folder in $GTK 3) lib/pkgconfig/libglade-2.0.pc (this is that .pc file which you need to edit a bit further) which I copied to "lib/pkgconfig" of $GTK (this folder contains all these .pc files needed for package dependencies). Then you have to comment "libxml" dependency in your .pc file (as I've already told in my previous mailing-list message). Content of my libglade-2.0.pc (it has some paths, but I didn't change them): prefix=c:/libglade exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include # so people can do "pkg-config --variable moduledir libglade-2.0" # (which is broken - users can now use the LIBGLADE_MODULE_PATH # environment variable moduledir=${libdir}/libglade/2.0 Name: Libglade Description: a library for dynamically loading GLADE interface files Version: 2.6.4 Requires: gtk+-2.0 #libxml-2.0 Libs: -L${libdir} -lglade-2.0 Cflags: -I${includedir}/libglade-2.0 To test the things you can use the following command: pkg-config --modversion libglade-2.0 It gives me "2.6.4" on my system. After this all should be fine and you should be able to compile/install Haskell Glade module from cabal. Good luck! :) -- WBR, Ivan N. Veselov On Sat, Aug 14, 2010 at 01:47, Peter Schmitz <ps....@gm...> wrote: > Thanks so very much Axel and Ivan. > You were both absolutely correct and I can compile Glade apps now fine. > Great help! > > The tricky part (for me) would have been looking at the error from > cabal install glade: > "setup.exe: The pkg-config package libglade-2.0 version >=2.0.0 > is required but it could not be found." > and determining that the problem was that libglade-2.0.pc needed the > edit you described, > but I made the edit and it all works now. > > -- Peter > > > And I guess I don't need these edits to cabal/config after all: > -- -------------------------------- > -- extra-include-dirs: > -- extra-lib-dirs: > extra-include-dirs: H:\proc\tools\Gtk+\include > extra-lib-dirs: H:\proc\tools\Gtk+\lib > -- -------------------------------- > > > > New "cabal install glade" after libglade-2.0.pc edit: > > H:\proc\dev\cmd>pkg-config --modversion libglade-2.0 > 2.6.4 > > H:\proc\dev\cmd>cabal install glade > Resolving dependencies... > C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\Gtk2HsSetup.hs:25: > 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:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\Gtk2HsSetup.hs, > C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\dist\setup\Gtk2HsSetup.o > ) > > [2 of 2] Compiling Main > ( C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\Setup.hs, > C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\dist\setup\Main.o > ) > > Linking C:\DOCUME~1\pschmitz\LOCALS~1\Temp\glade-0.11.12236\glade-0.11.1\dist\setup\setup.exe > ... > Configuring glade-0.11.1... > Preprocessing library glade-0.11.1... > Building glade-0.11.1... > > [1 of 2] Compiling Graphics.UI.Gtk.Glade.Types > ( dist\build\Graphics\UI\Gtk\Glade\Types.hs, > dist\build\Graphics\UI\Gtk\Glade\Types.o ) > > [2 of 2] Compiling Graphics.UI.Gtk.Glade > ( dist\build\Graphics\UI\Gtk\Glade.hs, dist\build\Graphics\UI\Gtk\Glade.o ) > > Registering glade-0.11.1... > Installing library in H:\proc\tools\cabal\glade-0.11.1\ghc-6.12.1 > Registering glade-0.11.1... > > H:\proc\dev\cmd> > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Gtk2hs-users mailing list > Gtk...@li... > https://lists.sourceforge.net/lists/listinfo/gtk2hs-users > |
From: Peter S. <ps....@gm...> - 2010-08-31 20:58:21
|
Ivan, Thanks very much for this summary; it helps! (Isn't Haskell + GTK + Gtk2Hs + Glade a nice development platform? :-) -- Peter On Tue, Aug 31, 2010 at 3:34 AM, Ivan Veselov <ve...@gm...> wrote: > Hi all! > > As I've been asked about the minor details of this Glade installation > procedure several times, I decided to post it here once more with > more detailed instructions. Hope it might be helpful for someone > again! :) > > Here we go: ... |
From: Andy S. <laz...@gm...> - 2010-08-31 23:35:41
|
Peter Schmitz <ps....@gm...> writes: > Ivan, > Thanks very much for this summary; it helps! > (Isn't Haskell + GTK + Gtk2Hs + Glade a nice development platform? :-) Yes! Gtk2hs still not perfect, some APIs haven't finish, and many APIs need test. We hope more and more people join gtk2hs and report bug to build best graphics development platform for Haskell! Thanks, -- Andy |