I'm having some existing code that I'm not able to run without gtk2hs. But I can't get it installed. I tried with cabal before but found out that the correct solution for now is to build from darcs. So I do :
darcs get --lazy http://code.haskell.org/gtk2hs
cd gtk2hs
export PATH=$HOME/Library/Haskell/bin:$PATH
sh bootstrap.sh
And get this :
Resolving dependencies...
Configuring gio-0.12.4.1...
setup: The pkg-config package gio-2.0 version >=2.16.4 is required but it
could not be found.
Resolving dependencies...
Configuring cairo-0.12.4.1...
setup: The pkg-config package cairo version >=1.2.0 is required but it could
not be found.
Resolving dependencies...
Configuring pango-0.12.4.1...
setup: At least the following dependencies are missing:
cairo >=0.12.0 && <0.13
Package has never been configured. Configuring with default flags. If this
fails, please run configure manually.
Resolving dependencies...
Configuring gtk-0.12.4.1...
setup: At least the following dependencies are missing:
cairo >=0.12.0 && <0.13, pango >=0.12.0 && <0.13
setup: Run the 'configure' command first.
setup: Run the 'configure' command first.
setup: Run the 'configure' command first.
Package has never been configured. Configuring with default flags. If this
fails, please run configure manually.
Resolving dependencies...
Configuring gtk3-0.12.4.1...
setup: At least the following dependencies are missing:
cairo >=0.12.0 && <0.13, pango >=0.12.0 && <0.13
setup: Run the 'configure' command first.
setup: Run the 'configure' command first.
setup: Run the 'configure' command first.
I'm on osx with most recent versions of cabal and darcs.
You must install the gtk C libraries before you install the Haskell bindings to them. Visit the installation instructions and check the section for your operating system if you need instructions on how to do this.
Related
I want to run a Setup.hs file to install svgcairo library, So I run first the command runhaskell Setup.hs configure --prefix=/usr/local but it's give me the following error :
Configuring svgcairo-0.13.0.1...
setup: At least the following dependencies are missing:
cairo >=0.13.0.0 && <0.14, glib >=0.13.0.0 && <0.14
This is confused me, since both cairo and glib are installed with the correct versions !
to make it convince, I have run the commands cabal install cairo and cabal install glib, and the following output appear:
Resolving dependencies...
All the requested packages are already installed:
cairo-0.13.0.6
Use --reinstall if you want to reinstall anyway.
Resolving dependencies...
All the requested packages are already installed:
glib-0.13.0.7
Use --reinstall if you want to reinstall anyway.
Note : I tried to run the Setup.hs file with runhaskell Setup.hs but its tell me that no command given (try --help)
cabal install defaults to installing to the local package database. Setup.hs defaults to installing to the global package database (hence will ignore anything installed in the local package database when trying to satisfy dependencies). You can change the behavior of either by passing --local or --global to the appropriate stage -- configure for Setup.hs, and configure or install for cabal.
I am using ghc-7.6.3 with cabal-install version 1.18.0.5 using version 1.18.1.3 of the Cabal library. My operating system is Debian Wheezy 7.5.
I have a fresh cabal install, and that I have removed the .ghc from my home directory.
After that I have changed the cabal config file and set:
remote-repo: stackage-nightly-2014-12-15:http://www.stackage.org/snapshot/nightly-2014-12-15
After that I did (following this documentation)
$ cabal update
$ cabal install alex happy yesod-bin
and the build complained that it cannot build package system-filepath-0.4.12.
So, I am trying to build package system-filepath-0.4.12 manually. After unpacking the archive, I cd-ed to the unpacked folder and entered:
$ ghc -o Setup Setup.hs
$ ./Setup configure
which gives:
Configuring system-filepath-0.4.12...
Setup: At least the following dependencies are missing:
text >=0.7.1
But
$ cabal install text
gives:
Resolving dependencies...
All the requested packages are already installed:
text-1.1.1.3
Use --reinstall if you want to reinstall anyway.
How is it possible that a package is reported as installed and missing at the same time?
Should I look for a more stable remote-repo configuration, is there something I can check that might fix the missing text package? Note that I am not using a sandbox.
EDIT
Thanks for pointing out that there are two package databases.
I have now tried both
$ cabal configure
$ cabal build
and
$ Setup configure --user
$ Setup build
Both give no error during configuration, but give the following error during the build phase:
Building system-filepath-0.4.12...
Preprocessing library system-filepath-0.4.12...
/usr/bin/ld: cannot find -lHStext-1.1.1.3-ghc7.8.3
collect2: error: ld returned 1 exit status
Try this instead
cd system-filepath--0.4.12
cabal configure
I am not sure why, but this works for me, whereas Setup.hs gave me the same error (truth be told, I always do it the cabal configure way, and am not sure if your way should also work).
There are (at least) two package databases: a global one available to all users, and a user-specific one. By default, Setup.hs looks in (and installs to) the global one, and cabal-install looks in (and installs to) the user-specific one. You can manually choose one or the other with --user and --global; so, you could fix this either by using
./Setup configure --user
or by
cabal install text --global
You can see the current state of the package databases with ghc-pkg, which will report information about both by default.
I am trying to install helm. When I try to install it, however I get this error:
$ cabal install helm
Resolving dependencies...
Configuring sdl2-1.1.0...
cabal: The pkg-config package 'sdl2' version >=2.0.3 is required but it could
not be found.
Failed to install sdl2-1.1.0
cabal: Error: some packages failed to install:
helm-0.6.1 depends on sdl2-1.1.0 which failed to install.
sdl2-1.1.0 failed during the configure step. The exception was:
ExitFailure 1
When I go to install sdl2 by itself, I get a similar message.
$ cabal install sdl2
Resolving dependencies...
Configuring sdl2-1.1.0...
cabal: The pkg-config package 'sdl2' version >=2.0.3 is required but it could
not be found.
Failed to install sdl2-1.1.0
cabal: Error: some packages failed to install:
sdl2-1.1.0 failed during the configure step. The exception was:
ExitFailure 1
I don't understand. According to Hackage, sdl2 is at version 1.1, but installing it requires version 2.0.3? I've tried this in and out of a sandbox. Results of ghc-pkg list are here if you think they're relevant: http://pastebin.com/tFrsfPFe
I'm on Ubuntu btw.
Help?
Another thing which could happen (happened to me) for other installs is that the PKG_CONFIG_PATH variable might not point to the package config file (sdl2.pc, for me in the /usr/local/lib/pkgconfig directory). pkg-config uses some default directories ('/usr/lib/pkgconfig' and '/usr/share/pkgconfig'), but if the sdl.pc file isn't in one of these, you'll have to specify the directory in the environment variable. You can check this with echo $PKG_CONFIG_PATH
If it turns out you need to set the variable, just use export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig (or to whatever directory your sdl2.pc file lives in)
I ran into the same problem, and I just want to add my solution here for the record. The native sdl2 libraries need to be installed first by following the directions here: https://github.com/haskell-game/sdl2#building
I was trying to install lambdabot with ghc-7.8.2, but encountered an error while installing haskell-src-exts. To diagnose the issue, I tried
cabal install haskell-src-exts -v3
and get the following errors. I am using Windows XP 64-bit. I don't know if this has anything to do with spaces in windows directory names. Any ideas/pointer how to fix the problem?
...
[_18] next goal: array (dependency of haskell-src-exts-1.15.0.1)
[_18] trying: array-0.5.0.0/installed-d6d...
[_19] done
Ready to install haskell-src-exts-1.15.0.1
Extracting C:\Documents and Settings\ting\Application
Waiting for install task to finish...
Data\cabal\packages\hackage.haskell.org\haskell-src-exts\1.15.0.1\haskell-src-exts-1.15.0.1.tar.gz
to C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008...
Renaming
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist'
to
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist-tmp'.
creating
C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist
Renaming
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist-tmp'
to
'C:\DOCUME~1\ting\LOCALS~1\Temp\haskell-src-exts-1.15.0.1-3008\haskell-src-exts-1.15.0.1\dist'.
Failed to install haskell-src-exts-1.15.0.1
Last 10 lines of the build log ( C:\Documents and Settings\ting\Application Data\cabal\logs\haskell-src-exts-1.15.0.1.log ):
cabal.exe: C:\Documents and Settings\ting\Application
Data\cabal\logs\haskell-src-exts-1.15.0.1.log: does not exist
I figured it out. I tried to locate the log file as the comments suggested. However, in the cabal/log folder, there are only two log files for hashtable and haskline after running cabal-install lambdabot on a fresh ghc-7.8 installation.
To see if this error has anything to do with the spaces in the default cabal directory, I used a folder without spaces and did manual installation:
$ cd /d/temp
$ cabal get haskell-src-exts
Unpacking to haskell-src-exts-1.15.0.1\
$ cd haskell-src-exts-1.15.0.1/ && cabal configure
Resolving dependencies...
[1 of 1] Compiling Main ( dist\setup\setup.hs, dist\setup\Main.o )
Linking .\dist\setup\setup.exe ...
Configuring haskell-src-exts-1.15.0.1...
setup.exe: The program 'happy' version >=1.17 is required but it could not be
found.
So, happy in the dependency is somehow missing and undetected by cabal. It turns out happy too has an issue using the default cabal install command, and it can be overcome by a manual installation in, e.g., /d/temp,
cabal get happy && cd happy* && cabal configure && cabal install
This installs happy and doing the same for haskell-src-exts installs the package correctly. But there are other errors along the way for installing lambdabot, none of which seems to like the one encountered here with haskell-src-exts and happy.
Configuring cairo-0.12.0...
setup.exe: The program pkg-config version >=0.9.0 is required but it could not
be found.
cabal: Error: some packages failed to install:
cairo-0.12.0 failed during the configure step. The exception was:
ExitFailure 1
so how can I get pkg-config on windows or how to install cairo then ?
Do you have the cairo development files installed? Recall this isn't the same as having a cairo dll! See the Windows section of their download page for binaries. Also, you can run cabal install -v for more verbosity in the error (which you should post if you're still stuck).
you need to add "C:\Program Files\Gtk+\bin" enclosed in double quotes to PATH system variable so that pkg-config becomes visible to windows, you have to have the gtk+ installed first of course ...