Changelog for 1.7.0 version

1.7.0 - 2016-11-08
  - General changes/additions
    * allow multiple transforms handling the same file as long as they
      also use the same lens (reported by Rich Jones)
    * fix a use-after-free in recursive lenses when spans are
      enabled (Issue #397)
    * fix an illegal memory access during put that can be triggered by a
      lens of the form 'del ... | l1 . l2' when the put has to jump
      branches in the union (Issue #398)
    * a large number of fixes based on Coverity scanning and running with
      gcc's address sanitizer. None of the issues uncovered would have lead
      to particularly significant leaks (they were all on the order 100-200
      bytes) and often hard to trigger, but we now have proof that at least
      while running tests there are no leaks at all.
      See https://github.com/hercules-team/augeas/pull/405 for details.
    * The type checker now checks regexes that are involved in
      expressions. For example, it used to be possible to write 'let rx =
      /a/ | /b)/' and not get an error from the syntax checker, even though
      'let rx = /b)/' would result in an error. Such constructs are now
      checked properly. This new check might lead to errors in existing
      lenses, requiring that they be fixed.
  - Lens changes/additions
    * Cron_User: New lens to handle user crontab files in /var/spool/cron
    * Csv: fix failure to load lens on OpenBSD (Issue #396)
    * Grub: also look for UEFI grub files in /boot/efi/EFI/*/grub.conf
            (Rich Jones)
    * Opendkim: new lens for /etc/opendkim.conf (Craig Miskell)
    * Php: look for php.ini where Ubunto 16.04 puts it, too (Michael Wodniok)
    * Splunk: support Splunk Universal Forwarder and underscore-prefixed
              keys for 6.x (Jason Antman)

1.6.0 - 2016-08-05
  - General changes/additions
    * augtool: add --load-file option, and corresponding load-file command
      to load individual files based on the autoload information in lenses
    * path expressions: numbers in path expressions are now 64 bit integers
      rather than whatever the C compiler decided 'int' would be
  - API changes
    * add aug_load_file to load individual files, bug #135
  - Lens changes/additions
    * Httpd: follow line continuations in comments
    * Nginx: look for nginx.conf in /usr/local/etc, too (Omer Katz)
    * Ntp: allow 'pool' (Craig Miskell) (Issue #378);
           fix restrict to allow also -4 and also fix
           save/store ability (Josef Reidinger) (Issue #386)
    * Pam: use spaces instead of tabs as the separator in new entries
           (Loren Gordon) (Issue #236)
    * Postfix_Passwordmap: New lens to parse Postfix password maps
           (Anton Baranov) (Issue #380)
    * Rsyslog: Support for rsyslog RainerScript syntax
           (Craig Miskell) (Issue #379)
    * Shellvars: Load /etc/lbu/lbu.conf, the config for Alpine's Local
           Backup Utility (Kaarle Ritvanen)
           Load /etc/profile, /etc/profile.d/*, and /etc/byobu
    * Vsftpd: Add allow_writeable_chroot boolead option
           (Robert Moucha) (Issue #376)

1.5.0 - 2016-05-11
  - General changes/additions
    * augtool: new --timing option that prints after each operation how long
      it took
    * augtool: print brief help message when incorrect options are given rather
      than dumping all help text
    * Path expressions: optimize performance of evaluating certain
    * lots of safety improvements in libfa to avoid using uninitialized
      values and the like (Daniel Trebbien)
    * tolerate building against OSX' libedit (Issue #256)
  - API changes
    * aug_match: fix a bug where expressions like /foo/*[2] would match a
      hidden node and pretend there was no match at all. We now make sure
      we never match a hidden node. Thanks to Xavier Mol for reporting the
    * aug_get: make sure we set *value to NULL, even if the provided path is
      invalid (Issue #372)
    * aug_rm: fix segfault when deleting a tree and one of its ancestors
      (Issue #319)
    * aug_save: fix segfault when trying to save an invalid subtree. A
      routine that was generating details for the error message overflowed
      a buffer it had created (Issue #349)
  - Lens changes/additions
    * AptConf: support hash comments
    * AptSources: support options (Issue #295),
                  support brackets with spaces in URI (GH #296)
                  rename test file to test_aptsources.aug
    * Chrony: allow signed numbers and indentation, fix stray EOL entry,
              disallow comment on EOL, add many missing directives and
              options (Miroslav Lichvar, RHBZ#1213281)
              add new directives and options that were added in
              chrony-2.2 and chrony-2.3 and improve parsing of
              access configuration (Miroslav Lichvar, Issue #348)
              add new options for chrony-2.4 (Miroslav Lichvar)
    * Dhclient: avoid put ambiguity for node without value (Issue #294)
    * Group: support NIS map, support an overridden and disabled password,
             i.e. `+:*::` (Matt Dainty) (Issue #258)
    * Host_Conf: support spaces between list items (Cedric Bosdonnat, Issue #358)
    * Httpd: add paths to SLES vhosts
             (Jan Doleschal) (Issue #268)
             parse backslashes in directive arguments (Issue #307)
             parse mismatching case of opening/closing tags
             parse multiple ending section tags on one line
             parse wordlists in braces in SSLRequire directives
             parse directive args starting with double quote (Issue #330)
             parse directive args containing quotes
             support perl directives (Issue #327)
             parse line breaks/continuations in section arguments
             parse escaped spaces in directive/section arguments
             parse backslashes at the start of directive args (Issue #324)
    * Inputrc: support $else (Cedric Bosdonnat, Issue #359)
    * Interfaces: add support for source-directory (Issue #306)
    * Json: add comments support, refactor,
            allow escaped quotes and blackslashes
    * Keepalived: fix space/tag alignments and hanging spaces,
                  add vrrp_mcast_group4 and vrrp_mcast_group6,
                  add more vrrp_instance flags,
                  add mcast/unicast_src_ip and unicast_peer,
                  add missing garp options,
                  add vrrp_script options,
                  expand vrrp_sync_group block,
                  allow notify option
                  (Joe Topjian) (Issue #266)
    * Known_Hosts: refactoring and description fixed
    * Logrotate: support dateyesterday option (Chris Reeves) (GH #367, #368)
    * MasterPasswd: new lens to parse /etc/master.passwd
                    (Matt Dainty) (Issue #258)
    * Multipath: add various missing keywoards (Olivier Mangold) (Issue #289)
    * MySQL: include /etc/my.cnf.d/*.cnf (Issue #353)
    * Nginx: improve typechecking of lens,
             allow masks in IP keys and IPv6 (Issue #260)
             add @server simple nodes (Issue #335)
    * Ntp: add support for basic interface syntax
    * OpenShift_Quickstarts: Use Json.lns
    * OpenVPN: add all options available in OpenVPN 2.3o
               (Justin Akers) (Issue #278)
    * Puppetfile: name separator is not mandatory
                  add support for moduledir (Christoph Maser)
    * Rabbitmq: remove space in option name,
                add support for cluster_partitioning_handling,
                add missing simple options (Joe Topjian) (Issue #264)
    * Reprepro_Uploaders: add support for distribution field
                          (Mathieu Alorent) (Issue #277),
                          add support for groups (Issue #283)
    * Rhsm: new lens to parse subscription-manager's /etc/rhsm/rhsm.conf
    * Rsyslog: improve property filter parsing,
               treat whitespace after commas as optional.
               recognize '~' as a valid syslog action (discard)
               (Gregory Smith) (Issue #282),
               add support for redirecting output to named pipes
               (Gerlof Fokkema) (Issue #366)
    * Shellvars: allow partial quoting, mixing multiple styles
                 (Kaarle Ritvanen) (Issue #183);
                 allow wrapping builtin argument to multiple lines
                 (Kaarle Ritvanen) (Issue #184);
                 support ;; on same line with multiple commands
                 (Kaarle Ritvanen) (Issue #185);
                 allow line wrapping and improve quoting support
                 (Kaarle Ritvanen) (Issue #187);
                 accept [] and [[]] builtins (Issue #188);
                 allow && and || constructs after condition
                 (Kaarle Ritvanen) (Issue #265);
                 add pattern nodes in case entries
                 (BREAKING CHANGE: case entry values are now in a
                 @pattern subnode) (Kaarle Ritvanen) (Issue #265)
                 add eval builtin support;
                 add alias builtin support;
                 allow (almost) any command;
                 allow && and || after commands (Issue #215);
                 allow wrapping command sequences
                 (Kaarle Ritvanen) (Issue #333);
                 allow command-specific environment variable
                 (Kaarle Ritvanen) (Issue #332);
                 support subshells (Issue #339)
                 newlines in start of functions
                 allow newlines after actions
                 support comments after function name (Issue #339)
                 exclude SuSEfirewall2 (Cedric Bosdonnat, Issue #357)
    * Simplelines: parse OpenBSD's hostname.if(5)
                   files (Jasper Lievisse Adriaanse) (Issue #252)
    * Smbusers: add support for ; comments
    * Spacevars: support flags (Issue #279)
    * Ssh: add support for HostKeyAlgorithms, KexAlgorithms
           and PubkeyAcceptedKeyTypes (Oliver Mangold) (Issue #290),
           add support for GlobalKnownHostsFile (Issue #316)
    * Star: New lens to parse /etc/default/star
    * Sudoers: support for negated command alias
               (Geoff Williams) (Issue #262)
    * Syslog: recognize '~' as a valid syslog action (discard)
              (Gregory Smith) (Issue #282)
    * Tmpfiles: new lens to parse systemd's tempfiles.d configuration
                files (Julien Pivotto) (Issue #269)
    * Trapperkeeper: new lens for Puppet server configuration files
    * Util: add comment_c_style_or_hash lens
            add empty_any lens
    * Vsftpd: add isolate and isolate_network options
              (Florian Chazal) (Issue #334)
    * Xml: allow empty document (Issue #255)
    * YAML: new lens (subset) (Dimitar Dimitrov) (Issue #338)

1.4.0 - 2015-05-22
  - General changes/additions
    * add a aug_escape_name call to sanitize strings for use in path
      expressions. There are a few characters that are special in path
      expressions. This function makes it possible to have them all escaped
      so that the resulting string can be used in a path expression and is
      guaranteed to only match a node with exactly that name
    * paths generated by Augeas are now properly escaped so that, e.g., the
      strings returned by aug_match can always be fed to aug_get, even if
      they contain special characters
    * augtool: correctly record history when reading commands from a file
      and then switching to interactive mode (Robert Drake)
    * augtool: new command 'errors' that pretty-prints /augeas//error
      messages; improve the information provided with 'short iteration'
    * fix segfault when saving to a file that was not writable (Issue #178)
    * augtool: on interrupt (Ctrl-C), cancel current line instead of
      exiting (jeremy Lin)
    * updated parser.y to work with Bison 3.0.2
    * fix put-symlink-augsave test to run on Solaris (Geoffrey Gardella,
      issue #242)
  - Lens changes/additions
    * AFS_Cellalias: new lens (Pat Riehecky)
    * Authorized_keys: allow double quotes in option values (Issue #135)
    * Chrony: fix typo in log flag 'measurements' (Pat Riehecky)
    * Clamav: new lens  (Andrew Colin Kissa)
    * Dns_Zone: New lens to parse DNS zone files (Kaarle Ritvanen)
    * Dnsmasq: Parse the structure of the 'address' and 'server' options
               (incompatible change) (Kaarle Ritvanen)
    * Erlang: parse kernel app config, handle empty lists (RHBZ#1175546)
    * Exports: support brackets in machine names (Vincent Desjardins)
    * Grub: support password stanza inside boot/title section (Issue #229)
    * Httpd: handle eol after opening tag (Issue #220); fix type checking
      issue (Issue #223)
    * Iscsid: new lens (Joey Boggs and Pat Riehecky) (Issue #174)
    * Jaas: several improvements to cover more valid syntax (Steve Shipway)
    * Known_Hosts: handle aliases for the host name
    * Krb5: support keyword krb524_server; allow realm names starting
            with lower-case characters (Jurjen Bokma)
    * Limits: allow comments at end of line (timdeluxe)
    * Logrotate: support 'dateformat' directive (Issue #217)
                 support 'maxsize' directive (RHBZ#1213292)
                 do not require a space before an opening '{' (Issue #123)
    * Mailscanner: new lens (Andrew Colin Kissa)
    * Mailscanner_Rules: new lens for MailScanner rules (Andrew Colin Kissa)
    * NagiosCfg: default to no spaces around equal (Issue #177)
    * Nginx: significantly reworked, now parses entire Nginx stock
             config successfully (Issue #179)
    * Pagekite: more fine-grained control of service_on entries; instead of
                'source' and 'destination', parse into protocol, kitename,
                backend_host, backend_port, and secret (Michael Pimmer)
                (incompatible change)
    * Passwd: support nis [+-]username syntax (Borislav Stoichkov); fix
      @nisdefault on OpenBSD (Matt Dainty)
    * Pgbouncer: new lense for the pgbouncer connection pooler (Andrew
      Colin Kissa)
    * Postfix_sasl_smtpd: new lens contributed by larsen0815 (Issue #182)
    * Postgresql: look for postgresql.conf in paths used on Red Hat based
                  distros (Haotian Liu)
    * Puppetfile: new lens to parse librarian-puppet's Puppetfile
    * Pylonspaste: new lense for Pylon's paste init configuration files
                   (Andrew Colin Kissa)
    * PythonPaste: parse "set" keyword for default overrides (RHBZ#1175545)
    * Shadow: allow NIS entries (Borislav Stoichkov)
    * Shellvars: case: support ;; on same line with multiple commands
                 (Kaarle Ritvanen); make insertion at the beginning of a
                 file that starts with blank lines work; the new lens will
                 remove blank lines from the beginning of a file as soon as
                 lines are added to or removed from it (GH issue #202);
                 handle associative arrays; add /etc/periodic.conf for
                 FreeBSD (Michael Moll)
    * Shellvars_list: support double-quoted continued lines
    * Sudoers: allow '+' in user/groupnames (Andreas Grüninger)
    * Sysctl: add /boot/loader.conf for FreeBSD (Michael Moll)
    * Sysconfig: handle leading whitespace at beginning of a line,

1.3.0 - 2014-11-07
  - General changes/additions
    * Add missing cp entry in manpage (GH issue #78)
    * Add seq to vim syntax highlight (Robert Drake)
    * Update augtool.1 man page with new commands and --span, RHBZ#1100077
    * augtool autocomplete includes command aliases, RHBZ#1100184
    * Remove unused "filename" argument from dump-xml command, RHBZ#1100106
    * aug_save returns non-zero result when unable to delete files,
  - Lens changes/additions
    * Aliases: permit missing whitespace between colon and recipients
    * AptPreferences: Support spaces in origin fields
    * Cgconfig: handle additional valid controllers (Andy Grimm)
    * Chrony: New lens to parse /etc/chrony.conf (Pat Riehecky)
    * CPanel: New lens to parse cpanel.config files
    * Desktop: Allow @ in keys (GH issue #92)
    * Device_map: Parse all device.map files under /boot (Mike Latimer)
    * Dhclient: Add support for option modifiers (Robert Drake,
                GH issue #95)
                Parse hash statements with dhcp-eval strings
    * Dhcpd: stmt_string quoted blocks no longer store quote marks
             (incompatible change),
             many changes to support more record types (Robert Drake)
    * Group: NIS support (KaMichael)
    * Grub: handle "foreground" option, RHBZ#1059383 (Miguel Armas)
    * Gshadow: New lens (Lorenzo Catucci)
    * Httpd: Allow eol comments after section tags
             Allow continued lines inside quoted value (GH issue #104)
             Allow comparison operators in tags (GH issue #154)
    * IPRoute2: handle "/" in protocol name, swap ID and name fields
                (incompatible change), RHBZ#1063968,
                handle hex IDs and hyphens, as present in
                rt_dsfield, RHBZ#1063961
    * Iptables: parse /etc/sysconfig/iptables.save, RHBZ#1144651
    * Kdump: parse new options, permit EOL comments, refactor, RHBZ#1139298
    * Keepalived: Add more virtual/real server settings and checks, RHBZ#1064388
    * Known_Hosts: New lens for SSH known hosts files
    * Krb5: permit braces in values when not in sub-section, RHBZ#1066419
    * Ldso: handle "hwcap" lines (GH issue #100)
    * Lvm: support negative numbers, parse /etc/lvm/lvm.conf (Pino Toscano)
    * Multipath: add support for rr_min_io_rq (Joel Loudermilk)
    * NagiosConfig and NagiosObjects: Fix documentation (Simon Sehier)
    * NetworkManager: Use the Quote module, support # in values (no eol comments)
    * OpenVPN: Add support for fragment, mssfix, and script-security
               (Frank Grötzner)
    * Pagekite: New lens (Michael Pimmer)
    * Pam: Add partial support for arguments enclosed in [] (Vincent Brillault)
    * Passwd: Refactor lens (Lorenzo Catucci)
    * Redis: Allow empty quoted values (GH issue #115)
    * Rmt: New lens to parse /etc/default/rmt, RHBZ#1100549
    * Rsyslog: support complex $template lines, property filters and file
               actions with templates, RHBZ#1083016
    * Services: permit colons in service name, RHBZ#1121263
    * Shadow: New lens (Lorenzo Catucci)
    * Shellvars: Handle case statements with same-line ';;', RHBZ#1033799
                 Allow any kind of quoted values in block
                 conditions (GH issue #118)
                 Support $(( .. )) arithmetic expansion in variable
                 assignment, RHBZ#1100550
    * Simplevars: Support flags and empty values
    * Sshd: Allow all types of entries in Match groups (GH issue #75)
    * Sssd: Allow ; for comments
    * Squid: Support configuration files for squid 3 (Mykola Nikishov)
    * Sudoers: Allow wuoted string in default str/bool params (Nick Piacentine)
    * Syslog: Support "# !" style comments (Robert Drake, GH issue #65)
              Permit IPv6 loghost addresses, RHBZ#1129388
    * Systemd: Allow quoted Environment key=value pairs, RHBZ#1100547
               Parse /etc/sysconfig/*.systemd, RHBZ#1083022
               Parse semicolons inside entry values, RHBZ#1139498
    * Tuned: New lens for /etc/tuned/tuned-main.conf (Pat Riehecky)
    * UpdateDB: New lens to parse /etc/updatedb.conf
                (incompatible change as this file used to be processed with
    * Xml: Allow backslash in #attribute values (GH issue #145)
           Parse CDATA elements (GH issue #80)
    * Xymon_Alerting: refactor lens (GH issue #89)

1.2.0 - 2014-01-27
  - API changes
    * Add aug_cp and the cp and copy commands
    * aug_to_xml now includes span information in the XML dump
  - General changes/additions
    * Fix documentation link in c_api NaturalDocs menu
    * Fix NaturalDocs documentation for various lenses
    * src/transform.c (filter_matches): wrap fnmatch to ensure that an incl
      pattern containing "//" matches file paths, RHBZ#1031084
    * Correct locations table for transform_save() (Tomas Hoger)
    * Corrections for CVE-2012-0786 tests (Tomas Hoger)
    * Fix umask handling when creating new files, RHBZ#1034261
  - Lens changes/additions
    * Access: support DOMAIN\user syntax for users and groups, bug #353
    * Authorized_Keys: Allow 'ssh-ed25519' as a valid authorized_key
      type (Jasper Lievisse Adriaanse)
    * Automounter: Handle hostnames with dashes in them, GH issue #27
    * Build: Add combinatorics group
    * Cyrus_Imapd: Create new entries without space before separator,
      RHBZ#1014974 (Dietmar Kling)
    * Desktop: Support square brackets in keys
    * Dhclient: Add dhclient.conf path for Debian/Ubuntu (Esteve Fernandez)
    * Dhcpd: Support conditionals, GH issue #34
             Support a wider variety of allow/deny statement, including
             booting and bootp (Yanis Guenane)
             Support a wider variety of DHCP allow/deny/ignore statements
             (Yanis Guenane)
    * Dovecot: Various enhancements and bug fixes (Michael Haslgrübler):
               add mailbox to block_names, fix for block_args in quotes,
               fix for block's brackets upon write,
               fixes broken tests for mailbox,
               fixes indention,
               test case for block_args with ""
               fixes broken indention
               Use Quote module
    * Exports: Permit colons for IPv6 client addresses, bug #366
    * Grub: Support the 'setkey' and 'lock' directives
            NFC fix whitespace errors
            Handle makeactive menu command, bug #340
            Add 'verbose' option, GH issue #73
    * Interfaces: Add in support for the source stanza in
                  /etc/network/interfaces files
                  Map bond-slaves and bridge-ports to arrays (incompatible
                  change) (Kaarle Ritvanen)
                  Add /etc/network/interfaces.d/* support
                  Allow numeric characters in stanza options (Pascal Lalonde)
    * Koji: New lens to parse Koji configs (Pat Riehecky)
    * MongoDBServer: Accept quoted values (Tomas Klouda)
    * NagiosCfg: Do not try to parse /etc/nagios/nrpe.cfg anymore, GH issue #43
                 /etc/nagios/nrpe.cfg is parsed by Nrpe (Yanis Guenane)
    * Nagiosobjects: Add support for optional spaces and indents
                     and whole-line comments (Sean Millichamp)
    * OpenVPN: Support daemon, client-config-dir, route, and management
               directives (Freakin https://github.com/Freakin)
    * PHP: allow php-fpm syntax in keys, GH issue #35
    * Postfix_Main: Handle stray whitespace at end of multiline lines, bug #348
    * Postfix_virtual: allow '+' and '=' in email addresses (Tom Hendrikx)
    * Properties: support multiline starting with an empty string, GH issue #19
    * Samba: Permit asterisk in key name, bug #354
    * Shellvars: Read /etc/firewalld/firewalld.conf, bug #363
                 Support all types of quoted strings in arrays, bug #357
                 Exclude /etc/sysconfig/ip*tables.save files
    * Shellvars, Sysconfig: map "bare" export and unset lines to seq numbered
      nodes to handle multiple variables (incompatible change), RHBZ#1033795
    * Shellvars_list: Handle backtick variable assignments, bug #368
                      Allow end-of-line comments, bug #342
    * Simplevars: Add /etc/selinux/semanage.conf
    * Slapd: use smart quotes for database entries; rename by/what to by/access;
      allow access to be absent as per official docs (incompatible change)
    * Sshd: Indent Match entries by 2 spaces by default
            Support Ciphers and KexAlgorithms groups, GH issue #69
            Let all special keys be case-insensitive
    * Sudoers: Permit underscores in group names, bug #370 (Matteo Cerutti)
               Allow uppercase characters in user names, bug #376
    * Sysconfig: Permit empty comments after comment lines, RHBZ#1043636
    * Sysconfig_Route: New lens for RedHat's route configs
    * Syslog: Accept UDP(@) and TCP(@@) protocol, bug #364 (Yanis Guenane)
    * Xymon_Alerting: New lens for Xymon alerting files (François Maillard)
    * Yum: Add yum-cron*.conf files (Pat Riehecky)
           Include only *.repo files from yum.repos.d (Andrew N Golovkov)
           Permit spaces after equals sign in list options, GH issue #45
           Split excludes as lists, bug #275

1.1.0 - 2013-06-14
  - General changes/additions
    * Handle files with special characters in their name, bug #343
    * Fix type error in composition ('f; g') of functions, bug #328
    * Improve detection of version script; make build work on Illumos with
      GBU ld (Igor Pashev)
    * augparse: add --trace option to print filenames of all modules being
    * Various lens documentation improvements (Jasper