Skip to content


Subversion checkout URL

You can clone with
Download ZIP
CFEngine Community
C Shell Emacs Lisp Yacc C++ Perl Other

Merge pull request #2271 from kacfengine/master

Redmine #7362: Fix asprintf/vasprintf being misdetected as compliant.
latest commit 7de198e5f6
@kacfengine kacfengine authored
Failed to load latest commit information.
3rdparty/peg-0.1.13 Fix typos found by codespell
cf-agent Redmine#7306: Do not use backslashes for paths over the network.
cf-execd Fix SIGTERM waking up the loop instead of ending it.
cf-key Sanitise usage of getopt_long().
cf-monitord Spare the stack.
cf-promises Sanitise usage of getopt_long().
cf-runagent cf-runagent should give an indication that it failed.
cf-serverd Redmine#7211 Fix common bundles evaluation in server.
cf-upgrade cf-upgrade: Fix out of tree builds
contrib contrib/cfengine.el: minor regex improvement for the macro syntax
docs Include the template files for extensions_template.[ch] in the source…
examples Merge pull request #2207 from tzz/feature/redmine7166-data_expand
ext misc: Fix typos found by codespell
libcfnet Redmine #6486: Reduce verbosity of failure to set socket timeout.
libcompat Minor bugs revealed by trying to build with newer MinGW version.
libenv Merge pull request #2252 from jimis/systemd_symlink-redmine7297
libpromises Redmine#7358: Double backslashes in statedir cause errors on Windows.
libutils Redmine#7306: Do not use backslashes for paths over the network.
m4 Redmine #7362: Fix asprintf/vasprintf being misdetected as compliant.
misc Redmine #7335: Fix missing environment file on Debian systems.
tests Redmine#2504: merge ifvarclass/if FnCall and scalar correctly
.gitignore obliterate CFWORKDIR (GLOBAL_C) and its usage in the main codebase.
.mailmap Coalesce Chris Dituri's author names in .mailmap
AUTHORS Fix typos found by codespell
BSDmakefile Add missing copyright blurbs
ChangeLog More changelog updates.
GLOBALS GLOBALS: how to suppress mutability in CFEngine internals. Typo-fixes and a rephrase in
LICENSE Fix typos found by codespell Reintroduce circular dependency workaround. Partial revert of 29cb917 Clarify that files by default are GPLv3. Add missing copyright blurbs Add missing copyright blurbs Merge pull request #2263 from kacfengine/os_dependent_env_file Export core version in configure_flags so we can check it downstream. Add missing copyright blurbs Add missing copyright blurbs

CFEngine 3

CFEngine 3 is a popular open source configuration management system. Its primary function is to provide automated configuration and maintenance of large-scale computer systems.


Please see the INSTALL file for prerequisites and build instructions.


As per the LICENSE file, CFEngine Community is licensed under the GNU General Public License, version 3.

All the files in this repository are licensed under GNU GPL version 3, unless stated otherwise in the copyright notice inside the particular file.

Example Usage

Hello World

The following code demonstrates simple CFEngine output through a reports promise.

body common control
  bundlesequence => { "run" };

bundle agent run
      "Hello, world";

The following policy code may be executed with cf-agent (the main CFEngine binary) as follows.

$ cf-agent/cf-agent
R: Hello, world


Please see the file.

Relationship to CFEngine 2

CFEngine 3 is not a drop-in upgrade for CFEngine 2 installations. It is a significantly more powerful version, but it is incompatible with the CFEngine 2 policy language.

The server part of CFEngine 3 supports the network protocol of CFEngine 2, so you may upgrade your installation gradually.

Something went wrong with that request. Please try again.