Changelog for 1.1.0 version

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 Adriaanse)
    * Desktop: Support dos eol
    * Dhclient: read /etc/dhclient.conf used in OpenBSD (Jasper Adriaanse)
    * Dovecot: New lens for dovecot configurations (Serge Smetana)
    * Fai_Diskconfig: Optimize some regexps
    * Fonts: exclude all README files (Jasper 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 Adriaanse)
    * MySQL: Use standard comments and empty lines
             Support dos eol
    * NagiosCfg: handle Icinga and resources.cfg (Jasper Adriaanse)
    * Nrpe: accept any config option rather than predefined list (Gonzalo
            Servat); optimize some regexps
    * Ntpd: new lense for OpenNTPD config (Jasper 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 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 a slash. Now it only matches a slash
  - path expressions: add function 'int' to convert a node value (string)
    to an integer
  - path expressions: make sure the regexp produced by empty nodesets from
    regexp() and glob() matches nothing, rather than the empty word
  - fix --autosave when running single command from command line, BZ 743023
  - aug_srun: support 'insert' and 'move' as aliases for 'ins' and 'mv'
  - aug_srun: allow escaping of spaces, quotes and brackets with \
  - aug_init: accept AUG_NO_ERR_CLOSE flag; return augeas handle even when
    intialization fails so that caller gets some details about why
    initialization failed
  - aug_srun: tolerate trailing white space in commands
  - much improved, expanded documentation of many lenses
  - always interpret lens filter paths as absolute, bug #238
  - fix bug in libfa that would incorrectly calculate the difference of a
    case sensistive and case insensitive regexp (/[a-zA-Z]+/ - /word/i
    would match 'worD')
  - new builtin 'regexp_match' for .aug files to make testing regexp
    matching easier during development
  - fix 'span' command, bug #220
  - Lens changes/additions
    * Access: parse user@host and (group) in users field; field separator
      need not be surrounded by spaces
    * Aliases: allow spaces before colons
    * Aptconf: new lens for /etc/apt/apt.conf
    * Aptpreferences: support origin entries
    * Backuppchosts: new lens for /etc/backuppc/hosts, bug 233 (Adam Helms)
    * Bbhosts: various fixes
    * Cgconfig: id allowed too many characters
    * Cron: variables aren't set like shellvars, semicolons are allowed in
      email addresses; fix parsing of numeric fields, previously upper case
      chars were allowed; support ranges in time specs
    * Desktop: new lens for .desktop files
    * Dhcpd: slashes must be double-quoted; add Red Hat's dhcpd.conf
    * Exports: allow empty options
    * Fai_diskconfig: new lens for FAI disk_config files
    * Fstab: allow ',' in file names, BZ 751342
    * Host_access: new lens for /etc/hosts.{allow,deny}
    * Host_conf: new lens for /etc/host.conf
    * Hostname: new lens for /etc/hostname
    * Hosts: also load /etc/mailname by default
    * Iptables: allow digits in ipt_match keys, bug #224
    * Json: fix whitespace handling, removing some cf ambiguities
    * Kdump: new lens for /etc/kdump.conf (Roman Rakus)
    * Keepalived: support many more flags, fields and blocks
    * Krb5: support [pam] section, bug #225
    * Logrotate: be more tolerant of whitespace in odd places
    * Mdadm_conf: new lens for /etc/mdadm.conf
    * Modprobe: Parse commands in install/remove stanzas (this introduces a
      backwards incompatibility); Drop support for include as it is not
      documented in manpages and no unit tests are shipped.
    * Modules: new lens for /etc/modules
    * Multipath: add support for seveal options in defaults section, bug #207
    * Mysql: includedir statements are not part of sections; support
      \!include; allow indentation of entries and flags
    * Networks: new lens for /etc/networks
    * Nrpe: allow '=' in commands, bug #218 (Marc Fournier)
    * Php: allow indented entries
    * Phpvars: allow double quotes in variable names; accept case
      insensitive PHP tags; accept 'include_once'; allow empty lines at
      EOF; support define() and bash-style and end-of-line comments
    * Postfix_master: allow a lot more chars in words/commands, including
    * PuppetFileserver: support same-line comments and trailing whitespace,
      bug #214
    * Reprepo_uploaders: new lens for reprepro's uploaders files
    * Resolv: permit end-of-line comments
    * Schroot: new lens for /etc/schroot/schroot.conf
    * Shellvars: greatly expand shell syntax understood; support various
      syntactic constructs like if/then/elif/else, for, while, until, case,
      and select; load /etc/blkid.conf by default
    * Spacevars: add toplevel lens 'lns' for consistency
    * Ssh: new lens for ssh_config (Jiri Suchomel)
    * Stunnel: new lens for /etc/stunnel/stunnel.conf (Oliver Beattie)
    * Sudoers: support more parameter flags/options, bug #143
    * Xendconfsxp: lens for Xen configuration (Tom Limoncelli)
    * Xinetd: allow spaces after '{'

0.9.0 - 2011-07-25
  - augtool: keep history in ~/.augeas/history
  - add aug_srun API function; this makes it possible to run a sequence of
    commands through the API
  - aug_mv: report error AUG_EMVDESC on attempts to move a node into one of
    its descendants
  - path expressions: allow whitespace inside names, making '/files/etc/foo
    bar/baz' a legal path, but parse [expr1 or expr2] and [expr1 and expr2]
    as the logical and/or of expr1 and expr2
  - path expressions: interpret escape sequences in regexps; since '.' does
    not match newlines, it has to be possible to write '.|