Downloading Darcs
Here are directions for compiling darcs from source, followed by links for binary builds on many platforms.
Contents
Compiling from source
Are you sure you want to compile Darcs from source? It might be simpler to install one of the Darcs binaries listed below.
Darcs is written in Haskell, not in C, C++ or Java, and Haskell compilers are not yet as widely available as C or C++ ones. In order to compile Darcs you will probably first need to install a Haskell compiler. Binary packages of GHC are available at http://www.haskell.org/ghc/download.html, and instructions on how to find other binaries are at http://www.haskell.org/ghc/docs/6.4/html/users_guide/sec-installing-bin-distrib.html. If you can get a binary distribution of GHC then it is fairly painless to compile darcs, but if you cannot then it can be difficult to compile GHC.
To compile darcs from source:
Download darcs from the official homepage. In order to compile darcs, you will need ghc 6.4, or later, and a recent version of libcurl.
If you already have darcs-2, you can get a copy of the latest code using darcs itself:
darcs get --verbose --lazy http://darcs.net/
If you want a complete copy of the darcs repository. you should leave out the --lazy flag.
For the remaining details, see Building Darcs in the official manual.
Building a Windows executable using Cygwin tools
Building a Cygwin executable
To compile darcs as a Cygwin program you need a version of GHC that can produce Cygwin executables. GHC used to support this at one point, but it doesn't work anymore. The person who gets this working will be considered a hero.
Microsoft Windows
Recent stable client versions, pre-packaged with putty ssh, are available
without Cygwin: current version: http://zooko.com/darcs/darcsdir-w32-2.0.0.zip (older versions: http://zooko.com/darcs)
with Cygwin: current version: http://zooko.com/darcs/darcsdir-cygwin-2.0.0.tar.bz2 (older versions: http://zooko.com/darcs)
See WindowsConfiguration for installation instructions.
Official releases and daily builds of just the executable "darcs.exe" are available at http://glozer.net/darcs/. These do not come with the putty ssh binaries (pageant.exe, puttygen.exe, scp.exe, sftp.exe and ssh.exe) nor the Cygwin integration script.
Mac OS X
MacOS X now has four binary architectures; ppc, ppc64, x86, x86_64. For the purposes of haskell/darcs building, I think this mostly amounts the two architectures of the ppc/x86 split. The Rosetta emulation layer that ships with 10.4 x86 allows x86 users to run many (but not all) ppc binaries, however ppc users cannot run x86 binaries.
Intel OS X
The current version of darcs -- darcs-2:
package installer for 10.4 and 10.5 of darcs-2 that can do fresh installs and upgrades: http://www.fivesquaresoftware.com/source/ ; The GMP.framework is installed on 10.4 systems (It's no longer needed on 10.5 systems). The package also installs the man page, the HTML manual and the bash completion file.
Mac OS 10.5 Intel build of darcs-2: http://exrae.com/darcs-2.0.0-i386-darwin.bz2 ; It links libgmp statically and does not require GMP.Framework. Thanks to <sebell at gmail dot com>.
Older versions of darcs:
Native Intel builds of darcs-1.0.9 is available at http://glozer.net/darcs. To install this build
- download the dmg file from the above link
drag the GMP.Framework into /Library/Frameworks
drag the darcs executable into somewhere in your path like /usr/local/bin
A Mac OS 10.4/5 Intel build of darcs-1.0.9 is available at http://exrae.com/darcs-1.0.9-i386-darwin.bz2 which links libgmp statically and does not require GMP.Framework <sebell at gmail dot com>.
PowerPC OS X
Older versions of darcs:
Package installer for Mac OS X 10.5 (Leopard) of 1.0.9: http://www.fivesquaresoftware.com/source/. It won't run on Tiger. Installs the GMP framework, the man page and bash completion script. This is the last PPC build of this package.
darcs-1.0.9rc2 is available at http://www.accela.net/~lucca/darcs-1.0.9rc2-macos10.4-ppc.tar.gz (email lucca at accela dot net) This build is a normal dynamic build, but uses only apple-supplied libs (including 10.4's libcurl), so it should be as good as static for most people. (gcc 4.0.1apple, ghc 6.6, macos 10.4.8) This tentatively seems to work on my macbook...
http://el-tramo.be/software/darcs-ppc-static (Mac OS 10.2 or higher required). Appears to work with intel mac (through Rosetta) as well. [ est adds that it mostly works for him on his macbook pro but that it has also trashed some data and revision histories. ]
MacPorts and Fink
Both MacPorts and Fink have package based installers of darcs.
Darcs can be installed using fink http://pdb.finkproject.org/pdb/package.php/darcs
Darcs can be installed using darwinports http://trac.macosforge.org/projects/macports/browser/trunk/dports/devel/darcs.
Note: It cites perl and ghc as prerequisites, so if you have them installed elsewhere (not via darwinports), be warned that you might be building new copies of them too. Both perl and ghc can take about 3 hours each to compile from source.
Linux
Statically linked binary for Linux/i386
v1.0.9: http://eric.kow.free.fr/download/darcs-1.0.9-i386-linux.gz
v1.0.6: http://www.carpetcode.org/binaries/darcs-1.0.6-static-linux-i386.gz
v1.0.5: http://www.carpetcode.org/binaries/darcs-1.0.5-static-linux-i386.gz
Arch Linux
Darcs is in the extra package repository that is enabled by default. Just run
pacman -Sy darcs
and you're done.
Crux Linux
Darcs is available for Crux Linux. Copy the file yhafri.httpup from http://yhafri.club.fr/crux/yhafri.httpup to your /etc/ports directory.
Afterward, type the following commands:
- # prt-get depinst httpup # ports -u # prt-get depinst ilenia # ilenia -U darcs enjoy!
More information at: http://yhafri.club.fr/crux (Younes Hafri)
Debian
Darcs is available in all current Debian releases in the darcs package. For example, to install using apt-get:
# apt-get install darcs
Fedora Core (Linux)
Darcs is included in Fedora Extras. See:
for information about using Extras.
In Fedora Core 4 yum is already pre-configured to use Extras. For Fedora Core 3 add the yum configuration from the above page.
Then do
- yum install darcs
If you want to do development you will also want to install ghc in the same way.
For Fedora Core 2 or lower, see
Frugalware Linux
To install binary package:
* pacman-g2 -Sy darcs
To build it from source:
* repoman upd && repoman merge darcs
Gentoo Linux
- emerge darcs
If the version this gives you is not recent enough you can try the "unstable" version (for non-i386 platforms replace ~x86 with correct keyword, for amd-64 use ~amd64):
mkdir /etc/portage (if you have not already done so)
echo "dev-util/darcs ~x86" >> /etc/portage/package.keywords
- emerge darcs
You can see which "stable" and "unstable" versions are available for your architecture here.
You'll have to use darcs 1.0.3_rc1 or later if you are using GHC 6.4. The oldest version of darcs currently(29-4-2006) in portage is 1.0.4, so you should not have to worry about this.
Note that if this is the first time you've built something that is written in Haskell, Portage will bring in ghc-bin. That's perfectly sufficient to build darcs, but you may also want to emerge ghc (which needs ghc-bin to bootstrap) and then you can remove ghc-bin.
If configuring darcs fails, and config.log shows something like "Could not find module `Prelude'" and you are using the binary ghc package, try re-emerge'ing ghc-bin (just type emerge ghc-bin)
GoboLinux
To compile from source:
- Compile darcs
To get a binary package.
Mandriva Linux
Darcs is now officially included in all Mandriva distribution up to 10.2. You can find it in contrib media:
http://rpms.mandrivaclub.com/search.php?query=darcs
To install darcs, ensure your urpmi is setup with contrib media, then type (as root):
urpmi darcs
For all issue related to this package, please contact the official maintainer: nanardon@mandriva.org.
The package for LE2005 (10.2) will work on 10.1 if you also install the libreadline5 package.
To have benefits of bash completion, simply install bash-completion package:
urpmi bash-completion
SUSE Linux
Client ( for SLES9, SLES10 , 9.3, 10, 10.1, Factory)
Web Front-end (only for 9.1)
1.0.2
http://abing.gotdns.com/darcs/SuSE-9.1/darcs-server-1.0.2-1.i586.rpm
1.0.1
http://abing.gotdns.com/darcs/SuSE-9.1/darcs-server-1.0.1-3.i586.rpm
Build it from source
1.0.2
http://abing.gotdns.com/darcs/SuSE-9.1/darcs-1.0.2-1.src.rpm
1.0.1
http://abing.gotdns.com/darcs/SuSE-9.1/darcs-1.0.1-3.src.rpm
Alternate links thanks to KetilMalde
1.0.2
http://www.ii.uib.no/~ketil/darcs-stuff/SuSE-9.1/darcs-1.0.2-1.i586.rpm
http://www.ii.uib.no/~ketil/darcs-stuff/SuSE-9.1/darcs-server-1.0.2-1.i586.rpm
http://www.ii.uib.no/~ketil/darcs-stuff/SuSE-9.1/darcs-1.0.2-1.src.rpm
1.0.1
http://www.ii.uib.no/~ketil/darcs-stuff/SuSE-9.1/darcs-1.0.1-3.i586.rpm
http://www.ii.uib.no/~ketil/darcs-stuff/SuSE-9.1/darcs-server-1.0.1-3.i586.rpm
http://www.ii.uib.no/~ketil/darcs-stuff/SuSE-9.1/darcs-1.0.1-3.src.rpm
Notes:
- You may need to edit the spec file to point to your local ghc installation.
You may need additional dependencies when building aside from ghc. I didn't include them in the spec file, but off the top of my head you need libcurl-devel, zlib-devel, and ncurses-devel.
-- NimrodAbing
Ubuntu Linux
Darcs is in the universe section of Ubuntu, thus universe should be in your apt sources. Take a look at http://www.ubuntu.com/community/ubuntustory/components for adding universe (summary: edit /etc/apt/sources.list). Now simply add it through Synaptics Package Manager or
- apt-get install darcs
BSD
FreeBSD
Darcs is now known to build on FreeBSD 4.x, 5.x and 6.x, using the FreeBSD ports collection:
To build from source:
cd /usr/ports/devel/darcs && make install
or, to install the server as well:
cd /usr/ports/devel/darcs && make -DWITH_SERVER install
If you install the server, the CGI executable is installed as /usr/local/libexec/darcs/cgi-bin/darcs, and its configuration file is /usr/local/etc/darcs/darcs/cgi.conf.
Since darcs depends on Haskell, be prepared for the above to also download and install any Haskell related ports that you don't already have, such as ghc.
To fetch and install a binary package from an official FreeBSD server:
pkg_add -r darcs
The statically-linked Linux binary above also appears to work if you've got COMPAT_LINUX in your kernel.
If you want to compile darcs yourself on FreeBSD, be sure to use gmake instead of make.
LionKimbro: On FreeBSD 5.4, I had great difficulty installing; I ended up in a perpetually running make..! Key insights from my install: (1) pkg_add -r ghc first, rather than any other method of adding ghc. (2) Download darcs source from http://darcs.net/ . (3) The FreeBSD 5.4 version uses ghc 6.4.0, not 6.4.1, so you need to edit line 43 of Repository.lhs, changing it to: import qualified DarcsRepo hiding ( seekRepo, youNeedToBeInRepo ) (4) type gmake. The program should now compile. On FreeBSD 6.1, it installed smoothly, including installing ghc through ports as a dependency. On FreeBSD 8x and probably 7x, it won't compile without this patch: http://www.nabble.com/ports-117535-3A--PATCH--devel-darcs-3A-port-is-broken-for-RELENG_7-to13428315.html
NetBSD
No native binaries are available yet. On x86, the statically-linked Linux binary above works if you've got COMPAT_LINUX in your kernel.
It's possible to use pkgsrc to install binary or build Darcs from sources. Darcs is in directory pkgsrc/devel/darcs.
OpenBSD
cd /usr/ports/devel/darcs && make install
Latest stable darcs is in the OpenBSD ports collection, running natively. Alternatively, binary builds for x86 and amd64 can be downloaded from an OpenBSD mirror, and installed with pkg_add.
DragonFlyBSD
With the new release (1.4), the recommended packaging system is pkgsrc. To build and install darcs, all you have to do is
cd /usr/pkgsrc/devel/darcs && bmake install
However, the ghc package is currently broken on DragonFly; until it is fixed (not hard, but there's only one person that cares and I don't have much time), you'll have to use a linux binary.
Solaris
- Be wary that gcc-3.0 through gcc-3.3 generate bad code when used with GHC under sparc. (So use 2.95 or 3.4+)
darcs-1.0.8 with dynamic and static binaries are available at http://www.accela.net/~lucca/darcs-1.0.8-solaris9-sparc.tar.gz (email lucca at accela dot net) (gcc 2.95, ghc 6.4.1, solaris9)
darcs-1.0.7 with dynamic and static binaries are available at http://www.accela.net/~lucca/darcs-1.0.7-solaris9-sparc.tar.gz (email lucca at accela dot net) (gcc 2.95, ghc 6.4.1, solaris9)
darcs-1.0.6 with dynamic and static binaries are available at http://www.accela.net/~lucca/darcs-1.0.6-solaris9-sparc.tar.gz (email lucca at accela dot net) (gcc 2.95, ghc 6.4.1, solaris9)
- To get 1.0.6pre1 (jan 28, 2006, repository snapshot) built on a SunOS 5.8 box I had to manually disable term.h since for some reason ./configure --without-curses would result in a makefile that would fail on term.h. In configure.ac I replaced "AC_CHECK_HEADER(term.h" with "AC_CHECK_HEADER(term_modified_not_to_be_found.h". Ugly but it works. If you have a place to host it I have a working 1.0.6pre1 binary built with gcc 3.4.4 GHC 6.4.1. Email lesner at gmail dot com.
http://www.mdstud.chalmers.se/~md9ms/darcs/ - experimental (and old version 0.9.17)
- You may also build darcs from source on Solaris. I used GHC 6.2.1, GCC 2.95.2 and GNU make 3.80 successfully. You might want to try newer versions of GCC though. (GCC 3.2 seems to work.)
- When building on a sun-sparc-solaris2.6 machine, I had to add -lposix4 -lpthread to the LDFLAGS before calling the configure script, or the produced binary would fail when using pthreads (for example when recording a compressed patch).
- You may experience problems with some repositories unless you configure with --disable-optimize --disable-mmap. (This is building with GHC 6.2.1 and GCC 3.2.)
For Solaris 10 (SunOS 5.10) on i86pc/i386 architecture: http://www.informatik.uni-bremen.de/~hiben/darcs_binary/darcs-1.0.9-i86pc-SunOS.gz
AIX
For AIX 5.x, a binary build is available at: http://openafp.org/darcs-1.0.1-aix5.tar.gz
Unfortunately, openafp.org appears to be gone...
Related Pages
Building Darcs, from the official manual
CategoryBinaries
