Added stack.yaml to support easy builds from source with stack.

Update install instructions.

Note that xmpp is disabled in the stack.yaml, because that needs C
libraries that would take extra work for the user to install.
xmpp is moving toward deprecation anyway.
This commit is contained in:
Joey Hess 2015-09-26 06:16:01 -04:00
parent dc3a538531
commit 028cdccc65
3 changed files with 55 additions and 7 deletions

View file

@ -34,7 +34,28 @@ First, install everything git-annex needs to build:
Now you can build git-annex by running either `make` or `cabal build`
inside the source tree.
## minimal build with cabal and stackage
## building from source with stack
Using stack automates nearly everything, will work on many systems,
and avoids build failures due to fast-changing haskell libraries.
First, [install stack](https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md)
It will be part of the Haskell Platform soon. On Debian unstable/testing:
sudo apt-get install haskell-stack
Use stack to install all dependencies and git-annex:
stack setup
stack install git-annex
Move git-annex into some directory that is in your PATH:
mv ~/.local/bin/git-annex ~/bin # or /usr/local/bin/ or whatever
Note that this build produces a git-annex without XMPP support.
## minimal build from source with cabal
This can be done anywhere, and builds git-annex without some optional features
that require harder-to-install C libraries. This is plenty to let you get started with
@ -42,9 +63,7 @@ git-annex, but it does not include the assistant or webapp.
Be warned that this involves building a lot of Haskell libraries from
source, and so it has a lot of moving parts, and it's not uncommon for it
to be broken from time to time. A nice way to avoid such breakage is to
[configure cabal to use the Stackage repository](http://www.stackage.org/),
which is a more stable and consistent version of the Hackage repository.
to be broken from time to time.
Inside the source tree, run:
@ -54,15 +73,13 @@ Inside the source tree, run:
PATH=$HOME/bin:$PATH
cabal install --bindir=$HOME/bin
## full build with cabal and stackage
## full build from source with cabal
To build with all features enabled, including the assistant and webapp,
you will need to install several C libraries and their headers,
including libgnutls, libgsasl, libxml2, and zlib. How to do that for
your OS is beyond the scope of this page.
Using [Stackage](http://www.stackage.org/) is again a good idea here!
Once the C libraries are installed, run inside the source tree:
cabal install -j --only-dependencies