Install the Haskell Platform from http://hackage.haskell.org/platform/mac.html. The version provided by Macports is too old to work with current versions of git-annex. Then execute

sudo port install git-core ossp-uuid md5sha1sum coreutils pcre

sudo ln -s /opt/local/include/pcre.h  /usr/include/pcre.h # This is hack that allows pcre-light to find pcre

sudo cabal update
cabal install git-annex --bindir=$HOME/bin

See also:

You can also use Homebrew instead of MacPorts. Homebrew's haskell-platform is up-to-date, too:

brew install haskell-platform git ossp-uuid md5sha1sum coreutils pcre
ln -s /usr/local/include/pcre.h /usr/include/pcre.h

As of this writing, however, Homebrew's md5sha1sum has a broken mirror. I wound up getting that from MacPorts anyway.

Comment by http://www.schleptet.net/~cfm/ Tue Aug 30 14:31:36 2011

The Haskell Platform installer for OSX uses GHC 7.0.4, which doesn't seem able to support the current version of git-annex.

Cabal throws a very cryptic error about not being able to use the proper base package.

I was able to install it by

  1. cloning the repo
  2. merging the ghc7.0 branch
  3. resolving merge conflicts in git-annex.cabal
  4. cabal install git-annex.cabal

(Note I also tried this with homebrew and had similar results)

You did the right thing, although just checking out the ghc-7.0 branch will avoid merge conflicts. I am trying to keep it fairly close to up-to-date.
Comment by http://joey.kitenet.net/ Wed Mar 28 19:18:58 2012

I got the following error message trying to install git-annex:

cabal: cannot configure git-annex-3.20120418. It requires base >=4.5 && <5
For the dependency on base >=4.5 && <5 there are these packages: base-4.5.0.0.
However none of them are available.
base-4.5.0.0 was excluded because of the top level dependency base -any

These are the steps I performed to make it work

  1. Download Ghc 7.4.
  2. Run sudo cabal install git-annex --bindir=$HOME/bin.
  3. Compilation of the Crypto-4.2.4 dependency failed since it's not updated to work with Ghc 7.4. You need to patch SHA2.hs (steps below).
  4. Run sudo cabal install git-annex --bindir=$HOME/bin a second time.

The steps I did to patch the SHA2.hs file in Crypto-4.2.4:

  1. cabal unpack crypto-4.2.4
  2. cd Crypto-4.2.4
  3. patch -p1 < crypto-4.2.4-ghc-7.4.patch
  4. sudo cabal install.

PS: I used this patchfile. Then I did the last step a third time.

If you're missing the sha256sum command with Homebrew, it's provided by coreutils. You have to change your $PATH before running cabal install git-annex.cabal:

PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH"
Last night I made it look in /opt/local/libexec/gnubin .. if there's another directory it could look in, let me know. I am reluctant to make it run the brew command directly.
Comment by http://joeyh.name/ Fri Jun 1 17:24:29 2012

$(brew --prefix) should, in most cases, be /usr/local. That's the recommended install location for homebrew.

I already had git installed and homebrew as my package manager - my install steps were as follows:

  1. brew install haskell-platform ossp-uuid md5sha1sum coreutils pcre
  2. PATH="$(brew --prefix coreutils)/libexec/gnubin:$PATH" cabal install git-annex
Comment by http://www.davidhaslem.com/ Tue Jun 19 04:41:27 2012

I try installing with brew because I already had brew setup in my machine, but all run ok but when I try to run cabal install git-annex I got an error with the hinotify-0.3.2 library complaining about a header file.

Full trace:

sudo cabal install git-annex
Resolving dependencies...
Configuring hinotify-0.3.2...
Building hinotify-0.3.2...
Preprocessing library hinotify-0.3.2...
INotify.hsc:35:25: error: sys/inotify.h: No such file or directory
INotify.hsc: In function ‘main’:
INotify.hsc:259: error: invalid use of undefined type ‘struct inotify_event’
INotify.hsc:260: error: invalid use of undefined type ‘struct inotify_event’
INotify.hsc:261: error: invalid use of undefined type ‘struct inotify_event’
INotify.hsc:262: error: invalid use of undefined type ‘struct inotify_event’
INotify.hsc:265: error: invalid use of undefined type ‘struct inotify_event’
INotify.hsc:266: error: invalid application of ‘sizeof’ to incomplete type ‘struct inotify_event’ 
compiling dist/build/System/INotify_hsc_make.c failed (exit code 1)
command was: /usr/bin/gcc -c dist/build/System/INotify_hsc_make.c -o dist/build/System/INotify_hsc_make.o -m64 -fno-stack-protector -m64 -D__GLASGOW_HASKELL__=704 -Ddarwin_BUILD_OS -Ddarwin_HOST_OS -Dx86_64_BUILD_ARCH -Dx86_64_HOST_ARCH -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/directory-1.1.0.2/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/unix-2.5.1.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/old-time-1.1.0.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/bytestring-0.9.2.1/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/base-4.5.0.0/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/include -Idist/build/autogen -include dist/build/autogen/cabal_macros.h -I/usr/local/Cellar/ghc/7.4.1/lib/ghc-7.4.1/include/
cabal: Error: some packages failed to install:
git-annex-3.20120624 depends on hinotify-0.3.2 which failed to install.
hinotify-0.3.2 failed during the building phase. The exception was:
ExitFailure 1

Anyone has an idea how can I solve this.

Thanks for the time!

Agustin

Hi Joey! I just comment that I could not install it but the issue is with the last version (the one you just release today, so no problem!! man on sunday?? you're awesome!!!) so I installed the previous one and no problem at all

Thanks for all the efford and if you need me to try os whatever, feel free to ask!

Thanks again

Agustin

@Agustin you should be able to work around that with: cabal install git-annex --flags=-Inotify

I've fixed it properly for the next release, it should only be using that library on Linux.

Comment by http://joeyh.name/ Mon Jun 25 15:38:44 2012

Hi @joey! Perfect!... I'll do that then!

Thanks for your time man!

Comments on this page are closed.