Changelog for 1.2.0 version

1.2.0 - 2013-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.properties (Brian Harrington)
    * JMXAccess, JMXPassword: new lenses for ActiveMQ's JMX files
      (Brian Harrington)
    * Krb5: Use standard comments and empty lines
            Support dos eol
            Improve performance
            Accept pkinit_anchors (Andrew Anderson)
    * Lightdm: Use standard comments and empty lines
    * LVM: New lens for LVM metadata (Gabriel)
    * Mdadm_conf: optimize some regexps
    * MongoDBServer: new lens (Brian Harrington)
    * Monit: also load /etc/monitrc (Jasper Lievisse Adriaanse)
    * MySQL: Use standard comments and empty lines
             Support dos eol
    * NagiosCfg: handle Icinga and resources.cfg (Jasper Lievisse Adriaanse)
    * Nrpe: accept any config option rather than predefined list (Gonzalo
            Servat); optimize some regexps
    * Ntpd: new lense for OpenNTPD config (Jasper Lievisse Adriaanse)
    * Odbc: Use standard comments and empty lines
    * Openshift_*: new lenses for Openshift support (Brian Harrington)
    * Quote: allow multiple spaces in quote_spaces; improve docs
    * Passwd: allow period in user names in spec, bug #337; allow overrides
              in nisentry
    * PHP: Support smart quotes
           Use standard comments and empty lines
           Load /etc/php*/fpm/pool.d/*.conf (Enrico Stahn)
    * Postfix_master: allow [] in words, bug #345
    * Resolv: support 'lookup' and 'family' key words, bug #320
              (Jasper Lievisse Adriaanse))
    * Rsyslog: support :omusrmsg: list of users in actions
    * RX: add CR to RX.space_in
    * Samba: Use standard comments and empty lines
             Support dos eol
    * Schroot: Support smart quotes
    * Services: support port ranges (Branan Purvine-Riley)
    * Shellvars: optimize some regexps; reinstate /etc/sysconfig/network,
      fixes bug #330, RHBZ#904222, RHBZ#920609; parse /etc/rc.conf.local
      from OpenBSD
    * Sip_Conf: New lens for sip.conf configurations (Rob Tucker)
    * Splunk: new lens (Tim Brigham)
    * Subversion: Support smart quotes
                  Use standard comments and empty lines
                  Use IniFile.entry_multiline_generic
                  Use IniFile.empty_noindent
                  Support dos eol
    * Sudoers: allow user aliases in specs
    * Sysctl: exclude README file
    * Systemd: Support smart quotes; allow backslashes in values
    * Xinetd: handle missing values in list, bug #307
    * Xorg: allow 'Screen' in Device section, bug #344
    * Yum: Support dos eol, optimize some regexps

1.0.0 - 2012-12-21
  - General changes/additions
    * fix missing requirement on libxml2 in pkg-config
    * do not replace pathin with '/*' unless the length is 0
      or pathin is '/', bug #239
    * create context path if it doesn't exist
    * add missing argument to escape() to fix build on solaris, bug #242
    * fix fatest linking with libfa
    * don't use variables uninitialized upon error (Jim Meyering)
    * bootstrap: add strchrnul gnulib module (for Solaris)
    * remove Linux-isms so tests can run on Solaris
    * re-open rl_outstream/stdout only when stdout isn't a tty
      (fixes -e -i); use /dev/tty instead of /dev/stdout when re-opening
      to prevent permission errors, bug #241
    * take root into account for excludes, bug #252
    * fix different errors for parse and put failure
    * fix various memory leaks
    * add leak test
    * allocate exception instead of static const value
    * improve aug_srun quoting to permit concatenation and better detect
      bad quoting
    * rename echo to echo_commands to fix differing types reported
      with Solaris linker (Tim Mooney), bug #262
    * fix excl filters that only specify a filename or wildcard
    * make sure reloading discards changes after save with mode 'newfile'
    * remove loop that added a second iteration around children of /files,
      causing multiple saves in newfile and noop modes when editing under
      /files/boot, bug #264
    * support \t and \n in aug_srun tokens, bug #265
    * compile_exp: don't return an uninitialized pointer upon failure
      (Jim Meyering)
    * include 'extern "C"' wrapper for C++, bug #272 (Igor Pashev)
    * src/try: don't overwrite gdbcmds.txt if it exists
    * fix behavior of set with empty strings
    * allow running individual tests with test-run
    * test-augtool.sh: escape all possible regular expressions before
      they are sent to sed (Micah Anderson)
    * add new print_tree primitive
    * fix bad memory access in regexp.c
    * case-insensitive regexps: fix a problem with number of groups
    * prevent symlink attacks via .augnew during saving,
      RedHat bug #772257, CVE-2012-0786
    * prevent cross-mountpoint attacks via .augsave during saving,
      RedHat bug #772261, CVE-2012-0787
    * add bundled (gnulib) provides in augeas.spec.in, RedHat bug #821745
    * make Travis CI builds
    * src/transform.c (xread_file): catch failed fopen, e.g. EACCES
    * src/augrun.c (cmd_retrieve_help): tidy line wrapping
    * make get_square case insensitive on the ending key
    * escape double quotes when dumping regexp
    * use constants for "lens", "incl" and "excl"
    * src/transform.c (filter_generate): remove duplicate variable assignment
    * src/jmt.c (parse_add_item): ensure return is defined on goto error
    * src/transform.c (transform_save): chmod after creating new files to
      permissions implied by the umask
    * ignore eclipse settings directory
    * fix memory leak in dbg_visit
    * build AST while visiting the parse v2
    * rewrite square lens to be more generic, allowing e.g. square quoting
    * tests/modules/fail_shadow_union.aug: fix unintended test failure
    * src/syntax.c (compile_test): print which test failed when missing
    * libfa (fa_enumerate): new function
    * use precise ctype of a square lens if it is indeed regula
    * square: properly handle first lens matching empty string
    * square lens: correctly process skeletons during put
    * src/pathx.c: disallow ',' in names in path expressions
    * src/pathx.c: match functions by name and arity
    * src/pathx.c: pass the number of actual arguments to the func
    * correctly parse escaped string literals in vim syntax file (Domen Ko¿ar)
  - API changes/additions
    * add aug_text_store to write string to tree
    * add aug_text_retrieve to turn tree into text
    * add aug_rename to rename node labels without moving them in the tree
    * add aug_transform to allow specifying transforms
    * add aug_label to retrieve the label from a path
  - Augtool/aug_srun changes/additions
    * add "touch" command to create node if it doesn't exist, bug #276
    * make <VALUE> argument to "set" and "setm" optional, bug #276
    * add "text_store" and "text_retrieve" commands
    * add "rename" command
    * add "transform" command and "-t|--transform" option
    * add "label" command
    * arrange commands in groups for better help
    * man/augtool.pod: update mentions of default load path
    * fix exit code when using autosave
    * output errors when sending a command as argument
    * honor --echo when sending a command as argument
  - XPath changes/additions
    * add support for an 'i' flag in regexp builtin function
  - Lens changes/additions
    * Aliases: commands can be fully enclosed in quotes, bug #229
    * Anacron: new lens for /etc/anacrontab
    * Apt_Update_Manager: new lens for /etc/update-manager
    * AptPreferences: #comments are accepted within entries
    * AuthorizedKeys: new lens for SSH's authorized_keys
    * AutoMaster: new lens for auto.master files
    * AutoMounter: new lens for automounter maps (/etc/auto.*)
    * Avahi: new lens for /etc/avahi/avahi-daemon.conf (Athir Nuaimi)
    * Build: add blocks
    * Cachefilesd: new lens for /etc/cachefilesd.conf (Pat Riehecky)
    * Carbon: new lens for /etc/carbon files (Marc Fournier)
    * Cgconfig: add space between group and id (Filip Andres)
    * Channels: new lens for channels.conf
    * Collectd: new lens for /etc/collectd.conf
    * Cron: exclude cron allow/deny files;
            optimize typechecking;
            records can be prefixed by '-' (Michal Filka)
    * CronAllow: new lens for cron/at allow/deny files
    * Cups: new lens for Cups files
    * Cyrus_Imapd: new lens for /etc/imapd.conf, bug #296 (Jeroen van Meeuwen)
    * Debctrl: fixed package paragraph keywords, allow variables
               for version numbers in dependency lists,
               allow DM-Upload-Allowed keyword, Debian bug #650887;
               allow control extensions for Python packages, bug #267
    * Dhcpd: fix primary statement arguments, bug #293;
             use the Quote module to manage quoted values;
             force double quotes for filename attribute, bug #311
    * Dput: use Sys.getenv("HOME")
    * Erlang: new generic lens to build Erlang config lenses
    * Fonts: new lens for /etc/fonts files
    * Fstab: handle options with empty values ("password=");
             make options field optional;
             allow end-of-line comment
    * Fuse: new lens for fuse.conf
    * Gdm: include /etc/gdm/custom.conf
    * Grub: parse "password --encrypted" properly, bug #250;
            optimize typechecking;
            add /boot/grub/grub.conf to transform (Josh Kayse)
    * GtkBookmarks: new lens for $HOME/.gtk-bookmarks
    * Hosts_Access: add netmask;
                    permit more client list formats
                    (whitespace separated lists, @netgroups,
                    IPv6 hosts, inc. zone indices,
                    paths to lists of clients, wildcards,
                    hosts_options), bug #256
    * Htpasswd: new lens for htpasswd/rsyncd.secret files (Marc Fournier)
    * Httpd: support DOS eol
    * IniFile: allow # and ; in quoted values, bug #243;
               add entry_list and entry_list_nocomment
    * Inputrc: new lens for /etc/inputrc
    * Iptables: test that blank lines are accepted (Terence Haddock)
    * Json: allow JSON number literals to be followed by whitespace;
            correctly parse empty object and arrays (Lubomir Rintel)
    * Keepalived: various improvements, optimize typechecking
    * Krb5: handle host{} sections in v4_name_convert;
            support ticket_lifetime;
            handle multiple arguments to *_enctypes (Pat Riehecky);
            better whitespace and semicolon comment support
    * Ldif: new lens to read LDIF files per RFC2849
    * Ldso: new lens for ld.so.conf files
    * Lightdm: new lens for /etc/lightdm/*.conf, bug #302 (David Salmen)
    * Logrotate: rewrite with Build, Rx, and Sep;
                 add su logrotate.conf option (Luc Didry);
                 accept integers prefixed by a sign (Michal Filka)
    * Logwatch: new lens for /etc/logwatch/conf/logwatch.conf (Francois Lebel)
    * Mcollective: new lens for Mcollective files (Marc Fournier)
    * Memcached: new lens for /etc/memcached.conf (Marc Fournier)
    * Mdadm_conf: include /etc/mdadm/mdadm.conf
    * Mke2fs: add support for default_mntopts, enable_periodic_fsck,
              and auto_64-bit_support
    * Modprobe: support softdep command, Debian bug #641813;
                allow spaces around '=' in option, RedHat bug #826752;
                support multiline split commands, Ubuntu bug #1054306;
                revert inner lens name change, fixes Modules_conf
    * Modules: define own entry regexp as referenced Modprobe inner lens
               doesn't match file format
    * Multipath: allow devices to override defaults, bug #278 (Jacob M. McCann)
    * NagiosCfg: support syntax for commands.cfg and resource.cfg
    * Netmask: new lens for /etc/inet/netmasks on Solaris
    * NetworkManager: new lens for NetworkManager files
    * Networks: handle multiple missing network octets,
                fix sequencing of aliases
    * Nginx: new lens for /etc/nginx/nginx.conf (Ian Berry)
    * Nsswitch: add passwd_compat, group_compat and shadow_compat
                GNU extensions (Travis Groth);
                remove long list of databases, match by regexp
    * Ntp: allow deprecated 'authenticate' setting;
           add tos directive, bug #297 (Jacob M. McCann)
    * OpenVPN: use the Quote module to manage quoted values
    * Pam: allow uppercase chars in 'types', remove /etc/pam.conf from filter;
           ignore allow.pamlist;
           exclude /etc/pam.d/README, bug #255
    * PamConf: new lens for /etc/pam.conf
    * Passwd: allow asterisk in password field, bug #255
    * Pg_Hba: support multiple options, bug #313;
              add a path to pg_hba.aug, bug #281 (Marc Fournier)
    * Php: support include() statements
    * Phpvars: map arrays with @arraykey subnodes to make working paths;
               support classes and public/var values, bug #299 (aheahe)
    * Postfix_Transport: new lens for Postfix transport files;
               allow host:port and [host]:port syntaxes, bug #303
    * Postfix_Virtual: new lens for Postfix virtual files
    * Postgresql: new lens for postgresql.conf;
                  properly support quotes, bug #317
    * Properties: improve handling of whitespace, empty props, and underscores
                  in keys (Brett Porter, Carlos Sanchez)
    * Protocols: new lens for /etc/protocols
    * Puppet: add /usr/local/etc/puppet paths (Tim Bishop)
    * Puppet_Auth: new lens for /etc/puppet/auth.conf
    * PuppetFileserver: add /usr/local/etc/puppet paths (Tim Bishop)
    * PythonPaste: new lens for Python Paste configs (Dan Prince)
    * Qpid: new lens to read Apache Qpid daemon/client configs (Andrew Replogle)
    * Quote: new generic lens to manage quoted values using square lenses
    * Rabbitmq: new lens for /etc/rabbitmq/rabbitmq.config
    * Redis: new lens for /etc/redis/redis.conf (Marc Fournier)
    * Resolv: add in single-request-reopen (Erinn Looney-Triggs)
    * Rsyslog: new lens for rsyslog files
    * Rx: add continous lines (cl, cl_or_space, cl_or_opt_space)
    * Sep: add space_equal;
           add continous lines (cl_or_space, cl_or_opt_space)
    * Shellvars: support @return;
                 allow multiple elif statements;
                 parse functions;
                 add more includes;
                 autoload some SuSe and RHN specific files (Duncan Mac-Vicar P);
                 add BSD's /etc/rc.conf, bug #255;
                 remove non-shell files, up2date now has a lens,
                 move updatedb.conf to Simplevars;
                 include /etc/{default,sysconfig}/* and /etc/selinux/config;
                 add systemd's /etc/os-release file;
                 exclude bootloader from shellvars (Duncan Mac-Vicar P);
                 handle bash's implicit concatenation of quoted strings
                 (Michal Filka);
                 exclude /etc/default/whoopsie;
                 fix ambiguity by making semi-colons illegal in bquot
                 and arrays;
                 add lns_norec to check for ambiguities;
                 allow newlines in quoted values;
                 allow semi-colons in bquot and dollar_assign;
                 make end-of-line comments begin with a space;
                 allow double backquoted values;
                 support matching keys in var_action, bug #290;
                 fix empty lines after comments;
                 add shift and exit builtins, with optional args;
                 allow double quotes around variables in case statements;
                 fix empty comments;
                 add locale.conf, vconsole.conf systemd configs,
                 RedHat bug #881841
    * Shells: permit same-line comments
    * Simplelines: new lens for simple lines files
    * Simplevars: new lens for simple key/value, non shellvars files
    * Smbusers: new lens for Samba's smbusers
    * Sssd: new lens for sssd.conf (Erinn Looney-Triggs)
    * Ssh: use Sys.getenv('HOME') in filter instead of ~ since it's not
           expanded (Luc Didry)
    * Sshd: permit hyphens in subsystem names
    * Subversion: new lens for /etc/subversion files
    * Sudoers: optimize typechecking;
               allow = in commands (but force ! or / as first character
               if not an alias);
               allow commands without full path if they begin with a lowcase
               allow "!" as a type of Defaults entry, Debian bug #650079;
               allow quoted strings in Defaults parameters, bug #263
    * Sysconfig: handle end of line comments and semicolons; strip quotes,
                 RedHat bug #761246
    * Sysctl: include /etc/sysctl.d files
    * Syslog: allow capital letters in tokens
    * Systemd: new lens to parse systemd unit files
    * Thttpd: new lens for /etc/thttpd/thttpd.conf (Marc Fournier)
    * Up2date: new lens for /etc/sysconfig/rhn/up2date
    * Util: add comment_noindent; add delim; add doseol;
            support DOS eols in various places;
            add *.bak and *.old to stdexcl, to match files in /etc/sysconfig
    * Vfstab: new lens for /etc/vfstab config on Solaris
    * Vmware_Config: new lens for /etc/vmware/config
    * Vsftpd: add require_ssl_reuse option (Danny Yates)
    * Xinetd: rewrite with Build, Sep, and Rx;
              make attribute names case-insensitive (Michal Filka)
    * Xml: support single _and_ double quoted attribute values,
           RedHat bug #799885, bug #258
    * Xymon: new lens for Xymon config files, bug #266 (Jason Kincl)
    * Yum: rebase on IniFile, support for comments, bug #217

0.10.0 - 2011-12-02
  - support relative paths by taking them relative to the value
    of /augeas/context in all API functions where paths are used
  - add aug_to_xml to API: transform tree(s) into XML, exposed as dump-xml
    in aug_srun and augtool. Introduces dependency on libxml2
  - fix regular expression escaping. Previously, /[\/]/ match either a
    backslash or