Imported Upstream version 1.9.0
[platform/upstream/augeas.git] / NEWS
1 1.9.0 - 2017-10-06
2   - General changes/additions
3     * several improvements to the error messages when transforming a tree
4       back to text fails. They now make it clearer what part of the tree
5       was problematic, and what the tree should have looked like.
6     * Fixed the pkg-config file, which should now be usable
7     * Fix handling of backslash-escaping in strings and regular expressions
8       in the lens language. We used to handle constructs like "\\" and
9       /\\\\/ incorrectly. (Issue #495)
10     * do not unescape the default value of a del on create; otherwise we are
11       double unescaping these strings (Issue #507)
12     * remove tempfile when saving files because destination is not writable
13       (Issue #479)
14     * span information is now updated on save (Issue #467)
15     * fix lots of warnings generated by gcc 7.1
16     * Various changes to reduce bashisms in tests and make them run on
17       FreeBSD (Romain Tartière)
18     * Fix building on Solaris (Shawn Ferry)
19   - API changes
20     * add function aug_ns_attr to allow iterating through a nodeset
21       quickly. See examples/dump.c for an example of how to use them
22       instead of aug_get, aug_label etc. and for a way to measure
23       performance gains.
24   - Lens changes/additions
25     * Ceph: new lens for /etc/ceph/ceph.conf
26     * Cgconfig: accept fperm & dperm in admin & task (Pino Toscano)
27     * Dovecot: also load files from /usr/local/etc (Roy Hubbard)
28     * Exports: relax the rules for the path at the beginning of a line so
29       that double-quoted paths are legal, too
30     * Getcap: new lens to parse generic termcap-style capability databases
31       (Matt Dainty)
32     * Grub: accept toplevel 'boot' entry (Pino Toscano)
33     * Httpd: handle empty comments with a continuation line (Issue #423);
34       handle '>""' in a directive properly (Issue #429); make space between
35       quoted arguments optional (Issue #435); accept quoted strings as part
36       of bare arguments (Issue #470)
37     * Nginx: load files from sites-available directory (Omer Katz) (Issue #471)
38     * Nslcd: new lens for nss-pam-ldapd config (Jose Plana)
39     * Oz: New lense for /etc/oz/oz.cnf
40     * postfix lenses: also load files from /usr/local/etc (Roy Hubbard)
41     * Properties: accept DOS line endings (Issue #468)
42     * Rtadvd: new lens to parse the rtadvd configuration file (Matt Dainty)
43     * Rsyslog: load files from /etc/rsyslog.d (Doug Wilson) (Issue #475);
44       allow spaces before the # starting a comment; allow comments inside
45       config statements like 'module'
46     * Shellvars: load FreeBSD's /etc/rc.conf.d (Roy Hubbard)
47     * Ssh: accept '=' to separate keyword from arguments
48     * Sshd: split HostKeyAlgorithms into list of values; recognize quoted
49       group names with spaces in them (Issue #477)
50     * Sudoers: recognize "match_group_by_gid" (Luigi Toscano) (Issue #482)
51     * Syslog: allow spaces before the # starting a comment
52     * Termcap: new lens to parse termcap capability databases (Matt Dainty)
53     * Vsftpd: accept seccomp_sandbox (Denys Stroebel)
54     * Xymon: accept 'group-sorted' directive (Issue #462)
55
56 1.8.1 - 2017-08-17
57   - General changes/addition
58     * Fix error in handling escaped whitespace at the end of path expressions
59       (addresses CVE-2017-7555)
60
61 1.8.0 - 2017-03-20
62   - General changes/additions
63     * augtool: add a 'source' command exposing the aug_source API call
64     * augtool: add a 'context' command to make changing into a node more
65       discoverable
66     * augtool: add an 'info' command to print important information
67     * augtool: dramatically reduce memory consumption when all lenses are
68       loaded by more aggressively releasing temporary data structures.  On
69       my machine, maximum memory usage of 'augtool -L' drops from roughly
70       90MB to about 20MB. This will not change the amount of memory used
71       when only specific lenses are used, only the default behavior of
72       loading all lenses, i.e., when -A is not passed.
73     * make building augtool statically possible (Jörg Krause)
74     * split aug_to_xml into its own source file, so that statically linking
75       against libaugeas.a doesn't require also linking against libXml2 and
76       its dependencies, provided aug_to_xml is not needed.
77   - API changes
78     * add aug_source to find the source file for a particular node
79     * reduce memory consumption when AUG_NO_MODL_AUTOLOAD is _not_ passed;
80       exact same details as described above for augtool
81   - Lens changes/additions
82     * Chrony: allow floating point numbers (Miroslav Lichvar)
83               add new directives from chrony 3.0 and 3.1 (Miroslav Lichvar)
84     * Krb5: support include/includedir directives (Jason Smith) (Issue #430)
85             support realms that start with numbers (Dustin Wheeler) (Issue #437)
86     * Multipath: update to multipath-0.4.9-99.el7 (Xavier Mol)
87     * Php: also look for FPM files in /etc/php/*/fpm/pool.d (Daniel Dico)
88     * Postfix_virtual: allow underscores in e-mail addresses (Jason Lingohr)
89                        (Issue #439)
90     * Radicale: new lens for config of http://radicale.org/ (James Valleroy)
91     * Rsyslog: support multiple options in module statements (Craig Miskell)
92     * Ssh: also look for files in in /etc/ssh/ssh_config.d (Ian Mortimer)
93     * Tmpfiles: parse 'q'/'Q' modes, parse two-character arguments,
94                 parse three-digit file modes
95     * Xml: support external entity declarations in the doctype (Issue #142)
96     * Yum: also read DNF files from /etc/dnf (Pat Riehecky) (Issue #434)
97
98 1.7.0 - 2016-11-08
99   - General changes/additions
100     * allow multiple transforms handling the same file as long as they
101       also use the same lens (reported by Rich Jones)
102     * fix a use-after-free in recursive lenses when spans are
103       enabled (Issue #397)
104     * fix an illegal memory access during put that can be triggered by a
105       lens of the form 'del ... | l1 . l2' when the put has to jump
106       branches in the union (Issue #398)
107     * a large number of fixes based on Coverity scanning and running with
108       gcc's address sanitizer. None of the issues uncovered would have lead
109       to particularly significant leaks (they were all on the order 100-200
110       bytes) and often hard to trigger, but we now have proof that at least
111       while running tests there are no leaks at all.
112       See https://github.com/hercules-team/augeas/pull/405 for details.
113     * The type checker now checks regexes that are involved in
114       expressions. For example, it used to be possible to write 'let rx =
115       /a/ | /b)/' and not get an error from the syntax checker, even though
116       'let rx = /b)/' would result in an error. Such constructs are now
117       checked properly. This new check might lead to errors in existing
118       lenses, requiring that they be fixed.
119   - Lens changes/additions
120     * Cron_User: New lens to handle user crontab files in /var/spool/cron
121     * Csv: fix failure to load lens on OpenBSD (Issue #396)
122     * Grub: also look for UEFI grub files in /boot/efi/EFI/*/grub.conf
123             (Rich Jones)
124     * Opendkim: new lens for /etc/opendkim.conf (Craig Miskell)
125     * Php: look for php.ini where Ubunto 16.04 puts it, too (Michael Wodniok)
126     * Splunk: support Splunk Universal Forwarder and underscore-prefixed
127               keys for 6.x (Jason Antman)
128
129 1.6.0 - 2016-08-05
130   - General changes/additions
131     * augtool: add --load-file option, and corresponding load-file command
132       to load individual files based on the autoload information in lenses
133     * path expressions: numbers in path expressions are now 64 bit integers
134       rather than whatever the C compiler decided 'int' would be
135   - API changes
136     * add aug_load_file to load individual files, bug #135
137   - Lens changes/additions
138     * Httpd: follow line continuations in comments
139     * Nginx: look for nginx.conf in /usr/local/etc, too (Omer Katz)
140     * Ntp: allow 'pool' (Craig Miskell) (Issue #378);
141            fix restrict to allow also -4 and also fix
142            save/store ability (Josef Reidinger) (Issue #386)
143     * Pam: use spaces instead of tabs as the separator in new entries
144            (Loren Gordon) (Issue #236)
145     * Postfix_Passwordmap: New lens to parse Postfix password maps
146            (Anton Baranov) (Issue #380)
147     * Rsyslog: Support for rsyslog RainerScript syntax
148            (Craig Miskell) (Issue #379)
149     * Shellvars: Load /etc/lbu/lbu.conf, the config for Alpine's Local
150            Backup Utility (Kaarle Ritvanen)
151            Load /etc/profile, /etc/profile.d/*, and /etc/byobu
152     * Vsftpd: Add allow_writeable_chroot boolead option
153            (Robert Moucha) (Issue #376)
154
155 1.5.0 - 2016-05-11
156   - General changes/additions
157     * augtool: new --timing option that prints after each operation how long
158       it took
159     * augtool: print brief help message when incorrect options are given rather
160       than dumping all help text
161     * Path expressions: optimize performance of evaluating certain
162       expressions
163     * lots of safety improvements in libfa to avoid using uninitialized
164       values and the like (Daniel Trebbien)
165     * tolerate building against OSX' libedit (Issue #256)
166   - API changes
167     * aug_match: fix a bug where expressions like /foo/*[2] would match a
168       hidden node and pretend there was no match at all. We now make sure
169       we never match a hidden node. Thanks to Xavier Mol for reporting the
170       problem.
171     * aug_get: make sure we set *value to NULL, even if the provided path is
172       invalid (Issue #372)
173     * aug_rm: fix segfault when deleting a tree and one of its ancestors
174       (Issue #319)
175     * aug_save: fix segfault when trying to save an invalid subtree. A
176       routine that was generating details for the error message overflowed
177       a buffer it had created (Issue #349)
178   - Lens changes/additions
179     * AptConf: support hash comments
180     * AptSources: support options (Issue #295),
181                   support brackets with spaces in URI (GH #296)
182                   rename test file to test_aptsources.aug
183     * Chrony: allow signed numbers and indentation, fix stray EOL entry,
184               disallow comment on EOL, add many missing directives and
185               options (Miroslav Lichvar, RHBZ#1213281)
186               add new directives and options that were added in
187               chrony-2.2 and chrony-2.3 and improve parsing of
188               access configuration (Miroslav Lichvar, Issue #348)
189               add new options for chrony-2.4 (Miroslav Lichvar)
190     * Dhclient: avoid put ambiguity for node without value (Issue #294)
191     * Group: support NIS map, support an overridden and disabled password,
192              i.e. `+:*::` (Matt Dainty) (Issue #258)
193     * Host_Conf: support spaces between list items (Cedric Bosdonnat, Issue #358)
194     * Httpd: add paths to SLES vhosts
195              (Jan Doleschal) (Issue #268)
196              parse backslashes in directive arguments (Issue #307)
197              parse mismatching case of opening/closing tags
198              parse multiple ending section tags on one line
199              parse wordlists in braces in SSLRequire directives
200              parse directive args starting with double quote (Issue #330)
201              parse directive args containing quotes
202              support perl directives (Issue #327)
203              parse line breaks/continuations in section arguments
204              parse escaped spaces in directive/section arguments
205              parse backslashes at the start of directive args (Issue #324)
206     * Inputrc: support $else (Cedric Bosdonnat, Issue #359)
207     * Interfaces: add support for source-directory (Issue #306)
208     * Json: add comments support, refactor,
209             allow escaped quotes and blackslashes
210     * Keepalived: fix space/tag alignments and hanging spaces,
211                   add vrrp_mcast_group4 and vrrp_mcast_group6,
212                   add more vrrp_instance flags,
213                   add mcast/unicast_src_ip and unicast_peer,
214                   add missing garp options,
215                   add vrrp_script options,
216                   expand vrrp_sync_group block,
217                   allow notify option
218                   (Joe Topjian) (Issue #266)
219     * Known_Hosts: refactoring and description fixed
220     * Logrotate: support dateyesterday option (Chris Reeves) (GH #367, #368)
221     * MasterPasswd: new lens to parse /etc/master.passwd
222                     (Matt Dainty) (Issue #258)
223     * Multipath: add various missing keywoards (Olivier Mangold) (Issue #289)
224     * MySQL: include /etc/my.cnf.d/*.cnf (Issue #353)
225     * Nginx: improve typechecking of lens,
226              allow masks in IP keys and IPv6 (Issue #260)
227              add @server simple nodes (Issue #335)
228     * Ntp: add support for basic interface syntax
229     * OpenShift_Quickstarts: Use Json.lns
230     * OpenVPN: add all options available in OpenVPN 2.3o
231                (Justin Akers) (Issue #278)
232     * Puppetfile: name separator is not mandatory
233                   add support for moduledir (Christoph Maser)
234     * Rabbitmq: remove space in option name,
235                 add support for cluster_partitioning_handling,
236                 add missing simple options (Joe Topjian) (Issue #264)
237     * Reprepro_Uploaders: add support for distribution field
238                           (Mathieu Alorent) (Issue #277),
239                           add support for groups (Issue #283)
240     * Rhsm: new lens to parse subscription-manager's /etc/rhsm/rhsm.conf
241     * Rsyslog: improve property filter parsing,
242                treat whitespace after commas as optional.
243                recognize '~' as a valid syslog action (discard)
244                (Gregory Smith) (Issue #282),
245                add support for redirecting output to named pipes
246                (Gerlof Fokkema) (Issue #366)
247     * Shellvars: allow partial quoting, mixing multiple styles
248                  (Kaarle Ritvanen) (Issue #183);
249                  allow wrapping builtin argument to multiple lines
250                  (Kaarle Ritvanen) (Issue #184);
251                  support ;; on same line with multiple commands
252                  (Kaarle Ritvanen) (Issue #185);
253                  allow line wrapping and improve quoting support
254                  (Kaarle Ritvanen) (Issue #187);
255                  accept [] and [[]] builtins (Issue #188);
256                  allow && and || constructs after condition
257                  (Kaarle Ritvanen) (Issue #265);
258                  add pattern nodes in case entries
259                  (BREAKING CHANGE: case entry values are now in a
260                  @pattern subnode) (Kaarle Ritvanen) (Issue #265)
261                  add eval builtin support;
262                  add alias builtin support;
263                  allow (almost) any command;
264                  allow && and || after commands (Issue #215);
265                  allow wrapping command sequences
266                  (Kaarle Ritvanen) (Issue #333);
267                  allow command-specific environment variable
268                  (Kaarle Ritvanen) (Issue #332);
269                  support subshells (Issue #339)
270                  newlines in start of functions
271                  allow newlines after actions
272                  support comments after function name (Issue #339)
273                  exclude SuSEfirewall2 (Cedric Bosdonnat, Issue #357)
274     * Simplelines: parse OpenBSD's hostname.if(5)
275                    files (Jasper Lievisse Adriaanse) (Issue #252)
276     * Smbusers: add support for ; comments
277     * Spacevars: support flags (Issue #279)
278     * Ssh: add support for HostKeyAlgorithms, KexAlgorithms
279            and PubkeyAcceptedKeyTypes (Oliver Mangold) (Issue #290),
280            add support for GlobalKnownHostsFile (Issue #316)
281     * Star: New lens to parse /etc/default/star
282     * Sudoers: support for negated command alias
283                (Geoff Williams) (Issue #262)
284     * Syslog: recognize '~' as a valid syslog action (discard)
285               (Gregory Smith) (Issue #282)
286     * Tmpfiles: new lens to parse systemd's tempfiles.d configuration
287                 files (Julien Pivotto) (Issue #269)
288     * Trapperkeeper: new lens for Puppet server configuration files
289     * Util: add comment_c_style_or_hash lens
290             add empty_any lens
291     * Vsftpd: add isolate and isolate_network options
292               (Florian Chazal) (Issue #334)
293     * Xml: allow empty document (Issue #255)
294     * YAML: new lens (subset) (Dimitar Dimitrov) (Issue #338)
295
296 1.4.0 - 2015-05-22
297   - General changes/additions
298     * add a aug_escape_name call to sanitize strings for use in path
299       expressions. There are a few characters that are special in path
300       expressions. This function makes it possible to have them all escaped
301       so that the resulting string can be used in a path expression and is
302       guaranteed to only match a node with exactly that name
303     * paths generated by Augeas are now properly escaped so that, e.g., the
304       strings returned by aug_match can always be fed to aug_get, even if
305       they contain special characters
306     * augtool: correctly record history when reading commands from a file
307       and then switching to interactive mode (Robert Drake)
308     * augtool: new command 'errors' that pretty-prints /augeas//error
309       messages; improve the information provided with 'short iteration'
310       errors
311     * fix segfault when saving to a file that was not writable (Issue #178)
312     * augtool: on interrupt (Ctrl-C), cancel current line instead of
313       exiting (jeremy Lin)
314     * updated parser.y to work with Bison 3.0.2
315     * fix put-symlink-augsave test to run on Solaris (Geoffrey Gardella,
316       issue #242)
317   - Lens changes/additions
318     * AFS_Cellalias: new lens (Pat Riehecky)
319     * Authorized_keys: allow double quotes in option values (Issue #135)
320     * Chrony: fix typo in log flag 'measurements' (Pat Riehecky)
321     * Clamav: new lens  (Andrew Colin Kissa)
322     * Dns_Zone: New lens to parse DNS zone files (Kaarle Ritvanen)
323     * Dnsmasq: Parse the structure of the 'address' and 'server' options
324                (incompatible change) (Kaarle Ritvanen)
325     * Erlang: parse kernel app config, handle empty lists (RHBZ#1175546)
326     * Exports: support brackets in machine names (Vincent Desjardins)
327     * Grub: support password stanza inside boot/title section (Issue #229)
328     * Httpd: handle eol after opening tag (Issue #220); fix type checking
329       issue (Issue #223)
330     * Iscsid: new lens (Joey Boggs and Pat Riehecky) (Issue #174)
331     * Jaas: several improvements to cover more valid syntax (Steve Shipway)
332     * Known_Hosts: handle aliases for the host name
333     * Krb5: support keyword krb524_server; allow realm names starting
334             with lower-case characters (Jurjen Bokma)
335     * Limits: allow comments at end of line (timdeluxe)
336     * Logrotate: support 'dateformat' directive (Issue #217)
337                  support 'maxsize' directive (RHBZ#1213292)
338                  do not require a space before an opening '{' (Issue #123)
339     * Mailscanner: new lens (Andrew Colin Kissa)
340     * Mailscanner_Rules: new lens for MailScanner rules (Andrew Colin Kissa)
341     * NagiosCfg: default to no spaces around equal (Issue #177)
342     * Nginx: significantly reworked, now parses entire Nginx stock
343              config successfully (Issue #179)
344     * Pagekite: more fine-grained control of service_on entries; instead of
345                 'source' and 'destination', parse into protocol, kitename,
346                 backend_host, backend_port, and secret (Michael Pimmer)
347                 (incompatible change)
348     * Passwd: support nis [+-]username syntax (Borislav Stoichkov); fix
349       @nisdefault on OpenBSD (Matt Dainty)
350     * Pgbouncer: new lense for the pgbouncer connection pooler (Andrew
351       Colin Kissa)
352     * Postfix_sasl_smtpd: new lens contributed by larsen0815 (Issue #182)
353     * Postgresql: look for postgresql.conf in paths used on Red Hat based
354                   distros (Haotian Liu)
355     * Puppetfile: new lens to parse librarian-puppet's Puppetfile
356     * Pylonspaste: new lense for Pylon's paste init configuration files
357                    (Andrew Colin Kissa)
358     * PythonPaste: parse "set" keyword for default overrides (RHBZ#1175545)
359     * Shadow: allow NIS entries (Borislav Stoichkov)
360     * Shellvars: case: support ;; on same line with multiple commands
361                  (Kaarle Ritvanen); make insertion at the beginning of a
362                  file that starts with blank lines work; the new lens will
363                  remove blank lines from the beginning of a file as soon as
364                  lines are added to or removed from it (GH issue #202);
365                  handle associative arrays; add /etc/periodic.conf for
366                  FreeBSD (Michael Moll)
367     * Shellvars_list: support double-quoted continued lines
368     * Sudoers: allow '+' in user/groupnames (Andreas Grüninger)
369     * Sysctl: add /boot/loader.conf for FreeBSD (Michael Moll)
370     * Sysconfig: handle leading whitespace at beginning of a line,
371                  RHBZ#761246
372
373 1.3.0 - 2014-11-07
374   - General changes/additions
375     * Add missing cp entry in manpage (GH issue #78)
376     * Add seq to vim syntax highlight (Robert Drake)
377     * Update augtool.1 man page with new commands and --span, RHBZ#1100077
378     * augtool autocomplete includes command aliases, RHBZ#1100184
379     * Remove unused "filename" argument from dump-xml command, RHBZ#1100106
380     * aug_save returns non-zero result when unable to delete files,
381       RHBZ#1091143
382   - Lens changes/additions
383     * Aliases: permit missing whitespace between colon and recipients
384     * AptPreferences: Support spaces in origin fields
385     * Cgconfig: handle additional valid controllers (Andy Grimm)
386     * Chrony: New lens to parse /etc/chrony.conf (Pat Riehecky)
387     * CPanel: New lens to parse cpanel.config files
388     * Desktop: Allow @ in keys (GH issue #92)
389     * Device_map: Parse all device.map files under /boot (Mike Latimer)
390     * Dhclient: Add support for option modifiers (Robert Drake,
391                 GH issue #95)
392                 Parse hash statements with dhcp-eval strings
393     * Dhcpd: stmt_string quoted blocks no longer store quote marks
394              (incompatible change),
395              many changes to support more record types (Robert Drake)
396     * Group: NIS support (KaMichael)
397     * Grub: handle "foreground" option, RHBZ#1059383 (Miguel Armas)
398     * Gshadow: New lens (Lorenzo Catucci)
399     * Httpd: Allow eol comments after section tags
400              Allow continued lines inside quoted value (GH issue #104)
401              Allow comparison operators in tags (GH issue #154)
402     * IPRoute2: handle "/" in protocol name, swap ID and name fields
403                 (incompatible change), RHBZ#1063968,
404                 handle hex IDs and hyphens, as present in
405                 rt_dsfield, RHBZ#1063961
406     * Iptables: parse /etc/sysconfig/iptables.save, RHBZ#1144651
407     * Kdump: parse new options, permit EOL comments, refactor, RHBZ#1139298
408     * Keepalived: Add more virtual/real server settings and checks, RHBZ#1064388
409     * Known_Hosts: New lens for SSH known hosts files
410     * Krb5: permit braces in values when not in sub-section, RHBZ#1066419
411     * Ldso: handle "hwcap" lines (GH issue #100)
412     * Lvm: support negative numbers, parse /etc/lvm/lvm.conf (Pino Toscano)
413     * Multipath: add support for rr_min_io_rq (Joel Loudermilk)
414     * NagiosConfig and NagiosObjects: Fix documentation (Simon Sehier)
415     * NetworkManager: Use the Quote module, support # in values (no eol comments)
416     * OpenVPN: Add support for fragment, mssfix, and script-security
417                (Frank Grötzner)
418     * Pagekite: New lens (Michael Pimmer)
419     * Pam: Add partial support for arguments enclosed in [] (Vincent Brillault)
420     * Passwd: Refactor lens (Lorenzo Catucci)
421     * Redis: Allow empty quoted values (GH issue #115)
422     * Rmt: New lens to parse /etc/default/rmt, RHBZ#1100549
423     * Rsyslog: support complex $template lines, property filters and file
424                actions with templates, RHBZ#1083016
425     * Services: permit colons in service name, RHBZ#1121263
426     * Shadow: New lens (Lorenzo Catucci)
427     * Shellvars: Handle case statements with same-line ';;', RHBZ#1033799
428                  Allow any kind of quoted values in block
429                  conditions (GH issue #118)
430                  Support $(( .. )) arithmetic expansion in variable
431                  assignment, RHBZ#1100550
432     * Simplevars: Support flags and empty values
433     * Sshd: Allow all types of entries in Match groups (GH issue #75)
434     * Sssd: Allow ; for comments
435     * Squid: Support configuration files for squid 3 (Mykola Nikishov)
436     * Sudoers: Allow wuoted string in default str/bool params (Nick Piacentine)
437     * Syslog: Support "# !" style comments (Robert Drake, GH issue #65)
438               Permit IPv6 loghost addresses, RHBZ#1129388
439     * Systemd: Allow quoted Environment key=value pairs, RHBZ#1100547
440                Parse /etc/sysconfig/*.systemd, RHBZ#1083022
441                Parse semicolons inside entry values, RHBZ#1139498
442     * Tuned: New lens for /etc/tuned/tuned-main.conf (Pat Riehecky)
443     * UpdateDB: New lens to parse /etc/updatedb.conf
444                 (incompatible change as this file used to be processed with
445                  Simplevars)
446     * Xml: Allow backslash in #attribute values (GH issue #145)
447            Parse CDATA elements (GH issue #80)
448     * Xymon_Alerting: refactor lens (GH issue #89)
449
450 1.2.0 - 2014-01-27
451   - API changes
452     * Add aug_cp and the cp and copy commands
453     * aug_to_xml now includes span information in the XML dump
454   - General changes/additions
455     * Fix documentation link in c_api NaturalDocs menu
456     * Fix NaturalDocs documentation for various lenses
457     * src/transform.c (filter_matches): wrap fnmatch to ensure that an incl
458       pattern containing "//" matches file paths, RHBZ#1031084
459     * Correct locations table for transform_save() (Tomas Hoger)
460     * Corrections for CVE-2012-0786 tests (Tomas Hoger)
461     * Fix umask handling when creating new files, RHBZ#1034261
462   - Lens changes/additions
463     * Access: support DOMAIN\user syntax for users and groups, bug #353
464     * Authorized_Keys: Allow 'ssh-ed25519' as a valid authorized_key
465       type (Jasper Lievisse Adriaanse)
466     * Automounter: Handle hostnames with dashes in them, GH issue #27
467     * Build: Add combinatorics group
468     * Cyrus_Imapd: Create new entries without space before separator,
469       RHBZ#1014974 (Dietmar Kling)
470     * Desktop: Support square brackets in keys
471     * Dhclient: Add dhclient.conf path for Debian/Ubuntu (Esteve Fernandez)
472     * Dhcpd: Support conditionals, GH issue #34
473              Support a wider variety of allow/deny statement, including
474              booting and bootp (Yanis Guenane)
475              Support a wider variety of DHCP allow/deny/ignore statements
476              (Yanis Guenane)
477     * Dovecot: Various enhancements and bug fixes (Michael Haslgrübler):
478                add mailbox to block_names, fix for block_args in quotes,
479                fix for block's brackets upon write,
480                fixes broken tests for mailbox,
481                fixes indention,
482                test case for block_args with ""
483                fixes broken indention
484                Use Quote module
485     * Exports: Permit colons for IPv6 client addresses, bug #366
486     * Grub: Support the 'setkey' and 'lock' directives
487             NFC fix whitespace errors
488             Handle makeactive menu command, bug #340
489             Add 'verbose' option, GH issue #73
490     * Interfaces: Add in support for the source stanza in
491                   /etc/network/interfaces files
492                   Map bond-slaves and bridge-ports to arrays (incompatible
493                   change) (Kaarle Ritvanen)
494                   Add /etc/network/interfaces.d/* support
495                   Allow numeric characters in stanza options (Pascal Lalonde)
496     * Koji: New lens to parse Koji configs (Pat Riehecky)
497     * MongoDBServer: Accept quoted values (Tomas Klouda)
498     * NagiosCfg: Do not try to parse /etc/nagios/nrpe.cfg anymore, GH issue #43
499                  /etc/nagios/nrpe.cfg is parsed by Nrpe (Yanis Guenane)
500     * Nagiosobjects: Add support for optional spaces and indents
501                      and whole-line comments (Sean Millichamp)
502     * OpenVPN: Support daemon, client-config-dir, route, and management
503                directives (Freakin https://github.com/Freakin)
504     * PHP: allow php-fpm syntax in keys, GH issue #35
505     * Postfix_Main: Handle stray whitespace at end of multiline lines, bug #348
506     * Postfix_virtual: allow '+' and '=' in email addresses (Tom Hendrikx)
507     * Properties: support multiline starting with an empty string, GH issue #19
508     * Samba: Permit asterisk in key name, bug #354
509     * Shellvars: Read /etc/firewalld/firewalld.conf, bug #363
510                  Support all types of quoted strings in arrays, bug #357
511                  Exclude /etc/sysconfig/ip*tables.save files
512     * Shellvars, Sysconfig: map "bare" export and unset lines to seq numbered
513       nodes to handle multiple variables (incompatible change), RHBZ#1033795
514     * Shellvars_list: Handle backtick variable assignments, bug #368
515                       Allow end-of-line comments, bug #342
516     * Simplevars: Add /etc/selinux/semanage.conf
517     * Slapd: use smart quotes for database entries; rename by/what to by/access;
518       allow access to be absent as per official docs (incompatible change)
519     * Sshd: Indent Match entries by 2 spaces by default
520             Support Ciphers and KexAlgorithms groups, GH issue #69
521             Let all special keys be case-insensitive
522     * Sudoers: Permit underscores in group names, bug #370 (Matteo Cerutti)
523                Allow uppercase characters in user names, bug #376
524     * Sysconfig: Permit empty comments after comment lines, RHBZ#1043636
525     * Sysconfig_Route: New lens for RedHat's route configs
526     * Syslog: Accept UDP(@) and TCP(@@) protocol, bug #364 (Yanis Guenane)
527     * Xymon_Alerting: New lens for Xymon alerting files (François Maillard)
528     * Yum: Add yum-cron*.conf files (Pat Riehecky)
529            Include only *.repo files from yum.repos.d (Andrew N Golovkov)
530            Permit spaces after equals sign in list options, GH issue #45
531            Split excludes as lists, bug #275
532
533 1.1.0 - 2013-06-14
534   - General changes/additions
535     * Handle files with special characters in their name, bug #343
536     * Fix type error in composition ('f; g') of functions, bug #328
537     * Improve detection of version script; make build work on Illumos with
538       GBU ld (Igor Pashev)
539     * augparse: add --trace option to print filenames of all modules being
540       loaded
541     * Various lens documentation improvements (Jasper Lievisse Adriaanse)
542   - Lens changes/additions
543     * ActiveMQ_*: new lens for ActiveMQ/JBoss A-MQ (Brian Harrington)
544     * AptCacherNGSecurity: new lens for /etc/apt-cacher-ng/security.conf
545       (Erik Anderson)
546     * Automaster: accept spaces between options
547     * BBHosts: support more flags and downtime feature (Mathieu Alorent)
548     * Bootconf: new lens for OpenBSD's /etc/boot.conf (Jasper Lievisse Adriaanse)
549     * Desktop: Support dos eol
550     * Dhclient: read /etc/dhclient.conf used in OpenBSD (Jasper Lievisse Adriaanse)
551     * Dovecot: New lens for dovecot configurations (Serge Smetana)
552     * Fai_Diskconfig: Optimize some regexps
553     * Fonts: exclude all README files (Jasper Lievisse Adriaanse)
554     * Inetd: support IPv6 addresses, bug #320
555     * IniFile: Add lns_loose and lns_loose_multiline definitions
556                Support smart quotes
557       Warning: Smart quotes support means users should not add
558                escaped double quotes themselves. Tests need to be fixed
559                also.
560                Use standard Util.comment_generic and Util.empty_generic
561       Warning: Existing lens tests must be adapted to use standard
562                comments and empty lines
563                Allow spaces in entry_multiline* values
564                Add entry_generic and entry_multiline_generic
565                Add empty_generic and empty_noindent
566                Let multiline values begin with a single newline
567                Support dos eol
568       Warning: Support for dos eol means existing lenses usually
569                need to be adapted to exclude \r as well as \n.
570     * IPRoute2: Support for iproute2 files (Davide Guerri)
571     * JaaS: lens for the Java Authentication and Authorization Service
572             (Simon Vocella)
573     * JettyRealm: new lens for jetty-realm.properties (Brian Harrington)
574     * JMXAccess, JMXPassword: new lenses for ActiveMQ's JMX files
575       (Brian Harrington)
576     * Krb5: Use standard comments and empty lines
577             Support dos eol
578             Improve performance
579             Accept pkinit_anchors (Andrew Anderson)
580     * Lightdm: Use standard comments and empty lines
581     * LVM: New lens for LVM metadata (Gabriel)
582     * Mdadm_conf: optimize some regexps
583     * MongoDBServer: new lens (Brian Harrington)
584     * Monit: also load /etc/monitrc (Jasper Lievisse Adriaanse)
585     * MySQL: Use standard comments and empty lines
586              Support dos eol
587     * NagiosCfg: handle Icinga and resources.cfg (Jasper Lievisse Adriaanse)
588     * Nrpe: accept any config option rather than predefined list (Gonzalo
589             Servat); optimize some regexps
590     * Ntpd: new lense for OpenNTPD config (Jasper Lievisse Adriaanse)
591     * Odbc: Use standard comments and empty lines
592     * Openshift_*: new lenses for Openshift support (Brian Harrington)
593     * Quote: allow multiple spaces in quote_spaces; improve docs
594     * Passwd: allow period in user names in spec, bug #337; allow overrides
595               in nisentry
596     * PHP: Support smart quotes
597            Use standard comments and empty lines
598            Load /etc/php*/fpm/pool.d/*.conf (Enrico Stahn)
599     * Postfix_master: allow [] in words, bug #345
600     * Resolv: support 'lookup' and 'family' key words, bug #320
601               (Jasper Lievisse Adriaanse))
602     * Rsyslog: support :omusrmsg: list of users in actions
603     * RX: add CR to RX.space_in
604     * Samba: Use standard comments and empty lines
605              Support dos eol
606     * Schroot: Support smart quotes
607     * Services: support port ranges (Branan Purvine-Riley)
608     * Shellvars: optimize some regexps; reinstate /etc/sysconfig/network,
609       fixes bug #330, RHBZ#904222, RHBZ#920609; parse /etc/rc.conf.local
610       from OpenBSD
611     * Sip_Conf: New lens for sip.conf configurations (Rob Tucker)
612     * Splunk: new lens (Tim Brigham)
613     * Subversion: Support smart quotes
614                   Use standard comments and empty lines
615                   Use IniFile.entry_multiline_generic
616                   Use IniFile.empty_noindent
617                   Support dos eol
618     * Sudoers: allow user aliases in specs
619     * Sysctl: exclude README file
620     * Systemd: Support smart quotes; allow backslashes in values
621     * Xinetd: handle missing values in list, bug #307
622     * Xorg: allow 'Screen' in Device section, bug #344
623     * Yum: Support dos eol, optimize some regexps
624
625 1.0.0 - 2012-12-21
626   - General changes/additions
627     * fix missing requirement on libxml2 in pkg-config
628     * do not replace pathin with '/*' unless the length is 0
629       or pathin is '/', bug #239
630     * create context path if it doesn't exist
631     * add missing argument to escape() to fix build on solaris, bug #242
632     * fix fatest linking with libfa
633     * don't use variables uninitialized upon error (Jim Meyering)
634     * bootstrap: add strchrnul gnulib module (for Solaris)
635     * remove Linux-isms so tests can run on Solaris
636     * re-open rl_outstream/stdout only when stdout isn't a tty
637       (fixes -e -i); use /dev/tty instead of /dev/stdout when re-opening
638       to prevent permission errors, bug #241
639     * take root into account for excludes, bug #252
640     * fix different errors for parse and put failure
641     * fix various memory leaks
642     * add leak test
643     * allocate exception instead of static const value
644     * improve aug_srun quoting to permit concatenation and better detect
645       bad quoting
646     * rename echo to echo_commands to fix differing types reported
647       with Solaris linker (Tim Mooney), bug #262
648     * fix excl filters that only specify a filename or wildcard
649     * make sure reloading discards changes after save with mode 'newfile'
650     * remove loop that added a second iteration around children of /files,
651       causing multiple saves in newfile and noop modes when editing under
652       /files/boot, bug #264
653     * support \t and \n in aug_srun tokens, bug #265
654     * compile_exp: don't return an uninitialized pointer upon failure
655       (Jim Meyering)
656     * include 'extern "C"' wrapper for C++, bug #272 (Igor Pashev)
657     * src/try: don't overwrite gdbcmds.txt if it exists
658     * fix behavior of set with empty strings
659     * allow running individual tests with test-run
660     * test-augtool.sh: escape all possible regular expressions before
661       they are sent to sed (Micah Anderson)
662     * add new print_tree primitive
663     * fix bad memory access in regexp.c
664     * case-insensitive regexps: fix a problem with number of groups
665     * prevent symlink attacks via .augnew during saving,
666       RedHat bug #772257, CVE-2012-0786
667     * prevent cross-mountpoint attacks via .augsave during saving,
668       RedHat bug #772261, CVE-2012-0787
669     * add bundled (gnulib) provides in augeas.spec.in, RedHat bug #821745
670     * make Travis CI builds
671     * src/transform.c (xread_file): catch failed fopen, e.g. EACCES
672     * src/augrun.c (cmd_retrieve_help): tidy line wrapping
673     * make get_square case insensitive on the ending key
674     * escape double quotes when dumping regexp
675     * use constants for "lens", "incl" and "excl"
676     * src/transform.c (filter_generate): remove duplicate variable assignment
677     * src/jmt.c (parse_add_item): ensure return is defined on goto error
678     * src/transform.c (transform_save): chmod after creating new files to
679       permissions implied by the umask
680     * ignore eclipse settings directory
681     * fix memory leak in dbg_visit
682     * build AST while visiting the parse v2
683     * rewrite square lens to be more generic, allowing e.g. square quoting
684     * tests/modules/fail_shadow_union.aug: fix unintended test failure
685     * src/syntax.c (compile_test): print which test failed when missing
686       exception
687     * libfa (fa_enumerate): new function
688     * use precise ctype of a square lens if it is indeed regula
689     * square: properly handle first lens matching empty string
690     * square lens: correctly process skeletons during put
691     * src/pathx.c: disallow ',' in names in path expressions
692     * src/pathx.c: match functions by name and arity
693     * src/pathx.c: pass the number of actual arguments to the func
694       implementation
695     * correctly parse escaped string literals in vim syntax file (Domen Ko¿ar)
696   - API changes/additions
697     * add aug_text_store to write string to tree
698     * add aug_text_retrieve to turn tree into text
699     * add aug_rename to rename node labels without moving them in the tree
700     * add aug_transform to allow specifying transforms
701     * add aug_label to retrieve the label from a path
702   - Augtool/aug_srun changes/additions
703     * add "touch" command to create node if it doesn't exist, bug #276
704     * make <VALUE> argument to "set" and "setm" optional, bug #276
705     * add "text_store" and "text_retrieve" commands
706     * add "rename" command
707     * add "transform" command and "-t|--transform" option
708     * add "label" command
709     * arrange commands in groups for better help
710     * man/augtool.pod: update mentions of default load path
711     * fix exit code when using autosave
712     * output errors when sending a command as argument
713     * honor --echo when sending a command as argument
714   - XPath changes/additions
715     * add support for an 'i' flag in regexp builtin function
716   - Lens changes/additions
717     * Aliases: commands can be fully enclosed in quotes, bug #229
718     * Anacron: new lens for /etc/anacrontab
719     * Apt_Update_Manager: new lens for /etc/update-manager
720     * AptPreferences: #comments are accepted within entries
721     * AuthorizedKeys: new lens for SSH's authorized_keys
722     * AutoMaster: new lens for auto.master files
723     * AutoMounter: new lens for automounter maps (/etc/auto.*)
724     * Avahi: new lens for /etc/avahi/avahi-daemon.conf (Athir Nuaimi)
725     * Build: add blocks
726     * Cachefilesd: new lens for /etc/cachefilesd.conf (Pat Riehecky)
727     * Carbon: new lens for /etc/carbon files (Marc Fournier)
728     * Cgconfig: add space between group and id (Filip Andres)
729     * Channels: new lens for channels.conf
730     * Collectd: new lens for /etc/collectd.conf
731     * Cron: exclude cron allow/deny files;
732             optimize typechecking;
733             records can be prefixed by '-' (Michal Filka)
734     * CronAllow: new lens for cron/at allow/deny files
735     * Cups: new lens for Cups files
736     * Cyrus_Imapd: new lens for /etc/imapd.conf, bug #296 (Jeroen van Meeuwen)
737     * Debctrl: fixed package paragraph keywords, allow variables
738                for version numbers in dependency lists,
739                allow DM-Upload-Allowed keyword, Debian bug #650887;
740                allow control extensions for Python packages, bug #267
741     * Dhcpd: fix primary statement arguments, bug #293;
742              use the Quote module to manage quoted values;
743              force double quotes for filename attribute, bug #311
744     * Dput: use Sys.getenv("HOME")
745     * Erlang: new generic lens to build Erlang config lenses
746     * Fonts: new lens for /etc/fonts files
747     * Fstab: handle options with empty values ("password=");
748              make options field optional;
749              allow end-of-line comment
750     * Fuse: new lens for fuse.conf
751     * Gdm: include /etc/gdm/custom.conf
752     * Grub: parse "password --encrypted" properly, bug #250;
753             optimize typechecking;
754             add /boot/grub/grub.conf to transform (Josh Kayse)
755     * GtkBookmarks: new lens for $HOME/.gtk-bookmarks
756     * Hosts_Access: add netmask;
757                     permit more client list formats
758                     (whitespace separated lists, @netgroups,
759                     IPv6 hosts, inc. zone indices,
760                     paths to lists of clients, wildcards,
761                     hosts_options), bug #256
762     * Htpasswd: new lens for htpasswd/rsyncd.secret files (Marc Fournier)
763     * Httpd: support DOS eol
764     * IniFile: allow # and ; in quoted values, bug #243;
765                add entry_list and entry_list_nocomment
766     * Inputrc: new lens for /etc/inputrc
767     * Iptables: test that blank lines are accepted (Terence Haddock)
768     * Json: allow JSON number literals to be followed by whitespace;
769             correctly parse empty object and arrays (Lubomir Rintel)
770     * Keepalived: various improvements, optimize typechecking
771     * Krb5: handle host{} sections in v4_name_convert;
772             support ticket_lifetime;
773             handle multiple arguments to *_enctypes (Pat Riehecky);
774             better whitespace and semicolon comment support
775     * Ldif: new lens to read LDIF files per RFC2849
776     * Ldso: new lens for ld.so.conf files
777     * Lightdm: new lens for /etc/lightdm/*.conf, bug #302 (David Salmen)
778     * Logrotate: rewrite with Build, Rx, and Sep;
779                  add su logrotate.conf option (Luc Didry);
780                  accept integers prefixed by a sign (Michal Filka)
781     * Logwatch: new lens for /etc/logwatch/conf/logwatch.conf (Francois Lebel)
782     * Mcollective: new lens for Mcollective files (Marc Fournier)
783     * Memcached: new lens for /etc/memcached.conf (Marc Fournier)
784     * Mdadm_conf: include /etc/mdadm/mdadm.conf
785     * Mke2fs: add support for default_mntopts, enable_periodic_fsck,
786               and auto_64-bit_support
787     * Modprobe: support softdep command, Debian bug #641813;
788                 allow spaces around '=' in option, RedHat bug #826752;
789                 support multiline split commands, Ubuntu bug #1054306;
790                 revert inner lens name change, fixes Modules_conf
791     * Modules: define own entry regexp as referenced Modprobe inner lens
792                doesn't match file format
793     * Multipath: allow devices to override defaults, bug #278 (Jacob M. McCann)
794     * NagiosCfg: support syntax for commands.cfg and resource.cfg
795     * Netmask: new lens for /etc/inet/netmasks on Solaris
796     * NetworkManager: new lens for NetworkManager files
797     * Networks: handle multiple missing network octets,
798                 fix sequencing of aliases
799     * Nginx: new lens for /etc/nginx/nginx.conf (Ian Berry)
800     * Nsswitch: add passwd_compat, group_compat and shadow_compat
801                 GNU extensions (Travis Groth);
802                 remove long list of databases, match by regexp
803     * Ntp: allow deprecated 'authenticate' setting;
804            add tos directive, bug #297 (Jacob M. McCann)
805     * OpenVPN: use the Quote module to manage quoted values
806     * Pam: allow uppercase chars in 'types', remove /etc/pam.conf from filter;
807            ignore allow.pamlist;
808            exclude /etc/pam.d/README, bug #255
809     * PamConf: new lens for /etc/pam.conf
810     * Passwd: allow asterisk in password field, bug #255
811     * Pg_Hba: support multiple options, bug #313;
812               add a path to pg_hba.aug, bug #281 (Marc Fournier)
813     * Php: support include() statements
814     * Phpvars: map arrays with @arraykey subnodes to make working paths;
815                support classes and public/var values, bug #299 (aheahe)
816     * Postfix_Transport: new lens for Postfix transport files;
817                allow host:port and [host]:port syntaxes, bug #303
818     * Postfix_Virtual: new lens for Postfix virtual files
819     * Postgresql: new lens for postgresql.conf;
820                   properly support quotes, bug #317
821     * Properties: improve handling of whitespace, empty props, and underscores
822                   in keys (Brett Porter, Carlos Sanchez)
823     * Protocols: new lens for /etc/protocols
824     * Puppet: add /usr/local/etc/puppet paths (Tim Bishop)
825     * Puppet_Auth: new lens for /etc/puppet/auth.conf
826     * PuppetFileserver: add /usr/local/etc/puppet paths (Tim Bishop)
827     * PythonPaste: new lens for Python Paste configs (Dan Prince)
828     * Qpid: new lens to read Apache Qpid daemon/client configs (Andrew Replogle)
829     * Quote: new generic lens to manage quoted values using square lenses
830     * Rabbitmq: new lens for /etc/rabbitmq/rabbitmq.config
831     * Redis: new lens for /etc/redis/redis.conf (Marc Fournier)
832     * Resolv: add in single-request-reopen (Erinn Looney-Triggs)
833     * Rsyslog: new lens for rsyslog files
834     * Rx: add continous lines (cl, cl_or_space, cl_or_opt_space)
835     * Sep: add space_equal;
836            add continous lines (cl_or_space, cl_or_opt_space)
837     * Shellvars: support @return;
838                  allow multiple elif statements;
839                  parse functions;
840                  add more includes;
841                  autoload some SuSe and RHN specific files (Duncan Mac-Vicar P);
842                  add BSD's /etc/rc.conf, bug #255;
843                  remove non-shell files, up2date now has a lens,
844                  move updatedb.conf to Simplevars;
845                  include /etc/{default,sysconfig}/* and /etc/selinux/config;
846                  add systemd's /etc/os-release file;
847                  exclude bootloader from shellvars (Duncan Mac-Vicar P);
848                  handle bash's implicit concatenation of quoted strings
849                  (Michal Filka);
850                  exclude /etc/default/whoopsie;
851                  fix ambiguity by making semi-colons illegal in bquot
852                  and arrays;
853                  add lns_norec to check for ambiguities;
854                  allow newlines in quoted values;
855                  allow semi-colons in bquot and dollar_assign;
856                  make end-of-line comments begin with a space;
857                  allow double backquoted values;
858                  support matching keys in var_action, bug #290;
859                  fix empty lines after comments;
860                  add shift and exit builtins, with optional args;
861                  allow double quotes around variables in case statements;
862                  fix empty comments;
863                  add locale.conf, vconsole.conf systemd configs,
864                  RedHat bug #881841
865     * Shells: permit same-line comments
866     * Simplelines: new lens for simple lines files
867     * Simplevars: new lens for simple key/value, non shellvars files
868     * Smbusers: new lens for Samba's smbusers
869     * Sssd: new lens for sssd.conf (Erinn Looney-Triggs)
870     * Ssh: use Sys.getenv('HOME') in filter instead of ~ since it's not
871            expanded (Luc Didry)
872     * Sshd: permit hyphens in subsystem names
873     * Subversion: new lens for /etc/subversion files
874     * Sudoers: optimize typechecking;
875                allow = in commands (but force ! or / as first character
876                if not an alias);
877                allow commands without full path if they begin with a lowcase
878                letter;
879                allow "!" as a type of Defaults entry, Debian bug #650079;
880                allow quoted strings in Defaults parameters, bug #263
881     * Sysconfig: handle end of line comments and semicolons; strip quotes,
882                  RedHat bug #761246
883     * Sysctl: include /etc/sysctl.d files
884     * Syslog: allow capital letters in tokens
885     * Systemd: new lens to parse systemd unit files
886     * Thttpd: new lens for /etc/thttpd/thttpd.conf (Marc Fournier)
887     * Up2date: new lens for /etc/sysconfig/rhn/up2date
888     * Util: add comment_noindent; add delim; add doseol;
889             support DOS eols in various places;
890             add *.bak and *.old to stdexcl, to match files in /etc/sysconfig
891     * Vfstab: new lens for /etc/vfstab config on Solaris
892     * Vmware_Config: new lens for /etc/vmware/config
893     * Vsftpd: add require_ssl_reuse option (Danny Yates)
894     * Xinetd: rewrite with Build, Sep, and Rx;
895               make attribute names case-insensitive (Michal Filka)
896     * Xml: support single _and_ double quoted attribute values,
897            RedHat bug #799885, bug #258
898     * Xymon: new lens for Xymon config files, bug #266 (Jason Kincl)
899     * Yum: rebase on IniFile, support for comments, bug #217
900
901 0.10.0 - 2011-12-02
902   - support relative paths by taking them relative to the value
903     of /augeas/context in all API functions where paths are used
904   - add aug_to_xml to API: transform tree(s) into XML, exposed as dump-xml
905     in aug_srun and augtool. Introduces dependency on libxml2
906   - fix regular expression escaping. Previously, /[\/]/ match either a
907     backslash or a slash. Now it only matches a slash
908   - path expressions: add function 'int' to convert a node value (string)
909     to an integer
910   - path expressions: make sure the regexp produced by empty nodesets from
911     regexp() and glob() matches nothing, rather than the empty word
912   - fix --autosave when running single command from command line, BZ 743023
913   - aug_srun: support 'insert' and 'move' as aliases for 'ins' and 'mv'
914   - aug_srun: allow escaping of spaces, quotes and brackets with \
915   - aug_init: accept AUG_NO_ERR_CLOSE flag; return augeas handle even when
916     intialization fails so that caller gets some details about why
917     initialization failed
918   - aug_srun: tolerate trailing white space in commands
919   - much improved, expanded documentation of many lenses
920   - always interpret lens filter paths as absolute, bug #238
921   - fix bug in libfa that would incorrectly calculate the difference of a
922     case sensistive and case insensitive regexp (/[a-zA-Z]+/ - /word/i
923     would match 'worD')
924   - new builtin 'regexp_match' for .aug files to make testing regexp
925     matching easier during development
926   - fix 'span' command, bug #220
927   - Lens changes/additions
928     * Access: parse user@host and (group) in users field; field separator
929       need not be surrounded by spaces
930     * Aliases: allow spaces before colons
931     * Aptconf: new lens for /etc/apt/apt.conf
932     * Aptpreferences: support origin entries
933     * Backuppchosts: new lens for /etc/backuppc/hosts, bug 233 (Adam Helms)
934     * Bbhosts: various fixes
935     * Cgconfig: id allowed too many characters
936     * Cron: variables aren't set like shellvars, semicolons are allowed in
937       email addresses; fix parsing of numeric fields, previously upper case
938       chars were allowed; support ranges in time specs
939     * Desktop: new lens for .desktop files
940     * Dhcpd: slashes must be double-quoted; add Red Hat's dhcpd.conf
941       locations
942     * Exports: allow empty options
943     * Fai_diskconfig: new lens for FAI disk_config files
944     * Fstab: allow ',' in file names, BZ 751342
945     * Host_access: new lens for /etc/hosts.{allow,deny}
946     * Host_conf: new lens for /etc/host.conf
947     * Hostname: new lens for /etc/hostname
948     * Hosts: also load /etc/mailname by default
949     * Iptables: allow digits in ipt_match keys, bug #224
950     * Json: fix whitespace handling, removing some cf ambiguities
951     * Kdump: new lens for /etc/kdump.conf (Roman Rakus)
952     * Keepalived: support many more flags, fields and blocks
953     * Krb5: support [pam] section, bug #225
954     * Logrotate: be more tolerant of whitespace in odd places
955     * Mdadm_conf: new lens for /etc/mdadm.conf
956     * Modprobe: Parse commands in install/remove stanzas (this introduces a
957       backwards incompatibility); Drop support for include as it is not
958       documented in manpages and no unit tests are shipped.
959     * Modules: new lens for /etc/modules
960     * Multipath: add support for seveal options in defaults section, bug #207
961     * Mysql: includedir statements are not part of sections; support
962       \!include; allow indentation of entries and flags
963     * Networks: new lens for /etc/networks
964     * Nrpe: allow '=' in commands, bug #218 (Marc Fournier)
965     * Php: allow indented entries
966     * Phpvars: allow double quotes in variable names; accept case
967       insensitive PHP tags; accept 'include_once'; allow empty lines at
968       EOF; support define() and bash-style and end-of-line comments
969     * Postfix_master: allow a lot more chars in words/commands, including
970       commas
971     * PuppetFileserver: support same-line comments and trailing whitespace,
972       bug #214
973     * Reprepo_uploaders: new lens for reprepro's uploaders files
974     * Resolv: permit end-of-line comments
975     * Schroot: new lens for /etc/schroot/schroot.conf
976     * Shellvars: greatly expand shell syntax understood; support various
977       syntactic constructs like if/then/elif/else, for, while, until, case,
978       and select; load /etc/blkid.conf by default
979     * Spacevars: add toplevel lens 'lns' for consistency
980     * Ssh: new lens for ssh_config (Jiri Suchomel)
981     * Stunnel: new lens for /etc/stunnel/stunnel.conf (Oliver Beattie)
982     * Sudoers: support more parameter flags/options, bug #143
983     * Xendconfsxp: lens for Xen configuration (Tom Limoncelli)
984     * Xinetd: allow spaces after '{'
985
986 0.9.0 - 2011-07-25
987   - augtool: keep history in ~/.augeas/history
988   - add aug_srun API function; this makes it possible to run a sequence of
989     commands through the API
990   - aug_mv: report error AUG_EMVDESC on attempts to move a node into one of
991     its descendants
992   - path expressions: allow whitespace inside names, making '/files/etc/foo
993     bar/baz' a legal path, but parse [expr1 or expr2] and [expr1 and expr2]
994     as the logical and/or of expr1 and expr2
995   - path expressions: interpret escape sequences in regexps; since '.' does
996     not match newlines, it has to be possible to write '.|\n' to match any
997     character
998   - path expressions: allow concatenating strings and regexps; add
999     comparison operator '!~'; add function 'glob'; allow passing a nodeset
1000     to function 'regexp'
1001   - store the names of the functions available in path expressions under
1002     /augeas/version
1003   - fix several smaller memory leaks
1004   - Lens changes/additions
1005     * Aliases: allow spaces and commas in aliases (Mathieu Arnold)
1006     * Grub: allow "bootfs" Solaris/ZFS extension for dataset name, bug #201
1007       (Dominic Cleal); allow kernel path starting with a BIOS device,
1008       bug #199
1009     * Inifile: allow multiline values
1010     * Php: include files from Zend community edition, bug #210
1011     * Properties: new lens for Java properties files, bug #194 (Craig Dunn)
1012     * Spacevars: autoload two ldap files, bug #202 (John Morrissey)
1013     * Sudoers: support users:groups format in a Runas_Spec line, bug #211;
1014       add CSW paths (Dominic Cleal)
1015     * Util: allow comment_or_eol to match whitespace-only comments,
1016       bug #205 (Dominic Cleal)
1017     * Xorg: accept InputClass section; autoload from /etc/X11/xorg.conf.d,
1018       bug #197
1019
1020 0.8.1 - 2011-04-15
1021   - augtool: respect autosave flag in oneshot mode, bug #193; fix segfault
1022     caused by unmatched bracket in path expression, bug #186
1023   - eliminate a global variable in the lexer, fixes BZ 690286
1024   - replace an erroneous assert(0) with a proper error message when none of
1025     the alternatives in a union match during saving, bug #183
1026   - improve AIX support
1027   - Lens changes/additions
1028     * Access: support the format @netgroup@@nisdomain, bug #190
1029     * Fstab: fix parsing of SELinux labels in the fscontext option (Matt Booth)
1030     * Grub: support 'device' directive for UEFI boot, bug #189; support
1031       'configfile' and 'background' (Onur Küçük)
1032     * Httpd: handle continuation lines (Bill Pemberton); autoload
1033       httpd.conf on Fedora/RHEL, BZ 688149; fix support for single-quoted
1034       strings
1035     * Iptables: support --tcp-flags, bug #157; allow blank and comment
1036       lines anywhere
1037     * Mysql: include /etc/my.cnf used on Fedora/RHEL, BZ 688053
1038     * NagiosCfg: parse setting multiple values on one line (Sebastien Aperghis)
1039     * NagiosObjects: process /etc/nagios3/objects/*.cfg (Sebastien Aperghis)
1040     * Nsswitch: support 'sudoers' as a database, bug #187
1041     * Shellvars: autoload /etc/rc.conf used in FreeBSD (Rich Jones)
1042     * Sudoers: support '#include' and '#includedir', bug #188
1043     * Yum: exclude /etc/yum/pluginconf.d/versionlock.list (Bill Pemberton)
1044
1045 0.8.0 - 2011-02-22
1046   - add new 'square' lens combinator
1047   - add new aug_span API function
1048   - augtool: short options for --nostdinc, --noload, and --noautoload
1049   - augtool: read commands from tty after executing file with --interactive
1050   - augtool: add --autosave option
1051   - augtool: add --span option to load nodes' span
1052   - augtool: add span command to get the node's span according to the input
1053     file
1054   - augtool: really be quiet when we shouldn't be echoing
1055   - fix segfault in get.c with L_MAYBE lens; bug #180
1056   - fix segfault when a path expression called regexp() with an invalid
1057     regexp; bug #168
1058   - improved vim syntax file
1059   - replace augtest by test-augtool.sh to obviate the need for Ruby to run
1060     tests
1061   - use sys_wait module from gnulib; bug #164
1062   - Lens changes/additions
1063     * Access: new lens for /etc/security/access.conf (Lorenzo Dalrio)
1064     * Crypttab: new lens for /etc/crypttab (Frederic Lespez)
1065     * Dhcpd: new lens
1066     * Exports: accept hostnames with dashes; bug #169 (Sergio Ballestrero)
1067     * Grub: add various Solaris extensions (Dominic Cleal); support "map"
1068       entries, bug #148
1069     * Httpd: new lens for Apache config
1070     * Inifile: new lens indented_title_label
1071     * Interfaces: allow indentation for "iface" entries; bug #182
1072     * Mysql: change default comment delimiter from ';' to '#'; bug #181
1073     * Nsswitch: accept various add'l databases; bug #171
1074     * PuppetFileserver: new lens for Puppet's fileserver.conf (Frederic Lespez)
1075     * REsolv: allow comments starting with ';'; bug #173 (erinn)
1076     * Shellvars: autoload various snmpd config files; bug #170 (erinn)
1077     * Solaris_system: new lens for /etc/system on Solaris (Dominic Cleal)
1078     * Util (comment_c_style, empty_generic, empty_c_style): new lenses
1079     * Xml: generic lens to process XML files
1080     * Xorg: make "position" in "screen" optional; allow "Extensions"
1081       section; bug #175 (omzkk)
1082
1083 0.7.4 - 2010-11-19
1084   - augtool: new clearm command to parallel setm
1085   - augtool: add --file option
1086   - Fix SEGV under gcc 4.5, caused by difficulties of the gcc optimizer
1087     handling bitfields (bug #149; rhbz #651992)
1088   - Preserve parse errors under /augeas//error: commit 5ee81630, released
1089     in 0.7.3, introduced a regression that would cause the loss of parse
1090     errors; bug #138
1091   - Avoid losing already parsed nodes under certain circumstances; bug #144
1092   - Properly record the new mtime of a saved file; previously the mtime in
1093     the tree was reset to 0 when a file was saved, causing unnecessary file
1094     reloads
1095   - fix a SEGV when using L_MAYBE in recursive lens; bug #136
1096   - Incompatible lens changes
1097     * Fstab: parse option values
1098     * Squid: various improvements, see bug #46;
1099     * Xinetd: map service names differently
1100   - Lens changes/additions
1101     * Aptsources: map comments properly, allow indented lines; bug #151
1102     * Grub: add indomU setting for Debian. Allow '=' as separator in title;
1103       bug #150
1104     * Fstab: also process /etc/mtab
1105     * Inetd: support rpc services
1106     * Iptables: allow underscore in chain names
1107     * Keepalived: new lens for /etc/keepalived/keepalived.conf
1108     * Krb5: allow digits in realm names; bug #139
1109     * Login_defs: new lens for /etc/login.defs (Erinn Looney-Triggs)
1110     * Mke2fs: new lens for /etc/mke2fs.conf
1111     * Nrpe: new lens for Nagios nrpe (Marc Fournier)
1112     * Nsswitch: new lens for /etc/nsswitch.conf
1113     * Odbc: new lens for /etc/odbc.ini (Marc Fournier)
1114     * Pg_hba: New lens; bug #140 (Aurelien Bompard). Add system path on
1115       Debian; bug #154 (Marc Fournier)
1116     * Postfix_master: parse arguments in double quotes; bug #69
1117     * Resolv: new lens for /etc/resolv.conf
1118     * Shells: new lens for /etc/shells
1119     * Shellvars: parse ulimit builtin
1120     * Sudoers: load file from /usr/local/etc (Mathieu Arnold) Allow
1121       'visiblepw' parameter flag; bug #143. Read files from /etc/sudoers.d
1122     * Syslog: new lens for /etc/syslog.conf (Mathieu Arnold)
1123     * Util: exclude dpkg backup files; bug #153 (Marc Fournier)
1124     * Yum: accept continuation lines for gpgkey; bug #132
1125
1126 0.7.3 - 2010-08-06
1127   - aug_load: only reparse files that have actually changed; greatly speeds
1128     up reloading
1129   - record all variables in /augeas/variables, regardless of whether they
1130     were defined with aug_defvar or aug_defnode; make sure
1131     /augeas/variables always exists
1132   - redefine all variables (by reevaluating their corresponding
1133     expressions) after a aug_load. This makes variables 'sticky' across
1134     loads
1135   - fix behavior of aug_defnode to not fail when the expression evaluates
1136     to a nonempty node set
1137   - make gnulib a git submodule so that we record the gnulib commit off
1138     which we are based
1139   - allow 'let rec' with non-recursive RHS
1140   - fix memory corruption when reloading a tree into which a variable
1141     defined by defnode points (BZ 613967)
1142   - plug a few small memory leaks, and some segfaults
1143   - Lens changes/additions
1144     * Device_map: new lens for grub's device.map (Matt Booth)
1145     * Limits: also look for files in /etc/security/limits.d
1146     * Mysql: new lens (Tim Stoop)
1147     * Shellvars: read /etc/sysconfig/suseconfig (Frederik Wagner)
1148     * Sudoers: allow escaped spaces in user/group names (Raphael Pinson)
1149     * Sysconfig: lens for the shell subdialect used in /etc/sysconfig; lens
1150       strips quotes automatically
1151
1152 0.7.2 - 2010-06-22
1153   - new API call aug_setm to set/create multiple nodes simultaneously
1154   - record expression used in a defvar underneath /augeas/variables
1155   - Lens changes/additions
1156     * Group: add test for disabled account (Raphael Pinson)
1157     * Grub: handle comments within a boot stanza
1158     * Iptables: also look for /etc/iptables-save (Nicolas Valcarcel)
1159     * Modules_conf: new lens for /etc/modules.conf (Matt Booth)
1160     * Securetty: added handling of emtpy lines/comments (Frederik Wagner)
1161     * Shellvars: added SuSE sysconfig puppet files (Frederik Wagner),
1162       process /etc/environment (seph)
1163     * Shellvars_list: Shellvars-like lens that treats strings of
1164       space-separated words as lists (Frederik Wagner)
1165
1166 0.7.1 - 2010-04-21
1167   - new primitive lens 'value' to set value of a node to a constant,
1168     similar to 'label' for the key (see http://augeas.net/docs/lenses.html)
1169   - new builtins for printing and getting the types of a lens (see
1170     http://augeas.net/docs/builtins.html)
1171   - add unit type to lens language; allow '_' as an identifier in let's to
1172     force evaluation for side effect only
1173   - Various fixes for Solaris. Augeas now builds cleanly on Solaris 5.10,
1174     and most of the tests pass. The three tests that fail all fail because
1175     the test scripts have Linux idiosyncrasies. This needs to be addressed
1176     in a future release. Much thanks to Dagobert Michelsen and the OpenCSW
1177     project (http://www.opencsw.org/) for providing me with access to their
1178     build farm.
1179   - fix crash when recursive lens was used in a nonrecursive lens (bug #100)
1180   - context free parser/recursive lenses: handle 'l?' properly (bug #119);
1181     distinguish between successful parse and parse with an error at end of
1182     input; do caller filtering to avoid spurious ambiguous parses with
1183     grammars containing epsilon productions
1184   - aug_get: return -1 when multiple nodes match (bug #121)
1185   - much better error message when iteration stops prematurely during
1186     put/create than the dreaded 'Short iteration'
1187   - augtool: ignore empty lines from stdin; report error when get fails
1188   - fix memory leak in file_info (transform.c); this was leaking a file
1189     name every time we loaded a file (Laine Stump)
1190   - nicer error message when typechecker spots ambiguity in atype
1191   - libfa: handle '(a|)' and 'r{min,}' properly
1192   - locale independence: handle a literal '|' properly on systems that lack
1193     use_locale
1194   - bootstrap: pull in isblank explicitly (needed on Solaris)
1195   - src/lens.c (lns_check_rec): fix refcounting mistake on error path (bug #120)
1196   - fix SEGV when loading empty files
1197   - improvements in handling some OOM's
1198   - Lens changes/additions
1199     * Approx: lens and test for the approx proxy server (Tim Stoop)
1200     * Cgconfig: lens and tests for libcgroup config (Ivana Hutarova Varekova)
1201     * Cgrules: new lens and test (Ivana Hutarova Varekova)
1202     * Cobblermodules: lens + tests for cobbler's modules.conf (Shannon Hughes)
1203     * Debctrl: new lens and test (Dominique Dumont)
1204     * Dput: add 'allow_dcut' parameter (bug #105) (Raphael Pinson)
1205     * Dhclient: add rfc code parsing (bug #107) (Raphael Pinson)
1206     * Group: handle disabled passwords
1207     * Grub: support empty kernel parameters, Suse incl.s (Frederik Wagner)
1208     * Inittab: allow ':' in the process field (bug #109)
1209     * Logrotate: tolerate whitespace at the end of a line (bug #101); files
1210       can be separated by newlines (bug #104) (Raphael Pinson)
1211     * Modprobe: Suse includes (Frederik Wagner)
1212     * Nagisocfg: lens and test for /etc/nagios3/nagios.cfg (Tim Stoop)
1213     * Ntp: add 'tinker' directive (bug #103)
1214     * Passwd: parse NIS entries on Solaris
1215     * Securetty: new lens and test for /etc/securetty (Simon Josi)
1216     * Shellvars: handle a bare 'export VAR'; Suse includes (Frederik
1217       Wagner); allow spaces after/before opening/closing parens for array
1218     * Sshd: allow optional arguments in subsystem commands (Matt Palmer)
1219     * Sudoers: allow del_negate even if no negate_node is found (bug #106)
1220                (Raphael Pinson); accept 'secure_path' (BZ 566134) (Stuart
1221                Sears)
1222
1223 0.7.0 - 2010-01-14
1224   - Support for context-free lenses via the 'let rec' keyword. The syntax
1225     is experimental, though the feature is here to stay. See
1226     lenses/json.aug for an example of what's possible with that.
1227   - Support for case-insensitive regular expressions. Simply append 'i' to
1228     a regexp literal to make it case-insensitive, e.g. /hello/i will match
1229     all variations of hello, regardless of case.
1230   - Major revamp of augtool. In particular, path expressions don't need to
1231     be quoted anymore. The online help has been greatly improved.
1232   - Check during load/save that each file is only matched by one transform
1233     under /augeas/load. If there are multiple transforms for a file, the
1234     file is skipped.
1235   - New error codes AUG_ENOLENS and AUG_EMXFM
1236   - Do not choke on non-existing lens during save
1237   - Change the metadata for files under /augeas/files slightly: the node
1238     /augeas/files/$PATH/lens now has the name of the lens used to load the
1239     file; the source location of that lens has moved to
1240     /augeas/files/$PATH/lens/info
1241   - New public functions fa_nocase, fa_is_nocase, and fa_expand_nocase in
1242     libfa
1243   - Various smaller bug fixes, performance improvements and improved error
1244     messages
1245   - Lens changes/additions
1246     * Cobblersettings: new lens and test (Bryan Kearney)
1247     * Iptables: allow quoted strings as arguments; handle both negation
1248       syntaxes
1249     * Json: lens and tests for generic Json files
1250     * Lokkit: allow '-' in arguments
1251     * Samba: accept entry keys with ':' (Partha Aji)
1252     * Shellvars: allow arrays that span multiple lines
1253     * Xinetd (name): fix bad '-' in character class
1254
1255 0.6.0 - 2009-11-30
1256   - Add error reporting API (aug_error and related calls); use to report
1257     error details in a variety of places
1258   - Path expressions: add regexp matching; add operator '|' to form union
1259     of nodesets (ticket #89)
1260   - Tolerate non-C locales from the environment (ticket #35); it is no
1261     longer necessary to set the locale to C from the outside
1262   - use stpcpy/stpncpy from gnulib (needed for building on Solaris)
1263   - Properly check regexp literals for syntax errors (ticket #93)
1264   - Distribute and install vim syntax files (ticket #97)
1265   - many more bugfixes
1266   - Lens changes/additions
1267     * Apt_preferences: support version pin; filter out empty lines (Matt
1268       Palmer)
1269     * Cron: variables can contain '_' etc. (ticket #94)
1270     * Ethers: new lens for /etc/ethers (Satoru SATOH)
1271     * Fstab: allow '#' in spec (ticket #95)
1272     * Group: allow empty password field (ticket #95)
1273     * Inittab: parse end-of-line comments into a #comment
1274     * Krb5: support kdc section; add v4_name_convert subsection to
1275       libdefaults (ticket #95)
1276     * Lokkit: add mising eol to forward_port; make argument for --trust
1277       more permissive
1278     * Pam: allow '-' before type
1279     * Postfix_access: new lens for /etc/postfix/access (Partha Aji)
1280     * Rx: allow '!' in device_name
1281     * Sudoers: allow certain backslash-quoted characters in a command (Matt
1282       Palmer)
1283     * Wine: new lens to read Windows registry files
1284
1285 0.5.3 - 2009-09-14
1286   - Match trees on label + value, not just label; see
1287     tests/modules/pass_strip_quotes.aug for how that enables stripping
1288     quotes
1289   - Do not trip over symlinks to files on a different device during save;
1290     fixes problems with writing to /etc/grub.conf on Fedora/RHEL
1291   - API (defnode): always add the newly created node into the resulting
1292     nodeset
1293   - Add preceding-sibling and following-sibling axes to path expressions
1294   - augtool, augparse: add --version option (bug #88)
1295   - Change file info recorded under /augeas/files/FILE/*: remove lens/id
1296     and move lens/info to lens
1297   - Properly record new files under /augeas/files (bug #78)
1298   - aug_load: clean up variables to avoid dangling references (bug #79)
1299   - Make Augeas work on AIX
1300   - Ignore anything but regular files when globbing
1301   - Add 'clear' function to language for use in unit tests
1302   - typechecker: print example trees in tree format
1303   - libfa: properly support regexps with embedded NUL's
1304   - Lens changes/additions
1305     * Xorg: revamped, fixes various parse failures (Matt Booth)
1306     * Inetd: new lens and test (Matt Palmer)
1307     * Multipath: new lens and test
1308     * Slapd: also read /etc/openldap.slapd.conf (bug #85)
1309
1310 0.5.2 - 2009-07-13
1311   - Make Augeas work on Mac OS/X (bug #66) (Anders Bjoerklund)
1312   - reduce symbols exported from libfa with linker script
1313   - add --echo option to augtool
1314   - require Automake 1.11 (Jim Meyering)
1315   - avoid spurious save attempts for freshly read files
1316   - Lens changes/additions
1317     * Inittab: schema change: use 'id' field as name of subtree for a line,
1318       instead of a generated number. Map comments as '#comment' (Matt Palmer)
1319     * Logrotate: make owner/group in create statement optional, allow
1320       filenames to be indented
1321     * Ntp: allow additional options for server etc. (bug #72)
1322     * Shellvars: allow backticks as quote characters (bug #74)
1323     * Yum: also read files in /etc/yum/pluginconf.d (Marc Fournier)
1324
1325 0.5.1 - 2009-06-09
1326   - augeas.h: flag AUG_NO_MODL_AUTOLOAD suppresses initial loading
1327               of modules; exposed as --noautoload in augtool
1328   - augtool: don't prompt when input is not from tty (Raphael Pinson)
1329   - augparse: add --notypecheck option
1330   - path expressions: allow things like '/foo and /bar[3]' in predicates
1331   - Lens changes/additions
1332     * Aliases: map comments as #comment (Raphael Pinson)
1333     * Build, Rx, Sep: new utility modules (Raphael Pinson)
1334     * Cron: new lens (Raphael Pinson)
1335     * Dnsmasq: process files in /etc/dnsmasq.d/* (ticket #65)
1336     * Grub: parse kernel and module args into separate nodes; parse
1337             arguments for 'serial', 'terminal', and 'chainloader'; allow
1338             optional argument for 'savedefault'
1339     * Interfaces: make compliant with actual Debian spec (Matt Palmer)
1340     * Iptables: relax regexp for chain names; allow comment lines mixed
1341                 in with chains and rules (ticket #51)
1342     * Logrotate: allow '=' as separator (ticket #61); make newline at end
1343                  of scriptlet optional
1344     * Modprobe: handle comments at end of line
1345     * Ntp: parse fudge record (Raphael Pinson); parse all directives in
1346            default Fedora ntp.conf; process 'broadcastdelay', 'leapfile',
1347            and enable/disable flags (ticket #62)
1348     * Pbuilder: new lens for Debian's personal builder (Raphael Pinson)
1349     * Php: add default path on Fedora/RHEL (Marc Fournier)
1350     * Squid: handle indented entries (Raphael Pinson)
1351     * Shellvars: map 'export' and 'unset'; map comments as #comment
1352                  (Raphael Pinson)
1353     * Sudoers: allow backslashes inside values (ticket #60) (Raphael Pinson)
1354     * Vsftpd: map comments as #comment; handle empty lines; find
1355               vsftpd.conf on Fedora/RHEL
1356     * Xinetd: map comments as #comment (Raphael Pinson)
1357
1358 0.5.0 - 2009-03-27
1359   - Clean up interface for libfa; the interface is now considered stable
1360   - New aug_load API call; allows controlling which files to load by
1361     modifying /augeas/load and then calling aug_load; on startup, the
1362     transforms marked with autoload are reported under /augeas/load
1363   - New flag AUG_NO_LOAD for aug_init to keep it from loading files on
1364     startup; add --noload option to augtool
1365   - New API calls aug_defvar and aug_defnode to define variables for
1366     path expressions; exposed as 'defvar' and 'defnode' in augtool
1367   - Lenses distributed with Augeas are now installed in
1368     /usr/share/augeas/lenses/dist, which is searched after
1369     /usr/share/augeas/lenses, so that lenses installed by other packages
1370     take precedence
1371   - New program examples/fadot to draw various finite automata (Francis
1372     Giraldeau)
1373   - Report line number and character offset in the tree when parsing a
1374     file with a lens fails
1375   - Fix error in propagation of dirty flag, which could lead to only
1376     parts of a tree being saved when multiple files were modified
1377   - Flush files to disk before moving them
1378   - Fix a number of memory corruptions in the XPath evaluator
1379   - Several performance improvements in libfa
1380   - Lens changes/additions
1381     * Grub: process embedded comments for update-grub (Raphael Pinson)
1382     * Iptables: new lens for /etc/sysconfig/iptables
1383     * Krb5: new lens for /etc/krb5.conf
1384     * Limits: map dpmain as value of 'domain' node, not as label
1385               (Raphael Pinson)
1386     * Lokkit: new lens for /etc/sysconfig/system-config-firewall
1387     * Modprobe: new lens for /etc/modprobe.d/*
1388     * Sudoers: more finegrained parsing (ticket #48) (Raphael Pinson)
1389
1390 0.4.2 - 2009-03-09
1391   - Do not delete files that had an error upon parsing
1392   - For Fedora/EPEL RPM's, BuildRequire libselinux-devel (bug #26)
1393   - Bug fixes in path expressions
1394     * for numbers, the meaning of '<' and '<=' was reversed
1395   - Always create an entry /files in aug_init
1396   - New builtin 'Sys' module with functions 'getenv' and 'read_file',
1397     the latter reads a the contents of a file into a string
1398   - Lens changes/additions
1399     * Postfix_main: handle continuation lines
1400     * Bbhosts, Hosts, Logrotate, Sudoers: label comment nodes as '#comment'
1401     * Sshd: map comments as '#comment' nodes
1402     * Squid: add all keywords from squid 2.7 and 3 (Francois Deppierraz)
1403     * Logrotate: process unit suffixes for 'size' and 'minsize'
1404
1405 0.4.1 - 2009-03-02
1406   - Remove files when their entire subtree under /files is deleted
1407   - Various bug fixes and syntax enhancements for path expressions
1408     (see tests/xpath.tests for details)
1409   - Evaluate path expressions with multiple predicates correctly
1410   - Fix incorrect setting of /augeas/events/saved
1411   - Major cleanup of matching during get; drastically improves
1412     performance for very large (on the order of 10k lines) config files
1413   - Small performance improvement in the typechecker
1414   - Reject invalid character sets like [x-u] during typecheck
1415   - Build with compile warnings set to 'maximum' instead of 'error', so
1416     that builds on platforms with broken headers will work out of the box
1417   - Lens changes/additions
1418     * Util.stdexcl now excludes .augsave and .augnew files
1419     * Logrotate: allow 'yearly' schedule, spaces around braces
1420     * Ntp: fix so that it processes ntp.conf on Fedora 10
1421     * Services: lens for /etc/services (Raphael Pinson)
1422     * Xorg: new lens and tests (Raphael Pinson)
1423
1424 0.4.0 - 2009-02-06
1425   - Much improved and expanded support for path expressions in the public
1426     API. See doc/xpath.txt and tests/xpath.tests for details.
1427   - Solaris support: builds at least on OpenSolaris 2008.11
1428   - Lens changes/additions
1429     * Grub: support color and savedefault
1430     * DarkIce: new lens for http://darkice.tyrell.hu/ (Free Ekanayaka)
1431
1432 0.3.6 - 2009-01-26
1433   - report version in /augeas/version, report legal save modes in
1434     /augeas/version/save/mode for feature tests/version checking
1435   - dynamically change behavior of aug_save; add noop save mode
1436     (Bryan Kearney)
1437   - plug memory leak, more portable SELinux test (Jim Meyering)
1438   - fix bz #478619 - do not use abspath (Arnaud Gomes-do-Vale)
1439   - fix segfault when branch in a union does not have a ktype
1440   - Lens changes/additions
1441     * Dpkg: new lens for Debian's dpkg.cfg (Robin Lee Powell)
1442     * Limits: new lens for /etc/security/limits.conf (Free Ekanayaka)
1443     * Soma: new lens for http://www.somasuite.org/ config
1444       (Free Ekanayaka)
1445     * Php, Gdm: fix minor regexp error (Marc Fournier)
1446       expand filter for Php config files (Robin Lee Powell)
1447     * Phpvars: whitspace fixes (Free Ekanayaka)
1448     * Puppet: accept indented puppet.conf (ticket #25)
1449
1450 0.3.5 - 2008-12-23
1451   - add an option to rewrite files by overwriting their contents instead of
1452     putting the new file in place atomically with rename(2); file contents
1453     are only copied after rename fails with EXDEV or EBUSY, and only if the
1454     node /augeas/save/copy_if_rename_fails (fix #32)
1455   - saving of backup (.augsave) files now works even if the original and
1456     backup files are on different devices
1457   - major refactoring of how path expressions are handled internally. Fixes
1458     a number of bugs and oddities (e.g. tickets #7 and #23)
1459   - fix a bug in fa_as_regexp: a '.' wasn't escaped, ultimately leading to
1460     spurious errors from the typechecker
1461   - Lens changes/additions
1462     * Group: process /etc/group (Free Ekanayaka)
1463     * Passwd: process /etc/passwd (Free Ekanayaka)
1464     * Phpvars: process files that set PHP variables, in particular
1465       /etc/squirrelmail/config.php (Free Ekanayaka)
1466     * Rsyncd: process /etc/rsyncd.conf (Marc Fournier)
1467     * Shellvars: process /etc/arno-iptables-firewall/debconf.cfg and
1468       /etc/cron-apt/config (Free Ekanayaka), load /etc/sysconfig/sendmail
1469     * Postfix: process postfix's main.cf and master.cf (Free Ekanayaka)
1470     * Squid: new lens for squid.conf (Free Ekanayaka)
1471     * Webmin: new lens (Free Ekanayaka)
1472     * Xinetd: make sure equal sign is surrounded by spaces (#30)
1473     * Sshd: change the structure of Condition subtrees (Dominique Dumont)
1474
1475 0.3.4 - 2008-11-05
1476   - fix saving of backup files; in 0.3.3, when AUG_SAVE_BACKUP was passed
1477     to aug_init, aug_save would always fail
1478
1479 0.3.3 - 2008-10-24
1480   - restore the behavior of aug_save; in 0.3.2, aug_save broke API by
1481     returning the number of files changed on success instead of 0
1482
1483 0.3.2 - 2008-10-21
1484   - saving now reports which files were actually changed in
1485     /augeas/events/saved; aug_save also returns the number of files
1486     that were changed
1487   - preserve file owner, permissions and SELinux context when changing a file.
1488   - make saving idempotent, i.e. when a change to the tree does not result
1489     in changes to the actual file's content, do not touch the original file
1490   - report an error if there are nodes in the tree with a label that
1491     is not allowed by the lens
1492   - quietly append a newline to files that do not have one
1493   - generate lens documentation using NaturalDocs and publish those
1494     on the Auegas website (Raphael Pinson)
1495   - Lens changes/additions
1496     * Grub: support the 'password' directive (Joel Nimety)
1497     * Grub: support 'serial' and 'terminal' directives (Sean E. Millichamp)
1498     * Samba: change default indentation and separators (Free Ekanayaka)
1499     * Logrotate: process tabooext, add dateext flag (Sean E. Millichamp)
1500     * Sshd: Cleaner handling of 'Match' blocks (Dominique Dumont)
1501     * Monit: new lens (Free Ekanayaka)
1502     * Ldap: merge with Spacevars (Free Ekanayaka)
1503     * Shellvars: support /etc/default (Free Ekanayaka)
1504     * Shellvars: handle space at the end of a line
1505
1506 0.3.1 - 2008-09-04
1507   - Major performance improvement when processing huge files, reducing some
1508     O(n^2) behavior to O(n) behavior. It's now entirely feasible to
1509     manipulate for example /etc/hosts files with 65k lines
1510   - Handle character escapes '\x' in regular expressions in compliance with
1511     Posix ERE
1512   - aug_mv: fix bug when moving at the root level
1513   - Fix endless loop when using a mixed-case module name like MyMod.lns
1514   - Typecheck del lens: for 'del RE STR', STR must match RE
1515   - Properly typecheck the '?' operator, especially the atype; also allow
1516     '?' to be applied to lenses that contain only 'store', and do not
1517     produce tree nodes.
1518   - Many new/improved lenses
1519     * many lenses now map comments as '#comment' nodes instead of just
1520       deleting them
1521     * Sudoers: added (Raphael Pinson)
1522     * Hosts: map comments into tree, handle whitespace and comments
1523              at the end of a line (Kjetil Homme)
1524     * Xinetd: allow indented comments and spaces around "}" (Raphael Pinson)
1525     * Pam: allow comments at the end of lines and leading spaces
1526            (Raphael Pinson)
1527     * Fstab: map comments and support empty lines (Raphael Pinson)
1528     * Inifile: major revamp (Raphael Pinson)
1529     * Puppet: new lens for /etc/puppet.conf (Raphael Pinson)
1530     * Shellvars: handle quoted strings and arrays (Nahum Shalman)
1531     * Php: map entries outside of sections to a '.anon' section
1532            (Raphael Pinson)
1533     * Ldap: new lens for /etc/ldap.conf (Free Ekanayaka)
1534     * Dput: add allowed_distributions entry (Free Ekanayaka)
1535     * OpenVPN: new lens for /etc/openvpn/{client,server}.conf (Raphael Pinson)
1536     * Dhclient: new lens for /etc/dhcp3/dhclient.conf (Free Ekanayaka)
1537     * Samba: new lens for /etc/samba/smb.conf (Free Ekanayaka)
1538     * Slapd: new lens for /etc/ldap/slapd.conf (Free Ekanayaka)
1539     * Dnsmasq: new lens for /etc/dnsmasq.conf (Free Ekanayaka)
1540     * Sysctl: new lens for /etc/sysctl.conf (Sean Millichamp)
1541
1542 0.3.0 - 2008-08-07
1543   - Add aug_mv call to public API
1544   - Do not clobber symlinks, instead write new files to target of symlink
1545   - Fail 'put' when tree has invalid entries
1546   - Set exit status of augtool
1547   - Avoid picking special characters, in particular '\0', in examples (libfa)
1548   - Store system errors, using strerror, in the tree during writing of files
1549   - New lenses
1550     * Generic inifile module (Raphael Pinson)
1551     * logrotate (Raphael Pinson)
1552     * /etc/ntp.conf (Raphael Pinson)
1553     * /etc/apt/preferences (Raphael Pinson)
1554     * bbhosts for Big Brother [http://www.bb4.org/] (Raphael Pinson)
1555     * php.ini (Raphael Pinson)
1556
1557 0.2.2 - 2008-07-18
1558   - Fix segfault in store.put on NULL values
1559   - Properly move default lens dir with DATADIR (Jim Meyering)
1560   - Fix 'short iteration' error on get/parse of empty string; this bug
1561     made it impossible to save into a new file
1562   - Add 'insa' and 'insb' primitives to allow insertion from
1563     put unit tests
1564   - aug_insert: handle insertion before first child properly
1565   - New lenses
1566     * /etc/exports: NFS exports
1567     * /etc/dput.cf: Debian's dput (Raphael Pinson)
1568     * /etc/aliases: don't require whitespace after comma (Greg Swift)
1569
1570 0.2.1 - 2008-07-01
1571   - Address some compilation issues found on Ubuntu/Debian unstable
1572   - Fix segfault when aug_init/close are called multiple times
1573   - Man page for augparse
1574   - New lenses
1575     * /etc/sysconfig/selinux
1576     * Bugfixes for grub.conf
1577
1578 0.2.0 - 2008-06-05
1579   - Augeas is now much more portable
1580     * Pull in gnulib on non-glibc systems
1581     * Augeas now builds and runs on FreeBSD (possibly others, too)
1582   - Various fixes for memory corruption and the like
1583     (Jim Meyering, James Antill)
1584   - New lenses
1585     * vsftpd.conf
1586     * various bugfixes in existing lenses
1587
1588 0.1.1 - 2008-05-16
1589   - Add subtraction of regexps to the language, for example
1590       let re = /[a-z]+/ - /(Allow|Deny)Users/
1591   - Report errors during get/put in the tree; added subnodes to
1592     /augeas/files/PATH/error for that purpose
1593   - Many many bugfixes:
1594     * plugged all known memory leaks
1595     * fixed typecheck for lens union (l1 | l2) which was plain wrong
1596     * reduce overall memory usage by releasing unused compiled regexps
1597     * further performance improvements in libfa
1598     * check that values match the regexps in STORE when saving
1599   - libfa can now convert an automaton back to a regular expression
1600     (FA_AS_REGEXP)
1601   - New lenses
1602     * /etc/fstab
1603     * /etc/xinetd.conf and /etc/xinetd.d/*
1604
1605 0.1.0 - 2008-05-01
1606   - Various changes to public API:
1607     * Remove aug_exists from public API, and merge functionality into aug_get
1608     * Do not hide pointer behind typedef; instead Augeas 'handle' type is now
1609       struct augeas, typedef'd to augeas (Jim Meyering)
1610     * Const-correctness of public API, return error indication
1611       from aug_print (Jim Meyering)
1612     * Make buildable on Debian Etch (remove -fstack-protector from compiler
1613       switches)
1614   - Public API is now stable, and existing calls will be supported without
1615     further changes
1616   - New schema:
1617     * /etc/sysconfig/network-scripts/ifcfg-* (Alan Pevec)
1618     * Assorted other files from /etc/sysconfig (the ones that just set
1619       shell variables)
1620     * /etc/apt/sources.list and /etc/apt/sources.list.d/* (Dean Wilson)
1621   - Man page for augtool (Dean Wilson)
1622
1623 0.0.8 - 2008-04-16
1624   - Complete rewrite of the language for schema descriptions
1625
1626 0.0.7 - 2008-03-14
1627   - Typecheck lenses; in particular, discover and complain about ambiguous
1628     concatenation and iteration
1629   - Enable typechecking for augparse by default, and for augtool via the
1630     '-c' flag
1631   - Fixed lens definitions in spec/ to pass typechecking. They contained
1632     quite a few stupid and subtle problems
1633   - Greatly improved libfa performance to make typechecking reasonably
1634     fast. Typechecking cmfm.aug went from more than two hours to under two
1635     seconds
1636
1637 0.0.6 - 2008-03-05
1638   - Make it possible to overwrite files when saving with and without
1639     backups
1640   - Take the filesystem root as an optional argument to aug_init
1641   - Expose these two things as command line options in augtool
1642
1643 0.0.5 - 2008-03-05
1644   - Changed public API to contain explicit reference to augeas_t
1645     structure. This makes it easier to write threadsafe code using Augeas
1646   - Added libfa, finite automata library, though it's not yet used by
1647     Augeas
1648
1649 0.0.4 - 2008-02-25
1650   - package as RPM and make sure Augeas can be build on Fedora/RHEL
1651
1652 0.0.3 - 2008-02-25
1653   - further rework; file processing now resembles Boomerang lenses much
1654     more closely
1655   - major revamp of the internal tree representation (ordered tree where
1656     multiple children can have the same label, including NULL labels)
1657   - move away from LL(1) parsing in favor of regular languages, since they
1658     enable much better ahead-of-time checks (which are not implemented yet)
1659
1660 0.0.2 - 2008-01-29:
1661   - completely reworked
1662   - processing of files is now based on a textual description of the
1663     structure of the files (basically a LL(1) grammar)
1664
1665 0.0.1 - 2007-12-01:
1666   - First release.
1667   - Public API and basic tree data structure.
1668   - Record scanning works.
1669   - Providers for pam.d, inittab and /etc/hosts
1670   - Simple tests and test driver