This chapter should walk you through the steps necesary to build darcs for yourself. There are in general two ways to build darcs. One is for building released versions from tarballs, and the other is to build the latest and greatest darcs, from the darcs repo itself.
Please let me know if you have any problems building darcs, or don't have problems described in this chapter and think there's something obsolete here, so I can keep this page up-to-date.
It is a good idea (but not required) to have a recent version of libcurl installed. If not, you will at least need to have either wget or curl installed if you want to be able to grab repos remotely over normal network protocols (ftp or http). You also might want to have scp available if you want to grab your repos over ssh...
To send patches, you will also need to have a working
/usr/sbin/sendmail
or /usr/lib/sendmail
, which is provided
by most mail transport agents, and is generally available on linux and
BSD systems. It's also there on MacOS X. However, if you don't have this,
it won't stop you from building darcs.
To use the diff
command of darcs, a diff
program supporting
options -r
(recursive diff) and -N
(show new files as
differences against an empty file) is required. The configure
script will look for gdiff
, gnudiff
and diff
in this
order. You can force the use of another program by setting the DIFF
environment variable before running configure
.
To rebuild the documentation (which should not be necesary since it is included in html form with the tarballs), you will need to have latex installed, as well as latex2html if you want to build it in html form.
% sudo gcc_select 3.1to avoid crashes. I have also had to run autoconf once when the configure script failed. (NOTE: as of MacOS X 10.3 and ghc 6.2, it seems that gcc 3.3 works fine, and the above advice is unncecesary.)
Another recently discovered problem is that on MacOS, the curl-config from libcurl versions prior to 7.11.0 gives incorrect link flags, so you probably will want to make sure you have version 7.11.0 installed. I suspect one could also simply edit the curl-config of an older install to remove the offending ``-arch i386'', but haven't tried this.
% ./configure % make % make install
There are options to configure that you may want to check out with
% ./configure --help
% darcs get -v http://abridgegame.org/repos/darcsand once you have the darcs repository you can bring it up to date with a
% darcs pull
The repository doesn't hold automatically generated files, which include the configure script and the HTML documentation. The makefile is smart enough to call autoconf to generate the configure script (and actually also to run the configure script), so you can just run
% make % make install
If you want to tweak the configure options, you'll need to run ./configure yourself after the make, and then run make again.
building_darcs.tex
) based
on your experience building darcs...
To do so, just record your changes (which you made in the darcs repository)
% darcs record --no-testmaking sure to give the patch a nice descriptive name. The
--no-test
options keeps darcs from trying to run the unit tests,
which can be rather time-consuming. Then you can send the patch to the
darcs-devel mailing list via email by
% darcs send -uThe darcs repository stores the email address to which patches should be sent by default. The email address you see is actually my own, but when darcs notices that you haven't signed the patch with my GPG key, it will forward the message to darcs-devel.