Changelog for 1.6.0 version

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 Lievisse Adriaanse)
  - Lens changes/additions
    * ActiveMQ_*: new lens for ActiveMQ/JBoss A-MQ (Brian Harrington)
    * AptCacherNGSecurity: new lens for /etc/apt-cacher-ng/security.conf
      (Erik Anderson)
    * Automaster: accept spaces between options
    * BBHosts: support more flags and downtime feature (Mathieu Alorent)
    * Bootconf: new lens for OpenBSD's /etc/boot.conf (Jasper Lievisse Adriaanse)
    * Desktop: Support dos eol
    * Dhclient: read /etc/dhclient.conf used in OpenBSD (Jasper Lievisse Adriaanse)
    * Dovecot: New lens for dovecot configurations (Serge Smetana)
    * Fai_Diskconfig: Optimize some regexps
    * Fonts: exclude all README files (Jasper Lievisse Adriaanse)
    * Inetd: support IPv6 addresses, bug #320
    * IniFile: Add lns_loose and lns_loose_multiline definitions
               Support smart quotes
      Warning: Smart quotes support means users should not add
               escaped double quotes themselves. Tests need to be fixed
               Use standard Util.comment_generic and Util.empty_generic
      Warning: Existing lens tests must be adapted to use standard
               comments and empty lines
               Allow spaces in entry_multiline* values
               Add entry_generic and entry_multiline_generic
               Add empty_generic and empty_noindent
               Let multiline values begin with a single newline
               Support dos eol
      Warning: Support for dos eol means existing lenses usually
               need to be adapted to exclude \r as well as \n.
    * IPRoute2: Support for iproute2 files (Davide Guerri)
    * JaaS: lens for the Java Authentication and Authorization Service
            (Simon Vocella)
    * JettyRealm: new lens for jetty-realm.propert