Version: 3.16.0-bp153.1.19
* Wed Sep 23 2020 Klaus Kämpf <kkaempf@suse.com>
- drop cfengine-doc subpackage in favor of cfengine-documentation
* Tue Sep 22 2020 Klaus Kämpf <kkaempf@suse.com>
- update to 3.16.0
- Added 'cf-secret' binary for host-specific encryption (CFE-2613)
- 'cf-check diagnose --test-write' can now be used to test writing
into LMDB files (ENT-4484)
- 'if' constraint now works in combination with class contexts
(CFE-2615)
- Added $(sys.cf_version_release) variable (ENT-5348)
- Added new macros to parser: else, maximum_version, between_versions,
before_version, at_version and after_version. Version macros now
accept single digits (CFE-3198)
- Added cf-postgres requirement to cf-apache and cf-hub systemd units
(ENT-5125)
- Added files promise content attribute (CFE-3276)
- Added string_trim() policy function (CFE-3074)
- Added warning if CSV parser parses nothing from non-empty file
(CFE-3256)
- All changes made by 'files' promises are now reported. Also,
directory and file creations are now properly reported as 'info'
messages. And failures in edit_xml result in promises marked as
failed not interrupted. Purged dirs and files are reported as
repaired (ENT-5291, CFE-3260)
- Bootstrap to loopback interface is now allowed, with a warning
(CFE-3304)
- Client initiated reporting was fixed on RHEL 8.1 (ENT-5415)
- Fixed rare crashing bug when parsing zombie entries in ps output.
The problem was only ever observed on AIX, but could theoretically happen
on any platform depending on exact libc behavior. (ENT-5329)
- Fixed an issue causing duplicate entries in sys.interfaces, and
sys.hardware. (CFE-3046)
- Fixed ifelse() to return fallback in case of unresolved variables
(ENT-4653)
- Fixed locking of promises using log_repaired / log_string with
timestamps (CFE-3376)
- Fixed memory leak in handling of inline JSON in policy evaluation
- Fixed memory leak in readlist functions (CFE-3263)
- Fixed race condition when multiple agents are acquiring critical
section locks simultaneously (CFE-3361)
- Fixed selection of standard_services when used from non-default
namespace (ENT-5406)
- Fixed service status cfengine3 on systemd managed hosts
(ENT-5528)
- Fixed some memory leaks and crashes in policy evaluation (CFE-3263)
- Improved error message for invalid body attribute names (CFE-3273)
- Improved management of secondary groups to avoid intermediary state
failures (ENT-3710)
- LMDB files are now created with correct permissions (ENT-5986)
- Log messages about broken Mustache templates are now errors
(CFE-3263)
- Made classfiltercsv() fail properly on invalid class expression index
- Measurements promises with no match no longer produce errors
(ENT-5171)
- Moved error reading file in countlinesmatching() from verbose to
error (CFE-3234)
- Added new data validation policy functions validdata() and validjson()
(CFE-2898)
- New version checking convenience policy functions (CFE-3197)
Added the following policy functions to check against local CFEngine version:
- cf_version_maximum()
- cf_version_minimum()
- cf_version_after()
- cf_version_before()
- cf_version_at()
- cf_version_between()
- Removed (USE AT YOUR OWN RISK) from cf-key help menu for -x (ENT-5090)
- Rewrote helloworld.cf to use files promises content attribute (CFE-3276)
- The outcome classes are now defined for the top-level directory when
'include_basedir' is 'false' (ENT-5291)
- Variable references with nested parentheses no longer cause errors
(CFE-3242)
- cf-check: Added a more user friendly message when trying to print
unknown binary data (ENT-5234)
- cf-check: Added data validation for cf_lastseen.lmdb (CFE-2988)
- cf-check: Added nice printing for nova_agent_executions.lmdb
(ENT-5234)
- cf-check: Added validation for timestamps in cf_lock.lmdb (CFE-2988)
- cf-check: Added validation for timestamps in lastseen.lmdb (CFE-2988)
- cf-check: Fixed issue causing repair to target the wrong database file
(ENT-5309)
- cf-check: Symlinked LMDB databases are now preserved in repair
Performs diagnosis and repair on symlink target instead of symlink.
Repaired files / copies are placed alongside symlink target.
In some cases, the symlink target is deleted to repair a corrupt
database, and the symlink is left as a broken symlink. This is
handled gracefully by the agent, it will be recreated.
Broken symlinks are now detected as an acceptable condition in diagnose,
it won't try to repair them or delete them. (ENT-5162)
- storage promises managing nfs mounts should now correctly mount
after editing fstab entries
- drop 0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch,
0002-Reduce-string-truncation-warnings.patch,
0003-make-home-dir-for-tests.patch - all upstream
* Tue Jul 28 2020 Thorsten Kukuk <kukuk@suse.com>
- Fix version format for suse_version (SuSEfirewall2 check)
* Fri Jun 12 2020 Klaus Kämpf <kkaempf@suse.com>
- update to 3.15.0
- New policy function basename() added (CFE-3196)
- Added read_module_protocol() policy function
This function reads module protocol from a file, and can be used
for caching the results of commands modules. (CFE-2973)
- The @ character is now allowed in the key of classic arrays defined
by the module protocol (CFE-3099)
- nth() policy function now supports negative indices (CFE-3194)
- Fixed .xy floating point numbers parsing in eval() (CFE-2762)
- Added inform constraint to commands promises, to allow suppression of
INFO log messages (CFE-2973)
- Changed unless constraint to be more consistent with if
For any situation where if would NOT skip a promise, unless
will cause the promise to be skipped. When there are
unresolved variables / function calls, if will skip, unless
will NOT skip. (CFE-3160)
- Default minimum allowed TLS version is now 1.1 (ENT-4616)
- Network protocol version 2 is now called "tls"
"tls" or "2" can be used in places where you specify network
protocol. Log messages were altered, to show "tls" instead of
"latest". (ENT-4406)
- Introduced protocol version 3 - "cookie"
This protocol is identical to version 2 ("tls"),
except it allows the enterprise reporting hub to send
the COOKIE command to enterprise hosts. This command is used for
detecting hosts using duplicate identities. Protocol version "latest"
now points to version 3. For community installations, it should not
make a difference, policy servers will not send this command. The only
visible difference is the new version number (in logs and policy).
(ENT-4406)
- Package modules now hit network when package cache is first initialized
(CFE-3094)
- Fixed promise skipping bug in unless (CFE-2689)
- Fixed error message for unexpanded variables in function calls in unless
(CFE-2689)
- Prevented buffer overflow when policy variable names are longer than
1024 bytes
- Zero bytes in class guards no longer cause crashes (CFE-3028)
- Fixed bug in ps parsing on OpenBSD / NetBSD causing bootstrap to fail
- Fixed crash in policy/JSON parsing of numbers with too many decimal
points (CFE-3138)
- copy_from without preserve now respects destination mode (ENT-4016)
- Removed stime_range and ttime_range constraints from promise hash
(ENT-4921)
- Fixed promise result when using process_stop in processes type promises
(ENT-4988)
- cf-execd now sends SIGKILL to the agent process in case of
agent_expireafter, after attempting SIGINT and SIGTERM (CFE-2664)
- cf-serverd now tries to accept connection multiple times (CFE-3066)
- Fixed multiple measurements tracking growth of same file (ENT-4814)
- Set create permissions of monitord files in state directory to 0600
0600 matches the permissions enforced by policy.
Affected files:
* state/cf_incoming.*
* state/cf_outgoing.*
* state/cf_users
* state/env_data
(ENT-4863)
- Clarified descriptions of io_writtendata and io_readdata (ENT-5127)
- Clarified log message about process_count and restart_class being used
concurrently (CFE-208)
- Agent runs that hit abortclasses now record results (ENT-2471)
- An ID of rhel in os-release file will now define both rhel and redhat
classes (CFE-3140)
- Version specific distro classes are now collected by default in
Enterprise (ENT-4752)
- redhat_8 and redhat_8_0 are now defined on RHEL 8 (CFE-3140)
- Added derived-from-file tag to hard classes based on /etc/redhat-release
(CFE-3140)
- Added sys.bootstrap_id policy variable containing the ID from
/var/cfengine/bootstrap_id.dat, if present (CFE-2977)
- sys.interfaces now contains interfaces even when they only have
IPv6 addresses (ENT-4858)
- IPv6-only interfaces added to sys.hardware_(addresses,mac) (CFE-3164)
- IPv6 addresses are now added to policy variable sys.ip_addresses
(CFE-682)
- IPv6 addresses now respect ignored_interfaces.rx (CFE-3156)
- hostname now allowed in bindtoaddress (CFE-3190)
- Fixed issue when removing comments from files in various policy functions
This also fixes many erroneous occurences of the error message
mentioning:
[...] because it legally matches nothing
(A warning can still appear if a comment regex actually matches nothing).
Also made this comment removing logic faster.
Affected functions include:
* readstringlist()
* readintlist()
* readreallist()
* peers()
* peerleader()
* peerleaders()
* data_readstringarray()
* data_readstringarrayidx()
* data_expand()
* readstringarray()
* readstringarrayidx()
* readintarray()
* readrealarray()
* parsestringarray()
* parsestringarrayidx()
* parseintarray()
* parserealarray()
(CFE-3188, ENT-5019)
- Fixed memory leak in JSON / env file parsing (CFE-3210)
- Fixed memory leak in handling of nfs / fstab (CFE-3210)
- Fixed memory leak in string_replace() and regex_replace() (CFE-3210)
- Fixed memory leak when using with constraint (CFE-3210)
- Fixed minor memory leak in policy evaluation (CFE-3210)
- Fixed small memory leak in SQL database promises (CFE-3210)
- Received SIGBUS now triggers a repair of local DBs (CFE-3127)
- Corrupted LMDB files are now automatically repaired (CFE-3127)
- Keys in the lock database, cf_lock.lmdb, are now human-readable
(CFE-2596)
- Local databases now use synchronous access on AIX and Solaris (ENT-4002)
- Report corrupted local database with a critical log message (CFE-2469)
- Local DB errors are now logged with the particular DB file path (CFE-2469)
- cf-check: repair now preserves readable data in corrupted LMDB files
(CFE-3127)
- cf-check: --dump option was added to the backup command
- cf-check: Added --no-fork to diagnose command (CFE-3145)
- cf-check: Added -M manpage option and other common options (CFE-3082)
- cf-check: No DB files in state dir now causes errors
- cf-check: dump command now dumps DB contents to JSON5 (CFE-3126)
- cf-check: help command can now take a topic as argument
* Fri Feb 07 2020 Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Drop fakeroot build dependency, unused.
- Drop python build dependency, determine-version.py is not used.
- Always build with systemd, distribution versions without
systemd are no longer supported by CFEngine.
- Drop RHEL5/SLE11 only remove-am_subst_notmake.patch
- Cleanup spec file, remove obsolete conditionals.
- Make doc and examples packages noarch.
- rename 0002-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
to 0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
0003-Reduce-string-truncation-warnings.patch
to 0002-Reduce-string-truncation-warnings.patch
0004-make-home-dir-for-tests.patch
to 0003-make-home-dir-for-tests.patch
- remove 0001-Set-sys.bindir-to-usr-sbin-expect-cf-components-ther.patch
* Mon Feb 03 2020 Dominique Leuenberger <dimstar@opensuse.org>
- BuildRequire pkgconfig(systemd) instead of systemd: allow OBS to
shortcut through the -mini flavors.
* Mon Dec 16 2019 Klaus Kämpf <kkaempf@suse.com>
- Update to 3.14.0.2 (upstream 3.14.0-2)
see https://github.com/cfengine/core/blob/3.14.0-2/ChangeLog
* Tue Jul 23 2019 matthias.gerstner@suse.com
- removal of SuSEfirewall2 service, since SuSEfirewall2 has been replaced by
firewalld, see [1].
[1]: https://lists.opensuse.org/opensuse-factory/2019-01/msg00490.html
* Fri Mar 08 2019 Adam Majer <adam.majer@suse.de>
- Update to 3.12.1 (LTS)
- Added a new binary: cf-check
+ Corrupt local databases (LMDB) continues to be a problem.
cf-check will be used to diagnose and remediate problems
with corrupt databases. It is a standalone binary, which
doesn't evaluate policy or use the local databases, thus
it can be used in situations where the other binaries
like cf-agent would hang.
+ cf-check replaces our lmdb database dumper, lmdump.
+ `cf-check lmdump` or symlinking / renaming it to lmdump
will make cf-check have the exact same behavior as lmdump.
cf-check will include much more functionality in the future
and some of the code will be added to other binaries,
for example to do health checks of databases on startup.
Ticket: (ENT-4064)
- Class names set by module protocol are automatically canonified
(CFE-2877, CFE-2887)
- Correct log level for data_readstringarray* (CFE-2922)
- Eliminated error messages caused by attempting to kill expired processes
(CFE-2824)
- Fix cf-runalerts systemd unit conditions so the service will run
(ENT-3929)
- Fix the off-by-one error in cf-runagent background process spawning
(CFE-2873)
- Fixed a memory leak which occurred when reloading RSA keys from disk
- Fixed a memory leak which occurred while loading augments files
(CFE-2913)
- Fixed an issue while parsing ps output on AIX (ENT-4295)
- Fixed an issue with splay time in cf-execd (CFE-2931)
- Fixed error handling and memory leak in cf-key (CFE-2918)
- Fixed memory leak in lmdb cleanup (CFE-2918)
- Fixed memory leaks in cf-agent during bootstrap (CFE-2918)
- Fixed memory leaks in variablesmatching() and findfiles() (CFE-2918)
- Fixed missing class with mustache templates in warn_only mode (CFE-2600)
- Fixed small memory leak in cf-serverd (CFE-2918)
- Fixed valgrind warning about lmdb writing uninitialized memory (CFE-2591)
- Read mustache-rendered files in text mode when comparing digest (ENT-2526)
- Reload persistent classes on config reload in cf-execd and cf-serverd
(CFE-2857)
- Started using custom cleanup function instead of atexit due to race
condition with unloading DLLs on Windows (ENT-3756)
- 0003-Reduce-string-truncation-warnings.patch: refreshed
* Wed Jul 25 2018 aeszter@gwdg.de
- Fix path to executables for sys variables (BOO #1099946)
* Tue Jul 03 2018 kkaempf@suse.com
- Update to 3.12.0 (LTS)
New Features:
- Add a --key-type option to specify RSA key size to cf-key
- New hash_to_int policy function (CFE-2733)
- Issue a warning on ignored locking attributes (CFE-2748)
- Add IPv6 hard classes with the "ipv6_" prefix (CFE-2310)
- Introduce "missing_ok" attribute in body copy_from
This allows to ignore missing sources in file copy operations
(CFE-2365)
- Enable Xen hypervisor detection on all x86 platforms (CFE-2203)
- Add sys.policy_entry variables (CFE-2572)
- Added inline_mustache template method (CFE-1846)
- New component cf-net (cf-net is a CLI for the CFEngine network
protocol, useful for debugging, testing etc) and accompanying
policy variable sys.cf_net containing path to cf-net binary
- Added --log-level option to all components
This allows you to specify any log level (info, verbose, debug
etc.).
It is also less strict, allowing different spelling. As an example,
- -log-level i, --log-level INFO, --log-level inform are all the same.
- Added special behavior for bundles named __main__
If the bundle is defined in the entry policy it will be defined as
main.
If the bundle is defined elsewhere, it will be removed.
This makes it easy to make importable library policy which can also
be executed directly.
- See https://github.com/cfengine/core/blob/3.12.x/ChangeLog for other
changes and bug fixes
- drop 0003-CFE-2629-Openssl-1.1-compatibility.patch (upstream)
drop reproducible.patch (upstream)
add 0003-Reduce-string-truncation-warnings.patch
rename make_home_dir_for_tests.patch to
0004-make-home-dir-for-tests.patch
* Tue Jun 19 2018 adam.majer@suse.de
- Use %license instead of %doc
* Tue Jun 19 2018 aeszter@gwdg.de
- fix path in unit files
Version: 3.11.0-bp150.2.3
* Mon Dec 04 2017 kkaempf@suse.com
- add 0003-CFE-2629-Openssl-1.1-compatibility.patch
for openssl-1.1.0 compatibility
* Fri Aug 11 2017 kkaempf@suse.com
- Update to 3.11.0
New Features:
- allow function calls in promiser using universal "with"
attribute. (CFE-1092)
- add example of with attribute (CFE-1092)
- Detect Amazon Linux and set "AmazonLinux" hard class and
sys.flavour variable.
- New sysctlvalue() and data_sysctlvalues() functions from /proc/sys
(CFE-2513)
- readdata() also auto-detects .yml files as YAML
- Added support for ENV and CSV file parsing (CFE-1881)
- Added vars and classes for CoreOS (ENT-3043)
- cf-agent: implement --show-evaluated-vars and
- -show-evaluated-classes
- Support for custom ports and host names as policy hub (CFE-953)
- cf-promises: allows --show-vars and --show-classes to take an
optional filter
- Added a new tool: cf-net. cf-net is a CLI for the CFEngine
network protocol, useful for debugging, testing etc.
(CFE-2493)
- New policy variable: sys.cf_net contains path to cf-net binary
- Read /etc/os-release into sys.os_release (CFE-1881)
- Full changelog at https://github.com/cfengine/core/blob/3.11.0/ChangeLog
* Sun Jul 02 2017 bwiedemann@suse.com
- Use gzip -n to not add timestamps to .gz header
- Add reproducible.patch to override man page date
to make package build fully reproducible
* Fri May 19 2017 jengelh@inai.de
- Reword description to have less marketing speak.
- Remove two unnecessary ldconfig calls.
* Fri Mar 31 2017 kkaempf@suse.com
- Update to 3.10.1
New features/additions:
- "make tar-package" should create a tarball with the contents of
"make install" (ENT-3041)
Bugfixes:
- Fix rare output truncation on Solaris 10/11 (CFE-2527)
- Change: Don't error during dry run for proposed execution.
(CFE-2561)
- prevent LMDB assertion on AIX by ensuring nested DB calls are
not occuring during signal handler cleanup (CFE-1996)
- Detect Amazon Linux and set "AmazonLinux" hard class and
sys.flavour variable.
- Fix "lastseenexpireafter" 32-bit signed int overflow.
- Add missing pcre build flags to cf-key (CFE-2525)
- Fix a bug which could cause cf-execd to believe there was
an error when sending the email report, when there really wasn't.
- cf-serverd: Auto configure max open files ulimit according to
maxconnections (CFE-2575)
- Added vars and classes for CoreOS (ENT-3043)
* Thu Feb 02 2017 bwiedemann@suse.com
- Fix build with rpm-4.13
* Fri Dec 30 2016 adam.majer@suse.de
- make_home_dir_for_tests.patch: Make cfengine home directory to
avoid spamming logfiles during unit tests (bnc#1016848)
* Thu Dec 29 2016 kkaempf@suse.com
- Update to 3.10.0 (final) - LTS until Dec 2019
See https://cfengine.com/company/blog-detail/cfengine-3-10-lts-released/
and https://github.com/cfengine/core/blob/3.10.0/ChangeLog
for full changelog.
New features/additions:
- All new features/additions for 3.8 and 3.9 are also included in 3.10.
- Add: Classes body tailored for use with diff
- New feature: Classes promise: allow classes without an expression to
default to defined.
- Support for custom ports and host names as policy hub (CFE-953)
- Add: Definition of from_cfexecd for cf-execd initiated runs
(CFE-2386)
- Add < <= > >= operators to eval().
- Add testing jUnit and TAP bundles and include them in stdlib.cf
- New function isipinsubnet() (ENT-7949)
- LogDebug(): implement module-based debug logging.
Now most DEBUG messages are *not* printed even when "-d" is in
use, but the specific debug module has to be enabled on the
command line. For example to enable all log modules, run:
cf-agent -d --log-modules=all
- Add: edit_line contains_literal_string to stdlib
- add variablesmatching_as_data() function paralleling variablesmatching()
(Redmine #7885)
- Allow specifying agent maxconnections via def.json (CFE-2461)
- Add getuserinfo() function
- Add body agent control select_end_match_eof option. (CFE-2390)
- rename 0001-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
to 0002-Simplify-and-fix-parsing-of-etc-SuSE-release-fixes-i.patch
- drop cfengine-3.10.0b1.patch, upstream
* Wed Nov 16 2016 kkaempf@suse.com
- Update to 3.10.0 (beta1) - LTS until Dec 2019
See https://github.com/cfengine/core/blob/3.10.0b1/ChangeLog
for full ChangeLog
- Add cfengine-3.10.0b1.patch to find libacl during build
* Fri Aug 05 2016 kkaempf@suse.com
- Update to 3.9.1
- Change: Log level for keeping verbatim JSON to DEBUG (CFE-2141)
- Change (masterfiles): Definition of from_cfexecd for
cf-execd initiated runs (CFE-2386)
- Change: Switch processes restart_class logging to verbose
- Change: Enable agent component management policy on systemd hosts
(CFE-2429)
- Change: Remove executable bit from systemd units (CFE-2436)
- Change: Require network before cfengine services (CFE-2435)
- Fix 'contain' attribute 'no_output' having no effect when
the 'commands' promise is using 'module => "true"'. (CFE-2412)
- Fix: Services starting or stopping unnecessarily (CFE-2421)
- Fix occasional segfault when running getindices() on a
variable that has indices of multiple depths (e.g. both "a[x]" and
"a[x][y]"). (CFE-2397)
- Fix bug in files promise when multiple owners are promised
but first one doesn't exist, and improve logging . (CFE-2432)
- fix: memory leaks
* Wed Jun 15 2016 kkaempf@suse.com
- Update to 3.9.0
Full changelog at https://github.com/cfengine/core/blob/3.9.0/ChangeLog
New features:
- 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)
* Fri Apr 15 2016 kkaempf@suse.com
- Update to 3.8.2
Fixes:
- Reduce verbosity of apt_get package module (Redmine #7485)
- Reduce verbosity of yum package module (Redmine #7485)
- The isvariable() function call now correctly accepts all
array variables when specified inline. Previously it would not accept
certain special characters, even though they could be specified
indirectly by using a variable to hold it. (Redmine #7088)
- Don't follow symbolic links when copying extended attributes.
- Fix a bug which sometimes caused package promises to be
skipped with "XX Another cf-agent seems to have done this
since I started" messages in the log, most notably in long running cf-agent
runs (longer than one minute). (Redmine #7933)
- Fix bug which could render host unable to recover from a
syntax error, even if failsafe.cf was utilized. This could
happen if the file containing the syntax error was specified in the def.json
special file. (Redmine #7961)
- Change: Policy files specified in the "inputs" section of
def.json will no longer be auto-loaded. One has to refer to the
$(def.augments_inputs) variable in the policy (the standard
masterfiles policies include this by default). This only affects
installations which are not based on the standard masterfiles, and
which are using the "inputs" field inside def.json. (Redmine #7961)
- Fix file descriptor leak when there are network errors.
- Fix cf-serverd error messages with classic protocol clients
(Redmine #7818)
- Installing packages containing version numbers using yum
now works correctly. (Redmine #7825)
- Fix ps options for FreeBSD to check processes only in
current host and not in jails
- fix build failure on FreeBSD 7.1 (Redmine #7415)
- Show errors regarding failure to copy extended attributes
when doing a local file copy. Errors could happen when copying
across two different mount points where the support for extended
attributes is different between the mount points.
- Fix classes being set because of hash collision in the implementation.
(Redmine #7912)
- Allow def.json up to 5MB instead of 4K.
- Fix a regression which would sometimes cause "Permission
denied" errors on files inside directories with very restricted
permissions. (Redmine #7808)
- Change: Suppress standard services noise on SUSE (Redmine #6968)
Changes:
- Change: classesmatching(): order of classes changed
* Mon Feb 01 2016 kkaempf@suse.com
- Update to 3.8.1
Changes:
- Upgrade CFEngine dependencies to the following versions:
- OpenSSL 1.0.2e
- PCRE 8.38
- libxml2 2.9.3
- OpenLDAP 2.4.43
- libcurl 7.46.0
- Upgrade LMDB to version 0.9.17. (Redmine #7879)
Bug fixes:
- @if minimum_version now correctly ignores lines starting with '@'
(Redmine #7862)
- Add guard for binary upgrade during bootstrap (Redmine #7861)
- Namespaced classes can now be specified on the command line.
- Fix bad option nlwp to vzps on Proxmox / OpenVZ. (Redmine #6961)
- Fix two cases where action_policy warn still produces errors
(Redmine #7274)
- Parse def.json vars, classes and inputs from the C code. This
fixes a bug where certain entries in this file would be parsed
too late to have any effect on the evaluation. (Redmine #7453, #7615)
- Fix HP-UX specific bug that caused a lot of log output to disappear.
- Check for empty server response in RemoteDirList after decryption
(Redmine #7908)
- getvalues() will now return a list also for data containers,
and will descend recursively into the containers. (Redmine #7116)
- Define (bootstrap|failsafe)_mode during update.cf when triggerd
from failsafe.cf (Redmine #7861)
* Mon Dec 07 2015 kkaempf@suse.com
- Update to 3.8.0
New features/additions:
- New feature: Bodies can now inherit attribute values from
other bodies by specifying "inherit_from" with the name of the body to
inherit from, plus any arguments it accepts. For example:
body classes myclasses
{
inherit_from => classes_generic("myname");
}
(Redmine #4309)
- Add url_get() function. (Redmine #6480)
- Add @if feature() syntax
@if feature work like @if minimum_version but allows distinguishing
between features choosen at compile time.
- Extend module protocol to create persistent classes.
To use it, have the module print a line with "^persistence=<minutes>"
before printing any class names. "persistence=0" goes back to non-
persistent classes. (Redmine #7302)
- Add: New results classes body (Redmine #7418)
- Add: Debug reports in cfe_internal_cleanup_agent_reports
- Add: Path to svcprop in stdlib
- Add: masterfiles-stage script to contrib
- Whitespace is now allowed in class expressions for
readability, between class names and operators. (Redmine #7152)
- Add: New results classes body [Redmine#7481] (Redmine #7418)
Changes:
- Change: Clarify bootstrap/failsafe reports
- Change: Improve in-line docs for internal log maintenance
- Change: Improve efficiency and debug reports (Redmine #7527)
- Remove: 3.5 support from masterfiles policy framework
- Long promiser strings with multiple lines are now
abbreviated in logs. (Redmine #3964)
- Change: Reunify Version based policy split
- Change: Seperate binary details from policy update (Redmine #7662)
- Remove /var/cfengine/cf3.<host>.runlog. (Redmine #6957)
- Change: sys.libdir and sys.local_libdir to non version specific path
- sys.libdir now resolves to $(sys.inputdir)/lib
- sys.local_libdir now resolves to lib (Redmine #7559)
- Moved the following files to /var/cfengine/log/:
- /var/cfengine/promise_summary.log
- /var/cfengine/cfagent.<host>.log
- Change: Seperate binary details from policy update (Redmine #7662)
- Remove: Support for email settings from augments_file (Redmine #7682)
Many bug fixes.
* Wed Sep 09 2015 kkaempf@suse.com
- Update to 3.7.1 (LTS release)
- Fix daemons not restarting correctly on upgrade on AIX. (Redmine #7550)
- Fix upgrade causing error message under systemd because of open ports.
- Fix build with musl libc. (Redmine #7455)
- Long promiser strings with multiple lines are now abbreviated in
logs. (Redmine #3964)
- Fixed a bug which could cause daemons to not to be killed
correctly when upgrading or manually running "service cfengine3 stop".
(Redmine #7193)
- Package promise: Fix inability to install certain packages
with numbers.
- Fix package promise not removing dependant packages. (Redmine #7424)
- Fix warning "Failed to parse csv file entry" with certain very
long commands promises. (Redmine #7400)
- Fix misaligned help output in cf-hub. (Redmine #7273)
- Augmenting inputs from the augments_file (Redmine #7420)
- Add support for failover to 3rd HA node located outside cluster.
- Upgrade all dependencies for patch release.
- Fix a bug which caused daemons not to be restarted on upgrade.
(Redmine #7528)
* Mon Jul 20 2015 kkaempf@suse.com
- Update to 3.7.0
See https://github.com/cfengine/core/blob/3.7.x/ChangeLog for
full changelog
New features:
- New package promise implementation.
The syntax is much simpler, to try it out, check out the syntax:
packages:
"mypackage"
policy => "absent/present",
[#] Optional, default taken from common control
package_module => apt_get,
[#] Optional, will only match exact version. May be
[#] "latest".
version => "32.0",
[#] Optional.
architecture => "x86_64";
- Full systemd support for all relevant platforms
- New classes to determine whether certain features are enabled:
* feature_yaml
* feature_xml
For the official CFEngine packages, these are always enabled, but
packages from other sources may be built without the support.
- New readdata() support for generic data input (CSV, YAML, JSON, or auto)
- YAML support: new readyaml() function and in readdata()
- CSV support: new readcsv() function and in readdata()
- New string_mustache() function
- New data_regextract() function
- eval() can now be called with "class" as the "mode" argument, which
will cause it to return true ("any") if the calculated result is
non-zero, and false ("!any") if it is zero.
- New list_ifelse() function
- New mapjson() function as well as JSON support in maparray().
- filestat() function now supports "xattr" argument for extended
attributes.
- "ifvarclass" now has "if" as an alias, and "unless" as an inverse
alias.
- Ability to expand JSON variables directory in Mustache templates:
Prefix the name with '%' for multiline expansion, '$' for compact
expansion.
- Ability to expand the iteration *key* in Mustache templates with @
- Canonical JSON output: JSON output has reliably sorted keys so the
same data structure will produce the same JSON every time.
- New "@if minimum_version(x.x)" syntax in order to hide future language
improvements from versions that don't understand them.
- compile time option (--with-statedir) to
override the default state/ directory path.
- Fix error messages/ handling in process signalling which no longer
allowed any signals to fail silently
- Also enable shortcut keyword for cf-serverd classic protocol, eg to
simplify the bootstrap process for clients that have different
sys.masterdir settings (Redmine #3697)
- methods promises now accepts the bundle name in the promiser string,
as long as it doesn't have any parameters.
- In a services promise, if the service_method bundle is not specified,
it defaults to the promiser string (canonified) with "service_" as a
prefix. The bundle must be in the same namespace as the promise.
- inline JSON in policy files: surrounding with parsejson() is now
optional *when creating a new data container*.
- New data_expand() function to interpolate variables in a data container.
- Add configurable network bandwidth limit for all outgoing
connections ("bwlimit" attribute in "body common control") . To
enforce it in both directions, make sure the attribute is set on both
sides of the connection.
- Secure bootstrap has been facilitated by use of
"cf-agent --boostrap HUB_ADDRESS --trust-server=no"
- Implement new TLS-relevant options (Redmine #6883):
- body common control: tls_min_version
- body server control: allowtlsversion
- body common control: tls_ciphers
- body server control: allowciphers (preexisting)
- Drop patches, both upstream
0001-Do-not-use-insecure-MD5-but-rather-SHA256.patch
cfengine-fips.patch
* Wed Jun 17 2015 kkaempf@suse.com
- Fix Fedora/RHEL builds
* Mon Mar 23 2015 tchvatal@suse.com
- Partial fix for bnc#923417:
* 0001-Do-not-use-insecure-MD5-but-rather-SHA256.patch
* Wed Mar 18 2015 tchvatal@suse.com
- Enable tests, 1 fail so document it
* Wed Mar 18 2015 tchvatal@suse.com
- Enable pam and disable silent rules for make