Developer resources and getting patches

Building cfengine from svn repository sources

Building the code from the subversion repository can be a challenge, due to the reliance on the GNU automake system. Different versions of automake are incompatible in the build phase, but generate consistent tarballs for release. For this reason, we do not distribute configure scripts or Makefile.in's with subversion, but rather autobuild.sh that replaces configure and runs the required automake commands. This means you will need a sufficiently new automake system installed when building from subversion. automake is not required when building from tarballs.

# ./autogen.sh [CONFIGURE OPTIONS]
# make clean
# make

Note if you have multi-core machines, you can parallelize GNU make by writing make -jXXX where XXX is the number of cores plus 1.

Source code and resource respositories:

Using subversion to get the latest updates

As a community user, your access to patches is through the public subversion repository interface. You can also download tarballs of the latest snapshot. You can browse the subversion repositories on the web without having subversion installed on your machine (see links above), but to edit the files you will need to install the subversion commands for Unix or Windows.

To get a working version, you must `check out' a change. When you do this, subversion fills the working copy with hidden data that allow it to intelligently manage the files and remember the location of the repository that they come from:

enterprise$ cd /workdir
enterprise$ svn checkout http://source.cfengine.com/svn/core/trunk core
enterprise$ svn checkout http://source.cfengine.com/svn/copbl/trunk copbl
enterprise$ svn checkout http://source.cfengine.com/svn/tests/trunk tests

A trunk/mkinstalldirs
A trunk/configure.in
A trunk/ChangeLog
A trunk/src
A trunk/src/Makefile.in
A trunk/src/cfagent.c
A trunk/src/tidy.c
A trunk/src/cflex.l
A trunk/src/cfrun.c
A trunk/src/client.c
A trunk/src/item-ext.c
A trunk/src/parse.c
...
A trunk/doc/stamp-vti
A trunk/doc/cfengine-Reference.texinfo
Checked out revision 99999.

Kirk: "I'm curious, Doctor, why is it called the M5?"
Daystrom: "Well you see, M1 to M4 were not entirely successful. This one is. M5 is ready to take control of your ship."
Kirk: "Total control?"
Daystrom: "That is what it is designed for."
Kirk: "There are some things that Men have to do to remain Men, your computer takes that away."
Daystrom: "The computer can do your job ... One machine can do all those things that Men do now. Men can go on to do greater things..."

--Star Trek: The Ultimate Computer