1 2014-10-31 Chris Hollowell <hollowec@bnl.gov>
3 Cgconfig: permit quoted spaces in parameter values
4 Allow quoted spaces in controller parameter value assignments, making valid
5 statements such as the following permissible:
7 blkio.throttle.read_iops_device="8:0 50";
9 2014-10-30 Kenaniah Cerny <kenaniah@users.noreply.github.com>
11 Added config.d files to the filter
12 Used by systems running Red Hat or a variant
14 2014-10-28 Raphaël Pinson <raphael.pinson@camptocamp.com>
16 Build: remove unused indent definition
18 2014-10-22 Raphaël Pinson <raphael.pinson@camptocamp.com>
22 Httpd: Allow comparison operators in tags (GH #154)
24 2014-10-17 Tomáš Chvátal <tomas.chvatal@gmail.com>
26 Add more possible SUSE extensions to read from multipath config.
28 2014-10-17 Alastair Lynn <arplynn@gmail.com>
30 Inifile: allow single-character keys
32 2014-10-17 Yanis Guenane <yguenane@gmail.com>
34 xml.aug: Allow nmotoken rather than plain word after !DOCTYPE
35 Currently, the lens only accepts a word after the !DOCTYPE word.
37 A - valid - Doctype can have the following form :
38 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> making the xml
39 file invalid with the current lens. This commits aims for the lens
40 to accept nmtoken rather than strict word after the DOCTYPE string.
42 2014-10-17 fonfon <blubb@fonfon.at>
44 Pagekite: new lens and tests
46 2014-09-23 Dominic Cleal <dcleal@redhat.com>
48 Iptables: parse /etc/sysconfig/iptables.save
51 2014-09-23 Pino Toscano <ptoscano@redhat.com>
53 LVM: handle also /etc/lvm/lvm.conf
54 The syntax should be the same, so use the lvm lens also for the main
55 lvm2 configuration file.
57 LVM: support negative numbers
58 Use Rx.relinteger instead of Rx.integer so negative numbers as values
61 2014-09-18 Dominic Cleal <dcleal@redhat.com>
63 Systemd: parse environment variables where only value is quoted
64 Fixes regression introduced in 5226ae7, which added support to parse fully
65 quoted "NAME=value" environment vars. To support both, this commit stores
66 the quotes in the value if it's only the value quoted.
70 2014-09-12 Dominic Cleal <dcleal@redhat.com>
72 Dhclient: parse hash statements with dhcp-eval strings
74 Systemd: parse semicolons inside entry values, not as EOL comments
77 2014-09-09 Dominic Cleal <dcleal@redhat.com>
79 Kdump: parse new options, permit EOL comments, refactor
82 Test_Kdump: fix test of complete config file
84 2014-09-05 Dominic Cleal <dcleal@redhat.com>
86 Xml: enable CDATA parsing
89 2014-09-04 Dominic Cleal <dcleal@redhat.com>
91 * src/augeas.c (unlink_removed_files): ensure aug_save returns non-zero result when unable to delete files
94 2014-09-03 Dominic Cleal <dcleal@redhat.com>
96 Syslog: permit IPv6 loghost addresses
99 Aliases: permit missing whitespace between colon and recipients
101 2014-07-24 Raphaël Pinson <raphael.pinson@camptocamp.com>
105 Xml: Allow backslash in #attribute values
107 2014-07-21 Dominic Cleal <dcleal@redhat.com>
109 Services: permit colons in service name
112 2014-07-09 Dominic Cleal <dcleal@redhat.com>
114 Rmt: new lens to parse /etc/default/rmt
117 Systemd: parse /etc/sysconfig/*.systemd as used in 389-ds
120 Shellvars: support $(( .. )) arithmetic expansion in variable assignment
123 Systemd: allow quoted Environment key=value pairs
126 2014-06-30 Raphaël Pinson <raphael.pinson@camptocamp.com>
128 Simplevars: Support empty values
130 2014-06-26 Raphaël Pinson <raphael.pinson@camptocamp.com>
132 Sshd: support doseol and standardize code
134 Sshd: Use Build.opt_list
136 Sshd: Also make Host entries case-insensitive
138 Ssh: support case-insensitive entries everywhere
140 2014-06-24 Andy Grimm <agrimm@redhat.com>
142 Add other valid controllers to cgconfig lens
144 2014-06-19 Raphaël Pinson <raphael.pinson@camptocamp.com>
146 Xymon_Alerting: refactor lens (GH issue #89)
148 2014-06-11 Nick <npiace@mars.asu.edu>
150 Sudoers: Allow quoted string in default str/bool parameters
151 Made string or bool parameters able to be quoted strings like non-bool strings.
152 Also added "mailfrom" parameter to the list of string/bool parameters
153 and removed duplicates from that list.
155 2014-06-06 Frank Grötzner <frank@unforgotten.de>
157 add support for mtu relevant parameters fragment and mssfix
159 2014-06-05 Raphaël Pinson <raphael.pinson@camptocamp.com>
161 Update NEWS and AUTHORS
163 2014-06-05 fonk <frank@unforgotten.de>
165 OpenVPN/ Add support for setting script-security
166 Setting script security is especially needed when using learn-address,
167 which we can already set via augeas but is useless without script-security.
169 2014-06-04 Dominic Cleal <dcleal@redhat.com>
171 * man/augtool.pod: fix description of 'move' alias
173 2014-06-03 Dominic Cleal <dcleal@redhat.com>
175 * src/augrun.c: remove unused "filename" argument from dump-xml command
178 * man/augtool.pod: update man page with --span option
180 2014-06-02 Raphaël Pinson <raphink@gmail.com>
182 Update AUTHORS and NEWS
184 2014-06-02 Joel Loudermilk <joel@loudermilk.org>
186 Multipath: add support for rr_min_io_rq
188 2014-06-02 Dominic Cleal <dcleal@redhat.com>
190 * man/augtool.pod: update man page with new commands
193 * src/augtool.c: add command aliases to autocomplete
196 Ldso: handle "hwcap" lines
199 Rsyslog: parse property filters and file actions with complex templates
202 2014-06-02 Raphaël Pinson <raphael.pinson@camptocamp.com>
206 2014-06-02 Pat Riehecky <riehecky@fnal.gov>
210 2014-06-02 Raphaël Pinson <raphael.pinson@camptocamp.com>
212 Update NEWS and AUTHORS
214 2014-06-02 Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
216 Add a little bit of ducumentation
217 for both the shadow and the gshadow lenses
219 2014-06-02 Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
221 Add a lens for /etc/gshadow file format
222 and wire-up its test to the runner's list in Makefile.am
224 Also add a mock /etc/gshadow in tests/root
226 2014-06-02 Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
228 Add a lens for /etc/shadow file format
229 and wire-up its test to the runner's list in Makefile.am
231 Also add a mock /etc/shadow in tests/root
233 2014-06-02 Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
235 Refactor and document
236 - import already defined lenses from the respective modules
237 instead of defining them internally
239 - add a missing \r to the excluded chars in sto_to_col
241 - add some documentation
243 2014-05-14 Michael Tiernan <michael.tiernan@gmail.com>
245 * HACKING: fix git repository URL
247 2014-05-11 Mike Latimer <mlatimer@suse.com>
249 Device_map: Parse all device.map files under /boot
251 2014-05-08 Raphaël Pinson <raphink@gmail.com>
253 CPanel: Allow colons in keys
255 CPanel: New lens to parse cpanel.config files
257 2014-05-05 Raphaël Pinson <raphael.pinson@camptocamp.com>
259 Simplevars: Support flags
261 2014-04-24 Raphaël Pinson <raphink@gmail.com>
263 Shellvars: Allow any kind of quoted values in block conditions (GH issue #118)
265 2014-04-17 Raphaël Pinson <raphael.pinson@camptocamp.com>
267 Sssd: Allow ; for comments
269 2014-04-15 Raphaël Pinson <raphael.pinson@camptocamp.com>
271 Allow empty quoted values (GH issue #115)
273 Allow continued lines inside quoted value (GH issue #104)
275 2014-04-12 Raphaël Pinson <raphael.pinson@camptocamp.com>
277 Update NEWS and AUTHORS
279 2014-04-12 Robert Drake <rdrake@direcpath.com>
281 syslog, support for "# !" style comments
282 This makes it so if a comment begins with "# " then +, -, or ! it's
283 treated as a comment and won't have a special meaning.
287 2014-04-12 Robert Drake <rdrake@direcpath.com>
289 dhclient, add support for option modifiers
290 This adds basic support for append|prepend|supercede|default
292 I believe it has the same limitations as the existing "option" support.
293 Any arguments supplied to the option can't have a space.
297 2014-04-12 Vincent Brillault <vincent.brillault@cern.ch>
299 pam: partial support of arguments enclosed in [ .. ]
300 Pam.conf(5) manual page states 'module-arguments are a space separated list
301 of tokens that can be used to modify the specific behavior of the given PAM.
302 Such arguments will be documented for each individual module. Note, if you
303 wish to include spaces in an argument, you should surround that argument with
304 square brackets.', but such arguments are not supported by the pam lenses, as
305 expressed in the comments 'This isn't entirely right: arguments enclosed in
306 [ .. ] are allowed and should be parsed as one'.
308 This commit add basic support of such arguments via the regex:
309 '/(\[[^]#\n]+\]|[^[#\n \t][^#\n \t]*)/'
311 It is only a partial support as some corner cases are not covered:
312 - Multi line arguments (lines ending with '\')
313 - Arguments containing a '[' (escaped via '\')
315 2014-04-12 Robert Drake <rdrake@direcpath.com>
317 added seq to vim syntax highlight
319 2014-04-03 Simon Séhier <simon.sehier@camptocamp.com>
321 add missing } in file path for nagios/icinga objects
323 2014-03-13 Raphaël Pinson <raphink@gmail.com>
325 UpdateDB: Update tests to ensure spaces around = are OK
329 UpdateDB: New lens to parse /etc/updatedb.conf
331 2014-03-13 Dominic Cleal <dcleal@redhat.com>
333 * augeas.spec.in: improve augeas-libs description
335 2014-03-12 Raphaël Pinson <raphael.pinson@camptocamp.com>
337 Httpd: Add unit test for comment on next line
339 Httpd: Define an eol_comment in section to allow for \n before comment
341 2014-03-11 Raphaël Pinson <raphael.pinson@camptocamp.com>
343 Httpd: Allow eol comments after section tags
345 2014-03-06 Raphaël Pinson <raphael.pinson@camptocamp.com>
347 Rx: Add iso_8601 simple regex
351 Update AUTHORS and NEWS
353 2014-03-06 Robert Drake <rdrake@direcpath.com>
355 dhcpd, style and test changes suggested by raphink
356 I also updated the NEWS entry to note the incompatible change
358 dhcpd, fix for put on dhcp option records
359 Type cannot be blank. I fixed this by making it use record instead of
360 nesting through "type"
362 dhcpd, fix for key block puts
363 I discovered this after thinking I was done. It actually was a problem
364 before I started messing with the code but I didn't notice it because
365 there was never any test for keys.
367 dhcpd, removed unused variable and reformatted
368 stmt_subclass was a little too cluttered so I changed it to multiple
369 lines for readability. I had also introduced an unused lens sep_to_ncl
372 2014-03-06 Robert Drake <rdrake@direcpath.net>
374 dhcpd, changing quotes on stmt_block_arg
375 This patch can break users parsers.
377 Fixes failover-peer, shared-network, class, host, zone, group, and "on" to
378 handle quoted values properly.
380 It also allows optional semicolon at the end of key {} block.
382 2014-03-06 Robert Drake <rdrake@direcpath.net>
384 dhcpd, adding support for "on" statement
388 set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
389 set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
392 2014-03-06 Robert Drake <rdrake@direcpath.net>
394 dhcpd, added fddi to stmt_hardware
395 getting pretty obscure..
397 2014-03-06 Robert Drake <rdrake@direcpath.net>
399 dhcpd, adding support for set command
400 This allows you to define variables in your dhcp configuration. They
401 can be arbitrarily complicated.
405 set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
406 set ClientMac = binary-to-ascii(16, 8, ":" , substring(hardware, 1, 6));
408 I also added most of the rest of the functions from dhcp-eval and listed
409 the limitations of the current parser. I don't think I'm going to be
410 able to fix most of it but I think I'm getting into obscure features
411 that most people don't bother using.
413 At this point if they need to do very strange class maps they could put
414 them in an include file and not have augeas parse it.
416 2014-03-06 Robert Drake <rdrake@direcpath.net>
418 dhcpd, added support for match if suffix|option
419 I also relaxed the rules on matching quoted and unquoted values.
422 match if suffix (option vendor-class-identifier,6)="123456";
424 match if option vendor-class-identifier="Brave, Warrior Pidgins";
428 2014-03-06 Robert Drake <rdrake@direcpath.net>
430 dhcpd fix to allow subclasses values to be quoted
431 DHCP subclass values can have spaces in them.
434 subclass "consoles" "Xbox 360";
435 subclass "consoles" "Nintendo 3DS";
436 subclass "consoles" Wii;
437 subclass "consoles" NintendoDS;
439 2014-03-06 Robert Drake <rdrake@direcpath.net>
441 dhcpd known-clients allows spaces in it's value
442 This is a fix for lines like these:
444 deny unknown clients;
447 allow unknown clients;
449 2014-03-06 Robert Drake <rdrake@direcpath.net>
451 dhcpd, fix for quoted characters in members of
452 Some of my "allow members of" statements have more complicated names
453 that include things like parenthesis. This change makes it so semicolon
454 and space are the only things not allowed in barewords, and quotes and
455 newlines are the only thing not allowed in quoted things.
457 2014-03-06 Robert Drake <rdrake@direcpath.net>
459 dhcpd, fix whitespace problems with blocks
460 Most blocks should support braces at the end of a line or
474 2014-03-06 Robert Drake <rdrake@direcpath.net>
476 dhcpd, expanding support for user-defined-options
477 This incorporates changes suggested by raphink.
479 It should be able to parse all of the following DHCP options now:
481 option name-service-search code 117 = array of unsigned integer 16;
482 option domain-search code 119 = string;
483 option sip-servers code 120 = string;
484 option classless-static-route code 121 = string;
485 option space cable-labs;
486 option cable-labs.tsp-primary-dhcp-server code 1 = ip-address;
487 option cable-labs.tsp-secondary-dhcp-server code 2 = ip-address;
488 option cable-labs.tsp-provisioning-server code 3 = string;
489 option cable-labs.tsp-as-backoff-retry code 4 = { unsigned integer 32, unsigned integer 32, unsigned integer 32 };
490 option cable-labs.tsp-ap-backoff-retry code 5 = { unsigned integer 32, unsigned integer 32, unsigned integer 32 };
491 option cable-labs.tsp-kerberos-realm-name code 6 = string;
492 option cable-labs.tsp-ticket-granting-server-utilization code 7 = boolean;
493 option cable-labs.tsp-provisioning-timer code 8 = unsigned integer 8;
494 option cable-labs-encapsulation code 122 = encapsulate cable-labs;
495 option tftp-server-address code 150 = array of ip-address;
496 option ip-telephone code 176 = string;
497 option wpad-url code 252 = text;
499 2014-03-06 Robert Drake <rdrake@direcpath.net>
501 dhcpd, add support for omapi-key statement
502 You can use this along with omapi-port to specify a secure way to talk
507 secret "base64string==";
510 omapi-key myspecialkey;
513 2014-03-06 Robert Drake <rdrake@direcpath.net>
515 dhcpd, add support for named groups
516 Things like group Special_users {
520 2014-03-04 Raphaël Pinson <raphael.pinson@camptocamp.com>
524 Desktop: Allow @ in keys (GH issue #92)
526 2014-03-03 KaMichael <KaMichael@users.noreply.github.com>
528 Group: Dropped nisentry (not valid here)
530 group: Testcase for NIS default
532 2014-03-03 KaMichael <KaMichael@gmail.com>
536 Update group.aug to parse NIS entries
538 2014-02-28 Raphaël Pinson <raphael.pinson@camptocamp.com>
542 2014-02-28 Pat Riehecky <riehecky@fnal.gov>
546 2014-02-25 Dominic Cleal <dcleal@redhat.com>
548 Krb5: permit braces in values when not in sub-section
551 2014-02-21 Dominic Cleal <dcleal@redhat.com>
553 Keepalived: add more virtual/real server settings and checks
556 2014-02-21 Raphaël Pinson <raphael.pinson@camptocamp.com>
558 NetworkManager: Use the Quote module, support # in values (no eol comments)
560 2014-02-20 Raphaël Pinson <raphael.pinson@camptocamp.com>
562 AptPreferences: Support spaces in origin fields
564 Remove mercurial legacy files
566 Sshd: Allow all types of issues in Match groups (GH issue #75)
570 Add cp to manpage (issue #78)
572 Update AUTHORS and NEWS
574 2014-02-20 Mykola Nikishov <mn@mn.com.ua>
576 Support configuration file for Squid 3
578 2014-02-12 Dominic Cleal <dcleal@redhat.com>
580 IPRoute2: handle "/" in protocol names, swap ID and name fields
581 This is an incompatible change.
585 2014-02-12 Dominic Cleal <dcleal@redhat.com>
587 IPRoute2: handle hex IDs and hyphens in names, as present in rt_dsfield
590 2014-02-10 Dominic Cleal <dcleal@redhat.com>
592 Shellvars: handle case statements with same-line ;; tokens
595 2014-02-08 Raphaël Pinson <raphael.pinson@camptocamp.com>
599 Fix release date for 1.2.0 in NEWS
603 2014-01-30 Miguel Armas <kuko@canarytek.com>
605 Grub: handle "foreground" option
608 2014-01-27 David Lutterkort <lutter@watzmann.net>
612 2014-01-27 Raphaël Pinson <raphink@gmail.com>
614 Update NEWS with span info in XML dump
616 2014-01-27 Dominic Cleal <dcleal@redhat.com>
618 Add %check to RPM spec, fix download URL
619 * augeas.spec.in: add %check to run `make check` during build, skipping
620 SELinux tests which don't work in a mock environment
622 Original %check patch from Richard Jones <rjones@redhat.com>
624 2014-01-27 Raphaël Pinson <raphink@gmail.com>
626 Add span info to XML dump
627 For a node, add span information for the label, value, and node overall if
628 it is present in the tree. The resulting XML looks like
630 <node label="..." file="..." path="...">
631 <span for="label" start="..." end="..."/>
632 <span for="value" start="..." end="..."/>
633 <span for="node" start="..." end="..."/>
637 2014-01-27 David Lutterkort <lutter@watzmann.net>
639 Rename build/aux to build/ac-aux
640 The directory name 'aux' is special on Windows, and using it keeps the
643 You will need to rerun autogen.sh after this change
645 2014-01-23 Raphaël Pinson <raphink@gmail.com>
649 Sshd: let all special keys be case-insensitive
653 Sshd: Support Ciphers and KexAlgorithms groups, GH issue #69
657 Grub: Add 'verbose' option, GH issue #73
661 Shellvars_list: Allow end-of-line values, bug #342
663 Fix xymonalerting into xymon_alerting in tests/Makefile.am
665 Add Xymon_Alerting lens to NEWS, update AUTHORS
667 Rename XymonAlerting lens as Xymon_Alerting
669 Fix NaturalDocs comments in XymonAlerting lens
671 2014-01-23 Francois Maillard <fmaillard@gmail.com>
673 Add NaturalDocs documentation to the xymonalerting lens and its tests
677 Add the test lens to the Makefile
679 New lens for xymon alerting rules
681 2014-01-23 Raphaël Pinson <raphink@gmail.com>
683 Update NEWS with Authorized_Keys change
685 2014-01-23 Jasper Lievisse Adriaanse <jasper@humppa.nl>
687 Allow 'ssh-ed25519' as a valid authorized_key type
689 2014-01-23 Raphaël Pinson <raphael.pinson@camptocamp.com>
691 Update NEWS and AUTHORS
693 2014-01-13 Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
695 Interfaces: map bond-slaves and bridge-ports options to arrays
696 This is a backwards incompatible change, as these would previously show up
697 as strings in the tree
699 2014-01-13 Tomas Klouda <tomas.klouda@gooddata.com>
701 Fix MongoDB Server lens - MongoDB doesn't accept quoted values
702 This lens worked for already defined values, but once you wanted to
703 add new value, it was created with quotes and MongoDB failed to start
705 2014-01-13 Dominic Cleal <dcleal@redhat.com>
707 Fix umask handling when creating new files
708 * src/transform.c (transform_save): faulty umask arithmetic would cause
709 overly-open file modes when the umask contains "7", as the umask was
710 incorrectly subtracted from the target file mode
712 Fixes CVE-2013-6412, RHBZ#1034261
714 2014-01-13 Freakin <brendanaye@gmail.com>
716 OpenVPN: additional config options
723 2014-01-13 David Lutterkort <lutter@watzmann.net>
725 * NEWS: describe Slapd changes in last few commits
727 2014-01-13 Raphaël Pinson <raphael.pinson@camptocamp.com>
729 Slapd: move by/who to the value of by
731 Slapd: Allow any allowed combination of who/access/control in by field
733 Slapd: support smart quotes in database entry
735 Slapd: remove duplicate entry in database_re
737 Slapd: rename by parameters
738 * Rename by/what as by/access (as per official doc)
739 * Allow access to be absent (as per official doc)
741 2014-01-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
743 Slapd: Add unit test for by/control
745 2013-12-18 Dominic Cleal <dcleal@redhat.com>
747 Shellvars, Sysconfig: map "bare" export and unset lines using seq to handle multiple variables
750 2013-12-18 Raphaël Pinson <raphael.pinson@camptocamp.com>
752 Shellvars.lns: Actually test continued lines and fix support
754 Shellvars.lns: add unit test for continued lines in double quoted values
756 2013-12-16 Dominic Cleal <dcleal@redhat.com>
758 Sysconfig: permit empty comments after comment lines
761 2013-12-05 Dominic Cleal <dcleal@redhat.com>
763 Shellvars: fix syntax error in filter
765 2013-12-04 David Lutterkort <lutter@watzmann.net>
767 Shellvars: exclude /etc/sysconfig/ip*tables.save files
769 2013-12-03 Raphaël Pinson <raphael.pinson@camptocamp.com>
771 Sudoers.lns: Allow uppercase characters in user names (ticket #376)
773 Build: Add combine_three_ord and combine_three
775 Build: Add combine_two_ord and combine_two
777 Yum.lns: split excludes as lists (ticket #275)
779 Build: Add combinatorics group
781 Yum.lns: simplify code for combinatory logic of list_entry elements
783 2013-12-02 Tomas Hoger <thoger@redhat.com>
785 Corrections for CVE-2012-0786 tests
786 - test-put-symlink-augsave.sh - variable $HOSTS_AUGNEW was used to check if
787 file was still symlink, while it wasn't set before. Fix to use
789 - test-put-symlink-augnew.sh, test-put-symlink-augsave.sh - 'test -f'
790 dereferences symlink and hence can not be used to check if file is regular
791 file or symlink to a regular file. Use 'test -h' instead.
793 2013-12-02 Tomas Hoger <thoger@redhat.com>
795 Correct locations table for transform_save()
796 Commit 16387744 introduced a table with locations of temporary, destination and
797 backup file in various modes as part of the comment for transform_save(). This
798 corrects two incorrectly listed temporary file locations.
800 Note that PATH_canon is somewhat misleading, as canonicalized path is always
801 used when not using NEWFILE save flag, while it is meant to indicate whether
802 file is created in a directory that contains symlink, or a directory that
803 contains symlink's target.
805 2013-12-02 Raphaël Pinson <raphael.pinson@camptocamp.com>
807 Desktop.lns: Support square brackets in keys
809 2013-11-19 Dominic Cleal <dcleal@redhat.com>
811 * src/transform.c (filter_matches): wrap fnmatch to ensure that an incl pattern containing "//" matches file paths
814 2013-11-09 Sean Millichamp <sean.millichamp@secure-24.com>
816 Enhance Nagiosobjects lens
817 This adds support and tests for three additional Nagios
819 - An optional space between the object name and the {
820 Example: "define host{"
821 - An optional indent prior to the closing }
823 - Whole-line comments that start with ;
824 Example: "; This is a comment"
826 It does not add support for end-of-line comments with ;
828 2013-11-09 Yanis Guenane <yguenane@gmail.com>
830 Dhcpd: support a wider variety of DHCP allow/deny/ignore statement
831 The Dhcpd.aug was missing a part of the allow/deny/ignore possible
832 statement. This commit updates the lense so it supports the list
833 of options available here
835 http://www.ipamworldwide.com/declarations-topological/declarations-allowdenyignore.html
837 Also this bug was preventing a Foreman user to parse the dhcpd.conf
838 generated by theforeman/dhcp puppet module
840 2013-11-09 Dominic Cleal <dcleal@redhat.com>
842 Yum: permit spaces after equals sign in list options
843 Fixes GitHub issue #45
845 2013-11-08 Matteo Cerutti <matteo.cerutti@hotmail.co.uk>
847 Sudoers: permit underscores in group names
850 2013-11-01 Andrew N Golovkov <a.golovkov@dwteam.ru>
852 include only *.repo files from yum.repos.d;
854 2013-10-24 Michael Haslgrübler <work-michael@haslgruebler.eu>
856 Use Quote module in dovecot
857 * use Quote.dquote_spaces for quoting
859 dovecot enchancement and bug fixes
860 * add mailbox to block_names
861 * fix for block_args in quotes
862 * fix for block's brackets upon write
863 * fixes broken tests for mailbox
865 * test case for block_args with "
866 * fixes broken indention
868 2013-10-17 Dominic Cleal <dcleal@redhat.com>
870 Shellvars_list: handle backtick variable assignments
873 2013-10-08 Yanis Guenane <yguenane@gmail.com>
877 2013-10-07 Dietmar Kling <baldur@email.de>
879 Cyrus_Imapd: create new entries without space before separator
882 2013-10-05 Dominic Cleal <dcleal@redhat.com>
884 Exports: permit colons for IPv6 client addresses
887 2013-09-20 Esteve Fernandez <esteve.fernandez@gmail.com>
889 Added dhclient.conf path for Debian/Ubuntu
891 2013-09-09 Yanis Guenane <yguenane@gmail.com>
893 Fix Trac#364. Syslog lense accept UDP(@) and TCP(@@) protocol
894 Currently the syslog lense only accept sending log to another host
895 via UDP - a single @ -, and was discarding TCP - a double @ -. This
900 Remove unused variable at
902 2013-09-07 Yanis Guenane <yguenane@gmail.com>
904 Fix NagiosCfg lense so /etc/nagios/nrpe.cfg is parsed by Nrpe and not NagiosCfg
905 Currently NagiosCfg lense is in charge of parsing all files under /etc/nagios/*.cfg
906 but /etc/nagios/commands.cfg. /etc/nagios/nrpe.cfg should be also added as an exception
907 since it needs to be parsed by the Nrpe lense. This issue currently causes the following
908 error : "Lenses @NagiosCfg and @Nrpe could be used to load this file"
910 2013-09-02 Dominic Cleal <dcleal@redhat.com>
912 * tests/test-load.c (testPermsErrorReported): skip permissions test when root
914 2013-08-27 Tom Hendrikx <tom@whyscream.net>
916 Postfix_virtual: allow '+' and '=' in email addresses
917 + ('plus') and = ('equals') are valid characters in email addresses.
918 Example is from postfix docs, see:
919 http://www.postfix.org/MULTI_INSTANCE_README.html#quick
921 2013-08-27 Raphaël Pinson <raphink@gmail.com>
923 Add aug_cp and the cp and copy commands
925 2013-08-27 Dominic Cleal <dcleal@redhat.com>
927 Grub: handle makeactive menu command
930 Postfix_Main: handle stray whitespace at end of multiline lines
933 2013-08-27 Pat Riehecky <riehecky@fnal.gov>
935 Koji: new lens to parse Koji configs
937 2013-08-27 Dominic Cleal <dcleal@redhat.com>
939 Access: support DOMAIN\user syntax for users and groups
942 Samba: permit asterisk in key name
945 Shellvars: support all types of quoted strings in arrays
946 Patch from webmeister. Fixes ticket #357.
948 2013-08-27 Pat Riehecky <prieheck@iwu.edu>
950 Yum: add yum-cron*.conf files
952 2013-08-27 Pascal Lalonde <plalonde@google.com>
954 Interfaces: allow numeric characters in stanza options
956 2013-08-27 David Lutterkort <lutter@watzmann.net>
958 Shellvars: read /etc/firewalld/firewalld.conf
959 Fixes https://fedorahosted.org/augeas/ticket/363
961 2013-08-27 Matthew Booth <mbooth@redhat.com>
963 Grub: support the 'lock' directive
965 Grub: NFC fix whitespace errors introduced by 4e09d15
968 Grub: support the 'setkey' directive
970 2013-08-27 Michael Wisheu <wisheu@google.com>
972 Interfaces: add /etc/network/interfaces.d/* as another commonly used location
974 2013-08-06 Raphaël Pinson <raphink@gmail.com>
978 Fix NaturalDocs comments in lenses
980 2013-08-06 Stephen P. Schaefer <sschaefer@acm.org>
982 Allow augeas to deal with one variant of /etc/sysconfig/network-scripts/route-*
984 2013-08-01 Raphaël Pinson <raphael.pinson@camptocamp.com>
988 Properties: Support multiline starting with an empty string, GH issue #19
990 Dhcpd: support conditionals, GH issue #34
994 PHP: Allow php-fpm syntax (GH issue #35)
996 2013-08-01 Patrick Adair <padair@he.net>
998 Interfaces: add in support for the source stanza in /etc/network/interfaces files
1000 2013-07-30 Dominic Cleal <dcleal@redhat.com>
1002 Simplevars: adopt /etc/selinux/semanage.conf due to spaces around delimiters
1004 2013-07-30 Michael Scherer <misc@zarb.org>
1006 Shellvars: add /etc/selinux/semanage.conf
1008 2013-07-30 Raphaël Pinson <raphael.pinson@camptocamp.com>
1010 Start new NEWS section
1012 Fix documentation links in c_api naturaldocs menu
1014 2013-07-24 Raphaël Pinson <raphael.pinson@camptocamp.com>
1016 Sshd: also indent comments by 2 spaces by default in Match groups
1018 Sshd: Indent Match entries by 2 spaces by default
1020 2013-06-27 Jan Vansteenkiste <jan@vstone.eu>
1022 Fixes #27: Automounter lens does not handle hostnames with dashes in them
1024 2013-06-24 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1028 2013-06-14 David Lutterkort <lutter@watzmann.net>
1032 Make tree_unlink safer to use
1033 tree_unlink used to only remove nodes from the tree, leaving the
1034 possibilities of dangling references from variables stored in the
1035 symtab. The new incarnation is safer in that it cleans up the symtab first.
1037 2013-06-14 David Lutterkort <lutter@watzmann.net>
1039 Do not interpret file names as path exprs during load
1040 We used to interpret file names as path expressions at various points in
1041 the process of loading the tree. That lead to nasty failures if the file
1042 names contained characters that have a special meaning in path expressions,
1045 When the loading code now creates nodes or looks them up based on filenames
1046 (e.g. to create the file's top level node in /files or the info node in
1047 /augeas/files), we now use tree_fpath/tree_fpath_cr to do that.
1049 The workaround introduced into shellvars.aug to fix tiecket #246 is also no
1052 Fixes https://fedorahosted.org/augeas/ticket/343
1053 Fixes https://fedorahosted.org/augeas/ticket/333
1054 Improves on the fix for https://fedorahosted.org/augeas/ticket/246
1056 2013-06-14 David Lutterkort <lutter@watzmann.net>
1058 * src/transform.c (xfm_error): do not segfault when msg is NULL
1060 * src/try: make 'try gdb' work with emacs-24 and gdb-7.5.1
1062 2013-06-11 David Lutterkort <lutter@watzmann.net>
1064 LVM: fix handling of quoted strings that contain quotes
1065 Fixes https://github.com/hercules-team/augeas-do-not-use/issues/28 reported
1068 2013-06-11 Erik B. Andersen <erik.b.andersen@gmail.com>
1070 AptCacherNGSecurity: new lens for /etc/apt-cacher-ng/security.conf
1072 2013-06-11 brian redbeard <brian@dead-city.org>
1074 Added node config for OpenShift
1075 When the intial lens was developed there was a missing transform
1076 on /etc/openshift/node.conf
1078 This is a fix for bug hercules-team/augeas#22
1080 2013-06-04 David Lutterkort <lutter@watzmann.net>
1082 Xorg: allow 'Screen' in Device section
1085 Fixes bug https://fedorahosted.org/augeas/ticket/344
1087 2013-06-03 David Lutterkort <lutter@watzmann.net>
1089 Xorg: support extmod section
1092 Partial fix for https://fedorahosted.org/augeas/ticket/344
1094 2013-05-30 Raphaël Pinson <raphael.pinson@camptocamp.com>
1096 Yum: optimize regexp substractions
1098 Nrpe: optimize regexp substractions
1100 Mdadm_Conf: optimize regexp substractions
1102 Fai_Diskconfig: Optimize regexp substractions
1104 Shellvars: Optimize regexp substraction
1106 2013-05-28 Dominic Cleal <dcleal@redhat.com>
1108 Automaster: accept spaces between options
1110 2013-05-24 Raphaël Pinson <raphael.pinson@camptocamp.com>
1114 Add Rob Tucker to AUTHORS
1116 Add README as a symlink to README.md to make autogen relax
1118 2013-05-24 Rob Tucker <rtucker11@gmail.com>
1120 Added augeas lens and test for the asterisk sip.conf file
1122 2013-05-22 Raphaël Pinson <raphael.pinson@camptocamp.com>
1124 postfix_master: Allow [] in words (ticket #345)
1126 2013-05-17 David Lutterkort <github@watzmann.net>
1129 Reformat as GH-flavored markdown; add a License section
1131 Rename README to README.md
1133 2013-05-17 David Lutterkort <lutter@watzmann.net>
1135 * tests/test-run.c (load_module): do not downcase the lensdir
1136 We should not touch the lensdir, since it is user provided; we only want to
1137 downcase the module name.
1139 Patch by aponomarenko
1143 2013-05-17 Raphaël Pinson <raphael.pinson@camptocamp.com>
1145 Add --echo alias to augtool manpage
1147 Add -t option to augtool manpage
1149 2013-05-17 Enrico Stahn <mail@enricostahn.com>
1153 2013-05-16 Francis Giraldeau <francis.giraldeau@gmail.com>
1156 Lens to parse Splunk configuration. Based on IniFile lens, with few differences:
1158 * Accepts empty value in entry
1159 * Entries without parent section are children of .anon node
1161 Thanks to Tim Brigham for this contribution.
1163 2013-05-16 Francis Giraldeau <francis.giraldeau@gmail.com>
1165 Add CR as a white space char in RX.space_in
1166 CR is used in the IniFile lens as of EOL. To avoid concat ambig between
1167 IniFile.store_to_eol and IniFile.eol, CR has to be added to Rx.space_in. This
1168 change do not break any existing lens in the repository.
1170 2013-05-16 Davide Guerri <davide.guerri@gmail.com>
1172 adds support for iptoute2 configuration files (/etc/iproute2/*)
1174 2013-05-16 Simon Vocella <voxsim@gmail.com>
1176 JaaS: lens for the Java Authentication and Authorization Service
1178 2013-05-15 David Lutterkort <lutter@redhat.com>
1180 Function composition: fix the typing of the generated lambda
1181 When f and g are functions, 'f ; g' gets translated into
1184 The resulting function wasn't typed right, which led to an internal error.
1188 2013-05-08 Raphaël Pinson <raphink@gmail.com>
1192 2013-05-08 Brian Harrington <bharrington@redhat.com>
1194 Added support for OpenShift
1195 Added a series of lenses to support the corresponding configuration
1196 formats including conf, JSON, & HTTP.
1198 2013-05-08 Brian Harrington <bharrington@redhat.com>
1200 Add support for MongoDB Server
1201 A basic lens and test to support the configuration of MongoDB
1203 Added infrastructure components for MongoDB
1205 Included references to MongoDBServer to handle the auto testing of
1206 lenses on build & mention of lens in for autodoc generation.
1208 fixes hercules-team/augeas/#25
1210 Improved documentation on MongoDBServer filter
1212 Added improved reference and usage information for the lens
1214 Mistyped port path in MongoDBServer lens usage
1216 The port component was missing from the set command
1218 fixes herclues/team-augeas/#25
1220 2013-05-08 Brian Harrington <bharrington@redhat.com>
1222 Added support for ActiveMQ / Red Hat JBoss A-MQ
1223 Added a series of lenses to support the file formats utilized with
1224 the project ActiveMQ / Red Hat JBoss A-MQ.
1226 ActiveMQ is a standards-based, open source messaging platform
1227 shipped by Red Hat (Formerly Fuse Source).
1229 http://activemq.apache.org/
1230 http://www.redhat.com/products/jbossenterprisemiddleware/amq/
1232 2013-04-30 Mathieu Alorent <malorent@kumy.net>
1235 add other flags, and use regexp to check
1237 2013-04-30 Mathieu Alorent <malorent@kumy.net>
1239 implement Downtime feature
1240 As seen in this thread, there is a downtime feature that is not
1243 http://lists.xymon.com/archive/2011-March/030998.html
1245 2013-04-20 Dominic Cleal <dcleal@redhat.com>
1247 Rsyslog: support :omusrmsg: list of users in actions
1249 2013-04-15 Raphaël Pinson <raphael.pinson@camptocamp.com>
1251 Passwd: allow period in user names in spec (fixes #337)
1253 Passwd: allow overrides in nisentry
1255 2013-03-31 Gonzalo Servat <gservat@gmail.com>
1257 Nrpe: accept any config option, remove predefined list
1259 2013-03-30 Branan Purvine-Riley <branan@puppetlabs.com>
1261 Add support for port ranges to /etc/services lens
1262 The `/etc/services` file on AIX can contain entries with ranges of ports. This change allows Augeas to parse such files.
1264 Example from an AIX /etc/services file:
1265 x11 6000-6063/tcp # X Window System
1266 x11 6000-6063/udp # X Window System
1268 2013-03-21 Dominic Cleal <dcleal@redhat.com>
1270 Shellvars: reinstate /etc/sysconfig/network
1271 Fixes #330, RHBZ#904222, RHBZ#920609
1273 2013-03-14 Gabriel <g2p.code@gmail.com>
1275 Add some autodoc comments.
1277 Add a lens for LVM metadata.
1279 2013-03-11 Raphaël Pinson <raphael.pinson@camptocamp.com>
1283 2013-03-11 Serge Smetana <smetana@pluron.com>
1285 Added lens for Dovecot config files
1287 2013-03-01 Dominic Cleal <dcleal@redhat.com>
1289 * src/augtool.c (usage): fix spelling error
1291 2013-02-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
1293 Krb5: Improve performances
1295 2013-02-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
1297 IniFile: Support dos eol
1298 Subversion: Support dos eol
1299 Desktop: Support dos eol
1300 MySQL: Support dos eol
1301 Samba: Support dos eol
1302 Yum: Support dos eol
1303 Krb5: Support dos eol
1305 IniFile: Add empty_generic_nocomment
1306 Rx: make no_spaces compatible with doseol
1307 Schroot: Use empty_generic_nocomment
1309 2013-02-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
1311 IniFile: Allow quotes inside bare values
1313 IniFile: Multiline values can begin with a single newline
1315 IniFile: Add empty_generic and empty_noindent
1316 Subversion: Use IniFile.empty_noindent
1318 IniFile: Add entry_generic and entry_multiline_generic
1319 Subversion: Use IniFile.entry_multiline_generic
1321 IniFile: Allow spaces in entry_multiline* values
1323 2013-02-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
1325 IniFile: Use Util.comment_generic and Util.empty
1326 Add put test for ace
1328 Lightdm: empty comments are mapped as empty
1329 PHP: empty comments are mapped as empty
1330 Odbc: empty comments are mapped as empty
1331 Samba: empty comments are mapped as empty
1332 Krb5: Fix tests for new IniFile.empty
1333 MySQL: Support smart quotes and empty comments
1334 Yum: Use Util.empty instead of IniFile.empty
1335 Subversion: Adapt to new IniFile.empty definition
1336 Systemd: Fix tests for new IniFile.empty
1338 2013-02-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
1340 IniFile: Support smart quotes
1341 Add support for smart quotes in IniFile lenses.
1342 Fix PHP lens to support smart quotes.
1343 Subversion: Adapt to smart quotes but allow ; in values
1344 Schroot: Support smart quotes
1346 IniFile: Add ready-to-use lns_loose and lns_loose_multiline lenses
1348 2013-02-06 Andrew Anderson <andrew@lirn.net>
1350 Krb5: fix parse error with IPA generated krb5.conf
1352 2013-02-06 Igor Pashev <pashev.igor@gmail.com>
1354 * configure.ac: better detection of how to pass version script to linker
1355 This now also works on Illumos when using GNU ld
1357 Fixes https://fedorahosted.org/augeas/ticket/289
1359 2013-02-06 Jan Pokorný <jpokorny@redhat.com>
1361 lenses.tex: fix typos, single-quote cleanup
1363 2013-01-23 Dominic Cleal <dcleal@redhat.com>
1365 Shellvars: ignore network configs with brackets in their name
1366 SSIDs containing brackets would cause aug_init failures, as the characters are
1367 parsed in path expressions.
1371 2013-01-23 David Lutterkort <lutter@redhat.com>
1373 augparse: add --trace option
1374 Using --trace will print the filenames of all modules that are loaded.
1376 Shellvars: ignore network configs with ! in their name
1377 NetworkManager would write such files, but that leads to problems during
1378 aug_init, as the attempt to create the node
1379 /augeas/files/etc/sysconfig/network-scripts/FILE!NAME will fail as that is
1380 not a valid path expression
1382 * .gitignore: ignore test result files (*.trs)
1384 * acinclude.m4: only turn on FORTIFY_SOURCE if it won't anger gcc
1385 Following libvirt commits cf9bced0 and 1c2edf0f
1387 2013-01-10 Raphaël Pinson <raphael.pinson@camptocamp.com>
1389 Quote: Allow multiple spaces in quote_spaces
1391 2013-01-10 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1393 Add two files found on OpenBSD to the simplevars lens.
1395 2013-01-08 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1397 The nagios filters work for Icinga too
1399 Modify the Nagios lens to handle resources.cfg too.
1402 2013-01-04 Raphaël Pinson <raphael.pinson@camptocamp.com>
1404 AptPreferences: adjust a little bit to simplified lens
1406 AptPreferences: Simplify/Standardize the module
1408 2013-01-04 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1410 Make sure the usage shows up properly formated.
1412 sync another comment with ND definition
1414 Sync View comment with actual definition.
1416 Properly document this lens.
1418 Basic documentation for final apt lenses and sync Menu.txt
1420 regen Menu.txt after recent changes.
1422 Move the 'coding' comment to the end of the file to fix the menu entry.
1424 Fix some more broken module names
1426 Small fixes to improve documentation:
1427 - Declare a module name in test_yum, so that gets taken instead of Yum.lns
1428 - Filter is a view, not a variable in ntpd.aug
1429 - Properly declare the module name nginx.aug
1431 Correctly set the module name, and let it actually test the Lightdm lens.
1433 2013-01-04 David Lutterkort <lutter@redhat.com>
1435 Xml test (input1): modify to mildly check handling DOS line endings
1437 2013-01-04 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1439 Add support for handling the "client-output-buffer-limit" to the Redis lens.
1441 2013-01-03 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1443 Some small Rx tweaks: include regexes for octal and hex and simplify ipv4 matching.
1446 Add a lens for OpenNTPD's config file (ntpd.conf).
1447 Extend rx.aug with some helpful regexes while here.
1450 Adjust the fonts lens' exclusion rule to ignore all README files
1453 2013-01-03 Raphaël Pinson <raphael.pinson@camptocamp.com>
1455 Quote: improve lens usage
1459 Quote: Improve documentation for functions
1463 2013-01-03 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1465 Also handle /etc/monitrc
1468 2013-01-03 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1470 Remove bogus use of Util.stdexcl.
1471 It should only be used for wildcard includes.
1472 Add an exclude to Util.stdexcl for "#*#" while here.
1476 2013-01-03 Raphaël Pinson <raphael.pinson@camptocamp.com>
1478 Erlang and Quote are generic lenses
1480 2013-01-02 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1482 Add a new lens for OpenBSD's /etc/boot.conf.
1485 2013-01-02 Raphaël Pinson <raphael.pinson@camptocamp.com>
1487 Networks: networks can have weird submasks, too
1489 Sysctl: exclude /etc/sysctl.d/README.sysctl
1491 Sudoers: Allow user aliases in specs
1493 Systemd: Allow backslashes inside values
1495 Systemd: Simplify expression
1497 Systemd: Don't use multiple negates in regexps
1499 2012-12-30 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1501 * tests/cutest.c: include sys/wait.h for WIFEXITED and WEXITSTATUS.
1504 2012-12-30 Dominic Cleal <dcleal@redhat.com>
1506 Inetd: support IPv6 addresses
1509 2012-12-30 Jasper Lievisse Adriaanse <jasper@humppa.nl>
1511 Shellvars: parse /etc/rc.conf.local which is found on OpenBSD.
1514 Dhclient: on OpenBSD dhclient.conf lives in /etc/dhclient.conf
1517 Resolv: Add two new views (family and lookup)
1520 2012-12-29 Dominic Cleal <dcleal@redhat.com>
1522 * src/augrun.c: fix spelling in defnode help
1524 2012-12-28 Raphaël Pinson <raphael.pinson@camptocamp.com>
1526 AptPreferences: Add "n" to pin keys
1528 2012-12-23 Dominic Cleal <dcleal@redhat.com>
1530 Xinetd: handle missing values in lists
1533 2012-12-22 Dominic Cleal <dcleal@redhat.com>
1535 Update NEWS and AUTHORS
1537 2012-12-21 David Lutterkort <lutter@redhat.com>
1541 2012-12-21 Dominic Cleal <dcleal@redhat.com>
1543 Krb5: support semicolon comments, allow empty lines within subsections
1546 2012-12-21 Pat Riehecky <riehecky@fnal.gov>
1548 Krb5: support host { } subsections inside v4_name_convert, handle multiple arguments to *_enctypes settings, support ticket_lifetime
1549 Contains a minor incompatible lens change for permitted_enctypes,
1550 default_tgs_enctypes and default_tkt_enctypes settings, where labels are now
1555 2012-12-21 Raphaël Pinson <raphael.pinson@camptocamp.com>
1557 Update NEWS and AUTHORS
1559 Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/nginx
1561 Add Nginx lens to parse /etc/nginx/nginx.conf, bug #319
1563 2012-12-21 David Lutterkort <lutter@redhat.com>
1565 * src/Makefile.am: add $(top_builddir)/gnulib/lib to GNULIB_CFLAGS
1566 Needed for building under IllumOS
1568 Fixes https://fedorahosted.org/augeas/ticket/270
1570 2012-12-19 Matthaus Owens <matthaus@puppetlabs.com>
1572 Add /etc/puppetlabs/puppet path to puppet lenses
1573 In Puppet Enterprise, puppet is rooted in /etc/puppetlabs/puppet instead of
1574 /etc/puppet, so that is also a valid location for puppet.conf, fileserver.conf,
1575 and auth.conf. This commit also adds /usr/local/etc/puppet/auth.conf as a
1576 filter for the puppet auth lens.
1578 2012-12-17 Marc Fournier <marc.fournier@camptocamp.com>
1580 Redis: new lens and tests
1582 2012-12-17 Raphaël Pinson <raphael.pinson@camptocamp.com>
1584 Quote: Add tests for *_nil entries
1586 2012-12-17 Marc Fournier <marc.fournier@camptocamp.com>
1588 Add Quote.*quote_opt_nil variables and functions
1589 ... which are exactly the same as Quote.*quote_opt, except they don't
1590 set quotes by default.
1592 This patch also completes a couple of existing comments.
1594 2012-12-17 Marc Fournier <marc.fournier@camptocamp.com>
1596 augeas.vim: added a couple of keywords recently introduced.
1598 2012-12-17 Raphaël Pinson <raphael.pinson@camptocamp.com>
1600 Dhcpd: force double quotes for filename attribute, bug #311
1602 2012-12-16 Marc Fournier <marc.fournier@camptocamp.com>
1604 Postgresql: properly support quotes
1607 2012-12-14 Raphaël Pinson <raphael.pinson@camptocamp.com>
1609 Postfix_Transport: allow host:port and [host]:port syntaxes, bug #303
1611 Really test Avahi.lns in test_avahi.aug
1615 2012-12-14 Athir Nuaimi <athir@nuaimi.com>
1617 Add new Avahi lens to manage /etc/avahi/avahi-daemon.conf
1619 2012-12-14 Raphaël Pinson <raphael.pinson@camptocamp.com>
1621 Merge branch 'trac#281' of git://github.com/mfournier/augeas into review/pr4
1623 2012-12-14 Marc Fournier <marc.fournier@camptocamp.com>
1625 Add a path to pg_hba.aug, fixes Trac ticket #281.
1627 Htpasswd: new lens and tests
1629 2012-12-13 Raphaël Pinson <raphael.pinson@camptocamp.com>
1633 src/augtool.c: honor --echo in run_args
1635 src/augtool.c: print_aug_error when run_args fails
1637 src/augtool.c: run_args is successful if code >= 0, bug #316
1639 2012-12-12 Raphaël Pinson <raphael.pinson@camptocamp.com>
1643 Prepare NEWS for 1.0 release
1645 Add Quote.dquote_spaces and Quote.squote_spaces
1647 Use Quote.quote_spaces in pg_hba.aug
1649 Add Quote.quote_spaces
1651 Automagically manage quotes in pg_hba.aug
1653 2012-12-11 Raphaël Pinson <raphael.pinson@camptocamp.com>
1655 pg_hba.aug: Support multiple options (ticket #313)
1657 Add test for ticket 313
1659 pg_hba.aug: fix method to avoid clashing with hostname
1661 2012-12-11 Andreas Ntaflos <daff@pseudoterminal.org>
1663 Support hostnames/FQDNs and FQDN suffixes in pg_hba.conf
1664 In pg_hba.conf the "address" column may also be a hostname, FQDN or part
1665 of an FQDN starting with a dot, in addition to IP addresses. This adds
1666 support for such hostnames and hostname suffixes.
1668 2012-12-09 Raphaël Pinson <raphael.pinson@camptocamp.com>
1670 Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/shellvars_newlines
1672 2012-12-09 Dominic Cleal <dcleal@redhat.com>
1674 Shellvars: add locale.conf, vconsole.conf systemd configs
1677 2012-12-09 Raphaël Pinson <raphael.pinson@camptocamp.com>
1679 Fix support for empty comments after comments
1681 shellvars.aug: Fix newlines after comments being mapped as Util.empty
1683 2012-12-06 Dominic Cleal <dcleal@redhat.com>
1685 Shellvars: add locale.conf, vconsole.conf systemd configs
1688 2012-12-03 Raphaël Pinson <raphael.pinson@camptocamp.com>
1692 2012-11-29 Raphaël Pinson <raphael.pinson@camptocamp.com>
1694 No need for comment in rabbitmq.aug (managed in erlang.aug)
1696 Support comments in erlang.aug and rabbitmq.aug
1698 2012-11-28 Raphaël Pinson <raphael.pinson@camptocamp.com>
1704 2012-11-22 Raphaël Pinson <raphael.pinson@camptocamp.com>
1706 Add /etc/audit/auditd.conf to simplevars.aug
1708 2012-11-20 Domen Kožar <domen@dev.si>
1710 correctly parse escaped string literals in vim syntax file
1712 2012-11-20 Francois Lebel <francoislebel@gmail.com>
1714 Add a lens for logwatch.
1716 2012-11-20 Raphaël Pinson <raphael.pinson@camptocamp.com>
1718 Add tests for regexp builtin with flag
1720 Add support for an 'i' flag in regexp builtin function
1722 2012-11-20 David Lutterkort <lutter@redhat.com>
1724 * src/pathx.c: pass the number of actual arguments to the func implementation
1726 * src/pathx.c: match functions by name and arity
1727 This makes it possible to have different numbers of arguments for the same
1728 function, e.g. count() and count(nodeset)
1730 * src/pathx.c: disallow ',' in names in path expressions
1731 Note that this breaks backwards compatibility, since, when searching for a
1732 node 'a,b' you now must write "match a\,b" rather than "match a,b"
1734 2012-11-14 Raphaël Pinson <raphael.pinson@camptocamp.com>
1736 Add Puppet_Auth lens
1738 2012-11-09 Raphaël Pinson <raphael.pinson@camptocamp.com>
1740 Add aug_label to retrieve the label from a path.
1742 2012-11-09 David Lutterkort <lutter@redhat.com>
1744 Sysconfig: handle end of line comments and semicolons; strip quotes
1747 square lens: correctly process skeletons during put
1748 The current code would identify a L_SQUARE skeleton to match even when it
1749 did not, meaning we would not trigger a create in all instances where it
1752 Shellvars: add tests for semicolon handling
1754 * lenses/tests/test_sysconfig.aug: use a variable 'lns' for Sysconfig.lns
1756 * lenses/tests/test_sysconfig.aug: use a variable 'lns' for Shellvars.lns
1758 * tests/Makefile.am (lens_tests): add quote test
1760 2012-10-29 Raphaël Pinson <raphael.pinson@camptocamp.com>
1762 Use the Quote module in dhcpd.aug
1764 Use the Quote module in openvpn.aug
1766 Add quote.aug to easily manage quotes
1768 2012-10-27 Raphaël Pinson <raphael.pinson@camptocamp.com>
1770 vmware_config: use square lens to manage quotes
1772 2012-10-26 David Lutterkort <lutter@redhat.com>
1774 square: properly handle first lens matching empty string
1775 The rewriting of the ctype of (square l1 l2 l3) introduced in commit
1776 1484afc3 was not correct when the ctype of l1 matched the empty string: the
1777 rewritten ctype did not match the empty string any more.
1779 This patch fixes that by making sure that fa_enumerate includes the empty
1780 word if the language contains it.
1782 2012-10-26 Marc Fournier <marc.fournier@camptocamp.com>
1784 improved documentation for carbon/mcollective/memcached/thttpd lenses.
1786 2012-10-26 Raphaël Pinson <raphael.pinson@camptocamp.com>
1788 VMware_Config accepts values without quotes
1790 2012-10-23 Francis Giraldeau <francis.giraldeau@gmail.com>
1792 Xml: support single _and_ double quoted attribute values
1796 2012-10-23 David Lutterkort <lutter@redhat.com>
1798 Use precise ctype of a square lens if it is indeed regular
1800 libfa (fa_enumerate): new function
1801 Function to enumerate FA's with a finite language, given a preset limit of
1804 * src/syntax.c (compile_test): print which test failed when missing exception
1805 Tests which should produce an exception, but produce a regular value didn't
1806 print their line info when they failed.
1808 * tests/modules/fail_shadow_union.aug: fix unintended test failure
1810 2012-10-19 David Lutterkort <lutter@redhat.com>
1812 Gdm: also read /etc/gdm/custom.conf by default
1814 2012-10-19 Filip Andres <filip.andres@gooddata.com>
1816 cgconfig.aug adds space between group and id
1818 2012-10-19 David Lutterkort <lutter@redhat.com>
1820 Lightdm: new lens and tests
1822 Contributed by David Salmen
1824 2012-10-19 jmccann <jacob.m.mccann@usps.gov>
1826 Ntp: add tos directive
1829 2012-10-19 David Lutterkort <lutter@redhat.com>
1831 Phpvars: support classes and public/var values
1836 2012-10-19 Marc Fournier <marc.fournier@camptocamp.com>
1838 Memcached: new lens and tests
1840 Thttpd: new lens and tests
1842 Carbon: new lens and tests for Carbon cache.
1844 MCollective: new lens and tests
1846 2012-09-24 Dominic Cleal <dcleal@redhat.com>
1848 Revert f04d7dfb3fe7c54b0be650e68aa7778eaf02ea66
1849 This was a subtle feature which uses counters named after the setting key to
1850 index the values beneath it, over all instances of the setting key. This allows
1851 for path expressions such as /files/etc/ssh/sshd/AllowEnv/10 to map to the
1852 tenth value, irrespective of how many setting lines they are split over.
1854 Modprobe: revert inner lens name change, fixes Modules_conf
1855 Modules: define own entry regexp as referenced Modprobe inner lens doesn't
1858 2012-09-21 Dominic Cleal <dcleal@redhat.com>
1860 Modprobe: support multiline split commands
1861 Fixes Ubuntu bug #1054306
1863 2012-09-17 Dominic Cleal <dcleal@redhat.com>
1865 Sshd: reset seq counter for each array setting
1867 2012-09-13 Raphaël Pinson <raphael.pinson@camptocamp.com>
1871 Capital letters are allowed in tokens in syslog.aug
1873 Add collectd.aug and associated test
1875 2012-09-10 Raphaël Pinson <raphael.pinson@camptocamp.com>
1877 Add postfix_virtual.aug and associated test
1879 Remove /etc/postfix/virtual from postfix_transport.aug
1881 2012-09-04 Dominic Cleal <dcleal@redhat.com>
1883 Sshd: permit hyphens in subsystem names
1885 2012-09-03 Raphaël Pinson <raphael.pinson@camptocamp.com>
1887 Add apt_update_manager.aug and test
1889 Add vmware_config.aug and test
1891 Allow empty lines in gtkbookmarks.aug
1893 Use label instead of seq in gtkbookmarks.aug
1895 Add gtkbookmarks.aug and test
1897 2012-08-27 Pat Riehecky <riehecky@fnal.gov>
1899 Cachefilesd: new lens for /etc/cachefilesd.conf
1901 2012-08-23 jmccann <jacob.m.mccann@usps.gov>
1903 fixes #278 multipath: allow devices to override defaults
1905 2012-08-22 Michal Filka <mfilka@suse.cz>
1907 Fixed logrotate.aug.
1908 Logrotate accepts integers prefixed by a sign. Added real world
1909 ntp config file example from SLES into test_logrotate.aug.
1911 2012-08-21 Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>
1913 Add a lens for Cyrus IMAP configuration file /etc/imapd.conf (includes /etc/imap/*.conf)
1916 2012-08-14 Francis Giraldeau <francis.giraldeau@gmail.com>
1918 Generic square lens v4
1919 Lens square now takes lenses instead of regular expressions as arguments, as follow:
1921 square left body right
1923 The left and right lenses must accept the same language. The left lens can be
1924 either key or del, while the right lens must be del.
1926 This patch changes the semantic of the square lens and is thus not backward
1927 compatible. Modules must be updated accordingly. The definition of the square
1928 lens should now be definitive, and later addition may add support for
1929 additionnal lenses for left and right sides.
1931 * builtin.c: change definition of the square lens.
1932 * get.c: use the AST to recover the left and right strings matched by the
1933 square lens.Regular lenses are handled with regexp registers.
1934 * put.c: the variable state->override is used to indicate to a del part of a
1935 square lens that it should use the provided value instead of the saved
1936 string in the skel or the default value.
1937 * lens.c: change the lns_make_square to match the new structure.
1939 Update square lens test to use lens arguments instead of regexp. The change
1940 consists to replace "square re lens" into "square right lens left", where right
1941 and left are lenses. Hence, legacy lens is converted this way:
1944 let x = square re body
1948 let right = key re in
1949 let left = del re "" in
1950 square right body left
1952 This patch splits pass_square.aug into regular and recursive tests. Other tests
1953 are added to verify constraints on the square lens arguments and typechecking.
1955 Finally, this patch updates httpd and xml lens according to square args
1958 * protect arg with parenthesis in child_first and child_last macros
1959 * drop flag in_square, avoid lens copy, drop square_left/right strings
1960 replaced by ast for rec lens and regs for regular lens. This
1961 processing is more general than the previous approach, and thus
1962 will help to extends the square lens more in the future.
1964 * Split the patch into smaller units
1966 * Rejoin patches to avoid breaking make check
1968 2012-08-14 Francis Giraldeau <francis.giraldeau@gmail.com>
1970 Build AST while visiting the parse v2
1971 The AST records the structure of the parse according to the lens tree. The
1972 indices of the text matched is recorded for later use.
1975 * Additional checks for correctness
1976 * Create the root node in rec_process()
1977 * Merge ast_add_child() and ast_append()
1979 2012-08-14 Francis Giraldeau <francis.giraldeau@gmail.com>
1981 Fix memory leak in dbg_visit
1982 dbg_visit() calls format_lens() to display the lens information. The caller of
1983 format_lens() must free the memory allocated, just do it.
1985 Ignore Eclipse settings directory
1987 2012-08-12 Dominic Cleal <dcleal@redhat.com>
1989 Simplevars: use to parse /etc/default/grub_installdevice
1992 Hosts_Access: add hosts_options(5) support
1995 2012-08-12 Dominic Cleal <dcleal@redhat.com>
1997 Hosts_Access: permit more client list formats
1998 * whitespace separated lists
2000 * IPv6 hosts, inc. zone indices
2001 * paths to lists of clients
2004 Mostly fixes ticket #256
2006 2012-08-11 Dominic Cleal <dcleal@redhat.com>
2008 Fix regression in permissions of created files
2009 Commit 16387744 changed temporary file creation to use mkstemp, resulting in
2010 new files being created with 0600 permissions. For brand new files created
2011 through Augeas, their permissions stayed at 0600 rather than being set by the
2014 * src/transform.c (transform_save): chmod after creating new files to
2015 permissions implied by the umask
2017 2012-08-11 Dominic Cleal <dcleal@redhat.com>
2019 Fix issues reported by clang static analyser
2020 * src/transform.c (text_retrieve): initialise variable before use
2021 * src/transform.c (filter_generate): remove duplicate variable assignment
2022 * src/jmt.c (parse_add_item): ensure return is defined on goto error
2024 Fix augtool --transform documentation
2025 * src/augtool.c (usage): -t syntax is now same as 'transform' command
2026 * src/augrun.c (cmd_transform_def): improve description
2028 Arrange commands into groups for better help
2029 * src/augrun.c: create group definitions, move commands into arrays per
2030 group, update help output to iterate over and announce each group
2032 Ldif: new lens to read LDIF files per RFC2849
2034 * src/augtool.c (add_transforms): move free() to prevent free(NULL) and run on each iteration
2036 2012-08-10 Raphaël Pinson <raphael.pinson@camptocamp.com>
2038 Add a way to specify explict transforms
2039 Allow specifying transforms in three different ways:
2040 - an aug_transform API call
2041 - a transform command for aug_srun
2042 - a -t|--transform option to augtool
2044 2012-08-10 David Lutterkort <lutter@redhat.com>
2046 * src/augeas.c: use constants for "lens", "incl" and "excl"
2048 2012-08-10 Francis Giraldeau <francis.giraldeau@gmail.com>
2050 Fix typo in previous commit
2051 Adjust comment and remove duplicated test case for primary statement in
2054 Fix bug #293 primary statement in dhcpd.conf
2055 The "primary" statement does not support any arguments, while it should when
2056 it's used in the "zone" block statement. The solution is to add the primary
2057 statement in the statements that requires a string argument. The primary
2058 statement can thus take a value or not, and thus do not cause any ambiguity in
2061 2012-08-08 Raphaël Pinson <raphael.pinson@camptocamp.com>
2063 Add entry_list and entry_list_nocomment to inifile.aug Use entry_list_nocomment in subversion.aug
2065 2012-08-07 Raphaël Pinson <raphael.pinson@camptocamp.com>
2067 Add aug_rename to rename node labels without moving them in the tree.
2069 2012-08-07 Francis Giraldeau <francis.giraldeau@gmail.com>
2071 Escape double quotes when dumping regexp
2072 Graphviz DOT is using double quotes to quotes the string of a label. Escape
2073 double quotes to avoid parsing errors with graphviz when the regexp of the lens
2074 includes double quotes.
2076 2012-08-02 Raphaël Pinson <raphael.pinson@camptocamp.com>
2078 Update doc/naturaldocs/conf/lenses/Menu.txt
2080 2012-08-01 Raphaël Pinson <raphael.pinson@camptocamp.com>
2082 Update email address for Raphaël Pinson in AUTHORS
2084 2012-07-31 Raphaël Pinson <raphael.pinson@camptocamp.com>
2086 Make get_square case insensitive on the ending key.
2088 2012-07-29 Dominic Cleal <dcleal@redhat.com>
2090 * src/augrun.c (cmd_retrieve_help): tidy line wrapping
2092 NetworkManager: support semicolons in values, spaces and brackets in entry names
2094 * src/transform.c (xread_file): catch failed fopen, e.g. EACCES
2096 Fix Valgrind memcheck errors
2097 * src/augtool.c (main_loop): free memory allocated by readline
2098 * src/augrun.c (aug_srun): free command opts after use
2100 2012-07-27 Raphaël Pinson <raphael.pinson@camptocamp.com>
2102 Notify #augeas channel
2104 Add valgrind test in .travis.yml
2108 Shellvars.aug fix empty comments
2110 Shellvars.aug: Allow double quotes around variables in case statements
2112 Shellvars.aug: Add shift and exit builtins, with optional args
2114 Shellvars.aug: Fix empty lines after comments
2116 Shellvars.aug: Support matching keys in var_action (ticket #290)
2118 Shellvars.aug: Add dbquot for double bquoted values
2120 Shellvars.aug: eol_comments must begin with a space char can contain #
2122 Shellvars.aug: Add bquot and dollar-assigned tests
2124 shellvars.aug: Allow semi-colons in bquot and dollar_assign Fix wrong test using bquot and eol_comment
2126 Allow newlines in quoted values
2128 Add lns_norec to shellvars.aug and fix ambiguities in the lens.
2130 Fix ambiguity in shellvars.aug by making semi-colons illegal in bquot and arrays.
2132 2012-07-26 Raphaël Pinson <raphael.pinson@camptocamp.com>
2134 Allow end of line comments in fstab.aug
2136 2012-07-23 Michal Filka <mfilka@suse.cz>
2138 Cron: records can be prefixed by '-'.
2140 2012-07-19 Danny Yates <danny@codeaholics.org>
2142 vsftpd.aug: Add require_ssl_reuse option
2144 2012-07-19 David Lutterkort <lutter@redhat.com>
2146 * augeas.spec.in: add bundled(gnulib) provides
2149 2012-07-19 Dominic Cleal <dcleal@redhat.com>
2151 Prevent cross-mountpoint attacks via .augsave during saving
2152 Previously Augeas would open PATH.augsave for writing if a rename from PATH to
2153 PATH.augsave failed, then write the file contents in. Now if the rename fails,
2154 it tries to unlink PATH.augsave and open it with O_EXCL first.
2156 Mountpoints remain permitted at either PATH or PATH.augnew provided
2157 /augeas/save/copy_if_rename_fails exists.
2159 * src/transform.c (clone_file):
2160 add argument to perform unlink and O_EXCL on destination filename after a
2161 rename failure to prevent PATH.augsave being a mountpoint
2162 * src/transform.c (transform_save, remove_file):
2163 always try to unlink PATH.augsave if rename fails, only allowing PATH to be
2164 a mountpoint; allow PATH or PATH.augnew to be mountpoints
2166 test-put-mount: check PATH being a mountpoint is supported
2167 test-put-mount-augnew.sh: check PATH.augnew being a mountpoint is supported
2168 test-put-mount-augsave.sh: check unlink error when PATH.augsave is a mount
2172 2012-07-19 Dominic Cleal <dcleal@redhat.com>
2174 Prevent symlink attacks via .augnew during saving
2175 Instead of saving into a predictable PATH.augnew file, save into a securely
2176 created PATH.augnew.XXXXXX
2178 * src/transform.c (transform_save):
2179 write changes to a temporary file in the same directory as the destination
2180 (either the file's canonical path or the path of .augnew), before renaming
2182 * src/transform.c (transfer_file_attrs):
2183 use fchown, fchmod etc. on the same file handles to ensure consistent
2186 * bootstrap: add mkstemp gnulib module
2188 test-put-symlink-augnew.sh: test symlink attack when writing .augnew
2189 test-put-symlink-augsave.sh: test symlink attack when writing .augsave
2190 test-put-symlink-augtemp.sh: test symlink attack via temp .augnew
2191 test-put-symlink.sh: also test file modification
2195 2012-07-18 Dan Prince <dprince@redhat.com>
2197 Pythonpaste: new lens for Python Paste configs.
2198 Added a new lense file for Python Paste configs. This is useful
2199 for editing a variety of Openstack config files including,
2200 Nova api-paste.ini, Glance *.ini files, keystone.conf, and the
2203 2012-07-18 David Lutterkort <lutter@redhat.com>
2205 Xinetd: slight formatting improvements
2207 Case-insensitive regexps: fix a problem with number of groups
2208 When we expand a regexp to a case-sensitive regexp in regexp_expand_nocase,
2209 it is possible that the number of groups in that regexp changes,
2210 e.g. /(a)|(b)/i becomes /[AaBb]/. That confuses the parser when that regexp
2211 is used in a union or concatenation, since it expects the match following
2212 the match for this regexp to be in group 3, not group 1.
2214 * src/regexp.c (regexp_union_n, regexp_concat_n): fix bad memory access
2215 Avoid calling strlen on a possibly unintialized string (since we overwrite
2216 the trailing '\0' with a '(' just before calling REALLOC
2218 2012-07-18 Michal Filka <mfilka@suse.cz>
2220 made xinetd.aug case insensitive on attribute names
2222 2012-07-18 David Lutterkort <lutter@redhat.com>
2224 Update gnulib to commit cabce6b8
2226 2012-07-18 David Lutterkort <lutter@redhat.com>
2228 * src/builtin.c (pr_tree): new primitive print_tree
2229 Useful in 'put' tests, as in
2231 test lns put ".." after
2237 2012-07-17 David Lutterkort <lutter@redhat.com>
2239 aug_text_store, aug_text_retrieve: fix segfault when passed in node was NULL
2240 When the node existed, but had a NULL value, we segfaulted instead of
2241 reporting an error. We now report ENOMATCH.
2243 Fixes https://fedorahosted.org/augeas/ticket/283
2245 2012-07-15 Dominic Cleal <dcleal@redhat.com>
2247 Fstab: options field is optional
2249 2012-07-13 Dominic Cleal <dcleal@redhat.com>
2251 Authorized_Keys: add more tests
2253 2012-07-13 Raphaël Pinson <raphael.pinson@camptocamp.com>
2255 Add authorized_keys.aug and associated test.
2257 2012-07-04 Raphaël Pinson <raphael.pinson@camptocamp.com>
2259 simplevars.aug: Add /etc/zabbix/*.conf to includes
2261 simplevars.aug: Allow quotes in variables that do not begin with a quote
2263 2012-06-28 Dominic Cleal <dcleal@redhat.com>
2265 Shellvars: exclude directories from /etc/sysconfig/* wildcard
2266 This prevents a bug where Augeas maps a directory such as
2267 /etc/sysconfig/network-scripts to a lens via a matching transform and fails
2268 to save if the user edits /etc/sysconfig/network-scripts/ifcfg-eth0.
2270 2012-06-19 Micah Anderson <micah@riseup.net>
2272 escape all possible regular expressions before they are sent to sed
2274 2012-06-12 David Lutterkort <lutter@redhat.com>
2276 Modprobe: allow spaces around '=' in option
2277 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=826752
2279 2012-06-05 David Lutterkort <lutter@redhat.com>
2281 * man/augtool.pod: update mentions of default load path
2283 2012-06-01 Luc Didry <luc@didry.org>
2285 Add su logrotate.conf option in logrotate.aug
2287 2012-05-31 David Lutterkort <lutter@redhat.com>
2289 Tests for aug_text_store and aug_text_retrieve
2291 aug_text_store, aug_text_retrieve: expose in augtool and aug_srun
2293 aug_text_store, aug_text_retrieve: new API functions
2295 * src/transform.c (text_retrieve): new function to turn tree into text
2297 * src/transform.c (text_store): new function to write string to tree
2299 * tests/test-run.c: allow loading of a module with 'use'
2301 2012-05-31 David Lutterkort <lutter@redhat.com>
2303 Allow running individual tests with test-run
2304 Invoking 'test-run t1 t2 t3' will only run tests t1, t2 and t3
2306 * tests/test-xpath.c: move checking if a test is mentioned in argv to
2308 * tests/cutest.c, tests/cutest.h: add should_run
2309 * Makefile.am: test-xpath now uses cutest.[ch]
2310 * tests/test-run.c (run_tests): check if tests is mentioned on cmd line
2312 2012-05-31 Raphaël Pinson <raphael.pinson@camptocamp.com>
2316 Allow eol comments in simplevars.aug
2320 Add lens for samba's smbusers
2322 2012-05-21 David Lutterkort <lutter@redhat.com>
2324 * src/augrun.c (cmd_span): better synopsis
2326 * tests/run.tests: fix lines with trailing whitespace
2328 * tests/test-run.c (errtokens): bring in sync with actual error codes
2330 2012-05-17 David Lutterkort <lutter@redhat.com>
2332 * src/transform.c (load_file): remove unused variable file
2334 2012-05-16 David Lutterkort <lutter@redhat.com>
2336 Fix behavior of set with empty strings
2337 * src/augrun.c (cmd_set, cmd_setm): distinguish between empty string and
2339 * tests/run.tests (set-args): adapt to new behavior
2341 2012-05-12 Dominic Cleal <dcleal@redhat.com>
2343 * src/try: don't overwrite gdbcmds.txt if it exists
2345 2012-05-11 Dominic Cleal <dcleal@redhat.com>
2347 Fstab: handle options with empty values ("password=")
2349 2012-05-06 Tim Bishop <tim@bishnet.net>
2351 Puppet, PuppetFileserver: add /usr/local/etc/puppet paths
2353 2012-04-26 Raphaël Pinson <raphael.pinson@camptocamp.com>
2355 Shellvars: various edge cases in case entries
2357 AptPreferences: #comments are accepted within entries
2359 NagiosCfg: /etc/nagios3/commands.cfg and /etc/nagios3/resource.cfg have their own syntax, allow spaces in values.
2361 /etc/default/whoopsie is an IniFile
2363 Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas
2365 Mke2fs: Add support for default_mntopts, enable_periodic_fsck, and auto_64-bit_support.
2367 2012-04-26 Dominic Cleal <dcleal@redhat.com>
2369 Make creating NULL value nodes more intuitive
2370 * src/augrun.c: add "touch" command to create node if it doesn't exist, make
2371 <VALUE> argument to "set" and "setm" optional
2375 2012-04-23 David Lutterkort <lutter@redhat.com>
2377 * src/augeas.h: include 'extern "C"' wrapper for C++
2378 Fixes https://fedorahosted.org/augeas/ticket/272
2380 Patch from Igor Pashev
2382 2012-04-22 Raphaël Pinson <raphael.pinson@camptocamp.com>
2384 Use Sys.getenv("HOME") in dput.aug
2386 2012-04-19 Raphaël Pinson <raphael.pinson@camptocamp.com>
2388 PHPVars: map arrays with @arraykey subnodes to make working paths
2390 2012-04-12 Michal Filka <michal.filka@suse.cz>
2392 Shellvars: handle bash's implicit concatenation of quoted strings
2394 2012-04-12 Josh <jokajak@gmail.com>
2396 Grub: add /boot/grub/grub.conf to transform
2398 2012-04-12 Luc Didry <luc@didry.org>
2400 Use Sys.getenv('HOME') in filter instead of ~ since it's not expanded
2402 2012-04-12 Brett Porter <brett@apache.org>
2404 Properties: improve handling of whitespace, empty props, and underscores in keys
2405 This brings the lens closer to the Java specification
2407 With help from Carlos Sanchez <csanchez@maestrodev.com> and Dominic Cleal
2410 2012-04-11 Raphaël Pinson <raphael.pinson@camptocamp.com>
2412 Use a more standard way of writing LGPL v2+ in lens headers
2414 2012-04-10 Raphaël Pinson <raphael.pinson@camptocamp.com>
2416 postfix_transport.aug also applies to virtual (5)
2418 Add postfix_transport.aug and associated test.
2420 Add subversion lens and associated test.
2422 Add networkmanager lens to tests and doc
2424 Add networkmanager.aug and associated test file.
2426 2012-04-09 Dominic Cleal <dcleal@redhat.com>
2428 Sudoers: allow quoted strings in Defaults parameters
2431 2012-04-08 Dominic Cleal <dcleal@redhat.com>
2433 Debctrl: allow control extensions for Python packages
2436 Debctrl: fixed package paragraph keywords, allow variables for version numbers in dependency lists, allow DM-Upload-Allowed keyword
2437 Fixes Debian bug #650887
2439 2012-04-06 Dominic Cleal <dcleal@redhat.com>
2441 AUTHORS: updated from recent commits
2443 2012-04-06 Jason Kincl <jkincl@gmail.com>
2445 Xymon: new lens for Xymon config files
2448 2012-04-06 Jim Meyering <meyering@redhat.com>
2450 compile_exp: don't return an uninitialized pointer upon failure
2451 As a result of its improved flow analysis gcc-4.7.0 20111202 reported:
2453 syntax.c: In function 'compile_exp':
2454 syntax.c:1694:5: warning: 'v' may be used uninitialized in this \
2455 function [-Wmaybe-uninitialized]
2457 However, compile_exp calls many functions that return values that are
2458 then assigned to "v". Only two of those had a problem: in each there
2459 is an error path by which the returned pointer is not initialized.
2460 * src/syntax.c (compile_concat): Initialize "v".
2461 (compile_minus): Likewise.
2463 2012-04-04 Duncan Mac-Vicar P <dmacvicar@suse.de>
2465 bootloader is also present in shellvars_list, exclude from shellvars.
2467 2012-04-01 Dominic Cleal <dcleal@redhat.com>
2469 Sudoers: allow "!" as a type of Defaults entry
2470 Fixes Debian bug #650079
2472 Modprobe: support softdep command
2473 Fixes Debian bug #641813
2475 2012-03-29 Dominic Cleal <dcleal@redhat.com>
2477 * src/augrun.c (nexttoken): support \t and \n in aug_srun tokens
2480 2012-03-23 Raphaël Pinson <raphink@gmail.com>
2482 Add netmask to hosts_access.aug
2484 2012-03-18 Dominic Cleal <dcleal@redhat.com>
2486 Shellvars: add systemd's /etc/os-release file
2488 Systemd: new lens to parse systemd unit files
2490 * src/augeas.c (aug_save): remove loop that added a second iteration around children of /files, causing multiple saves in newfile and noop modes when editing under /files/boot
2493 2012-03-17 Dominic Cleal <dcleal@redhat.com>
2495 Qpid: new lens to read Apache Qpid daemon/client configs
2496 Contributed by Andrew Replogle.
2498 2012-03-12 David Lutterkort <lutter@redhat.com>
2500 Make sure reloading discards changes after save with mode 'newfile'
2502 2012-03-10 Dominic Cleal <dcleal@redhat.com>
2504 Util: add *.bak and *.old to stdexcl, to match files in /etc/sysconfig
2506 Fix excl filters that only specify a filename or wildcard
2507 * src/transform.c (transform_validate): only normalise excl paths with
2508 directory separators into absolute paths
2509 * src/transform.c (filter_generate): don't apply root prefix to excl filter
2510 values when only comparing the base filename
2512 Shellvars: exclude non-shell files in tests/root/etc/sysconfig
2514 Shellvars: add /etc/selinux/config
2516 2012-03-06 Dominic Cleal <dcleal@redhat.com>
2518 Shellvars: include /etc/{default,sysconfig}/* and list exceptions instead
2520 2012-03-03 Tim Mooney <Tim.Mooney@ndsu.edu>
2522 src/augtool.c: rename echo to echo_commands to fix differing types reported with Solaris linker
2525 2012-02-24 Dominic Cleal <dcleal@redhat.com>
2527 Up2date: change tree to distinguish between empty values and empty lists
2529 Up2date: change tree to fix ambiguity during put, remove list of known config options and separation of possible values
2531 2012-02-22 Dominic Cleal <dcleal@redhat.com>
2533 Protocols: change tree to support protocols named "a/n" and "tp++"
2535 Shellvars: remove non-shell files, up2date now has a lens, move updatedb.conf to Simplevars
2536 Fonts: exclude README
2540 Ntp: allow deprecated 'authenticate' setting
2542 2012-02-21 Raphaël Pinson <raphink@gmail.com>
2544 Add up2date.aug and associated test file
2546 2012-02-17 Raphaël Pinson <raphink@gmail.com>
2548 Support \r in httpd.aug
2550 Support \r in comments in util.aug
2552 Support \r\n in xml.aug
2554 Do not allow \r in comment_or_eol
2558 2012-02-13 David Lutterkort <lutter@redhat.com>
2560 * src/transform.c (clone_file): do not leak from_fp
2562 2012-02-13 Raphaël Pinson <raphink@gmail.com>
2564 Allow commands without full path if they begin with a lowcase letter in sudoers.aug
2566 Allow = in commands in sudoers.aug (but force ! or / as first character if not an alias)
2568 Use Build.opt_list in sudoers.aug
2570 2012-02-13 Dominic Cleal <dcleal@redhat.com>
2572 Shellvars: add BSD's /etc/rc.conf
2575 2012-02-12 Dominic Cleal <dcleal@redhat.com>
2577 Improve aug_srun quoting to permit concatenation and better detect bad quoting
2578 * src/augrun.c (nexttoken): permit shell-like concatenation of quoted and
2579 unquoted strings, detect unmatched quotes and raise AUG_ECMDRUN.
2580 * tests/run.tests: add lots of tests to cover quoting mismatches, single and
2581 double quote combinations, courtesy of David Schmitt
2583 Passwd: allow asterisk in password field
2586 Pam: exclude /etc/pam.d/README
2589 2012-02-10 Raphaël Pinson <raphink@gmail.com>
2591 Simplify Sudoers.sto_to_com_user to improve performance. Use more standard constructs.
2593 Add continued lines to rx.aug and sep.aug
2595 2012-02-09 Raphaël Pinson <raphink@gmail.com>
2597 Improve grub.aug's performances slightly
2599 Improve keepalived.aug: cut typechecking time and resident size by 2.
2601 Use Cron.shellvar in anacron.aug
2603 Simplify Cron.key_re to improve typechecking of cron.aug
2605 Allow # and ; in quoted values in inifile.aug (Fix ticket #243)
2607 2012-02-08 Terence Haddock <thaddock@tripi.com>
2609 * lenses/tests/test_iptables.aug: test that we accept blank lines
2611 2012-02-08 Francis Giraldeau <francis.giraldeau@gmail.com>
2613 Allocate exception instead of static const value
2614 The static const value returned by exn_error() may cause SIGSEGV in case
2615 the value is further changed. To avoid this situation, the structure is
2616 allocated early in aug_init instead and released in aug_close, and is
2617 accessible via aug->error->exn. The resulting exception value can be
2618 modified without adverse effect.
2620 2012-02-08 Duncan Mac-Vicar P <dmacvicar@suse.de>
2622 Shellvars: autoload some SuSe and RHN specific files
2624 2012-02-07 David Lutterkort <lutter@redhat.com>
2626 Add very simplistic leak test
2628 Fix some memory leaks
2629 * src/augeas.c (tree_from_transform): do not do unneeded strdups which
2631 * src/lens.h: any lens can carry a jmt when it is recursive; this was a
2632 pretty serious issue which could have lead to memory corruptions, since
2633 struct lens was not right for that
2634 * src/lens.c (free_lens, lens_release): call jmt_free for all lenses
2636 2012-02-07 Raphaël Pinson <raphink@gmail.com>
2638 Fix test-save by allowing (empty | comment)* in yum.aug.
2640 2012-02-07 Dominic Cleal <dcleal@redhat.com>
2642 CronAllow: remove accompanying test, moved into Simplelines test earlier
2644 2012-02-06 David Lutterkort <lutter@redhat.com>
2646 * src/transform.c (transform_save): different errors for parse and put failure
2648 2012-02-06 David Lutterkort <lutter@redhat.com>
2650 Graphviz: remove since it can not be typechecked
2651 Typechecking for the Graphviz lens requires too much memory right now,
2652 which makes it impossible to run 'mke check' on a reasonably sized machine
2655 Backing out the lens until we can figure out a way to fix it so that 'make
2656 check' works with it in practice.
2658 2012-02-06 Raphaël Pinson <raphink@gmail.com>
2660 Disable recursive mode in graphviz.aug since it fails in the put direction.
2662 Pass Util.empty with entry in Build.block_generic. Fix ambiguity with Util.empty in graphviz.aug.
2664 2012-02-03 Raphaël Pinson <raphink@gmail.com>
2666 graphviz.aug: space is optional before options
2668 graphviz.aug: names can be empty
2670 Support crazy example in graphviz.aug
2672 Add a simple graphviz.aug and associated test
2674 Use Build.block_newlines in keepalived.aug
2676 Build.block_newlines takes a comment parameter, newline is optional
2678 Add variables for default delimiters and regexps in build.aug
2680 2012-02-02 David Lutterkort <lutter@redhat.com>
2682 * src/transform.c (filter_generate): take root into account for excludes
2683 When matching an exclude pattern against a path, only try to match against
2684 the part of path after the root. The paths found by globbing include
2685 patterns contain the root.
2689 2012-02-02 Raphaël Pinson <raphink@gmail.com>
2691 Improve logrotate, use Build, Rx, Sep
2693 Add lbracket and rbracket to sep.aug
2695 Add tests for build.aug
2697 Add Build.block_newlines and use it in xinetd.aug
2699 Rewrite xinetd.aug with Build, Sep, Rx
2701 Allow to set lbracket_re and rbracket_re in Build.block_generic
2703 Add Util.delim and use it in Sep.space_equal
2705 Add Build.block_setdefault
2707 Add default_lbracket and default_rbracket to Build.block_generic
2709 Add blocks to build.aug, add comment_noindent to util.aug Add test_build.aug
2711 2012-02-01 Raphaël Pinson <raphink@gmail.com>
2713 Support dollar assignment ($(bar)) in shellvars.aug
2715 Parse functions in shellvars.aug
2717 Shellvars.aug allows multiple elif statements
2721 2012-01-31 Dominic Cleal <dcleal@redhat.com>
2723 CronAllow: remove lens, add files to the Simplelines lens
2725 2012-01-31 Raphaël Pinson <raphink@gmail.com>
2729 Add ldso.aug and test
2733 Add /etc/sysctl.d to sysctl.aug, improve lens and add it to docs.
2735 Add protocols.aug and associated test
2737 Add /etc/wgetrc to simplevars.aug
2739 Add simplelines.aug and test
2741 Add simplevars.aug and associated test
2743 Add inputrc.aug and associated test
2745 Add anacron.aug and associated test
2749 2012-01-30 Raphaël Pinson <raphink@gmail.com>
2751 Ignore allow.pamlist from pam.aug
2753 Add a few files to shellvars.aug
2755 Add fuse.aug and associated test
2757 2012-01-27 Dominic Cleal <dcleal@redhat.com>
2759 Vfstab: new lens for /etc/vfstab config on Solaris
2761 2012-01-22 Dominic Cleal <dcleal@redhat.com>
2763 Automounter: exclude /etc/auto_master for Solaris, small tidyup
2765 Automounter: exclude /etc/auto.master
2767 Automaster: change to lowercase for consistency with Automounter
2769 Automounter: new lens to parse automounter maps (/etc/auto.*)
2771 2012-01-21 Dominic Cleal <dcleal@redhat.com>
2773 AutoMaster: new lens to parse autofs auto.master files
2775 CronAllow: new lens to parse both cron/at allow/deny files
2776 Cron: exclude cron allow/deny files
2778 Nsswitch: remove long list of databases, match by regexp
2780 PamConf: new lens to parse /etc/pam.conf with the additional service field
2782 Pam: allow uppercase chars in 'types', remove /etc/pam.conf from filter
2783 PamConf: new lens to parse /etc/pam.conf with the additional service field
2785 Networks: handle multiple missing network octets, fix sequencing of aliases
2787 Nsswitch: add extra databases used on Solaris
2789 Shells: permit same-line comments
2791 2012-01-20 Dominic Cleal <dcleal@redhat.com>
2793 Netmasks: new lens for parsing /etc/inet/netmasks on Solaris
2795 2012-01-19 Travis Groth <tgroth@gmail.com>
2797 Nsswitch: add passwd_compat, group_compat and shadow_compat GNU extensions
2799 2012-01-18 Raphaël Pinson <raphink@gmail.com>
2801 Add channels.aug and associated test.
2803 2012-01-14 Dominic Cleal <dcleal@redhat.com>
2805 Grub: parse "password --encrypted" properly, add tests for file subnode
2808 2012-01-11 Francis Giraldeau <francis.giraldeau@gmail.com>
2810 Fix fatest linking with libfa
2811 fatest requires libfa symbols which are not exported by libaugeas library.
2813 2012-01-09 Lubomir Rintel <lubo.rintel@gooddata.com>
2815 Correctly parse empty object and arrays in JSON
2817 Fix from David Lutterkort <lutter@redhat.com>.
2819 https://fedorahosted.org/augeas/ticket/248
2821 2012-01-09 Lubomir Rintel <lubo.rintel@gooddata.com>
2823 Allow JSON number literals to be followed by whitespace
2826 Fixes https://fedorahosted.org/augeas/ticket/247
2828 2012-01-09 David Lutterkort <lutter@redhat.com>
2830 * build/aux/move-if-change: refresh with latest from gnulib
2831 Taken from gnulib commit 1602f0af
2833 2012-01-02 Dominic Cleal <dcleal@redhat.com>
2835 * src/augtool.c (main_loop): 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
2838 2011-12-31 Dominic Cleal <dcleal@redhat.com>
2840 * tests/test-augtool.sh: fix broken gsed check
2842 2011-12-30 Dominic Cleal <dcleal@redhat.com>
2844 Remove Linux-isms so tests can run on Solaris
2845 * tests/test-augtool-modify-root.sh: /bin/sh -> /bin/bash
2846 * tests/test-augtool.sh: /bin/sh -> /bin/bash, use 'gsed' if available (GNU sed
2848 * tests/test-load.c: don't use GNU sed in-place extension
2849 * tests/test-preserve.sh: handle Solaris `ls -il` output
2851 * bootstrap: add strchrnul gnulib module (for Solaris)
2853 2011-12-24 Jim Meyering <meyering@redhat.com>
2855 Don't use variables uninitialized upon error
2856 * src/transform.c (filter_generate): Move declarations and
2857 initializations of pathv and pathc to precede possible
2858 "goto error;" via which those variables are used.
2860 2011-12-23 Francis Giraldeau <francis.giraldeau@gmail.com>
2864 2011-12-19 Raphaël Pinson <raphink@gmail.com>
2866 Rebase yum.aug on inifile.aug, support comments (except in lists) Fix ticket #217
2868 Add @return to shellvars.aug
2870 2011-12-19 Erinn Looney-Triggs <erinn.looneytriggs@gmail.com>
2872 Create lens and tests for sssd.conf heavily based on mysql and php lenses.
2874 2011-12-18 Raphaël Pinson <raphink@gmail.com>
2876 aliases.aug: commands can be fully enclosed in quotes (Fix ticket #229)
2878 2011-12-18 Erinn Looney-Triggs <erinn.looneytriggs@gmail.com>
2880 Add in single-request-reopen into lens and tests.
2882 2011-12-16 Michael Chapman <mike@very.puzzling.org>
2884 Add missing argument to escape()
2887 2011-12-10 Dominic Cleal <dcleal@redhat.com>
2889 * src/augeas.c (tree_root_ctx): create context path if it doesn't exist
2891 2011-12-09 Raphaël Pinson <raphink@gmail.com>
2893 Add libxml2-devel to requirements in HACKING
2895 2011-12-08 Raphaël Pinson <raphink@gmail.com>
2897 Debian-based distributions use /etc/mdadm/mdadm.conf
2899 2011-12-05 Raphaël Pinson <raphink@gmail.com>
2901 Support include() in phpvars.aug
2903 Add unit test for bug #239
2905 In aug_to_xml: do not replace pathin with '/*' unless the length is 0 or pathin is '/' (Fix ticket #239)
2907 2011-12-03 Richard W.M. Jones <rjones@redhat.com>
2909 pkg-config: Augeas requires libxml2.
2911 2011-12-02 David Lutterkort <lutter@redhat.com>
2915 2011-12-02 Dominic Cleal <dcleal@redhat.com>
2917 Implement escape sequences for whitespace, quotes and square brackets in command arguments to match Puppet provider.
2918 * \<sp> or \<tab> will be escaped if not in quotes, else literal
2919 * \' or \" will be escaped if in the same type of quotes, else literal
2920 * \\ will be escaped
2921 * \[ or \] will be passed through so they're escaped in path expressions
2923 * src/augrun.c: implement escape sequences
2924 * tests/run.tests: add covering tests
2926 2011-12-02 Raphaël Pinson <raphink@gmail.com>
2928 Add approx.aug and test to Menu.txt
2932 Fix nocommand as nocomma in test_aliases.aug
2934 Add documentation to test_aliases.aug
2936 2011-12-01 David Lutterkort <lutter@redhat.com>
2938 * src/augtool.c (print_aug_error): print newline after error details
2940 augtool: rename 'print-xml' to 'dump-xml'
2941 That way, 'p' tab-completes to print as before.
2943 * src/augeas.c (tree_from_transform): handle alloc failure better
2945 * src/augeas.c (aug_init): make more robust
2946 - propagate errors from aug_set and similar
2947 - only call api_exit if we called api_enter before
2949 * src/augeas.c (aug_init): pull logic to set up loadpath into separate function
2951 * src/augeas.c (init_root): properly report out-of-memory
2953 * tests/test-api.c (testToXml): swap expected/actual values in assertions
2955 * src/augeas.c (aug_to_xml): rename 'path' attr on root to 'match'
2956 The attribute contains a path expression, not just a path.
2958 2011-12-01 David Lutterkort <lutter@redhat.com>
2960 Make it possible for aug_init to report initialization errors
2961 Sometimes initialization fails for mundane reasons, like syntax errors in
2962 lens files. So far, it was not possible for callers to report details for
2963 these errors, because they always got a NULL augeas handle back.
2965 The new flag AUG_NO_ERR_CLOSE causes aug_init to return a handle even if
2966 initialization fails, so that callers can use the aug_error* functions to
2967 extract error details before calling aug_close.
2969 * src/augeas.c (aug_init): return a partially initialized struct augeas
2970 if AUG_NO_ERR_CLOSE is set
2971 * src/augeas.h (aug_flags): add AUG_NO_ERR_CLOSE
2972 * src/augtool.c: call aug_init with AUG_NO_ERR_CLOSE and print errors on
2973 initialization failure
2975 2011-12-01 David Lutterkort <lutter@redhat.com>
2977 Update documentation for augtool/augrun and man page
2979 Adjust more copyright notices
2981 Fstab: allow ',' in file names
2982 Fixes BZ https://bugzilla.redhat.com/show_bug.cgi?id=751342
2984 * man/augtool.pod: update copyright years, regenerate
2986 2011-12-01 Raphaël Pinson <raphink@gmail.com>
2988 Sub::Install is not necessary to override functions in Augeas.pm
2990 Fix white_spaces into with_spaces in test_faidiskconfig.aug
2992 Add documentation to test_fai_diskconfig.aug
2994 Extend copyright to 2011 in src/*
2996 Add test_xml.aug to the lens Menu.txt
2998 Improve documentation in test_xml.aug
3000 Add test_keepalived.aug doc to lens Menu.txt and keepaved.aug
3002 Add documentation to test_keepalived.aug
3004 Improve documentation for sep.aug
3006 Improve documentation for rx.aug
3008 2011-12-01 Dominic Cleal <dcleal@redhat.com>
3010 src/augrun.c: fix parsing of commands with trailing whitespace tests/test-run.c: use : to write tests with trailing whitespace
3012 2011-12-01 Raphaël Pinson <raphink@gmail.com>
3014 Improve documentation for access.aug and test_access.aug
3016 Fix examples note in inifile.aug
3018 Add examples note to reprepro_uploaders.aug
3020 Finalize doc for test_reprepro_uploaders.aug
3022 2011-12-01 Dominic Cleal <dcleal@redhat.com>
3024 Fix path context with trailing slash or whitespace
3026 Add tests from Puppet's Augeas provider, some commented out until fixed.
3028 2011-12-01 Raphaël Pinson <raphink@gmail.com>
3030 Fix test_inifile.aug's typo
3032 Add documentation to test_inifile.aug
3034 Better integration of tests in NaturalDocs, verbatim code display in doc.
3036 2011-11-30 Raphaël Pinson <raphink@gmail.com>
3038 Add unit tests for aug_to_xml
3040 libaugeas must now be linked to libxml, too.
3042 2011-11-30 Dominic Cleal <dcleal@redhat.com>
3044 * augeas.spec.in: add build req on libxml2-devel
3046 2011-11-29 Raphaël Pinson <raphink@gmail.com>
3048 Add an Examples section to reprepro_uploaders.aug's header
3050 ARG_CHECK errors when condition is met. Invert conditions in aug_to_xml.
3052 2011-11-29 Francis Giraldeau <francis.giraldeau@gmail.com>
3054 Sudoers: add more parameter flags/options
3057 2011-11-29 Raphaël Pinson <raphink@gmail.com>
3059 Add aug_to_xml to public API
3061 2011-11-29 David Lutterkort <lutter@redhat.com>
3063 New error code AUG_EBADARG and ARG_CHECK macro
3064 Use ARG_CHECK to check arguments passed through the public API for
3065 validity; invalid paramters lead to an error of AUG_EBADARG.
3067 * src/augeas.h (aug_errcode_t): new error code AUG_EBADARG
3068 * src/augeas.c (errcodes): human-readable text for AUG_EBADARG
3069 * src/errcode.h (ARG_CHECK): new macro
3071 2011-11-29 Raphaël Pinson <raphink@gmail.com>
3073 Improve doc in test_reprepro_uploaders.aug and update Menu.txt for lenses.
3075 Fix parsing of tests in Augeas.pm, add a test doc to test_reprepro.aug
3077 Fix parsing of 'in[ \t\r\n]+let' in Augeas.pm
3079 2011-11-29 David Lutterkort <lutter@redhat.com>
3081 Normalize lens filters to absolute paths
3082 It doesn't really make sense to specify relative paths in lens filters; we
3083 treat them as absolute to avoid unpleasant surprises for users who think
3084 relative paths are relative to AUGEAS_ROOT. With this change, they are.
3088 2011-11-29 David Lutterkort <lutter@redhat.com>
3090 * tests/cutest.c: run one test when CUTEST env var is set
3092 2011-11-29 Raphaël Pinson <raphink@gmail.com>
3094 Add support for 'not' in reprepro_uploaders.aug
3096 Improve CSS for NaturalDocs
3098 2011-11-28 Dominic Cleal <dcleal@redhat.com>
3100 augtool: change readline tab completion to be context-aware
3102 path expressions: prepend context from /augeas/context to all relative paths
3103 A path context is prepended to all paths that do not begin at the root,
3104 changing relative paths into absolute paths. The context is stored in
3105 /augeas/context and defaults to the value "/files".
3107 2011-11-28 David Lutterkort <lutter@redhat.com>
3109 * src/transform.c (load_file): fix segfault when storing span in NULL tree
3111 * src/syntax.c (print_tree): print something for a NULL tree
3113 2011-11-28 Raphaël Pinson <raphink@gmail.com>
3115 Add header to shellvars.aug
3117 Add Kdump and Ssh to Menu.txt
3119 Fix NaturalDocs CSS a bit
3121 Add a Tests and Examples group in naturaldocs
3123 Improve documentation for reprepro_uploaders.aug
3125 Add 'contain' subnodes to reprepro_uploaders.aug and improve documentation.
3127 Simplify logical tree in reprepro_uploaders.aug
3129 Improve parameter parsing in reprepro_uploaders.aug
3131 Add reprepro.aug and associated test.
3133 Fix small type in comment
3135 2011-11-23 Raphaël Pinson <raphink@gmail.com>
3137 Add support for until and select loops in shellvars.aug
3139 Add elif support to shellvars.aug
3141 2011-11-22 Raphaël Pinson <raphink@gmail.com>
3143 Add big WARNING to aptconf.aug
3145 Register modules.aug with naturaldocs
3147 2011-11-22 Tom Limoncelli <tal@whatexit.org>
3149 Xendconfsxp: new lens and tests for Xen configuration
3151 2011-11-22 David Lutterkort <lutter@redhat.com>
3153 * tests/Makefile.am (lens_tests): add missing tests
3155 2011-11-22 Raphaël Pinson <raphink@gmail.com>
3157 Add modules.aug and associated test file (Fix ticket #236)
3159 Add backuppchosts.aug and test (Fix ticket #233)
3161 mdadm.aug: dev_device cannot match dev_partitions_re
3163 Fix test_phpvars.aug as per using Util.empty_c_style
3165 Clean wrong lines in modprobe.aug's header
3167 Update tests and documentation for new lenses
3169 Add desktop.aug and associated test.
3171 Add aptconf.aug and associated test.
3173 Use Util.empty_c_style in phpvars.aug and don't map empty comments in Util.comment_multiline
3175 Add support for case in shellvars.aug
3177 Add for and while loops to shellvars.aug
3179 Adapt modules_conf.aug and test file to refect the changes in modprobe.aug
3181 Refactor modprobe.aug: * Parse commands in install/remove stanzas; * Drop support for include as it is not documented in manpages and no unit tests are shipped.
3183 2011-11-21 Raphaël Pinson <raphink@gmail.com>
3185 Fix unpriviliged into unpriviliged in test_postfix_master.aug, too.
3187 Add one-liner unit test for shellvars.aug
3189 shellvars.aug: Refactor lens, add end-of-line comment support, if/then/else/fi conditionals, one-liners support
3191 phpvars.aug: Add test for bash-style comment, improve eol comments, use generic_function in simple_function definition
3193 Parse /etc/mailname with hostname.aug
3195 Add hosts_access.aug to parse /etc/hosts.{allow,deny} and associated test.
3197 2011-11-18 Raphaël Pinson <raphink@gmail.com>
3199 Double quotes are allowed in variable names in phpvars.aug
3201 Refactor entries in phpvars.aug
3203 PHP tags are case-insensitive in phpvars.aug
3205 Add include_once() to phpvars.aug
3207 Fix typo in postfix_master.aug (Fix ticket 234)
3209 Allow empty lines at end of files in phpvars.aug
3211 Better define() support in phpvars.aug
3213 Support bash-style comments and define() functions in phpvars.aug
3215 Implement end-of-line comments in phpvars.aug and add tests. In order to add this, I had to forbig the use of /.*;[ \t]*\/\/.*/ in values. There might be a way to make this regexp more strict to be less intrusive, but I believe this pattern is not very common anyway, so I think it's safe to keep it this way for now.
3217 Cleanup phpvars.aug, rebase it on sep.aug and util.aug and prepare the way to support end-of-line comments
3219 Fix comment_multiline and add a test file for util.aug
3221 Spaces are not mandatory around = in phpvars.aug
3223 Fix open_php and close_php tags in phpvars.aug (Fix ticket 232)
3225 2011-11-17 Jim Meyering <jim@meyering.net>
3227 avoid double-free upon fclose failure
3228 * src/transform.c (transform_save): Upon initial fclose failure, set "fp
3229 = NULL;" so that we don't attempt to free/close "fp" while cleaning up
3232 2011-11-17 David Lutterkort <lutter@redhat.com>
3234 * lenses/util.aug: do not set caml mode for Emacs
3236 * lenses/rx.aug: delete trailing whitespace
3238 2011-11-17 Raphaël Pinson <raphink@gmail.com>
3240 Parse pam.conf in pam.aug
3244 Add networks.aug lens
3246 Add host_conf.aug lens
3248 Add flag_line to build.aug
3250 Add blkid.conf to shellvars.aug
3252 2011-11-16 Raphaël Pinson <raphink@gmail.com>
3254 Add doc to grub.aug (ticket 33)
3256 Support debug flag in keepalived.aug
3258 Fix origin entries in aptpreferences.aug
3260 2011-11-15 Dominic Cleal <dcleal@redhat.com>
3262 Resolv: Permit end-of-line comments
3265 Krb5: Allow a [pam] section for pam_krb5 (possibly deprecated)
3268 2011-11-15 Roman Rakus <rrakus@redhat.com>
3270 Kdump: new lens and tests
3272 2011-11-15 Dominic Cleal <dcleal@redhat.com>
3274 aug_srun: add 'insert' and 'move' command aliases to 'ins' and 'mv'
3276 2011-11-15 Michael Chapman <mike@very.puzzling.org>
3278 Dhcpd: slashes must be double-quoted
3279 In dhcpd.conf, tokens containing slashes must be double-quoted.
3281 Fixes the following dhcpd error:
3283 /etc/dhcpd.conf line 4: filename string expected.
3286 Configuration file errors encountered -- exiting
3288 2011-11-15 Michael Chapman <mike@very.puzzling.org>
3290 Access: parse user@host and (group) in users field
3291 pam_access matches the hostname in user@host against the system's own
3292 hostname, which allows a single access.conf to be shared amongst
3293 multiple machines yet still contain per-server rules.
3295 pam_access also allows group names to be optionally enclosed in
3296 parentheses to disambiguate them from user names.
3298 2011-11-15 Michael Chapman <mike@very.puzzling.org>
3300 Access: field separator need not be surrounded by spaces
3301 For compatibility with the old behaviour and to match the examples in
3302 the PAM documentation, new entries are still emitted with spaces.
3304 Dhcpd: add Red Hat's dhcpd.conf locations
3305 RHEL 5 uses /etc/dhcpd.conf.
3306 RHEL 6 uses /etc/dhcp/dhcpd.conf.
3308 2011-11-15 David Lutterkort <lutter@redhat.com>
3310 Mdadm: use case-insensitive regexps
3312 2011-11-15 David Lutterkort <lutter@redhat.com>
3314 * src/fa.c (totalize): handle case-insensitive FA's properly
3315 The convention for case-insensitive FA's is that they do not contain any
3316 transitions on [A-Z], effectively removing upper case letters from the
3319 totalize used to create transitions into the crash state that did
3320 transition on upper case letters, violating the convention.
3322 2011-11-13 David Lutterkort <lutter@redhat.com>
3324 * src/builtin.c (regexp_match): new helper to test a regexp
3326 2011-11-13 Matthew Booth <mbooth@redhat.com>
3328 Mdadm_conf: new lens for /etc/mdadm.conf
3330 2011-11-13 David Lutterkort <lutter@redhat.com>
3332 * lenses/tests/test_iptables.aug: fix syntax error
3334 2011-10-31 Raphaël Pinson <raphink@gmail.com>
3336 Allow digits in ipt_match keys (bug #224)
3338 2011-10-18 David Lutterkort <lutter@redhat.com>
3340 * src/syntax.c: fix composition of unit and function
3341 For a composition with types 'unit ; a -> b' we tricked ourselves into
3342 doing function composition, when we should do unit composition.
3344 * src/syntax.c (type_names): fix order of names
3346 2011-10-17 Michael Chapman <mike@very.puzzling.org>
3348 Fix regular expression escaping
3353 Previously, this matched either a backslash or a slash, since \/ was not
3354 an escape sequence known to unescape(). Now this matches only a slash.
3356 We pass an extra argument to escape() and unescape() listing the extra
3357 characters that should be handled. STR_ESCAPES and RX_ESCAPES provide
3358 the extra characters for strings and regexps respectively, and NULL may
3359 be passed if no extra characters should be handled.
3361 2011-10-17 David Lutterkort <lutter@redhat.com>
3363 Json: fix handling of whitespace
3364 We just gobble up whitespace after various expressions as part of the lens
3365 processing that expression.
3367 2011-10-14 Raphaël Pinson <raphink@gmail.com>
3369 Spaces are allowed before colons in aliases.aug
3371 Empty options are allowed in exports.aug
3373 Entries outside Host statements are allowed (though not documented) in ssh.aug
3375 Allow indentations in array_entry in ssh.aug
3377 Small improvements to squid.aug. This lens is inconsistent and should probably be deeply reviewed, although that might break compatibility.
3379 Not really shellvar entries in cron.aug, semi-colons are allowed for email addresses
3381 Add schroot to tests and doc
3383 Add schroot.aug lens
3385 2011-10-13 Raphaël Pinson <raphink@gmail.com>
3387 Simplify rsyncd.aug and support indented anon entries and records.
3389 2011-10-10 Raphaël Pinson <raphink@gmail.com>
3391 Small adjustments in postfix_master.aug
3393 2011-10-10 Michael Chapman <mike@very.puzzling.org>
3395 Fix escape sequences in bracket expressions
3396 With POSIX extended regexps, escape sequences are not recognised within
3397 bracket expressions. Any escape sequences passed through by the
3398 unescape() function would be misinterpreted. For instance, the regular
3403 matches any of the three characters backslash, dot or hyphen, when the
3404 lens author most likely wanted dot or hyphen only.
3406 This patch cleans up the bracket expressions in all lenses, with the
3407 exception of \/ and \\ sequences. These needs to be handled by
3408 unescape() directly.
3410 2011-10-10 Michael Chapman <mike@very.puzzling.org>
3412 FAI_DiskConfig: Fix invalid escape sequence \s
3413 It should be expanded to [ \n\t].
3415 2011-10-10 Michael Chapman <mike@very.puzzling.org>
3417 Cron: Fix parsing of numeric fields
3420 let num = /[0-9\*][0-9\/,-\*]*/
3422 the hyphen was treated as a range, not a literal character. This
3423 erroneously allowed a whole bunch of characters (including all uppercase
3424 letters) in numeric fields.
3426 2011-10-10 Michael Chapman <mike@very.puzzling.org>
3428 Cgconfig: Fix parsing of group names
3431 let id = /[a-zA-Z0-9_\-\/\.]+/
3433 the hyphen was treated as a range, not a literal character.
3435 2011-10-10 Raphaël Pinson <raphink@gmail.com>
3437 Revert badly applied series or patches.
3438 This reverts commit dc9ef16bc7a4cc45e4d66ea69b4bdf0038e816bb.
3440 2011-10-10 Michael Chapman <mike@very.puzzling.org>
3442 Cgconfig: Fix parsing of group names
3445 let id = /[a-zA-Z0-9_\-\/\.]+/
3447 the hyphen was treated as a range, not a literal character.
3449 2011-10-06 David Lutterkort <lutter@redhat.com>
3451 path expressions: add a function 'int'
3452 This makes it possible to do numerical comparisons of node values, for
3453 example, 'match /files/etc/group/*[int(gid) < 3]'
3455 2011-10-06 Raphaël Pinson <raphink@gmail.com>
3457 Fix cmd_span (ticket #220):
3458 - Retrieve option from tree before using it;
3459 - Invert conditions since we now use streqv.
3461 2011-10-05 Raphaël Pinson <raphink@gmail.com>
3463 Replace sep_spc? with sep_opt_spc in bbhosts.aug
3465 2011-10-05 Michael Chapman <mike@very.puzzling.org>
3467 Postfix_master: allow commas in commands
3468 Postfix daemons accept "-o name=value" to override main.cf configuration
3469 parameters, and the value can be a comma-separated value list.
3471 2011-10-05 Raphaël Pinson <raphink@gmail.com>
3473 Support \!include in mysql.aug
3475 2011-10-04 Raphaël Pinson <raphink@gmail.com>
3477 Various changes to keepalived.aug: - Implement vrrp_script; - Make spaces optional before lbracket; - Support track_interface, track_script and garp_master_delay; - Add ha_suspend and notify_*; - Add relinteger to rx.aug and use it in keepalived.aug.
3479 2011-10-03 Raphaël Pinson <raphink@gmail.com>
3481 Spaces are mandatory after # in bbhosts.aug
3483 2011-10-01 Marc Fournier <marc.fournier@camptocamp.com>
3485 nrpe: fixed #218 - error caused by unused '=' in lens
3487 2011-10-01 Dominic Cleal <dcleal@redhat.com>
3489 Multipath: add support for six options in the defaults section: dev_loss_tmo, max_polling_interval, verbosity, reassign_maps, fast_io_fail_tmo, async_timeout
3492 2011-09-12 Raphaël Pinson <raphink@gmail.com>
3494 Support more ranges in cron.aug
3496 Flags also can be indented in mysql.aug
3498 2011-09-09 Raphaël Pinson <raphink@gmail.com>
3500 Allow indented entries in php.aug
3502 { can be followed by spaces in xinetd.aug
3504 Allow indented entries in mysql.aug
3506 Allow empty lines after includedir
3508 includedir statements are not part of sections in mysql.aug
3510 2011-09-07 Raphaël Pinson <raphink@gmail.com>
3512 Hooks without any lines are valid in logrotate.aug
3514 Allow spaces after 'endscript' in logrotate.aug
3516 2011-09-06 Raphaël Pinson <raphink@gmail.com>
3518 Various fixes in bbhosts.aug
3520 Fix empty lines support in fai_diskconfig.aug
3522 2011-09-05 Raphaël Pinson <raphink@gmail.com>
3524 Add functionalities, refactor volume by type of disk_config entry and add tests to fai_diskconfig.aug
3526 2011-09-01 David Lutterkort <lutter@redhat.com>
3528 * src/pathx.c (nodeset_as_regexp): match nothing if nodeset is empty
3529 This makes sure that constructs like 'glob(no_such_node)' or
3530 'regexp(no_such_node)' in path expressions never match anything, which is a
3531 better default than the empty regexp that was produced before.
3533 2011-09-01 Francis Giraldeau <francis.giraldeau@gmail.com>
3535 Fix run single command with autosave
3536 This patch fixes autosave in the case only one command is provided as
3537 arguments and adds a test that checks proper handling of this case.
3539 2011-08-31 Francis Giraldeau <francis.giraldeau@gmail.com>
3541 Disable autoload transform for the fai_diskconfig
3542 Autoload transform with only standard exclude makes failing the glob_for_lens
3543 xpath test. fai_diskconfig does this. As a temporary fix, we disable transform
3544 from fai_diskconfig.
3546 2011-08-31 Francis Giraldeau <francis.giraldeau@gmail.com>
3548 Adding ssh client lens
3549 This lens parses the client side configuration directives of ssh.
3551 Thanks to Jiri Suchomel for this contribution.
3553 2011-08-30 Raphaël Pinson <raphink@gmail.com>
3555 Add fai_diskconfig.aug and test
3557 Allow semicolons in shellvars.aug, add non regression test
3559 2011-08-21 Francis Giraldeau <francis.giraldeau@gmail.com>
3562 Stunnel provides SSL tunnel for daemons. The configuration is based on the ini
3565 Thanks to Oliver Beattie that contributed this lens.
3567 2011-08-16 David Lutterkort <lutter@redhat.com>
3569 Fix uses of Spacevars as a utility module
3570 - add Build.key_ws_value to do the same as Spacevars.entry
3571 - expand uses of (Spacevars.lns l) into the more explicit (comment|empty|l)*
3573 This fixes test breakage introduced by commit 4840c7ab
3575 2011-08-11 Francis Giraldeau <francis.giraldeau@gmail.com>
3577 Proper test for eolwhite space handling
3578 By reformating eol of pupperfileserver test, it's possible to make both git and
3581 2011-08-11 Francis Giraldeau <francis.giraldeau@gmail.com>
3583 Remove trailing white spaces from puppet test
3584 Trailing white lines are valid in a puppet file, but the test is rejected when
3585 pushing to master git repository.
3587 remote: lenses/tests/test_puppetfileserver.aug:20: trailing whitespace.
3589 remote: error: hook declined to update refs/heads/master
3590 ! [remote rejected] master -> master (hook declined)
3592 Removing white space for now.
3594 2011-08-11 Dominic Cleal <dcleal@redhat.com>
3596 PuppetFileserver: support same-line comments and trailing whitespace (2.7.3rc1)
3599 2011-08-10 David Lutterkort <lutter@redhat.com>
3601 Spacevars: rename toplevel lens to lns
3602 Leave simple_lns as an alias for backwards compatibility
3604 2011-08-08 David Lutterkort <lutter@redhat.com>
3606 * examples/fadot.c: accept -h option to print usage
3608 2011-07-25 David Lutterkort <lutter@redhat.com>
3610 .gitignore: ignore tests/test-run
3614 Minor fixes to make distcheck pass
3616 2011-07-22 David Lutterkort <lutter@redhat.com>
3618 path expressions: parse [expr1 or expr2] correctly
3619 Since commit ea010d85, we would interpret the predicate [e1 or e2] as
3620 matching any node with a child labelled 'e1 or e2'; this patch restores the
3621 semantics that the predicate is true if either e1 or e2 are true. It does
3622 the same for [e1 and e2]
3624 Of course, this is a heinous hack.
3626 2011-07-22 David Lutterkort <lutter@redhat.com>
3628 Migrate tests from test-mv.sh into run.tests
3630 aug_srun: new API call
3632 aug_mv: report EMVDESC if move would move a node into its descendant
3634 path expressions: produce straight augeas errors when it makes sense
3635 Some errors, especially matching no nodes or multiple nodes in
3636 pathx_expand_tree can be directly translated to AUG_ENOMATCH and
3637 AUG_EMMATCH, and there's no need to give pathx details about the error
3639 Fix some of the errors reported by coverity
3640 These are some of the errors by running coverity on augeas 0.8.0
3642 2011-07-18 Mathieu Arnold <mat@FreeBSD.org>
3644 Aliases: allow spaces and commas in aliases; add docs
3646 2011-07-11 Dominic Cleal <dcleal@redhat.com>
3648 Sudoers: support users:groups format in a Runas_Spec line for sudo -g
3651 2011-07-11 David Lutterkort <lutter@redhat.com>
3653 * tests/test-bug-1.sh: fix test
3654 The test caused an augtool failure for all the wrong reasons
3656 2011-07-06 David Lutterkort <lutter@redhat.com>
3658 Php: include files from Zend community edition
3661 2011-07-06 Craig Dunn <craig@craigdunn.org>
3663 Properties: new lens for Java properties files
3666 2011-07-01 Dominic Cleal <dcleal@redhat.com>
3668 Grub: allow "bootfs" Solaris/ZFS extension for dataset name
3671 2011-07-01 John Morrissey <jwm@horde.net>
3673 Spacevars: add two more filse to parse by default
3676 2011-07-01 David Lutterkort <lutter@redhat.com>
3678 Interpret escape sequences in function regexp() in path expressions
3679 The wildcard character '.' in regular expressions, just as in the rest of
3680 Augeas, does not match an end of line. It is therefore crucial to be able
3681 to write '(.|\n)' to match any character, including newlines.
3683 * src/regexp.h: (make_regexp_unescape): new function; (make_regexp_dup)
3685 * src/regexp.c: (make_regexp_unescape): new function; (make_regexp_dup)
3687 * src/pathx.c: (nodeset_as_regexp, func_regexp_or_glob): use
3688 make_regexp_unescape
3690 2011-06-29 Dominic Cleal <dcleal@redhat.com>
3692 Sudoers: add CSW paths, /opt/csw/etc and /etc/opt/csw/sudoers
3694 Sudoers: allow same-line comments
3697 2011-06-29 Dominic Cleal <dcleal@redhat.com>
3699 Util: allow comment_or_eol to match empty comments containing only whitespace
3700 Services: add test for line with a whitespace-only comment
3704 2011-06-29 David Lutterkort <lutter@redhat.com>
3706 * tests/test-bug-1.sh: fix broken logrotate file
3708 2011-06-08 Raphaël Pinson <raphink@gmail.com>
3710 Implement multiline values in inifile.aug
3712 2011-05-14 David Lutterkort <lutter@redhat.com>
3714 * src/augeas.c (static_nodes): add list of pathx functions to /augeas/version
3716 2011-05-12 David Lutterkort <lutter@redhat.com>
3718 Grub: allow kernel path to start with a device like (hd0,0)
3721 * examples/fadot.c: include <config.h>, link against GNULIB
3723 2011-05-10 David Lutterkort <lutter@redhat.com>
3725 tests: expand what the valgrind target runs
3727 * src/pathx.c: rename CHECK_ERROR{,_RET0} to RET{,0}_ON_ERROR
3728 This should make it harder to misuse them and cause memory leaks
3730 * src/pathx.c (ns_from_locpath, parse_relative_location_path): free memory on error
3732 * tests/test-xpath.c: allow running individual tests from the command line
3734 * src/pathx.c: fix leaking of function arguments
3736 path expressions: allow concatenating strings and regexps with '+'
3738 path expressions: add operator '!~'
3740 path expressions: add 'glob' function that constructs regexps from globs
3742 regexp: add make_regexp_from_glob to convert globs to regexps
3744 regexp: add convenience function make_regexp_dup
3746 path expressions: allow passing a nodeset to function regexp
3748 * src/pathx.c (check_app): allow overloaded functions
3749 Make it possible to have multiple functions with the same name, but
3750 different signatures. All variants of a function must have the same arity,
3751 they can only differ in their return type and the types of the arguments.
3753 Keep a dummy struct info in struct error for convenience
3754 * src/errcode.h (struct error): at a info member
3755 * src/augeas.c (aug_init): set up the struct info in struct error;
3756 (aug_close): free the struct info in struct error
3758 * src/augtool: store history in ~/.augeas/history
3760 2011-05-04 David Lutterkort <lutter@redhat.com>
3762 Xorg: accept InputClass section
3764 2011-05-03 David Lutterkort <lutter@redhat.com>
3766 Xorg: autoload from /etc/X11/xorg.conf.d/*.conf
3767 Based on patch by manugupta
3771 2011-04-29 David Lutterkort <lutter@redhat.com>
3773 test root: add a few more files
3775 2011-04-29 David Lutterkort <lutter@redhat.com>
3777 path expressions: allow whitespace inside names
3778 This makes the path expression '/files/etc/foo bar/baz' legal, i.e. it is
3779 no longer necessary to escape whitespace in path expressions.
3783 2011-04-15 David Lutterkort <lutter@redhat.com>
3787 Iptables: handle --tcp-flags
3790 2011-04-14 David Lutterkort <lutter@redhat.com>
3792 * src/augtool.c: respect autosave flag when executing a single command
3795 2011-04-13 Erinn Looney-Triggs <erinn.looneytriggs@gmail.com>
3797 Grub: support the 'device' directive for UEFI boot
3800 2011-04-13 David Lutterkort <lutter@redhat.com>
3802 Access: support the format @netgroup@@nisdomain
3805 * lenses/tests/test_fstab.aug: test that we parse SELinux context correctly
3807 2011-03-25 David Lutterkort <lutter@redhat.com>
3809 Httpd: remove duplicate inclusion of /etc/httpd/conf/httpd.conf
3811 2011-03-25 Bill Pemberton <wfp5p@virginia.edu>
3813 Deal with continuation lines in httpd.aug
3814 Apache allows config lines to be continued with a backslash, but the
3815 lens couldn't deal with it. Change the value sep_spc to deal with
3816 continuation lines as found in interfaces.aug
3818 Enable the test for continuation lines in test_httpd.aug
3820 2011-03-25 Bill Pemberton <wfp5p@virginia.edu>
3822 Add /etc/httpd/conf/httpd.conf to the filter list for httpd.aug
3824 Allow blank and comment lines throughout config file in iptables
3826 Exclude /etc/yum/pluginconf.d/versionlock.list from yum.aug
3827 The versionlock plugin puts a file in /etc/yum/pluginconf.d that is
3828 not a yum config file so yum.aug shouldn't try to parse it.
3830 2011-03-23 David Lutterkort <lutter@redhat.com>
3832 Mysql: include /etc/my.cnf used on Fedora/RHEL
3833 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688053
3835 Httpd: include /etc/httpd/conf/httpd.conf used on Fedora/RHEL
3836 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688149
3838 2011-03-22 David Lutterkort <lutter@redhat.com>
3840 * src/lexer.l: fix a few compilation warnings
3842 Eliminate global variable 'comment_depth' in lexer
3844 2011-03-19 Francis Giraldeau <francis.giraldeau@gmail.com>
3846 Add support for configfile and background in grub
3847 Test for the new configuration directives are also provided.
3849 Thanks to Onur Küçük for the patch.
3851 2011-03-18 Raphaël Pinson <raphink@gmail.com>
3853 #include is also valid in sudoers.aug
3855 Add support for #includedir in sudoers.aug and test (ticket #188)
3857 2011-03-17 Francis Giraldeau <francis.giraldeau@gmail.com>
3859 Support sudoers in nsswitch.aug
3860 nsswitch.conf support a configuration item to specify database backend, this
3861 commit adds the support for it.
3865 Thanks to thefoxbox for the enhancement
3867 2011-03-17 Francis Giraldeau <francis.giraldeau@gmail.com>
3869 Fix unmatch bracket causes segfault in augtool.c
3870 When command is parsed in augtool, function nexttoken verify that path has
3871 valid and matching brackets and return NULL if not. The function cleanpath that
3872 follows was not handling the NULL case, leading to a segmentation fault. By
3873 checking for NULL value, the error is thrown adequately.
3877 Thanks to spamaps for the help to resolve this issue.
3879 2011-03-16 David Lutterkort <lutter@redhat.com>
3881 * src/lexer.l (augl_init_lexer): really close the input file on error
3883 2011-03-16 Richard W.M. Jones <rjones@redhat.com>
3885 Add FreeBSD /etc/rc.conf file to Shellvars lens.
3887 2011-03-15 David Lutterkort <lutter@redhat.com>
3889 Replace erroneous assert(0) with proper error report
3890 * src/put.c (create_union): report an error to the user if none of the
3892 * lenses/tests/test_shellvars.aug: add a test to trigger that code path
3897 2011-03-10 David Lutterkort <lutter@redhat.com>
3899 * src/augeas.c (aug_init): check return value of argz_* for ENOMEM
3901 2011-03-10 Matthew Booth <mbooth@redhat.com>
3903 Fix parsing of fstab entries containing fscontext SELinux option
3904 Systems using SELinux can contain an fstab option like:
3905 fscontext=system_u:object_r:removable_t
3907 The fstab lens is currently too strict, and doesn't allow colons in the value.
3908 This patch relaxes the parsing to make it as lax as possible within the
3909 constraints of the syntax.
3911 2011-03-08 David Lutterkort <lutter@redhat.com>
3913 Be more defensive about closing input files for the lexer
3915 2011-03-04 David Lutterkort <lutter@redhat.com>
3917 Explain using ./src/try
3918 * HACKING: document the various modes of using ./src/try
3919 * src/try: read commands from build/augcmds.txt rather than /tmp; use a
3920 more sensible default if augcmds.txt does not exist
3922 2011-03-03 Matthew Booth <mbooth@redhat.com>
3924 Use getopt-gnu from gnulib for AIX support
3926 Update to gnulib commit c2090a8
3927 Required for updated getopt-gnu license.
3929 2011-03-03 Raphaël Pinson <raphink@gmail.com>
3931 Remove trailing spaces in lenses/tests/test_nagiosobjects.aug
3933 Add nagiosobjects.aug based on Sebastien Aperghis' work.
3935 Remove trailing spaces in nagioscfg.aug
3937 Improve nagioscfg.aug as per Sebastien Aperghis' work.
3939 2011-03-02 Raphaël Pinson <raphink@gmail.com>
3941 Fix single quotes support in httpd.aug.
3943 Support single quotes in httpd.aug. Add unit test for it in test_httpd.aug.
3945 2011-03-02 David Lutterkort <lutter@redhat.com>
3947 * tests/fatest.c (testManualAmbig): don't use '$' in variable names
3948 Breaks on, at least, AIX
3950 2011-03-02 Raphaël Pinson <raphink@gmail.com>
3952 Add Sep.equal, used in nrpe.aug
3954 Changes in nrpe.aug Remove wrong ^ in comment regex Use Util.comment_generic Use generic modules Improve NaturalDocs documentation
3956 2011-02-23 David Lutterkort <lutter@redhat.com>
3960 2011-02-23 David Lutterkort <lutter@redhat.com>
3962 Fix compile errors found by gcc 4.6.0
3963 There were several places that caused the new 'variable assigned but not
3966 The struct lens also contained the member jmt twice; it is now only
3967 available for L_REC lenses.
3969 2011-02-23 David Lutterkort <lutter@redhat.com>
3971 * src/info.h: include stdlib so we can use uint
3973 * tests/Makefile.am: distribute the test data in test-augtool/
3975 2011-02-23 Dominic Cleal <dcleal@redhat.com>
3977 Split Solaris multiboot argument for the kernel path into @path node (ticket #158)
3979 2011-02-22 Francis Giraldeau <francis.giraldeau@gmail.com>
3981 Add aug_span API function V2
3982 aug_span API function provides information about the node of the specified
3983 path. It sets the absolute path of the file name and spans of label, value
3984 and span inside the node. The span includes all matching chars of the actual
3985 lens and it's descendant. Hence, the top level node will span the entire file.
3986 It returns 0 in case of success and -1 if the node is not associated to a file
3987 or if the path is invalid. The main use case is to make possible to display
3988 the related file with the node elements hightlighted in a UI.
3990 The API option AUG_NO_NODE_SPAN provided to aug_init disable the allocation
3991 structures to keep node spans. It saves about 5% of memory for a typical
3994 * src/augeas.c : add aug_span implementation and option handling to aug_in
3995 according to the option /augeas/span in the tree
3996 * src/augeas.h : add declaration of aug_span and constants for option
3997 * src/augeas_sym.version : make the new function visible in libaugeas
3998 * src/augtool.c : add the "nodepos" command to augtool
3999 * src/get.c : gather filename, label, value and span spans if any
4000 * src/info.c : create and release functions for struct node_span
4001 * src/info.h : add definition of struct node_info
4002 * src/internal.h : add node_info to struct tree
4003 * src/transform.c : duplicate filename string
4004 * tests/test-load.c : 3 basic unit tests for general correct behavior
4006 2011-02-22 Raphaël Pinson <raphink@gmail.com>
4008 Add short options for --nostdinc, --noload and --noautoload Update manpage and pod accordingly
4010 Distribute bcprules.sty and xpath.txt
4012 2011-02-19 Raphaël Pinson <raphink@gmail.com>
4014 Add indented_title_label in inifile.aug Use indented_title_label in mysql.aug Adjust test for mysql.aug accordingly
4016 2011-02-18 Raphaël Pinson <raphink@gmail.com>
4018 Allow indentation for "iface" entries in interfaces.aug (Fix ticket #182) Add unit test for "iface" indentation
4020 2011-02-16 Francis Giraldeau <francis.giraldeau@gmail.com>
4022 Minor code format cleanup
4023 * Cut long lines to 80 chars
4026 Fix memory leak with recursive square lens
4028 2011-02-16 Raphaël Pinson <raphink@gmail.com>
4030 Remove trailing whitespaces in util.aug
4032 Add comment_c_style and comment_multiline Add empty_generic and make empty a call to it Add empty_c_style to complement comment_c_style
4034 2011-02-15 Francis Giraldeau <francis.giraldeau@gmail.com>
4036 Fix segfault in get.c with L_MAYBE lens (bug#180)
4037 When a L_MAYBE lens was the last child of a L_CONCAT inside a L_SUBTREE, then
4038 the match in visit_exit top_frame(rec_state)->lens == lens->child was true,
4039 causing combine of a frame when it shouldn't. This test is true because there
4040 is no other lens following in the concat in this special case, hence the top
4041 frame matched the child of the L_MAYBE.
4043 To avoid this special case, we propose to push L_MAYBE lens on the frames
4044 stack. If L_MAYBE is encountered in visit_exit, we pop at least one frame and
4045 two if the child match. This way, the stack is always valid.
4047 Closes trac ticket #180.
4049 2011-02-15 Raphaël Pinson <raphink@gmail.com>
4051 Improve vim syntax file
4053 2011-02-14 David Lutterkort <lutter@redhat.com>
4055 man pages: update man page for augtool
4057 2011-02-14 Raphaël Pinson <raphink@gmail.com>
4059 augtool: add --interactive option
4060 This option runs an interactive shell after evaluating STDIN or an explicit
4063 2011-02-14 David Lutterkort <lutter@redhat.com>
4065 Mysql: change default comment delimiter from ';' to '#'
4066 Fixes bug #181 reported by devzero
4068 2011-02-06 Francis Giraldeau <francis.giraldeau@usherbrooke.ca>
4071 * Support unquoting for allow/deny statements
4072 * Append new line to block statement braces by default
4073 * Add missing string and integer statements according to man dhcpd.conf
4074 * Remove trailing white space from the lens file
4076 Replace seq by label in option list
4078 The counter/seq doesn't garantee that node label "1" will get at the first
4079 position. Positional arguments are ordered, hence the sequence may be
4080 misleading. This is why a fixed label for sequence nodes are better.
4082 2011-01-28 Raphaël Pinson <raphink@gmail.com>
4084 Support directives without arg in httpd.aug
4085 * Use sep.aug in httpd.aug Modify Sep.opt_space to make it fit the
4086 definition in httpd.aug (it's only used here)
4087 * Allow directives without arguments in httpd.aug
4088 * Adjust test_httpd.aug to test argument-less directives
4090 2011-01-25 Francis Giraldeau <francis.giraldeau@gmail.com>
4092 Fix httpd.aug doc, filter and add to checks
4093 * Added other contributors to authors
4094 * Changed the licence to LGPLv2+
4095 * Fix copy/paste error about config files
4096 * Added filters for Fedora and RHEL
4098 2011-01-25 Francis Giraldeau <francis.giraldeau@gmail.com>
4101 The Httpd lens parses Apache Web server configuration according to the manual.
4103 * Generic sections with square lens
4104 * Generic directives
4105 * Arguments of sections and directives are handled as list
4107 The lens doesn't support automatic quoting of string values, because arguments
4108 are separated by spaces and it raises ambiguity when using unquoting. The lens
4109 doesn't support either long lines splitted by backslash.
4111 2011-01-25 David Lutterkort <lutter@redhat.com>
4113 * src/pathx.c (store_error): make sure pos_str is always NUL terminated
4116 2011-01-19 Fred <frederic.lespez@free.fr>
4118 PuppetFileserver: new lens for Puppet's fileserver.conf
4120 2011-01-19 David Lutterkort <lutter@redhat.com>
4122 * man/augtool.pod: fix typos
4123 Fixes https://bugzilla.redhat.com/show_bug.cgi?id=628502
4125 2011-01-14 David Lutterkort <lutter@redhat.com>
4127 Allow compiling with NDEBUG defined
4128 * src/errcode.h (ensure0): do not mention 'error' label when NDEBUG is
4130 * src/pathx.c (coerce_to_bool, eval_pred): make sure we return something
4131 when assert(0) is compiled away
4133 2011-01-13 Francis Giraldeau <francis.giraldeau@gmail.com>
4135 Fix a small bashism from test script
4137 2011-01-13 David Lutterkort <lutter@redhat.com>
4139 Xorg: "position" in "screen" section is optional; allow "Extensions" section
4144 2011-01-11 David Lutterkort <lutter@redhat.com>
4146 Replace augtest by test-augtool.sh
4147 This removes the silly dependency on Ruby, since augtest was the only
4148 Ruby script in the whole source tree.
4150 The test files for test-augtool.sh live in tests/test-augtool, and are
4151 functionally identical to the Ruby test files tests/*.rb. The only
4152 exception is that test-root.rb has been removed - it tested something that
4153 is better tested in test-xpath.c
4155 The new test-augtool.sh test is also a little more efficient in that it
4156 only copies the file needed by a test into the root, and only sets the lens
4157 for that file up for loading. This reduces the runtime of the tests from ~
4158 30s on my machine to under 2s.
4160 2011-01-11 David Lutterkort <lutter@redhat.com>
4162 Test that getting and setting the root node works
4163 This tests the same thing that test-get.sh tests, but in a much more
4166 * src/pathx.c (store_error): never append to an uninitialized string
4168 * src/augtool.c: be a little more quiet
4169 Some of the commands used to print unconditionally; we now only print if we
4170 should be echoing (i.e., if --echo is given on the command line or if stdin
4173 2011-01-11 Fred <frederic.lespez@free.fr>
4175 Crypttab: new lens for /etc/crypttab
4177 2011-01-11 Raphaël Pinson <raphink@gmail.com>
4179 In autosave mode, print "save" when in echo or interactive mode. Remove comma at the end of enum list.
4181 2011-01-10 Raphaël Pinson <raphink@gmail.com>
4183 Refactor augtool.c to use only readline
4185 2011-01-10 Raphaël Pinson <raphink@gmail.com>
4187 augtool: add --autosave option
4188 Additional changes to augtool:
4189 * Define AUGTOOL_PROMPT as a constant
4190 * Do not print (null) lines when using --echo
4191 * Add test for --autosave in test-save-mode.sh
4195 2011-01-07 David Lutterkort <lutter@redhat.com>
4197 bootstrap: add sys_wait module
4200 2011-01-07 Dominic Cleal <dcleal@redhat.com>
4202 Add support for Solaris multiboot kernels with slashes in the first kernel argument (Fix ticket #158)
4204 Allow kernel$ and module$ extensions to GRUB for Solaris (Fix ticket #158)
4206 2011-01-07 David Lutterkort <lutter@redhat.com>
4208 Shellvars: read various snmpd config files
4213 2011-01-07 Dominic Cleal <dcleal@redhat.com>
4215 Solaris_system: new lens for /etc/system (Solaris)
4216 File is used to configure the kernel, module loading and parameters. The
4217 system(4) man page gives a good overview of the commands and a sample file:
4218 http://docs.sun.com/app/docs/doc/816-5174/system-4?l=en&n=1&a=view
4220 It supports moddir, rootdev, rootfs, exclude, include, forceload and set.
4221 The set tree is broken down quite a lot as the operator can vary (equals,
4222 bitwise AND and OR).
4224 2011-01-07 David Lutterkort <lutter@redhat.com>
4226 Resolv: allow comments starting with semicolon
4231 2011-01-03 Raphaël Pinson <raphink@gmail.com>
4233 Add automount, netmasks and sendmailvars keywords for databases in nsswitch.aug
4235 Add bootparams as database keyword (Fix ticket #171) Update test file accordingly
4237 2010-12-29 Raphaël Pinson <raphink@gmail.com>
4239 Rename "host" nodes as "origin" (breaks compatibility) Implement "except" keyword as a subtree Make origin_re less strict to fix comment #6 in ticket #166 Implement multiple users and netgroups Improve test file
4241 2010-12-28 Francis Giraldeau <francis.giraldeau@usherbrooke.ca>
4244 The XML lens parse arbitrary XML documents. Most, but not all features of XML
4245 standard are implemented, partially because the nature of augeas. Tests comes
4246 from OASIS test suite.
4249 * Document type declaration: elements, attlist, entity
4252 * XML processing instructions
4253 * Neested elements, including empty elements
4254 * Element attributes
4255 * Mixed content, text and elements
4259 * Single quotes attributes: double quotes is mandatory
4260 * External entity reference, because augeas can't load a related file within a lens
4261 * Document validation: augeas don't enforce DTD
4263 This lens doesn't respect the PutGet law, becuse of an ambiguity in union.put
4264 with text nodes. If a text node is created as a sibling of another text node, a
4265 put and a get will merge those two nodes. In practice, no error occur and this
4266 is a desirable behavior.
4268 2010-12-22 Raphaël Pinson <raphink@gmail.com>
4270 Fix ticket #169 and add unit tests by Sergio Ballestrero.
4272 2010-12-20 David Lutterkort <lutter@redhat.com>
4274 * src/pathx.c (func_regexp): do not SEGV on error; provide better error msg
4277 * when the passed in regexp had a syntax error, we would leave the
4278 interpreter variable at VIND uninitialised, but tagged as a regexp. As
4279 a result, we'd SEGV when that slot in the variable table is
4280 freed. Properly initialize slots in the variable table to NULL, and
4281 store the regexp as soon as it has been built (before compilation)
4282 there to address that.
4283 * when a regexp had a syntax error, we would just drop the details of the
4284 syntax error on the floor. We now include that in the error details so
4285 that the user has some hint to how the regexp is foobared
4287 # Please enter the commit message for your changes. Lines starting
4288 # with '#' will be ignored, and an empty message aborts the commit.
4290 # Changes to be committed:
4291 # (use "git reset HEAD <file>..." to unstage)
4293 # modified: src/pathx.c
4296 # (use "git add <file>..." to include in what will be committed)
4299 # doc/naturaldocs/conf/lenses/Menu_Backup.txt
4300 # doc/naturaldocs/conf/lenses/Menu_Backup_2.txt
4304 # tests/root/etc/network/
4305 # tests/root/etc/samba/
4306 # tests/root/etc/sysconfig/system-config-firewall
4308 2010-12-10 Francis Giraldeau <francis.giraldeau@usherbrooke.ca>
4310 Enable square lens in dump_lens
4312 2010-12-10 Francis Giraldeau <francis.giraldeau@usherbrooke.ca>
4314 Add square lens to language
4315 The new primitive square lens allows to handle XML like open and close tags.
4316 It takes 2 arguments, a regexp for the tag and a lens for the content. The
4317 square lens verify that open and close tags are matched in the get direction,
4318 and put direction handles the close tag by copying the key.
4320 * src/builtin.c: add "square" keyword to language
4321 * src/lens.c: lns_make_square to compile the lens from actual simpler
4323 * src/lens.h: append L_SQUARE to lens_tag enum to identify the square lens
4325 * src/jmt.c: handle square lens in parser
4326 * src/get.c: add char* square to state struct to hold the last L_DEL in
4327 square to perform syntax check, and add all get handling functions for
4329 * src/put.c: modify create_del to render current key when default string is
4330 NULL and add all put handling functions
4331 * tests/modules/pass_square.aug: unit tests to validate the square lens,
4332 regular and recursives
4334 2010-12-09 Francis Giraldeau <francis.giraldeau@usherbrooke.ca>
4336 Add test for lens-access.sh in Makefile
4338 2010-12-02 Raphaël Pinson <raphink@gmail.com>
4340 Relicense pg_hba.aug as LGPLv2+ as the rest of Augeas.
4342 2010-12-02 Lorenzo Dalrio <lorenzo.dalrio@gmail.com>
4344 Add access.aug and associated test file
4346 2010-12-02 Raphaël Pinson <raphink@gmail.com>
4348 Fix GPL into LGPLv2+ for a series of lenses.
4350 2010-11-24 Francis Giraldeau <francis.giraldeau@gmail.com>
4352 Ignore eclipse project files
4354 2010-11-22 Raphael Pinson <raphink@gmail.com>
4356 Add support for "map" entries in grub.aug and adapt test accordingly (Fix ticket #148)
4358 2010-11-19 David Lutterkort <lutter@redhat.com>
4362 2010-11-19 Raphaël Pinson <raphink@gmail.com>
4364 * lenses/util.aug: improve management of eol comments
4365 - add comment_generic
4366 - use comment_generic in comment
4368 - add comment_or_eol
4370 Use comment_eol and comment_or_eol in some lenses to fix default eol
4371 comment entries. Adapt tests for shellvars and services to take this new
4372 behaviour in consideration.
4374 2010-11-19 Raphaël Pinson <raphink@gmail.com>
4376 Add "indomU" Debian setting to grub.aug (Fix ticket #162)
4378 Allow "\" style newlines in syslog.aug and add corresponding test (Fix ticket #161).
4380 2010-11-18 Raphael Pinson <raphink@gmail.com>
4382 Make filter a View in sudoers.aug to make it appear properly in doc
4384 Improve doc on services.aug
4386 Add some doc to pg_hba.aug
4388 Add a bit of doc to pbuilder.aug
4390 Add all missing lenses to Menu.txt
4392 2010-11-18 Mathieu Arnold <mat@FreeBSD.org>
4394 Add syslog.aug and associated test file
4396 2010-11-18 Raphaël Pinson <raphink@gmail.com>
4398 resolve refresh_pattern into fields Parse "extension_methods" into a list break entries upgrade_http0.9 and broken_vary_encoding down similar to what http_access does
4401 2010-11-18 Mathieu Arnold <mat@FreeBSD.org>
4403 On FreeBSD (at least) the sudoers file is in /usr/local/etc/.
4405 2010-11-18 Francis Giraldeau <francis.giraldeau@gmail.com>
4407 Parse ulimit builtin in shellvars.aug (fix ticket #73).
4409 Accept double quotes in arguments in postfix_master.aug, fix bug# 69
4411 2010-11-18 David Lutterkort <lutter@redhat.com>
4413 * tests/Makefile.am (lens_tests): add tests for new lenses
4415 2010-11-18 David Lutterkort <lutter@redhat.com>
4417 Krb5 (realm_re, app_re): allow digits in realm names
4418 Still makes the incorrect assumption that realm names start with an upper
4419 case letter, and app names with a lower case one, but it's an improvement
4420 over the current restrictions.
4422 Fixes bug https://fedorahosted.org/augeas/ticket/139
4424 2010-11-18 Matthew Booth <mbooth@redhat.com>
4426 Fix crasher in ast.c:dict_pos on i686 with gcc 4.5 and -O2
4427 This patch works around what appears to be an optimization bug in gcc 4.5. The
4428 symptom of the bug is that dict_pos, called from dict_lookup, receives an
4429 invalid value when accessing dict->used. The following ticket describes the bug,
4430 and includes a simple test case:
4432 https://fedorahosted.org/augeas/ticket/149
4434 Adding a printf to dict_lookup immediately before the dict_pos call reveals that
4435 dict->used has a value of 30 in the crashing case on my F14 system. A printf
4436 added to the first line of dict_pos shows dict->used has an apparent value of
4437 16777246. This causes an invalid array lookup shortly afterwards, which causes
4438 the crash. 16777246, interestingly, is 2^24 + 30, where 24 is the size of the
4439 dict->used bitfield. This should obviously not be possible, suggesting either a
4440 compiler bug or undefined behaviour due in incorrect use of the language. Having
4441 re-read the relevant section of K&R, I can't see anything about this use of
4442 bitfields which might be a problem, except that: 'Fields may be declared only as
4443 ints; for portability, specify signed or unsigned explicitly.' uint32_t resolves
4444 to 'unsigned int' on i686, and in any case, replacing it with 'unsigned int'
4445 does not solve the problem. As it stands, I believe this is a bug in the
4448 The above ticket contains an alternate patch which copies dict in dict_pos,
4449 which also prevents the crash. However, adding anything to dict_pos which
4450 prevents the compiler from optimising dict away achieves the same result. For
4455 This patch instead removes the bitfields in struct dict. While this is a
4456 workaround, these bitfields save at most 1 word of memory per struct, but at the
4457 cost of mis-aligned access. The patch does not increase the size of
4458 dict_max_size to UINT32_MAX, as the lower maximum serves as a better guard
4459 against runaway memory allocation.
4461 2010-11-17 Raphael Pinson <raphink@gmail.com>
4463 Allow underscore in chain_name for iptables.aug and adjust test accordingly.
4465 2010-11-17 Erinn Looney-Triggs <erinn.looneytriggs@gmail.com>
4467 Add login_defs.aug and associated test file.
4469 2010-11-14 Marc Fournier <marc.fournier@camptocamp.com>
4471 pg_hba: added debian systems path to filter - fixes #154.
4473 util.aug: exclude unneeded files on debian systems (fix ticket #153)
4475 2010-11-05 Raphael Pinson <raphink@gmail.com>
4477 Map comments and use Util.comment and Util.empty in order to full fix ticket #151. Adapt test accordingly.
4479 Allow indented lines in aptsources.aug (Fix ticket #151) and add associated test
4481 Allow "=" as a separator for title in grub.aug (Fix ticket #150) and adapt test accordingly.
4483 2010-11-04 Raphael Pinson <raphink@gmail.com>
4487 2010-11-02 Raphael Pinson <raphink@gmail.com>
4489 Add a few lenses to Menu.txt
4491 Add shells.aug and associated test
4493 2010-11-01 Raphael Pinson <raphink@gmail.com>
4495 Add mke2fs.aug and associated test
4497 2010-10-31 Raphael Pinson <raphink@gmail.com>
4499 Add support for rpc services in inetd.aug, rework lens to allow it and add tests accordingly.
4501 Parse option values in fstab.aug, adapt test file accordingly.
4503 Map service names in node values instead of node names to prevent variable node names.
4505 2010-10-29 Raphael Pinson <raphink@gmail.com>
4507 Add /etc/mtab to known files
4509 2010-10-28 Raphael Pinson <raphink@gmail.com>
4511 Fix paramater into parameter in ND comment
4513 2010-10-27 Raphael Pinson <raphink@gmail.com>
4515 Use generic modules in bbhosts.aug
4517 2010-10-26 Francis Giraldeau <francis.giraldeau@gmail.com>
4519 Fixes bug #144: wrong behavior of iter concat
4520 This patch fix the list_tail_cons macro to fastforward the tail list when
4521 the first item is added to the list, otherwise if the first item added when
4522 the list is NULL has two item, the tail points the the first item.
4524 2010-10-26 Raphael Pinson <raphink@gmail.com>
4526 Fix filter to use proper file
4528 Remove trailing whitespace
4530 Add nsswitch.aug and associated test
4532 2010-10-26 Francis Giraldeau <francis.giraldeau@gmail.com>
4534 Add debugging information about lens hierarchy
4535 When compiled with --enable-debug, will compile a function to output the lens
4536 hierarchy in dot files. Enable this specific debug info with
4539 2010-10-26 David Lutterkort <lutter@redhat.com>
4541 Sudoers: allow 'visiblepw' parameter flag
4542 Fix provided by christj. Fixes bug #143
4544 2010-10-26 Francis Giraldeau <francis.giraldeau@gmail.com>
4546 Add clearm command to augtool
4547 The clearm command is the same as setm, but sets the node value to
4548 NULL in place of a string, suitable in some use case.
4552 2010-10-26 Raphael Pinson <raphink@gmail.com>
4554 /etc/sudoers.d is now supported (at least in Debian and Ubuntu)
4556 Add resolv.aug and test
4558 2010-10-14 Aurelien Bompard <aurelien@bompard.org>
4560 Pg_hba: new lens and test
4563 2010-09-30 Raphaël Pinson <raphink@gmail.com>
4565 Add a few lenses to Menu.txt
4567 Use Rx.ipv4 and Rx.integer in openvpn.aug
4569 Use generic modules Rx, Sep and Build in keepalived.aug
4571 Add email_addr to rx.aug
4575 Improve documentation of build.aug
4577 2010-09-29 Raphaël Pinson <raphink@gmail.com>
4579 Move Build, Rx and Sep into Generic Modules, add Keepalived
4581 2010-09-24 Raphaël Pinson <raphink@gmail.com>
4583 Improve keepalived.aug
4585 2010-09-23 Raphaël Pinson <raphink@gmail.com>
4587 Add a lens for keepalived.conf and associated test
4589 2010-09-23 David Lutterkort <lutter@redhat.com>
4591 Preserve parse errors under /augeas//error
4592 With the changes in commit 5ee81630, a subtree in /augeas/files that is
4593 dirty after trying to load all files indicates a file that was loaded
4594 before, but is not loaded anymore (e.g., because the set of lenses changed
4595 since the last time we loaded) In that situation, both the subtree in
4596 /augeas/files as well as the corresponding subtree in /files is deleted.
4598 The code in store_error, which is called by load_file when a parse error
4599 happens, would leave that subtree in /augeas/files dirty. This commit fixes
4600 that by making sure we mark the error entries as clean. It also revamps
4601 store_error to use the lighter-weight tree_xxx functions instead of the
4606 2010-09-21 Raphaël Pinson <raphink@gmail.com>
4608 * src/augtool.c: add -f|--file option to get commands from an input file
4610 2010-09-21 Marc Fournier <marc.fournier@camptocamp.com>
4612 Nrpe: new lens and tests.
4614 Odbc: new lens and tests.
4616 2010-09-15 David Lutterkort <lutter@redhat.com>
4618 When setting a tree node to the value it already has, do not modify the tree
4620 2010-09-09 David Lutterkort <lutter@redhat.com>
4622 * src/try: add an optioj to strace augtool
4624 2010-09-09 David Lutterkort <lutter@redhat.com>
4626 Properly record the new mtime of a saved file in the tree
4627 transform_save used to pass an incorrect file name to add_file_info (the
4628 name was missing the root prefix), leading to an mitme of 0 for all saved
4629 files. That in turn causes freshly saved files to be unnecessarily reloaded
4630 on the next aug_load.
4632 * src/transform.c (mtime_as_string): tolerate a NULL filename, and return
4633 an mtime of 0; (transform_save): pass the full file name, including the
4634 root to add_file_info
4635 * tests/test-load.c (testReloadDeletedMeta): the test is now
4636 time-sensitive; to work around that, set the mtime of the changed tree
4637 to the original mtime of the file
4638 * tests/test-save.c (testMtime): verify that we record the actual mtime
4639 and not just 0 in the tree after a save.
4641 Thanks to Laine Stump for spotting this
4643 2010-08-27 Francis Giraldeau <francis.giraldeau@gmail.com>
4646 * Modify separator for list values to accept simple spaces
4647 * Add all alternatives for baseurl and gpgkey
4648 * Add tests to verify the correct behavior
4650 2010-08-27 David Lutterkort <lutter@redhat.com>
4652 * bootstrap: add locale module from gnulib
4655 2010-08-16 David Lutterkort <lutter@redhat.com>
4657 Yum: accept continuation lines for gpgkey
4660 2010-08-16 Francis Giraldeau <francis.giraldeau@gmail.com>
4662 * src/get.c (visit_exit): fix segfault from empty stack for L_MAYBE
4665 2010-08-06 David Lutterkort <lutter@redhat.com>
4669 2010-08-06 David Lutterkort <lutter@redhat.com>
4671 Fix behavior of aug_defnode
4672 (1) Make sure that the definition of the variable is recorded under
4674 (2) Do not report an error if the expression evaluates to a non-empty
4677 * src/augeas.c (aug_defvar): split creating metadata under
4678 /augeas/variables into record_var_meta; (aug_defnode): do not return an
4679 error when expr evaluates to nonempty node set; record variable
4681 * tests/test-api.c: add tests for defvar and defnode behavior
4683 2010-08-05 David Lutterkort <lutter@redhat.com>
4685 Use pathx_aug_parse rather than pathx_parse in various places
4686 Since pathx_aug_parse makes sure the symbol table stays updated, use
4687 pathx_aug_parse whereever that makes sense.
4689 Rename parse_user_pathx to pathx_aug_parse
4690 * internal.h (pathx_aug_parse): new protoype
4691 * augeas.c (pathx_aug_parse): renamed, add optional arg for a different
4694 2010-08-05 David Lutterkort <lutter@redhat.com>
4696 Fix BZ 613967 - memory corruption on reloading externally modified file
4697 The problem was that when we replaced the old tree for a file with the new
4698 one we just read from the file, the replace operation did not update
4699 nodesets in variables, since we did not pass the global symtab into
4702 * src/internal.h (tree_replace): pass in struct augeas, so that we have
4703 access to the global symtab
4704 * src/augeas.c (tree_replace): make sure we create the pathx with the
4706 * src/transform.c (load_file): adapt to new prototype for tree_replace
4707 * tests/test-load.c (testReloadExternalMod): test that we do not segfault
4708 when a file was modified externally
4710 2010-08-05 David Lutterkort <lutter@redhat.com>
4712 Test root: mimick the setup of grub config files on Fedora more closely
4713 * root/etc/grub.conf: symlink to root/boot/grub/grub.conf
4714 * root/boot/grub/grub.conf: new file with contents of /etc/grub.conf
4715 * root/boot/grub/menu.lst: symlink to grub.conf
4717 2010-08-03 Raphael Pinson <raphink@gmail.com>
4719 Sudoers: allow escaped spaces in user/group names
4722 2010-07-26 David Lutterkort <lutter@redhat.com>
4724 Limits: also look for files in /etc/security/limits.d
4725 Suggested by David Timms
4727 2010-07-23 Tim Stoop <tim.stoop@gmail.com>
4729 Mysql: lens for MySQL's *.cnf files
4731 2010-07-23 David Lutterkort <lutter@redhat.com>
4733 Sysconfig: new lens for a subdialect of shell
4734 Using shell files with simple variable assignments is a very popular config
4735 file format. The Shellvars lens doesn't serve those files perfectly well,
4736 since it tries to preserve details important for general shell scripts that
4737 are ignored by sysconfig files.
4739 This lens is a variation on Shellvars that changes a few important aspects
4742 * Strip quotes from values when reading a file, and restore quotes as
4744 * Pretend there's no difference between single and double quotes (this
4745 assumption makes it possible to add quotes as needed solely based on
4747 * Do not support shell arrays or backticks; support for these could be
4748 restored by somebody sufficiently motivated, though neither of them
4749 should be used in a sysconfig file
4751 The lens doesn't autoload any files yet, though we should consider moving
4752 most of the files that Shellvars loads over to this lens.
4754 2010-07-23 David Lutterkort <lutter@redhat.com>
4756 * src/lens.c (lns_check_rec): allow 'let rec' with regular RHS
4757 If the user writes 'let rec l = rhs' and the RHS does not mention l, just
4758 mark the lens as regular and carry on.
4760 2010-07-21 David Lutterkort <lutter@redhat.com>
4762 * src/syntax.c (load_module_file): make sure we report an error
4764 2010-07-21 David Lutterkort <lutter@redhat.com>
4766 Fix segfault in glue routines; add test for the fix
4767 The tree_*_glue functions did not set the error struct when parsing a path;
4768 this caused a segfault when trying to insert before/after a non-existant
4769 node, since tree_insert tried to report the error into a struct error that
4774 2010-07-21 David Lutterkort <lutter@redhat.com>
4776 * src/syntax.c (compile_test): reset errors at the end of the test
4777 Otherwise, we can't have tests succeed after tests failed intentionally (by
4778 making their result '= *')
4780 * src/errcode.h (reset_error): new function
4781 * src/augeas.c (api_entry): use reset_error
4782 * src/errcode.c (reset_error): new function, with code from api_entry
4783 * src/errcode.h (reset_error): add prototype
4785 2010-07-20 Francis Giraldeau <francis.giraldeau@gmail.com>
4787 * src/put.c (split_concat): fix memory leak when split doesn't match
4789 2010-07-19 David Lutterkort <lutter@redhat.com>
4791 Use gnulib from a submodule
4792 This allows us to record the exact changeset from gnulib that everybody
4795 2010-07-19 Frederik Wagner <fnerdwq@googlemail.com>
4797 Added /etc/sysconfig/suseconfig to shellvars lens.
4799 2010-07-08 Francis Giraldeau <francis.giraldeau@gmail.com>
4801 Adding is_scan in the condition to accept an item
4803 2010-06-30 Matthew Booth <mbooth@redhat.com>
4805 Device_map: new lens for grub's device.map
4807 2010-06-29 David Lutterkort <lutter@redhat.com>
4809 Avoid unnecessary file parsing when reloading the tree
4810 We used to reparse every file we knew about upon aug_load. Now, we only
4811 reparse files if the file has changed on disk.
4813 We test a few scenarios to make sure aug_load retains its behavior of
4814 obliterating the tree and filling it with the latest from disk. This
4815 includes throwing away unsaved changes or trees that have been deleted.
4817 2010-06-29 David Lutterkort <lutter@redhat.com>
4819 Add utility tree_store_value to avoid unnecessary strdup's
4820 * src/internal.h (tree_store_value): add prototype
4821 * src/augeas.c (tree_store_value): new function; (tree_set_value): use
4824 Make tree_clean available outside of augeas.c
4825 * src/augeas.c (tree_clean): remove 'static'
4826 * src/internal.h (tree_clean): add prototype
4828 2010-06-29 David Lutterkort <lutter@redhat.com>
4830 Add xstrtoint64 to internal.[ch]
4831 The implementation is directly from libvirt
4833 * src/internal.h (xstrtoint64): add prototype
4834 * src/internal.c (xstrtoint64): add impl
4836 2010-06-29 David Lutterkort <lutter@redhat.com>
4838 * src/test-load.c (testLoadSave): work off a writable /etc/hosts
4839 This addresses a FIXME that could lead to use not detecting incorrect behavior
4841 Move 'run' test utility to cutest.[ch]
4842 * tests/cutest.h (run): add prototype
4843 * tests/cutest.c (run): add impl
4844 * tests/test-save.c (run): remove
4846 2010-06-29 David Lutterkort <lutter@redhat.com>
4848 Redefine all variables upon load
4849 This is a slight change in behavior: before, we used to just discard the
4850 contents of all variables upon load. Now, we redefine variables by
4851 evaluating the expression with which they were defined initially again.
4853 The change in behavior is backwards compatible, since at worst, users will
4854 redefine variables themselves after an aug_load
4856 2010-06-29 David Lutterkort <lutter@redhat.com>
4858 * src/augeas.c (aug_init): create /augeas/variables on startup
4860 * src/augeas.c (aug_defvar): use constants to create /augeas/variables
4862 2010-06-22 David Lutterkort <lutter@redhat.com>
4866 * augeas.spec.in: fix ownership of /usr/share/augeas
4869 2010-06-17 David Lutterkort <lutter@redhat.com>
4871 Test behavior of aug_setm
4872 * src/augeas.c (aug_setm): return number of modified nodes
4873 * tests/test-api.c (testSetM): compliance tests for aug_setm
4875 * src/augeas.c (aug_setm): do not segfault when sub is NULL
4877 2010-06-17 Frederik Wagner <fnerdwq@gmail.com>
4879 Tests for new aug_setm function
4880 Test through augtool calls.
4882 Exposed aug_setm to augtool.
4884 2010-06-17 David Lutterkort <lutter@redhat.com>
4887 * src/augeas.h (aug_setm): new public API call
4888 * src/augeas.c (aug_setm): implement setting multiple nodes
4889 * src/augeas_sym.version: export symbol aug_setm
4891 2010-05-24 Frederik Wagner <fnerdwq@googlemail.com>
4893 Shellvars: added SuSE sysconfig puppet files
4894 For SuSE systems, added /etc/sysconfig/{puppet,puppetmaster} to lens.
4896 2010-05-18 Frederik Wagner <fnerdwq@googlemail.com>
4898 List handling shellvars_list lens added.
4899 Lens shellvars_list has been added to treat variables in specific files
4900 as lists of words, e.g. in /etc/sysconfig/ 'kernel' and 'bootloader'.
4902 * lenses/shellvars.aug: removed include for /etc/sysconfig/kernel
4903 * lenses/shellvars_array.aug: new lens
4904 * lenses/tests/test_shellvars_array.aug: test for new lens
4906 2010-05-13 David Lutterkort <lutter@redhat.com>
4908 Add modules_conf to naturaldocs Menu
4910 Add /etc/modules.conf from hell
4911 Actually, from http://www.janerob.com/rob/ts5100/modules.conf
4913 2010-05-13 Matthew Booth <mbooth@redhat.com>
4915 Modules_conf: new lens for modules.conf and conf.modules
4917 Modprobe: Refactor to make re-use easier
4919 2010-05-11 David Lutterkort <lutter@redhat.com>
4921 * src/augeas.c: record expression for defvar in /augeas/variables
4923 2010-05-07 David Lutterkort <lutter@redhat.com>
4925 * Grub: handle comments within a boot stanza
4928 Adjust copyright notices
4929 - copyright is from creation of file through 2010
4930 - adjust copyright owner according to Red Hat's policy
4932 2010-05-04 Raphael Pinson <raphink@gmail.com>
4934 Group: add test for disabled account ('!' in password field)
4936 2010-04-27 seph <seph@directionless.org>
4938 Shellvars: process /etc/environment
4940 2010-04-26 Nicolas Valcárcel Scerpella <nvalcarcel@ubuntu.com>
4942 Iptables: also look for /etc/iptables-save
4943 This is where Debian keeps iptables rules
4945 2010-04-26 Frederik Wagner <fnerdwq@googlemail.com>
4947 securetty: added handling of emtpy lines/comments
4948 * lenses/securetty.aug:
4949 added handling of comments and empty lines
4950 * lenses/tests/test_securetty.aug:
4951 added test for enhanced lens
4953 2010-04-21 David Lutterkort <lutter@redhat.com>
4957 2010-04-21 Simon Josi <josi@puzzle.ch>
4959 Securetty: new lens and test for /etc/securetty
4961 2010-04-21 David Lutterkort <lutter@redhat.com>
4963 Sudoers: use example file from Fedora 13
4964 This is causing trouble with release-0.7.0, but not this revision.
4966 File was reported in bug #122
4968 2010-04-21 David Lutterkort <lutter@redhat.com>
4970 tests: make most tests work on Solaris
4971 The test scripts are full of bashisms; removed some of them, though for
4972 most, just changed the shell from /bin/sh to /bin/bash; removing bashisms
4973 will need to be addressed.
4975 Tests now mostly pass (82/85) on the OpenCSW Solaris 5.10 build machine
4977 2010-04-21 David Lutterkort <lutter@redhat.com>
4979 * tests/test-save.c: use proper includes for WIFEXITED
4980 Without them, the build fails on FreeBSD
4982 2010-04-20 David Lutterkort <lutter@redhat.com>
4984 Debctrl (multi_line_entry): fix bad regexp
4985 The lens 'del /^ / " "' is not valid, since we do not allow '^' as a meta
4986 character. Changing that to 'del / / " "' exposed a typecheck problem in
4987 lns: both multi_line_entry and eol match blank lines. Fixed this by
4988 requiring that a multi_line_entry has to have at least one non-blank
4991 Debctrl: whitespace cleanup, no functional change
4993 2010-04-20 David Lutterkort <lutter@redhat.com>
4995 * src/fa.c (re_iter_as_string): escape literal '|'
4996 When turning a FA back to a string, a literal '|' needs to be output as '\|'
4998 * tests/fatest.c (testExpandCharRanges): test escaping of literal '|'
5000 2010-04-19 David Lutterkort <lutter@redhat.com>
5002 * tests/fatest.c (print_regerror): do not use alloca
5004 * bootstrap: pull in isblank explicitly
5007 * src/lens.c (lns_check_rec): fix refcounting mistake on error path
5010 * src/augtool.c: report an error when 'get' fails
5012 2010-04-19 David Lutterkort <lutter@redhat.com>
5014 aug_get: return -1 when multiple nodes match
5015 This fixes breakage in the API contract for aug_get, introduced in commit
5016 e80494a6. Also adds a test to ensure we do not break API for aug_get again.
5020 2010-04-16 David Lutterkort <lutter@redhat.com>
5022 jmt: distinguish between successful parse and syntax error at end of input
5023 If a syntax error happened after the last character of the input string
5024 (e.g., becuase the input was incomplete), rec_process would think the parse
5025 was successful, and then notice that there was no parse result. That would
5026 lead to an incorrect error message hinting at an internal error, when it
5027 was really a syntax error.
5029 By changing the return value for jmt_visit, it's now possible to
5030 distinguish between internal errors, syntax errors and successful parses
5033 2010-04-16 David Lutterkort <lutter@redhat.com>
5035 * src/get.c (visit_exit): handle L_MAYBE
5036 Added test to tests/modules/pass_simple_recursion.aug, lens 'maybe'
5040 2010-04-16 David Lutterkort <lutter@redhat.com>
5042 * src/jmt.c (build_tree): print debug output for build_nullable
5044 2010-03-12 David Lutterkort <lutter@redhat.com>
5046 * lenses/tests/test_logrotate.aug: add test for files separated by newlines
5047 This test the fix for bug #104, commit fe0453ce.
5049 2010-03-11 David Lutterkort <lutter@redhat.com>
5051 * lenses/group.aug (password): remove backslashes
5052 Backslashes in char classes are taken literally, they do not escape a
5055 2010-03-11 root <root@lx200.costest.lrz.de>
5057 Group: Added disabled password support
5058 * lenses/group.aug: '*' and '!' are allowed chars for disabled password
5059 * lenses/tests/test_group.aug: added test for lens change
5061 2010-03-11 David Lutterkort <lutter@redhat.com>
5063 * src/lens.c (lns_check_rec): avoid use of uninitialized 'result'
5064 The ensures can fail, and we check whether result is NULL in the error
5067 2010-03-05 David Lutterkort <lutter@redhat.com>
5069 * src/lens.c (lns_format_atype): format L_REC lenses
5071 * src/lens.c: remove asserts; better error for missed tag in switch
5073 Shellvars: handle a bare 'export VAR'
5075 Inittab: allow ':' in the process field
5076 Fixes part of bug #109
5078 2010-03-05 Tim Stoop <tim.stoop@gmail.com>
5080 Approx: allow keywords starting with '$'
5082 2010-03-04 David Lutterkort <lutter@redhat.com>
5084 Approx: lens and test for the approx proxy server
5086 Produce a better error when iteration stops prematurely during put/create
5087 We now try to include the name of the child node that caused us to stop in
5090 2010-03-03 David Lutterkort <lutter@redhat.com>
5092 * src/fa.c: allow the strange regexp syntax '(a|)'
5093 POSIX allows it, and so do we now
5097 2010-03-02 David Lutterkort <lutter@redhat.com>
5099 Passwd: parse NIS entries on Solaris
5100 Based on a fix by Stuart Sears
5102 2010-02-26 David Lutterkort <lutter@redhat.com>
5104 * src/fa.c: clean up error macros
5105 The error macros _E, _F, and _N use names reserved for system libraries;
5106 this leads to compile errors at least on Solaris (as reported by lanky).
5108 Rename _E and _F to E and F, and eliminate _N.
5110 2010-02-26 Frederik Wagner <wagner@lrz.de>
5112 Modprobe: Suse includes
5113 * lenses/modprobe.aug: included /etc/modprobe.conf.local
5115 Shellvars: Suse includes
5116 * lenses/shellvars.aug:
5117 added include for /etc/sysconfig/network/ifcfg-
5119 Grub: support empty kernel parameters, Suse incl.s
5121 - added support for kernel parameters of the form "parameter="
5123 - included /boot/grub/menu.lst
5124 - changed default for delimiter in kw_menu_arg to " "
5125 * lenses/tests/test_grub.aug: changes corresponding to lens change
5127 2010-02-26 Dominique Dumont <domi.dumont@free.fr>
5129 Debctrl: new lens and test
5131 2010-02-23 David Lutterkort <lutter@redhat.com>
5133 Ntp: add 'tinker' directive
5136 Logrotate: tolerate whitespace at the end of a line
5139 2010-02-23 Raphael Pinson <raphink@gmail.com>
5141 Dhclient: add rfc code parsing
5144 Sudoers: allow del_negate even if no negate_node is found
5147 Logrotate: files can be separated by newlines
5150 Dput: add 'allow_dcut' parameter
5153 2010-02-22 David Lutterkort <lutter@redhat.com>
5155 * src/augtool.c: ignore empty lines from stdin
5156 We still complain about the nonsensical 'augtool ""'.
5158 Fixes BZ 566844 reported by Mike Burns
5160 2010-02-22 Stuart Sears <ssears@redhat.com>
5162 Sudoers (parameter_string_nobool_kw): accept "secure_path "
5165 2010-02-19 Tim Stoop <tim.stoop@gmail.com>
5167 Nagisocfg: lens and test for /etc/nagios3/nagios.cfg
5169 2010-02-12 Ivana Hutarova Varekova <varekova@redhat.com>
5171 Cgrules: new lens and test
5172 See cgrules.conf for http://libcg.sourceforge.net/
5174 2010-02-11 Ivana Hutarova Varekova <varekova@redhat.com>
5176 Cgconfig: lens and tests for libcgroup config
5177 See http://libcg.sourceforge.net/
5179 2010-02-11 Laine Stump <laine@laine.org>
5181 * src/transform.c (file_info): fix memory leak
5183 2010-02-09 David Lutterkort <lutter@redhat.com>
5185 * lens.c (ambig_check): pretty print tree type errors
5186 Instead of dumping raw regular expressions for the tree encoding, print out
5187 something resembling our tree notation.
5189 2010-02-08 David Lutterkort <lutter@redhat.com>
5191 libfa: handle the syntax r{min,} properly
5192 * src/fa.c (parse_repeated_regexp): set max = -1 when we see r{min,};
5193 (re_iter_as_string): when max == -1, print r{min,}
5194 * tests/fatext.c (testExample): add a few tests for this syntax
5196 * src/fa.c (parse_int): flag not parsing anything as an error
5198 2010-02-08 David Lutterkort <lutter@redhat.com>
5200 * src/jmt.c: add caller filtering
5201 Caller filtering is needed to weed out seemingly ambiguous parse trees (see
5202 Section 5.3 of Jim/Mandelbaum's paper)
5204 Also adds two pathological lenses and tests to
5205 pass_simple_recursion.aug. Those tests fail without caller filtering.
5207 2010-02-08 David Lutterkort <lutter@redhat.com>
5209 * AUTHORS: reformatted
5211 * tests/Makefile.am: add test for cobblermodules.aug
5213 2010-02-08 Shannon Hughes <shughes@redhat.com>
5215 Cobblermodules: lens + tests for cobbler's modules.conf
5217 2010-02-02 David Lutterkort <lutter@redhat.com>
5219 Shellvars: allow spaces after/before opening/closing parens for array
5220 Bug reported by Doug Warner
5222 2010-02-01 Matthew Palmer <matt@anchor.net.au>
5224 Sshd: allow optional arguments in subsystem commands
5226 2010-01-27 David Lutterkort <lutter@redhat.com>
5228 * src/augeas.c (tree_replace): don't bother marking the new parent as dirty
5229 We call tree_rm on it earlier, which already marks it as dirty.
5231 This line also triggered a SEGV when sub == NULL; this happened, for
5232 example, when /etc/apt/preferences was an empty file.
5234 Bug reported by Matt Palmer
5236 2010-01-27 David Lutterkort <lutter@redhat.com>
5238 * src/get.c (no_match_error): initialize lname
5239 Otherwise, gcc complains about a possibly uninitialized value with -O2
5241 2010-01-25 David Lutterkort <lutter@redhat.com>
5243 Test for using a recursive lens inside other lenses
5245 2010-01-25 David Lutterkort <lutter@redhat.com>
5247 * src/get.c: handle recursive lenses that are not L_REC
5248 Since any lens that uses an L_REC is itself recursive, the distinction
5249 whether to use get_rec or get_lens can be made in lns_get
5251 rec_process will also build the jmt if it does not exist yet
5255 2010-01-25 David Lutterkort <lutter@redhat.com>
5257 Properly handle lenses that use L_REC lenses
5258 In constructs involving a recursive lens, we need to take the body of the
5259 recursive lens into consideration. We avoid infinite recursion by stopping
5260 when we see an L_REC that is marked as rec_internal, since that's the
5261 struct lens that points back to the top of the lens from within it.
5263 jmt_build now expects to be handed a properly set up recursive lens, which
5264 means that for an L_REC both the internal and external instances have to
5265 exist and be connected
5267 * src/lens.c (lns_check_rec): defer building the jmt until the end
5268 * src/jmt.c: when building the jmt, consider L_REC as long as it's not
5271 2010-01-25 David Lutterkort <lutter@redhat.com>
5273 * src/jmt.c (print_grammar): recurse into L_REC if they are not rec_internal
5275 2010-01-25 David Lutterkort <lutter@redhat.com>
5277 * src/jmt.c (jmt_visit): allow for toplevel lenses that are not L_REC
5278 To reconstruct the parse of a lens that is not L_REC, but uses L_REC,
5279 e.g. l* where l is L_REC, we can not assume any longer that the root of the
5280 parse tree has only one child. Consequently, we need to start
5281 reconstruction with listing all the children of the root node.
5283 Split build_tree into build_children (collects a list of child nodes) and
5284 build_tree which creates the tree for a nonterminal.
5286 To start reconstruction, we now start with collecting the list of children
5287 of the root of the parse tree; the Earley graph does not contain an item
5288 for that, which makes this operation slightly special.
5290 2010-01-25 David Lutterkort <lutter@redhat.com>
5292 * src/lens.c: propagate rec_internal in the body of an L_REC
5294 * src/lens.c: don't short-circuit typechecking for recursive lenses explicitly
5295 The typecheck helpers are all smart enough to not run checks when one of
5296 the types is NULL, as is the case for recursive lenses.
5298 * src/lens.h (struct lens): explain better how we handle recursive lenses
5300 * src/jmt.c (build_trace): allow passing in a NULL item
5302 * src/lens.c (tags): add name for value primitive
5304 * src/get.c: replace assert's by ensure's
5305 assert aborts, which a library shouldn't do
5307 * src/errcode.h (ensure0): convenience version of ensure
5309 * src/get.c (find_seq): properly report OOM, do not call abort
5311 Remove assert_error_at
5312 This function was dangerous, since it does not jump, and therefore users
5313 will continue doing what they were doing, even if an assertion failed. Use
5316 * src/get.c (struct state): make info a pointer
5318 2010-01-23 David Lutterkort <lutter@redhat.com>
5320 * src/lens.c (restrict_regexp): properly report OOM
5322 2010-01-20 David Lutterkort <lutter@redhat.com>
5324 Document the basics of building from git
5326 2010-01-15 David Lutterkort <lutter@redhat.com>
5328 * src/builtin.c: builtins for printing and inspecting lenses
5331 The literal '()' is the only member of the unit type. Composition is now
5332 allowed if the first expression is of type unit, i.e. '() ; something' is
5335 2010-01-15 David Lutterkort <lutter@redhat.com>
5337 Language: allow '_' as an identifier that is never bound
5340 will evaluate something and then immediately forget it
5342 * src/lexer.l (LID): allow leading underscore
5343 * src/syntax.c (bind, bind_type): do not bind '_'
5345 2010-01-15 David Lutterkort <lutter@redhat.com>
5347 New primitive lens 'value'
5348 In analogy to 'label', this lens allows setting the value of a tree node to
5351 2010-01-14 David Lutterkort <lutter@redhat.com>
5355 Json: lens and tests for generic Json files
5357 Tests for recursive (context free) lenses
5359 2010-01-14 David Lutterkort <lutter@redhat.com>
5361 Syntax for recursive lenses
5362 Add a 'let rec' construct; the syntax should be considered experimental and
5363 might be changed to some other form of expressing recursion.
5365 With recursive lenses, we can't do the bottom-up typechecking that we do
5366 for regular lenses; we need to consider the whole lens at once. This is
5367 achieved by inserting a callback to lns_check_rec when we parse 'let rec
5370 * src/builtin.c (lns_check_rec_glue): new function
5371 * src/lexer.l: new token LETREC
5372 * src/parser.y: add syntax rule for LETREC and desugar it into a call to
5374 * src/syntax.h: make free_term available, constant for name
5375 of let_check_rec within the interpreter
5376 * src/syntax.c (free_term): now extern, not static
5378 2010-01-14 David Lutterkort <lutter@redhat.com>
5380 * src/get.c (get_rec, parse_rec): get/parse for recursive lenses
5382 * src/put.c: put/create for recursive lenses
5384 Remember the jmt in the lens and free it when it is no loner needed
5386 Earley parser based on Jim/Mandelbaum's transducers
5388 Calculate if a lens's ctype is nullable
5390 Add a typechecker and constructor for recursive lenses
5391 * src/lens.h (lns_make_rec, lns_check_rec): new functions
5392 * src/lens.c (lns_make_rec, lns_check_rec): new functions
5394 Suppress buildtime typechecks for L_REC; propagate recursive flag
5396 * src/lens.c (free_lens): free recursive lenses
5398 * src/lens.h: add a recursive lens combinator
5400 2010-01-14 David Lutterkort <lutter@redhat.com>
5402 A simple debug facility
5403 Debugging is disabled by default. When configured with --enable-debug=yes,
5404 Augeas will look at runtime at the environment variable AUGEAS_DEBUG, which
5405 should contain a colon-separated list of categories. Besides printing
5406 various thigs on stdout, some debug output is also left in files in the
5407 directory set by the environment variable AUGEAS_DEBUG_DIR, e.g., dot
5408 graphs of various internal data structures.
5410 * configure.ac: add --enable-debug option
5411 * src/internal.h (debugging, debug_file): new functions
5412 * src/internal.c (debugging, debug_file): new functions
5414 2010-01-14 David Lutterkort <lutter@redhat.com>
5416 struct error: add pointer back to struct augeas
5418 * src/errcode.h: more usable BUG_ON and BUG_FMT
5420 * src/lens.c (ambig_check): report OOM from fa_ambig_example
5422 * src/fa.c (fa_ambig_example): getting a NULL example is not an error
5424 * src/syntax.c (compile): give up after the first error
5425 We have no error recovery to speak off; if we keep going, we most of the
5426 time carpet-bomb the user with error messages that are simple follow-ons to
5429 * TODO: deleted, that list is in Trac now
5431 * src/fa.c (fa_intersect): initialize vars that could be used on error
5433 * src/fa.c (fa_as_regexp): convert strings more efficiently
5434 Since we are building the transitive closure of the FA, cut down the size
5435 of the FA by first extracting strings and removing their internal states.
5437 * src/fa.c (fa_as_regexp): fin only accepting state, no trans fin->fin
5439 Indicate whether an FA uses character ranges or regexps on transitions
5440 * src/fa.c (struct fa): new field trans_re; (fa_as_regexp): set trans_re;
5441 (fa_dot): print regexp rather than char range if trans_re is set
5443 2010-01-13 David Lutterkort <lutter@redhat.com>
5445 Add syntax for case-insensitive regexps
5446 A regexp literal /regexp/i will be converted to a case-insensitive regexp.
5448 * src/regexp.c (regexp_minus): respect nocase flags
5450 * src/lens.c (str_to_fa): compile nocase fa when needed
5452 * src/lens.c (str_to_fa): remove FIXME's and use proper error reporting
5454 2010-01-13 David Lutterkort <lutter@redhat.com>
5456 Support for case-insensitive regexps
5457 Add nocase argument to make_regexp, and adjust all uses of make_regexp to
5458 pass that in. For concatenation and union of regexps we have to expand
5459 case-insensitive regexps when they are mixed with case-sensitive regexps.
5461 Adjust all uses of make_regexp.
5463 2010-01-13 David Lutterkort <lutter@redhat.com>
5465 Add fa_expand_nocase to libfa
5467 Support for case-insensitive operations in libfa
5468 * src/fa.h (fa_nocase, fa_is_nocase): new functions
5469 * src/fa.c (struct fa): new field nocase; (fa_is_basic): a total FA has
5470 two transitions under nocase; (fa_clone): preserve nocase flag;
5471 (union_in_place, concat_in_place, fa_intersect): if one operand is
5472 nocase, and the other isn't, expand the nocase FA to a case-sensitive
5473 one; (totalize): do not add transitions on [A-Z]; (fa_nocase,
5474 fa_is_nocase): new functions; (case_expand): new function
5475 * tests/fatest.c (assertExample): also test against a nocase FA;
5476 (testNoCase): test concat etc. on nocase FA's
5478 * src/lens.c (subtree_atype): new function
5480 2010-01-07 David Lutterkort <lutter@redhat.com>
5482 Facelift for augtool
5483 This makes augtool somewhat friendlier, mostly because
5485 - help is organized better: typing 'help' produces a list of commands and
5486 a brief synopsis for each, typing 'help command' prints detailed help
5488 - augtool now knows about path expressions, so that they do not need to
5489 be enclosed in quotes if they have spaces with predicates, e.g. you can
5490 now type 'get /foo[ last() ]'
5492 2010-01-07 David Lutterkort <lutter@redhat.com>
5494 Record an error if more than one lens tries to load a file
5495 * src/transform.c (file_info): new function; (transform_load): detect if
5496 more than one lens tries to load a file and record error in
5497 /augeas/files/PATH/error
5499 Pull computing a path underneath /files from a filename into a function
5500 * src/transform.c (file_name_path): new function; (load_file): use
5503 2010-01-07 David Lutterkort <lutter@redhat.com>
5505 Change the metadata for individual files
5506 Record the name of the lens used to load the file in the lens node
5507 underneath /augeas/files/$PATH; the location info of the lens is kept in
5510 * src/transform.c (add_file_info): change what we keep underneath the
5512 * tests/xpath.tests (lircd-ancestor): adapt to metadata change
5514 2010-01-07 David Lutterkort <lutter@redhat.com>
5516 * src/transform.c (add_file_info): manipulate tree directly
5517 Going through public functions like aug_set is silly, and causes all kinds
5520 Produce better error message for multiple matching transforms in save
5521 * src/augeas.h (aug_errcode_t): new error code AUG_EMXFM
5522 * src/augeas.c (errcodes): new error string for AUG_EMXFM; (tree_save):
5523 report multiple transforms as proper error
5524 * tests/test-save.c (testMultipleXfm): new test
5526 New function transform_file_error
5527 * src/transfrom.h (transform_file_error): add prototype
5528 * src/transform.c (transform_file_error): new function
5530 New function xfm_lens_name
5531 * src/transfrom.h (xfm_lens_name): add prototype
5532 * src/transform.c (xfm_lens_name): new function
5534 2010-01-07 David Lutterkort <lutter@redhat.com>
5536 Tree functions to find/create a node with a path expression
5537 Internal counterparts to aug_get and aug_set
5539 * src/internal.h (tree_find, tree_find_cr): new prototypes
5540 * src/augeas.c (tree_find, tree_find_cr): new functions
5542 2010-01-07 David Lutterkort <lutter@redhat.com>
5544 * src/internal.h: make various tree management functions available
5546 2010-01-06 David Lutterkort <lutter@redhat.com>
5548 Xinetd (name): fix bad '-' in character class
5550 2010-01-05 David Lutterkort <lutter@redhat.com>
5552 Do not choke on non-existing lens during save
5553 * src/transform.c (add_file_info): check that lens is non-NULL;
5554 (lens_from_name): provide detailed error message when lens lookup
5555 failed; (transform_validate): copy error from lens_from_name into tree
5556 * tests/test-save.c (testNonExistentLens): new test
5560 2010-01-05 David Lutterkort <lutter@redhat.com>
5562 New error code AUG_ENOLENS
5563 Indicates failure to look a lens up by name from /augeas/load/*/lens
5565 * src/augeas.h (aug_errcode_t): new value AUG_ENOLENS
5566 * src/augeas.c (errcodes): new entry for AUG_ENOLENS
5568 2010-01-05 David Lutterkort <lutter@redhat.com>
5570 * src/lens.c (lens_release): tolerate a NULL lens
5572 2010-01-04 Bryan Kearney <bkearney@localhost.localdomain>
5574 Cobblersettings: new lens and test
5576 2010-01-04 David Lutterkort <lutter@redhat.com>
5578 Rename read_file to xread_file
5580 2009-12-23 David Lutterkort <lutter@redhat.com>
5582 * src/lens.c (lns_make_union, lns_make_concat): do not access free'd memory
5583 make_lens_binop may free one of the lenses it gets passed. We can therefore
5584 not reference them after a call to make_lens_binop.
5586 * src/lens.c (format_lens): minimalistic pretty-printing of a lens
5588 * src/regexp.c (print_regexp): clean the regexp with fa_restrict_alphabet
5590 2009-12-18 David Lutterkort <lutter@redhat.com>
5592 * src/builtin.c (lens_get, lens_put): propagate errors as exceptions
5594 2009-12-18 David Lutterkort <lutter@redhat.com>
5596 More convenience macros for errors
5597 Add BUG_ON and ERR_RET macros for reporting internal errors
5599 * src/errcode.h (BUG_ON, ERR_RET, HAS_ERR): new macros
5600 * src/errcode.c (bug_on): implementation for BUG_ON
5602 2009-12-17 David Lutterkort <lutter@redhat.com>
5604 Lokkit: allow '-' in arguments
5606 Iptables: handle both negation syntaxes
5607 Options can be negated either with '! --option arg' or with '--option !
5608 arg'. We now handle both, though they lead to slightly different trees
5610 2009-12-14 David Lutterkort <lutter@redhat.com>
5612 * doc/ftdetect/augeas.vim: fix syntax
5614 2009-12-09 Partha Aji <paji@redhat.com>
5616 Made samba aug accept entry keys with ':' in them
5618 2009-12-09 David Lutterkort <lutter@redhat.com>
5620 Shellvars: allow arrays that span multiple lines
5622 2009-12-07 David Lutterkort <lutter@redhat.com>
5624 Iptables: allow quoted strings as arguments
5626 2009-11-30 David Lutterkort <lutter@redhat.com>
5630 Distribute and install vim syntax files
5633 * Makefile.maint: sign tags
5635 Krb5: allow v4_name_convert in libdefaults section
5636 Fixes part of ticket #95
5638 Fstab: allow # in the spec
5639 Fixes part of ticket #95
5641 Group: allow empty password field
5642 Fixes part of ticket #95
5644 * src/parser.y: properly initialize yylloc
5647 2009-11-25 David Lutterkort <lutter@redhat.com>
5649 Properly check regexp literals for syntax errors
5650 * src/regexp.h (regexp_check): new function
5651 * src/regexp.c (regexp_compile_internal): new function to base both
5652 regexp_compile and regexp_check off
5653 * src/syntax.c (check_value): produce a syntax error if regexp does not
5654 pass regexp_check; (check_exp): make sure we do check values
5658 2009-11-25 David Lutterkort <lutter@redhat.com>
5660 * src/lexer.l: include errcode.h; fix bad use of report_error
5662 * src/errcode.c: include stdarg.h
5664 2009-11-25 David Lutterkort <lutter@redhat.com>
5666 Cron: variable names can contain '_' etc.
5667 Use Shellvars.key_re for consistency.
5671 2009-11-25 Matt Palmer <mpalmer@hezmatt.org>
5673 AptPreferences: add a put test
5674 Make sure we handle an empty file properly, and cleanup the resulting
5677 2009-11-24 Matt Palmer <mpalmer@hezmatt.org>
5679 Normalise records so that empty lines (which are a required part of the syntax) don't creep into the tree
5681 Support version pins in apt_preferences
5683 2009-11-23 David Lutterkort <lutter@redhat.com>
5685 * tests/Makefile.am (lens_tests): run postfix_access tests
5687 2009-11-16 Partha Aji <paji@redhat.com>
5689 Added a Post Fix Access lens along with the unit tests
5691 2009-11-13 David Lutterkort <lutter@redhat.com>
5693 * src/lens.c (ambig_check): distinguish error between concat and iteration
5695 * src/regexp.c (regexp_escape): treat NULL regexps as the empty regexp
5697 * src/regexp.c (regexp_escape): fix stripping of enclosing parens
5698 Only strip them if they belong together, and not for something like /(a)(b)/
5700 * src/syntax.c: spew exceptions less often
5701 print_value: only print exceptions that haven't been seen
5702 compile_test: only print the exception for a test when it hasn't
5705 * src/get.c: never try to process a string that doesn't match
5706 When a string during init_regs doesn't match at all, there's nothing useful
5707 we can do. Immediately return an error from lns_get.
5709 * src/syntax.h (exn_error): produce an exception to indicate an error
5710 exn_error returns a special exception that indicates that an error has
5711 happened (e.g., out-of-memory) that has already been reported in the
5712 central augeas->error instance.
5714 2009-11-12 David Lutterkort <lutter@redhat.com>
5716 * src/info.c (print_info): do not choke on NULL info
5718 * src/internal.h: new macros MEMCMP and MEMMOVE
5720 * src/lens.c (lns_make_subtype): explain type derivation
5722 * examples/fadot.c: by default, print minimized regexp
5724 * examples/fadot.c: fix formatting, no functional changes
5726 2009-11-10 David Lutterkort <lutter@redhat.com>
5728 Make augparse and augtool use user's locale
5730 * test/Makefile.am (TEST_ENVIRONMENT): set LANG to a non-C locale
5732 2009-11-10 David Lutterkort <lutter@redhat.com>
5734 Remove character ranges from regexps if we are not in the C locale
5735 Since re_compile_pattern uses the current locale when expanding character
5736 ranges like [a-z], we need to be careful that such ranges are expanded in
5739 * configure.ac: check for uselocale
5740 * src/internal.[ch] (regexp_c_locale): new function
5741 * src/lens.c (digits_string): spell out the digits
5742 * src/lens.c (restrict_regexp): expand char ranges in restricted regexp
5743 * src/lexer.l (regexp_literal): run regexp literals through
5745 * src/regexp.c (regexp_escape): compress character ranges for printing
5746 * src/regexp.c (regexp_minus): expand charcter ranges
5748 Fixes ticket #35 for systems that do not have uselocale (for systems with
5749 uselocale, the fix is commit 07b6a880)
5751 2009-11-10 David Lutterkort <lutter@redhat.com>
5753 libfa: new function fa_expand_char_ranges
5755 Calls to __aug_load_module need to go through api_entry/api_exit
5757 2009-11-10 David Lutterkort <lutter@redhat.com>
5759 Switch to C locale on API entry on systems that have uselocale
5760 Since we need to do all our operations (especially regexp matching) in the
5761 C locale, we switch to that on API entry, and switch back to the user's
5764 That also makes it necessary that aug_init wraps the bulk of its work
5765 inside an api_entry/api_exit.
5767 Fixes ticket #35 for systems that have uselocale
5769 2009-10-26 David Lutterkort <lutter@redhat.com>
5771 Inittab: parse end-of-line comments into a #comment
5773 2009-10-23 David Lutterkort <lutter@redhat.com>
5775 * src/lens.c (lns_make_subtree): parenthesize key and value patterns
5776 These patterns may be a union not enclosed in parens
5778 * src/regexp.c (regexp_escape): don't clobber last character
5780 * src/lens.c: use regexp_escape to print regexps in error messages
5782 * src/fa.c (fa_restrict_alphabet): initialize parse
5784 * src/fa.c (special_chars): treat $ and ^ as special
5785 They are special when they are at the beginning resp. the end of a regular
5786 expression. Making them special (i.e., escaping them with '\') everywhere
5789 * src/fa.c (re_needs_parens_in_concat): ITER doesn't need parens in concat
5791 * src/fa.c (re_cset_as_string): work properly with negated cset
5792 We did not take re->negate into account, and always acted as if the cset
5793 was not negated. Introduce helper function cset_contains to both fix that
5794 and make the code a little clearer.
5796 2009-10-22 David Lutterkort <lutter@redhat.com>
5798 bootstrap: use stpcpy and stpncpy from gnulib
5800 Makefiles: gnulib now requires linking against libselinux
5801 * src/Makefile.am (libfa_la_LIBADD): add LIB_SELINUX
5802 * examples/Makefile.am (fadot_LDADD): remove GNULIB
5804 2009-10-21 David Lutterkort <lutter@redhat.com>
5806 Path expressions: add union operator
5807 Nodesets can now be unioned with the '|' operator
5811 2009-10-21 David Lutterkort <lutter@redhat.com>
5813 * src/pathx.c (clone_nodeset): properly set size of the clone
5814 The size of the clone is the number of nodes in the original nodeset, not
5815 the size of the original nodeset.
5817 * src/regexp.c (regexp_union_n): insert '|' after the first non-NULL regexp
5818 We can not blindly insert a '|' after the first passed-in regexp since that
5819 (and any number of regexps at the beginning) might be NULL. We only insert
5820 '|' after actually copying a regexp into the result.
5822 2009-10-20 David Lutterkort <lutter@redhat.com>
5824 Wine: new lens and test
5825 Lens for parsing textual Windows registry files
5827 2009-10-20 David Lutterkort <lutter@redhat.com>
5829 Pam: allow '-' before type
5830 The type field in a pam.d file can start with a '-' to indicate that
5831 missing the module should not cause an error. The '-' is now mapped into
5832 the tree as a separate node 'optional'
5834 Bug reported by Shannon Hughes
5836 2009-10-20 David Lutterkort <lutter@redhat.com>
5838 * test/Makefile.am (lens_tests): add lens-ethers.sh
5840 * src/internal.c (escape): convert char to unsigned when printing as octal
5841 Without that, there's no guarantee that the char will be printed as three
5842 octal digits and not more
5844 Report line/column number when get/put test fails
5845 * src/builtin.c (make_exn_lns_error): add line/column number in error
5847 * src/internal.c (calc_line_ofs): moved here from transform.c
5848 * src/internal.h (calc_line_ofs): declare prototype
5849 * src/transform.c (calc_line_ofs): moved to internal.c
5851 * src/get.c (get_error): use end of last match as error position
5853 * man/augtool.1: regenerate
5855 2009-10-19 David Lutterkort <lutter@redhat.com>
5857 Krb5: support a [kdc] section
5858 The only entry it can have so far is 'profile' - no idea what else can go
5859 there since it's not documented in krb5.conf(5), but used, e.g. on Fedora
5862 2009-10-12 David Lutterkort <lutter@redhat.com>
5864 Rx (device_name): allow '!' in device name
5866 2009-10-09 David Lutterkort <lutter@redhat.com>
5868 Lokkit: make argument for --trust more permissive
5869 The --trust option takes an interface name, whcih can be more than what
5872 * lenses/lokkit.aug (trust): new lens; (entry): use trust
5873 * lenses/rx.aug (device_name): new regexp
5874 * lenses/tests/test_lokkit.aug: new test for more permissive device names
5876 2009-10-09 David Lutterkort <lutter@redhat.com>
5878 Lokkit.forward_port: add missing eol
5879 Also adjust test_lokkit.aug since we're not getting a spurious empty entry
5882 2009-10-06 Satoru SATOH <satoru.satoh@gmail.com>
5884 /etc/ethers: new lens and test
5885 The followings adds a new lens for /etc/ethers and associated test.
5887 2009-09-30 David Lutterkort <lutter@redhat.com>
5889 * src/augparse.c: get error details from error API
5891 interpreter: do not abort() on fatal errors or print on stderr
5892 Use the error reporting infrastructure for most errors. Fatal errors (bugs)
5893 in the interpreter now lead to an error code AUG_EINTERNAL, and not an
5896 * src/parser.y: do not print to stderr
5898 * src/lexer.l: print into struct error instead of stderr
5900 New error code AUG_ESYNTAX
5902 * src/info.c (format_info): minor fixes
5903 - append a ':' after the location
5904 - produce a result even when line numbers are invalid
5905 - use xasprintf, not asprintf
5907 * src/lexer.l (to_int): unused, remove
5909 Make struct error available in struct info
5910 This makes it much easier to report errors into the central struct error
5911 instance hanging off the Augeas instance.
5913 Put struct error and report_error into its own file
5914 Also, make the struct error in struct augeas a pointer
5916 * src/info.h: optimize layout of struct info
5918 *src/syntax.c: catch some allocation errors
5920 * src/ref.h (make_ref_err): convenience macro
5922 * tests/fatest.c (print_regerror): only print first 40 chars of regexp
5924 libfa: handle allocation failures gracefully
5926 parser: report some allocation failures
5928 * src/fatest.c: make testable with failmalloc
5929 - when FAILMALLOC_INTERVAL is set, report success, no matter
5930 how many tests failed (presumably because of memory starvation)
5931 - abort with die_oom() if crucial internal checks can't be performed
5932 because of allocation failures
5934 cutest: fortify against allocation failures
5935 - new function die_oom which sets exit status to 2 when
5936 we die from an oom condition
5937 - use the safe-alloc macros for allocations
5938 - abort the test when internal allocations fail
5940 * src/hash.c (hash_alloc_insert): return 0/-1 for success/error
5942 Use a proper function for make_ref
5943 That allows us to require that callers check the return value
5945 Handle allocation failures from define_native_intl
5947 build: support for running with libfailmalloc preloaded
5948 Add --with-failmalloc=LIB configure option and failmalloc targets to run
5949 select programs with failing allocations.
5951 2009-09-24 David Lutterkort <lutter@redhat.com>
5953 * src/transform.c: do not include canonicalize.h anymore
5954 The canonicalize-lgpl gnulib module doesn't require that anymore
5956 2009-09-21 David Lutterkort <lutter@redhat.com>
5958 Path expressions: add regexp matching
5959 Add a function regexp : string -> regexp and an operator
5960 =~ : string|nodeset -> regexp -> boolean to the language for
5963 * src/regexp.c (regexp_compile): do not print anything on error
5965 2009-09-21 David Lutterkort <lutter@redhat.com>
5967 Split regexps, info and strings out of syntax.[ch]
5968 * Move struct string and struct info and related functions into info.[ch]
5969 * Move headers for regexp.c into new file regexp.h
5971 This makes it easier to reuse these outside of syntax.[ch] - including
5972 syntax.h in get.c and put.c was way too much anyway.
5974 2009-09-21 David Lutterkort <lutter@redhat.com>
5976 aug_match, aug_mv: return -1 when pathx evaluation fails
5978 Report errors when exactly one match is expected
5979 aug_mv and aug_insert expect that exactly one node matches the path
5980 expressions they are given. Report new errors if none or more than one node
5983 * src/augtool.c: use new error API
5984 Call into the error API after each aug_* call and print error details
5986 Propagate pathx errors during evalutaion
5987 We did not report errors from pathx evaluation functions, only from the
5988 parser/typechecker. Now functions like pathx_first etc. report errors
5991 Store pathx parse errors in internal error struct
5992 The pathx_parse function will now store error information in a struct
5993 error; we pass the one from struct augeas in and save it in the pathx.
5995 Reset old error messages on each entry through the API from the outside
5997 * src/syntax.c (interpreter_init): report errors
5999 Error reporting API and infrastructure
6000 Only reporting errors in the tree makes the API much harder to use; the
6001 aug_error* functions make it easier to inquire about errors
6004 * src/pathx.c (pathx_symtab_init): unused, remove
6006 2009-09-18 David Lutterkort <lutter@redhat.com>
6008 * src/syntax.c (interpreter_init): fix potential leak
6009 If globbuf has entries in it when we encounter an error, we need to
6012 2009-09-17 Matt Palmer <mpalmer@hezmatt.org>
6014 Sudoers: allow certain backslash-quoted characters in a command
6015 Commands may contain backslashes by themselves and the two-char sequences
6018 2009-09-14 David Lutterkort <lutter@redhat.com>
6022 2009-09-11 David Lutterkort <lutter@redhat.com>
6024 Man pages: update to match current augtool and augparse
6026 Add --version option to augtool and augparse
6029 A couple more files for the test root
6031 Add preceding-sibling and following-sibling axes to path expressions
6033 2009-09-10 David Lutterkort <lutter@redhat.com>
6035 Better error message for too many args in a path expression
6037 2009-09-09 David Lutterkort <lutter@redhat.com>
6039 Slapd: include /etc/openldap/slapd.conf
6040 This is the default location in Fedora.
6044 2009-09-04 David Lutterkort <lutter@redhat.com>
6046 Multipath: new lens for /etc/multipath.conf
6048 * src/try: fix 'set annotate' for gdb
6050 2009-09-03 David Lutterkort <lutter@redhat.com>
6052 Transparent save of cross-device links
6053 When saving to a file, we first write to a file with extension .augnew and
6054 then rename that file to the actual file. This fails when the original is a
6055 symlink to a file on another device.
6057 We now write the .augnew file next to the canonicalized original file to
6058 avoid that headache. There are still situations where the rename fails,
6059 e.g. when the original file is bindmounted - in that situation, we have to
6062 2009-09-03 David Lutterkort <lutter@redhat.com>
6064 * src/syntax.c (print_value): use print_tree instead of dump_tree
6066 2009-09-02 David Lutterkort <lutter@redhat.com>
6068 * lenses/rx.aug (fspath): simplistic regex for filesystem paths
6070 * src/lens.c (disjoint_check): print example as tree for put
6071 When the typechecker finds lens overlap in a union's put direction, format
6072 the generated example as a tree to make it more readable.
6074 * src/lens.c(enc_format): remove extraneous quote
6076 Make fa_example work for strings with embedded NUL's
6078 2009-09-01 Matt Palmer <mpalmer@hezmatt.org>
6080 Inetd: new lens and test
6082 2009-08-31 David Lutterkort <lutter@redhat.com>
6084 Pretty-print lens atypes and use that for errors during put
6085 * src/lens.c (lns_format_atype): new function
6086 * src/lens.h (lns_format_atype): new prototype
6087 * src/put.c (regexp_match_error): use lns_format_atype for errors
6089 * tests/modules/pass_strip_quotes.aug: test quote stripping
6090 The tests strips optional quotes and puts them back (or creates them) as
6091 needed, only depending on the value of the tree node.
6093 2009-08-31 David Lutterkort <lutter@redhat.com>
6095 Match trees on label and value, not just label
6096 We still only use one level in the tree for matching in the put direction,
6097 but take the values of nodes into account.
6099 We had fail_ tests in place to document the deficiency of the tree matcher,
6100 but with that deficiency gone, these now become passing tests.
6102 2009-08-31 David Lutterkort <lutter@redhat.com>
6104 Restrict the alphabet of a regexp
6106 Use offsets for various lens types
6108 Carry the key type explicitly in lenses
6109 Instead of computing the key type recursively, store it in lens->ktype. The
6110 key type becomes the new abstract type (atype) when a lens is used inside a
6113 Allow NULLS in regexp_(union|concat)_n
6114 It's sometimes useful to union/concat N regexps even if some of them are
6115 NULL. regexp_(union|concat)_n will ignore them.
6117 libfa: handle regexps with embedded NUL characters
6118 So far, the API promised that we could do that, but that wasn't implemented.
6120 fa_compile: accept regexps with embedded NUL's
6122 Make regexp_escape strip enclosing parens; make API const correct
6123 * src/syntax.h (regexp_escape): make const correct
6124 * src/regexp.h (regexp_escape): strip '(...)' enclosing entire regexp
6126 * src/builtin.c (tree_clear_glue): primitive clear function for use in tests
6128 2009-08-31 David Lutterkort <lutter@redhat.com>
6130 Utility function xasprintf
6131 Like asprintf, but don't leave first arg in limbo on error
6133 * src/internal.h (xasprintf): new prototype
6134 * src/internal.c (xasprintf): new function
6136 2009-08-31 David Lutterkort <lutter@redhat.com>
6138 regexp_release: allow NULL regexp
6140 * src/augeas.c: do not read past the end of the load path
6142 2009-08-14 David Lutterkort <lutter@redhat.com>
6144 Only read regular files
6145 * src/transform.c (is_regular_file): new function
6146 * src/transform.c (filter_generate): do not include non-regular files
6150 2009-08-12 David Lutterkort <lutter@redhat.com>
6152 Do not assume how glob allocates gl_pathv
6153 We assumed that the gl_pathv in a glob_t was allocated in a particular
6156 * src/transform.c (filter_generate): make a copy of gl_pathv
6158 2009-08-10 David Lutterkort <lutter@redhat.com>
6160 aug_load: cleanup variables when deleting /files
6161 The first thing aug_load does is delete /augeas/files and /files. We need
6162 to make sure that any variables that contain references to nodes in those
6163 subtrees are cleaned up properly, i.e. that we remove such nodes from
6164 nodesets in the variables.
6166 * src/augeas.c (tree_unlink_children): remove descendants of the tree we
6167 are deleting from variables.
6168 * tests/test-load.c (testLoadDefined): verify fix
6172 2009-08-10 David Lutterkort <lutter@redhat.com>
6174 Pass symtab explicitly into pathx_symtab_remove_descendants
6176 2009-08-06 David Lutterkort <lutter@redhat.com>
6178 Record new files under /augeas/files when they are saved
6179 * src/transform.c (transform_save): add file info with add_file_info
6180 * tests/test-save.c: test that file info is added for a new file
6181 * tests/Makefile.am: build and run test-save
6182 * .gitignore: ignore tests/test-save
6186 2009-08-06 David Lutterkort <lutter@redhat.com>
6188 * src/transform.c (add_file_info): change what we store about a file
6189 For a file FILE, we now only record the path and the info for the lens;
6192 /augeas/files/FILE/path = /files/FILE
6193 /augeas/files/FILE/lens/info = ...
6194 /augeas/files/FILE/lens/id = 0x...
6198 /augeas/files/FILE/path = /files/FILE
6199 /augeas/files/FILE/lens = ...
6201 The id wasn't useful to anybody, and the lens info is useful for debugging
6204 2009-08-06 David Lutterkort <lutter@redhat.com>
6206 * src/transform.c (add_file_info): minor cleanup
6207 - Rename add_load_info to add_file_info
6208 - Eliminate filename argument, since it's redundant
6210 2009-08-06 David Lutterkort <lutter@redhat.com>
6212 defnode: when creating new node, put it in the nodeset
6213 When a new node is created, e.g. with 'defnode x "/foo[0 = 1]"' we used to
6214 assign an empty nodeset to x. Now x will hold a reference to the newly
6215 created node, even though the initial path expression would never match any
6218 * src/augeas.c (aug_defnode): call pathx_symtab_assign_tree after
6220 * src/pathx.c (pathx_symtab_assign_tree): new function to assign a single
6221 tree node to a variable
6222 * src/internal.h: declare pathx_symtab_assign_tree
6223 * tests/test-xpath.c (test_defnode_nonexistent): test new behavior
6225 2009-08-05 David Lutterkort <lutter@redhat.com>
6227 * src/lexer.l: allow DOS line endings
6228 Accept \r\n as a line ending in addition to \n
6230 Fixes RH Bugzilla 514712
6232 2009-08-04 Matthew Booth <mbooth@redhat.com>
6234 Require quotes around strings in xorg.conf
6235 man xorg.conf appears to support this:
6236 String a string enclosed in double quote marks (")
6238 This change means that explicitly parsed values will remove quotes in the
6239 get directory and insert them in the put direction.
6241 Currently, only the following entries are explicitly parsed:
6251 * All entries in the Display Subsection
6253 The lens will also accept any other entry name not in this list. However,
6254 as it does not know what types to expect, it stores a bare string. This
6255 will include quote marks.
6257 2009-08-04 Matthew Booth <mbooth@redhat.com>
6259 Add more specific entry handlers to xorg.conf
6260 Additionally handle:
6266 This covers all entries in the default configuration.
6268 The advantage of having a specific handler is that it knows more about what
6269 values are valid. For example, with this patch Driver will not accept an
6270 unquoted value, which would cause the X server not to start.
6272 2009-08-04 Matthew Booth <mbooth@redhat.com>
6274 Parse more directives in xorg.conf
6275 The default xorg.conf generated by pyxf86config on Red Hat/Fedora systems
6276 is not parsed by the current xorg.conf. Specifically it does not
6279 * Screen, in ServerLayout
6280 * InputDevice, in ServerLayout
6281 * SubSection "Display" ..., in Screen
6283 This patch adds support for those values, so that the default xorg.conf on
6284 Red Hat/Fedora systems now parses.
6286 It should also add support for all directives in the Display subsection,
6287 however they are not covered by the test.
6289 2009-07-31 Marc Fournier <marc.fournier@camptocamp.com>
6291 vim: extra carriage return caused a parse error
6293 2009-07-23 Jim Meyering <meyering@redhat.com>
6295 tests: extract SELinux context more portably
6296 * test-preserve.sh: Use stat --format=%C $hosts ... rather than
6297 ls -lZ $hosts | cut -d ' ' -f 5. The latter fails with some
6298 combinations of ls and SELinux.
6300 2009-07-16 David Lutterkort <lutter@redhat.com>
6302 * src/Makefile.am: link libfa with gnulib, needed on AIX
6304 2009-07-14 Bruno Cornec <Bruno.Cornec@hp.com>
6306 * doc/augeas.vim: vi syntax highlighting for .aug files
6308 2009-07-13 David Lutterkort <lutter@redhat.com>
6312 2009-07-09 David Lutterkort <lutter@redhat.com>
6314 tree handling: propagate dirty flag into root
6315 We had an off-by-one error in tree_mark_dirty that lead to the root of the
6316 tree not being marked as dirty. As a consequence, performing a tree_clean
6317 on such a tree would not mark the tree as clean; that caused an aug_load
6318 directly followed by aug_save to write to disk, even though the tree was
6321 * src/augeas.c (tree_mark_dirty): propagate dirty flag to the root
6322 * tests/test-load.c (testLoadSave): test that simple load + save
6323 does not touch the filesystem
6325 This bug was introduced in commit 7278965b
6327 2009-07-08 David Lutterkort <lutter@redhat.com>
6329 Ntp: allow additional options for server etc.
6330 Allow options listed on http://doc.ntp.org/4.2.4/confopt.html
6332 Fixes bug #72 reported by Micah
6334 2009-07-08 David Lutterkort <lutter@redhat.com>
6336 Shellvars: allow backticks as quote characters
6337 * lenses/shellvars.aug (simple_value): allow backticks as quotes
6338 * lenses/tests/test_shellvars.aug: add tests
6340 Fixes bug #74 reported by Micah
6342 2009-07-08 Jim Meyering <meyering@redhat.com>
6344 build: ignore generated test files
6345 * tests/.gitignore: Remove file.
6346 * .gitignore: ignore tests/lens-*.sh
6348 2009-07-08 David Lutterkort <lutter@redhat.com>
6350 Logrotate: allow filenames to be indented
6351 * lenses/logrotate.aug (rule): allow indentation at start of rule
6352 * lenses/tests/test_logrotate.aug: add tests
6354 Fixes part of bug #67 reported by Micah
6356 2009-07-08 David Lutterkort <lutter@redhat.com>
6358 Logrotate: make owner/group in create statement optional
6359 * lenses/logrotate.aug (create): make mode/owner/group optional
6360 * lenses/test/test_logrotate.aug: add tests
6362 Fixes part of bug #67 reported by Micah
6364 2009-07-08 David Lutterkort <lutter@redhat.com>
6366 * configure.ac: use AC_SYS_LARGEFILE
6367 Suggested by Jeff Johnson <n3npq@mac.com>
6369 2009-07-08 David Lutterkort <lutter@redhat.com>
6371 * src/augeas.c (init_root): when root0 == "", use "/" as root
6372 When an empty string is passed as root0, make sure we do not make an
6373 invalid memory access when we look for the trailing slash.
6375 Reported and fix suggested by Jeff Johnson <n3npq@mac.com>
6377 2009-06-26 Jim Meyering <meyering@redhat.com>
6379 tests: divide test-lenses.sh into its 54 independent tests
6380 This permits these tests to be run in parallel.
6381 * tests/lens-test-1: New file.
6382 * tests/Makefile.am (lens_tests): Define.
6383 (check-lens-tests): New rule, to ensure that the above stays in
6385 (check): Depend on check-lens-tests.
6386 ($(lens_tests)): New rule. Generate these files.
6387 (check_SCRIPTS): Remove test-lenses.sh. Add $(lens_tests).
6388 (EXTRA_DIST): Add lens-test-1.
6389 * tests/test-lenses.sh: Remove file.
6390 * tests/.gitignore: suppress lens-*.sh files
6392 enable automake-1.11 features: colorized and parallel tests, etc.
6393 Also enable automake's new "silent-rules" feature.
6394 Use "make V=1" to see the usual, verbose-mode commands.
6395 * configure.ac: Require automake-1.11.
6396 Enable color-tests parallel-tests. Use AM_SILENT_RULES([yes])
6398 2009-06-26 Marc Fournier <marc.fournier@camptocamp.com>
6400 Yum: also read files in /etc/yum/pluginconf.d
6402 2009-06-16 David Lutterkort <lutter@redhat.com>
6404 Inittab: clean up formatting some
6406 2009-06-16 Matt Palmer <matt@anchor.net.au>
6408 Inittab: simplified schema, map comments
6409 Change the structure of the inittab lens so that the 'id' field is used
6410 as the name of the subtree for that line in /etc/inittab.
6412 Map comments as '#comment' nodes
6414 2009-06-16 David Lutterkort <lutter@redhat.com>
6416 augtool: add --echo option
6417 * src/augtool.c: add --echo option to print commands when reading
6418 from a file via stdin
6419 * man/augtool.pod: document --echo option
6420 * man/augtool.1: regenerated
6422 2009-06-15 Jim Meyering <meyering@redhat.com>
6424 build: fix "make distcheck" failure
6425 * src/Makefile.am (EXTRA_DIST): Add fa_sym.version.
6427 2009-06-12 Anders F Bjorklund <afb@users.sourceforge.net>
6429 * tests/augtest: convert darwin's double slashes to single slash
6431 * test-test-preserve.sh: work with BSD ls, as well as GNU ls
6432 Needed to make the test pass on OS/X
6434 2009-06-11 David Lutterkort <lutter@redhat.com>
6436 libfa: use linker script to only export public symbols
6437 libfa was exporting all kinds of symbols that were meant to be internal;
6438 now it only exports what's in fa.h
6440 2009-06-11 Anders F Björklund <afb@users.sourceforge.net>
6442 configure: do not use version script if the linker doesn't support it
6443 That is the case on OS X
6445 Fixes part of ticket #66
6447 2009-06-11 Anders F Björklund <afb@users.sourceforge.net>
6449 configuration: check whether rl_completion_matches is available
6450 That function is missing on OS/X; we substitute it with a dummy if readline
6451 does not provide it.
6453 Fixes part of ticket #66
6455 2009-06-11 Anders F Björklund <afb@users.sourceforge.net>
6457 * src/augtool.c: add missing include for ctype.h
6458 Part of fix for ticket #66
6460 2009-06-09 David Lutterkort <lutter@redhat.com>
6464 * tests/test-put-symlink.sh: fix broken test
6465 - use lenses in ../lenses
6466 - fix typo: HOSTS_AUGSAVE, not HOSTS_AGSAVE
6468 * bootstrap: use getline module from gnulib
6470 * src/augtool.c: initialize 'line' to NULL
6472 2009-06-05 David Lutterkort <lutter@redhat.com>
6474 Logrotate (hooks): simplify to speed up typechecker
6476 Logrotate: make newline at end of script optional
6478 * src/put.c (put_store): escape regexp before printing
6480 * src/pathx.c: coerce the operands of 'and'/'or' to boolean
6483 * src/lexer.l: allow empty regexps
6486 Dnsmasq: process files in /etc/dnsmasq.d/*
6487 Fixes bug #65 reported by abnormaliti
6489 2009-06-01 David Lutterkort <lutter@redhat.com>
6491 * src/augtool.c: allow comments starting with '#'
6493 2009-05-29 David Lutterkort <lutter@redhat.com>
6495 Whitespace cleanup (no functional change)
6496 Remove trailing whitespace
6498 2009-05-29 David Lutterkort <lutter@redhat.com>
6500 Ntp: support more commands
6501 * process 'broadcastdelay'
6502 * process enable/disable flags
6505 Minor amount of code cleanup
6507 Fixes bug #62, reported by Frank Sweetser
6509 2009-05-29 David Lutterkort <lutter@redhat.com>
6511 Fix grammar docs (production for PrimaryExpr was wrong)
6513 * tests/root/etc/: add group and passwd files
6515 2009-05-28 Matt Palmer <matt@anchor.net.au>
6517 Interfaces: various bug fixes
6518 * disallow end-of-line comments
6519 * support generic allow-* stanzas
6521 Interfaces: accept options containing '_'
6522 Bug reported by Jonas Eriksson
6524 2009-05-28 David Lutterkort <lutter@redhat.com>
6526 * tests/grub-rm-entry.rb: 'savedefault' indented by '\t', not ''
6528 2009-05-14 David Lutterkort <lutter@redhat.com>
6530 Modprobe: handle comments at the end of a line
6532 2009-04-13 David Lutterkort <lutter@redhat.com>
6534 Grub: allow optional argument for savedefault command
6536 Grub: parse arguments to chainloader command
6538 Grub: parse arguments for terminal command
6540 Grub: parse individual arguments for serial command
6542 Grub: parse kernel and module arguments
6544 Grub: simplify comment_re to speed up typecheck
6546 2009-04-13 Raphael Pinson <raphink@gmail.com>
6548 Cron: add a "time" node
6550 2009-04-13 David Lutterkort <lutter@redhat.com>
6552 * src/augeas.h: improve some comments
6554 2009-04-09 David Lutterkort <lutter@redhat.com>
6556 * src/augparse.c: add --notypecheck option
6558 2009-04-08 Raphael Pinson <raphink@gmail.com>
6560 Pbuilder: lens and tests for Debian's personal builder
6562 Shellvars: map comments with Util.comment and Util.empty
6564 Shellvars: parse 'export' and 'unset' commands
6566 2009-04-08 David Lutterkort <lutter@redhat.com>
6568 Add Cron to the dosumentation menu
6570 2009-04-08 Raphael Pinson <raphink@gmail.com>
6572 Cron: new lens and test
6573 Parses /etc/crontab and /etc/cron.d
6575 2009-04-08 Raphael Pinson <raphink@gmail.com>
6577 Sudoers: allow backslashes inside sto_to_com and sto_to_com_user
6578 This patch fixes ticket #60 which reports the possible usage of
6579 backslashes in sudoers aliases (for use with e.g. Windows resources).
6581 Backslashes are now allowed only in the middle of sto_to_com and
6584 Additionally, add a line with backslashes in test_sudoers to prevent
6587 2009-04-08 Raphael Pinson <raphink@gmail.com>
6589 Xinetd: map comments using Util.comment
6591 Squid: allow indentation of entries
6593 2009-04-07 Raphael Pinson <raphink@gmail.com>
6595 Logrotate: allow = as a separator for value_to_eol
6596 Fix ticket #61 by allowing "=" as a valid separator in value_to_eol.
6597 "word" may not contain "=" anymore in this case. Note that this is not
6598 documented in "man logrotate" but is shipped by default in CentOS (cf
6601 2009-04-07 David Lutterkort <lutter@redhat.com>
6603 Ntp: fixes to make the default Fedora config work
6604 Now enough of ntp.conf is understood so that the config from Fedora 10 with
6605 all directives uncommented can be processed.
6607 2009-04-07 Raphael Pinson <raphink@gmail.com>
6609 Ntp: add fudge directive
6612 2009-04-07 David Lutterkort <lutter@redhat.com>
6614 * src/transform.c (transform_save): append newline to old text
6615 If we appended a newline to initially load the file, we also need to do
6616 that when we parse the file again during save.
6618 Bug reported by Michael Conigliaro <mike@conigliaro.org>
6620 2009-04-03 David Lutterkort <lutter@redhat.com>
6622 * src/augtool.c: new option --noautoload
6624 * src/augeas.h: expose flag to suppress module autoload
6625 With AUG_NO_MODL_AUTOLOAD, modules are only loaded when they are needed.
6627 * src/transform.c (filter_generate): avoid segfault if we never call glob
6629 Php: some more tests, sample php.ini in test root
6631 Rx: remove \b and \d escapes
6633 2009-04-03 Raphael Pinson <raphink@gmail.com>
6635 Modify some existing lenses to use new utility modules
6636 Changes Aliases, Exports, Fstab, Group, and Monit
6638 Also exposes comments in /etc/aliases as #comment nodes
6640 2009-04-03 Raphael Pinson <raphink@gmail.com>
6642 New utility modules Build, Rx, and Sep
6644 2009-04-03 Marc Fournier <marc.fournier@camptocamp.com>
6646 Php: added default path on redhat
6648 2009-04-02 Raphael Pinson <raphink@gmail.com>
6650 Use readline only when stdin is a tty, use getline otherwise
6652 2009-04-01 Marc Fournier <marc.fournier@camptocamp.com>
6654 Vsftpd: several fixes
6655 * map comments as #comment
6656 * handle empty lines
6657 * find vsftpd.conf on Fedora/RHEL
6659 2009-03-27 David Lutterkort <lutter@redhat.com>
6661 Iptables: fix ticket #51
6662 * allow more characters in chain names
6663 * allow comments mixed in with chains and rules
6665 * augeas.spec.in: fadot is not installed yet
6669 Fix build problems uncovered by distcheck
6671 * src/get.c (get_quant_star): do not leak registers
6673 Some more test files
6675 Fix uninitialized variables found by optimizer
6677 * src/hash.c (hash_free_nodes): simplify and accelerate
6678 Reduces time to typecheck grub.aug from 9.8s to 8.5s on my machine.
6680 * src/hash.c: mark some asserts as expensive
6682 * tests/root/etc/krb5.conf: simple example file
6684 Krb5: lens and tests for /etc/krb5.conf
6686 2009-03-25 Raphael Pinson <raphink@gmail.com>
6688 Grub: add support for Debian's update-grub (ticket #50)
6689 Bug reported by Micah Anderson
6691 2009-03-25 David Lutterkort <lutter@redhat.com>
6693 * src/fa.c (fa_ambig_example): use heuristic for fast checking
6694 This avoids a lot of intersections in the Augeas typechecker, and speeds
6695 typechecking up by between 5% and 20%, depending on the lens.
6697 Thanks to Nate Foster for the inspiration of this
6699 2009-03-25 David Lutterkort <lutter@redhat.com>
6701 Sudoers: produce at most one negate node
6702 Even if there are multiple '!' signs, only produce one negate node.
6704 2009-03-25 Raphael Pinson <raphink@gmail.com>
6706 Sudoers: fix ticket #48
6707 * make a difference between boolean and non boolean values for integers and
6709 * allow multiple negate flags (odd/even numbers change the behaviour)
6710 * add optional double quotes to integer and string field
6712 Bug reported by Frank Sweetser
6714 2009-03-25 David Lutterkort <lutter@redhat.com>
6716 * src/augtool.c: make second argument for 'set' optional
6717 This makes it possible to set a tree node's value to the empty string
6723 2009-03-24 David Lutterkort <lutter@redhat.com>
6725 * src/augeas.c (aug_init): make it easier to override distributed lenses
6726 Make the default load path
6728 $(datadir)/augeas/lenses:$(datadir)/augeas/lenses/dist
6730 and instal the lenses we distribute into the dist/ subdir. That makes it
6731 easy for other packages to override lenses we ship: when they are installed
6732 into $(datadir)/augeas/lenses, they are automatically preferred over the
6735 2009-03-24 David Lutterkort <lutter@redhat.com>
6737 New API call aug_defnode and augtool command defnode
6738 It's common that we want to define a variable to reference /foo/bar, and
6739 create that node if it does not exist yet. aug_defnode bundles that
6740 together into one convenient call.
6742 * src/pathx.c (eval_filter): correctly hande realloc of value_pool
6744 * src/pathx.c (expand_tree): ensure we start with a nonempty lp_trace
6746 * src/augtool.c: new 'defvar' command
6748 Add variables for path expressions
6749 The new API call aug_defvar allows defining variables that can later be
6750 used in path expressions.
6752 2009-03-22 David Lutterkort <lutter@redhat.com>
6754 Add FilterExpr to path expression grammar
6755 This allows using constructs like $foo/some/path and $foo[2]
6757 * src/augeas.c (parse_user_pathx): new parameter need_nodeset
6759 * src/pathx.c (pathx_parse): new parameter need_nodeset
6761 * src/pathx.c (ns_filter): new function
6763 * src/pathx.c: rename E_LOCPATH to E_FILTER
6765 * src/pathx.c (clone_value): new function
6767 2009-03-21 David Lutterkort <lutter@redhat.com>
6769 * src/pathx.c (release_value): factor logic into separate function
6771 * src/pathx.c: remove assumption that toplevel expression is a locpath
6772 We can't assume that anymore when we have variables. That requires some
6773 headache for pathx_expand_tree, since that needs a full trace of evaluating
6774 a locpath against the tree.
6776 * src/pathx.c (pathx_eval): factor eval into a function
6778 * examples/fadot: remove, checked in by mistake
6780 2009-03-20 David Lutterkort <lutter@redhat.com>
6782 * .gitignore: ignore examples/fadot
6784 * src/get.c: rename 'Short iteration' to a more helpful message
6786 * src/transform.c (store_error): report which lens failed
6788 * src/transform.c (store_error): ignore errors from err_set
6790 * src/transform.c (store_error): calculate line number/ofs for error
6792 * src/transform.c (err_set): new function
6794 2009-03-20 Francis Giraldeau <francis.giraldeau@revolutionlinux.com>
6796 * examples/fadot.c: tool to generate dot graphs of FA's
6797 The fadot tool produces dot graphs of finite automata, and allows certain
6798 operations on FA's from the command line, like intersection and complement
6801 2009-03-19 David Lutterkort <lutter@redhat.com>
6803 * src/pathx.c: call make_value before pop_value
6804 Since make_value might realloc, pointers retrieved with pop_value may
6805 become invalid across make_value calls.
6807 * src/augeas.c: remove some internal uses of pathx_parse
6809 * src/augeas.c: create various /augeas nodes when they go missing
6811 * src/put.c (create_concat): fix goofy error message
6813 Update and refresh man pages
6815 * src/augtool.c: add --noload option
6817 Validate trees representing a transform before using them
6819 * tests/test-load.c: new test for aug_load
6821 * src/augeas.h (aug_init): make loading the tree optional
6822 The new flag AUG_NO_LOAD can be used to keep aug_init from loading any
6823 files. This gives the user a chance to modify /augeas/load and then call
6826 * src/augtool.c: new 'load' command
6828 * src/augeas.h (aug_load): new public function
6830 * src/transform.h: use tree encoded transforms
6832 * src/lens.c (lens_release): allow NULL lens to be passed in
6834 * src/syntax.h (lens_lookup): new function
6836 * src/augeas.c: report transforms under /augeas/load
6838 Rename AUG_NO_DEFAULT_LOAD to AUG_NO_MODL_AUTOLOAD
6840 Limits (filter): no need to exclude anything
6842 2009-03-19 Raphael Pinson <raphink@gmail.com>
6844 Limits: map domain into the value of domain node (schema change)
6845 Mapping the domain as the label of a node leads to difficulties since '*'
6846 is a valid domain name.
6848 Problem reported by Mark Drayton (ticket #47)
6850 2009-03-19 David Lutterkort <lutter@redhat.com>
6852 Lokkit: new lens and test
6854 2009-03-17 David Lutterkort <lutter@redhat.com>
6856 Iptables: new lens and test
6857 A fairly basic parse of the iptables config file. It should accept any
6858 legal iptables config file; what makes it basic is that it doesn't break
6859 some of the values down as fine-grained as I would like to have them
6861 2009-03-13 David Lutterkort <lutter@redhat.com>
6863 * configure.ac: bump major version of libfa
6865 * src/fa.h (fa_as_regexp): cleaner prototype
6867 * src/fa.h (fa_ambig_example): cleaner prototype
6869 * src/fa.h (fa_example): cleaner prototype
6871 * src/fa.h (fa_compile): pass in size of regexp
6873 * src/fa.h: use 'struct fa *' instead of fa_t
6875 2009-03-13 David Lutterkort <lutter@redhat.com>
6877 * src/augeas.c: fix handling of dirty flag
6878 Under some circumstances, we did not properly propagate the dirty flag up
6879 the tree, leading to files that were not saved even though they should have
6882 This also removes two full sweeps over the tree for dirty handling, and now
6883 only touches nodes that are/need to be marked dirty.
6885 2009-03-13 David Lutterkort <lutter@redhat.com>
6887 * Makefile.maint: different setup at home
6889 2009-03-12 David Lutterkort <lutter@redhat.com>
6891 * src/transform.c (transform_save): properly sync data to disk
6892 Make sure the data we write into the .augnew file hits the disk before
6893 renaming to the proper name
6895 Modprobe: lens and tests for modprobe.conf
6897 * src/fa.c (re_cset_as_string): turn '[^\n]' into '.'
6899 Place Sudoers and Util under LGPLv2+
6900 Raphael Pinson agreed to changing the license for these to LGPLv2+ like the
6903 2009-03-09 David Lutterkort <lutter@redhat.com>
6907 Logrotate: process 'minsize 1M' rule
6908 logrotate allows unit suffixes 'k', 'M' and 'G' for 'size' and 'minsize'
6910 Squid: add squid.conf from Fedora 11 rawhide
6912 * src/builtin.c: new builtins Sys.getenv and Sys.read_file
6914 * src/syntax.h (dup_string): duplicate a string
6916 * src/internal.h (xstrerror): new function
6918 2009-03-09 Francois Deppierraz <francois.deppierraz@camptocamp.com>
6920 Test the Debian Lenny sample squid.conf
6922 2009-03-09 Francois Deppierraz <francois.deppierraz@camptocamp.com>
6924 Add a bunch of keywords available on squid-2.7-STABLE6 or squid-3.HEAD-20090308.
6925 The keywords list was generated by the following command:
6927 fgrep TAG squid-2.7.STABLE6/src/squid.conf.default | awk '{ print " | \""$3"\"" }' | sort > /tmp/squid2.7
6929 fgrep TAG squid-3.HEAD-20090308/src/squid.conf.documented | awk '{ print " | \""$3"\"" }' | sort > /tmp/squid3-HEAD
6931 cat /tmp/squid2.7 /tmp/squid3-HEAD | sort | uniq
6933 2009-03-08 David Lutterkort <lutter@redhat.com>
6935 * tests/xpath.tests: Hosts lens puts comments into #comment nodes
6937 * augeas.spec.in: BR for libselinux-devel (bug #26)
6938 Without the BR, the Fedora and EPEL builds are done without SELinux
6939 support, resulting in a binary that does not preserve SELinux contexts
6941 2009-03-06 David Lutterkort <lutter@redhat.com>
6943 Sshd: map comments as '#comment' nodes
6945 Change the label for comment nodes to '#comment'
6947 Do not delete files that had an error upon parsing
6948 When we can't read a file, we create an entry for it under /augeas, but
6949 there won't be anything for it under /files. That looks a lot like a file
6950 whose entire subtree was deleted; but since we failed reading the file, we
6951 should not delete it either.
6953 * src/augeas.c (aug_init): always create /files
6955 Sshd: add test showing how to add a Subsystem
6957 2009-03-03 David Lutterkort <lutter@redhat.com>
6959 * Makefile.maint: add autogen target
6961 * src/pathx.c (eval_rel): for numbers, '<' and '<=' were reversed
6963 Postfix_main: handle continuation lines
6965 * src/pathx.c: fix some comments
6967 2009-03-02 David Lutterkort <lutter@redhat.com>
6971 * configure.ac: make default warning level 'maximum'
6972 Using 'error' here is too unfriendly on weird platforms, since builds can
6973 fail, e.g. because of broken system headers. When doing actual development,
6974 set this to 'error'.
6976 * src/pathx.c: function label() returning the label of the ctx node
6978 * src/pathx.c: make sure ['foo' != 'foo'] is false
6980 2009-03-02 David Lutterkort <lutter@redhat.com>
6982 * src/pathx.c: handle names with '.' properly
6983 Make sure that a component ina path expression like '.bar' is parsed as a
6984 single step (name), and not as the self axis '.' followed by some
6987 Bug reported by Jan Kupec
6989 2009-03-02 David Lutterkort <lutter@redhat.com>
6991 * src/pathx.c: it is an error if we don't consume the whole expression
6993 2009-02-27 David Lutterkort <lutter@redhat.com>
6995 * tests/test-event-saved.sh: make sure fuiles are writable by owner
6997 2009-02-25 David Lutterkort <lutter@redhat.com>
6999 Plug a few memory leaks
7001 Remove files whose tree under /files was deleted
7002 When doing rm /files/etc/hosts, we now delete the file /etc/hosts
7005 Move path formatting functions around
7006 Move path_expand and format_path to internal.c
7007 Rename format_path to path_of_tree
7009 * src/augeas.c (tree_find): helper for getting a tree node
7011 2009-02-24 David Lutterkort <lutter@redhat.com>
7013 * src/augeas.c: erase /augeas/events/saved only once
7014 tree_save is called recursively; /augeas/events/saved must be reset
7015 in aug_save, not tree_save
7017 Record saved files in transform_save, not tree_save
7019 * src/augeas.c (tree_unlink): remove and free a subtree
7021 * src/transform.h: move transform decls out of syntax.h
7023 Util.stdexcl: exclude .augsave and .augnew files
7025 2009-02-20 David Lutterkort <lutter@redhat.com>
7027 * src/lexer.l: correct location info for strings and regexps
7029 * src/get.c: check for valid match before calling token()
7031 2009-02-19 David Lutterkort <lutter@redhat.com>
7033 * src/parser.y: do not allow epsilon as a tree constant
7034 This grammar mistake made epsilon a valid expression
7036 * src/fa.c: cache hash values in the state
7037 This gives about a 15% performance improvement in typechecking
7040 2009-02-18 David Lutterkort <lutter@redhat.com>
7042 * src/pathx.c: allow '(' Expr ')'
7044 * src/pathx.c: add 'and' and 'or' operators
7046 * src/pathx.c: add relational expressions '>', '<', '>=', '<='
7048 * src/pathx.c: add count() function
7050 * src/pathx.c (parse_name): do not allow ')' in names
7051 Names can not contain ')', otherwise we will run beyond the end of
7052 arguments in a function call like 'f(name)'
7054 * src/pathx.c: add position() function
7056 * src/pathx.c: allow '=' and '!=' of numbers
7058 2009-02-18 David Lutterkort <lutter@redhat.com>
7060 * src/pathx.c: fix matching multiple predicates
7061 We used to evaluate /path[pred1][last()] wrong - last() must match the last
7062 node in the nodeset /path[pred1], not the last node in the nodeset /path.
7064 This requires that we compute nodesets explicitly.
7066 2009-02-18 David Lutterkort <lutter@redhat.com>
7068 Logrotate: small fixes
7069 * recognize 'yearly' schedule
7070 * allow whitespaces around { and }
7072 2009-02-17 David Lutterkort <lutter@redhat.com>
7074 * src/get.c: speed up initial match
7075 Avoid matching the entire input string, since it can be _very_ slow.
7076 Since it is very common that the toplevel lens is (l)*, optimize for
7079 * src/get.c: reduce the number of calls to regexp_match
7080 Only call the regexp matcher at the very beginning of get/parse, and once
7081 for every match inside an iteration. Use re_registers to keep track of the
7082 substrings being worked on in favor of 'struct split'
7084 Always do REGS_REALLOCATE for regexp match registers
7086 * src/regexp.c: clean up syntax options
7088 * src/put.c: remove outdated debug msgs and comments
7090 * src/internal.h: Remove bogus DEBUG define
7093 These enhancements are needed to make the Ntp.lns process the default
7094 /etc/ntp.conf on Fedora
7096 2009-02-16 David Lutterkort <lutter@redhat.com>
7098 * src/syntax.c: print tests results in the same form we read them
7100 2009-02-13 David Lutterkort <lutter@redhat.com>
7102 Allow passing NULL regexps in some regexp routines
7104 2009-02-13 Raphael Pinson <raphink@gmail.com>
7106 Xorg: new lens and tests
7108 2009-02-11 David Lutterkort <lutter@redhat.com>
7110 Test that an invalid regexp makes module loading fail
7112 Services: various small fixes to process Fedora's /etc/services
7114 * tests/test-get.sh: print all error info on failure
7116 Better error mesages when re match fails during get/put
7118 * src/lens.c: throw exception on regexp syntax errors
7120 * src/fa.c: test for invalid ranges like [z-a]
7122 2009-02-11 Raphael Pinson <raphink@gmail.com>
7124 Lens and test for /etc/services
7126 2009-02-11 David Lutterkort <lutter@redhat.com>
7128 * src/augtool.c (cmd_match): check return from aug_match more defensively
7130 2009-02-06 David Lutterkort <lutter@redhat.com>
7134 Use printf instead of 'echo -e' in tests
7135 Printf is more portable
7137 Fix compilation on OpenSolaris
7138 * src/pathx.c (position): assert not marked as noreturn
7140 * tests/test-xpath.c (run_one_test): allow results in arbitrary order. Files on Fedora and Debian are enumerated in different order, leading to spurious test failures
7142 * src/pathx.c: remove the value() function, it's redundant with '.'
7144 * pathx.c: when comparing strings consider NULL == ""
7146 Change how names are parsed in path expressions
7147 Names can not contain any of the characters [][=/ \t\n] - to include
7148 them in a name, they need to be escaped with a '\', so that 'foo\=bar'
7149 matches a node with literal label 'foo=bar'.
7151 * tests/grub-rm-entry.rb: fix test failure
7153 * tests/augtest: do not typecheck everything
7154 The typecheck is redundant (we already do that when running lens tests) and
7157 2009-02-06 David Lutterkort <lutter@redhat.com>
7159 Grub: process 'savedefault' in boot stanza
7160 Also, allow keywords to be preceded by whitespace
7164 2009-02-06 David Lutterkort <lutter@redhat.com>
7166 Minor whitespace cleanup
7168 2009-02-02 Free Ekanayaka <free@64studio.com>
7170 Lens and tests for DarkIce
7171 See http://darkice.tyrell.hu/
7173 2009-02-01 David Lutterkort <lutter@redhat.com>
7175 * src/augeas.c: use ALLOC instead of CALLOC
7177 * augeas.c (aug_init): check an allocation failure
7179 * src/internal.c (escape, unescape): check allocation failures
7181 * src/pathx.c (free_state): allow NULL state
7183 * src/augeas.c (init_root): check for failure of strdup
7185 2009-01-30 David Lutterkort <lutter@redhat.com>
7187 * src/pathx.c: factor test if a step matches into step_matches
7188 This also fixes a problem matching, test also included
7190 * src/pathx.c: use bool for boolean values
7192 Build changes so that 'make' on Opensolaris 5.11 works
7193 The tests ('make check') still fail, because of trouble with
7194 some of the shell scripts
7196 * src/transform.c: use POSIX conform FNM_PATHNAME, nut GNU alias
7198 * src/get.c: remove braindead use of alloca
7200 * tests/test-get.sh: use new descendant syntax to find errors
7202 Remove unneeded call to pathx_parse in aug_match
7204 Introduce parse_user_pathx to report errors
7205 If user-supplied path expressions have errors, report them in
7208 Move parsing of path expressions into public API methods
7209 For path expressions that are passed through the API, we need to report
7210 errors. This change lays the groundwork, so that we can distinguish between
7211 parsing user-supplied path expressions and internally generated path
7214 Rename aug_tree_replace to tree_replace
7215 We reserve the aug_ prefix for public functions. There is also no need to
7216 pass struct augeas here, a tree root is enough.
7218 More xpath tests; allow ... in tests
7220 Simplify internal API's
7221 * pass origin, not root to pathx_parse
7222 * pathx_next does not need an explicit argument for the current
7225 2009-01-30 David Lutterkort <lutter@redhat.com>
7227 Expand the grammar for path expressions
7228 * add predicates based on labels and values
7229 * allow path expressions in predicates, e.g. '/foo/bar[../baz = "7"]'
7230 * add explicit axes and some abbreviations thereof
7232 This requires a rewrite of the interpreter of path expressions; the
7233 interpreter is now based on a more explicit representation of the abstract
7234 syntax of the path expression and is statically type checked.
7236 Also add tests to check path expression evaluation
7238 2009-01-30 David Lutterkort <lutter@redhat.com>
7240 Use absolute paths in lens tests when manipulating the tree
7241 Paths that start with a number (like '1/ipaddr') are ambiguous in the new
7242 path expression grammar and will confuse the parser; to make it clear that
7243 they are paths, and not just a number, use absolute paths.
7245 Notes on new XPath grammar
7247 Rename struct path to struct pathx
7248 Also rename path_* functions to pathx_*; rename make_pathx to pathx_parse
7249 and change its signature to allow cleaner error reporting
7251 2009-01-29 David Lutterkort <lutter@redhat.com>
7253 Grub: support color directive
7255 2009-01-26 David Lutterkort <lutter@redhat.com>
7259 2009-01-26 Dominique Dumont <dominique.dumont@hp.com>
7261 Sshd: add documentation on usage
7263 2009-01-25 David Lutterkort <lutter@redhat.com>
7265 Add indented puppet.conf to test root
7267 2009-01-22 David Lutterkort <lutter@redhat.com>
7269 Fix bug #25 - allow indented entries in puppet.conf
7270 * lenses/inifile.aug: add new indented_entry and indented_title
7272 * lenses/puppet.aug: use the indented_* lenses
7273 * lenses/tests/test_puppet.aug: test with indented entries
7275 2009-01-19 David Lutterkort <lutter@redhat.com>
7277 Report version and legal save modes in /augeas/version
7279 2009-01-17 David Lutterkort <lutter@redhat.com>
7281 * ref.h: include limits.h, since we use UINT_MAX
7283 2009-01-16 David Lutterkort <lutter@redhat.com>
7285 Mark up code in documentation comments for Dpkg and Exports
7287 2009-01-16 Robin Lee Powell <rlpowell@digitalkingdom.org>
7289 Documentation for Exports and Dpkg
7291 2009-01-13 David Lutterkort <lutter@redhat.com>
7293 Minor changes to handling of save flag
7294 * complain if /augeas/save is missing or has an invalid value
7295 * do not clobber non-save flags when updating from /augeas/save
7298 2009-01-13 Bryan Kearney <bkearney@redhat.com>
7300 Dynamically change behavior of aug_save; add noop save mode
7301 * control behavior of aug_save through changing /augeas/save
7302 * noop mode allows checking if changes will be written, without
7303 changing file system
7305 2009-01-08 Jim Meyering <meyering@redhat.com>
7310 24 bytes in 1 blocks are definitely lost in loss record 1 of 1
7311 at 0x4021BDE: calloc (vg_replace_malloc.c:397)
7312 by 0x4029379: make_tree (augeas.c:316)
7313 by 0x403AC70: get_lens (get.c:592)
7314 by 0x403ACB6: get_lens (get.c:523)
7315 by 0x403AB4F: get_lens (get.c:474)
7316 by 0x403ACDE: get_lens (get.c:523)
7317 by 0x403AB4F: get_lens (get.c:474)
7318 by 0x403AF20: lns_get (get.c:684)
7319 by 0x4034E81: lens_get (builtin.c:124)
7320 by 0x402CDC7: native_call (syntax.c:967)
7321 by 0x402F4C9: compile_exp (syntax.c:1574)
7322 by 0x402EF17: compile_exp (syntax.c:1487)
7323 by 0x402FEEC: __aug_load_module_file (syntax.c:1600)
7324 by 0x80489AE: main (augparse.c:86)
7326 test ls output more portably in face of SELinux differences
7327 * test-preserve.sh: Use cut -b1-10 to get mode from ls -l output.
7328 Use ls -lZ (not ls -Z, which is not portable) to get SELinux context.
7330 2009-01-04 Arnaud Gomes-do-Vale <arnaud.gomes@ircam.fr>
7332 * src/Makefile.am: fix bz #478619 - do not use abspath
7334 2009-01-03 Robin Lee Powell <rlpowell@digitalkingdom.org>
7336 Dpkg: new lens and test
7338 2009-01-03 David Lutterkort <lutter@redhat.com>
7340 Php: expand filter slightly
7341 Suggested by Robin Lee Powell <rlpowell@digitalkingdom.org>
7343 2008-12-29 David Lutterkort <lutter@redhat.com>
7345 Fix segfault when branch in a union does not have a ktype
7346 * src/lens.c (lns_key_regexp): check for NULL ktype of branch
7347 * tests/modules/pass_union_nokey.aug: test the fix
7349 Bug reported by Robin Lee Powell <rlpowell@digitalkingdom.org>
7351 2008-12-27 Free Ekanayaka <free@64studio.com>
7353 Add soma lens and test
7355 Add limits lens and test
7357 2008-12-24 David Lutterkort <lutter@redhat.com>
7359 * autogen.sh: remove bogus argument to configure
7361 2008-12-24 Marc Fournier <marc.fournier@camptocamp.com>
7363 Php, Gdm: exclude literal ".anon" from title, not regexp /.anon/
7365 2008-12-24 Free Ekanayaka <free@64studio.com>
7367 Phpvars: allow whitespaces before the \n in the <?php head line
7369 2008-12-23 David Lutterkort <lutter@redhat.com>
7373 * transform.c (transfer_file_attrs): ignore SELinux failures if filesystem does not support extended attributes
7375 * transform.c (clone_file): fix #32; only copy if /augeas/save/copy_if_rename_fails exists
7377 Group: split list of users, make it optional
7378 The list of users in a group is now split into individual 'user/'
7379 nodes. If a group has no members, no user/ nodes are produced.
7381 2008-12-23 Free Ekanayaka <free@64studio.com>
7383 Add lens and test for /etc/group
7385 2008-12-23 David Lutterkort <lutter@redhat.com>
7387 Simpler interface and implementation for path_find_one
7389 Add path_expand_tree
7390 Instead of calling path_find_one/tree_create
7392 Move implementation dealing with path expressions into separate file
7394 Simplify searching in the tree by using parent pointers
7395 Segments do not need to track the tree node where they matched anymore,
7396 since we can get the same information by following parent pointers.
7398 2008-12-23 David Lutterkort <lutter@redhat.com>
7400 Make finding the parent and siblings of a node uniform
7401 All nodes (including the root) now have a parent node, so
7402 that the start of the list of siblings can be found as
7403 tree->parent->children for any node.
7405 All 'standalone' trees now have a fake root, called 'origin' whose
7406 children are the real root nodes. Another way to look at this is
7407 that the tree is now edge-labeled.
7409 2008-12-23 David Lutterkort <lutter@redhat.com>
7411 Rename seg_siblings to tree_siblings
7413 Add an explicit parent pointer to the tree
7415 2008-12-23 Free Ekanayaka <free@64studio.com>
7417 Lens and test for config files using PHP-style variables
7418 Process /etc/squirrelmail/config.php
7420 2008-12-23 Marc Fournier <marc.fournier@camptocamp.com>
7422 New lens and tests for /etc/rsyncd.conf
7423 rsyncd.conf is an ini file which allows indented
7424 parameters (like smb.conf) as well as entries outside
7425 any section (like php.ini).
7427 2008-12-23 David Lutterkort <lutter@redhat.com>
7429 * fa.c: mark '.' as a special character that needs to be escaped
7431 2008-12-22 David Lutterkort <lutter@redhat.com>
7433 Notes on the expanded XPath notation
7435 2008-12-22 Free Ekanayaka <free@64studio.com>
7437 Add lens and test for /etc/passwd
7439 Shellvars: process two more files on Debian
7440 Add /etc/arno-iptables-firewall/debconf.cfg and /etc/cron-apt/config
7442 Add lenses and tests for postfix's main.cf and master.cf
7444 Squid: new lens for squid.conf
7448 2008-12-16 David Lutterkort <lutter@redhat.com>
7450 Shellvars: load /etc/sysconfig/sendmail
7452 2008-12-03 David Lutterkort <lutter@redhat.com>
7454 Xinetd: make sure equal sign is surrounded by spaces
7457 * lenses/xinetd.aug: make sure new equal signs have a space before
7458 and after them; indent attributes with a tab by default
7459 * lenses/tests/test_xinetd.aug: add test
7461 2008-11-20 David Lutterkort <lutter@redhat.com>
7463 Sshd: change the structure of Condition subtrees
7464 The conditions for a match block are now a single subtree, instead of
7465 one subtree per condition.
7467 2008-11-19 David Lutterkort <lutter@redhat.com>
7469 Only try to save backup file if original exists
7470 * transform.c (transform_save): check that original exists before
7473 Fix saving of files where backup/new and target are on different devices
7474 * transform.c (clone_file): new function
7475 * transform.c (transform_save): if rename fails because new/backup file
7476 and target file are on different devices, copy the files
7478 2008-11-05 David Lutterkort <lutter@redhat.com>
7480 * Makefile.maint: add target tag-release
7484 * test-preserve.sh: check that augtool -b produces a backup
7486 2008-10-30 David Lutterkort <lutter@redhat.com>
7488 Fix problem with transferring file attributes during save
7489 * src/transform.c(transform_save): transfer attributes from the original to
7490 the new file as soon as the new file is created; create a .augsave file
7491 as a hardlink, not by renaming
7492 * src/transform.c(file_replace): pull out the code to transfer attributes
7493 into new function transfer_file_attrs; rename of new file to original is
7494 now done in transform_save
7496 2008-10-24 David Lutterkort <lutter@redhat.com>
7500 * Makefile.maint: add upload target
7502 Modest beginnings of a maiintainer Makefile
7503 * Makefile.maint: new file
7505 Undo API breakage introduced in commit 48c285c
7506 * src/augeas.c (aug_save): return 0 on success, instead of the number of
7508 * src/augtool.c (cmd_save): get the number of files changed from aug_match
7510 build: use LIB_SELINUX as set by gnulib
7511 * configure.ac: do not set up LIB_SELINUX, gnulib does that
7513 2008-10-22 Sylvain Baubeau <bob@glumol.com>
7515 Grub: support "rootnoverify" and "chainloader" directives
7517 2008-10-21 David Lutterkort <lutter@redhat.com>
7521 test-preserve.sh: do not check SELinux context on non-SELinux systems
7523 test-events-saved.sh: sort the list of saved files
7525 aug_save: report saved files in /augeas/events/saved
7526 aug_save now reports which files were changed on disk underneath
7527 /augeas/events/saved; if multiple files are changed in one save operation,
7528 there will be multiple /augeas/events/saved entries in the tree. The value
7529 of each is the path to the file prefixed with /files.
7531 Generate ChangeLog from git history
7533 file_replace: preserve SELinux context
7534 Copy the SELinux context from the existing file.
7536 transform_save: preserve file owner/group and mode when saving
7537 Take the file owner/group and mode from the existing file and set it on the
7538 newly created file during save. When a file is created from scratch, we
7539 still create the file with whatever default user/group/mode the current
7542 2008-10-20 David Lutterkort <lutter@redhat.com>
7544 aug_save: report the number of files that were changed
7545 When the tree is saved, keep track of the number of files that were
7546 actually changed and return that number.
7548 transform_save: make saving idempotent
7549 When a file needs to be saved, its contents are first generated in a temp
7550 file which is then moved over the original file. Between generating the
7551 temp file and moving it in its final place, read its contents back in and
7552 compare with the contents of the original file. Only move the tempfile over
7553 the original if the contents do indeed differ. This avoids spurious changes
7558 2008-10-16 Jim Meyering <jim@meyering.net>
7560 Include <config.h> early, so its _GNU_SOURCE definition takes effect.
7561 * src/lexer.l (%top{...}): Include <config.h> here, not in %{...}.
7562 Otherwise, the flex-emitted inclusion of <string.h> would
7563 precede the definition of _GNU_SOURCE, rendering it useless.
7564 This also avoids warnings about strndup being undeclared.
7565 Don't include <string.h> explicitly, since flex already does that.
7567 2008-10-13 Joel Nimety <jnimety@perimeterusa.com>
7569 Grub: add support for password directive
7571 2008-10-06 Free Ekanayaka <free@64studio.com>
7573 Samba: Change default indentation and separation
7574 Match indentation of the example configuration file shipped by the upstream
7577 Add gdm lens and associated test
7579 2008-10-02 David Lutterkort <lutter@redhat.com>
7581 Ignore files based on .hgignore
7583 2008-10-01 David Lutterkort <lutter@redhat.com>
7585 Complain when nodes in the tree can not be put
7586 When nodes are added to the tree that do not match the appropriate
7587 key/label lens, we used to silently drop them if the key/label was inside a
7588 repetition inside a concat.
7590 Now, we check when we split the tree for a concat that we have used all the
7591 nodes in the tree that we were supposed to, and complain otherwise.
7593 This also uncovered that the test rec-hosts-add.rb was broken, but still
7596 2008-10-01 David Lutterkort <dlutter@redhat.com>
7598 Pass --nostdinc properly when running under gdb
7600 Logrotate: parse tabooext into list; add processing of a number of options
7601 Patch by Sean E. Millichamp
7603 2008-09-22 David Lutterkort <dlutter@redhat.com>
7605 Grub: add support for 'serial' and 'terminal'
7606 Patch by Sean E. Millichamp
7608 Add backlinks to main site
7612 Logrotate: add dateext flag
7613 Patch by Sean E. Millichamp
7615 2008-09-22 David Lutterkort <dlutter@redhat.com>
7617 Various changes to the NaturalDocs support
7618 This patch changes a few things around in the NaturalDocs support:
7620 - There is no explicit --with-naturaldocs option anymore; instead,
7621 configure.ac looks for a program that's either called 'naturaldocs' or
7622 'NaturalDocs' and enables support for doc generation depending on whether
7623 that program is found or not.
7625 This works in any of the following situations:
7626 (1) NaturalDocs is installed from an RPM, and therefore on the default
7627 PATH, with its Perl modules installed on the standard Perl library
7629 (2) NaturalDocs is installed in a random directory, and both PATH and
7630 PERL5LIB are set accordingly
7631 (3) A wrapper script that sets the path is on PATH
7633 - Various fixes to make 'make distcheck' work
7635 2008-09-12 David Lutterkort <dlutter@redhat.com>
7637 Properly include test modules
7639 2008-09-11 Raphael Pinson <raphink@gmail.com>
7641 Add naturaldocs support Build pdf docs
7643 2008-09-09 Raphael Pinson <raphink@gmail.com>
7645 Adapt comments for NaturalDocs parsing
7647 Add comments for NaturalDocs parsing
7649 Add comments for NaturalDocs parsing
7651 Add comments for NaturalDocs parsing Reorganize a bit
7653 Adapt sudoers.aug for NaturalDocs parsing
7655 Adapt augeas.h for NaturalDocs parsing
7657 2008-09-08 David Lutterkort <dlutter@redhat.com>
7659 Sshd: better handling of match blocks
7660 Split match conditions into individual 'Condition' entries. Store the
7661 settings for a match block inside 'Settings' entries.
7663 2008-09-08 Free Ekanayaka <free@64studio.com>
7665 Add monit lens and test
7667 2008-09-06 Free Ekanayaka <free@64studio.com>
7669 Ldap: merge with Spacevars. Spacevars: process havp.config
7670 Adapt Test_ldap, since there is no Ldap.lns anymore
7672 2008-09-08 David Lutterkort <dlutter@redhat.com>
7674 Use --nostdinc in tests
7675 We never want to use installed lenses in the tests; they should only be
7676 read from the directories that are specified explicitly
7678 augtool, augparse: add --nostdinc option
7680 augtool, augparse: allow long options
7682 2008-09-06 Free Ekanayaka <free@64studio.com>
7684 Shellvars: merge Sysconfig, Ifcfg; support /etc/default
7685 Merge Sysconfig and Ifcfg into Shellvars
7687 Add /etc/default/* to the list of supported configuration files
7689 2008-09-05 David Lutterkort <dlutter@redhat.com>
7691 transform: append missing newlines
7692 If a file does not end with a newline, append one automatically. Most
7693 lenses require that a file ends with a newline, and files that are missing
7694 them are quite common.
7696 Shellvars: use Util.eol for eol
7698 test/modules: only distribute .aug files
7700 Shellvars: handle space at the end of a line
7702 2008-09-04 David Lutterkort <dlutter@redhat.com>
7704 Added tag release-0.3.1 for changeset 803c17b1833a
7708 Sysctl: lens for sysctl.conf
7709 Contributed by Sean Millichamp
7711 2008-09-04 Free Ekanayaka <free@64studio.com>
7713 Add lens and test for dnsmasq.conf
7715 2008-09-02 Free Ekanayaka <free@64studio.com>
7717 Add slapd.aug and test modules
7719 Spacevars: Allow passing the entry keyword as a parameter
7720 Modify Ldap.lns and Test_spacevars accordingly
7722 2008-08-30 Free Ekanayaka <free@64studio.com>
7724 Add samba.aug and associated test
7726 2008-08-27 Free Ekanayaka <free@64studio.com>
7728 Inifile: support empty comments
7729 Empty comments are lines beginning with ";" or "#" but without any more text
7731 2008-08-29 Raphael Pinson <raphink@gmail.com>
7733 Map entries outside of sections inside a ".anon" section
7734 Clean regexp for entry key
7735 Remove /.anon/ from record key regexp
7736 Modify test_php.aug according to new mapping policy
7737 entry_re is standard in php.aug
7739 2008-09-03 David Lutterkort <dlutter@redhat.com>
7741 typecheck_maybe: less convoluted check for empty match
7742 There's no need to construct an FA to check if a regular expression matches
7745 2008-09-03 David Lutterkort <dlutter@redhat.com>
7747 Properly typecheck the '?' operator
7748 The '?' operator was completely missing a typecheck for the atype. The
7749 check must make sure that neither the ctype nor the atype match the empty
7752 To allow constructs like (store re)?, we allow the atype to match the empty
7753 word, as long as the lens inside the '?' consumes the value of the current
7754 node, since that also tells as whether to use the inner lens or not.
7756 Various existing lenses failed to typecheck after this change and have been
7757 adapted; this also fixes a bug in the Fstab.lns where existing whitespace
7758 was being replaced with a default tab. The Interfaces.lns needed a fairly
7759 invasive change, and as a consequence produces way more (too many?)
7760 anonymous tree nodes.
7762 Added tests to verify the typechecking of '?'
7764 2008-09-02 David Lutterkort <dlutter@redhat.com>
7766 Minor error message improvements
7767 - Include information about the lens that produced the error if it's
7769 - When a union during 'put' does not match, produce an error instead of
7772 2008-08-28 David Lutterkort <dlutter@redhat.com>
7774 Fix a bug with transferring skeletons
7775 It is possible for a skeleton to move from one subtree lens to another, if
7776 both use the same key; since the lenses might have different skeleton
7777 types, we need to detect this and discard the skeleton if its type does not
7778 match the lens that is used during put.
7780 skel_instance_of: fix bad check for regexp match
7781 The return value of regexp_match was interpreted incorrectly, making it
7782 seem that the skel_instance_of test should fail if we ever tried to match
7785 2008-08-27 David Lutterkort <dlutter@redhat.com>
7787 Some files for the test root
7789 A test for the del typecheck
7791 Script to run lens tests through Valgrind
7792 We don't run this as part of 'make check' since it's _very_ slow.
7794 2008-08-27 David Lutterkort <dlutter@redhat.com>
7796 Dhclient: change some defaults for del
7797 This is really a bug in how string literals are unescaped by the lexer, but
7798 we can sidestep the problem here.
7800 The lexer bug is https://fedorahosted.org/augeas/ticket/12
7802 2008-08-27 Free Ekanayaka <free@64studio.com>
7806 2008-08-26 Raphael Pinson <raphink@gmail.com>
7808 Add OpenVPN lens and associated test
7810 2008-08-27 Free Ekanayaka <free@64studio.com>
7812 Dput: add allowed_distributions entry
7813 See man dput.cf(5) from a recent dput version (Ubuntu/hardy or
7816 2008-08-26 David Lutterkort <dlutter@redhat.com>
7819 The builtin lens 'del RE STR' was missing a typecheck: the default string
7820 STR must match the regular expression RE, otherwise we might produce text
7821 that we cant parse back in.
7823 This patch fixes that, adds a test that the check is performed, and fixes
7824 all the places in existing lenses where a use of 'del' failed the
7827 2008-08-18 Nahum Shalman <nshalman elys com>
7829 Shellvars: fix arrays so that saving works properly * based on an IRC conversation with raphink
7831 2008-08-25 David Lutterkort <dlutter@redhat.com>
7833 Acknowledge Free Ekanayaka
7835 2008-08-25 Free Ekanayaka <free@64studio.com>
7841 2008-08-24 Free Ekanayaka <free@64studio.com>
7843 Interfaces: new lens to process Debian's /etc/network/interfaces
7845 2008-08-25 David Lutterkort <dlutter@redhat.com>
7847 Util.comment: produce #comment nodes
7849 2008-08-14 Raphael Pinson <raphink@gmail.com>
7851 Inifile: complete rewrite. Also rewrite lenses using Inifile
7852 Adapt Php, Dput, Puppet and the corresponding tests to use the new Inifile
7855 Php: allow entries outside of sections
7856 Adapt php.aug to support entries outside of sections and still map sections
7859 2008-08-15 David Lutterkort <dlutter@redhat.com>
7861 Shellvars: one more cornercase with double quoted strings
7863 2008-08-15 David Lutterkort <dlutter@redhat.com>
7865 Shellvars: much improved handling
7866 - handle single and double quoted strings correctly
7867 - parse arrays into a subtree
7869 Inspired by a chat and preliminary work by nahamu
7871 2008-08-15 David Lutterkort <dlutter@redhat.com>
7873 skel_instance_of: remove pointless check
7874 There is no point in trying to match against skel->text for a store lens
7875 since that is always NULL.
7877 Fix syntax error in test
7879 augl_error: Initialize info
7881 2008-08-14 David Lutterkort <dlutter@redhat.com>
7883 aug_mv: fix bug when moving at the root level
7884 When moving from the root level, the source node needs to be removed from
7885 aug->tree, not aug->tree->children. In addition, the list_remove macro must
7886 be passed aug->tree and not a local variable holding that value, since we
7887 might have to remove the list entry that aug->tree is pointing to.
7889 Added test in test-mv.sh to test that moving at the root level works.
7891 2008-08-14 David Lutterkort <dlutter@redhat.com>
7893 Module names are treated case-insensitively
7894 Before, if you had a module 'Mod' in file 'mod.aug' and requested variable
7895 'MoD.var' from another module, the interpreter would throw itself into a
7896 loop where it kept loading 'mod.aug', but never found 'MoD.var' because the
7897 comparison of module names 'MoD' and 'Mod' was case sensitive.
7899 2008-08-13 Raphael Pinson <raphink@gmail.com>
7901 Add puppet.aug and associated test
7903 test_php.aug: make a nice test for PHP
7905 Php: simplified and based on Inifile
7906 "Slightly" simplify php.aug now that the comment issue is fixed in
7909 Inifile: use #comment for comment fields
7910 Adapt test_dput.aug and test_inifile.aug
7912 Inifile: no space around seps by default
7914 Inifile: reformat inifile.aug, ignore empty comments
7915 Reformat inifile.aug :
7916 - improve readability
7917 - limit line width to 80 chars
7918 - change a few var names
7919 Ignore empty comments
7920 Adapt test_dput.aug to ignore empty comments
7922 Fstab: map comments and support empty lines
7924 Sudoers: clean up comment definition
7926 2008-08-12 David Lutterkort <dlutter@redhat.com>
7928 Hosts: handle comments at the end of a host entry
7929 Comments are put into the tree as part of that host node, i.e. will live as
7930 long as the host entry.
7932 Based on an initial patch by Kjetil Torgrim Homme <kjetilho@linpro.no>
7934 2008-08-12 Raphael Pinson <raphink@gmail.com>
7936 Pam: Use eol, indent, comment and empty from Util
7938 Util: add eol, indent, comment and empty
7940 Pam: allow comments at the end of lines and leading spaces
7942 Xinetd: better handling of whitespace
7943 - allow indented comments
7944 - allow spaces around "}" to close a service
7946 2008-08-12 David Lutterkort <dlutter@redhat.com>
7948 Exports: fix failing test
7949 Exports.lns uses Hosts.comment .. since that changed, we also need to
7952 2008-08-12 Raphael Pinson <raphink@gmail.com>
7954 Hosts: put comments into tree and better whitespace handling
7955 - allow spaces at the end of the line
7956 - allow indentation at the beginning of entries
7957 - allow indented comments
7958 - show comments as fields and ignore empty lines and empty comments
7960 Handle indentation for Sudoers
7961 Allow indentation for every field
7962 cmnd_spec: use sto_to_com_cmnd (allows spaces)
7963 Add a test with new tricky commands in spec
7965 Various small fixes for Sudoers
7966 Deal with empty comments in empty.
7967 Add "!" as a valid parameter delimiter in Defaults.
7968 Make tests a bit more interesting in test_sudoers.aug.
7970 Sudoers: fix Runas_Spec
7971 sep_cont is not mandatory after runas_spec.
7972 Remove a space after a runas_spec in the test.
7974 Sudoers: various fixes for Defaults
7975 Do not allow "Defaults.*" as user name for spec (instead of "Defaults").
7976 Simplify Defaults type from (@|:|>) into [@:>].
7977 Make a specific regexp for Defaults value to allow spaces.
7978 Add a test line in test_sudoers.aug to test a more complex Defaults line.
7980 Add sudoers lens and associated test
7982 2008-08-11 David Lutterkort <dlutter@redhat.com>
7984 Test for continuation lines
7986 2008-08-11 David Lutterkort <dlutter@redhat.com>
7988 Posix ERE compliant escaping
7989 Posix extended regular expressions treat a backslash outside of a character
7990 class always as an escape character, with the character sequence '\\x'
7991 being identical to 'x', even if 'x' is a special char like '['.
7993 Inside character classes, the backslash does not escape anything, and is
7994 treated as an ordianry character.
7997 http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04
7999 2008-08-09 David Lutterkort <dlutter@redhat.com>
8001 Revamp the dict data structure
8002 Dicts were simple linked lists of key/value pairs, and appending and
8003 searching on those lists caused serious slowdown when the dicts became
8004 large, for example when writing an /etc/hosts file with > 2000 lines.
8006 Dicts are now organized as arrays that are kept sorted by the key, and
8007 lookup is done through binary search. Though this is still quadratic in
8008 theory, it behaves linearly in practice even for a very large /etc/hosts
8009 file (~ 60k lines); when keys appear in order (e.g. when they are generated
8010 by a sequence) or when all entries fall under one key, adding an entry to a
8013 2008-08-09 David Lutterkort <dlutter@redhat.com>
8015 Don't use registers in split_iter
8016 The data in the registers was never used, calculating it causes some
8017 overhead in the matcher.
8019 2008-08-08 David Lutterkort <dlutter@redhat.com>
8021 Eliminate unneeded calls to regexp_match in split_iter
8023 Don't call regexp_match when we know that there is no match
8024 It is common in the put direction that we try and split when we're already
8025 inside a leaf node. In that case, we know that there is no possible split,
8026 and therefore can save the trouble of calling regexp_match.
8028 2008-08-08 David Lutterkort <dlutter@redhat.com>
8030 Avoid O(n^2) runtime by appending to lists in constant time
8031 The data structure used to keep track of successive matches of an iterated
8032 lens, a split list, was being appended to by traversing the list for each
8033 new element. Now, we remember the last element on the list and append in
8036 The same was true in a few other places: the building of a tree and of
8037 skeletons suffered from the same problem.
8039 Dicts still have that problem - they need to be changed to hash tables to
8042 2008-08-08 David Lutterkort <dlutter@redhat.com>
8044 Add list_reverse and list_tail_cons
8045 list_reverse reverses a list in place. list_tail_cons appends to a list in
8046 constant time, since it is given a pointer to the tail of the list.
8048 2008-08-07 David Lutterkort <dlutter@redhat.com>
8050 Added tag release-0.3.0 for changeset 60f2a13c2528
8054 Mention the exit status
8056 Version libfa and libaugeas
8057 Use libtool's version support to properly version these two libraries. For
8058 libaugeas, we also bump the minor version, since we just added aug_mv to
8061 2008-08-07 David Lutterkort <dlutter@redhat.com>
8063 Check that 'put' fails when invalid tree entries are present
8064 put_quant_star and create_quant_star did not compare the part of the tree
8065 they should transform against the part of the tree they actually
8066 transformed. This lead to parts of the tree getting ignored during 'put' if
8067 the tree contained invalid nodes, and ultimately to files getting
8070 This is now checked and causes a 'Short iteration' error, avoiding file
8071 truncation. The fix also uncovered an error in the test for Aptsources.lns,
8072 where an invalid tree node was put into the tree, but did not lead to a
8075 Fixes bug https://fedorahosted.org/augeas/ticket/1
8077 2008-08-07 David Lutterkort <dlutter@redhat.com>
8079 Return an exit status from augtool
8080 augtool will return a non-zero exit status if any command issued
8081 failed. This is useful when piping multiple commands into augtool to check
8082 that they all succeeded.
8084 2008-07-29 David Lutterkort <dlutter@redhat.com>
8086 Fix failures on FreeBSD
8087 (1) Point augtool at the lenses in the source dir (not FreeBSD problem,
8088 happens whenever Augeas is not installed yet)
8089 (2) Remove bashism 'echo $"..."' with 'echo -e "..."'
8093 2008-07-29 Raphael Pinson <raphink@gmail.com>
8095 Use regexp union instead of lens union in php.aug
8096 Using a union of regexps is much faster than a union of lenses, since the
8097 regular expressions that are constructed internally are much simpler.
8099 2008-07-25 Raphael Pinson <raphink@gmail.com>
8101 Fix php.aug now that inifile.aug supports spaces in values
8103 Add PHP module and associated (basic) test file
8105 2008-07-29 Raphael Pinson <raphink@gmail.com>
8107 Use regexp union instead of lens union in dput.aug
8108 Using a union of regexps is much faster than a union of lenses, since the
8109 regular expressions that are constructed internally are much simpler.
8111 2008-07-25 Raphael Pinson <raphink@gmail.com>
8113 Rewrite dput.aug using inifile.aug Add a few keywords from man dput.cf Fix test file after rewrite
8115 Allow spaces in entry values
8117 Allow spaces in titles
8119 Fix empty comments in INI file
8121 2008-07-29 David Lutterkort <dlutter@redhat.com>
8123 Include canonicalize.h
8124 On non-glibc systems, we need to make sure canonicalize_file_name is
8125 declared from gnulib.
8127 Fail the whole test if one of the lens tests fails
8129 2008-07-28 David Lutterkort <dlutter@redhat.com>
8131 Add a call to move a subtree to the public API
8133 2008-07-26 David Lutterkort <dlutter@redhat.com>
8135 Refactor tree_create
8137 Don't run the typechecker by default from try
8139 2008-07-24 David Lutterkort <dlutter@redhat.com>
8141 Flatten the tree of lenses
8142 For union and concat, we used to store multiple unions/concats in a binary
8143 tree. Now, the tree is flattened and a string of concats is stored as one
8146 Allow a key and store in each branch of a union
8148 lns_key_regexp: store does not do anything about the key
8149 We used to generate tree nodes with a NULL label for a STORE, but that is
8150 no longer the case, and therefore the STORE lens should not produce any key
8153 Correctly handle saving to nonexistant files
8156 When encountering system errors while reading or writing a file, extract
8157 the full error message corresponding to errno and store it in error/message
8159 2008-07-23 Raphael Pinson <raphink@gmail.com>
8161 Add AptPreferences module and associated test
8163 Add bbhosts module and associated test
8165 Add ntp module and associated test
8167 Add logrotate and associated test
8169 Add support for end of line comments in entry* Add new entry* lenses for comments_nosharp Make more generic entry and comment lenses Update test_inifile.aug to test end of line comments
8171 Add inifile generic module and associated test module
8173 2008-07-22 David Lutterkort <dlutter@redhat.com>
8175 Fix segfault when running 'augtool print'
8177 2008-07-21 David Lutterkort <dlutter@redhat.com>
8179 Canonicalize file names before writing
8180 We used to clobber symlinks because writing a file consists of writing to
8181 an intermediate .augnew file, and then moving that over the target file. To
8182 keep target files that are symlinks intact, we now canonicalize the target
8183 filename and then move the intermediate file to the canonicalized target
8186 Avoid picking '\0' in examples.
8187 Now, we only pick '\0' as the example character for a transition if it is
8188 the only char for that transition.
8190 2008-07-18 David Lutterkort <dlutter@redhat.com>
8192 Added tag release-0.2.2 for changeset e7f6d16e75df
8196 Rename rule because FreeBSD's make chokes on it
8197 Rename the rule .FORCE-datadir.h to FORCE-datadir.h
8199 Sample dput.cf for dput lens
8201 Lens for Debian's dput files
8202 Contributed by Raphael Pinson
8204 2008-07-17 David Lutterkort <dlutter@redhat.com>
8206 augtool: Print '(none)' when getting a path with no value
8207 The output used to be mangled. Now it is 'path = value' if hte path has a
8208 non-NULL value, 'path (none)' if the path exists but has a NULL value, and
8209 'path (o)' if an error occurred.
8211 Added tag release-0.2.1 for changeset 13fdcd9bb18a
8213 2008-07-17 David Lutterkort <dlutter@redhat.com>
8215 aliases.aug: Do not require whitespace after commas
8216 It's perfectly fine to have an alias like 'alias: target1,target2'
8218 Bug reported by Greg Swift
8220 2008-07-16 David Lutterkort <dlutter@redhat.com>
8222 Fix insertion before the first child
8223 Inserting a node as the new first child was completely broken.
8225 Bug reported by Raphael Pinson.
8227 2008-07-16 David Lutterkort <dlutter@redhat.com>
8229 Add support for 'insert' in unit tests
8230 Two new primitives 'insa' (insert after) and 'insb' (insert before) are
8231 added so that unit tests can modify the tree through insert, as in
8233 test lns put str after
8234 insa label path = str2
8236 It would be nice to kill insert with one primitive, but that would have
8237 either required special syntax (like 'ins STR before/after STR') or some
8238 addition to the type system to make it syntactically reasonable.
8240 2008-07-09 David Lutterkort <dlutter@redhat.com>
8242 Test that putting into an empty string works
8244 Initialize state->pos in lns_parse and lns_get
8245 Otherwise, get and parse on an empty string will produce a 'short
8246 iteration' error, even if the empty string is acceptable for that lens.
8248 2008-07-07 David Lutterkort <dlutter@redhat.com>
8250 Put the default dir for lenses into DATADIR (the real fix)
8251 Reworks 527:14602e2757dd in a way that actually works and conforms to the
8252 GNU coding standards.
8254 Most of this fix suggested by Jim Meyering, I only touched it up a little
8255 (and no doubt introduced all the bugs).
8257 2008-07-07 David Lutterkort <dlutter@redhat.com>
8259 Check for NULL values in the put direction of store
8260 This is now flagged as an error instead of causing a segfault.
8262 2008-07-03 David Lutterkort <dlutter@redhat.com>
8264 Lens for /etc/exports
8266 2008-07-01 David Lutterkort <dlutter@redhat.com>
8270 distclean-local: Do not clobber build/aux
8272 Suppress generated manpages
8274 2008-06-30 David Lutterkort <dlutter@redhat.com>
8276 Put the default dir for lenses into DATADIR
8277 Instead of hardcoding the default dir for lenses to somewhere in '/usr',
8278 look in DATADIR - that's after all where the default lenses are installed
8279 if DATADIR (or PREFIX) is changed.
8281 Man page for augparse
8283 Put Augeas version into footer
8285 2008-06-23 David Lutterkort <dlutter@redhat.com>
8287 Auto-generate the ChangeLog file from mercurial logs
8288 Reviewed-by: David Lutterkort <dlutter@redhat.com>
8290 2008-06-13 David Lutterkort <dlutter@redhat.com>
8292 Fix two problems in the grub lens
8293 (1) The grub lens did not handle blank lines
8294 (2) Ubuntu uses 'quiet' in its boot stanzas, which we didn't know about
8296 Reported by Jason Dobies
8298 2008-06-13 David Lutterkort <dlutter@redhat.com>
8300 Produce more helpful errors
8301 The previous check whether we could proces the entire input was too crude
8302 and produced the unhelpful error message "Get could not process entire
8303 input", pointing to the start of the string, even if the problem was much
8304 farther down the line.
8306 With this change, error messages contain an indication to where the error
8307 happened that is a little closer to the actual trouble spot.
8309 2008-06-12 David Lutterkort <dlutter@redhat.com>
8311 Check that we take the right branch in a union
8313 Process /etc/sysconfig/selinux
8316 2008-06-12 David Lutterkort <dlutter@redhat.com>
8318 Fix segfault when aug_init/close are called multiple times
8319 The way we cached the regexp '[0-9]+/' was totally botched. We now allocate
8320 the pattern statically in memory and pin it to protect it from being freed,
8323 Reported by Harald Hoyer
8325 2008-06-06 David Lutterkort <dlutter@redhat.com>
8327 Initialize out parameters
8329 2008-06-06 David Lutterkort <dlutter@redhat.com>
8331 Change struct fields of type (const char *) to (char *)
8332 There were many places where struct fields were declared (const char *) but
8333 then used as (char *) - mostly to free them. Remove the 'const' from those
8336 I would really appreciate if somebody could look over these and make sure I
8337 don't throw away constness in too many places. It seems strange to declare a
8338 field as non-const, even if the string referenced by it is never modified,
8339 and only ever free'd when the enclosing struct is free'd.
8341 2008-06-05 David Lutterkort <dlutter@redhat.com>
8343 Added tag release-0.2.0 for changeset d23f95cd13f3
8347 2008-06-03 David Lutterkort <dlutter@redhat.com>
8349 Remove bashisms from test scripts
8350 Make tests scripts work with plain old sh; also, don't hardcode location of
8351 Ruby interpreter to /usr/bin/ruby.
8353 Work around a problem with Bison on FreeBSD
8354 Bison looks for _STDLIB_H to see if stdlib.h has been included, but the
8355 system includes use _STDLIB_H_; that makes Bison think malloc/free have not
8356 been declared yet and it goes and does that. gcc then complains about the
8357 duplicate declaration.
8359 2008-06-03 David Lutterkort <dlutter@redhat.com>
8361 Infrastructure and import of gnulib modules
8362 We do not keep the gnulib sources in our own repo. Instead, autogen.sh now
8363 calls out to bootstrap to pull in needed files from gnulib.
8365 The bootstrap script was copied from libvirt.
8367 2008-06-02 David Lutterkort <dlutter@redhat.com>
8369 Use a build aux dir (in build/aux)
8371 Use autoheader and generate config.h
8373 Work around lack of open_memstream on non-GNU systems
8374 Since open_memstream is only available with glibc, wrap its use and fall
8375 back to writing to a tempfile on other platforms.
8378 It was a bad idea to begin with; fold the contents into internal.h and make
8379 room for a generated config.h
8381 Support the @include syntax
8382 Debian uses lines of the form '@include module' to reference other pam
8383 configs. The official PAM docs don't mention it, but obviously it works.
8385 Handle trailing whitespace in pam.d; split module-arguments
8387 Allow multiple comma-separated fs types in fstab
8388 On Debian Etch, the CDROM has fs type 'udf,iso9660'
8390 Handle blank lines in /etc/hosts
8392 Fix missing ref on an info struct in syntax.c(compile_minus)
8394 2008-05-30 Jim Meyering <meyering@redhat.com>
8396 * tests/test-lenses.sh: more quotes, protect against space in abs_srcdir
8398 don't conflate top_srcdir and abs_top_srcdir
8399 * tests/Makefile.am: Use $(var), rather than obsolete @var@ notation.
8400 (TESTS_ENVIRONMENT): Rename LHS to match RHS to help avoid (my) confusion:
8401 s/top_builddir/abs_top_builddir/ and s/top_srcdir/abs_top_srcdir/.
8402 * tests/augtest: Reflect renamings.
8403 * tests/test-interpreter.sh: Likewise.
8404 * tests/test-get.sh: Likewise, and remove unused top_builddir= assignment.
8405 * tests/test-lenses.sh: Likewise; remove unnecessary braces, add quotes
8406 to protect against pathological $TMPDIR.
8408 2008-05-29 David Lutterkort <dlutter@redhat.com>
8410 Make distcheck work again
8411 Restore top_builddir and top_srcdir so that augtest passes during make
8414 Fix memory leak in make_exn_lns_error
8416 2008-05-29 Jim Meyering <meyering@redhat.com>
8418 Remove some absolute paths for binaries.
8419 * tests/Makefile.am [TESTS_ENVIRONMENT]: Add a PATH definition that
8420 lets tests invoke "augtool" and "augparse" without any absolute prefix.
8421 Remove top_builddir and top_srcdir definitions; no longer needed.
8422 * tests/augtest: Remove definition of AUGTOOL. Update use.
8423 * tests/test-lenses.sh: Likewise for AUGPARSE.
8424 * tests/test-interpreter.sh: Likewise.
8425 * tests/rec-initdefault.rb: Use 'augtool -n' in place of #{AUGTOOL}.
8427 2008-05-23 David Lutterkort <dlutter@redhat.com>
8429 Fix use of possibly uninitialized variable
8430 * get.c(lns_parse): initialize skel; gcc complains about possible
8433 2008-05-28 David Lutterkort <dlutter@redhat.com>
8435 Check that augtool reads all of tests/root/ without error
8437 2008-05-23 David Lutterkort <dlutter@redhat.com>
8439 Add a test to check we take the right branch
8440 This does essentially the same as the test Pass_prefix_union introduced
8441 with cset 489:3f4414038a30, but in a real world lens.
8443 Escape | when turning a string into a regexp
8445 Add source statements in shell scripts as '.source' nodes
8447 Escape label strings when creating the key regexp for them
8449 Allow lower case characters in shell vars
8451 2008-05-23 Jim Meyering <meyering@redhat.com>
8453 "echo get /|augtool -n" would read one past end of malloc'd buffer * src/augeas.c (make_path): Avoid buffer overrun.
8455 2008-05-23 David Lutterkort <dlutter@redhat.com>
8457 Fix a major bug in the get implementation of lenses
8458 We used to process the input from left to right, matching the regular
8459 expressions of lenses with the input successively. That is very wrong, in
8460 particular, it leads to lens union choosing the wrong branch: in the union
8461 l1|l2, union would always choose l1 if l1 matched a prefix of l2.
8463 We now process the input in a top-down fashion, splitting the string into
8464 parts as we descend in the tree of lenses. As evidenced by the test
8465 pass_prefix_union, that fixes the bad behavior.
8467 Incidentally, it also uncovered another bug in the test_hosts.aug, where a
8468 test passed, even though the string we were using did not end with the
8469 newline that is mandatory for Hosts.record.
8471 This change also does away with pasing flags and a FILE* for logging
8472 details about hte parse process; they don't really make sense anymore, nor
8473 is that behavior very useful in a library.
8475 2008-05-22 David Lutterkort <dlutter@redhat.com>
8477 Fix use of uninitialized pointer
8478 ERR must be initialized, since it is later passed to free_lns_error
8480 Lens for vsftpd.conf
8481 The lens is very tight, in that it only allows actual options, and knows
8482 what kind of value each option accepts.
8484 2008-05-21 James Antill <james@code.and.org>
8486 Fix for the joy that is the glibc asprintf API.
8488 2008-05-21 James Antill <james@and.org>
8490 Minor fix to not use bad memory.
8492 Remove strcat's for stpcpy's
8494 Fix escaping strings that end in \ Fix escaping of unprintable bytes
8496 Fix buffer overflow on strings ending in \
8498 2008-05-21 David Lutterkort <dlutter@redhat.com>
8500 Use glibtoolize on OSX
8501 Patch provided by Rizwan Kassim
8503 2008-05-21 Jim Meyering <meyering@redhat.com>
8505 Make a file-scoped static array "const".
8507 2008-05-18 Jim Meyering <meyering@redhat.com>
8509 * src/augtool.c (cleanpath): Don't access path[-1].
8511 * src/transform.c (transform_save): Detect pre-fclose write failure.
8513 * src/internal.c (read_file): Rewrite, plugging a file descriptor leak.
8515 2008-05-16 David Lutterkort <dlutter@redhat.com>
8517 Added tag release-0.1.1 for changeset fae07193655a
8521 Add dependency on ref.h
8523 2008-05-16 David Lutterkort <dlutter@redhat.com>
8525 Get rid of compiled regexps earlier
8526 After we're done with a transform, release the memory used by compiled
8527 regexps; storage for compiled regexps accounts for the lion's share of
8528 Augeas' memory needs.
8530 Before this patch, augtool run against the files in tests/root/ used more
8531 than 10MB of memory; with this patch, that is done to 250 kB after the
8532 initial load, with a spike of about 6MB during loading.
8534 2008-05-15 David Lutterkort <dlutter@redhat.com>
8536 Misc leak fixes in the interpreter
8537 * Do not ref the old binding in bind_type, ownership is transferred from
8538 the caller to the new list head
8539 * Unref the argument of an apply and the func computed in compile_compose
8540 * Unref the value after it is bound in the context in compile_decl
8541 * Unref various things in define_native_intl
8543 Don't leak the key when appending dict entries
8545 Free the actual struct exn when freeing an exn value
8546 Factor freeing a struct exn into free_exn; previously, the code did not
8547 free the storage for the struct exn itself.
8549 Don't leak key/value in parse on error
8551 Do not leak the split on error
8552 put_subtree has to free the split it computes; previously, it leaked that
8553 if an error inside the subtree occurred.
8556 Although not strictly necessary, it makes it easier to run augparse through
8557 valgrind and get meaningful results.
8563 Free the lns_error in lens_put
8565 Cleanly free regexp patterns; put empty_pattern into ro storage
8567 Ref the returned tree
8568 The tree that tree_set_glue and tree_rm_glue return needs to have its ref
8569 increased, as the calling conventions for builtin functions stipulate that
8570 the returned value is owned by the caller
8572 2008-05-14 David Lutterkort <dlutter@redhat.com>
8574 Report errors more clearly in the tree
8575 When an error happens during get/put, store additional info in the tree:
8576 for get errors, store the position in the file where the error occured, for
8577 put errors, the path of the node. In both cases, also store the
8578 human-readable message.
8580 For a file F, all this information is stored underneath /augeas/F/error,
8581 with the value associated with /augeas/F/error giving some indication about
8582 the kind of error encountered.
8584 2008-05-13 David Lutterkort <dlutter@redhat.com>
8586 Report errors during put
8588 Check that values match the regexp for the corresponding store during put
8590 Lens and transform for /etc/fstab
8591 The lens could be further refined by distinguishing between the legal
8592 values in the first field (LABEL=xxx vs special file system vs device) and
8593 by trying to model more of the vfs/option dependencies, but that's more of
8596 Remove bad assertions
8597 It is perfectly legal for create_* functions to be called with a non-NULL
8598 skeleton; that happens for example when the union combinator puts a tree
8599 that "jumped branches", i.e. whose get used one branch of the union, and
8600 the put uses the other branch because of changes to the tree.
8602 Reduce the number of calls to collect
8603 We were calling collect way too often, which was slowing things down. Also
8604 broke collect into separate subfunctions so we can see better when one of
8605 them becomes a bottleneck.
8607 2008-05-13 David Lutterkort <dlutter@redhat.com>
8609 Stricter skeleton instance check for del and store
8610 Besides having the right tag, del and store match a skeleton only if the
8611 text for that skeleton also matches their regexp.
8613 Weaken the check for key, label, seq, and counter a tiny bit.
8615 2008-05-12 David Lutterkort <dlutter@redhat.com>
8617 Proper typecheck for lens unions
8618 Check that lenses have disjoint ctypes and atypes in a union.
8620 Fix up the existing lenses that violate that.
8622 2008-05-09 David Lutterkort <dlutter@redhat.com>
8624 Keep re_cset_as_string from including an explicit '\0'
8625 We use NUL delimited strings; that means we can not use a CSET
8626 representation that mentions '\0' explicitly.
8628 Use the new '-' operator for key_re
8630 2008-05-09 David Lutterkort <dlutter@redhat.com>
8632 Add subtraction of regular expressions to the language
8633 It is now possible to say something like
8635 let re = /[a-z]+/ - "baseurl"
8637 The '-' operator is only defined between regexps.
8639 2008-05-09 David Lutterkort <dlutter@redhat.com>
8641 Add REGEXP_MINUS; move REGEXP_TO_FA to regexp.c
8643 Refactor typechecking for union/concat
8644 The typechecking for union and concat is incredibly similar, but was
8645 implemented with too much code duplication.
8647 Store character sets as bitsets
8648 Also clean up the definition of the bitset type and make the bitset_*
8649 functions const correct
8651 2008-05-09 David Lutterkort <dlutter@redhat.com>
8653 Add fa_as_regexp that converts an automaton back to a regexp
8654 During conversion from FA to regexp, our FA mutates into a 'generalized
8655 transition graph' where transitions aren't labelled with character
8656 intervals, but with regular expressions.
8658 There are lots of gyrations to keep the generated regexp reasonably short
8659 (and syntactically correct)
8661 2008-05-08 David Lutterkort <dlutter@redhat.com>
8663 Check for (some) allocation failures
8665 Reference count 'struct re' instances
8667 Split ref counting macros into separate header
8669 Remove use of bad REALLOC macro.
8670 The old REALLOC macro caused an automatic memory leak when REALLOC
8671 failed. Use of REALLOC_N instead also forces checking of more allocation
8674 Safer memory allocation from libvirt
8676 2008-05-08 David Lutterkort <dlutter@redhat.com>
8678 Fix a rather embarrassing #ifdef problem
8679 When __GNUC__ was not defined, a big chunk of internal.h was suppressed
8680 that is not compiler dependent.
8682 Also, add ATTRIBUTE_PURE macro.
8684 2008-05-08 David Lutterkort <dlutter@redhat.com>
8686 Switch to using unsigned char internally
8687 Since we use chars as indices into arrays in some cases, it is simpler to
8688 treat characters as unsigned. This also addresses passing possibly signed
8689 chars to is* functions - by using unsigned char, we avoid possible silent
8690 conversion problems when going from char -> int.
8692 There were also cases where we iterated over chars using a char, which was
8693 prone to silent overflow.
8695 2008-05-08 David Lutterkort <dlutter@redhat.com>
8697 Fix mistaken assignments in asserts
8698 Reported by Jeff Johnson
8700 2008-05-06 David Lutterkort <dlutter@redhat.com>
8702 Cleaner way of turning off expensive asserts
8703 Avoid littering everything with #ifdef's, define an 'expensive_assert'
8704 instead that expands to nothing unless HASH_DEBUG_VERIFY is defined.
8706 Patch by Jim Meyering
8708 2008-05-06 David Lutterkort <dlutter@redhat.com>
8710 Small fixes to the specfile
8711 Suggested by Michael Schwendt
8713 2008-05-05 David Lutterkort <dlutter@redhat.com>
8715 Lens and transform for xinetd.conf
8717 Enclose the regexp for a key in (..) before adding a /
8719 Properly determine if segment needs qualifier
8720 For segments with label NULL, we didn't qualify the first sibling with the
8721 NULL label since we were comparing NULL to the result of seg_label, which
8724 Be more consistent in how NULL labels are printed
8726 2008-05-05 David Lutterkort <dlutter@redhat.com>
8728 Suppress assert of hash_verify
8729 Doing the assert(hash_verify(hash)) at various places in hash.c is very
8730 expensive and slows things down considerably when assertions are turned
8733 Rather than turning assertions off globally, only do the hash_verify
8734 asserts when they are explicitly requested by defining HASH_DEBUG_VERIFY
8736 2008-05-05 David Lutterkort <dlutter@redhat.com>
8738 Do not minimize freshly created regexps
8739 The minimization imposes a serious performance penalty, and is generally
8742 This also exposes a bug in fa_overlap; for acceptToAccept to work properly,
8743 it needs to be passed a deterministic automaton.
8745 2008-05-05 David Lutterkort <dlutter@redhat.com>
8747 Fix containment check
8748 Checking for FA2\FA1 being empty was plain silly; this check is a little
8749 better, but still not the correct disjointness check.
8751 2008-05-02 David Lutterkort <dlutter@redhat.com>
8755 2008-05-01 David Lutterkort <dlutter@redhat.com>
8757 Added tag release-0.1.0 for changeset c032a957c316
8761 Rename parameter 'glob' to 'glb'
8762 gcc on RHEL4 gets confused and thinks that that shadows the global 'glob'
8765 2008-04-30 David Lutterkort <dlutter@redhat.com>
8767 Process lots of files in /etc/sysconfig
8768 Load all those shell-script style config files from /etc/sysconfig using
8769 the generic Shellvars lens.
8771 Ultimately, it would be better if we definedfor each of them which
8772 variables are actually going to be looked at (together with some
8773 restrictions on possible values)
8775 2008-04-30 David Lutterkort <dlutter@redhat.com>
8777 Test files for various /etc/sysconfig files
8778 The next commit will add a lens for handling shell var style files in
8779 /etc/sysconfig. These are simply test/sample files. No functionality.
8782 This puts the bits that are generally useful for processing /etc/sysconfig
8783 files into shell.aug
8785 2008-04-30 Jim Meyering <meyering@redhat.com>
8787 check for a few failed memory allocations
8788 * src/augtool.c: check for a few failed memory allocations
8790 2008-04-30 Harald Hoyer <harald@redhat.com>
8792 do ldconfig in post/postun of the libs subpackage
8794 2008-04-28 David Lutterkort <dlutter@redhat.com>
8796 Free the value when freeing a tree node
8798 Plug another memory leak
8800 2008-04-25 David Lutterkort <dlutter@redhat.com>
8802 Fix segfault when aug_get was passed a "/"
8803 In that case, make_path returns NULL, which must be checked.
8805 The bigger question, why "/" is not a valid path is a little more subtle:
8806 the tree is really edge-labeled, not node-labeled, i.e. a label applies to
8807 the edge going from a parent to its child, but root has no parent, and
8808 therefore "/" does not really make sense.
8810 2008-04-25 David Lutterkort <dlutter@redhat.com>
8812 Split multiple baseurl's in a yum file into multiple baseurl nodes
8813 With this, the schema for yum config files may now contain nodes like
8815 ... other key/value pairs ...
8816 { "baseurl" = "url1" }
8817 { "baseurl" = "url2" }
8819 { "baseurl" = "urlN" }
8820 ... other key/value pairs ...
8823 Note that the baseurl nodes have to be consecutive; otherwise, put will
8826 2008-04-24 David Lutterkort <dlutter@redhat.com>
8828 Fix lens selection in union
8829 The logic in put to select the appropriate branch in unions got it wrong if
8830 the first branch matched the empty word, because applies only checked that
8831 the atype for the sublens matched some of the tree. It has to check for a
8832 complete match of its tree.
8834 This change fixes that and adds a test to demonstrate the problem.
8836 2008-04-24 David Lutterkort <dlutter@redhat.com>
8838 Fix ref counting error in lns_make_plus
8839 We burnt the passed-in ownership of L when constructing STAR; also, since
8840 we unref STAR at the end, we need to take ownership of STAR->LENS when
8841 constructing the concat of L and STAR->LENS
8843 * src/fa.c (string_extend): Handle realloc failure.
8844 Patch by Jim Meyering
8848 Processing of Apt's sources files
8849 Contributed by Dean Wilson
8851 2008-04-24 David Lutterkort <dlutter@redhat.com>
8853 Make sure install preserves timestamps
8854 Avoids getting into trouble with the .aug files in augeas-libs on multilib
8855 when installing more than one arch.
8857 See http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks
8859 2008-04-24 David Lutterkort <dlutter@redhat.com>
8861 Remove trailing whitespace from the end of lines
8862 No functional change, only formatting.
8864 2008-04-23 David Lutterkort <dlutter@redhat.com>
8866 Remove aug_exists - it does not exist anymore
8868 Delete old, outdated notes
8870 Some repo files for yum
8872 Add todo file for low-level tasks that don't make sense on the website
8874 2008-04-23 David Lutterkort <dlutter@redhat.com>
8876 Split libraries into a -libs package
8877 This also includes the files in /usr/share/augeas, since they are read by
8878 the library and control how configuration files are processed.
8880 Patch provided by Harald Hoyer
8882 2008-04-23 David Lutterkort <dlutter@redhat.com>
8884 Include the augtool manpage as doc in the RPM
8886 2008-04-23 David Lutterkort <dlutter@redhat.com>
8888 Don't die on NULL entries in args
8889 There is no guarantee that parseline will fill all of args with strings,
8890 empty or otherwise; chk_args needs to be prepared that any entry in args
8893 Also, parseline initializes all args as NULL now to guard against garbage
8894 pointers accumulating from previous uses.
8896 2008-04-23 David Lutterkort <dlutter@redhat.com>
8898 Don't complain about missing optional args
8899 For example, both 'print' and 'print PATH' are legal. Make sure we accept
8902 Properly handle lines with spaces
8903 The lines read in through readline can now have spaces in their arguments,
8904 if those arguments are enclosed in single or double quotes.
8909 Provided by Dean Wilson
8911 2008-04-22 David Lutterkort <dlutter@redhat.com>
8913 Fix two memory leaks in the interpreter
8915 Plug more memory leaks
8917 Fix memory leak from not freeing hash table entries
8919 Clean up the error path in load_file; free the loaded text in transform_load
8921 2008-04-22 David Lutterkort <dlutter@redhat.com>
8923 Use fread_file_lim to read entire files
8924 The function is taken verbatim from libvirt's util.c, and due to show up in
8927 Also, make read_file return a char * instead of the silly const char *.
8929 2008-04-22 David Lutterkort <dlutter@redhat.com>
8931 Check the return value from hash_create
8933 More const-correctness fixes
8934 Patch provided by Jim Meyering
8936 File needed for running the tests
8938 Stick more closely to what the shell accepts as assignments
8940 Properly escape/unescape quotes in strings
8941 Patch provided by Alan Pevec
8943 2008-04-21 David Lutterkort <dlutter@redhat.com>
8945 Updated for 0.0.8 and upcoming 0.1.0 release
8947 Remove aug_exists from public API
8948 aug_get now combines the functionality of the old aug_exists and aug_get
8949 calls, so that callers can retrieve a value and check whether a path
8950 expression matches exactly one node in a single call.
8952 Make creation of new files work
8953 When a subtree is created that corresponds to a brandnew file, create the
8954 underlying file properly.
8956 Propagate failure of transform_save up
8958 2008-04-21 David Lutterkort <dlutter@redhat.com>
8960 Sync compiler warnings with latest from libvirt
8961 This should avoid build failures seen on Debian, caused by
8964 Also fix build failure caused by addition of -Wformat-security
8966 2008-04-21 David Lutterkort <dlutter@redhat.com>
8968 Mention people who sent patches
8970 Parse network configs in /etc/sysconfig/ifcfg-*
8971 Patch provided by Alan Pevec
8973 Don't mark ROOT for MAKE_PATH as const - it's not always true
8975 Cap file reads (arbitrarily) at 32MB
8977 Don't ever try to read a directory
8978 Suggested by Jim Meyering.
8980 Return int from aug_print to indicate errors
8981 Check for failures during printing and return an indication whether printing
8984 2008-04-21 David Lutterkort <dlutter@redhat.com>
8986 Don't hide pointer in typedef; const correctness
8987 The type for the Augeas handle is now called 'augeas' insteda of
8988 'augeas_t', and is a struct, not a pointer to a struct.
8990 Mark the places where the passed-in struct augeas is readonly in the API.
8992 Patch provided by Jim Meyering
8994 2008-04-21 David Lutterkort <dlutter@redhat.com>
8996 Change names of macros used to guard against double-inclusion
8997 Change the names from __NAME_H to NAME_H_ since __* macros are reserved.
8999 Suggested by Jim Meyering.
9001 2008-04-21 David Lutterkort <dlutter@redhat.com>
9003 Add "2008" to the copyright in the headers
9005 2008-04-19 David Lutterkort <dlutter@redhat.com>
9007 Remove dependency on glib and use kazlib's hash table instead
9008 The dependency on glib was only there for the hash tables used by
9009 libfa. Rather than requiring all of glib just for that, use the hash table
9010 implementation in hash.[ch] taken from kazlib.
9012 2008-04-18 David Lutterkort <dlutter@redhat.com>
9014 Hashtable from Kazlib 1.20
9015 Available from http://users.footprints.net/~kaz/kazlib.html
9017 Abort if failing assertions are not used
9019 2008-04-19 David Lutterkort <dlutter@redhat.com>
9021 Remove pathsplit symbol
9023 2008-04-16 David Lutterkort <dlutter@redhat.com>
9025 Added tag release-0.0.8 for changeset cb00aa18e518
9029 Remove unused function
9031 Install lens tests in lenses/tests/ not lenses/
9033 Use the right path expression to print the whole tree
9035 Don't segfault when a test fails without producing any tree
9037 2008-04-15 David Lutterkort <dlutter@redhat.com>
9039 Call the node for a boot entry 'title'
9041 2008-04-14 David Lutterkort <dlutter@redhat.com>
9043 Remove the use in sequences in some places
9044 Where indentation isn't important, we can flatten and simplify the tree by
9045 not using seqs. Instead of something like aliases/1, aliases/2, ... we now
9046 have alias[1], alias[2] etc.
9048 Start sequences at 1, in symmetry with the element[N] counting
9050 Consolidate tree allocation into one make_tree function
9052 Change the ins syntax to support insert before/after
9053 This reflects the change to the aug_insert API
9055 Handle searching for the last() element properly
9056 path_first didn't find anything when looking for 'element[last()]'
9060 2008-04-14 David Lutterkort <dlutter@redhat.com>
9062 Don't delete too many siblings
9063 When a path specified a node that had siblings with the same name, tree_rm
9064 was deleting that node and all the siblings after it (because the name
9065 label[3] would ssuccessively refer to its later siblings as label[3] was
9068 Now, first generate a list of nodes to delete before removing anything.
9070 2008-04-14 David Lutterkort <dlutter@redhat.com>
9072 Fix put test - it was checking for hte wrong result
9074 Running a failing test fails loading the whole module
9076 2008-04-11 David Lutterkort <dlutter@redhat.com>
9078 Add path expressions allowing XPath-like path matching
9079 Path expressions passed in through the public API can now contain indices
9080 to denote a specific sibling (including [last()]) amongst siblings with
9081 multiple labels, and use '*' to match nodes with any label.
9083 Syntax and semantics follow XPath.
9085 2008-04-11 David Lutterkort <dlutter@redhat.com>
9087 Run all tests - don't abort after the first failure
9089 2008-04-10 David Lutterkort <dlutter@redhat.com>
9091 Escape values and enclose them in quotes when printing
9093 Typecheck only on the first test
9094 It's enough to pass -c to augtool on the first test we run; doing it again
9095 in later tests is completely redundant and just slows the test run down.
9097 2008-04-09 David Lutterkort <dlutter@redhat.com>
9099 Complain if a transform is built from a lens orphaning a key/value
9100 Such a transform would lose information when applied and can't be
9101 valid. Ideally, this check would be in the typechecker, but requires
9102 dependant types, too much of a complication right now.
9104 2008-04-09 David Lutterkort <dlutter@redhat.com>
9106 Clean up some confusion around the semantics of store
9107 Store does not create a tree; instead it puts a value in place where the
9108 enclosing subtree will find it.
9110 During lens building, there is now a check to make sure the key and value
9111 are set in at most one place in each subtree. Ideally, this check would
9112 happen in the typechecker, but it would require that we parametrize the
9113 lens type, considerably complicating matters.
9115 2008-04-09 David Lutterkort <dlutter@redhat.com>
9117 When get encounters an error during a test, include hte tree in the exn
9118 lns_get now returns a tree even if the full input was not consumed. To
9119 check whether get succeeded, the ERR parameter needs to be checked.
9123 Remove 'spec' files and tests that don't make sense any longer
9125 Fail test scripts on _any_ unexpected error
9127 Distribute lens tests
9129 Suppress .rpmnew/save files
9131 Obey AUG_TYPE_CHECK flag
9132 Do not do the expensive lens type checks if AUG_TYPE_CHECK is not set. Run
9133 augtool with -c in tests to ensure tests do type checks.
9135 2008-04-09 David Lutterkort <dlutter@redhat.com>
9137 Update augtool round-trip tests and add them to 'make check'
9138 Update the tests to the new layout of the tree.
9140 augtest allows marking tests to skip (by putting 'skip=true' into the
9141 test) and sets the exit status properly so that 'make check' will fail if
9142 one of the augtool tests fails
9144 2008-04-09 David Lutterkort <dlutter@redhat.com>
9148 Only attempt to save if there are dirty files
9150 Reread the original file from the same root on save
9152 Pass the children of the right tree
9154 Fix some errors that made aug_save fail
9156 Mark a freshly loaded tree as clean
9158 Check the return value of asprintf
9159 Handling of asprintf failures (and allocation failures in general) needs a
9162 Small touchup - needs much more work
9164 Fix segfault if a qualified name references the module it is in
9165 Now explicitly referencing the enclosing module works properly: if the name
9166 is already defined locally, everything works, and if it is not, an error is
9169 2008-04-08 David Lutterkort <dlutter@redhat.com>
9171 Typecheck the atype of concat and iter
9173 Typecheck the atype of union
9175 Change the typecheck on union
9176 Typecheck unions l1|l2 less strictly (and less annoyingly) by requiring
9177 that l2 has a chance of ever being used, and not the stricter criterion of
9178 disjoint ctypes for l1 and l2
9180 Port of the lenses for inittab and sshd_config tothe new syntax
9182 Curb the repeated printing of exceptions
9184 Clearer error message
9188 Pull some useful space deleters into Util
9190 Check that let expressions work
9192 Fix problem in concating filters
9193 The check whether we fully own a filter in compile_concat, and therefore
9194 can modify it destructively, was wrong. Besides holding the only reference
9195 to the filter, we also need to be holding the only reference to the value
9196 wrapping the filter.
9198 Mark hosts and aliases for autoloading
9200 Load from the new ../lenses dir
9202 Obey setting of an explicit root directory
9204 Don't segfault when there is no filter arg for a match
9205 Before, running "augtool match '/augeas/files/*/error'" would result in a
9206 segfault. Now it prints all matching entries, regardless of their value.
9208 Handle continuation lines; more thorough tests
9210 Check that labels and keys do not contain a '/'
9211 We rely on that fact in various places when handling paths; '/' is the
9212 separator of path components and can never appear in a path component.
9214 Print a newline on EOF
9216 Autoloading of files for augtool
9217 Autoload is indicated by putting a 'autoload ...' statement as the first
9218 expression in a module. Currently, there can only be one autoload; the
9219 identifier mentioned in the autoload must be defined in the enclosing
9222 2008-04-07 David Lutterkort <dlutter@redhat.com>
9224 Builtins for filters and transforms
9225 Three simple builtins to construct transforms:
9227 - incl : string -> filter includes all files matching a glob
9228 - excl : string -> filter -> filter excludes all files matching a glob
9229 - transform: lens -> filter -> transform
9231 2008-04-08 David Lutterkort <dlutter@redhat.com>
9235 2008-04-07 David Lutterkort <dlutter@redhat.com>
9243 Local let expressions
9249 Plug two more memory leaks
9250 - require_exp_type is sometimes called with a term that already has
9251 a type. Don't typecheck such terms again
9252 - compile_compose should not run the full typechecker on the closure it is
9253 building, since parts of it have been typechecked already. Instead,
9254 manually create types for the new terms. Also, don't evaluate the
9255 subexpressions since their values are not used at all
9257 Add a 'gensym' builtin
9259 More ref ocunting fixes
9260 - aug_close now releases the list of modules
9261 - compile_bracket cleans up the arg
9262 - augparse closes the augeas connection, mostly so that we can see leaks
9265 2008-04-04 David Lutterkort <dlutter@redhat.com>
9267 Fix major brainfart in ref counting lists
9268 The way lists were reference counted (and particularly unref'd) was just
9269 plain stupid wrong. A list 'next' pointer is no different from any other
9270 pointer when it comes to ref counting.
9272 Initialize *err properly, even if there is no tree
9274 Fix bug with nested subtrees
9275 There was no clear indication if a subtree was a leaf (and should therefore
9276 not grow any tree returned by its child) or was an interior subtree (so
9277 that any returned tree needs to become a child of a new tree)
9279 Kludge around an inconsistency with print_tree
9281 Beginnings of tests for the interpreter
9283 Exceptions during compilation countas failure
9285 Fix how the key regexp for unions is calculated
9286 Union would produce spurious empty keys, for example in the expression
9287 [ key /a/ . ([ l1 ] | [ l2 ]) ]
9288 the union would get an atype of '//' which is wrong, since the subtree []
9289 does not contribute to an atype.
9291 Start a util module with some common functions
9293 Run lens tests during 'make check'
9295 Fix bug introduced in 292:5123e63e004b
9296 Don't compare with the whole path if there is a parent, only the last
9297 component of that path.
9299 Handle trailing slashes on loadpath components cleanly
9301 /etc/aliases processing in the new syntax with tests
9303 2008-04-04 David Lutterkort <dlutter@redhat.com>
9305 Allow rm from toplevel of tree
9306 The only issue with this is that the dirty flag can not be set properly
9307 when deleting from the toplevel of the tree since the flag has to be set on
9308 the parent, which we don't have.
9310 This is really only an issue if (a) we delete the whole tree (b) the next
9311 sibling of the node we delete is semantically different from the deleted
9312 node (e.g. because it goes into a different file)
9314 Either way, this only happens during tests; in the 'real' tree, toplevel
9315 nodes are fixed, like /files and /augeas, and we don't really have an issue
9318 2008-04-04 David Lutterkort <dlutter@redhat.com>
9322 Produce exn when tree_rm/tree_set fail
9324 Update yylloc for string/regexp constants
9326 2008-04-03 David Lutterkort <dlutter@redhat.com>
9328 When compile_exp produces an exn, bind it anyway
9329 This avoids lots of trouble with NULL values
9332 The construct (lens)+ is now processed as lens . lens*
9334 Fix segv on repetition of regexps
9336 Clearer error messages from typechecking lenses
9338 Fix key regexp for union; throw exception on subtrees with multiple keys
9340 Have lens constructors return exns on failure
9341 Also refactor exception generation.
9343 Add a test that produces an exception
9345 Allow '*' as a test result indicating an expected exception
9347 Error propagation from lns_put
9348 Record a lns_error if things don't work out during put. Generate an
9351 A very first lens in the new syntax, with tests
9353 Use the default string for a del lens, really.
9355 Module names must be consistent with the name of the file they are in
9356 The basename of the file must be the name of the module, lowercased and
9357 with ".aug" appended
9359 2008-04-03 David Lutterkort <dlutter@redhat.com>
9361 Add explicit loadpath
9362 augtool and augparse now take an explicit loadpath with the -I option,
9363 which can be repeated multiple times.
9365 aug_init takes a loadpath as a new argument
9367 2008-04-03 David Lutterkort <dlutter@redhat.com>
9370 When the module for a qualified identifier Mod.name is not loaded yet,
9371 automatically load it by looking for a file mod.aug on the module load
9374 Rename struct env to struct module
9376 Separate function composition from concatenation
9377 Function composition is now written as 'f ; g' instead of 'f . g'
9379 Allow tree constants with NULL labels
9381 Clean up printing of empty trees
9383 Clarify the reference counting terminology
9385 Free the skel that lns_put creates initially
9387 Make sure free_dict frees the whole dict
9389 Fix reference problem
9390 The wrong type was being unref'd
9392 2008-04-02 David Lutterkort <dlutter@redhat.com>
9394 Free the whole dictionary
9395 While entries are looked up, dict->entry changes; dict->mark is the head of
9396 the list of all entries that were ever in the dict.
9398 Clear skel and dict in state so assertions in create_ don't trip
9400 Always split the full tree
9401 There's no need to support splitting a partial tree for now. This means
9402 that lns_put will put TREE and all its siblings.
9404 Fix incorrect usage of size parameter for re_match
9406 Add missing break in get/parse_union
9407 Without it, it acts like a concat that drops trees on the floor
9409 Allow printing of hidden tree nodes
9410 When printing test results, we want to see the full tree
9412 Pass lns_error to parse; free dicts and skels
9414 2008-04-02 David Lutterkort <dlutter@redhat.com>
9416 Report errors from get as exceptions
9417 Adds a value kind 'EXN'. When the interpreter gets such a value, it bails
9420 lns_get now reports parse errors in an lns_error struct, which is turned
9421 into an exception in the interpreter.
9423 2008-04-02 David Lutterkort <dlutter@redhat.com>
9425 Added tag ml-syntax-start for changeset fcd6c04a1eed
9427 A subtree without a key matches "/"
9429 Print \n after test result
9431 Allocate enough bytes for string in unescape
9433 Free regexps cleanly
9435 Fill in subtree->atype with empty regexp
9437 2008-04-01 David Lutterkort <dlutter@redhat.com>
9439 Interpreter for the new file description syntax
9440 This is by no means done, but done enough to allow incremental fixes from
9441 now on. This checkin still contains lots of FIXME's and bugs. Very simple
9442 unit tests do work though.
9444 The syntax for describing files is now a very simple OCaml-like functional
9445 language; the file syntax.c implements an interpreter for that language.
9447 2008-03-25 David Lutterkort <dlutter@redhat.com>
9451 2008-03-14 David Lutterkort <dlutter@redhat.com>
9453 Remove comment about fa_overlap/fa_ambig_example
9454 I don't really have the data to support preferring one over the other that.
9456 Rename parse_* functions to get_*
9458 Rename parser.c to get.c
9460 Add bcprules (by Benjamin Pierce); needed by lenses.tex
9462 Added tag release-0.0.7 for changeset 93563112907c
9466 Expose typechecking in augtool
9467 Run 'augtool -c' to get typechecking. Very useful during
9468 development. (Though augparse is even more useful when writing new lenses)
9470 Be a little more restrictive on when to dump the whole grammar
9472 Fix lenses so that they pass type checking.
9473 There were several subtle amibuities in the lenses previously, which the
9474 typechecker nicely discovers now.
9476 When splitting the tree, check that we are atthe right subtree
9477 Without the check, spliting at a subtree just gobbles up trees without any
9478 regard for what that tree is. This becmoes a problem in a sequence like
9479 [ COMMENT ] * . [ key FOO . store BAR ] *
9480 when there is no comment, and therefore no subtree witha NULL label. A tree
9481 with a single node matching FOO is wrongly split as if there was a COMMENT
9482 (which, if it were there would have to have a NULL label)
9484 2008-03-13 David Lutterkort <dlutter@redhat.com>
9486 Defer allocating storage for a state_set as long as possible
9488 Rename constants state_set_* to array_*
9489 We use state_set_initial_size and state_set_max_stride for both state_set
9490 and transitions arrays. Rename them to array_initial_size and
9493 Speed up FA_MINUS by checking for some simple cases with fixed results
9495 Speed up fa_contains by not determinizing FA1
9497 Speed up intersection
9498 (1) Do not determinize before intersecting
9499 (2) Check if one of the automata is the empty language, and return the
9500 empty language if so
9502 Store transitions in an array
9503 Brings about a 10% performance gain since we don't allocate each transition
9504 individually, and since traversing and accessing transitions is a wee bit
9509 Clean up fa_iter some
9510 Now both cases (max == -1 for unbounded iteration) and max >=0 use the same
9511 code to generate the automaton (fa){min}
9513 Compute union and concat in place internally
9514 Reduces the number of times we clone an fa for internal purposes, and
9515 therefore the memory management overhead.
9517 Rejigger the weights assigned by chr_score to make fa_example more predictable
9519 Minor optimization for fa_example
9521 Keep the list of states for clone in a sorted set
9522 This speeds up things enormously (for cmfm.aug, augparse goes from 17s to 6s)
9524 Store that pairs of states for intersection in a hash table
9527 When order of states in a set doesn't matter, allow the set to be kept
9528 sorted so that search can use binary search.
9530 2008-03-12 David Lutterkort <dlutter@redhat.com>
9532 Fix two memory leaks
9534 Remove the last uses of FA_MAP
9535 Use STATE_SET instead, since it's faster and lighterweight
9537 Rename structs fa_state and fa_trans to state and trans
9539 [mq]: min_hopcroft.patch
9541 Sort transitions before generating examples
9542 Otherwise, examples depend on the order in which transitions appear for
9545 Add state sets at head of state_set_list
9547 Use state_set in fa_clone
9548 To speed up fa_clone, keep the correspondence between old and new states in
9549 a state_set to reduce allocation overhead.
9551 Reverse transitions in place in fa_reverse
9553 Improve the performance of fa_intersect with better data structures
9554 Store the map of (s1, s2) -> s for intersection in nested state sets
9555 instead of a linked list.
9557 2008-03-12 David Lutterkort <dlutter@redhat.com>
9559 Faster data structures for sets of states and a list of sets of states
9560 Store the list of sets of states for determinize in a hash table. Since I
9561 don't feel like implementing my own, pull in glib and use GHashTable.
9563 Store sets of states in an array rather than in a linked list. This greatly
9564 reducs the overhead from memory allocations, since the array is expanded by
9565 doubling its size (up to some threshold)
9567 2008-03-11 David Lutterkort <dlutter@redhat.com>
9569 fa_star added a spurious epstrans loop on new initial
9571 Mark live and reachable states
9572 Performance improvement. Instead of allocating temporary lists for live and
9573 reachable states, use one bit each in the state to mark them for that
9576 2008-03-11 David Lutterkort <dlutter@redhat.com>
9578 Add typechecking of lenses
9579 Concatenation and iteration of lenses is now checked for ambiguity. Union
9580 is checked for disjointness, but that is only flagged as a warning, since
9581 it's mostly a harmless problem, and fixing it requires writing nasty
9582 regexps in the spec files.
9584 Fix existing specs to pass typeckecking. Typechecking is extremely slow
9585 right now, some of that will be addressed shortly. For now, augtool does
9586 not do typechecking, but augparse does by default.
9588 2008-03-10 David Lutterkort <dlutter@redhat.com>
9590 Fix subtle bug in determinize
9591 Fix a bug that would only hit if '\0' is ever in points.
9593 2008-03-06 David Lutterkort <dlutter@redhat.com>
9595 Add fa_ambig_example to generate ambiguous words
9596 Generate an ambiguous string upv given two languages and directions on how
9597 to split that string into u.pv and up.v. Algorithm from Anders Moeller from
9598 the dk.brics.grammar package.
9600 2008-03-06 David Lutterkort <dlutter@redhat.com>
9602 Fix example generation, it was completely broken
9603 The previous algorithm was way too simplistic, and failed on more
9604 complicated languages.
9606 fa_example now generates a relatively short word, subject to certain
9607 preferences, so that for example, alnum characters are preferred over
9608 printable ones, and those over nonprintable ones.
9610 2008-03-06 David Lutterkort <dlutter@redhat.com>
9612 Fix some cornercases in fa_example
9614 2008-03-05 David Lutterkort <dlutter@redhat.com>
9616 Add generators and tests for some basic languages
9617 Basic languages are the empty language, the language containing only the
9618 empty word, and the total language \Sigma^*
9622 Added tag release-0.0.6 for changeset 9a4f846673ac
9624 Released version 0.0.6
9626 2008-03-05 David Lutterkort <dlutter@redhat.com>
9628 Allow influencing the behavior of save
9629 By passing one of the flags AUG_SAVE_BACKUP or AUG_SAVE_NEWFILE to
9630 aug_init, it is possible to influence the behavior of aug_save to either
9631 overwrite files in palce, save originals with extension .augsave, or put
9632 changes into files with extension .augnew.
9634 Also added switches to augtool to set this from the command line, and to
9635 set the filesystem root.
9637 2008-03-05 David Lutterkort <dlutter@redhat.com>
9639 Added tag release-0.0.5 for changeset 0efe2a620e39
9641 Mark print_re as unused
9645 Make aug_close public
9647 Public API change: include a reference to an augeas_t in all calls
9648 To make Augeas threadsafe, we need to move away from keeping stuff in
9651 2008-03-04 David Lutterkort <dlutter@redhat.com>
9653 Add fa_example which produces an example string from a regular language
9655 Add a test that performs Anders Moeller's ambiguity algorithm manually
9657 2008-03-04 David Lutterkort <dlutter@redhat.com>
9660 (1) fa_make_char_set would never create transitions with min == max
9661 (2) fa_intersect got things wrong when t2 had an interval that overlapped
9662 several intervals on t1
9664 Also added tests to check these two problems.
9666 2008-03-04 David Lutterkort <dlutter@redhat.com>
9668 Fix handling of negated charsets
9669 Negated charsets where handled entirely wrong. A character set is now
9670 represented as a map from char -> {0, 1}. That map is rather big (one byte
9673 Fix order in which libraries are installed
9674 libaugeas must be installed after libfa, since it depends on it.
9676 Remove old sketch of interface; not needed anymore
9678 Compute the complement, set difference and overlap of two languages
9680 2008-03-04 David Lutterkort <dlutter@redhat.com>
9682 Fix a bug in how '.' is being handled
9683 The '.' was treated the same as [\n] instead of [^\n] by mistake.
9685 Also fixes a small bug in fa_contains.
9687 2008-03-04 David Lutterkort <dlutter@redhat.com>
9689 Add deciding unambiguously iterable based on ua concatenable
9691 2008-03-03 David Lutterkort <dlutter@redhat.com>
9693 Automatically free all automata allocated during a test
9695 Cleanup the returned FA in fa_intersect
9697 Add a target to run fatest through valgrind
9699 Add fa_intersect: intersection of regular languages
9701 Comment the uses of FA_MAP better and rename some internal helper functions
9703 Clean up management of state lists
9704 Centralise allocating new states for a fa in add_state; that makes sure
9705 that all states appear on the list of states in fa->initial.
9707 Do not rely on gcc >= 4.0 for restricting symbol exports
9708 Use a linker script instead. The visibility pragma is only available in gcc
9709 >= 4.0, and thus imposes a pretty high burden to build Augeas.
9711 2008-02-29 David Lutterkort <dlutter@redhat.com>
9713 Reign in the number of symbols exported from libaugeas
9714 Use visibility=hidden to keep most local symbols to ourselves. Still needs
9715 some work for augparse/augtool
9717 Performance improvements
9718 (1) Don't minimize the automaton quite so often. Now, only fa_compile minimizes
9720 (2) Instead of full-on minimization, clean up the automaton before
9721 returning to the user by removing dead transitions/states.
9723 Remove gratuitous list traversals
9724 Replace list_append with list_cons (adds at the head of a list) where order
9725 of the list does not matter.
9727 Add tests for language subsets and equality
9729 2008-02-29 David Lutterkort <dlutter@redhat.com>
9731 The beginnings of a finite automata library
9732 The code is heavily based on the Java package dk.brics.automaton by Anders
9733 Moeller (http://www.brics.dk/automaton/)
9735 Eventually, this should becomea standalone library, seeing how there does
9736 not seem to be any open-source, maintained finite automata library.
9738 2008-02-29 David Lutterkort <dlutter@redhat.com>
9740 Some unit testing help
9741 This is an adapted version of CuTest
9742 (http://sourceforge.net/projects/cutest/) written by Asim Jalis
9744 Minimal docs for aug_save and aug_print
9746 2008-02-26 David Lutterkort <dlutter@redhat.com>
9750 Fix segfault in aug_ls
9751 When skipping nodes with NULL label, don't segfault if the whole tail of
9752 the list has NULL labels
9754 2008-02-25 David Lutterkort <dlutter@redhat.com>
9756 Added tag release-0.0.4 for changeset d8e750d82f97
9764 Turn off warnings-as-errors when building spec-lex.l
9765 We need -Wno-error, otherwise the CFLAGS passed during mock builds turn
9766 checking for unused parameters back on; flex doesn't provide an easy way to
9767 generate code that passes those checks (that's the reason for building the
9768 liblexer.la convenience lib)
9770 Only define print_dict when it is used
9772 Added tag release-0.0.3 for changeset 56cb08f222a3
9776 Test for readline in a way that works on RHEL5
9778 Some build/install tweaks
9779 (1) Rename spec in $(datadir)/augeas/spec to lenses
9780 (2) Add pkgconfig info for libaugeas
9781 (3) Install augeas.h as a header
9783 Rename AUGEAS_SPECLIB to AUGEAS_LENS_LIB
9785 Added tag release-0.0.2 for changeset f981ccccb0ab
9787 Include the try script in the distribution
9789 Bump version to 0.0.2
9791 Fix things up so that 'make distcheck' works
9792 (1) make test runs work when when top_builddir != top_srcdir
9793 (2) Include spec/ files in distribution
9794 (3) disable test-grammars.sh since the test grammars are busted right now
9796 Fix warnings about uninitialized variables
9798 Add config.h to libaugeas.la
9800 Stricter types for some combinators. List needed reg lang operations
9802 2008-02-21 David Lutterkort <dlutter@redhat.com>
9804 Some changes to the yum description
9805 (1) Use a yum.conf that is actually shipping
9806 (2) Make COMMENT match blank lines
9807 (3) Fix tests to work with updated yum.conf
9809 Only create /tmp/augcmds.txt if it doesn't exist
9810 Nothing deep; just trying to keep Mercurial from marking the file as
9811 modified as I change the commands that try runs
9813 Make aug_ls return all the children for a given path
9814 aug_ls did not handle entries that were split across several nodes
9815 properly. Now, we find all the nodes for the given path and list their
9818 Fix splitting of AcceptEnv
9819 The list of env vars for AcceptEnv was not being split into individual
9822 2008-02-20 David Lutterkort <dlutter@redhat.com>
9824 A (pretty kludgy) description for cmfm.conf
9826 Make printing of skel/dict optional
9828 Print test results a tad prettier
9830 2008-02-20 David Lutterkort <dlutter@redhat.com>
9832 Use GNU regex instead of PCRE
9833 Use the GNU regex functions from glibc instead of PCRE, as glibc uses a DFA
9834 implementation that does not suffer the limitations of PCRE's backtracking
9837 The syntax for regular expressions is now RE_SYNTAX_POSIX_MINIMAL_EXTENDED,
9838 essentially extended POSIX regular expressions, except that '.' does not
9841 2008-02-20 David Lutterkort <dlutter@redhat.com>
9843 Clean up regexps for POSIX
9844 Various small fixes to regexps to make them work properly as POSIX regexps.
9846 Added tag remove-any-first-follow for changeset 0d22160e9494
9848 2008-02-20 David Lutterkort <dlutter@redhat.com>
9850 Remove any matches ... and ..? from the language. Remove first/follow sets
9851 They currently require lookahead assertions from the underlying regexp
9854 Since any matches were the only reason to compute first/follow sets, remove
9857 2008-02-20 David Lutterkort <dlutter@redhat.com>
9859 Remove the use of the any operators '...' and '..?'
9860 These operators inherently require lookahead assertions, but we need to
9861 switch to a regexp engine that does not support them.
9863 Don't segfault when parsing fails
9865 2008-02-19 David Lutterkort <dlutter@redhat.com>
9867 Drop CF-oriented check for ambiguity through looking at first sets
9869 Allow escaping of a slash in tegular expressions
9871 2008-02-18 David Lutterkort <dlutter@redhat.com>
9873 Base parsing completely off regexp matching.
9874 Parsing now uses regexp matching, and not the CFG-style parsing based on
9875 first sets previously used. This actually makes it easier to write specs,
9876 since parsing decisions are made based on the complete string, not just the
9879 The downside is that rules can not be recursive anymore, as that would
9880 make the matched language non-regular.
9882 The main motivator for this change is that it makes it possible to do
9883 stricter checking of the input spec using type checking similar to
9884 boomerang's string lenses based on operations on regular languages.
9886 Unfortunately, we have to keep first/follow computations to construct the
9887 fairly tricky regexps that are used for ANY patterns.
9889 2008-02-18 David Lutterkort <dlutter@redhat.com>
9891 Remove unused token T_FIELD
9893 Rename match.xaction to match.action
9894 The field was named initially to avoid a clash with another 'action' field,
9895 but that field is gone now.
9899 Remove leading whitespace inside Match directives
9901 2008-02-18 David Lutterkort <dlutter@redhat.com>
9904 For a lens like a . (b . c)*, tree_split used to return a split that looked
9905 like [a; b; c; b; c] That is wrong: when we split on the outer '.', we need
9906 to produce a split with exactly two entries: [a; b] (where b stands as the
9907 first entry in the tree that '*' will act on.
9909 split_tree_car cleans up recursively computed splits in this manner; those
9910 subsplits are mostly computed for their sideeffect, particularly for the
9911 fact that they change state->tree.
9913 2008-02-18 David Lutterkort <dlutter@redhat.com>
9915 Properly print split nodes
9917 Lenses for sshd_config
9918 This is interesting because of the treatment of AcceptEnv and similar
9921 2008-02-18 David Lutterkort <dlutter@redhat.com>
9923 For split nodes, append entries at the last occurence
9924 It is possible that one logical node is split across several physical
9925 nodes to accomodate settings that are spread across several lines like
9926 'AcceptEnv' for sshd_config. Such lines lead to multiple nodes
9927 /system/config/sshd/AcceptEnv (all siblings of each other)
9929 When a call to aug_set creates a new entry underneath such a split node,
9930 make sure that that the new node is put under the last such node. This
9931 helps maintain the illusion for users that the split node is really just
9934 2008-02-15 David Lutterkort <dlutter@redhat.com>
9936 Report some information underneath /augeas
9937 The root directory and information about how files were loaded into the
9938 tree are kept in the /augeas hierarchy now
9940 Fix very bad use of realloc
9942 Adjust expected diff
9943 Do not allow comments to disappear
9946 The old diff was bogus (it expected a comment to be removed that has to
9949 Cleanly handle comments
9951 Default COLON to ':' plus tab. Simple tests for aliases
9953 Informal survey of files in /etc
9955 Ignore intermediate Latex files
9957 Store comments in subtrees so they are restored properly
9959 Turn into a test on a legal tree and make it pass
9961 Fix split of QUANT_MAYBE. Add create_quant_maybe
9965 Free the results of split_tree
9967 Properly split an empty * as an empty list
9969 Try to make putting QUANT_MAYBE work
9970 This is still kinda suspect
9972 parse_subtree must always generates a tree
9973 We have to have a subtree, no matter what, even if it is completely
9974 empty. If the subtree doesn't contain any key and store instructions, we
9975 still need to have a tree [ NULL -> NULL ]
9977 Modified yum spec that seems to work
9979 Script to ease testing of augtool
9981 Enable parsing of pam
9983 Remove bogus reset of 'record' counter
9986 Print did not generate paths right; it would print children of a node with
9987 a path that did not contain the label of that node.
9991 Properly handle a NULL value in aug_set. Make aug_insert deal with NULL labels.
9993 2008-02-14 David Lutterkort <dlutter@redhat.com>
9995 Fixed, nicely working tests
9997 2008-02-14 David Lutterkort <dlutter@redhat.com>
10000 Complete command names and tree paths.
10002 Also cleans up the path entered by the user so that it doesn't have
10003 trailing spaces or '/'. Cleaning should probably be done by the public
10006 2008-02-14 David Lutterkort <dlutter@redhat.com>
10009 Code still unbelievably buggy and segfaults in lots of places, but it is
10010 fairly clean and works for choice examples.
10012 The reworked code is based fairly closely of boomerang and
10013 lenses. doc/lenses.tex describes some of the background.
10015 2008-02-13 David Lutterkort <dlutter@redhat.com>
10018 The spec language now contains instructions on how to build the tree inline
10021 This change is majorly broken.
10023 2008-02-12 David Lutterkort <dlutter@redhat.com>
10025 Better description of lenses
10027 Different representation of the tree
10028 The tree is now represented as a tree data structure, where each node in
10029 the tree stores only a path component (label).
10031 2008-02-08 David Lutterkort <dlutter@redhat.com>
10033 Beginnings of a formal writeup
10035 2008-01-30 David Lutterkort <dlutter@redhat.com>
10037 Remove field references as a match
10038 It used to be possible to have a rule like
10040 with the meaning that $1 would match the same thing as RE. That hasn't been
10041 used yet; unclear if it ever will.
10043 When deleting, only mark AST changed when leaf was deleted
10044 This is really a kludge to work around the fact that we might construct
10047 Slightly mroe helpful error message during parsing
10049 Don't segfault when the parse matches nothing
10051 2008-01-29 David Lutterkort <dlutter@redhat.com>
10055 Remove more unneeded cruft
10057 Remove unneeded safe_free, TRUE and FALSE
10059 Remove unneeded ROOT_DIR and update augtool help
10061 Remove dead code and misleading comment
10063 Remove files not needed any longer
10067 Run all the augtest tests by default and from make check
10069 Test key/value parsing with yum
10070 The test file also nicely illustrates some shortcomings of the way comments
10071 are associated with tree entries. There's not enough flexibility to let the
10072 user cleanly indicate what a comment goes with (e.g., an entire section,
10073 the next key/value pair etc.)
10075 2008-01-29 David Lutterkort <dlutter@redhat.com>
10077 Initialize fields used as path components
10078 When a field is used in a path component, initialize its value from the
10079 path. Since it is not possible to change an existing path, this operation
10080 is only needed when new parts of the AST are created.
10082 The code assumes that the leaf for the path component is in the subtree
10083 where the leaf's value is used. That is not necessarily true; at least,
10084 it's not being checked from the grammar.
10086 2008-01-29 David Lutterkort <dlutter@redhat.com>
10088 Test that reordering of subtrees works
10090 Set the root of the tree from include
10092 2008-01-29 David Lutterkort <dlutter@redhat.com>
10094 Respect ordering of nodes in the config tree.
10095 Previously, reordering of branches in the config tree did not lead to a
10096 corresponding reordering of elements in the file. Branches in the AST are
10097 now reordered in such a way that their ordering reflects the ordering in
10100 Iterator nodes with a $seq action need to be treated special: they do not
10101 change the path for the current (iterator) node, only for the child nodes.
10102 That is terribly ugly.
10104 2008-01-29 David Lutterkort <dlutter@redhat.com>
10106 Fix bug in creating sequence subtrees
10108 2008-01-29 David Lutterkort <dlutter@redhat.com>
10110 Distribute enters so we have one per match
10111 Simultaneous traversal of the AST and the config tree is much simpler if
10112 any match will only go at most one level deeper. That guarantees that
10113 entering a child in the config tree corresponds to entering an AST node
10114 (possibly followed by entering some more AST nodes labelled with the same
10117 To this end, split actions with multiple enters into fake SEQUENCE matches
10118 (followed by the match that held the initial action). The fake SEQUENCE
10119 matches all have exactly one child in their matches field, and one of the
10120 enter instructions from the action for them.
10122 Actions are also lifted up in the grammar as far as possible; in
10123 particular, this pulls constants (but not $seq) out of iterators. This
10124 ensures that the children of an AST node differ in exactly one path
10127 2008-01-29 David Lutterkort <dlutter@redhat.com>
10129 Push stores to the matches they store in the tree
10130 In an assignment, the value being stored can only be a field
10131 reference. Push the corresponding action for the store to that field. This
10132 simplifies both getting and putting the tree.
10134 As a byproduct, a number of questionable constructs are spotted and
10136 (1) Assignments that move the value out of the current tree
10137 (2) Storing the same value in more than one place in the tree (which
10138 would make it possible to change one copy, but not both)
10139 (3) Useless enter instructions; they don't cause harm but probably
10140 indicate some other problem in the grammar. They are only spotted
10141 if they get in the way of a store, but should probably be checked for
10144 2008-01-29 David Lutterkort <dlutter@redhat.com>
10146 Produce dot files for the grammar
10148 2008-01-29 David Lutterkort <dlutter@redhat.com>
10150 Various changes to the tests to make them (almost) work
10151 (1) Adjust to the fact that the root dir is now a variable
10152 (2) Mark tests as failing if augtool exits with an error exit status
10153 (3) Use numbers matching [0-9]+ where the grammar uses $seq, otherwise
10154 augtool will (rightly) report an impossible path
10156 Some of the tests are still failing.
10158 2008-01-29 David Lutterkort <dlutter@redhat.com>
10160 aug_ls: Fix bad parent comparison
10161 Before /foo/1000 was listed as a child of /foo/1
10165 2008-01-24 David Lutterkort <dlutter@redhat.com>
10167 Rough thoughts about emit
10169 2008-01-21 David Lutterkort <dlutter@redhat.com>
10171 For quantified groups, count the quantifier as the group
10172 Previously, for a match like '(A)*' A was counted as a group, which meant
10173 that if an action was attached to the group, all the children of the '*'
10174 node in the AST had the same path. By counting the '*' as the group, not
10175 'A', the children will have different name if different subtrees are
10176 produced in the group.
10178 This ensures that in the AST, the children of '*' and '+' have different
10179 names and simplifies the 'put' direction of the transformation
10182 2008-01-21 David Lutterkort <dlutter@redhat.com>
10184 Some config settings - most of them need to be exposed through configure.ac
10186 2008-01-18 David Lutterkort <dlutter@redhat.com>
10188 Global filename does not exist. Use basename
10190 Only increment $seq when it has been used
10191 With this change, $seq goes structly sequential in the generated tree
10192 nodes. Before, things like comments that don't lead to changes in the tree
10193 increased the counter, too.
10195 Spec files needed by the tests
10197 Don't segfault in ast_dot on NULL ast
10199 2008-01-18 David Lutterkort <dlutter@redhat.com>
10201 Only save files with actual changes
10202 Split emitting into two parts: updating the AST from the config tree and
10203 actually writing the AST to file. do_insertion and do_deletion now report
10204 if they made any changes to the tree so that the provider can decide
10205 whether to save the file or not.
10207 As a byproduct, parts of the AST that are no longer needed are actually
10210 2008-01-18 David Lutterkort <dlutter@redhat.com>
10212 Handle null values/tokens when storing
10214 Detect association of values with impossible paths
10216 2008-01-17 David Lutterkort <dlutter@redhat.com>
10218 Make augtest set AUGEAS_ROOT and AUGEAS_SPECLIB before running augtool.
10219 augtest now copies test files into a separate subdirectory and points
10220 augtool to that as its root. It also points augtool to ../spec for the spec
10223 Add the spec provider.
10224 The provider should have been committed in 57:9e439a136787, but
10225 wasn't. Unfortunately, versions of prov_spec.c that would compile with that
10226 version have been lost. Therefore, builds between 57:9e439a136787 and this
10227 revision will fail.
10229 2008-01-17 David Lutterkort <dlutter@redhat.com>
10231 Emit a the current tree into a file
10232 Based on the AST, generate the file that lead to that AST. Changes to the
10233 config tree are mirrored by corresponding changes in the AST before it is
10236 This is a first version that works for some restricted set of grammars, but
10237 needs a lot more testing.
10239 2008-01-17 David Lutterkort <dlutter@redhat.com>
10241 Compute tree handles for each match
10242 The handle of a match is a set of regular expressions that indicate which
10243 subtrees are generated by that match. Handles are computed based on the
10244 actions in the grammar and propagated.
10246 The handle of an action is a regular expression matching the path generated
10249 2008-01-17 David Lutterkort <dlutter@redhat.com>
10251 Build an explicit AST
10252 Instead of representing the parsed file by a simple list of tokens, build a
10253 fullblown AST for that file. The AST is actually not very abstract, and is
10254 directly the parse tree from parsing a file with a certain grammar.
10256 Split parsing and evaluating into to passes; references to fields
10257 are too hard to resolve with a partially constructed AST.
10259 Also adds a routine (ast_dot) to output the AST as a dot file; this eases
10260 debugging tremendously. augparse will now produce dot files when given '-P
10263 Remove aug_token and any mention of it - that has been replaced by struct
10266 2008-01-17 David Lutterkort <dlutter@redhat.com>
10268 Represent quantifiers in their own match nodes
10269 Instead of using a field in struct match for quantifiers '*', '+', '?',
10270 represent quantified expressions by their own struct match, with a matches
10271 field pointing to the quantified expression.
10273 This leads to a cleaner parser and makes constructing an explicit AST
10276 2008-01-17 David Lutterkort <dlutter@redhat.com>
10278 Prefer comments over kv
10280 Print first sets for every match
10281 Factor printing of a literal_set into print_literal_set and use it for
10282 printing both first and follow sets.
10284 Remove debug printing in augparse about loaded maps
10286 2008-01-07 David Lutterkort <dlutter@redhat.com>
10288 Free tokens entirely when freeing file
10290 Set action in all path components
10292 2008-01-03 David Lutterkort <dlutter@redhat.com>
10294 Provider that uses specs
10295 The spec provider is hooked into libaugeas and loaded. It reads spec files
10296 from /usr/share/augeas/spec and paths mentioned on AUGEAS_SPECLIB. Files
10297 are parsed according to the specs loaded, and values are written into the
10298 tree after parsing those files.
10300 Still missing is saving of the tree back to file, and in particular adding
10301 new entries in the tree to such files.
10303 2008-01-03 David Lutterkort <dlutter@redhat.com>
10305 Move hosts and inittab under /etc
10307 Always set the passed-in grammars and maps to NULL
10308 Without that, it's too easy to pass an invalid pointer in from random
10309 nonsense on the stack. And since we do not append to anything the user may
10310 pass in, setting to NULL is safe.
10312 Compile regexps for multiline matching
10314 2008-01-02 David Lutterkort <dlutter@redhat.com>
10316 Fix syntax error; we want to test that missing defaults are noticed
10318 Add filemappings to the language
10319 The map construct specifies a grammar and a list of glob patterns that this
10320 grammar should be applied to.
10322 Print the filename in errors about tokens (abbrevs)
10324 Add name to grammars
10326 Add -v switch for printing errors
10328 Two more test grammars
10330 Execute actions (not writing to tree yet)
10331 Actions are executed at the right points during the parse, and a stack of
10332 paths is maintained. References to values work with the exception of
10333 references to rules.
10335 2007-12-21 David Lutterkort <dlutter@redhat.com>
10337 Check grammar acceptance/rejection
10339 More precise syntax for where actions attach in a rule
10340 Previously, it was not clear how far into a rule the current path would be
10341 modified during parsing. This syntax defines some clear rules for that:
10342 - if the rule applies to a parenthesized group (@n), the
10343 path is in effect until the end of the group
10344 - if the rule applies to a field (@$n), the new path is used during
10345 parsing of that field
10346 - the assignment part of the action is done after the field/group
10349 Snapshot before changing the syntax of rule actions
10351 2007-12-20 David Lutterkort <dlutter@redhat.com>
10353 Remove unused keyword and token 'default'
10355 Fix field number computation
10357 Two more rejection tests
10359 Add a simple test for rejecting bad grammars
10361 Don't try to dump a NULL grammar
10363 Introduce SUBMATCH_P macro; cleanup unnecessary switch statements.
10365 Statically number all matches in a rule. Check for illegal field refs.
10367 Collect unprocessed tokens in the parser state.
10369 Print quantifier after rule reference
10371 Remove unneeded debug print
10373 Produce tokens during parsing.
10374 Also, nicer printing of the tokens read.
10376 2007-12-20 David Lutterkort <dlutter@redhat.com>
10378 Stricter checking for ambiguous rules
10379 Check that all items in alternatives have non-overlapping first sets. Two
10380 sets are overlapping if they both contain an entry pointing to the same
10381 struct literal or if the contain entries where the literals have the same
10382 patterns (as strings)
10384 This still misses the case where literals have equivalent regular
10385 expresions (e.g. /[ab]/ in one and /[ba]/ in the other) but that seems very
10388 2007-12-20 David Lutterkort <dlutter@redhat.com>
10390 Print first/follow sets prettier, print control characters escaped with ~
10391 Literals from first/follow sets are now reduced back to the abbrev they
10392 belong to if that exists.
10394 Add options to control grammar printing
10396 Set match->owner for _all_ matches
10398 Two more sample/test grammars
10400 First step towards a specification for config files
10401 Definition of a simple language for describing the syntax of config files
10402 and how they are to be mapped to a tree. Lexer/parser for the language and
10403 data structures to hold the specification. Parses files defined by the
10404 grammar - processing of the parse is missing though.
10406 2007-12-14 David Lutterkort <dlutter@redhat.com>
10408 Factor aug_make_file into internal.c
10410 2007-12-01 David Lutterkort <dlutter@redhat.com>
10412 Be more verbose about which tests were run
10414 Do not include unused util.h
10416 Mention language bindings
10418 Added tag release-0.0.1 for changeset 69688020bb1b
10422 Disribute tests and doc/examples.txt
10424 Some pseudo-code examples
10428 2007-11-30 David Lutterkort <dlutter@redhat.com>
10430 Add a test that shows how to change the initdefault
10432 Add help texts and a help command
10434 Add aug_match as a simple query facility
10436 Handle /etc/inittab
10438 Make the ROOT_DIR a constant instead of hardcoding it everywhere
10440 Test deleting everything from /etc/hosts
10442 Describe what a test description looks like
10444 Add a provider for /etc/hosts and reorganize how providers are loaded/saved a little
10446 aug_rec_save: Check input parameters
10448 2007-11-30 David Lutterkort <dlutter@redhat.com>
10450 Major overhaul of record parsing
10451 Use PCRE to split records with regexps, and abstract a major chunk of
10452 functionality out so it is independent of parsing pam config files
10454 Translate changes in the tree into changes in files (change/insert/delete
10455 of nodes are translated into changing fields and insert/delete of fields
10458 2007-11-30 David Lutterkort <dlutter@redhat.com>
10460 Root filesys that tests pass against
10462 Basic tests for record parsing
10464 2007-11-26 David Lutterkort <dlutter@redhat.com>
10466 Trim trailing slashes from paths
10468 Keep /system and /system/config around at all times
10470 Access aug_insert from the command line; do better error checking for aug_insert
10472 Autotools support for building
10474 2007-11-26 David Lutterkort <dlutter@redhat.com>
10476 Very simplistic key store with a public API in augeas.h
10477 The implementation is braindead and slow, but good enough to experiment
10478 with the actual difficulty for augeas: parsing and editing different config
10481 augtool gives a basic mean to inspect the keystore from the command line
10483 2007-11-26 David Lutterkort <dlutter@redhat.com>