Download Darcs
The current stable release is darcs 2.1, released in October 2008 (announcement). Here are directions for building darcs from source, followed by links to the best available binaries for each platform.
Contents
Compiling from source
Darcs is written in Haskell, and to build it you will need the Glasgow Haskell Compiler (GHC) version 6.6 or later (there are minor issues building with 6.10, ask #darcs for help). If you don't already have GHC, you'll need to install one of the GHC binary packages (see also GHC User's Guide: Installing GHC). Building GHC from source is also possible but less easy.
Next, if you already have some version of darcs 2, you can get the latest stable branch using darcs itself:
darcs get --lazy http://darcs.net/
If you have darcs 1 or no darcs at all, download the tarball: http://darcs.net/darcs-2.1.0.tar.gz .
For more details, see Building Darcs in the official manual. See also: CompilingOnCygwin
Microsoft Windows
The darcs project is seeking more MS Windows-based developers and builders, please volunteer if you can help.
darcs on windows needs some helper apps/libraries for networking. For http, the binary may or may not have curl support built in. For ssh, either putty or cygwin (see http://www.haskell.org/~simonmar/scpwrap.hs) is required. For sending patches by email, ... ? See WindowsConfiguration for more MS Windows installation instructions.
Here are the best links for now:
no Cygwin
https://zooko.com/darcsbuildbot/uploads/zooko_allmydata_virtual2/ - Nightly binary (from our contributed buildbots, use at your own risk)
http://www.haskell.org/~simonmar/darcs-2.0.2+75.zip - 2.0.2 + 75 patches. This one was built with curl-7.18.2 and has pipelining enabled.
with Cygwin
http://zooko.com/darcs/darcsdir-cygwin-2.0.0.tar.bz2 - 2.0 with Cygwin
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:
Mac OS 10.5 Intel build of darcs-2: http://exrae.com/darcs-2.1.2-i386-darwin.bz2 ; It links libgmp statically and does not require GMP.Framework. Thanks to <sebell at gmail dot com>.
alternate build: package installer for 10.4 and 10.5 of darcs-2.1.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.
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.
GNU/Linux
Binary for Linux
v2.1.0: http://teratorn.org/code/darcs-2.1.0-linux-i386-static.tar.gz (32-bit; statically linked)
v2.0.2: http://briksoftware.com/darcs-2.0.2-linux-i386.tar.gz (32-bit; dynamically linked)
v2.0.2: http://teratorn.org/code/darcs-2.0.2-linux-i386-static.tar.gz (32-bit; statically linked)
v2.0.2: http://vandal.sdf-eu.org/darcs-2.0.2-linux-amd64-static.tar.gz (64-bit; statically linked)
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 (Linux)
For recent versions of Fedora, Darcs is just included. Do the usual to install:
- yum install darcs
If you want to do development you will also want to install ghc in the same way.
If you are running an older Fedora Core, Darcs is included in Fedora Extras. For information about using Extras, see:
- In Fedora Core 4 yum is already pre-configured to use Extras.
For Fedora Core 3 add the yum configuration from the above page. You can then do follow the previous 'yum install' (similar advice applies to ghc.)
For Fedora Core 2 or lower, see http://haskell.org/fedora/.
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
Iain Lane has also produced some more up-to-date packages, available on his Launchpad Personal Package Archive at https://launchpad.net/~laney/+archive
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
Compiled with GHC 6.8.3 on OpenBSD 4.2, but should work on others:
v2.1.0: http://teratorn.org/code/darcs-2.1.0-openbsd-i386.tar.gz (32-bit; dynamically linked)
v2.1.0: http://teratorn.org/code/darcs-2.1.0-openbsd-i386-static.tar.gz (32-bit; statically linked)
v2.0.2: http://teratorn.org/code/darcs-2.0.2-openbsd-i386.tar.gz (32-bit; dynamically linked)
v2.0.2: http://teratorn.org/code/darcs-2.0.2-openbsd-i386-static.tar.gz (32-bit; statically linked)
An old version of darcs is included in the official package list. Install it with pkg_add.
Alternatively, install it from "ports". Note that binary packages are recommended by the OpenBSD team over using the ports system.
cd /usr/ports/devel/darcs && make install
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
darcs2 (2.0.0 + 283 patchess) for Solaris 11 (SunOS 5.11) on x86 architecture: http://www.mico.org/~karel/darcs-2.0.0-p283-x86-SunOS.tar.bz2
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...
Buildbot binaries
Several darcs builtbots are configured in a way that they upload the latest greatest darcs binary produced by the last successful build to the publicly available host on the Internet. Have a look here for the list of snapshots: https://zooko.com/darcsbuildbot/uploads/
Note: since Zooko does not have CA signed certificate you will need to accept the security exception in your browser. How to do it depends on your browser software.
