-
Notifications
You must be signed in to change notification settings - Fork 188
/
Copy pathChangeLog
538 lines (404 loc) · 19.2 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
3.3.0 (in development)
New built-in functions:
- dirname() to complement lastnode()
- lsdir()
- maplist() to apply functions over lists
New features:
- Allow defining arrays from modules.
- Allow both `process_stop' and `signals' constraints in
`processes' promises at the same time.
- cf-promises --gcc-brief-format option to output warnings and
errors in gcc-compatible syntax which to ease use "go to next
error" feature of text editors.
- cf-promises --parse-tree option to parse policy file and dump it
in JSON format
- Services promises for generic/Unix added.
New built-in variables and classes (Linux):
- Number of CPUs: $(sys.cpus), 1_cpu, 2_cpus etc
New built-in variables and classes (Unices):
- $(sys.hardware_addresses) - list of MAC adresses
- $(sys.ip_addresses) - list of IP addresses
- $(sys.interfaces) - list of network interfaces
- $(sys.hardware_mac[$iface]) - MAC address for network interface
- mac_<mac_address>:: - discovered MAC addresses
Cleanups and improvements:
- Memory and CPU usage improvements.
- Testsuite now uses 'make check' convention and does not need root
privileges anymore.
- See the full list of bugfixes at
https://cfengine.com/bugtracker/changelog_page.php
3.2.4 (Bugfix and Stability release)
Fixed failure in network transfer in case of misbehaving peer
A few tiny memory leaks on error paths fixed
3.2.3 (Bugfix and Stability release)
A few tiny memory leaks fixed
Improved performance of cf-serverd under heavy load with
TokyoCabinet database
Full list of issues fixed is available on
https://cfengine.com/bugtracker/changelog_page.php
3.2.2 (Bugfix and Stability release)
Enabled compilation in "large files" mode under AIX
Alleviated problem with broken file transfers over unstable
Internet links.
Full list of issues fixed is available on
https://cfengine.com/bugtracker/changelog_page.php
3.2.1 (Bugfix and Stability release)
Fixed compilation under HP-UX and Solaris
Enabled compilation using HP ANSI C compiler
Full list of issues fixed is available on
https://cfengine.com/bugtracker/changelog_page.php
3.2.0
New bootstrap method with single-command bootstrapping:
- cf-agent --bootstrap --policy-server 123.456.789.123
- Associated policy template files are added, partially maintained
by CFEngine
Bug fixes for file-editing, package versioning, and embedded
database corruption (We recommend using TokyoCabinet instead of
BerkeleyDB if building from source).
Improved upgrade path for Nova.
Patches for improved run-agent concurrency
Reorganization of documentation and community resources
100% on regression test suite on 3 operating systems
(Ubuntu, Debian, SuSE on x86-64 hardware)
Support for multiple release environments
package_policy update and addupdate now check if user-supplied
version is larger than currently installed - updates only if so
Help text of cf-report -r corrected - a list of key hashes is
required, not ip addresses.
New Emacs mode for CFEngine policy files (thanks to Ted Zlatanov!)
Warnings are on edit_line changes can now give greater degree of information
without spamming promise logs
Class expressions parser accepts '||' as an alias for '|' again.
Invalidation of package list cache on installation/removal of
packages.
New option cf-key -r to remove host key by IP or hostname.
Added detection of network interfaces which belong to BSD jails.
Improve robustness of multi-threaded code, in particular fix
problems with spurious acces denials in server and losing of
authentication rules after policy reload.
cf-promises accepts option -b matching cf-agent, which causes it
to do not complain about missing bundlesequence.
New functions and(), not(), or() and concat() to ease use of
ifvarclass() clause.
Full list of issues fixed is available on
https://cfengine.com/bugtracker/changelog_page.php
3.1.5
New class parser, '||' is no longer allowed in expressions (use '|').
Class setting in the promise types insert_lines, delete_lines,
replace_patterns, field_edits, vars, classes is restored.
suspiciousnames implemented.
New function getvalues().
New functions parse{read,int,string}array to match read{read,int,string}array.
Testsuite added to check for core functionality.
Syslog prefix is fixed to say 'cf3' instead of 'community'.
3.1.4 (Bugfix and Stability release)
Some urgent patches to 3.1.3.
Class validation parse bug fixed.
Global zone handling error for solaris fixed.
Package architectures handled correctly (bug #456).
Reading and writing of key name "root-.pub" eliminated (bug #442, #453).
cf-serverd crash because of race condition on SERVER_KEYSEEN fixed.
Lock purging to avoid remnant complexity explosion (bug #430).
Some copyright notices added that got lost.
3.1.3 (Stability release)
Major memory leaks in cf-monitord, cf-execd, cf-serverd fixed (bug #427).
The daemons now show no growth even with very complex policies.
cf-serverd crash due to race condition in DeleteScope() fixed (bug #406).
Added 30 second timeout on recv() on Linux.
package_noverify_returncode implemented (bug #256).
A flexible mechanism for setting classes based on return codes of
commands has been introduced. Allows for setting promise kept,
repaired or failed based on any return codes. This is currently
implemented for commands-promises, package-manager commands and
transformer in files. In classes body, see attributes
kept_returncodes, repaired_returncodes, failed_returncodes (bug
#248, #329).
New function ip2host - reverse DNS lookup (bug #146).
3.1.2 (Scalability/efficiency release)
Big efficiency improvements by caching output from
cf-promises. Can also be used for much more efficent policy
deployment (only pull if changed).
Caching state of ps command for greater efficiency. Reloaded for each bundle.
Index class lookup improves efficiency of class evaluation for huge configurations.
Fixed issue where certain promiser strings got corrupted.
Minor memory access issues fixed.
Iterator bug introduced in 3.1.0 fixed
3.1.1 (Bugfix release)
Memory leaks in server tracked down and fixed.
List expansion bug (one list items not executed) fixed.
Security issue introduced by change of runcommand shell policy fixed. If users defined a runcommand for cf-runagent/cf-serverd communication, possible to execute commands.
cf-key -s command for showing key hash/IP address identity pairs
3.1.0
Change in storage of public keys. Cfengine now hashes the public key and uses this
as the keyname. Keys will be converted automatically.
The old dynamic addresses lists are deprecated.
Caching of dns and key information for greater server speed.
Change in last-seen format reflects the public key usage.
New package policy addupdate - installs package if not there and
updates it otherwise.
Support for package_changes => "bulk" in file repository as well.
New special function readstringarrayidx, similar to readstringarray,
but uses integer indeces. Very useful if first row elements are
not good identifiers (e.g. contains spaces, non-unique, etc.).
Change two log formats to use time() instead of date()
- filechanges
- total compliance
Change from using md5 to sha256 as default digest for commercial version,
community retains md5 for compat.
Commands not returning 0 in commands-promises are flagged
as repair_failed.
Adjustable timeout on connect(). Defaults to 10 seconds, adjustable
with default_timeout in agent control.
Redesign of the knowledge map infrastructure.
Now possible to use variables to call methods, e.g
methods:
"name $(list)" usebundle => $(list)("abc");
See reference manual notes
Changes to normal ordering to optimize execution.
Increased stability by always initializing Attribute and Promise
structures.
When running cf-promises in dry-run mode (-n), the user does not need
to put binaries in WORKDIR/bin. For example, non-privileged users can verify root
policies.
Source control revision added in version string if run in verbose mode
(e.g. "cf-promises -vV"). This needs some refining, uses revision of a header now.
New semantics in return values of list functions. Null values are now allowed
and there is no iteration over empty lists. The value "cf_null" is reserved for
use as a null iterator.
3.0.5p1
Showing paths allowed/denied access to when cf-serverd is run in verbose mode.
Bug in server fixed for dynamic addresses.
File handle closure bugfix - too many open databases.
Seg fault in mount files fix.
Twin used in cf-execd without checking.
Check_root set wrong directory permissions at source not destination.
Error message degraded in body definition.
Undefined body not warned as error.
Various build enahncements.
Package_list_update called only once per manager, and fixed crash.
Version number bug in packages.
3.0.5
Encryption problems fixed - client key buffer was uninitialized.
Classes-promisers are now automatically canonified when class
strings are defined, to simplifying the use of variables in classes.
New scalars sys.cf_version and sys.nova_version that hold Cfengine version information.
Attribute package_delete_convention added, to allow customizable
package name in delete command during update.
package_list_update_ifelapsed limit added.
Private variable $(firstrepo) is available in package_name_convention
and package_delete_convention in order to expand the full path to
a package, which is required by some managers.
Some of the threading code is rewritten and made more robust. This includes
synchronizing access to the lastseen database from the server.
Bad initialization of BSD flags fixed
Multiple variable expansion issues in control fixed for server and agent
Allow ignore_missing_bundles to affect methods: bundles too
Run agent trust dialogue fixed
Bug in CPU monitoring, increasing time scale caused linear decay
of CPU measurement.
Bug in Setuid log storage, fix.
Hooks added for new Nova virtualization promises.
Multithreading mutex failed to collide during cfservd leading to dropped authentication under heavy load.
3.0.4
Class cancellation in promises to create better class feedback,
allows emulation of switch/case semantics etc
Value of SA measurement promises
Special function getenv() which returns the contents of an
environment variable (on all platforms).
New function translatepath for generic Windows
New function escape() to escape literals as regular expressions (like SQL)
New function host2ip for caching IP address lookup
New function regextract for setting variables with backreferences
New variables for the components $(sys.cf_agent), $(sys.cf_know) etc
pointing to the binaries.
More robust integrated database implementation; closing all
handles when receiving signals, self-healing on corruption.
Package installation on localhost without a manager like yum completed,
multiple repositories searched, and universal methods.
Numerous bugfixes
3.0.3
sha256 .. new hashes in openssl included in syntax tree.
End of line autocropping in readfile (hopefully intelligent)
hashmatch function incorrectly implemented - old debugging code left behind. Fix.
sys.crontab variable
Unknown user is now interpretated as "same user", so that we give cfengine a chance to
fix
Unregistered addresses no longer report "(Non registered IP)", but return as the address
itself when doing reverse lookups.
3.0.2
IMPORTANT: Change in normal ordering of editing. replace comes
after insert lines Much testing and minor bug fixing
Memory leaks fixed
Many hooks added for Nova enterprise extensions.
promise_output reports now placed in WORKDIR/reports directory
Initialization correction and self-correx in monitord
Many new body constraints added.
Code readied for enterprise version Nova.
-b option can override the bundlesequence (must not contain parameters yet)
collapse_destination_dir option added to copy so that files can be
aggregated from subdirectories into a single destination.
Preparation for release:
unit_accessed_before.cf x
unit_accumulated_time.cf x
unit_acl.cf x
unit_acl_generic.cf x
unit_ago.cf x
unit_arrays.cf x
unit_backreferences_files.cf x
unit_badpromise.cf x
unit_badtype.cf x
unit_bsdflags.cf x
unit_cf2_integration.cf x
unit_changedbefore.cf x
unit_change_detect.cf x
unit_chdir.cf x
unit_classes_global.cf x
unit_classmatch.cf x
unit_classvar_convergence.cf x
unit_compare.cf x
unit_controlclasses.cf x
unit_control_expand.cf x
unit_copy.cf x
unit_copy_edit.cf x
unit_copylinks.cf x
unit_createdb.cf x
unit_create_filedir.cf x
unit_definitions.cf x
unit_deletelines.cf x
unit_disable_and_rotate_files.cf x
unit_dollar.cf x
unit_edit_column_files.cf x
unit_edit_comment_lines.cf x
unit_edit_deletenotmatch.cf x
unit_edit_insert_lines.cf x
unit_edit_insert_lines_silly.cf x
unit_edit_replace_string.cf x
unit_edit_sectioned_file.cf x
unit_edit_setvar.cf x
unit_edit_triggerclass.cf x
unit-env.cf x
unit_epimenides.cf x
unit_exec_args.cf x
unit_execd.cf x
unit_exec_in_sequence.cf x
unit_execresult.cf x
unit_expand.cf x
unit_failsafe.cf x
unit_file_change_detection.cf x
unit_fileexists.cf x
unit_file_owner_list_template.cf x
unit_fileperms.cf x
unit_filesexist2.cf x
unit_filesexist.cf x
unit_getgid.cf x
unit_getindices.cf x
unit_getregistry.cf x
unit_getuid.cf x
unit_global_list_expansion_2.cf x
unit_global_list_expansion.cf x
unit_groupexists.cf x
unit_hash.cf x
unit_hashcomment.cf x
unit_hashmatch.cf x
unit_helloworld.cf x
unit_hostrange.cf x
unit_intarray.cf x
unit_iprange.cf x
unit_irange.cf x
unit_isdir.cf x
unit_islink.cf x
unit_isnewerthan.cf x
unit_isplain.cf x
unit_isvariable.cf x
unit_iteration.cf x
unit_knowledge_txt.cf x
unit_lastnode.cf x
unit_ldap.cf x
unit_linking.cf x
unit_literal_server.cf x
unit_locate_files_and_compress.cf x
unit_log_private.cf x
unit_loops.cf x
unit_measurements.cf x
unit_method.cf x
unit_method_validate.cf x
unit_module_exec_2.cf
unit_module_exec.cf
unit_mount_fs.cf x
unit_neighbourhood_watch.cf x
unit_null_config.cf x
unit_occurrences.cf x
unit_ordering.cf x
unit_package_apt.cf x
unit_package_hash.cf x
unit_package_rpm.cf x
unit_package_yum.cf x
unit_package_zypper.cf x
unit_parallel_exec.cf x
unit_pathtype.cf x
unit_pattern_and_edit.cf x
unit_peers.cf x
unit_postfix.cf x
unit_process_kill.cf x
unit_process_matching2.cf x
unit_process_matching.cf x
unit_process_signalling.cf x
unit_readlist.cf x
unit_readtcp.cf x
unit_regarray.cf x
unit_registry.cf x
unit_regline.cf x
unit_reglist.cf x
unit_remove_deadlinks.cf x
unit_rename.cf x
unit_report_state.cf x
unit_reporttofile.cf x
unit_returnszero.cf x
unit_select_mode.cf x
unit_select_region.cf x
unit_selectservers.cf x
unit_select_size.cf x
unit_server_copy_localhost.cf x
unit_server_copy_remote.cf x
unit_server_copy_purge.cf x
unit_splitstring.cf x
unit_sql.cf x
unit_storage.cf x
unit_strcmp.cf x
unit_stringarray.cf x
unit_syslog.cf x
unit_template.cf x
unit_tidy_all_files.cf x
unit_user_edit.cf x
unit_user_edit_method.cf x
unit_userexists.cf x
unit_varclass.cf x
unit_vars.cf x
unit_warnifline.cf x
unit_webserver.cf x
3.0.1
First standalone release, independent of cfengine 2
Purge old definitions and check consistency.
NB: changed search_mode to be a list of matching values
Reporting rationalized in cf-promises with -r only to avoid
leaving output files everywhere.
Hooks added for upcoming commerical additions to cfengine.
Added classify() and hostinnetgroup() functions
Added additional change management options for change detection
Package management added - generic mechanisms.
Limits on backgrounding added to avoid resource contention during cfengine runs.
Image type added to cf-know.
New classes for quartly shifts: Morning,Afternoon,Evening,Night
Bug fixes in editfiles - line insertion for multiple line objects
Change the name of the variables and context from the monitord for
better separation of data, and shorter names. sys -> mon
average -> av, stddev -> dev
canonical name for windows changed from "nt" to "windows", also version names
added "vista","xp" etc..
License notices updated for dual license editions.
3.0.0
First release of cfengine 3. Known omissions:
- no support for ACLs
- no support for packages
- no support for interface configuration
These will be added in the next release.