File: building_darcs.tex

package info (click to toggle)
darcs 2.4.4-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,292 kB
  • ctags: 259
  • sloc: haskell: 26,818; sh: 7,051; ansic: 1,572; perl: 124; makefile: 24
file content (76 lines) | stat: -rw-r--r-- 2,360 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
\chapter{Building darcs}
\section{The Easy Way}
If your distribution provides a pre-built binary package of a recent
Darcs release, you are strongly encouraged to use that rather than
building Darcs yourself.

If you have (or can install) the \texttt{cabal-install} package, this
is the next best option, as this will resolve build dependencies
automatically.  To download, compile and install Darcs and its
dependencies via cabal-install, simply run
\begin{verbatim}
cabal update
cabal install darcs
\end{verbatim}

\section{The Hard Way}
If you cannot install \texttt{cabal-install}, you need to run
\begin{verbatim}
ghc --make Setup
./Setup configure
./Setup build
./Setup install
\end{verbatim}

This will require the following build dependencies:
\begin{itemize}
\item GHC 6.8 or higher; and
\item Cabal 1.6 or higher.
\end{itemize}

%% Note: darcs.cabal tends to have build dependencies [x,y), but I
%% couldn't work out a way to describe this concisely (and
%% intelligibly to non-mathematicians).  So I have lied and simply
%% said `or higher', since the upper bounds usually only declare
%% incompatibility with versions that don't exist yet. --twb, 2009

Additional build dependencies are declared in the \texttt{darcs.cabal}
file, and \texttt{./Setup configure} will tell you if any required
build dependencies aren't found.  The build dependencies at time of
writing (Darcs 2.3) are as follows:
\begin{itemize}
\item the C library zlib;
\item the Haskell packages
  \begin{itemize}
  \item array 1.1 or 1.2;
  \item containers 1.1 or 1.2;
  \item directory 1.0;
  \item filepath 1.1;
  \item hashed-storage 0.3;
  \item haskeline 0.6.1 or higher;
  \item html 1.0;
  \item mtl 1.0 or 1.1;
  \item old-time 1.0;
  \item parsec 2.1 or higher;
  \item process 1.0;
  \item random 1.0; and
  \item regex-compat 0.71 or higher.
  \end{itemize}
\end{itemize}

Missing \emph{optional} build dependencies are only listed if
\texttt{./Setup configure} is passed the \texttt{--verbose} argument.
At time of writing they are:
\begin{itemize}
\item the C library libcurl (7.19.1 or higher recommended);
\item the Haskell packages
  \begin{itemize}
  \item bytestring 0.9;
  \item bytestring-mmap 0.2 or higher;
  \item http 3000 or 3001.1;
  \item network 2.2;
  \item terminfo 0.3.
  \item utf8-string 0.3; and
  \item zlib 0.5.
  \end{itemize}
\end{itemize}