CFEngine 3.9.0 is released!

53 views
Skip to first unread message

Kristian Amlie

unread,
Jun 15, 2016, 7:18:25 AM6/15/16
to help-cfengine
Finally CFEngine 3.9.0 non-LTS is released, a bit late, but hopefully
worth the wait!

https://cfengine.com/company/blog-detail/cfengine-3-9-0-non-lts-released/

NB: Our package repositories (as documented in [1]) include all versions
of cfengine-community, the latest being 3.9.0. Thus, if you wish to stay
on the LTS branch (3.7.x) you should avoid automatic updates, and
manually choose The LTS version like this:

yum install cfengine-community-3.7.3
apt-get install cfengine-community=3.7.3-1

[1] https://cfengine.com/product/community/cfengine-linux-distros/


Source tarballs and their SHA1 hashes:

https://cfengine-package-repos.s3.amazonaws.com/tarballs/cfengine-3.9.0.tar.gz
https://cfengine-package-repos.s3.amazonaws.com/tarballs/cfengine-masterfiles-3.9.0.tar.gz

d018700cfb764ea53daf65f86512c279fece2155 cfengine-3.9.0.tar.gz
06af7d943bb72f26580f7e78cbc2c673ac5c2f03 cfengine-masterfiles-3.9.0.tar.gz


Binary packages and their SHA1 hashes:

https://cfengine-package-repos.s3.amazonaws.com/community_binaries/cfengine-community-3.9.0-1.el6.x86_64.rpm
https://cfengine-package-repos.s3.amazonaws.com/community_binaries/cfengine-community-3.9.0-1.i386.rpm
https://cfengine-package-repos.s3.amazonaws.com/community_binaries/cfengine-community-3.9.0-1.x86_64.rpm
https://cfengine-package-repos.s3.amazonaws.com/community_binaries/cfengine-community_3.9.0-1_amd64.deb
https://cfengine-package-repos.s3.amazonaws.com/community_binaries/cfengine-community_3.9.0-1_i386.deb

ff44bacbbe870099cef3c8e324fe1283fae5bdae
cfengine-community-3.9.0-1.el6.x86_64.rpm
c673957f4fa4eb6800b1bbd7ec48a036e8a294c4 cfengine-community-3.9.0-1.i386.rpm
e6338efd55c9788b514095640a2b14a55b66e565
cfengine-community-3.9.0-1.x86_64.rpm
e69499fa5b2662e9ba1abfe9029f334f2c3e4a8f
cfengine-community_3.9.0-1_amd64.deb
a41882b414cae4e5ca5710f6dff66e158679c758 cfengine-community_3.9.0-1_i386.deb


You can read the full changelog at [2], as I'm only appending the new
features in this email.

[2] https://github.com/cfengine/core/blob/3.9.0/ChangeLog

New features/additions:
- Classes promise: allow classes without an expression to default to
defined.
- Add optional interface parameter to iprange() to match only one interface.
- Allow '=' in symbolic modes (Redmine #7826)
- Add: FreeBSD ports package module
- New package module for FreeBSD pkg package manager.
- Add support for adding/removing fifos in policy
- Add Linux parsing of /proc/net/ data.
- sys.inet
- sys.inet6
- sys.interface_data
- Data is returned as a data container.
- See documentation for more details. (Jira CFE-1991)
- sys.ip2iface: new reverse mapping variable from IP to interface name
- Namespaced classes can now be specified on the command line.
- namespaces can now be passed to cf-runagent -D and --remote-bundles
(Redmine #7856)
- Add 'cf-full' and 'json-full' to cf-promises '-p' option.
They generate output based on the entire policy. The existing 'cf'
already behaved this way, and it has now been changed to generate
output only for a single file, which the existing 'json' option
already does.
- New language functions: processexists() and findprocesses()
(Redmine #7633)
- Implement new regex_replace() function. (Redmine #7346)
- Add log rotation policy for state/classes.jsonl log. (Redmine #7951)
- Added collect_vars utility bundle to stdlib
- Intoduce report_class_log attribute to body agent common.
(Redmine #7951)
- Add standard_services service_method allowing for explicit usage
- cf-promises --show-vars can now show JSON variables.
- Add json_pipe mode to mapdata(), which allows piping a
JSON container to an external program for manipulation and receiving
JSON back. The `jq` tool is a good example where this mode can be
useful. A corresponding `$(def.jq)` variable has also been added with
a default path to this tool. See documentation for mapdata() for
more information and examples. (Jira CFE-2071)
- behaviour change: "true" is always defined and "false" is never
defined in a context expression.
- Add: nimclient package module for AIX
This module provides basic functionality for using nimclient as a means
to ensure packages are either present or absent. It does not support
listing package updates available or provide any special caching.
- Add callstack_callers() and callstack_promisers() functions.
- Log variable definitions in debug output. (Redmine #7137)
- Add: Memory information to host info report (Jira CFE-1177)
- In Mustache templates, one can now use `{{#-top-}}` and
`{{/-top-}}` tags to iterate over the top level element in a
container. (Redmine #6545)
- Add network_connections() function that parses /proc/net
- Provide new -w argument to override the workdir for testing
- New feature: Emails sent by cf-execd can be filtered to get
rid of emails for unwanted log messages. The attributes
mailfilter_include and mailfilter_exclude in body executor
control control what to include. See documentation for cf-execd for
more information. (Jira CFE-2283)
- Add: file_make_mustache bundle to render mustache templates
- Add '-n' flag to cf-key to avoid host name lookups.
- cf-agent, cf-execd, cf-promises, cf-runagent and cf-serverd honor
multiple -D, -N and -s arguments
(Redmine #7191)
- Add "canonify" mode to mapdata().
- Add: printfile bodies to stdlib
- Add: New `results` classes body [] (Redmine #7418, #7481)
- Implement cf-runagent --remote-bundles and cf-serverd "bundle" access
promise.
(Redmine #7581)
- Add commands promise arglist attribute, augmenting args attribute.
- It's now possible to reference variables in inline JSON,
for example: `mergedata('[ thing, { "mykey": otherthing[123] } ]')`.
`thing` and `otherthing[123]` will be resolved as variables, since
they are unquoted. See the documentation for more details.
(Redmine #7871)
- Allow inline JSON to be used in the following function
calls:
- data_expand()
- difference()
- every()
- filter()
- format()
- getindices()
- getvalues()
- grep()
- intersection()
- join()
- length()
- makerule()
- mapdata()
- maplist()
- mean()
- mergedata()
- none()
- nth()
- parsejson()
- product()
- regarray()
- reglist()
- reverse()
- shuffle()
- some()
- sort()
- storejson()
- string_mustache()
- sublist()
- sum()
- unique()
- url_get()
- variance()
For example: `mergedata('[ "thing", { "mykey": "myvalue" } ]')`
See the documentation for more details. (Jira CFE-2253)
- Add: edit_line contains_literal_string to stdlib
- Add body agent control select_end_match_eof option. (Jira CFE-2390)


Regards,
Kristian Amlie
CFEngine AS
Reply all
Reply to author
Forward
0 new messages