f0685aa21aff1308643b347793ef7448f899c6a6
[platform/upstream/augeas.git] / ChangeLog
1 2014-10-31  Chris Hollowell  <hollowec@bnl.gov>
2
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:
6
7           blkio.throttle.read_iops_device="8:0 50";
8
9 2014-10-30  Kenaniah Cerny  <kenaniah@users.noreply.github.com>
10
11         Added config.d files to the filter
12         Used by systems running Red Hat or a variant
13
14 2014-10-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
15
16         Build: remove unused indent definition
17
18 2014-10-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
19
20         Update NEWS
21
22         Httpd: Allow comparison operators in tags (GH #154)
23
24 2014-10-17  Tomáš Chvátal  <tomas.chvatal@gmail.com>
25
26         Add more possible SUSE extensions to read from multipath config.
27
28 2014-10-17  Alastair Lynn  <arplynn@gmail.com>
29
30         Inifile: allow single-character keys
31
32 2014-10-17  Yanis Guenane  <yguenane@gmail.com>
33
34         xml.aug: Allow nmotoken rather than plain word after !DOCTYPE
35         Currently, the lens only accepts a word after the !DOCTYPE word.
36
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.
41
42 2014-10-17  fonfon  <blubb@fonfon.at>
43
44         Pagekite: new lens and tests
45
46 2014-09-23  Dominic Cleal  <dcleal@redhat.com>
47
48         Iptables: parse /etc/sysconfig/iptables.save
49         Fixes RHBZ#1144651
50
51 2014-09-23  Pino Toscano  <ptoscano@redhat.com>
52
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.
56
57         LVM: support negative numbers
58         Use Rx.relinteger instead of Rx.integer so negative numbers as values
59         can be read.
60
61 2014-09-18  Dominic Cleal  <dcleal@redhat.com>
62
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.
67
68         Fixes RHBZ#1138508
69
70 2014-09-12  Dominic Cleal  <dcleal@redhat.com>
71
72         Dhclient: parse hash statements with dhcp-eval strings
73
74         Systemd: parse semicolons inside entry values, not as EOL comments
75         Fixes RHBZ#1139498
76
77 2014-09-09  Dominic Cleal  <dcleal@redhat.com>
78
79         Kdump: parse new options, permit EOL comments, refactor
80         Fixes RHBZ#1139298
81
82         Test_Kdump: fix test of complete config file
83
84 2014-09-05  Dominic Cleal  <dcleal@redhat.com>
85
86         Xml: enable CDATA parsing
87         Fixes GitHub #80
88
89 2014-09-04  Dominic Cleal  <dcleal@redhat.com>
90
91         * src/augeas.c (unlink_removed_files): ensure aug_save returns non-zero result   when unable to delete files
92         Fixes RHBZ#1091143
93
94 2014-09-03  Dominic Cleal  <dcleal@redhat.com>
95
96         Syslog: permit IPv6 loghost addresses
97         Fixes RHBZ#1129388
98
99         Aliases: permit missing whitespace between colon and recipients
100
101 2014-07-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
102
103         NEWS
104
105         Xml: Allow backslash in #attribute values
106
107 2014-07-21  Dominic Cleal  <dcleal@redhat.com>
108
109         Services: permit colons in service name
110         Fixes RHBZ#1121263
111
112 2014-07-09  Dominic Cleal  <dcleal@redhat.com>
113
114         Rmt: new lens to parse /etc/default/rmt
115         Fixes RHBZ#1100549
116
117         Systemd: parse /etc/sysconfig/*.systemd as used in 389-ds
118         Fixes RHBZ#1083022
119
120         Shellvars: support $(( .. )) arithmetic expansion in variable assignment
121         Fixes RHBZ#1100550
122
123         Systemd: allow quoted Environment key=value pairs
124         Fixes RHBZ#1100547
125
126 2014-06-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
127
128         Simplevars: Support empty values
129
130 2014-06-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
131
132         Sshd: support doseol and standardize code
133
134         Sshd: Use Build.opt_list
135
136         Sshd: Also make Host entries case-insensitive
137
138         Ssh: support case-insensitive entries everywhere
139
140 2014-06-24  Andy Grimm  <agrimm@redhat.com>
141
142         Add other valid controllers to cgconfig lens
143
144 2014-06-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>
145
146         Xymon_Alerting: refactor lens (GH issue #89)
147
148 2014-06-11  Nick  <npiace@mars.asu.edu>
149
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.
154
155 2014-06-06  Frank Grötzner  <frank@unforgotten.de>
156
157         add support for mtu relevant parameters fragment and mssfix
158
159 2014-06-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>
160
161         Update NEWS and AUTHORS
162
163 2014-06-05  fonk  <frank@unforgotten.de>
164
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.
168
169 2014-06-04  Dominic Cleal  <dcleal@redhat.com>
170
171         * man/augtool.pod: fix description of 'move' alias
172
173 2014-06-03  Dominic Cleal  <dcleal@redhat.com>
174
175         * src/augrun.c: remove unused "filename" argument from dump-xml command
176         Fixes RHBZ#1100106
177
178         * man/augtool.pod: update man page with --span option
179
180 2014-06-02  Raphaël Pinson  <raphink@gmail.com>
181
182         Update AUTHORS and NEWS
183
184 2014-06-02  Joel Loudermilk  <joel@loudermilk.org>
185
186         Multipath: add support for rr_min_io_rq
187
188 2014-06-02  Dominic Cleal  <dcleal@redhat.com>
189
190         * man/augtool.pod: update man page with new commands
191         Fixes RHBZ#1100077
192
193         * src/augtool.c: add command aliases to autocomplete
194         Fixes RHBZ#1100184
195
196         Ldso: handle "hwcap" lines
197         Fixes #100
198
199         Rsyslog: parse property filters and file actions with complex templates
200         Fixes RHBZ#1083016
201
202 2014-06-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
203
204         Update NEWS
205
206 2014-06-02  Pat Riehecky  <riehecky@fnal.gov>
207
208         Added tuned lense
209
210 2014-06-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
211
212         Update NEWS and AUTHORS
213
214 2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
215
216         Add a little bit of ducumentation
217         for both the shadow and the gshadow lenses
218
219 2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
220
221         Add a lens for /etc/gshadow file format
222         and wire-up its test to the runner's list in Makefile.am
223
224         Also add a mock /etc/gshadow in tests/root
225
226 2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
227
228         Add a lens for /etc/shadow file format
229         and wire-up its test to the runner's list in Makefile.am
230
231         Also add a mock /etc/shadow in tests/root
232
233 2014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
234
235         Refactor and document
236          - import already defined lenses from the respective modules
237            instead of defining them internally
238
239          - add a missing \r to the excluded chars in sto_to_col
240
241          - add some documentation
242
243 2014-05-14  Michael Tiernan  <michael.tiernan@gmail.com>
244
245         * HACKING: fix git repository URL
246
247 2014-05-11  Mike Latimer  <mlatimer@suse.com>
248
249         Device_map: Parse all device.map files under /boot
250
251 2014-05-08  Raphaël Pinson  <raphink@gmail.com>
252
253         CPanel: Allow colons in keys
254
255         CPanel: New lens to parse cpanel.config files
256
257 2014-05-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>
258
259         Simplevars: Support flags
260
261 2014-04-24  Raphaël Pinson  <raphink@gmail.com>
262
263         Shellvars: Allow any kind of quoted values in block conditions (GH issue #118)
264
265 2014-04-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
266
267         Sssd: Allow ; for comments
268
269 2014-04-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>
270
271         Allow empty quoted values (GH issue #115)
272
273         Allow continued lines inside quoted value (GH issue #104)
274
275 2014-04-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
276
277         Update NEWS and AUTHORS
278
279 2014-04-12  Robert Drake  <rdrake@direcpath.com>
280
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.
284
285         fixes #65
286
287 2014-04-12  Robert Drake  <rdrake@direcpath.com>
288
289         dhclient, add support for option modifiers
290         This adds basic support for append|prepend|supercede|default
291
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.
294
295         fixes #95
296
297 2014-04-12  Vincent Brillault  <vincent.brillault@cern.ch>
298
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'.
307
308         This commit add basic support of such arguments via the regex:
309         '/(\[[^]#\n]+\]|[^[#\n \t][^#\n \t]*)/'
310
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 '\')
314
315 2014-04-12  Robert Drake  <rdrake@direcpath.com>
316
317         added seq to vim syntax highlight
318
319 2014-04-03  Simon Séhier  <simon.sehier@camptocamp.com>
320
321         add missing } in file path for nagios/icinga objects
322
323 2014-03-13  Raphaël Pinson  <raphink@gmail.com>
324
325         UpdateDB: Update tests to ensure spaces around = are OK
326
327         Update NEWS
328
329         UpdateDB: New lens to parse /etc/updatedb.conf
330
331 2014-03-13  Dominic Cleal  <dcleal@redhat.com>
332
333         * augeas.spec.in: improve augeas-libs description
334
335 2014-03-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
336
337         Httpd: Add unit test for comment on next line
338
339         Httpd: Define an eol_comment in section to allow for \n before comment
340
341 2014-03-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
342
343         Httpd: Allow eol comments after section tags
344
345 2014-03-06  Raphaël Pinson  <raphael.pinson@camptocamp.com>
346
347         Rx: Add iso_8601 simple regex
348
349         Update NEWS
350
351         Update AUTHORS and NEWS
352
353 2014-03-06  Robert Drake  <rdrake@direcpath.com>
354
355         dhcpd, style and test changes suggested by raphink
356         I also updated the NEWS entry to note the incompatible change
357
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"
361
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.
366
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
370         which I removed.
371
372 2014-03-06  Robert Drake  <rdrake@direcpath.net>
373
374         dhcpd, changing quotes on stmt_block_arg
375         This patch can break users parsers.
376
377         Fixes failover-peer, shared-network, class, host, zone, group, and "on" to
378         handle quoted values properly.
379
380         It also allows optional semicolon at the end of key {} block.
381
382 2014-03-06  Robert Drake  <rdrake@direcpath.net>
383
384         dhcpd, adding support for "on" statement
385         For things like:
386
387         on commit {
388               set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
389               set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
390         }
391
392 2014-03-06  Robert Drake  <rdrake@direcpath.net>
393
394         dhcpd, added fddi to stmt_hardware
395         getting pretty obscure..
396
397 2014-03-06  Robert Drake  <rdrake@direcpath.net>
398
399         dhcpd, adding support for set command
400         This allows you to define variables in your dhcp configuration.  They
401         can be arbitrarily complicated.
402
403         Things like this:
404
405               set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
406               set ClientMac = binary-to-ascii(16, 8, ":" , substring(hardware, 1, 6));
407
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.
412
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.
415
416 2014-03-06  Robert Drake  <rdrake@direcpath.net>
417
418         dhcpd, added support for match if suffix|option
419         I also relaxed the rules on matching quoted and unquoted values.
420
421         Things like:
422             match if suffix (option vendor-class-identifier,6)="123456";
423         or
424             match if option vendor-class-identifier="Brave, Warrior Pidgins";
425
426         work now.
427
428 2014-03-06  Robert Drake  <rdrake@direcpath.net>
429
430         dhcpd fix to allow subclasses values to be quoted
431         DHCP subclass values can have spaces in them.
432
433         Here is an example:
434         subclass "consoles" "Xbox 360";
435         subclass "consoles" "Nintendo 3DS";
436         subclass "consoles" Wii;
437         subclass "consoles" NintendoDS;
438
439 2014-03-06  Robert Drake  <rdrake@direcpath.net>
440
441         dhcpd known-clients allows spaces in it's value
442         This is a fix for lines like these:
443
444            deny unknown clients;
445            deny known clients;
446            allow known clients;
447            allow unknown clients;
448
449 2014-03-06  Robert Drake  <rdrake@direcpath.net>
450
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.
456
457 2014-03-06  Robert Drake  <rdrake@direcpath.net>
458
459         dhcpd, fix whitespace problems with blocks
460         Most blocks should support braces at the end of a line or
461         on the next line.
462
463         Like this:
464
465         class "test class"
466         {
467
468         }
469
470         or
471
472         class testclass {}
473
474 2014-03-06  Robert Drake  <rdrake@direcpath.net>
475
476         dhcpd, expanding support for user-defined-options
477         This incorporates changes suggested by raphink.
478
479         It should be able to parse all of the following DHCP options now:
480
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;
498
499 2014-03-06  Robert Drake  <rdrake@direcpath.net>
500
501         dhcpd, add support for omapi-key statement
502         You can use this along with omapi-port to specify a secure way to talk
503         to your DHCP server.
504
505         key myspecialkey {
506             algorithm hmac-md5;
507             secret "base64string==";
508         }
509
510         omapi-key myspecialkey;
511         omapi-port 7911;
512
513 2014-03-06  Robert Drake  <rdrake@direcpath.net>
514
515         dhcpd, add support for named groups
516         Things like group Special_users {
517
518         }
519
520 2014-03-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
521
522         Update NEWS
523
524         Desktop: Allow @ in keys (GH issue #92)
525
526 2014-03-03  KaMichael  <KaMichael@users.noreply.github.com>
527
528         Group: Dropped nisentry (not valid here)
529
530         group: Testcase for NIS default
531
532 2014-03-03  KaMichael  <KaMichael@gmail.com>
533
534         Update group.aug
535
536         Update group.aug to parse NIS entries
537
538 2014-02-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
539
540         Update NEWS
541
542 2014-02-28  Pat Riehecky  <riehecky@fnal.gov>
543
544         Added chrony lense
545
546 2014-02-25  Dominic Cleal  <dcleal@redhat.com>
547
548         Krb5: permit braces in values when not in sub-section
549         Fixes RHBZ#1066419
550
551 2014-02-21  Dominic Cleal  <dcleal@redhat.com>
552
553         Keepalived: add more virtual/real server settings and checks
554         Fixes RHBZ#1064388
555
556 2014-02-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>
557
558         NetworkManager: Use the Quote module, support # in values (no eol comments)
559
560 2014-02-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>
561
562         AptPreferences: Support spaces in origin fields
563
564         Remove mercurial legacy files
565
566         Sshd: Allow all types of issues in Match groups (GH issue #75)
567
568         Update NEWS
569
570         Add cp to manpage (issue #78)
571
572         Update AUTHORS and NEWS
573
574 2014-02-20  Mykola Nikishov  <mn@mn.com.ua>
575
576         Support configuration file for Squid 3
577
578 2014-02-12  Dominic Cleal  <dcleal@redhat.com>
579
580         IPRoute2: handle "/" in protocol names, swap ID and name fields
581         This is an incompatible change.
582
583         Fixes RHBZ#1063968
584
585 2014-02-12  Dominic Cleal  <dcleal@redhat.com>
586
587         IPRoute2: handle hex IDs and hyphens in names, as present in rt_dsfield
588         Fixes RHBZ#1063961
589
590 2014-02-10  Dominic Cleal  <dcleal@redhat.com>
591
592         Shellvars: handle case statements with same-line ;; tokens
593         Fixes RHBZ#1033799
594
595 2014-02-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>
596
597         Update NEWS
598
599         Fix release date for 1.2.0 in NEWS
600
601         Add Known_Hosts lens
602
603 2014-01-30  Miguel Armas  <kuko@canarytek.com>
604
605         Grub: handle "foreground" option
606         Fixes RHBZ#1059383
607
608 2014-01-27  David Lutterkort  <lutter@watzmann.net>
609
610         Version 1.2.0
611
612 2014-01-27  Raphaël Pinson  <raphink@gmail.com>
613
614         Update NEWS with span info in XML dump
615
616 2014-01-27  Dominic Cleal  <dcleal@redhat.com>
617
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
621
622         Original %check patch from Richard Jones <rjones@redhat.com>
623
624 2014-01-27  Raphaël Pinson  <raphink@gmail.com>
625
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
629
630           <node label="..." file="..." path="...">
631             <span for="label" start="..." end="..."/>
632             <span for="value" start="..." end="..."/>
633             <span for="node" start="..." end="..."/>
634             <value>...</value>
635           </node>
636
637 2014-01-27  David Lutterkort  <lutter@watzmann.net>
638
639         Rename build/aux to build/ac-aux
640         The directory name 'aux' is special on Windows, and using it keeps the
641         build from working.
642
643         You will need to rerun autogen.sh after this change
644
645 2014-01-23  Raphaël Pinson  <raphink@gmail.com>
646
647         Update NEWS
648
649         Sshd: let all special keys be case-insensitive
650
651         Update NEWS
652
653         Sshd: Support Ciphers and KexAlgorithms groups, GH issue #69
654
655         Update NEWS
656
657         Grub: Add 'verbose' option, GH issue #73
658
659         Update NEWS
660
661         Shellvars_list: Allow end-of-line values, bug #342
662
663         Fix xymonalerting into xymon_alerting in tests/Makefile.am
664
665         Add Xymon_Alerting lens to NEWS, update AUTHORS
666
667         Rename XymonAlerting lens as Xymon_Alerting
668
669         Fix NaturalDocs comments in XymonAlerting lens
670
671 2014-01-23  Francois Maillard  <fmaillard@gmail.com>
672
673         Add NaturalDocs documentation to the xymonalerting lens and its tests
674
675         add basic doc
676
677         Add the test lens to the Makefile
678
679         New lens for xymon alerting rules
680
681 2014-01-23  Raphaël Pinson  <raphink@gmail.com>
682
683         Update NEWS with Authorized_Keys change
684
685 2014-01-23  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
686
687         Allow 'ssh-ed25519' as a valid authorized_key type
688
689 2014-01-23  Raphaël Pinson  <raphael.pinson@camptocamp.com>
690
691         Update NEWS and AUTHORS
692
693 2014-01-13  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
694
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
698
699 2014-01-13  Tomas Klouda  <tomas.klouda@gooddata.com>
700
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
704
705 2014-01-13  Dominic Cleal  <dcleal@redhat.com>
706
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
711
712         Fixes CVE-2013-6412, RHBZ#1034261
713
714 2014-01-13  Freakin  <brendanaye@gmail.com>
715
716         OpenVPN: additional config options
717         Support
718           1) daemon
719           2) client-config-dir
720           3) route
721           4) management
722
723 2014-01-13  David Lutterkort  <lutter@watzmann.net>
724
725         * NEWS: describe Slapd changes in last few commits
726
727 2014-01-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
728
729         Slapd: move by/who to the value of by
730
731         Slapd: Allow any allowed combination of who/access/control in by field
732
733         Slapd: support smart quotes in database entry
734
735         Slapd: remove duplicate entry in database_re
736
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)
740
741 2014-01-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
742
743         Slapd: Add unit test for by/control
744
745 2013-12-18  Dominic Cleal  <dcleal@redhat.com>
746
747         Shellvars, Sysconfig: map "bare" export and unset lines using seq to handle multiple variables
748         Fixes RHBZ#1033795
749
750 2013-12-18  Raphaël Pinson  <raphael.pinson@camptocamp.com>
751
752         Shellvars.lns: Actually test continued lines and fix support
753
754         Shellvars.lns: add unit test for continued lines in double quoted values
755
756 2013-12-16  Dominic Cleal  <dcleal@redhat.com>
757
758         Sysconfig: permit empty comments after comment lines
759         Fixes RHBZ#1043636
760
761 2013-12-05  Dominic Cleal  <dcleal@redhat.com>
762
763         Shellvars: fix syntax error in filter
764
765 2013-12-04  David Lutterkort  <lutter@watzmann.net>
766
767         Shellvars: exclude /etc/sysconfig/ip*tables.save files
768
769 2013-12-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
770
771         Sudoers.lns: Allow uppercase characters in user names (ticket #376)
772
773         Build: Add combine_three_ord and combine_three
774
775         Build: Add combine_two_ord and combine_two
776
777         Yum.lns: split excludes as lists (ticket #275)
778
779         Build: Add combinatorics group
780
781         Yum.lns: simplify code for combinatory logic of list_entry elements
782
783 2013-12-02  Tomas Hoger  <thoger@redhat.com>
784
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
788           $HOSTS_AUGSAVE.
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.
792
793 2013-12-02  Tomas Hoger  <thoger@redhat.com>
794
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.
799
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.
804
805 2013-12-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
806
807         Desktop.lns: Support square brackets in keys
808
809 2013-11-19  Dominic Cleal  <dcleal@redhat.com>
810
811         * src/transform.c (filter_matches): wrap fnmatch to ensure that an incl   pattern containing "//" matches file paths
812         Fixes RHBZ#1031084
813
814 2013-11-09  Sean Millichamp  <sean.millichamp@secure-24.com>
815
816         Enhance Nagiosobjects lens
817         This adds support and tests for three additional Nagios
818         supported behaviors:
819         - An optional space between the object name and the {
820            Example: "define host{"
821         - An optional indent prior to the closing }
822            Example: "    }"
823         - Whole-line comments that start with ;
824            Example: "; This is a comment"
825
826         It does not add support for end-of-line comments with ;
827
828 2013-11-09  Yanis Guenane  <yguenane@gmail.com>
829
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
834
835         http://www.ipamworldwide.com/declarations-topological/declarations-allowdenyignore.html
836
837         Also this bug was preventing a Foreman user to parse the dhcpd.conf
838         generated by theforeman/dhcp puppet module
839
840 2013-11-09  Dominic Cleal  <dcleal@redhat.com>
841
842         Yum: permit spaces after equals sign in list options
843         Fixes GitHub issue #45
844
845 2013-11-08  Matteo Cerutti  <matteo.cerutti@hotmail.co.uk>
846
847         Sudoers: permit underscores in group names
848         Fixes ticket #370
849
850 2013-11-01  Andrew N Golovkov  <a.golovkov@dwteam.ru>
851
852         include only *.repo files from yum.repos.d;
853
854 2013-10-24  Michael Haslgrübler  <work-michael@haslgruebler.eu>
855
856         Use Quote module in dovecot
857         * use Quote.dquote_spaces for quoting
858
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
864         * fixes indention
865         * test case for block_args with "
866         * fixes broken indention
867
868 2013-10-17  Dominic Cleal  <dcleal@redhat.com>
869
870         Shellvars_list: handle backtick variable assignments
871         Fixes ticket #368
872
873 2013-10-08  Yanis Guenane  <yguenane@gmail.com>
874
875         Update NEWS
876
877 2013-10-07  Dietmar Kling  <baldur@email.de>
878
879         Cyrus_Imapd: create new entries without space before separator
880         Fixes RHBZ#1014974
881
882 2013-10-05  Dominic Cleal  <dcleal@redhat.com>
883
884         Exports: permit colons for IPv6 client addresses
885         Fixes ticket #366
886
887 2013-09-20  Esteve Fernandez  <esteve.fernandez@gmail.com>
888
889         Added dhclient.conf path for Debian/Ubuntu
890
891 2013-09-09  Yanis Guenane  <yguenane@gmail.com>
892
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
896         PR fixes that.
897
898         Fix test_rsyslog.aug
899
900         Remove unused variable at
901
902 2013-09-07  Yanis Guenane  <yguenane@gmail.com>
903
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"
909
910 2013-09-02  Dominic Cleal  <dcleal@redhat.com>
911
912         * tests/test-load.c (testPermsErrorReported): skip permissions test when root
913
914 2013-08-27  Tom Hendrikx  <tom@whyscream.net>
915
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
920
921 2013-08-27  Raphaël Pinson  <raphink@gmail.com>
922
923         Add aug_cp and the cp and copy commands
924
925 2013-08-27  Dominic Cleal  <dcleal@redhat.com>
926
927         Grub: handle makeactive menu command
928         Fixes ticket #340
929
930         Postfix_Main: handle stray whitespace at end of multiline lines
931         Fixes ticket #348
932
933 2013-08-27  Pat Riehecky  <riehecky@fnal.gov>
934
935         Koji: new lens to parse Koji configs
936
937 2013-08-27  Dominic Cleal  <dcleal@redhat.com>
938
939         Access: support DOMAIN\user syntax for users and groups
940         Fixes ticket #353
941
942         Samba: permit asterisk in key name
943         Fixes ticket #354
944
945         Shellvars: support all types of quoted strings in arrays
946         Patch from webmeister.  Fixes ticket #357.
947
948 2013-08-27  Pat Riehecky  <prieheck@iwu.edu>
949
950         Yum: add yum-cron*.conf files
951
952 2013-08-27  Pascal Lalonde  <plalonde@google.com>
953
954         Interfaces: allow numeric characters in stanza options
955
956 2013-08-27  David Lutterkort  <lutter@watzmann.net>
957
958         Shellvars: read /etc/firewalld/firewalld.conf
959         Fixes https://fedorahosted.org/augeas/ticket/363
960
961 2013-08-27  Matthew Booth  <mbooth@redhat.com>
962
963         Grub: support the 'lock' directive
964
965         Grub: NFC fix whitespace errors introduced by 4e09d15
966         Kill tabs!
967
968         Grub: support the 'setkey' directive
969
970 2013-08-27  Michael Wisheu  <wisheu@google.com>
971
972         Interfaces: add /etc/network/interfaces.d/* as another commonly used location
973
974 2013-08-06  Raphaël Pinson  <raphink@gmail.com>
975
976         Update NEWS
977
978         Fix NaturalDocs comments in lenses
979
980 2013-08-06  Stephen P. Schaefer  <sschaefer@acm.org>
981
982         Allow augeas to deal with one variant of /etc/sysconfig/network-scripts/route-*
983
984 2013-08-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>
985
986         Update NEWS
987
988         Properties: Support multiline starting with an empty string, GH issue #19
989
990         Dhcpd: support conditionals, GH issue #34
991
992         Update NEWS
993
994         PHP: Allow php-fpm syntax (GH issue #35)
995
996 2013-08-01  Patrick Adair  <padair@he.net>
997
998         Interfaces: add in support for the source stanza in /etc/network/interfaces files
999
1000 2013-07-30  Dominic Cleal  <dcleal@redhat.com>
1001
1002         Simplevars: adopt /etc/selinux/semanage.conf due to spaces around delimiters
1003
1004 2013-07-30  Michael Scherer  <misc@zarb.org>
1005
1006         Shellvars: add /etc/selinux/semanage.conf
1007
1008 2013-07-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1009
1010         Start new NEWS section
1011
1012         Fix documentation links in c_api naturaldocs menu
1013
1014 2013-07-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1015
1016         Sshd: also indent comments by 2 spaces by default in Match groups
1017
1018         Sshd: Indent Match entries by 2 spaces by default
1019
1020 2013-06-27  Jan Vansteenkiste  <jan@vstone.eu>
1021
1022         Fixes #27: Automounter lens does not handle hostnames with dashes in them
1023
1024 2013-06-24  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1025
1026         Fix my name
1027
1028 2013-06-14  David Lutterkort  <lutter@watzmann.net>
1029
1030         Version 1.1.0
1031
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.
1036
1037 2013-06-14  David Lutterkort  <lutter@watzmann.net>
1038
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,
1043         like '!', '[' etc.
1044
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.
1048
1049         The workaround introduced into shellvars.aug to fix tiecket #246 is also no
1050         longer needed.
1051
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
1055
1056 2013-06-14  David Lutterkort  <lutter@watzmann.net>
1057
1058         * src/transform.c (xfm_error): do not segfault when msg is NULL
1059
1060         * src/try: make 'try gdb' work with emacs-24 and gdb-7.5.1
1061
1062 2013-06-11  David Lutterkort  <lutter@watzmann.net>
1063
1064         LVM: fix handling of quoted strings that contain quotes
1065         Fixes https://github.com/hercules-team/augeas-do-not-use/issues/28 reported
1066         by brianredbeard
1067
1068 2013-06-11  Erik B. Andersen  <erik.b.andersen@gmail.com>
1069
1070         AptCacherNGSecurity: new lens for /etc/apt-cacher-ng/security.conf
1071
1072 2013-06-11  brian redbeard  <brian@dead-city.org>
1073
1074         Added node config for OpenShift
1075         When the intial lens was developed there was a missing transform
1076         on /etc/openshift/node.conf
1077
1078         This is a fix for bug hercules-team/augeas#22
1079
1080 2013-06-04  David Lutterkort  <lutter@watzmann.net>
1081
1082         Xorg: allow 'Screen' in Device section
1083         Patch from merkela
1084
1085         Fixes bug https://fedorahosted.org/augeas/ticket/344
1086
1087 2013-06-03  David Lutterkort  <lutter@watzmann.net>
1088
1089         Xorg: support extmod section
1090         Patch by merkela
1091
1092         Partial fix for https://fedorahosted.org/augeas/ticket/344
1093
1094 2013-05-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1095
1096         Yum: optimize regexp substractions
1097
1098         Nrpe: optimize regexp substractions
1099
1100         Mdadm_Conf: optimize regexp substractions
1101
1102         Fai_Diskconfig: Optimize regexp substractions
1103
1104         Shellvars: Optimize regexp substraction
1105
1106 2013-05-28  Dominic Cleal  <dcleal@redhat.com>
1107
1108         Automaster: accept spaces between options
1109
1110 2013-05-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1111
1112         Update NEWS
1113
1114         Add Rob Tucker to AUTHORS
1115
1116         Add README as a symlink to README.md to make autogen relax
1117
1118 2013-05-24  Rob Tucker  <rtucker11@gmail.com>
1119
1120         Added augeas lens and test for the asterisk sip.conf file
1121
1122 2013-05-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1123
1124         postfix_master: Allow [] in words (ticket #345)
1125
1126 2013-05-17  David Lutterkort  <github@watzmann.net>
1127
1128         Update README.md
1129         Reformat as GH-flavored markdown; add a License section
1130
1131         Rename README to README.md
1132
1133 2013-05-17  David Lutterkort  <lutter@watzmann.net>
1134
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.
1138
1139         Patch by aponomarenko
1140
1141         Fixes bug #332
1142
1143 2013-05-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1144
1145         Add --echo alias to augtool manpage
1146
1147         Add -t option to augtool manpage
1148
1149 2013-05-17  Enrico Stahn  <mail@enricostahn.com>
1150
1151         PHPFPM Support
1152
1153 2013-05-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
1154
1155         Add Splunk lens
1156         Lens to parse Splunk configuration. Based on IniFile lens, with few differences:
1157
1158         * Accepts empty value in entry
1159         * Entries without parent section are children of .anon node
1160
1161         Thanks to Tim Brigham for this contribution.
1162
1163 2013-05-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
1164
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.
1169
1170 2013-05-16  Davide Guerri  <davide.guerri@gmail.com>
1171
1172         adds support for iptoute2 configuration files (/etc/iproute2/*)
1173
1174 2013-05-16  Simon Vocella  <voxsim@gmail.com>
1175
1176         JaaS: lens for the Java Authentication and Authorization Service
1177
1178 2013-05-15  David Lutterkort  <lutter@redhat.com>
1179
1180         Function composition: fix the typing of the generated lambda
1181         When f and g are functions, 'f ; g' gets translated into
1182           lambda x: g (f x)
1183
1184         The resulting function wasn't typed right, which led to an internal error.
1185
1186         This fixes bug #328
1187
1188 2013-05-08  Raphaël Pinson  <raphink@gmail.com>
1189
1190         Update AUTHORS
1191
1192 2013-05-08  Brian Harrington  <bharrington@redhat.com>
1193
1194         Added support for OpenShift
1195         Added a series of lenses to support the corresponding configuration
1196         formats including conf, JSON, & HTTP.
1197
1198 2013-05-08  Brian Harrington  <bharrington@redhat.com>
1199
1200         Add support for MongoDB Server
1201         A basic lens and test to support the configuration of MongoDB
1202
1203         Added infrastructure components for MongoDB
1204
1205         Included references to MongoDBServer to handle the auto testing of
1206         lenses on build & mention of lens in for autodoc generation.
1207
1208         fixes hercules-team/augeas/#25
1209
1210         Improved documentation on MongoDBServer filter
1211
1212         Added improved reference and usage information for the lens
1213
1214         Mistyped port path in MongoDBServer lens usage
1215
1216         The port component was missing from the set command
1217
1218         fixes herclues/team-augeas/#25
1219
1220 2013-05-08  Brian Harrington  <bharrington@redhat.com>
1221
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.
1225
1226         ActiveMQ is a standards-based, open source messaging platform
1227         shipped by Red Hat (Formerly Fuse Source).
1228
1229         http://activemq.apache.org/
1230         http://www.redhat.com/products/jbossenterprisemiddleware/amq/
1231
1232 2013-04-30  Mathieu Alorent  <malorent@kumy.net>
1233
1234         Add more flags
1235         add other flags, and use regexp to check
1236
1237 2013-04-30  Mathieu Alorent  <malorent@kumy.net>
1238
1239         implement Downtime feature
1240         As seen in this thread, there is a downtime feature that is not
1241         parsed by Augeas.
1242
1243         http://lists.xymon.com/archive/2011-March/030998.html
1244
1245 2013-04-20  Dominic Cleal  <dcleal@redhat.com>
1246
1247         Rsyslog: support :omusrmsg: list of users in actions
1248
1249 2013-04-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1250
1251         Passwd: allow period in user names in spec (fixes #337)
1252
1253         Passwd: allow overrides in nisentry
1254
1255 2013-03-31  Gonzalo Servat  <gservat@gmail.com>
1256
1257         Nrpe: accept any config option, remove predefined list
1258
1259 2013-03-30  Branan Purvine-Riley  <branan@puppetlabs.com>
1260
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.
1263
1264         Example from an AIX /etc/services file:
1265             x11                      6000-6063/tcp  # X Window System
1266             x11                      6000-6063/udp  # X Window System
1267
1268 2013-03-21  Dominic Cleal  <dcleal@redhat.com>
1269
1270         Shellvars: reinstate /etc/sysconfig/network
1271         Fixes #330, RHBZ#904222, RHBZ#920609
1272
1273 2013-03-14  Gabriel  <g2p.code@gmail.com>
1274
1275         Add some autodoc comments.
1276
1277         Add a lens for LVM metadata.
1278
1279 2013-03-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1280
1281         Update NEWS
1282
1283 2013-03-11  Serge Smetana  <smetana@pluron.com>
1284
1285         Added lens for Dovecot config files
1286
1287 2013-03-01  Dominic Cleal  <dcleal@redhat.com>
1288
1289         * src/augtool.c (usage): fix spelling error
1290
1291 2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1292
1293         Krb5: Improve performances
1294
1295 2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1296
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
1304
1305           IniFile: Add empty_generic_nocomment
1306           Rx: make no_spaces compatible with doseol
1307           Schroot: Use empty_generic_nocomment
1308
1309 2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1310
1311         IniFile: Allow quotes inside bare values
1312
1313         IniFile: Multiline values can begin with a single newline
1314
1315         IniFile: Add empty_generic and empty_noindent
1316           Subversion: Use IniFile.empty_noindent
1317
1318         IniFile: Add entry_generic and entry_multiline_generic
1319         Subversion: Use IniFile.entry_multiline_generic
1320
1321         IniFile: Allow spaces in entry_multiline* values
1322
1323 2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1324
1325         IniFile: Use Util.comment_generic and Util.empty
1326           Add put test for ace
1327
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
1337
1338 2013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1339
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
1345
1346         IniFile: Add ready-to-use lns_loose and lns_loose_multiline lenses
1347
1348 2013-02-06  Andrew Anderson  <andrew@lirn.net>
1349
1350         Krb5: fix parse error with IPA generated krb5.conf
1351
1352 2013-02-06  Igor Pashev  <pashev.igor@gmail.com>
1353
1354         * configure.ac: better detection of how to pass version script to linker
1355         This now also works on Illumos when using GNU ld
1356
1357         Fixes https://fedorahosted.org/augeas/ticket/289
1358
1359 2013-02-06  Jan Pokorný  <jpokorny@redhat.com>
1360
1361         lenses.tex: fix typos, single-quote cleanup
1362
1363 2013-01-23  Dominic Cleal  <dcleal@redhat.com>
1364
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.
1368
1369         Fixes ticket #246
1370
1371 2013-01-23  David Lutterkort  <lutter@redhat.com>
1372
1373         augparse: add --trace option
1374         Using --trace will print the filenames of all modules that are loaded.
1375
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
1381
1382         * .gitignore: ignore test result files (*.trs)
1383
1384         * acinclude.m4: only turn on FORTIFY_SOURCE if it won't anger gcc
1385         Following libvirt commits cf9bced0 and 1c2edf0f
1386
1387 2013-01-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1388
1389         Quote: Allow multiple spaces in quote_spaces
1390
1391 2013-01-10  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1392
1393         Add two files found on OpenBSD to the simplevars lens.
1394
1395 2013-01-08  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1396
1397         The nagios filters work for Icinga too
1398
1399         Modify the Nagios lens to handle resources.cfg too.
1400         Fixes ticket #312
1401
1402 2013-01-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1403
1404         AptPreferences: adjust a little bit to simplified lens
1405
1406         AptPreferences: Simplify/Standardize the module
1407
1408 2013-01-04  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1409
1410         Make sure the usage shows up properly formated.
1411
1412         sync another comment with ND definition
1413
1414         Sync View comment with actual definition.
1415
1416         Properly document this lens.
1417
1418         Basic documentation for final apt lenses and sync Menu.txt
1419
1420         regen Menu.txt after recent changes.
1421
1422         Move the 'coding' comment to the end of the file to fix the menu entry.
1423
1424         Fix some more broken module names
1425
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
1430
1431         Correctly set the module name, and let it actually test the Lightdm lens.
1432
1433 2013-01-04  David Lutterkort  <lutter@redhat.com>
1434
1435         Xml test (input1): modify to mildly check handling DOS line endings
1436
1437 2013-01-04  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1438
1439         Add support for handling the "client-output-buffer-limit" to the Redis lens.
1440
1441 2013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1442
1443         Some small Rx tweaks: include regexes for octal and hex and simplify ipv4 matching.
1444         Fixes ticket #327
1445
1446         Add a lens for OpenNTPD's config file (ntpd.conf).
1447         Extend rx.aug with some helpful regexes while here.
1448         Fixes ticket #324
1449
1450         Adjust the fonts lens' exclusion rule to ignore all README files
1451         Fixes ticket #323
1452
1453 2013-01-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1454
1455         Quote: improve lens usage
1456
1457         Quote: lens usage
1458
1459         Quote: Improve documentation for functions
1460
1461         Xorg: Fix filter
1462
1463 2013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1464
1465         Also handle /etc/monitrc
1466         Fixes ticket #326
1467
1468 2013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1469
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.
1473
1474         Fixes ticket #325
1475
1476 2013-01-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1477
1478         Erlang and Quote are generic lenses
1479
1480 2013-01-02  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1481
1482         Add a new lens for OpenBSD's /etc/boot.conf.
1483         Fixes ticket #322
1484
1485 2013-01-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1486
1487         Networks: networks can have weird submasks, too
1488
1489         Sysctl: exclude /etc/sysctl.d/README.sysctl
1490
1491         Sudoers: Allow user aliases in specs
1492
1493         Systemd: Allow backslashes inside values
1494
1495         Systemd: Simplify expression
1496
1497         Systemd: Don't use multiple negates in regexps
1498
1499 2012-12-30  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1500
1501         * tests/cutest.c: include sys/wait.h for WIFEXITED and WEXITSTATUS.
1502         Fixes ticket #321
1503
1504 2012-12-30  Dominic Cleal  <dcleal@redhat.com>
1505
1506         Inetd: support IPv6 addresses
1507         Fixes ticket #320
1508
1509 2012-12-30  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
1510
1511         Shellvars: parse /etc/rc.conf.local which is found on OpenBSD.
1512         Fixes ticket #320
1513
1514         Dhclient: on OpenBSD dhclient.conf lives in /etc/dhclient.conf
1515         Fixes ticket #320
1516
1517         Resolv: Add two new views (family and lookup)
1518         Fixes ticket #320
1519
1520 2012-12-29  Dominic Cleal  <dcleal@redhat.com>
1521
1522         * src/augrun.c: fix spelling in defnode help
1523
1524 2012-12-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1525
1526         AptPreferences: Add "n" to pin keys
1527
1528 2012-12-23  Dominic Cleal  <dcleal@redhat.com>
1529
1530         Xinetd: handle missing values in lists
1531         Fixes ticket #307
1532
1533 2012-12-22  Dominic Cleal  <dcleal@redhat.com>
1534
1535         Update NEWS and AUTHORS
1536
1537 2012-12-21  David Lutterkort  <lutter@redhat.com>
1538
1539         Version 1.0.0
1540
1541 2012-12-21  Dominic Cleal  <dcleal@redhat.com>
1542
1543         Krb5: support semicolon comments, allow empty lines within subsections
1544         Fixes ticket #288
1545
1546 2012-12-21  Pat Riehecky  <riehecky@fnal.gov>
1547
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
1551         lower-cased.
1552
1553         Fixes ticket #274
1554
1555 2012-12-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1556
1557         Update NEWS and AUTHORS
1558
1559         Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/nginx
1560
1561         Add Nginx lens to parse /etc/nginx/nginx.conf, bug #319
1562
1563 2012-12-21  David Lutterkort  <lutter@redhat.com>
1564
1565         * src/Makefile.am: add $(top_builddir)/gnulib/lib to GNULIB_CFLAGS
1566         Needed for building under IllumOS
1567
1568         Fixes https://fedorahosted.org/augeas/ticket/270
1569
1570 2012-12-19  Matthaus Owens  <matthaus@puppetlabs.com>
1571
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.
1577
1578 2012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>
1579
1580         Redis: new lens and tests
1581
1582 2012-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1583
1584         Quote: Add tests for *_nil entries
1585
1586 2012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>
1587
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.
1591
1592         This patch also completes a couple of existing comments.
1593
1594 2012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>
1595
1596         augeas.vim: added a couple of keywords recently introduced.
1597
1598 2012-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1599
1600         Dhcpd: force double quotes for filename attribute, bug #311
1601
1602 2012-12-16  Marc Fournier  <marc.fournier@camptocamp.com>
1603
1604         Postgresql: properly support quotes
1605         Fixes trac#317
1606
1607 2012-12-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1608
1609         Postfix_Transport: allow host:port and [host]:port syntaxes, bug #303
1610
1611         Really test Avahi.lns in test_avahi.aug
1612
1613         Update NEWS
1614
1615 2012-12-14  Athir Nuaimi  <athir@nuaimi.com>
1616
1617         Add new Avahi lens to manage /etc/avahi/avahi-daemon.conf
1618
1619 2012-12-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1620
1621         Merge branch 'trac#281' of git://github.com/mfournier/augeas into review/pr4
1622
1623 2012-12-14  Marc Fournier  <marc.fournier@camptocamp.com>
1624
1625         Add a path to pg_hba.aug, fixes Trac ticket #281.
1626
1627         Htpasswd: new lens and tests
1628
1629 2012-12-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1630
1631         Update NEWS
1632
1633         src/augtool.c: honor --echo in run_args
1634
1635         src/augtool.c: print_aug_error when run_args fails
1636
1637         src/augtool.c: run_args is successful if code >= 0, bug #316
1638
1639 2012-12-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1640
1641         Update AUTHORS
1642
1643         Prepare NEWS for 1.0 release
1644
1645         Add Quote.dquote_spaces and Quote.squote_spaces
1646
1647         Use Quote.quote_spaces in pg_hba.aug
1648
1649         Add Quote.quote_spaces
1650
1651         Automagically manage quotes in pg_hba.aug
1652
1653 2012-12-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1654
1655         pg_hba.aug: Support multiple options (ticket #313)
1656
1657         Add test for ticket 313
1658
1659         pg_hba.aug: fix method to avoid clashing with hostname
1660
1661 2012-12-11  Andreas Ntaflos  <daff@pseudoterminal.org>
1662
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.
1667
1668 2012-12-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1669
1670         Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/shellvars_newlines
1671
1672 2012-12-09  Dominic Cleal  <dcleal@redhat.com>
1673
1674         Shellvars: add locale.conf, vconsole.conf systemd configs
1675         Fixes BZ#881841
1676
1677 2012-12-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1678
1679         Fix support for empty comments after comments
1680
1681         shellvars.aug: Fix newlines after comments being mapped as Util.empty
1682
1683 2012-12-06  Dominic Cleal  <dcleal@redhat.com>
1684
1685         Shellvars: add locale.conf, vconsole.conf systemd configs
1686         Fixes BZ#881841
1687
1688 2012-12-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1689
1690         Add rsyslog.aug
1691
1692 2012-11-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1693
1694         No need for comment in rabbitmq.aug (managed in erlang.aug)
1695
1696         Support comments in erlang.aug and rabbitmq.aug
1697
1698 2012-11-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1699
1700         Add rabbitmq.aug
1701
1702         Add erlang.aug
1703
1704 2012-11-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1705
1706         Add /etc/audit/auditd.conf to simplevars.aug
1707
1708 2012-11-20  Domen Kožar  <domen@dev.si>
1709
1710         correctly parse escaped string literals in vim syntax file
1711
1712 2012-11-20  Francois Lebel  <francoislebel@gmail.com>
1713
1714         Add a lens for logwatch.
1715
1716 2012-11-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1717
1718         Add tests for regexp builtin with flag
1719
1720         Add support for an 'i' flag in regexp builtin function
1721
1722 2012-11-20  David Lutterkort  <lutter@redhat.com>
1723
1724         * src/pathx.c: pass the number of actual arguments to the func implementation
1725
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)
1729
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"
1733
1734 2012-11-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1735
1736         Add Puppet_Auth lens
1737
1738 2012-11-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1739
1740         Add aug_label to retrieve the label from a path.
1741
1742 2012-11-09  David Lutterkort  <lutter@redhat.com>
1743
1744         Sysconfig: handle end of line comments and semicolons; strip quotes
1745         Fixes RHBZ #761246
1746
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
1750         was needed.
1751
1752         Shellvars: add tests for semicolon handling
1753
1754         * lenses/tests/test_sysconfig.aug: use a variable 'lns' for Sysconfig.lns
1755
1756         * lenses/tests/test_sysconfig.aug: use a variable 'lns' for Shellvars.lns
1757
1758         * tests/Makefile.am (lens_tests): add quote test
1759
1760 2012-10-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1761
1762         Use the Quote module in dhcpd.aug
1763
1764         Use the Quote module in openvpn.aug
1765
1766         Add quote.aug to easily manage quotes
1767
1768 2012-10-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1769
1770         vmware_config: use square lens to manage quotes
1771
1772 2012-10-26  David Lutterkort  <lutter@redhat.com>
1773
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.
1778
1779         This patch fixes that by making sure that fa_enumerate includes the empty
1780         word if the language contains it.
1781
1782 2012-10-26  Marc Fournier  <marc.fournier@camptocamp.com>
1783
1784         improved documentation for carbon/mcollective/memcached/thttpd lenses.
1785
1786 2012-10-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1787
1788         VMware_Config accepts values without quotes
1789
1790 2012-10-23  Francis Giraldeau  <francis.giraldeau@gmail.com>
1791
1792         Xml: support single _and_ double quoted attribute values
1793         Fixes RHBZ #799885
1794         Fixes ticket #258
1795
1796 2012-10-23  David Lutterkort  <lutter@redhat.com>
1797
1798         Use precise ctype of a square lens if it is indeed regular
1799
1800         libfa (fa_enumerate): new function
1801         Function to enumerate FA's with a finite language, given a preset limit of
1802         words.
1803
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.
1807
1808         * tests/modules/fail_shadow_union.aug: fix unintended test failure
1809
1810 2012-10-19  David Lutterkort  <lutter@redhat.com>
1811
1812         Gdm: also read /etc/gdm/custom.conf by default
1813
1814 2012-10-19  Filip Andres  <filip.andres@gooddata.com>
1815
1816         cgconfig.aug adds space between group and id
1817
1818 2012-10-19  David Lutterkort  <lutter@redhat.com>
1819
1820         Lightdm: new lens and tests
1821         Fixes ticket #302
1822         Contributed by David Salmen
1823
1824 2012-10-19  jmccann  <jacob.m.mccann@usps.gov>
1825
1826         Ntp: add tos directive
1827         Fixes ticket #297
1828
1829 2012-10-19  David Lutterkort  <lutter@redhat.com>
1830
1831         Phpvars: support classes and public/var values
1832         Fixes ticket #299
1833
1834         Patch by aheahe
1835
1836 2012-10-19  Marc Fournier  <marc.fournier@camptocamp.com>
1837
1838         Memcached: new lens and tests
1839
1840         Thttpd: new lens and tests
1841
1842         Carbon: new lens and tests for Carbon cache.
1843
1844         MCollective: new lens and tests
1845
1846 2012-09-24  Dominic Cleal  <dcleal@redhat.com>
1847
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.
1853
1854         Modprobe: revert inner lens name change, fixes Modules_conf
1855         Modules: define own entry regexp as referenced Modprobe inner lens doesn't
1856         match file format
1857
1858 2012-09-21  Dominic Cleal  <dcleal@redhat.com>
1859
1860         Modprobe: support multiline split commands
1861         Fixes Ubuntu bug #1054306
1862
1863 2012-09-17  Dominic Cleal  <dcleal@redhat.com>
1864
1865         Sshd: reset seq counter for each array setting
1866
1867 2012-09-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1868
1869         Fix test_syslog.aug
1870
1871         Capital letters are allowed in tokens in syslog.aug
1872
1873         Add collectd.aug and associated test
1874
1875 2012-09-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1876
1877         Add postfix_virtual.aug and associated test
1878
1879         Remove /etc/postfix/virtual from postfix_transport.aug
1880
1881 2012-09-04  Dominic Cleal  <dcleal@redhat.com>
1882
1883         Sshd: permit hyphens in subsystem names
1884
1885 2012-09-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1886
1887         Add apt_update_manager.aug and test
1888
1889         Add vmware_config.aug and test
1890
1891         Allow empty lines in gtkbookmarks.aug
1892
1893         Use label instead of seq in gtkbookmarks.aug
1894
1895         Add gtkbookmarks.aug and test
1896
1897 2012-08-27  Pat Riehecky  <riehecky@fnal.gov>
1898
1899         Cachefilesd: new lens for /etc/cachefilesd.conf
1900
1901 2012-08-23  jmccann  <jacob.m.mccann@usps.gov>
1902
1903         fixes #278 multipath: allow devices to override defaults
1904
1905 2012-08-22  Michal Filka  <mfilka@suse.cz>
1906
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.
1910
1911 2012-08-21  Jeroen van Meeuwen (Kolab Systems)  <vanmeeuwen@kolabsys.com>
1912
1913         Add a lens for Cyrus IMAP configuration file /etc/imapd.conf (includes /etc/imap/*.conf)
1914         Fixes ticket #296
1915
1916 2012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>
1917
1918         Generic square lens v4
1919         Lens square now takes lenses instead of regular expressions as arguments, as follow:
1920
1921           square left body right
1922
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.
1925
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.
1930
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.
1938
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:
1942
1943         Legacy:
1944           let x = square re body
1945
1946         New definition:
1947           let x =
1948                 let right = key re in
1949                 let left = del re "" in
1950                 square right body left
1951
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.
1954
1955         Finally, this patch updates httpd and xml lens according to square args
1956
1957         Changes in v2:
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.
1963         Changed in v3:
1964           * Split the patch into smaller units
1965         Changed in v4:
1966           * Rejoin patches to avoid breaking make check
1967
1968 2012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>
1969
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.
1973
1974         Changed in v2:
1975           * Additional checks for correctness
1976           * Create the root node in rec_process()
1977           * Merge ast_add_child() and ast_append()
1978
1979 2012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>
1980
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.
1984
1985         Ignore Eclipse settings directory
1986
1987 2012-08-12  Dominic Cleal  <dcleal@redhat.com>
1988
1989         Simplevars: use to parse /etc/default/grub_installdevice
1990         Ticket #290
1991
1992         Hosts_Access: add hosts_options(5) support
1993         Fixes ticket #256
1994
1995 2012-08-12  Dominic Cleal  <dcleal@redhat.com>
1996
1997         Hosts_Access: permit more client list formats
1998           * whitespace separated lists
1999           * @netgroups
2000           * IPv6 hosts, inc. zone indices
2001           * paths to lists of clients
2002           * wildcards
2003
2004         Mostly fixes ticket #256
2005
2006 2012-08-11  Dominic Cleal  <dcleal@redhat.com>
2007
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
2012         umask as before.
2013
2014           * src/transform.c (transform_save): chmod after creating new files to
2015             permissions implied by the umask
2016
2017 2012-08-11  Dominic Cleal  <dcleal@redhat.com>
2018
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
2023
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
2027
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
2031
2032         Ldif: new lens to read LDIF files per RFC2849
2033
2034         * src/augtool.c (add_transforms): move free() to prevent free(NULL) and run on   each iteration
2035
2036 2012-08-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2037
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
2043
2044 2012-08-10  David Lutterkort  <lutter@redhat.com>
2045
2046         * src/augeas.c: use constants for "lens", "incl" and "excl"
2047
2048 2012-08-10  Francis Giraldeau  <francis.giraldeau@gmail.com>
2049
2050         Fix typo in previous commit
2051         Adjust comment and remove duplicated test case for primary statement in
2052         dhcpd.conf lens.
2053
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
2059         the put direction.
2060
2061 2012-08-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2062
2063         Add entry_list and entry_list_nocomment to inifile.aug Use entry_list_nocomment in subversion.aug
2064
2065 2012-08-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2066
2067         Add aug_rename to rename node labels without moving them in the tree.
2068
2069 2012-08-07  Francis Giraldeau  <francis.giraldeau@gmail.com>
2070
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.
2075
2076 2012-08-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2077
2078         Update doc/naturaldocs/conf/lenses/Menu.txt
2079
2080 2012-08-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2081
2082         Update email address for Raphaël Pinson in AUTHORS
2083
2084 2012-07-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2085
2086         Make get_square case insensitive on the ending key.
2087
2088 2012-07-29  Dominic Cleal  <dcleal@redhat.com>
2089
2090         * src/augrun.c (cmd_retrieve_help): tidy line wrapping
2091
2092         NetworkManager: support semicolons in values, spaces and brackets in entry names
2093
2094         * src/transform.c (xread_file): catch failed fopen, e.g. EACCES
2095
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
2099
2100 2012-07-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2101
2102         Notify #augeas channel
2103
2104         Add valgrind test in .travis.yml
2105
2106         Add Travis CI file
2107
2108         Shellvars.aug fix empty comments
2109
2110         Shellvars.aug: Allow double quotes around variables in case statements
2111
2112         Shellvars.aug: Add shift and exit builtins, with optional args
2113
2114         Shellvars.aug: Fix empty lines after comments
2115
2116         Shellvars.aug: Support matching keys in var_action (ticket #290)
2117
2118         Shellvars.aug: Add dbquot for double bquoted values
2119
2120         Shellvars.aug: eol_comments must begin with a space char can contain #
2121
2122         Shellvars.aug: Add bquot and dollar-assigned tests
2123
2124         shellvars.aug: Allow semi-colons in bquot and dollar_assign Fix wrong test using bquot and eol_comment
2125
2126         Allow newlines in quoted values
2127
2128         Add lns_norec to shellvars.aug and fix ambiguities in the lens.
2129
2130         Fix ambiguity in shellvars.aug by making semi-colons illegal in bquot and arrays.
2131
2132 2012-07-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2133
2134         Allow end of line comments in fstab.aug
2135
2136 2012-07-23  Michal Filka  <mfilka@suse.cz>
2137
2138         Cron: records can be prefixed by '-'.
2139
2140 2012-07-19  Danny Yates  <danny@codeaholics.org>
2141
2142         vsftpd.aug: Add require_ssl_reuse option
2143
2144 2012-07-19  David Lutterkort  <lutter@redhat.com>
2145
2146         * augeas.spec.in: add bundled(gnulib) provides
2147         Fixes BZ 821745
2148
2149 2012-07-19  Dominic Cleal  <dcleal@redhat.com>
2150
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.
2155
2156         Mountpoints remain permitted at either PATH or PATH.augnew provided
2157         /augeas/save/copy_if_rename_fails exists.
2158
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
2165         * tests/
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
2169
2170         Fixes BZ 772261
2171
2172 2012-07-19  Dominic Cleal  <dcleal@redhat.com>
2173
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
2177
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
2181
2182         * src/transform.c (transfer_file_attrs):
2183             use fchown, fchmod etc. on the same file handles to ensure consistent
2184             permission changes
2185
2186         * bootstrap: add mkstemp gnulib module
2187         * tests/
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
2192
2193         Fixes BZ 772257
2194
2195 2012-07-18  Dan Prince  <dprince@redhat.com>
2196
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
2201         swift config files.
2202
2203 2012-07-18  David Lutterkort  <lutter@redhat.com>
2204
2205         Xinetd: slight formatting improvements
2206
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.
2213
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
2217
2218 2012-07-18  Michal Filka  <mfilka@suse.cz>
2219
2220         made xinetd.aug case insensitive on attribute names
2221
2222 2012-07-18  David Lutterkort  <lutter@redhat.com>
2223
2224         Update gnulib to commit cabce6b8
2225
2226 2012-07-18  David Lutterkort  <lutter@redhat.com>
2227
2228         * src/builtin.c (pr_tree): new primitive print_tree
2229         Useful in 'put' tests, as in
2230
2231           test lns put ".." after
2232             set .. ;
2233             print_tree;
2234             set ..
2235           = ?
2236
2237 2012-07-17  David Lutterkort  <lutter@redhat.com>
2238
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.
2242
2243         Fixes https://fedorahosted.org/augeas/ticket/283
2244
2245 2012-07-15  Dominic Cleal  <dcleal@redhat.com>
2246
2247         Fstab: options field is optional
2248
2249 2012-07-13  Dominic Cleal  <dcleal@redhat.com>
2250
2251         Authorized_Keys: add more tests
2252
2253 2012-07-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2254
2255         Add authorized_keys.aug and associated test.
2256
2257 2012-07-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2258
2259         simplevars.aug: Add /etc/zabbix/*.conf to includes
2260
2261         simplevars.aug: Allow quotes in variables that do not begin with a quote
2262
2263 2012-06-28  Dominic Cleal  <dcleal@redhat.com>
2264
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.
2269
2270 2012-06-19  Micah Anderson  <micah@riseup.net>
2271
2272         escape all possible regular expressions before they are sent to sed
2273
2274 2012-06-12  David Lutterkort  <lutter@redhat.com>
2275
2276         Modprobe: allow spaces around '=' in option
2277         Fixes https://bugzilla.redhat.com/show_bug.cgi?id=826752
2278
2279 2012-06-05  David Lutterkort  <lutter@redhat.com>
2280
2281         * man/augtool.pod: update mentions of default load path
2282
2283 2012-06-01  Luc Didry  <luc@didry.org>
2284
2285         Add su logrotate.conf option in logrotate.aug
2286
2287 2012-05-31  David Lutterkort  <lutter@redhat.com>
2288
2289         Tests for aug_text_store and aug_text_retrieve
2290
2291         aug_text_store, aug_text_retrieve: expose in augtool and aug_srun
2292
2293         aug_text_store, aug_text_retrieve: new API functions
2294
2295         * src/transform.c (text_retrieve): new function to turn tree into text
2296
2297         * src/transform.c (text_store): new function to write string to tree
2298
2299         * tests/test-run.c: allow loading of a module with 'use'
2300
2301 2012-05-31  David Lutterkort  <lutter@redhat.com>
2302
2303         Allow running individual tests with test-run
2304         Invoking 'test-run t1 t2 t3' will only run tests t1, t2 and t3
2305
2306           * tests/test-xpath.c: move checking if a test is mentioned in argv to
2307             cutest
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
2311
2312 2012-05-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2313
2314         Add postgresql lens
2315
2316         Allow eol comments in simplevars.aug
2317
2318         Add lens for cups
2319
2320         Add lens for samba's smbusers
2321
2322 2012-05-21  David Lutterkort  <lutter@redhat.com>
2323
2324         * src/augrun.c (cmd_span): better synopsis
2325
2326         * tests/run.tests: fix lines with trailing whitespace
2327
2328         * tests/test-run.c (errtokens): bring in sync with actual error codes
2329
2330 2012-05-17  David Lutterkort  <lutter@redhat.com>
2331
2332         * src/transform.c (load_file): remove unused variable file
2333
2334 2012-05-16  David Lutterkort  <lutter@redhat.com>
2335
2336         Fix behavior of set with empty strings
2337           * src/augrun.c (cmd_set, cmd_setm): distinguish between empty string and
2338             NULL value
2339           * tests/run.tests (set-args): adapt to new behavior
2340
2341 2012-05-12  Dominic Cleal  <dcleal@redhat.com>
2342
2343         * src/try: don't overwrite gdbcmds.txt if it exists
2344
2345 2012-05-11  Dominic Cleal  <dcleal@redhat.com>
2346
2347         Fstab: handle options with empty values ("password=")
2348
2349 2012-05-06  Tim Bishop  <tim@bishnet.net>
2350
2351         Puppet, PuppetFileserver: add /usr/local/etc/puppet paths
2352
2353 2012-04-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2354
2355         Shellvars: various edge cases in case entries
2356
2357         AptPreferences: #comments are accepted within entries
2358
2359         NagiosCfg: /etc/nagios3/commands.cfg and /etc/nagios3/resource.cfg have their own syntax, allow spaces in values.
2360
2361         /etc/default/whoopsie is an IniFile
2362
2363         Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas
2364
2365         Mke2fs: Add support for default_mntopts, enable_periodic_fsck, and auto_64-bit_support.
2366
2367 2012-04-26  Dominic Cleal  <dcleal@redhat.com>
2368
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
2372
2373         Fixes ticket #276
2374
2375 2012-04-23  David Lutterkort  <lutter@redhat.com>
2376
2377         * src/augeas.h: include 'extern "C"' wrapper for C++
2378         Fixes https://fedorahosted.org/augeas/ticket/272
2379
2380         Patch from Igor Pashev
2381
2382 2012-04-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2383
2384         Use Sys.getenv("HOME") in dput.aug
2385
2386 2012-04-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2387
2388         PHPVars: map arrays with @arraykey subnodes to make working paths
2389
2390 2012-04-12  Michal Filka  <michal.filka@suse.cz>
2391
2392         Shellvars: handle bash's implicit concatenation of quoted strings
2393
2394 2012-04-12  Josh  <jokajak@gmail.com>
2395
2396         Grub: add /boot/grub/grub.conf to transform
2397
2398 2012-04-12  Luc Didry  <luc@didry.org>
2399
2400         Use Sys.getenv('HOME') in filter instead of ~ since it's not expanded
2401
2402 2012-04-12  Brett Porter  <brett@apache.org>
2403
2404         Properties: improve handling of whitespace, empty props, and underscores in keys
2405         This brings the lens closer to the Java specification
2406
2407         With help from Carlos Sanchez <csanchez@maestrodev.com> and Dominic Cleal
2408         <dcleal@redhat.com>
2409
2410 2012-04-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2411
2412         Use a more standard way of writing LGPL v2+ in lens headers
2413
2414 2012-04-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2415
2416         postfix_transport.aug also applies to virtual (5)
2417
2418         Add postfix_transport.aug and associated test.
2419
2420         Add subversion lens and associated test.
2421
2422         Add networkmanager lens to tests and doc
2423
2424         Add networkmanager.aug and associated test file.
2425
2426 2012-04-09  Dominic Cleal  <dcleal@redhat.com>
2427
2428         Sudoers: allow quoted strings in Defaults parameters
2429         Fixes bug #263
2430
2431 2012-04-08  Dominic Cleal  <dcleal@redhat.com>
2432
2433         Debctrl: allow control extensions for Python packages
2434         Fixes bug #267
2435
2436         Debctrl: fixed package paragraph keywords, allow variables for version numbers in dependency lists, allow DM-Upload-Allowed keyword
2437         Fixes Debian bug #650887
2438
2439 2012-04-06  Dominic Cleal  <dcleal@redhat.com>
2440
2441         AUTHORS: updated from recent commits
2442
2443 2012-04-06  Jason Kincl  <jkincl@gmail.com>
2444
2445         Xymon: new lens for Xymon config files
2446         Fixes ticket #266
2447
2448 2012-04-06  Jim Meyering  <meyering@redhat.com>
2449
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:
2452
2453           syntax.c: In function 'compile_exp':
2454           syntax.c:1694:5: warning: 'v' may be used uninitialized in this \
2455           function [-Wmaybe-uninitialized]
2456
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.
2462
2463 2012-04-04  Duncan Mac-Vicar P  <dmacvicar@suse.de>
2464
2465         bootloader is also present in shellvars_list, exclude from shellvars.
2466
2467 2012-04-01  Dominic Cleal  <dcleal@redhat.com>
2468
2469         Sudoers: allow "!" as a type of Defaults entry
2470         Fixes Debian bug #650079
2471
2472         Modprobe: support softdep command
2473         Fixes Debian bug #641813
2474
2475 2012-03-29  Dominic Cleal  <dcleal@redhat.com>
2476
2477         * src/augrun.c (nexttoken): support \t and \n in aug_srun tokens
2478         Fixes bug #265
2479
2480 2012-03-23  Raphaël Pinson  <raphink@gmail.com>
2481
2482         Add netmask to hosts_access.aug
2483
2484 2012-03-18  Dominic Cleal  <dcleal@redhat.com>
2485
2486         Shellvars: add systemd's /etc/os-release file
2487
2488         Systemd: new lens to parse systemd unit files
2489
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
2491         Fixes ticket #264
2492
2493 2012-03-17  Dominic Cleal  <dcleal@redhat.com>
2494
2495         Qpid: new lens to read Apache Qpid daemon/client configs
2496         Contributed by Andrew Replogle.
2497
2498 2012-03-12  David Lutterkort  <lutter@redhat.com>
2499
2500         Make sure reloading discards changes after save with mode 'newfile'
2501
2502 2012-03-10  Dominic Cleal  <dcleal@redhat.com>
2503
2504         Util: add *.bak and *.old to stdexcl, to match files in /etc/sysconfig
2505
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
2511
2512         Shellvars: exclude non-shell files in tests/root/etc/sysconfig
2513
2514         Shellvars: add /etc/selinux/config
2515
2516 2012-03-06  Dominic Cleal  <dcleal@redhat.com>
2517
2518         Shellvars: include /etc/{default,sysconfig}/* and list exceptions instead
2519
2520 2012-03-03  Tim Mooney  <Tim.Mooney@ndsu.edu>
2521
2522         src/augtool.c: rename echo to echo_commands to fix differing types reported with Solaris linker
2523         Fixes ticket #262
2524
2525 2012-02-24  Dominic Cleal  <dcleal@redhat.com>
2526
2527         Up2date: change tree to distinguish between empty values and empty lists
2528
2529         Up2date: change tree to fix ambiguity during put, remove list of known config options and separation of possible values
2530
2531 2012-02-22  Dominic Cleal  <dcleal@redhat.com>
2532
2533         Protocols: change tree to support protocols named "a/n" and "tp++"
2534
2535         Shellvars: remove non-shell files, up2date now has a lens, move updatedb.conf to Simplevars
2536         Fonts: exclude README
2537
2538         Sep: add semicolon
2539
2540         Ntp: allow deprecated 'authenticate' setting
2541
2542 2012-02-21  Raphaël Pinson  <raphink@gmail.com>
2543
2544         Add up2date.aug and associated test file
2545
2546 2012-02-17  Raphaël Pinson  <raphink@gmail.com>
2547
2548         Support \r in httpd.aug
2549
2550         Support \r in comments in util.aug
2551
2552         Support \r\n in xml.aug
2553
2554         Do not allow \r in comment_or_eol
2555
2556         Add Util.doseol
2557
2558 2012-02-13  David Lutterkort  <lutter@redhat.com>
2559
2560         * src/transform.c (clone_file): do not leak from_fp
2561
2562 2012-02-13  Raphaël Pinson  <raphink@gmail.com>
2563
2564         Allow commands without full path if they begin with a lowcase letter in sudoers.aug
2565
2566         Allow = in commands in sudoers.aug (but force ! or / as first character if not an alias)
2567
2568         Use Build.opt_list in sudoers.aug
2569
2570 2012-02-13  Dominic Cleal  <dcleal@redhat.com>
2571
2572         Shellvars: add BSD's /etc/rc.conf
2573         Fixes ticket #255
2574
2575 2012-02-12  Dominic Cleal  <dcleal@redhat.com>
2576
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
2582
2583         Passwd: allow asterisk in password field
2584         Fixes ticket #255
2585
2586         Pam: exclude /etc/pam.d/README
2587         Fixes ticket #255
2588
2589 2012-02-10  Raphaël Pinson  <raphink@gmail.com>
2590
2591         Simplify Sudoers.sto_to_com_user to improve performance. Use more standard constructs.
2592
2593         Add continued lines to rx.aug and sep.aug
2594
2595 2012-02-09  Raphaël Pinson  <raphink@gmail.com>
2596
2597         Improve grub.aug's performances slightly
2598
2599         Improve keepalived.aug: cut typechecking time and resident size by 2.
2600
2601         Use Cron.shellvar in anacron.aug
2602
2603         Simplify Cron.key_re to improve typechecking of cron.aug
2604
2605         Allow # and ; in quoted values in inifile.aug (Fix ticket #243)
2606
2607 2012-02-08  Terence Haddock  <thaddock@tripi.com>
2608
2609         * lenses/tests/test_iptables.aug: test that we accept blank lines
2610
2611 2012-02-08  Francis Giraldeau  <francis.giraldeau@gmail.com>
2612
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.
2619
2620 2012-02-08  Duncan Mac-Vicar P  <dmacvicar@suse.de>
2621
2622         Shellvars: autoload some SuSe and RHN specific files
2623
2624 2012-02-07  David Lutterkort  <lutter@redhat.com>
2625
2626         Add very simplistic leak test
2627
2628         Fix some memory leaks
2629           * src/augeas.c (tree_from_transform): do not do unneeded strdups which
2630             lead to leaks
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
2635
2636 2012-02-07  Raphaël Pinson  <raphink@gmail.com>
2637
2638         Fix test-save by allowing (empty | comment)* in yum.aug.
2639
2640 2012-02-07  Dominic Cleal  <dcleal@redhat.com>
2641
2642         CronAllow: remove accompanying test, moved into Simplelines test earlier
2643
2644 2012-02-06  David Lutterkort  <lutter@redhat.com>
2645
2646         * src/transform.c (transform_save): different errors for parse and put failure
2647
2648 2012-02-06  David Lutterkort  <lutter@redhat.com>
2649
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
2653         (6GB memory)
2654
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.
2657
2658 2012-02-06  Raphaël Pinson  <raphink@gmail.com>
2659
2660         Disable recursive mode in graphviz.aug since it fails in the put direction.
2661
2662         Pass Util.empty with entry in Build.block_generic. Fix ambiguity with Util.empty in graphviz.aug.
2663
2664 2012-02-03  Raphaël Pinson  <raphink@gmail.com>
2665
2666         graphviz.aug: space is optional before options
2667
2668         graphviz.aug: names can be empty
2669
2670         Support crazy example in graphviz.aug
2671
2672         Add a simple graphviz.aug and associated test
2673
2674         Use Build.block_newlines in keepalived.aug
2675
2676         Build.block_newlines takes a comment parameter, newline is optional
2677
2678         Add variables for default delimiters and regexps in build.aug
2679
2680 2012-02-02  David Lutterkort  <lutter@redhat.com>
2681
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.
2686
2687         Fixes bug #252
2688
2689 2012-02-02  Raphaël Pinson  <raphink@gmail.com>
2690
2691         Improve logrotate, use Build, Rx, Sep
2692
2693         Add lbracket and rbracket to sep.aug
2694
2695         Add tests for build.aug
2696
2697         Add Build.block_newlines and use it in xinetd.aug
2698
2699         Rewrite xinetd.aug with Build, Sep, Rx
2700
2701         Allow to set lbracket_re and rbracket_re in Build.block_generic
2702
2703         Add Util.delim and use it in Sep.space_equal
2704
2705         Add Build.block_setdefault
2706
2707         Add default_lbracket and default_rbracket to Build.block_generic
2708
2709         Add blocks to build.aug, add comment_noindent to util.aug Add test_build.aug
2710
2711 2012-02-01  Raphaël Pinson  <raphink@gmail.com>
2712
2713         Support dollar assignment ($(bar)) in shellvars.aug
2714
2715         Parse functions in shellvars.aug
2716
2717         Shellvars.aug allows multiple elif statements
2718
2719         Add test_fonts.aug
2720
2721 2012-01-31  Dominic Cleal  <dcleal@redhat.com>
2722
2723         CronAllow: remove lens, add files to the Simplelines lens
2724
2725 2012-01-31  Raphaël Pinson  <raphink@gmail.com>
2726
2727         Add fonts.aug
2728
2729         Add ldso.aug and test
2730
2731         Fix author
2732
2733         Add /etc/sysctl.d to sysctl.aug, improve lens and add it to docs.
2734
2735         Add protocols.aug and associated test
2736
2737         Add /etc/wgetrc to simplevars.aug
2738
2739         Add simplelines.aug and test
2740
2741         Add simplevars.aug and associated test
2742
2743         Add inputrc.aug and associated test
2744
2745         Add anacron.aug and associated test
2746
2747         cowpoke.conf
2748
2749 2012-01-30  Raphaël Pinson  <raphink@gmail.com>
2750
2751         Ignore allow.pamlist from pam.aug
2752
2753         Add a few files to shellvars.aug
2754
2755         Add fuse.aug and associated test
2756
2757 2012-01-27  Dominic Cleal  <dcleal@redhat.com>
2758
2759         Vfstab: new lens for /etc/vfstab config on Solaris
2760
2761 2012-01-22  Dominic Cleal  <dcleal@redhat.com>
2762
2763         Automounter: exclude /etc/auto_master for Solaris, small tidyup
2764
2765         Automounter: exclude /etc/auto.master
2766
2767         Automaster: change to lowercase for consistency with Automounter
2768
2769         Automounter: new lens to parse automounter maps (/etc/auto.*)
2770
2771 2012-01-21  Dominic Cleal  <dcleal@redhat.com>
2772
2773         AutoMaster: new lens to parse autofs auto.master files
2774
2775         CronAllow: new lens to parse both cron/at allow/deny files
2776         Cron: exclude cron allow/deny files
2777
2778         Nsswitch: remove long list of databases, match by regexp
2779
2780         PamConf: new lens to parse /etc/pam.conf with the additional service field
2781
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
2784
2785         Networks: handle multiple missing network octets, fix sequencing of aliases
2786
2787         Nsswitch: add extra databases used on Solaris
2788
2789         Shells: permit same-line comments
2790
2791 2012-01-20  Dominic Cleal  <dcleal@redhat.com>
2792
2793         Netmasks: new lens for parsing /etc/inet/netmasks on Solaris
2794
2795 2012-01-19  Travis Groth  <tgroth@gmail.com>
2796
2797         Nsswitch: add passwd_compat, group_compat and shadow_compat GNU extensions
2798
2799 2012-01-18  Raphaël Pinson  <raphink@gmail.com>
2800
2801         Add channels.aug and associated test.
2802
2803 2012-01-14  Dominic Cleal  <dcleal@redhat.com>
2804
2805         Grub: parse "password --encrypted" properly, add tests for file subnode
2806         Fixes ticket #250
2807
2808 2012-01-11  Francis Giraldeau  <francis.giraldeau@gmail.com>
2809
2810         Fix fatest linking with libfa
2811         fatest requires libfa symbols which are not exported by libaugeas library.
2812
2813 2012-01-09  Lubomir Rintel  <lubo.rintel@gooddata.com>
2814
2815         Correctly parse empty object and arrays in JSON
2816         Add a test case.
2817         Fix from David Lutterkort <lutter@redhat.com>.
2818
2819         https://fedorahosted.org/augeas/ticket/248
2820
2821 2012-01-09  Lubomir Rintel  <lubo.rintel@gooddata.com>
2822
2823         Allow JSON number literals to be followed by whitespace
2824         Add a test case.
2825
2826         Fixes https://fedorahosted.org/augeas/ticket/247
2827
2828 2012-01-09  David Lutterkort  <lutter@redhat.com>
2829
2830         * build/aux/move-if-change: refresh with latest from gnulib
2831         Taken from gnulib commit 1602f0af
2832
2833 2012-01-02  Dominic Cleal  <dcleal@redhat.com>
2834
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
2836         Fixes ticket #241
2837
2838 2011-12-31  Dominic Cleal  <dcleal@redhat.com>
2839
2840         * tests/test-augtool.sh: fix broken gsed check
2841
2842 2011-12-30  Dominic Cleal  <dcleal@redhat.com>
2843
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
2847           is required)
2848         * tests/test-load.c: don't use GNU sed in-place extension
2849         * tests/test-preserve.sh: handle Solaris `ls -il` output
2850
2851         * bootstrap: add strchrnul gnulib module (for Solaris)
2852
2853 2011-12-24  Jim Meyering  <meyering@redhat.com>
2854
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.
2859
2860 2011-12-23  Francis Giraldeau  <francis.giraldeau@gmail.com>
2861
2862         fix fatest linking
2863
2864 2011-12-19  Raphaël Pinson  <raphink@gmail.com>
2865
2866         Rebase yum.aug on inifile.aug, support comments (except in lists) Fix ticket #217
2867
2868         Add @return to shellvars.aug
2869
2870 2011-12-19  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
2871
2872         Create lens and tests for sssd.conf heavily based on mysql and php lenses.
2873
2874 2011-12-18  Raphaël Pinson  <raphink@gmail.com>
2875
2876         aliases.aug: commands can be fully enclosed in quotes (Fix ticket #229)
2877
2878 2011-12-18  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
2879
2880         Add in single-request-reopen into lens and tests.
2881
2882 2011-12-16  Michael Chapman  <mike@very.puzzling.org>
2883
2884         Add missing argument to escape()
2885         Fixes ticket #242.
2886
2887 2011-12-10  Dominic Cleal  <dcleal@redhat.com>
2888
2889         * src/augeas.c (tree_root_ctx): create context path if it doesn't exist
2890
2891 2011-12-09  Raphaël Pinson  <raphink@gmail.com>
2892
2893         Add libxml2-devel to requirements in HACKING
2894
2895 2011-12-08  Raphaël Pinson  <raphink@gmail.com>
2896
2897         Debian-based distributions use /etc/mdadm/mdadm.conf
2898
2899 2011-12-05  Raphaël Pinson  <raphink@gmail.com>
2900
2901         Support include() in phpvars.aug
2902
2903         Add unit test for bug #239
2904
2905         In aug_to_xml: do not replace pathin with '/*' unless the length is 0 or pathin is '/' (Fix ticket #239)
2906
2907 2011-12-03  Richard W.M. Jones  <rjones@redhat.com>
2908
2909         pkg-config: Augeas requires libxml2.
2910
2911 2011-12-02  David Lutterkort  <lutter@redhat.com>
2912
2913         Version 0.10.0
2914
2915 2011-12-02  Dominic Cleal  <dcleal@redhat.com>
2916
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
2922
2923           * src/augrun.c: implement escape sequences
2924           * tests/run.tests: add covering tests
2925
2926 2011-12-02  Raphaël Pinson  <raphink@gmail.com>
2927
2928         Add approx.aug and test to Menu.txt
2929
2930         Document approx.aug
2931
2932         Fix nocommand as nocomma in test_aliases.aug
2933
2934         Add documentation to test_aliases.aug
2935
2936 2011-12-01  David Lutterkort  <lutter@redhat.com>
2937
2938         * src/augtool.c (print_aug_error): print newline after error details
2939
2940         augtool: rename 'print-xml' to 'dump-xml'
2941         That way, 'p' tab-completes to print as before.
2942
2943         * src/augeas.c (tree_from_transform): handle alloc failure better
2944
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
2948
2949         * src/augeas.c (aug_init): pull logic to set up loadpath into separate function
2950
2951         * src/augeas.c (init_root): properly report out-of-memory
2952
2953         * tests/test-api.c (testToXml): swap expected/actual values in assertions
2954
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.
2957
2958 2011-12-01  David Lutterkort  <lutter@redhat.com>
2959
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.
2964
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.
2968
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
2974
2975 2011-12-01  David Lutterkort  <lutter@redhat.com>
2976
2977         Update documentation for augtool/augrun and man page
2978
2979         Adjust more copyright notices
2980
2981         Fstab: allow ',' in file names
2982         Fixes BZ https://bugzilla.redhat.com/show_bug.cgi?id=751342
2983
2984         * man/augtool.pod: update copyright years, regenerate
2985
2986 2011-12-01  Raphaël Pinson  <raphink@gmail.com>
2987
2988         Sub::Install is not necessary to override functions in Augeas.pm
2989
2990         Fix white_spaces into with_spaces in test_faidiskconfig.aug
2991
2992         Add documentation to test_fai_diskconfig.aug
2993
2994         Extend copyright to 2011 in src/*
2995
2996         Add test_xml.aug to the lens Menu.txt
2997
2998         Improve documentation in test_xml.aug
2999
3000         Add test_keepalived.aug doc to lens Menu.txt and keepaved.aug
3001
3002         Add documentation to test_keepalived.aug
3003
3004         Improve documentation for sep.aug
3005
3006         Improve documentation for rx.aug
3007
3008 2011-12-01  Dominic Cleal  <dcleal@redhat.com>
3009
3010         src/augrun.c: fix parsing of commands with trailing whitespace tests/test-run.c: use : to write tests with trailing whitespace
3011
3012 2011-12-01  Raphaël Pinson  <raphink@gmail.com>
3013
3014         Improve documentation for access.aug and test_access.aug
3015
3016         Fix examples note in inifile.aug
3017
3018         Add examples note to reprepro_uploaders.aug
3019
3020         Finalize doc for test_reprepro_uploaders.aug
3021
3022 2011-12-01  Dominic Cleal  <dcleal@redhat.com>
3023
3024         Fix path context with trailing slash or whitespace
3025
3026         Add tests from Puppet's Augeas provider, some commented out until fixed.
3027
3028 2011-12-01  Raphaël Pinson  <raphink@gmail.com>
3029
3030         Fix test_inifile.aug's typo
3031
3032         Add documentation to test_inifile.aug
3033
3034         Better integration of tests in NaturalDocs, verbatim code display in doc.
3035
3036 2011-11-30  Raphaël Pinson  <raphink@gmail.com>
3037
3038         Add unit tests for aug_to_xml
3039
3040         libaugeas must now be linked to libxml, too.
3041
3042 2011-11-30  Dominic Cleal  <dcleal@redhat.com>
3043
3044         * augeas.spec.in: add build req on libxml2-devel
3045
3046 2011-11-29  Raphaël Pinson  <raphink@gmail.com>
3047
3048         Add an Examples section to reprepro_uploaders.aug's header
3049
3050         ARG_CHECK errors when condition is met. Invert conditions in aug_to_xml.
3051
3052 2011-11-29  Francis Giraldeau  <francis.giraldeau@gmail.com>
3053
3054         Sudoers: add more parameter flags/options
3055         Fixes bug #143
3056
3057 2011-11-29  Raphaël Pinson  <raphink@gmail.com>
3058
3059         Add aug_to_xml to public API
3060
3061 2011-11-29  David Lutterkort  <lutter@redhat.com>
3062
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.
3066
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
3070
3071 2011-11-29  Raphaël Pinson  <raphink@gmail.com>
3072
3073         Improve doc in test_reprepro_uploaders.aug and update Menu.txt for lenses.
3074
3075         Fix parsing of tests in Augeas.pm, add a test doc to test_reprepro.aug
3076
3077         Fix parsing of 'in[ \t\r\n]+let' in Augeas.pm
3078
3079 2011-11-29  David Lutterkort  <lutter@redhat.com>
3080
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.
3085
3086         Fixes bug #238
3087
3088 2011-11-29  David Lutterkort  <lutter@redhat.com>
3089
3090         * tests/cutest.c: run one test when CUTEST env var is set
3091
3092 2011-11-29  Raphaël Pinson  <raphink@gmail.com>
3093
3094         Add support for 'not' in reprepro_uploaders.aug
3095
3096         Improve CSS for NaturalDocs
3097
3098 2011-11-28  Dominic Cleal  <dcleal@redhat.com>
3099
3100         augtool: change readline tab completion to be context-aware
3101
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".
3106
3107 2011-11-28  David Lutterkort  <lutter@redhat.com>
3108
3109         * src/transform.c (load_file): fix segfault when storing span in NULL tree
3110
3111         * src/syntax.c (print_tree): print something for a NULL tree
3112
3113 2011-11-28  Raphaël Pinson  <raphink@gmail.com>
3114
3115         Add header to shellvars.aug
3116
3117         Add Kdump and Ssh to Menu.txt
3118
3119         Fix NaturalDocs CSS a bit
3120
3121         Add a Tests and Examples group in naturaldocs
3122
3123         Improve documentation for reprepro_uploaders.aug
3124
3125         Add 'contain' subnodes to reprepro_uploaders.aug and improve documentation.
3126
3127         Simplify logical tree in reprepro_uploaders.aug
3128
3129         Improve parameter parsing in reprepro_uploaders.aug
3130
3131         Add reprepro.aug and associated test.
3132
3133         Fix small type in comment
3134
3135 2011-11-23  Raphaël Pinson  <raphink@gmail.com>
3136
3137         Add support for until and select loops in shellvars.aug
3138
3139         Add elif support to shellvars.aug
3140
3141 2011-11-22  Raphaël Pinson  <raphink@gmail.com>
3142
3143         Add big WARNING to aptconf.aug
3144
3145         Register modules.aug with naturaldocs
3146
3147 2011-11-22  Tom Limoncelli  <tal@whatexit.org>
3148
3149         Xendconfsxp: new lens and tests for Xen configuration
3150
3151 2011-11-22  David Lutterkort  <lutter@redhat.com>
3152
3153         * tests/Makefile.am (lens_tests): add missing tests
3154
3155 2011-11-22  Raphaël Pinson  <raphink@gmail.com>
3156
3157         Add modules.aug and associated test file (Fix ticket #236)
3158
3159         Add backuppchosts.aug and test (Fix ticket #233)
3160
3161         mdadm.aug: dev_device cannot match dev_partitions_re
3162
3163         Fix test_phpvars.aug as per using Util.empty_c_style
3164
3165         Clean wrong lines in modprobe.aug's header
3166
3167         Update tests and documentation for new lenses
3168
3169         Add desktop.aug and associated test.
3170
3171         Add aptconf.aug and associated test.
3172
3173         Use Util.empty_c_style in phpvars.aug and don't map empty comments in Util.comment_multiline
3174
3175         Add support for case in shellvars.aug
3176
3177         Add for and while loops to shellvars.aug
3178
3179         Adapt modules_conf.aug and test file to refect the changes in modprobe.aug
3180
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.
3182
3183 2011-11-21  Raphaël Pinson  <raphink@gmail.com>
3184
3185         Fix unpriviliged into unpriviliged in test_postfix_master.aug, too.
3186
3187         Add one-liner unit test for shellvars.aug
3188
3189         shellvars.aug: Refactor lens, add end-of-line comment support, if/then/else/fi conditionals, one-liners support
3190
3191         phpvars.aug: Add test for bash-style comment, improve eol comments, use generic_function in simple_function definition
3192
3193         Parse /etc/mailname with hostname.aug
3194
3195         Add hosts_access.aug to parse /etc/hosts.{allow,deny} and associated test.
3196
3197 2011-11-18  Raphaël Pinson  <raphink@gmail.com>
3198
3199         Double quotes are allowed in variable names in phpvars.aug
3200
3201         Refactor entries in phpvars.aug
3202
3203         PHP tags are case-insensitive in phpvars.aug
3204
3205         Add include_once() to phpvars.aug
3206
3207         Fix typo in postfix_master.aug (Fix ticket 234)
3208
3209         Allow empty lines at end of files in phpvars.aug
3210
3211         Better define() support in phpvars.aug
3212
3213         Support bash-style comments and define() functions in phpvars.aug
3214
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.
3216
3217         Cleanup phpvars.aug, rebase it on sep.aug and util.aug and prepare the way to support end-of-line comments
3218
3219         Fix comment_multiline and add a test file for util.aug
3220
3221         Spaces are not mandatory around = in phpvars.aug
3222
3223         Fix open_php and close_php tags in phpvars.aug (Fix ticket 232)
3224
3225 2011-11-17  Jim Meyering  <jim@meyering.net>
3226
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
3230             upon "goto done".
3231
3232 2011-11-17  David Lutterkort  <lutter@redhat.com>
3233
3234         * lenses/util.aug: do not set caml mode for Emacs
3235
3236         * lenses/rx.aug: delete trailing whitespace
3237
3238 2011-11-17  Raphaël Pinson  <raphink@gmail.com>
3239
3240         Parse pam.conf in pam.aug
3241
3242         Add hostname.aug
3243
3244         Add networks.aug lens
3245
3246         Add host_conf.aug lens
3247
3248         Add flag_line to build.aug
3249
3250         Add blkid.conf to shellvars.aug
3251
3252 2011-11-16  Raphaël Pinson  <raphink@gmail.com>
3253
3254         Add doc to grub.aug (ticket 33)
3255
3256         Support debug flag in keepalived.aug
3257
3258         Fix origin entries in aptpreferences.aug
3259
3260 2011-11-15  Dominic Cleal  <dcleal@redhat.com>
3261
3262         Resolv: Permit end-of-line comments
3263         Fixes ticket #223
3264
3265         Krb5: Allow a [pam] section for pam_krb5 (possibly deprecated)
3266         Fixes ticket #225
3267
3268 2011-11-15  Roman Rakus  <rrakus@redhat.com>
3269
3270         Kdump: new lens and tests
3271
3272 2011-11-15  Dominic Cleal  <dcleal@redhat.com>
3273
3274         aug_srun: add 'insert' and 'move' command aliases to 'ins' and 'mv'
3275
3276 2011-11-15  Michael Chapman  <mike@very.puzzling.org>
3277
3278         Dhcpd: slashes must be double-quoted
3279         In dhcpd.conf, tokens containing slashes must be double-quoted.
3280
3281         Fixes the following dhcpd error:
3282
3283           /etc/dhcpd.conf line 4: filename string expected.
3284           include /
3285                   ^
3286           Configuration file errors encountered -- exiting
3287
3288 2011-11-15  Michael Chapman  <mike@very.puzzling.org>
3289
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.
3294
3295         pam_access also allows group names to be optionally enclosed in
3296         parentheses to disambiguate them from user names.
3297
3298 2011-11-15  Michael Chapman  <mike@very.puzzling.org>
3299
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.
3303
3304         Dhcpd: add Red Hat's dhcpd.conf locations
3305         RHEL 5 uses /etc/dhcpd.conf.
3306         RHEL 6 uses /etc/dhcp/dhcpd.conf.
3307
3308 2011-11-15  David Lutterkort  <lutter@redhat.com>
3309
3310         Mdadm: use case-insensitive regexps
3311
3312 2011-11-15  David Lutterkort  <lutter@redhat.com>
3313
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
3317         alphabet.
3318
3319         totalize used to create transitions into the crash state that did
3320         transition on upper case letters, violating the convention.
3321
3322 2011-11-13  David Lutterkort  <lutter@redhat.com>
3323
3324         * src/builtin.c (regexp_match): new helper to test a regexp
3325
3326 2011-11-13  Matthew Booth  <mbooth@redhat.com>
3327
3328         Mdadm_conf: new lens for /etc/mdadm.conf
3329
3330 2011-11-13  David Lutterkort  <lutter@redhat.com>
3331
3332         * lenses/tests/test_iptables.aug: fix syntax error
3333
3334 2011-10-31  Raphaël Pinson  <raphink@gmail.com>
3335
3336         Allow digits in ipt_match keys (bug #224)
3337
3338 2011-10-18  David Lutterkort  <lutter@redhat.com>
3339
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.
3343
3344         * src/syntax.c (type_names): fix order of names
3345
3346 2011-10-17  Michael Chapman  <mike@very.puzzling.org>
3347
3348         Fix regular expression escaping
3349         This patch fixes:
3350
3351           /[\/]/
3352
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.
3355
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.
3360
3361 2011-10-17  David Lutterkort  <lutter@redhat.com>
3362
3363         Json: fix handling of whitespace
3364         We just gobble up whitespace after various expressions as part of the lens
3365         processing that expression.
3366
3367 2011-10-14  Raphaël Pinson  <raphink@gmail.com>
3368
3369         Spaces are allowed before colons in aliases.aug
3370
3371         Empty options are allowed in exports.aug
3372
3373         Entries outside Host statements are allowed (though not documented) in ssh.aug
3374
3375         Allow indentations in array_entry in ssh.aug
3376
3377         Small improvements to squid.aug. This lens is inconsistent and should probably be deeply reviewed, although that might break compatibility.
3378
3379         Not really shellvar entries in cron.aug, semi-colons are allowed for email addresses
3380
3381         Add schroot to tests and doc
3382
3383         Add schroot.aug lens
3384
3385 2011-10-13  Raphaël Pinson  <raphink@gmail.com>
3386
3387         Simplify rsyncd.aug and support indented anon entries and records.
3388
3389 2011-10-10  Raphaël Pinson  <raphink@gmail.com>
3390
3391         Small adjustments in postfix_master.aug
3392
3393 2011-10-10  Michael Chapman  <mike@very.puzzling.org>
3394
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
3399         expression:
3400
3401           /[\.-]/
3402
3403         matches any of the three characters backslash, dot or hyphen, when the
3404         lens author most likely wanted dot or hyphen only.
3405
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.
3409
3410 2011-10-10  Michael Chapman  <mike@very.puzzling.org>
3411
3412         FAI_DiskConfig: Fix invalid escape sequence \s
3413         It should be expanded to [ \n\t].
3414
3415 2011-10-10  Michael Chapman  <mike@very.puzzling.org>
3416
3417         Cron: Fix parsing of numeric fields
3418         In:
3419
3420           let num = /[0-9\*][0-9\/,-\*]*/
3421
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.
3425
3426 2011-10-10  Michael Chapman  <mike@very.puzzling.org>
3427
3428         Cgconfig: Fix parsing of group names
3429         In:
3430
3431           let id = /[a-zA-Z0-9_\-\/\.]+/
3432
3433         the hyphen was treated as a range, not a literal character.
3434
3435 2011-10-10  Raphaël Pinson  <raphink@gmail.com>
3436
3437         Revert badly applied series or patches.
3438         This reverts commit dc9ef16bc7a4cc45e4d66ea69b4bdf0038e816bb.
3439
3440 2011-10-10  Michael Chapman  <mike@very.puzzling.org>
3441
3442         Cgconfig: Fix parsing of group names
3443         In:
3444
3445           let id = /[a-zA-Z0-9_\-\/\.]+/
3446
3447         the hyphen was treated as a range, not a literal character.
3448
3449 2011-10-06  David Lutterkort  <lutter@redhat.com>
3450
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]'
3454
3455 2011-10-06  Raphaël Pinson  <raphink@gmail.com>
3456
3457         Fix cmd_span (ticket #220):
3458          - Retrieve option from tree before using it;
3459          - Invert conditions since we now use streqv.
3460
3461 2011-10-05  Raphaël Pinson  <raphink@gmail.com>
3462
3463         Replace sep_spc? with sep_opt_spc in bbhosts.aug
3464
3465 2011-10-05  Michael Chapman  <mike@very.puzzling.org>
3466
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.
3470
3471 2011-10-05  Raphaël Pinson  <raphink@gmail.com>
3472
3473         Support \!include in mysql.aug
3474
3475 2011-10-04  Raphaël Pinson  <raphink@gmail.com>
3476
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.
3478
3479 2011-10-03  Raphaël Pinson  <raphink@gmail.com>
3480
3481         Spaces are mandatory after # in bbhosts.aug
3482
3483 2011-10-01  Marc Fournier  <marc.fournier@camptocamp.com>
3484
3485         nrpe: fixed #218 - error caused by unused '=' in lens
3486
3487 2011-10-01  Dominic Cleal  <dcleal@redhat.com>
3488
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
3490         Fixes ticket #207
3491
3492 2011-09-12  Raphaël Pinson  <raphink@gmail.com>
3493
3494         Support more ranges in cron.aug
3495
3496         Flags also can be indented in mysql.aug
3497
3498 2011-09-09  Raphaël Pinson  <raphink@gmail.com>
3499
3500         Allow indented entries in php.aug
3501
3502         { can be followed by spaces in xinetd.aug
3503
3504         Allow indented entries in mysql.aug
3505
3506         Allow empty lines after includedir
3507
3508         includedir statements are not part of sections in mysql.aug
3509
3510 2011-09-07  Raphaël Pinson  <raphink@gmail.com>
3511
3512         Hooks without any lines are valid in logrotate.aug
3513
3514         Allow spaces after 'endscript' in logrotate.aug
3515
3516 2011-09-06  Raphaël Pinson  <raphink@gmail.com>
3517
3518         Various fixes in bbhosts.aug
3519
3520         Fix empty lines support in fai_diskconfig.aug
3521
3522 2011-09-05  Raphaël Pinson  <raphink@gmail.com>
3523
3524         Add functionalities, refactor volume by type of disk_config entry and add tests to fai_diskconfig.aug
3525
3526 2011-09-01  David Lutterkort  <lutter@redhat.com>
3527
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.
3532
3533 2011-09-01  Francis Giraldeau  <francis.giraldeau@gmail.com>
3534
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.
3538
3539 2011-08-31  Francis Giraldeau  <francis.giraldeau@gmail.com>
3540
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.
3545
3546 2011-08-31  Francis Giraldeau  <francis.giraldeau@gmail.com>
3547
3548         Adding ssh client lens
3549         This lens parses the client side configuration directives of ssh.
3550
3551         Thanks to Jiri Suchomel for this contribution.
3552
3553 2011-08-30  Raphaël Pinson  <raphink@gmail.com>
3554
3555         Add fai_diskconfig.aug and test
3556
3557         Allow semicolons in shellvars.aug, add non regression test
3558
3559 2011-08-21  Francis Giraldeau  <francis.giraldeau@gmail.com>
3560
3561         New stunnel lens
3562         Stunnel provides SSL tunnel for daemons. The configuration is based on the ini
3563         file syntax.
3564
3565         Thanks to Oliver Beattie that contributed this lens.
3566
3567 2011-08-16  David Lutterkort  <lutter@redhat.com>
3568
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)*
3572
3573         This fixes test breakage introduced by commit 4840c7ab
3574
3575 2011-08-11  Francis Giraldeau  <francis.giraldeau@gmail.com>
3576
3577         Proper test for eolwhite space handling
3578         By reformating eol of pupperfileserver test, it's possible to make both git and
3579         unit test working.
3580
3581 2011-08-11  Francis Giraldeau  <francis.giraldeau@gmail.com>
3582
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.
3586
3587         remote: lenses/tests/test_puppetfileserver.aug:20: trailing whitespace.
3588         remote: +allow *
3589         remote: error: hook declined to update refs/heads/master
3590          ! [remote rejected] master -> master (hook declined)
3591
3592         Removing white space for now.
3593
3594 2011-08-11  Dominic Cleal  <dcleal@redhat.com>
3595
3596         PuppetFileserver: support same-line comments and trailing whitespace (2.7.3rc1)
3597         Fixes ticket #214
3598
3599 2011-08-10  David Lutterkort  <lutter@redhat.com>
3600
3601         Spacevars: rename toplevel lens to lns
3602         Leave simple_lns as an alias for backwards compatibility
3603
3604 2011-08-08  David Lutterkort  <lutter@redhat.com>
3605
3606         * examples/fadot.c: accept -h option to print usage
3607
3608 2011-07-25  David Lutterkort  <lutter@redhat.com>
3609
3610         .gitignore: ignore tests/test-run
3611
3612         Version 0.9.0
3613
3614         Minor fixes to make distcheck pass
3615
3616 2011-07-22  David Lutterkort  <lutter@redhat.com>
3617
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]
3623
3624         Of course, this is a heinous hack.
3625
3626 2011-07-22  David Lutterkort  <lutter@redhat.com>
3627
3628         Migrate tests from test-mv.sh into run.tests
3629
3630         aug_srun: new API call
3631
3632         aug_mv: report EMVDESC if move would move a node into its descendant
3633
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
3638
3639         Fix some of the errors reported by coverity
3640         These are some of the errors by running coverity on augeas 0.8.0
3641
3642 2011-07-18  Mathieu Arnold  <mat@FreeBSD.org>
3643
3644         Aliases: allow spaces and commas in aliases; add docs
3645
3646 2011-07-11  Dominic Cleal  <dcleal@redhat.com>
3647
3648         Sudoers: support users:groups format in a Runas_Spec line for sudo -g
3649         Fixes ticket #211
3650
3651 2011-07-11  David Lutterkort  <lutter@redhat.com>
3652
3653         * tests/test-bug-1.sh: fix test
3654         The test caused an augtool failure for all the wrong reasons
3655
3656 2011-07-06  David Lutterkort  <lutter@redhat.com>
3657
3658         Php: include files from Zend community edition
3659         Fixes ticket #210
3660
3661 2011-07-06  Craig Dunn  <craig@craigdunn.org>
3662
3663         Properties: new lens for Java properties files
3664         Fixes ticket #194
3665
3666 2011-07-01  Dominic Cleal  <dcleal@redhat.com>
3667
3668         Grub: allow "bootfs" Solaris/ZFS extension for dataset name
3669         Fixes ticket #201
3670
3671 2011-07-01  John Morrissey  <jwm@horde.net>
3672
3673         Spacevars: add two more filse to parse by default
3674         Fixes ticket #202
3675
3676 2011-07-01  David Lutterkort  <lutter@redhat.com>
3677
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.
3682
3683           * src/regexp.h: (make_regexp_unescape): new function; (make_regexp_dup)
3684             removed
3685           * src/regexp.c: (make_regexp_unescape): new function; (make_regexp_dup)
3686             removed
3687           * src/pathx.c: (nodeset_as_regexp, func_regexp_or_glob): use
3688                           make_regexp_unescape
3689
3690 2011-06-29  Dominic Cleal  <dcleal@redhat.com>
3691
3692         Sudoers: add CSW paths, /opt/csw/etc and /etc/opt/csw/sudoers
3693
3694         Sudoers: allow same-line comments
3695         Fixes ticket #206
3696
3697 2011-06-29  Dominic Cleal  <dcleal@redhat.com>
3698
3699         Util: allow comment_or_eol to match empty comments containing only whitespace
3700         Services: add test for line with a whitespace-only comment
3701
3702         Fixes ticket #205
3703
3704 2011-06-29  David Lutterkort  <lutter@redhat.com>
3705
3706         * tests/test-bug-1.sh: fix broken logrotate file
3707
3708 2011-06-08  Raphaël Pinson  <raphink@gmail.com>
3709
3710         Implement multiline values in inifile.aug
3711
3712 2011-05-14  David Lutterkort  <lutter@redhat.com>
3713
3714         * src/augeas.c (static_nodes): add list of pathx functions to /augeas/version
3715
3716 2011-05-12  David Lutterkort  <lutter@redhat.com>
3717
3718         Grub: allow kernel path to start with a device like (hd0,0)
3719         Fixes ticket #199
3720
3721         * examples/fadot.c: include <config.h>, link against GNULIB
3722
3723 2011-05-10  David Lutterkort  <lutter@redhat.com>
3724
3725         tests: expand what the valgrind target runs
3726
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
3729
3730         * src/pathx.c (ns_from_locpath, parse_relative_location_path): free memory on error
3731
3732         * tests/test-xpath.c: allow running individual tests from the command line
3733
3734         * src/pathx.c: fix leaking of function arguments
3735
3736         path expressions: allow concatenating strings and regexps with '+'
3737
3738         path expressions: add operator '!~'
3739
3740         path expressions: add 'glob' function that constructs regexps from globs
3741
3742         regexp: add make_regexp_from_glob to convert globs to regexps
3743
3744         regexp: add convenience function make_regexp_dup
3745
3746         path expressions: allow passing a nodeset to function regexp
3747
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.
3752
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
3757
3758         * src/augtool: store history in ~/.augeas/history
3759
3760 2011-05-04  David Lutterkort  <lutter@redhat.com>
3761
3762         Xorg: accept InputClass section
3763
3764 2011-05-03  David Lutterkort  <lutter@redhat.com>
3765
3766         Xorg: autoload from /etc/X11/xorg.conf.d/*.conf
3767         Based on patch by manugupta
3768
3769         Fixes bug #197
3770
3771 2011-04-29  David Lutterkort  <lutter@redhat.com>
3772
3773         test root: add a few more files
3774
3775 2011-04-29  David Lutterkort  <lutter@redhat.com>
3776
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.
3780
3781         Fixes BZ 700608
3782
3783 2011-04-15  David Lutterkort  <lutter@redhat.com>
3784
3785         Version 0.8.1
3786
3787         Iptables: handle --tcp-flags
3788         Fixes bug #157
3789
3790 2011-04-14  David Lutterkort  <lutter@redhat.com>
3791
3792         * src/augtool.c: respect autosave flag when executing a single command
3793         Fixes bug #193
3794
3795 2011-04-13  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
3796
3797         Grub: support the 'device' directive for UEFI boot
3798         Fixes bug #189
3799
3800 2011-04-13  David Lutterkort  <lutter@redhat.com>
3801
3802         Access: support the format @netgroup@@nisdomain
3803         Fixes bug #190
3804
3805         * lenses/tests/test_fstab.aug: test that we parse SELinux context correctly
3806
3807 2011-03-25  David Lutterkort  <lutter@redhat.com>
3808
3809         Httpd: remove duplicate inclusion of /etc/httpd/conf/httpd.conf
3810
3811 2011-03-25  Bill Pemberton  <wfp5p@virginia.edu>
3812
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
3817
3818         Enable the test for continuation lines in test_httpd.aug
3819
3820 2011-03-25  Bill Pemberton  <wfp5p@virginia.edu>
3821
3822         Add /etc/httpd/conf/httpd.conf to the filter list for httpd.aug
3823
3824         Allow blank and comment lines throughout config file in iptables
3825
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.
3829
3830 2011-03-23  David Lutterkort  <lutter@redhat.com>
3831
3832         Mysql: include /etc/my.cnf used on Fedora/RHEL
3833         Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688053
3834
3835         Httpd: include /etc/httpd/conf/httpd.conf used on Fedora/RHEL
3836         Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688149
3837
3838 2011-03-22  David Lutterkort  <lutter@redhat.com>
3839
3840         * src/lexer.l: fix a few compilation warnings
3841
3842         Eliminate global variable 'comment_depth' in lexer
3843
3844 2011-03-19  Francis Giraldeau  <francis.giraldeau@gmail.com>
3845
3846         Add support for configfile and background in grub
3847         Test for the new configuration directives are also provided.
3848
3849         Thanks to Onur Küçük for the patch.
3850
3851 2011-03-18  Raphaël Pinson  <raphink@gmail.com>
3852
3853         #include is also valid in sudoers.aug
3854
3855         Add support for #includedir in sudoers.aug and test (ticket #188)
3856
3857 2011-03-17  Francis Giraldeau  <francis.giraldeau@gmail.com>
3858
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.
3862
3863         Fix bug #187
3864
3865         Thanks to thefoxbox for the enhancement
3866
3867 2011-03-17  Francis Giraldeau  <francis.giraldeau@gmail.com>
3868
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.
3874
3875         Fix bug #186
3876
3877         Thanks to spamaps for the help to resolve this issue.
3878
3879 2011-03-16  David Lutterkort  <lutter@redhat.com>
3880
3881         * src/lexer.l (augl_init_lexer): really close the input file on error
3882
3883 2011-03-16  Richard W.M. Jones  <rjones@redhat.com>
3884
3885         Add FreeBSD /etc/rc.conf file to Shellvars lens.
3886
3887 2011-03-15  David Lutterkort  <lutter@redhat.com>
3888
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
3891             alternatives match
3892           * lenses/tests/test_shellvars.aug: add a test to trigger that code path
3893             in create_union
3894
3895         Fixes bug #183
3896
3897 2011-03-10  David Lutterkort  <lutter@redhat.com>
3898
3899         * src/augeas.c (aug_init): check return value of argz_* for ENOMEM
3900
3901 2011-03-10  Matthew Booth  <mbooth@redhat.com>
3902
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
3906
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.
3910
3911 2011-03-08  David Lutterkort  <lutter@redhat.com>
3912
3913         Be more defensive about closing input files for the lexer
3914
3915 2011-03-04  David Lutterkort  <lutter@redhat.com>
3916
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
3921
3922 2011-03-03  Matthew Booth  <mbooth@redhat.com>
3923
3924         Use getopt-gnu from gnulib for AIX support
3925
3926         Update to gnulib commit c2090a8
3927         Required for updated getopt-gnu license.
3928
3929 2011-03-03  Raphaël Pinson  <raphink@gmail.com>
3930
3931         Remove trailing spaces in lenses/tests/test_nagiosobjects.aug
3932
3933         Add nagiosobjects.aug based on Sebastien Aperghis' work.
3934
3935         Remove trailing spaces in nagioscfg.aug
3936
3937         Improve nagioscfg.aug as per Sebastien Aperghis' work.
3938
3939 2011-03-02  Raphaël Pinson  <raphink@gmail.com>
3940
3941         Fix single quotes support in httpd.aug.
3942
3943         Support single quotes in httpd.aug. Add unit test for it in test_httpd.aug.
3944
3945 2011-03-02  David Lutterkort  <lutter@redhat.com>
3946
3947         * tests/fatest.c (testManualAmbig): don't use '$' in variable names
3948         Breaks on, at least, AIX
3949
3950 2011-03-02  Raphaël Pinson  <raphink@gmail.com>
3951
3952         Add Sep.equal, used in nrpe.aug
3953
3954         Changes in nrpe.aug Remove wrong ^ in comment regex Use Util.comment_generic Use generic modules Improve NaturalDocs documentation
3955
3956 2011-02-23  David Lutterkort  <lutter@redhat.com>
3957
3958         Version 0.8.0
3959
3960 2011-02-23  David Lutterkort  <lutter@redhat.com>
3961
3962         Fix compile errors found by gcc 4.6.0
3963         There were several places that caused the new 'variable assigned but not
3964         used' warning.
3965
3966         The struct lens also contained the member jmt twice; it is now only
3967         available for L_REC lenses.
3968
3969 2011-02-23  David Lutterkort  <lutter@redhat.com>
3970
3971         * src/info.h: include stdlib so we can use uint
3972
3973         * tests/Makefile.am: distribute the test data in test-augtool/
3974
3975 2011-02-23  Dominic Cleal  <dcleal@redhat.com>
3976
3977         Split Solaris multiboot argument for the kernel path into @path node (ticket #158)
3978
3979 2011-02-22  Francis Giraldeau  <francis.giraldeau@gmail.com>
3980
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.
3989
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
3992         tree.
3993
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
4005
4006 2011-02-22  Raphaël Pinson  <raphink@gmail.com>
4007
4008         Add short options for --nostdinc, --noload and --noautoload Update manpage and pod accordingly
4009
4010         Distribute bcprules.sty and xpath.txt
4011
4012 2011-02-19  Raphaël Pinson  <raphink@gmail.com>
4013
4014         Add indented_title_label in inifile.aug Use indented_title_label in mysql.aug Adjust test for mysql.aug accordingly
4015
4016 2011-02-18  Raphaël Pinson  <raphink@gmail.com>
4017
4018         Allow indentation for "iface" entries in interfaces.aug (Fix ticket #182) Add unit test for "iface" indentation
4019
4020 2011-02-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
4021
4022         Minor code format cleanup
4023           * Cut long lines to 80 chars
4024           * Indentation fix
4025
4026         Fix memory leak with recursive square lens
4027
4028 2011-02-16  Raphaël Pinson  <raphink@gmail.com>
4029
4030         Remove trailing whitespaces in util.aug
4031
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
4033
4034 2011-02-15  Francis Giraldeau  <francis.giraldeau@gmail.com>
4035
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.
4042
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.
4046
4047         Closes trac ticket #180.
4048
4049 2011-02-15  Raphaël Pinson  <raphink@gmail.com>
4050
4051         Improve vim syntax file
4052
4053 2011-02-14  David Lutterkort  <lutter@redhat.com>
4054
4055         man pages: update man page for augtool
4056
4057 2011-02-14  Raphaël Pinson  <raphink@gmail.com>
4058
4059         augtool: add --interactive option
4060         This option runs an interactive shell after evaluating STDIN or an explicit
4061         inputfile
4062
4063 2011-02-14  David Lutterkort  <lutter@redhat.com>
4064
4065         Mysql: change default comment delimiter from ';' to '#'
4066         Fixes bug #181 reported by devzero
4067
4068 2011-02-06  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
4069
4070         Add Dhcpd lens
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
4075
4076         Replace seq by label in option list
4077
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.
4081
4082 2011-01-28  Raphaël Pinson  <raphink@gmail.com>
4083
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
4089
4090 2011-01-25  Francis Giraldeau  <francis.giraldeau@gmail.com>
4091
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
4097
4098 2011-01-25  Francis Giraldeau  <francis.giraldeau@gmail.com>
4099
4100         Add Httpd lens
4101         The Httpd lens parses Apache Web server configuration according to the manual.
4102
4103           * Generic sections with square lens
4104           * Generic directives
4105           * Arguments of sections and directives are handled as list
4106
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.
4110
4111 2011-01-25  David Lutterkort  <lutter@redhat.com>
4112
4113         * src/pathx.c (store_error): make sure pos_str is always NUL terminated
4114         Fixes bug #178
4115
4116 2011-01-19  Fred  <frederic.lespez@free.fr>
4117
4118         PuppetFileserver: new lens for Puppet's fileserver.conf
4119
4120 2011-01-19  David Lutterkort  <lutter@redhat.com>
4121
4122         * man/augtool.pod: fix typos
4123         Fixes https://bugzilla.redhat.com/show_bug.cgi?id=628502
4124
4125 2011-01-14  David Lutterkort  <lutter@redhat.com>
4126
4127         Allow compiling with NDEBUG defined
4128           * src/errcode.h (ensure0): do not mention 'error' label when NDEBUG is
4129             defined
4130           * src/pathx.c (coerce_to_bool, eval_pred): make sure we return something
4131             when assert(0) is compiled away
4132
4133 2011-01-13  Francis Giraldeau  <francis.giraldeau@gmail.com>
4134
4135         Fix a small bashism from test script
4136
4137 2011-01-13  David Lutterkort  <lutter@redhat.com>
4138
4139         Xorg: "position" in "screen" section is optional; allow "Extensions" section
4140         Patch by omzzk
4141
4142         Fixes bug #175
4143
4144 2011-01-11  David Lutterkort  <lutter@redhat.com>
4145
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.
4149
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
4154
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.
4159
4160 2011-01-11  David Lutterkort  <lutter@redhat.com>
4161
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
4164         reliable fashion
4165
4166         * src/pathx.c (store_error): never append to an uninitialized string
4167
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
4171         is a tty)
4172
4173 2011-01-11  Fred  <frederic.lespez@free.fr>
4174
4175         Crypttab: new lens for /etc/crypttab
4176
4177 2011-01-11  Raphaël Pinson  <raphink@gmail.com>
4178
4179         In autosave mode, print "save" when in echo or interactive mode. Remove comma at the end of enum list.
4180
4181 2011-01-10  Raphaël Pinson  <raphink@gmail.com>
4182
4183         Refactor augtool.c to use only readline
4184
4185 2011-01-10  Raphaël Pinson  <raphink@gmail.com>
4186
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
4192
4193         Fixes ticket #172
4194
4195 2011-01-07  David Lutterkort  <lutter@redhat.com>
4196
4197         bootstrap: add sys_wait module
4198         Fixes bug #164
4199
4200 2011-01-07  Dominic Cleal  <dcleal@redhat.com>
4201
4202         Add support for Solaris multiboot kernels with slashes in the first kernel argument (Fix ticket #158)
4203
4204         Allow kernel$ and module$ extensions to GRUB for Solaris (Fix ticket #158)
4205
4206 2011-01-07  David Lutterkort  <lutter@redhat.com>
4207
4208         Shellvars: read various snmpd config files
4209         Patch by erinn
4210
4211         Fixes ticket #170
4212
4213 2011-01-07  Dominic Cleal  <dcleal@redhat.com>
4214
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
4219
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).
4223
4224 2011-01-07  David Lutterkort  <lutter@redhat.com>
4225
4226         Resolv: allow comments starting with semicolon
4227         Patch by erinn
4228
4229         Fixes bug #173
4230
4231 2011-01-03  Raphaël Pinson  <raphink@gmail.com>
4232
4233         Add automount, netmasks and sendmailvars keywords for databases in nsswitch.aug
4234
4235         Add bootparams as database keyword (Fix ticket #171) Update test file accordingly
4236
4237 2010-12-29  Raphaël Pinson  <raphink@gmail.com>
4238
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
4240
4241 2010-12-28  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
4242
4243         Add xml lens
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.
4247
4248         Supported:
4249           * Document type declaration: elements, attlist, entity
4250           * XML Prolog
4251           * XML comments
4252           * XML processing instructions
4253           * Neested elements, including empty elements
4254           * Element attributes
4255           * Mixed content, text and elements
4256           * CDATA sections
4257
4258         Not supported:
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
4262
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.
4267
4268 2010-12-22  Raphaël Pinson  <raphink@gmail.com>
4269
4270         Fix ticket #169 and add unit tests by Sergio Ballestrero.
4271
4272 2010-12-20  David Lutterkort  <lutter@redhat.com>
4273
4274         * src/pathx.c (func_regexp): do not SEGV on error; provide better error msg
4275         Fixes bug 168
4276
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
4286
4287         # Please enter the commit message for your changes. Lines starting
4288         # with '#' will be ignored, and an empty message aborts the commit.
4289         # On branch master
4290         # Changes to be committed:
4291         #   (use "git reset HEAD <file>..." to unstage)
4292         #
4293         #       modified:   src/pathx.c
4294         #
4295         # Untracked files:
4296         #   (use "git add <file>..." to include in what will be committed)
4297         #
4298         #       doc/cfg.txt
4299         #       doc/naturaldocs/conf/lenses/Menu_Backup.txt
4300         #       doc/naturaldocs/conf/lenses/Menu_Backup_2.txt
4301         #       p/
4302         #       site.orig/
4303         #       tests/root-small/
4304         #       tests/root/etc/network/
4305         #       tests/root/etc/samba/
4306         #       tests/root/etc/sysconfig/system-config-firewall
4307
4308 2010-12-10  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
4309
4310         Enable square lens in dump_lens
4311
4312 2010-12-10  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
4313
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.
4319
4320           * src/builtin.c: add "square" keyword to language
4321           * src/lens.c: lns_make_square to compile the lens from actual simpler
4322             lenses
4323           * src/lens.h: append L_SQUARE to lens_tag enum to identify the square lens
4324             type object
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
4328             L_SQUARE
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
4333
4334 2010-12-09  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
4335
4336         Add test for lens-access.sh in Makefile
4337
4338 2010-12-02  Raphaël Pinson  <raphink@gmail.com>
4339
4340         Relicense pg_hba.aug as LGPLv2+ as the rest of Augeas.
4341
4342 2010-12-02  Lorenzo Dalrio  <lorenzo.dalrio@gmail.com>
4343
4344         Add access.aug and associated test file
4345
4346 2010-12-02  Raphaël Pinson  <raphink@gmail.com>
4347
4348         Fix GPL into LGPLv2+ for a series of lenses.
4349
4350 2010-11-24  Francis Giraldeau  <francis.giraldeau@gmail.com>
4351
4352         Ignore eclipse project files
4353
4354 2010-11-22  Raphael Pinson  <raphink@gmail.com>
4355
4356         Add support for "map" entries in grub.aug and adapt test accordingly (Fix ticket #148)
4357
4358 2010-11-19  David Lutterkort  <lutter@redhat.com>
4359
4360         Version 0.7.4
4361
4362 2010-11-19  Raphaël Pinson  <raphink@gmail.com>
4363
4364         * lenses/util.aug: improve management of eol comments
4365           - add comment_generic
4366           - use comment_generic in comment
4367           - add comment_eol
4368           - add comment_or_eol
4369
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.
4373
4374 2010-11-19  Raphaël Pinson  <raphink@gmail.com>
4375
4376         Add "indomU" Debian setting to grub.aug (Fix ticket #162)
4377
4378         Allow "\" style newlines in syslog.aug and add corresponding test (Fix ticket #161).
4379
4380 2010-11-18  Raphael Pinson  <raphink@gmail.com>
4381
4382         Make filter a View in sudoers.aug to make it appear properly in doc
4383
4384         Improve doc on services.aug
4385
4386         Add some doc to pg_hba.aug
4387
4388         Add a bit of doc to pbuilder.aug
4389
4390         Add all missing lenses to Menu.txt
4391
4392 2010-11-18  Mathieu Arnold  <mat@FreeBSD.org>
4393
4394         Add syslog.aug and associated test file
4395
4396 2010-11-18  Raphaël Pinson  <raphink@gmail.com>
4397
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
4399         Fix ticket #46
4400
4401 2010-11-18  Mathieu Arnold  <mat@FreeBSD.org>
4402
4403         On FreeBSD (at least) the sudoers file is in /usr/local/etc/.
4404
4405 2010-11-18  Francis Giraldeau  <francis.giraldeau@gmail.com>
4406
4407         Parse ulimit builtin in shellvars.aug (fix ticket #73).
4408
4409         Accept double quotes in arguments in postfix_master.aug, fix bug# 69
4410
4411 2010-11-18  David Lutterkort  <lutter@redhat.com>
4412
4413         * tests/Makefile.am (lens_tests): add tests for new lenses
4414
4415 2010-11-18  David Lutterkort  <lutter@redhat.com>
4416
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.
4421
4422         Fixes bug https://fedorahosted.org/augeas/ticket/139
4423
4424 2010-11-18  Matthew Booth  <mbooth@redhat.com>
4425
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:
4431
4432         https://fedorahosted.org/augeas/ticket/149
4433
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
4446         optimizer.
4447
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
4451         example:
4452
4453         printf("%p", dict);
4454
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.
4460
4461 2010-11-17  Raphael Pinson  <raphink@gmail.com>
4462
4463         Allow underscore in chain_name for iptables.aug and adjust test accordingly.
4464
4465 2010-11-17  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
4466
4467         Add login_defs.aug and associated test file.
4468
4469 2010-11-14  Marc Fournier  <marc.fournier@camptocamp.com>
4470
4471         pg_hba: added debian systems path to filter - fixes #154.
4472
4473         util.aug: exclude unneeded files on debian systems (fix ticket #153)
4474
4475 2010-11-05  Raphael Pinson  <raphink@gmail.com>
4476
4477         Map comments and use Util.comment and Util.empty in order to full fix ticket #151. Adapt test accordingly.
4478
4479         Allow indented lines in aptsources.aug (Fix ticket #151) and add associated test
4480
4481         Allow "=" as a separator for title in grub.aug (Fix ticket #150) and adapt test accordingly.
4482
4483 2010-11-04  Raphael Pinson  <raphink@gmail.com>
4484
4485         Fix example in lens
4486
4487 2010-11-02  Raphael Pinson  <raphink@gmail.com>
4488
4489         Add a few lenses to Menu.txt
4490
4491         Add shells.aug and associated test
4492
4493 2010-11-01  Raphael Pinson  <raphink@gmail.com>
4494
4495         Add mke2fs.aug and associated test
4496
4497 2010-10-31  Raphael Pinson  <raphink@gmail.com>
4498
4499         Add support for rpc services in inetd.aug, rework lens to allow it and add tests accordingly.
4500
4501         Parse option values in fstab.aug, adapt test file accordingly.
4502
4503         Map service names in node values instead of node names to prevent variable node names.
4504
4505 2010-10-29  Raphael Pinson  <raphink@gmail.com>
4506
4507         Add /etc/mtab to known files
4508
4509 2010-10-28  Raphael Pinson  <raphink@gmail.com>
4510
4511         Fix paramater into parameter in ND comment
4512
4513 2010-10-27  Raphael Pinson  <raphink@gmail.com>
4514
4515         Use generic modules in bbhosts.aug
4516
4517 2010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>
4518
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.
4523
4524 2010-10-26  Raphael Pinson  <raphink@gmail.com>
4525
4526         Fix filter to use proper file
4527
4528         Remove trailing whitespace
4529
4530         Add nsswitch.aug and associated test
4531
4532 2010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>
4533
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
4537         AUGEAS_DEBUG=lenses
4538
4539 2010-10-26  David Lutterkort  <lutter@redhat.com>
4540
4541         Sudoers: allow 'visiblepw' parameter flag
4542         Fix provided by christj. Fixes bug #143
4543
4544 2010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>
4545
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. 
4549
4550         Fix ticket #146
4551
4552 2010-10-26  Raphael Pinson  <raphink@gmail.com>
4553
4554         /etc/sudoers.d is now supported (at least in Debian and Ubuntu)
4555
4556         Add resolv.aug and test
4557
4558 2010-10-14  Aurelien Bompard  <aurelien@bompard.org>
4559
4560         Pg_hba: new lens and test
4561         Fixes bug #140
4562
4563 2010-09-30  Raphaël Pinson  <raphink@gmail.com>
4564
4565         Add a few lenses to Menu.txt
4566
4567         Use Rx.ipv4 and Rx.integer in openvpn.aug
4568
4569         Use generic modules Rx, Sep and Build in keepalived.aug
4570
4571         Add email_addr to rx.aug
4572
4573         Improve build.aug
4574
4575         Improve documentation of build.aug
4576
4577 2010-09-29  Raphaël Pinson  <raphink@gmail.com>
4578
4579         Move Build, Rx and Sep into Generic Modules, add Keepalived
4580
4581 2010-09-24  Raphaël Pinson  <raphink@gmail.com>
4582
4583         Improve keepalived.aug
4584
4585 2010-09-23  Raphaël Pinson  <raphink@gmail.com>
4586
4587         Add a lens for keepalived.conf and associated test
4588
4589 2010-09-23  David Lutterkort  <lutter@redhat.com>
4590
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.
4597
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
4602         aug_xxx functions.
4603
4604         Fixes bug #138
4605
4606 2010-09-21  Raphaël Pinson  <raphink@gmail.com>
4607
4608         * src/augtool.c: add -f|--file option to get commands from an input file
4609
4610 2010-09-21  Marc Fournier  <marc.fournier@camptocamp.com>
4611
4612         Nrpe: new lens and tests.
4613
4614         Odbc: new lens and tests.
4615
4616 2010-09-15  David Lutterkort  <lutter@redhat.com>
4617
4618         When setting a tree node to the value it already has, do not modify the tree
4619
4620 2010-09-09  David Lutterkort  <lutter@redhat.com>
4621
4622         * src/try: add an optioj to strace augtool
4623
4624 2010-09-09  David Lutterkort  <lutter@redhat.com>
4625
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.
4631
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.
4640
4641         Thanks to Laine Stump for spotting this
4642
4643 2010-08-27  Francis Giraldeau  <francis.giraldeau@gmail.com>
4644
4645         Fix yum tests
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
4649
4650 2010-08-27  David Lutterkort  <lutter@redhat.com>
4651
4652         * bootstrap: add locale module from gnulib
4653         Fixes bug #137
4654
4655 2010-08-16  David Lutterkort  <lutter@redhat.com>
4656
4657         Yum: accept continuation lines for gpgkey
4658         Fixes bug #132
4659
4660 2010-08-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
4661
4662         * src/get.c (visit_exit): fix segfault from empty stack for L_MAYBE
4663         Fixes bug #136
4664
4665 2010-08-06  David Lutterkort  <lutter@redhat.com>
4666
4667         Version 0.7.3
4668
4669 2010-08-06  David Lutterkort  <lutter@redhat.com>
4670
4671         Fix behavior of aug_defnode
4672           (1) Make sure that the definition of the variable is recorded under
4673               /augeas/variables
4674           (2) Do not report an error if the expression evaluates to a non-empty
4675               nodeset
4676
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
4680             definition
4681           * tests/test-api.c: add tests for defvar and defnode behavior
4682
4683 2010-08-05  David Lutterkort  <lutter@redhat.com>
4684
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.
4688
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
4692             root
4693
4694 2010-08-05  David Lutterkort  <lutter@redhat.com>
4695
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
4700         tree_replace.
4701
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
4705             global symtab
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
4709
4710 2010-08-05  David Lutterkort  <lutter@redhat.com>
4711
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
4716
4717 2010-08-03  Raphael Pinson  <raphink@gmail.com>
4718
4719         Sudoers: allow escaped spaces in user/group names
4720         Fixes bug #124
4721
4722 2010-07-26  David Lutterkort  <lutter@redhat.com>
4723
4724         Limits: also look for files in /etc/security/limits.d
4725         Suggested by David Timms
4726
4727 2010-07-23  Tim Stoop  <tim.stoop@gmail.com>
4728
4729         Mysql: lens for MySQL's *.cnf files
4730
4731 2010-07-23  David Lutterkort  <lutter@redhat.com>
4732
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.
4738
4739         This lens is a variation on Shellvars that changes a few important aspects
4740         of it:
4741
4742           * Strip quotes from values when reading a file, and restore quotes as
4743             needed upon writing
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
4746             syntax)
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
4750
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.
4753
4754 2010-07-23  David Lutterkort  <lutter@redhat.com>
4755
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.
4759
4760 2010-07-21  David Lutterkort  <lutter@redhat.com>
4761
4762         * src/syntax.c (load_module_file): make sure we report an error
4763
4764 2010-07-21  David Lutterkort  <lutter@redhat.com>
4765
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
4770         was NULL.
4771
4772         Fixes bug #129
4773
4774 2010-07-21  David Lutterkort  <lutter@redhat.com>
4775
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 '= *')
4779
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
4784
4785 2010-07-20  Francis Giraldeau  <francis.giraldeau@gmail.com>
4786
4787         * src/put.c (split_concat): fix memory leak when split doesn't match
4788
4789 2010-07-19  David Lutterkort  <lutter@redhat.com>
4790
4791         Use gnulib from a submodule
4792         This allows us to record the exact changeset from gnulib that everybody
4793         should be using.
4794
4795 2010-07-19  Frederik Wagner  <fnerdwq@googlemail.com>
4796
4797         Added /etc/sysconfig/suseconfig to shellvars lens.
4798
4799 2010-07-08  Francis Giraldeau  <francis.giraldeau@gmail.com>
4800
4801         Adding is_scan in the condition to accept an item
4802
4803 2010-06-30  Matthew Booth  <mbooth@redhat.com>
4804
4805         Device_map: new lens for grub's device.map
4806
4807 2010-06-29  David Lutterkort  <lutter@redhat.com>
4808
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.
4812
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.
4816
4817 2010-06-29  David Lutterkort  <lutter@redhat.com>
4818
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
4822             tree_store_value
4823
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
4827
4828 2010-06-29  David Lutterkort  <lutter@redhat.com>
4829
4830         Add xstrtoint64 to internal.[ch]
4831         The implementation is directly from libvirt
4832
4833           * src/internal.h (xstrtoint64): add prototype
4834           * src/internal.c (xstrtoint64): add impl
4835
4836 2010-06-29  David Lutterkort  <lutter@redhat.com>
4837
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
4840
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
4845
4846 2010-06-29  David Lutterkort  <lutter@redhat.com>
4847
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.
4852
4853         The change in behavior is backwards compatible, since at worst, users will
4854         redefine variables themselves after an aug_load
4855
4856 2010-06-29  David Lutterkort  <lutter@redhat.com>
4857
4858         * src/augeas.c (aug_init): create /augeas/variables on startup
4859
4860         * src/augeas.c (aug_defvar): use constants to create /augeas/variables
4861
4862 2010-06-22  David Lutterkort  <lutter@redhat.com>
4863
4864         Version 0.7.2
4865
4866         * augeas.spec.in: fix ownership of /usr/share/augeas
4867         fixes BZ 569393
4868
4869 2010-06-17  David Lutterkort  <lutter@redhat.com>
4870
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
4874
4875         * src/augeas.c (aug_setm): do not segfault when sub is NULL
4876
4877 2010-06-17  Frederik Wagner  <fnerdwq@gmail.com>
4878
4879         Tests for new aug_setm function
4880         Test through augtool calls.
4881
4882         Exposed aug_setm to augtool.
4883
4884 2010-06-17  David Lutterkort  <lutter@redhat.com>
4885
4886         Add aug_setm to API
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
4890
4891 2010-05-24  Frederik Wagner  <fnerdwq@googlemail.com>
4892
4893         Shellvars: added SuSE sysconfig puppet files
4894         For SuSE systems, added /etc/sysconfig/{puppet,puppetmaster} to lens.
4895
4896 2010-05-18  Frederik Wagner  <fnerdwq@googlemail.com>
4897
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'.
4901
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
4905
4906 2010-05-13  David Lutterkort  <lutter@redhat.com>
4907
4908         Add modules_conf to naturaldocs Menu
4909
4910         Add /etc/modules.conf from hell
4911         Actually, from http://www.janerob.com/rob/ts5100/modules.conf
4912
4913 2010-05-13  Matthew Booth  <mbooth@redhat.com>
4914
4915         Modules_conf: new lens for modules.conf and conf.modules
4916
4917         Modprobe: Refactor to make re-use easier
4918
4919 2010-05-11  David Lutterkort  <lutter@redhat.com>
4920
4921         * src/augeas.c: record expression for defvar in /augeas/variables
4922
4923 2010-05-07  David Lutterkort  <lutter@redhat.com>
4924
4925         * Grub: handle comments within a boot stanza
4926         Fixes RH BZ 590067
4927
4928         Adjust copyright notices
4929           - copyright is from creation of file through 2010
4930           - adjust copyright owner according to Red Hat's policy
4931
4932 2010-05-04  Raphael Pinson  <raphink@gmail.com>
4933
4934         Group: add test for disabled account ('!' in password field)
4935
4936 2010-04-27  seph  <seph@directionless.org>
4937
4938         Shellvars: process /etc/environment
4939
4940 2010-04-26  Nicolas Valcárcel Scerpella  <nvalcarcel@ubuntu.com>
4941
4942         Iptables: also look for /etc/iptables-save
4943         This is where Debian keeps iptables rules
4944
4945 2010-04-26  Frederik Wagner  <fnerdwq@googlemail.com>
4946
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
4952
4953 2010-04-21  David Lutterkort  <lutter@redhat.com>
4954
4955         Version 0.7.1
4956
4957 2010-04-21  Simon Josi  <josi@puzzle.ch>
4958
4959         Securetty: new lens and test for /etc/securetty
4960
4961 2010-04-21  David Lutterkort  <lutter@redhat.com>
4962
4963         Sudoers: use example file from Fedora 13
4964         This is causing trouble with release-0.7.0, but not this revision.
4965
4966         File was reported in bug #122
4967
4968 2010-04-21  David Lutterkort  <lutter@redhat.com>
4969
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.
4974
4975         Tests now mostly pass (82/85) on the OpenCSW Solaris 5.10 build machine
4976
4977 2010-04-21  David Lutterkort  <lutter@redhat.com>
4978
4979         * tests/test-save.c: use proper includes for WIFEXITED
4980         Without them, the build fails on FreeBSD
4981
4982 2010-04-20  David Lutterkort  <lutter@redhat.com>
4983
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
4989         character.
4990
4991         Debctrl: whitespace cleanup, no functional change
4992
4993 2010-04-20  David Lutterkort  <lutter@redhat.com>
4994
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 '\|'
4997
4998           * tests/fatest.c (testExpandCharRanges): test escaping of literal '|'
4999
5000 2010-04-19  David Lutterkort  <lutter@redhat.com>
5001
5002         * tests/fatest.c (print_regerror): do not use alloca
5003
5004         * bootstrap: pull in isblank explicitly
5005         Fixes bug #111
5006
5007         * src/lens.c (lns_check_rec): fix refcounting mistake on error path
5008         Fixes bug #120
5009
5010         * src/augtool.c: report an error when 'get' fails
5011
5012 2010-04-19  David Lutterkort  <lutter@redhat.com>
5013
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.
5017
5018         Fixes bug #121
5019
5020 2010-04-16  David Lutterkort  <lutter@redhat.com>
5021
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.
5028
5029         By changing the return value for jmt_visit, it's now possible to
5030         distinguish between internal errors, syntax errors and successful parses
5031         properly.
5032
5033 2010-04-16  David Lutterkort  <lutter@redhat.com>
5034
5035         * src/get.c (visit_exit): handle L_MAYBE
5036         Added test to tests/modules/pass_simple_recursion.aug, lens 'maybe'
5037
5038         Fixes bug #119
5039
5040 2010-04-16  David Lutterkort  <lutter@redhat.com>
5041
5042         * src/jmt.c (build_tree): print debug output for build_nullable
5043
5044 2010-03-12  David Lutterkort  <lutter@redhat.com>
5045
5046         * lenses/tests/test_logrotate.aug: add test for files separated by newlines
5047         This test the fix for bug #104, commit fe0453ce.
5048
5049 2010-03-11  David Lutterkort  <lutter@redhat.com>
5050
5051         * lenses/group.aug (password): remove backslashes
5052         Backslashes in char classes are taken literally, they do not escape a
5053         character.
5054
5055 2010-03-11  root  <root@lx200.costest.lrz.de>
5056
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
5060
5061 2010-03-11  David Lutterkort  <lutter@redhat.com>
5062
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
5065         path.
5066
5067 2010-03-05  David Lutterkort  <lutter@redhat.com>
5068
5069         * src/lens.c (lns_format_atype): format L_REC lenses
5070
5071         * src/lens.c: remove asserts; better error for missed tag in switch
5072
5073         Shellvars: handle a bare 'export VAR'
5074
5075         Inittab: allow ':' in the process field
5076         Fixes part of bug #109
5077
5078 2010-03-05  Tim Stoop  <tim.stoop@gmail.com>
5079
5080         Approx: allow keywords starting with '$'
5081
5082 2010-03-04  David Lutterkort  <lutter@redhat.com>
5083
5084         Approx: lens and test for the approx proxy server
5085
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
5088         the error message.
5089
5090 2010-03-03  David Lutterkort  <lutter@redhat.com>
5091
5092         * src/fa.c: allow the strange regexp syntax '(a|)'
5093         POSIX allows it, and so do we now
5094
5095         Fixes bug #113
5096
5097 2010-03-02  David Lutterkort  <lutter@redhat.com>
5098
5099         Passwd: parse NIS entries on Solaris
5100         Based on a fix by Stuart Sears
5101
5102 2010-02-26  David Lutterkort  <lutter@redhat.com>
5103
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).
5107
5108         Rename _E and _F to E and F, and eliminate _N.
5109
5110 2010-02-26  Frederik Wagner  <wagner@lrz.de>
5111
5112         Modprobe: Suse includes
5113         * lenses/modprobe.aug: included /etc/modprobe.conf.local
5114
5115         Shellvars: Suse includes
5116         * lenses/shellvars.aug:
5117             added include for /etc/sysconfig/network/ifcfg-
5118
5119         Grub: support empty kernel parameters, Suse incl.s
5120         * lenses/grub.aug:
5121           - added support for kernel parameters of the form "parameter="
5122             w/o given value
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
5126
5127 2010-02-26  Dominique Dumont  <domi.dumont@free.fr>
5128
5129         Debctrl: new lens and test
5130
5131 2010-02-23  David Lutterkort  <lutter@redhat.com>
5132
5133         Ntp: add 'tinker' directive
5134         Fixes bug #103
5135
5136         Logrotate: tolerate whitespace at the end of a line
5137         Fixes bug #101
5138
5139 2010-02-23  Raphael Pinson  <raphink@gmail.com>
5140
5141         Dhclient: add rfc code parsing
5142         Fixes bug #107
5143
5144         Sudoers: allow del_negate even if no negate_node is found
5145         Fixes bug #106
5146
5147         Logrotate: files can be separated by newlines
5148         Fixes bug #104
5149
5150         Dput: add 'allow_dcut' parameter
5151         Fixes bug #105
5152
5153 2010-02-22  David Lutterkort  <lutter@redhat.com>
5154
5155         * src/augtool.c: ignore empty lines from stdin
5156         We still complain about the nonsensical 'augtool ""'.
5157
5158         Fixes BZ 566844 reported by Mike Burns
5159
5160 2010-02-22  Stuart Sears  <ssears@redhat.com>
5161
5162         Sudoers (parameter_string_nobool_kw): accept "secure_path "
5163         Fixes BX 566134
5164
5165 2010-02-19  Tim Stoop  <tim.stoop@gmail.com>
5166
5167         Nagisocfg: lens and test for /etc/nagios3/nagios.cfg
5168
5169 2010-02-12  Ivana Hutarova Varekova  <varekova@redhat.com>
5170
5171         Cgrules: new lens and test
5172         See cgrules.conf for http://libcg.sourceforge.net/
5173
5174 2010-02-11  Ivana Hutarova Varekova  <varekova@redhat.com>
5175
5176         Cgconfig: lens and tests for libcgroup config
5177         See http://libcg.sourceforge.net/
5178
5179 2010-02-11  Laine Stump  <laine@laine.org>
5180
5181         * src/transform.c (file_info): fix memory leak
5182
5183 2010-02-09  David Lutterkort  <lutter@redhat.com>
5184
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.
5188
5189 2010-02-08  David Lutterkort  <lutter@redhat.com>
5190
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
5195
5196         * src/fa.c (parse_int): flag not parsing anything as an error
5197
5198 2010-02-08  David Lutterkort  <lutter@redhat.com>
5199
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)
5203
5204         Also adds two pathological lenses and tests to
5205         pass_simple_recursion.aug. Those tests fail without caller filtering.
5206
5207 2010-02-08  David Lutterkort  <lutter@redhat.com>
5208
5209         * AUTHORS: reformatted
5210
5211         * tests/Makefile.am: add test for cobblermodules.aug
5212
5213 2010-02-08  Shannon Hughes  <shughes@redhat.com>
5214
5215         Cobblermodules: lens + tests for cobbler's modules.conf
5216
5217 2010-02-02  David Lutterkort  <lutter@redhat.com>
5218
5219         Shellvars: allow spaces after/before opening/closing parens for array
5220         Bug reported by Doug Warner
5221
5222 2010-02-01  Matthew Palmer  <matt@anchor.net.au>
5223
5224         Sshd: allow optional arguments in subsystem commands
5225
5226 2010-01-27  David Lutterkort  <lutter@redhat.com>
5227
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.
5230
5231         This line also triggered a SEGV when sub == NULL; this happened, for
5232         example, when /etc/apt/preferences was an empty file.
5233
5234         Bug reported by Matt Palmer
5235
5236 2010-01-27  David Lutterkort  <lutter@redhat.com>
5237
5238         * src/get.c (no_match_error): initialize lname
5239         Otherwise, gcc complains about a possibly uninitialized value with -O2
5240
5241 2010-01-25  David Lutterkort  <lutter@redhat.com>
5242
5243         Test for using a recursive lens inside other lenses
5244
5245 2010-01-25  David Lutterkort  <lutter@redhat.com>
5246
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
5250
5251         rec_process will also build the jmt if it does not exist yet
5252
5253         Fixes ticket #100
5254
5255 2010-01-25  David Lutterkort  <lutter@redhat.com>
5256
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.
5262
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
5266
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
5269             internal
5270
5271 2010-01-25  David Lutterkort  <lutter@redhat.com>
5272
5273         * src/jmt.c (print_grammar): recurse into L_REC if they are not rec_internal
5274
5275 2010-01-25  David Lutterkort  <lutter@redhat.com>
5276
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.
5282
5283         Split build_tree into build_children (collects a list of child nodes) and
5284         build_tree which creates the tree for a nonterminal.
5285
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.
5289
5290 2010-01-25  David Lutterkort  <lutter@redhat.com>
5291
5292         * src/lens.c: propagate rec_internal in the body of an L_REC
5293
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.
5297
5298         * src/lens.h (struct lens): explain better how we handle recursive lenses
5299
5300         * src/jmt.c (build_trace): allow passing in a NULL item
5301
5302         * src/lens.c (tags): add name for value primitive
5303
5304         * src/get.c: replace assert's by ensure's
5305         assert aborts, which a library shouldn't do
5306
5307         * src/errcode.h (ensure0): convenience version of ensure
5308
5309         * src/get.c (find_seq): properly report OOM, do not call abort
5310
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
5314         BUG_ON instead.
5315
5316         * src/get.c (struct state): make info a pointer
5317
5318 2010-01-23  David Lutterkort  <lutter@redhat.com>
5319
5320         * src/lens.c (restrict_regexp): properly report OOM
5321
5322 2010-01-20  David Lutterkort  <lutter@redhat.com>
5323
5324         Document the basics of building from git
5325
5326 2010-01-15  David Lutterkort  <lutter@redhat.com>
5327
5328         * src/builtin.c: builtins for printing and inspecting lenses
5329
5330         Add a unit type
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
5333         legal.
5334
5335 2010-01-15  David Lutterkort  <lutter@redhat.com>
5336
5337         Language: allow '_' as an identifier that is never bound
5338           The expression
5339             let _ = something
5340           will evaluate something and then immediately forget it
5341
5342           * src/lexer.l (LID): allow leading underscore
5343           * src/syntax.c (bind, bind_type): do not bind '_'
5344
5345 2010-01-15  David Lutterkort  <lutter@redhat.com>
5346
5347         New primitive lens 'value'
5348         In analogy to 'label', this lens allows setting the value of a tree node to
5349         a fixed string
5350
5351 2010-01-14  David Lutterkort  <lutter@redhat.com>
5352
5353         Version 0.7.0
5354
5355         Json: lens and tests for generic Json files
5356
5357         Tests for recursive (context free) lenses
5358
5359 2010-01-14  David Lutterkort  <lutter@redhat.com>
5360
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.
5364
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
5368         ident = exp'.
5369
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
5373             lns_check_rec
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
5377
5378 2010-01-14  David Lutterkort  <lutter@redhat.com>
5379
5380         * src/get.c (get_rec, parse_rec): get/parse for recursive lenses
5381
5382         * src/put.c: put/create for recursive lenses
5383
5384         Remember the jmt in the lens and free it when it is no loner needed
5385
5386         Earley parser based on Jim/Mandelbaum's transducers
5387
5388         Calculate if a lens's ctype is nullable
5389
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
5393
5394         Suppress buildtime typechecks for L_REC; propagate recursive flag
5395
5396         * src/lens.c (free_lens): free recursive lenses
5397
5398         * src/lens.h: add a recursive lens combinator
5399
5400 2010-01-14  David Lutterkort  <lutter@redhat.com>
5401
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.
5409
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
5413
5414 2010-01-14  David Lutterkort  <lutter@redhat.com>
5415
5416         struct error: add pointer back to struct augeas
5417
5418         * src/errcode.h: more usable BUG_ON and BUG_FMT
5419
5420         * src/lens.c (ambig_check): report OOM from fa_ambig_example
5421
5422         * src/fa.c (fa_ambig_example): getting a NULL example is not an error
5423
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
5427         the first error.
5428
5429         * TODO: deleted, that list is in Trac now
5430
5431         * src/fa.c (fa_intersect): initialize vars that could be used on error
5432
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.
5436
5437         * src/fa.c (fa_as_regexp): fin only accepting state, no trans fin->fin
5438
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
5442
5443 2010-01-13  David Lutterkort  <lutter@redhat.com>
5444
5445         Add syntax for case-insensitive regexps
5446         A regexp literal /regexp/i will be converted to a case-insensitive regexp.
5447
5448         * src/regexp.c (regexp_minus): respect nocase flags
5449
5450         * src/lens.c (str_to_fa): compile nocase fa when needed
5451
5452         * src/lens.c (str_to_fa): remove FIXME's and use proper error reporting
5453
5454 2010-01-13  David Lutterkort  <lutter@redhat.com>
5455
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.
5460
5461         Adjust all uses of make_regexp.
5462
5463 2010-01-13  David Lutterkort  <lutter@redhat.com>
5464
5465         Add fa_expand_nocase to libfa
5466
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
5477
5478         * src/lens.c (subtree_atype): new function
5479
5480 2010-01-07  David Lutterkort  <lutter@redhat.com>
5481
5482         Facelift for augtool
5483         This makes augtool somewhat friendlier, mostly because
5484
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
5487             about a command
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() ]'
5491
5492 2010-01-07  David Lutterkort  <lutter@redhat.com>
5493
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
5498
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
5501             file_name_path
5502
5503 2010-01-07  David Lutterkort  <lutter@redhat.com>
5504
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
5508         lens/info
5509
5510           * src/transform.c (add_file_info): change what we keep underneath the
5511             lens node
5512           * tests/xpath.tests (lircd-ancestor): adapt to metadata change
5513
5514 2010-01-07  David Lutterkort  <lutter@redhat.com>
5515
5516         * src/transform.c (add_file_info): manipulate tree directly
5517         Going through public functions like aug_set is silly, and causes all kinds
5518         of string munging.
5519
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
5525
5526         New function transform_file_error
5527           * src/transfrom.h (transform_file_error): add prototype
5528           * src/transform.c (transform_file_error): new function
5529
5530         New function xfm_lens_name
5531           * src/transfrom.h (xfm_lens_name): add prototype
5532           * src/transform.c (xfm_lens_name): new function
5533
5534 2010-01-07  David Lutterkort  <lutter@redhat.com>
5535
5536         Tree functions to find/create a node with a path expression
5537         Internal counterparts to aug_get and aug_set
5538
5539           * src/internal.h (tree_find, tree_find_cr): new prototypes
5540           * src/augeas.c (tree_find, tree_find_cr): new functions
5541
5542 2010-01-07  David Lutterkort  <lutter@redhat.com>
5543
5544         * src/internal.h: make various tree management functions available
5545
5546 2010-01-06  David Lutterkort  <lutter@redhat.com>
5547
5548         Xinetd (name): fix bad '-' in character class
5549
5550 2010-01-05  David Lutterkort  <lutter@redhat.com>
5551
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
5557
5558         Fixes bug #98
5559
5560 2010-01-05  David Lutterkort  <lutter@redhat.com>
5561
5562         New error code AUG_ENOLENS
5563         Indicates failure to look a lens up by name from /augeas/load/*/lens
5564
5565           * src/augeas.h (aug_errcode_t): new value AUG_ENOLENS
5566           * src/augeas.c (errcodes): new entry for AUG_ENOLENS
5567
5568 2010-01-05  David Lutterkort  <lutter@redhat.com>
5569
5570         * src/lens.c (lens_release): tolerate a NULL lens
5571
5572 2010-01-04  Bryan Kearney  <bkearney@localhost.localdomain>
5573
5574         Cobblersettings: new lens and test
5575
5576 2010-01-04  David Lutterkort  <lutter@redhat.com>
5577
5578         Rename read_file to xread_file
5579
5580 2009-12-23  David Lutterkort  <lutter@redhat.com>
5581
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.
5585
5586         * src/lens.c (format_lens): minimalistic pretty-printing of a lens
5587
5588         * src/regexp.c (print_regexp): clean the regexp with fa_restrict_alphabet
5589
5590 2009-12-18  David Lutterkort  <lutter@redhat.com>
5591
5592         * src/builtin.c (lens_get, lens_put): propagate errors as exceptions
5593
5594 2009-12-18  David Lutterkort  <lutter@redhat.com>
5595
5596         More convenience macros for errors
5597         Add BUG_ON and ERR_RET macros for reporting internal errors
5598
5599           * src/errcode.h (BUG_ON, ERR_RET, HAS_ERR): new macros
5600           * src/errcode.c (bug_on): implementation for BUG_ON
5601
5602 2009-12-17  David Lutterkort  <lutter@redhat.com>
5603
5604         Lokkit: allow '-' in arguments
5605
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
5609
5610 2009-12-14  David Lutterkort  <lutter@redhat.com>
5611
5612         * doc/ftdetect/augeas.vim: fix syntax
5613
5614 2009-12-09  Partha Aji  <paji@redhat.com>
5615
5616         Made samba aug accept entry keys with ':' in them
5617
5618 2009-12-09  David Lutterkort  <lutter@redhat.com>
5619
5620         Shellvars: allow arrays that span multiple lines
5621
5622 2009-12-07  David Lutterkort  <lutter@redhat.com>
5623
5624         Iptables: allow quoted strings as arguments
5625
5626 2009-11-30  David Lutterkort  <lutter@redhat.com>
5627
5628         Version 0.6.0
5629
5630         Distribute and install vim syntax files
5631         Fixes ticket #97
5632
5633         * Makefile.maint: sign tags
5634
5635         Krb5: allow v4_name_convert in libdefaults section
5636         Fixes part of ticket #95
5637
5638         Fstab: allow # in the spec
5639         Fixes part of ticket #95
5640
5641         Group: allow empty password field
5642         Fixes part of ticket #95
5643
5644         * src/parser.y: properly initialize yylloc
5645         Fixes ticket #96
5646
5647 2009-11-25  David Lutterkort  <lutter@redhat.com>
5648
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
5655
5656         Fixes ticket #93
5657
5658 2009-11-25  David Lutterkort  <lutter@redhat.com>
5659
5660         * src/lexer.l: include errcode.h; fix bad use of report_error
5661
5662         * src/errcode.c: include stdarg.h
5663
5664 2009-11-25  David Lutterkort  <lutter@redhat.com>
5665
5666         Cron: variable names can contain '_' etc.
5667         Use Shellvars.key_re for consistency.
5668
5669         Fixes ticket #94
5670
5671 2009-11-25  Matt Palmer  <mpalmer@hezmatt.org>
5672
5673         AptPreferences: add a put test
5674         Make sure we handle an empty file properly, and cleanup the resulting
5675         hassle
5676
5677 2009-11-24  Matt Palmer  <mpalmer@hezmatt.org>
5678
5679         Normalise records so that empty lines (which are a required part of the syntax) don't creep into the tree
5680
5681         Support version pins in apt_preferences
5682
5683 2009-11-23  David Lutterkort  <lutter@redhat.com>
5684
5685         * tests/Makefile.am (lens_tests): run postfix_access tests
5686
5687 2009-11-16  Partha Aji  <paji@redhat.com>
5688
5689         Added a Post Fix Access lens along with the unit tests
5690
5691 2009-11-13  David Lutterkort  <lutter@redhat.com>
5692
5693         * src/lens.c (ambig_check): distinguish error between concat and iteration
5694
5695         * src/regexp.c (regexp_escape): treat NULL regexps as the empty regexp
5696
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)/
5699
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
5703                         been seen
5704
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.
5708
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.
5713
5714 2009-11-12  David Lutterkort  <lutter@redhat.com>
5715
5716         * src/info.c (print_info): do not choke on NULL info
5717
5718         * src/internal.h: new macros MEMCMP and MEMMOVE
5719
5720         * src/lens.c (lns_make_subtype): explain type derivation
5721
5722         * examples/fadot.c: by default, print minimized regexp
5723
5724         * examples/fadot.c: fix formatting, no functional changes
5725
5726 2009-11-10  David Lutterkort  <lutter@redhat.com>
5727
5728         Make augparse and augtool use user's locale
5729
5730         * test/Makefile.am (TEST_ENVIRONMENT): set LANG to a non-C locale
5731
5732 2009-11-10  David Lutterkort  <lutter@redhat.com>
5733
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
5737         the C locale.
5738
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
5744             regexp_c_locale
5745           * src/regexp.c (regexp_escape): compress character ranges for printing
5746           * src/regexp.c (regexp_minus): expand charcter ranges
5747
5748         Fixes ticket #35 for systems that do not have uselocale (for systems with
5749         uselocale, the fix is commit 07b6a880)
5750
5751 2009-11-10  David Lutterkort  <lutter@redhat.com>
5752
5753         libfa: new function fa_expand_char_ranges
5754
5755         Calls to __aug_load_module need to go through api_entry/api_exit
5756
5757 2009-11-10  David Lutterkort  <lutter@redhat.com>
5758
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
5762         locale on API exit.
5763
5764         That also makes it necessary that aug_init wraps the bulk of its work
5765         inside an api_entry/api_exit.
5766
5767         Fixes ticket #35 for systems that have uselocale
5768
5769 2009-10-26  David Lutterkort  <lutter@redhat.com>
5770
5771         Inittab: parse end-of-line comments into a #comment
5772
5773 2009-10-23  David Lutterkort  <lutter@redhat.com>
5774
5775         * src/lens.c (lns_make_subtree): parenthesize key and value patterns
5776         These patterns may be a union not enclosed in parens
5777
5778         * src/regexp.c (regexp_escape): don't clobber last character
5779
5780         * src/lens.c: use regexp_escape to print regexps in error messages
5781
5782         * src/fa.c (fa_restrict_alphabet): initialize parse
5783
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
5787         doesn't hurt.
5788
5789         * src/fa.c (re_needs_parens_in_concat): ITER doesn't need parens in concat
5790
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.
5795
5796 2009-10-22  David Lutterkort  <lutter@redhat.com>
5797
5798         bootstrap: use stpcpy and stpncpy from gnulib
5799
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
5803
5804 2009-10-21  David Lutterkort  <lutter@redhat.com>
5805
5806         Path expressions: add union operator
5807         Nodesets can now be unioned with the '|' operator
5808
5809         Fixes ticket #89
5810
5811 2009-10-21  David Lutterkort  <lutter@redhat.com>
5812
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.
5816
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.
5821
5822 2009-10-20  David Lutterkort  <lutter@redhat.com>
5823
5824         Wine: new lens and test
5825         Lens for parsing textual Windows registry files
5826
5827 2009-10-20  David Lutterkort  <lutter@redhat.com>
5828
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'
5833
5834         Bug reported by Shannon Hughes
5835
5836 2009-10-20  David Lutterkort  <lutter@redhat.com>
5837
5838         * test/Makefile.am (lens_tests): add lens-ethers.sh
5839
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
5843
5844         Report line/column number when get/put test fails
5845           * src/builtin.c (make_exn_lns_error): add line/column number in error
5846             message
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
5850
5851         * src/get.c (get_error): use end of last match as error position
5852
5853         * man/augtool.1: regenerate
5854
5855 2009-10-19  David Lutterkort  <lutter@redhat.com>
5856
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
5860         11
5861
5862 2009-10-12  David Lutterkort  <lutter@redhat.com>
5863
5864         Rx (device_name): allow '!' in device name
5865
5866 2009-10-09  David Lutterkort  <lutter@redhat.com>
5867
5868         Lokkit: make argument for --trust more permissive
5869         The --trust option takes an interface name, whcih can be more than what
5870         token accepts.
5871
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
5875
5876 2009-10-09  David Lutterkort  <lutter@redhat.com>
5877
5878         Lokkit.forward_port: add missing eol
5879         Also adjust test_lokkit.aug since we're not getting a spurious empty entry
5880         anymore
5881
5882 2009-10-06  Satoru SATOH  <satoru.satoh@gmail.com>
5883
5884         /etc/ethers: new lens and test
5885         The followings adds a new lens for /etc/ethers and associated test.
5886
5887 2009-09-30  David Lutterkort  <lutter@redhat.com>
5888
5889         * src/augparse.c: get error details from error API
5890
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
5894         abort()
5895
5896         * src/parser.y: do not print to stderr
5897
5898         * src/lexer.l: print into struct error instead of stderr
5899
5900         New error code AUG_ESYNTAX
5901
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
5906
5907         * src/lexer.l (to_int): unused, remove
5908
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.
5912
5913         Put struct error and report_error into its own file
5914         Also, make the struct error in struct augeas a pointer
5915
5916         * src/info.h: optimize layout of struct info
5917
5918         *src/syntax.c: catch some allocation errors
5919
5920         * src/ref.h (make_ref_err): convenience macro
5921
5922         * tests/fatest.c (print_regerror): only print first 40 chars of regexp
5923
5924         libfa: handle allocation failures gracefully
5925
5926         parser: report some allocation failures
5927
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
5933
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
5939
5940         * src/hash.c (hash_alloc_insert): return 0/-1 for success/error
5941
5942         Use a proper function for make_ref
5943         That allows us to require that callers check the return value
5944
5945         Handle allocation failures from define_native_intl
5946
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.
5950
5951 2009-09-24  David Lutterkort  <lutter@redhat.com>
5952
5953         * src/transform.c: do not include canonicalize.h anymore
5954         The canonicalize-lgpl gnulib module doesn't require that anymore
5955
5956 2009-09-21  David Lutterkort  <lutter@redhat.com>
5957
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
5961         path expressions.
5962
5963         * src/regexp.c (regexp_compile): do not print anything on error
5964
5965 2009-09-21  David Lutterkort  <lutter@redhat.com>
5966
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
5970
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.
5973
5974 2009-09-21  David Lutterkort  <lutter@redhat.com>
5975
5976         aug_match, aug_mv: return -1 when pathx evaluation fails
5977
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
5981         match.
5982
5983         * src/augtool.c: use new error API
5984         Call into the error API after each aug_* call and print error details
5985
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
5989         properly.
5990
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.
5994
5995         Reset old error messages on each entry through the API from the outside
5996
5997         * src/syntax.c (interpreter_init): report errors
5998
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
6002         programmatically.
6003
6004         * src/pathx.c (pathx_symtab_init): unused, remove
6005
6006 2009-09-18  David Lutterkort  <lutter@redhat.com>
6007
6008         * src/syntax.c (interpreter_init): fix potential leak
6009         If globbuf has entries in it when we encounter an error, we need to
6010         globfree it.
6011
6012 2009-09-17  Matt Palmer  <mpalmer@hezmatt.org>
6013
6014         Sudoers: allow certain backslash-quoted characters in a command
6015         Commands may contain backslashes by themselves and the two-char sequences
6016         \\[=:,\\]
6017
6018 2009-09-14  David Lutterkort  <lutter@redhat.com>
6019
6020         Version 0.5.3
6021
6022 2009-09-11  David Lutterkort  <lutter@redhat.com>
6023
6024         Man pages: update to match current augtool and augparse
6025
6026         Add --version option to augtool and augparse
6027         Fixes bug #88
6028
6029         A couple more files for the test root
6030
6031         Add preceding-sibling and following-sibling axes to path expressions
6032
6033 2009-09-10  David Lutterkort  <lutter@redhat.com>
6034
6035         Better error message for too many args in a path expression
6036
6037 2009-09-09  David Lutterkort  <lutter@redhat.com>
6038
6039         Slapd: include /etc/openldap/slapd.conf
6040         This is the default location in Fedora.
6041
6042         Fixes bug #85
6043
6044 2009-09-04  David Lutterkort  <lutter@redhat.com>
6045
6046         Multipath: new lens for /etc/multipath.conf
6047
6048         * src/try: fix 'set annotate' for gdb
6049
6050 2009-09-03  David Lutterkort  <lutter@redhat.com>
6051
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.
6056
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
6060         copy.
6061
6062 2009-09-03  David Lutterkort  <lutter@redhat.com>
6063
6064         * src/syntax.c (print_value): use print_tree instead of dump_tree
6065
6066 2009-09-02  David Lutterkort  <lutter@redhat.com>
6067
6068         * lenses/rx.aug (fspath): simplistic regex for filesystem paths
6069
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.
6073
6074         * src/lens.c(enc_format): remove extraneous quote
6075
6076         Make fa_example work for strings with embedded NUL's
6077
6078 2009-09-01  Matt Palmer  <mpalmer@hezmatt.org>
6079
6080         Inetd: new lens and test
6081
6082 2009-08-31  David Lutterkort  <lutter@redhat.com>
6083
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
6088
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.
6092
6093 2009-08-31  David Lutterkort  <lutter@redhat.com>
6094
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.
6098
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.
6101
6102 2009-08-31  David Lutterkort  <lutter@redhat.com>
6103
6104         Restrict the alphabet of a regexp
6105
6106         Use offsets for various lens types
6107
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
6111         subtree combinator.
6112
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.
6116
6117         libfa: handle regexps with embedded NUL characters
6118         So far, the API promised that we could do that, but that wasn't implemented.
6119
6120         fa_compile: accept regexps with embedded NUL's
6121
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
6125
6126         * src/builtin.c (tree_clear_glue): primitive clear function for use in tests
6127
6128 2009-08-31  David Lutterkort  <lutter@redhat.com>
6129
6130         Utility function xasprintf
6131         Like asprintf, but don't leave first arg in limbo on error
6132
6133         *  src/internal.h (xasprintf): new prototype
6134         *  src/internal.c (xasprintf): new function
6135
6136 2009-08-31  David Lutterkort  <lutter@redhat.com>
6137
6138         regexp_release: allow NULL regexp
6139
6140         * src/augeas.c: do not read past the end of the load path
6141
6142 2009-08-14  David Lutterkort  <lutter@redhat.com>
6143
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
6147
6148         Fixes bug #68
6149
6150 2009-08-12  David Lutterkort  <lutter@redhat.com>
6151
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
6154         manner.
6155
6156           * src/transform.c (filter_generate): make a copy of gl_pathv
6157
6158 2009-08-10  David Lutterkort  <lutter@redhat.com>
6159
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.
6165
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
6169
6170         Fixes bug #79
6171
6172 2009-08-10  David Lutterkort  <lutter@redhat.com>
6173
6174         Pass symtab explicitly into pathx_symtab_remove_descendants
6175
6176 2009-08-06  David Lutterkort  <lutter@redhat.com>
6177
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
6183
6184         Fixes bug #78
6185
6186 2009-08-06  David Lutterkort  <lutter@redhat.com>
6187
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;
6190         instead of
6191
6192           /augeas/files/FILE/path      = /files/FILE
6193           /augeas/files/FILE/lens/info = ...
6194           /augeas/files/FILE/lens/id = 0x...
6195
6196         we only record
6197
6198           /augeas/files/FILE/path  = /files/FILE
6199           /augeas/files/FILE/lens  = ...
6200
6201         The id wasn't useful to anybody, and the lens info is useful for debugging
6202         at best
6203
6204 2009-08-06  David Lutterkort  <lutter@redhat.com>
6205
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
6209
6210 2009-08-06  David Lutterkort  <lutter@redhat.com>
6211
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
6216         nodes.
6217
6218           * src/augeas.c (aug_defnode): call pathx_symtab_assign_tree after
6219             creating a node
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
6224
6225 2009-08-05  David Lutterkort  <lutter@redhat.com>
6226
6227         * src/lexer.l: allow DOS line endings
6228         Accept \r\n as a line ending in addition to \n
6229
6230         Fixes RH Bugzilla 514712
6231
6232 2009-08-04  Matthew Booth  <mbooth@redhat.com>
6233
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 (")
6237
6238         This change means that explicitly parsed values will remove quotes in the
6239         get directory and insert them in the put direction.
6240
6241         Currently, only the following entries are explicitly parsed:
6242         * Option
6243         * Screen
6244         * InputDevice
6245         * Driver
6246         * SubSection
6247         * Identifier
6248         * VideoRam
6249         * DefaultDepth
6250         * Device
6251         * All entries in the Display Subsection
6252
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.
6256
6257 2009-08-04  Matthew Booth  <mbooth@redhat.com>
6258
6259         Add more specific entry handlers to xorg.conf
6260         Additionally handle:
6261         * Driver
6262         * Identifier
6263         * VideoRam
6264         * DefaultDepth
6265
6266         This covers all entries in the default configuration.
6267
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.
6271
6272 2009-08-04  Matthew Booth  <mbooth@redhat.com>
6273
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
6277         understand:
6278
6279         * Screen, in ServerLayout
6280         * InputDevice, in ServerLayout
6281         * SubSection "Display" ..., in Screen
6282
6283         This patch adds support for those values, so that the default xorg.conf on
6284         Red Hat/Fedora systems now parses.
6285
6286         It should also add support for all directives in the Display subsection,
6287         however they are not covered by the test.
6288
6289 2009-07-31  Marc Fournier  <marc.fournier@camptocamp.com>
6290
6291         vim: extra carriage return caused a parse error
6292
6293 2009-07-23  Jim Meyering  <meyering@redhat.com>
6294
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.
6299
6300 2009-07-16  David Lutterkort  <lutter@redhat.com>
6301
6302         * src/Makefile.am: link libfa with gnulib, needed on AIX
6303
6304 2009-07-14  Bruno Cornec  <Bruno.Cornec@hp.com>
6305
6306         * doc/augeas.vim: vi syntax highlighting for .aug files
6307
6308 2009-07-13  David Lutterkort  <lutter@redhat.com>
6309
6310         Version 0.5.2
6311
6312 2009-07-09  David Lutterkort  <lutter@redhat.com>
6313
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
6319         unchanged.
6320
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
6324
6325         This bug was introduced in commit 7278965b
6326
6327 2009-07-08  David Lutterkort  <lutter@redhat.com>
6328
6329         Ntp: allow additional options for server etc.
6330         Allow options listed on http://doc.ntp.org/4.2.4/confopt.html
6331
6332         Fixes bug #72 reported by Micah
6333
6334 2009-07-08  David Lutterkort  <lutter@redhat.com>
6335
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
6339
6340         Fixes bug #74 reported by Micah
6341
6342 2009-07-08  Jim Meyering  <meyering@redhat.com>
6343
6344         build: ignore generated test files
6345         * tests/.gitignore: Remove file.
6346         * .gitignore: ignore tests/lens-*.sh
6347
6348 2009-07-08  David Lutterkort  <lutter@redhat.com>
6349
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
6353
6354         Fixes part of bug #67 reported by Micah
6355
6356 2009-07-08  David Lutterkort  <lutter@redhat.com>
6357
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
6361
6362         Fixes part of bug #67 reported by Micah
6363
6364 2009-07-08  David Lutterkort  <lutter@redhat.com>
6365
6366         * configure.ac: use AC_SYS_LARGEFILE
6367         Suggested by Jeff Johnson <n3npq@mac.com>
6368
6369 2009-07-08  David Lutterkort  <lutter@redhat.com>
6370
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.
6374
6375         Reported and fix suggested by Jeff Johnson <n3npq@mac.com>
6376
6377 2009-06-26  Jim Meyering  <meyering@redhat.com>
6378
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
6384         sync with reality.
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
6391
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])
6397
6398 2009-06-26  Marc Fournier  <marc.fournier@camptocamp.com>
6399
6400         Yum: also read files in /etc/yum/pluginconf.d
6401
6402 2009-06-16  David Lutterkort  <lutter@redhat.com>
6403
6404         Inittab: clean up formatting some
6405
6406 2009-06-16  Matt Palmer  <matt@anchor.net.au>
6407
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.
6411
6412         Map comments as '#comment' nodes
6413
6414 2009-06-16  David Lutterkort  <lutter@redhat.com>
6415
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
6421
6422 2009-06-15  Jim Meyering  <meyering@redhat.com>
6423
6424         build: fix "make distcheck" failure
6425         * src/Makefile.am (EXTRA_DIST): Add fa_sym.version.
6426
6427 2009-06-12  Anders F Bjorklund  <afb@users.sourceforge.net>
6428
6429         * tests/augtest: convert darwin's double slashes to single slash
6430
6431         * test-test-preserve.sh: work with BSD ls, as well as GNU ls
6432         Needed to make the test pass on OS/X
6433
6434 2009-06-11  David Lutterkort  <lutter@redhat.com>
6435
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
6439
6440 2009-06-11  Anders F Björklund  <afb@users.sourceforge.net>
6441
6442         configure: do not use version script if the linker doesn't support it
6443         That is the case on OS X
6444
6445         Fixes part of ticket #66
6446
6447 2009-06-11  Anders F Björklund  <afb@users.sourceforge.net>
6448
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.
6452
6453         Fixes part of ticket #66
6454
6455 2009-06-11  Anders F Björklund  <afb@users.sourceforge.net>
6456
6457         * src/augtool.c: add missing include for ctype.h
6458         Part of fix for ticket #66
6459
6460 2009-06-09  David Lutterkort  <lutter@redhat.com>
6461
6462         Version 0.5.1
6463
6464         * tests/test-put-symlink.sh: fix broken test
6465         - use lenses in ../lenses
6466         - fix typo: HOSTS_AUGSAVE, not HOSTS_AGSAVE
6467
6468         * bootstrap: use getline module from gnulib
6469
6470         * src/augtool.c: initialize 'line' to NULL
6471
6472 2009-06-05  David Lutterkort  <lutter@redhat.com>
6473
6474         Logrotate (hooks): simplify to speed up typechecker
6475
6476         Logrotate: make newline at end of script optional
6477
6478         * src/put.c (put_store): escape regexp before printing
6479
6480         * src/pathx.c: coerce the operands of 'and'/'or' to boolean
6481         Fixes bug #44
6482
6483         * src/lexer.l: allow empty regexps
6484         Fixes bug #34
6485
6486         Dnsmasq: process files in /etc/dnsmasq.d/*
6487         Fixes bug #65 reported by abnormaliti
6488
6489 2009-06-01  David Lutterkort  <lutter@redhat.com>
6490
6491         * src/augtool.c: allow comments starting with '#'
6492
6493 2009-05-29  David Lutterkort  <lutter@redhat.com>
6494
6495         Whitespace cleanup (no functional change)
6496         Remove trailing whitespace
6497
6498 2009-05-29  David Lutterkort  <lutter@redhat.com>
6499
6500         Ntp: support more commands
6501         * process 'broadcastdelay'
6502         * process enable/disable flags
6503         * process leapfile
6504
6505         Minor amount of code cleanup
6506
6507         Fixes bug #62, reported by Frank Sweetser
6508
6509 2009-05-29  David Lutterkort  <lutter@redhat.com>
6510
6511         Fix grammar docs (production for PrimaryExpr was wrong)
6512
6513         * tests/root/etc/: add group and passwd files
6514
6515 2009-05-28  Matt Palmer  <matt@anchor.net.au>
6516
6517         Interfaces: various bug fixes
6518         * disallow end-of-line comments
6519         * support generic allow-* stanzas
6520
6521         Interfaces: accept options containing '_'
6522         Bug reported by Jonas Eriksson
6523
6524 2009-05-28  David Lutterkort  <lutter@redhat.com>
6525
6526         * tests/grub-rm-entry.rb: 'savedefault' indented by '\t', not ''
6527
6528 2009-05-14  David Lutterkort  <lutter@redhat.com>
6529
6530         Modprobe: handle comments at the end of a line
6531
6532 2009-04-13  David Lutterkort  <lutter@redhat.com>
6533
6534         Grub: allow optional argument for savedefault command
6535
6536         Grub: parse arguments to chainloader command
6537
6538         Grub: parse arguments for terminal command
6539
6540         Grub: parse individual arguments for serial command
6541
6542         Grub: parse kernel and module arguments
6543
6544         Grub: simplify comment_re to speed up typecheck
6545
6546 2009-04-13  Raphael Pinson  <raphink@gmail.com>
6547
6548         Cron: add a "time" node
6549
6550 2009-04-13  David Lutterkort  <lutter@redhat.com>
6551
6552         * src/augeas.h: improve some comments
6553
6554 2009-04-09  David Lutterkort  <lutter@redhat.com>
6555
6556         * src/augparse.c: add --notypecheck option
6557
6558 2009-04-08  Raphael Pinson  <raphink@gmail.com>
6559
6560         Pbuilder: lens and tests for Debian's personal builder
6561
6562         Shellvars: map comments with Util.comment and Util.empty
6563
6564         Shellvars: parse 'export' and 'unset' commands
6565
6566 2009-04-08  David Lutterkort  <lutter@redhat.com>
6567
6568         Add Cron to the dosumentation menu
6569
6570 2009-04-08  Raphael Pinson  <raphink@gmail.com>
6571
6572         Cron: new lens and test
6573         Parses /etc/crontab and /etc/cron.d
6574
6575 2009-04-08  Raphael Pinson  <raphink@gmail.com>
6576
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).
6580
6581         Backslashes are now allowed only in the middle of sto_to_com and
6582         sto_to_com_cmnd.
6583
6584         Additionally, add a line with backslashes in test_sudoers to prevent
6585         regressions.
6586
6587 2009-04-08  Raphael Pinson  <raphink@gmail.com>
6588
6589         Xinetd: map comments using Util.comment
6590
6591         Squid: allow indentation of entries
6592
6593 2009-04-07  Raphael Pinson  <raphink@gmail.com>
6594
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
6599         ticket #61).
6600
6601 2009-04-07  David Lutterkort  <lutter@redhat.com>
6602
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.
6606
6607 2009-04-07  Raphael Pinson  <raphink@gmail.com>
6608
6609         Ntp: add fudge directive
6610         Fixes ticket #59
6611
6612 2009-04-07  David Lutterkort  <lutter@redhat.com>
6613
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.
6617
6618         Bug reported by Michael Conigliaro <mike@conigliaro.org>
6619
6620 2009-04-03  David Lutterkort  <lutter@redhat.com>
6621
6622         * src/augtool.c: new option --noautoload
6623
6624         * src/augeas.h: expose flag to suppress module autoload
6625         With AUG_NO_MODL_AUTOLOAD, modules are only loaded when they are needed.
6626
6627         * src/transform.c (filter_generate): avoid segfault if we never call glob
6628
6629         Php: some more tests, sample php.ini in test root
6630
6631         Rx: remove \b and \d escapes
6632
6633 2009-04-03  Raphael Pinson  <raphink@gmail.com>
6634
6635         Modify some existing lenses to use new utility modules
6636         Changes Aliases, Exports, Fstab, Group, and Monit
6637
6638         Also exposes comments in /etc/aliases as #comment nodes
6639
6640 2009-04-03  Raphael Pinson  <raphink@gmail.com>
6641
6642         New utility modules Build, Rx, and Sep
6643
6644 2009-04-03  Marc Fournier  <marc.fournier@camptocamp.com>
6645
6646         Php: added default path on redhat
6647
6648 2009-04-02  Raphael Pinson  <raphink@gmail.com>
6649
6650         Use readline only when stdin is a tty, use getline otherwise
6651
6652 2009-04-01  Marc Fournier  <marc.fournier@camptocamp.com>
6653
6654         Vsftpd: several fixes
6655         * map comments as #comment
6656         * handle empty lines
6657         * find vsftpd.conf on Fedora/RHEL
6658
6659 2009-03-27  David Lutterkort  <lutter@redhat.com>
6660
6661         Iptables: fix ticket #51
6662          * allow more characters in chain names
6663          * allow comments mixed in with chains and rules
6664
6665         * augeas.spec.in: fadot is not installed yet
6666
6667         Version 0.5.0
6668
6669         Fix build problems uncovered by distcheck
6670
6671         * src/get.c (get_quant_star): do not leak registers
6672
6673         Some more test files
6674
6675         Fix uninitialized variables found by optimizer
6676
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.
6679
6680         * src/hash.c: mark some asserts as expensive
6681
6682         * tests/root/etc/krb5.conf: simple example file
6683
6684         Krb5: lens and tests for /etc/krb5.conf
6685
6686 2009-03-25  Raphael Pinson  <raphink@gmail.com>
6687
6688         Grub: add support for Debian's update-grub (ticket #50)
6689         Bug reported by Micah Anderson
6690
6691 2009-03-25  David Lutterkort  <lutter@redhat.com>
6692
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.
6696
6697         Thanks to Nate Foster for the inspiration of this
6698
6699 2009-03-25  David Lutterkort  <lutter@redhat.com>
6700
6701         Sudoers: produce at most one negate node
6702         Even if there are multiple '!' signs, only produce one negate node.
6703
6704 2009-03-25  Raphael Pinson  <raphink@gmail.com>
6705
6706         Sudoers: fix ticket #48
6707         * make a difference between boolean and non boolean values for integers and
6708           strings
6709         * allow multiple negate flags (odd/even numbers change the behaviour)
6710         * add optional double quotes to integer and string field
6711
6712         Bug reported by Frank Sweetser
6713
6714 2009-03-25  David Lutterkort  <lutter@redhat.com>
6715
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
6718         with
6719           set /foo ""
6720         and
6721           set /foo
6722
6723 2009-03-24  David Lutterkort  <lutter@redhat.com>
6724
6725         * src/augeas.c (aug_init): make it easier to override distributed lenses
6726         Make the default load path
6727
6728            $(datadir)/augeas/lenses:$(datadir)/augeas/lenses/dist
6729
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
6733         ones we ship.
6734
6735 2009-03-24  David Lutterkort  <lutter@redhat.com>
6736
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.
6741
6742         * src/pathx.c (eval_filter): correctly hande realloc of value_pool
6743
6744         * src/pathx.c (expand_tree): ensure we start with a nonempty lp_trace
6745
6746         * src/augtool.c: new 'defvar' command
6747
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.
6751
6752 2009-03-22  David Lutterkort  <lutter@redhat.com>
6753
6754         Add FilterExpr to path expression grammar
6755         This allows using constructs like $foo/some/path and $foo[2]
6756
6757         * src/augeas.c (parse_user_pathx): new parameter need_nodeset
6758
6759         * src/pathx.c (pathx_parse): new parameter need_nodeset
6760
6761         * src/pathx.c (ns_filter): new function
6762
6763         * src/pathx.c: rename E_LOCPATH to E_FILTER
6764
6765         * src/pathx.c (clone_value): new function
6766
6767 2009-03-21  David Lutterkort  <lutter@redhat.com>
6768
6769         * src/pathx.c (release_value): factor logic into separate function
6770
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.
6775
6776         * src/pathx.c (pathx_eval): factor eval into a function
6777
6778         * examples/fadot: remove, checked in by mistake
6779
6780 2009-03-20  David Lutterkort  <lutter@redhat.com>
6781
6782         * .gitignore: ignore examples/fadot
6783
6784         * src/get.c: rename 'Short iteration' to a more helpful message
6785
6786         * src/transform.c (store_error): report which lens failed
6787
6788         * src/transform.c (store_error): ignore errors from err_set
6789
6790         * src/transform.c (store_error): calculate line number/ofs for error
6791
6792         * src/transform.c (err_set): new function
6793
6794 2009-03-20  Francis Giraldeau  <francis.giraldeau@revolutionlinux.com>
6795
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
6799         of FA's.
6800
6801 2009-03-19  David Lutterkort  <lutter@redhat.com>
6802
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.
6806
6807         * src/augeas.c: remove some internal uses of pathx_parse
6808
6809         * src/augeas.c: create various /augeas nodes when they go missing
6810
6811         * src/put.c (create_concat): fix goofy error message
6812
6813         Update and refresh man pages
6814
6815         * src/augtool.c: add --noload option
6816
6817         Validate trees representing a transform before using them
6818
6819         * tests/test-load.c: new test for aug_load
6820
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
6824         aug_load.
6825
6826         * src/augtool.c: new 'load' command
6827
6828         * src/augeas.h (aug_load): new public function
6829
6830         * src/transform.h: use tree encoded transforms
6831
6832         * src/lens.c (lens_release): allow NULL lens to be passed in
6833
6834         * src/syntax.h (lens_lookup): new function
6835
6836         * src/augeas.c: report transforms under /augeas/load
6837
6838         Rename AUG_NO_DEFAULT_LOAD to AUG_NO_MODL_AUTOLOAD
6839
6840         Limits (filter): no need to exclude anything
6841
6842 2009-03-19  Raphael Pinson  <raphink@gmail.com>
6843
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.
6847
6848         Problem reported by Mark Drayton (ticket #47)
6849
6850 2009-03-19  David Lutterkort  <lutter@redhat.com>
6851
6852         Lokkit: new lens and test
6853
6854 2009-03-17  David Lutterkort  <lutter@redhat.com>
6855
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
6860
6861 2009-03-13  David Lutterkort  <lutter@redhat.com>
6862
6863         * configure.ac: bump major version of libfa
6864
6865         * src/fa.h (fa_as_regexp): cleaner prototype
6866
6867         * src/fa.h (fa_ambig_example): cleaner prototype
6868
6869         * src/fa.h (fa_example): cleaner prototype
6870
6871         * src/fa.h (fa_compile): pass in size of regexp
6872
6873         * src/fa.h: use 'struct fa *' instead of fa_t
6874
6875 2009-03-13  David Lutterkort  <lutter@redhat.com>
6876
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
6880         been.
6881
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.
6884
6885 2009-03-13  David Lutterkort  <lutter@redhat.com>
6886
6887         * Makefile.maint: different setup at home
6888
6889 2009-03-12  David Lutterkort  <lutter@redhat.com>
6890
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
6894
6895         Modprobe: lens and tests for modprobe.conf
6896
6897         * src/fa.c (re_cset_as_string): turn '[^\n]' into '.'
6898
6899         Place Sudoers and Util under LGPLv2+
6900         Raphael Pinson agreed to changing the license for these to LGPLv2+ like the
6901         rest of Augeas.
6902
6903 2009-03-09  David Lutterkort  <lutter@redhat.com>
6904
6905         Version 0.4.2
6906
6907         Logrotate: process 'minsize 1M' rule
6908         logrotate allows unit suffixes 'k', 'M' and 'G' for 'size' and 'minsize'
6909
6910         Squid: add squid.conf from Fedora 11 rawhide
6911
6912         * src/builtin.c: new builtins Sys.getenv and Sys.read_file
6913
6914         * src/syntax.h (dup_string): duplicate a string
6915
6916         * src/internal.h (xstrerror): new function
6917
6918 2009-03-09  Francois Deppierraz  <francois.deppierraz@camptocamp.com>
6919
6920         Test the Debian Lenny sample squid.conf
6921
6922 2009-03-09  Francois Deppierraz  <francois.deppierraz@camptocamp.com>
6923
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:
6926
6927         fgrep TAG squid-2.7.STABLE6/src/squid.conf.default  | awk '{ print "                | \""$3"\"" }' | sort > /tmp/squid2.7
6928
6929         fgrep TAG squid-3.HEAD-20090308/src/squid.conf.documented | awk '{ print "                | \""$3"\"" }' | sort > /tmp/squid3-HEAD
6930
6931         cat /tmp/squid2.7 /tmp/squid3-HEAD | sort | uniq
6932
6933 2009-03-08  David Lutterkort  <lutter@redhat.com>
6934
6935         * tests/xpath.tests: Hosts lens puts comments into #comment nodes
6936
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
6940
6941 2009-03-06  David Lutterkort  <lutter@redhat.com>
6942
6943         Sshd: map comments as '#comment' nodes
6944
6945         Change the label for comment nodes to '#comment'
6946
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.
6952
6953         * src/augeas.c (aug_init): always create /files
6954
6955         Sshd: add test showing how to add a Subsystem
6956
6957 2009-03-03  David Lutterkort  <lutter@redhat.com>
6958
6959         * Makefile.maint: add autogen target
6960
6961         * src/pathx.c (eval_rel): for numbers, '<' and '<=' were reversed
6962
6963         Postfix_main: handle continuation lines
6964
6965         * src/pathx.c: fix some comments
6966
6967 2009-03-02  David Lutterkort  <lutter@redhat.com>
6968
6969         Version 0.4.1
6970
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'.
6975
6976         * src/pathx.c: function label() returning the label of the ctx node
6977
6978         * src/pathx.c: make sure ['foo' != 'foo'] is false
6979
6980 2009-03-02  David Lutterkort  <lutter@redhat.com>
6981
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
6985         garbage.
6986
6987         Bug reported by Jan Kupec
6988
6989 2009-03-02  David Lutterkort  <lutter@redhat.com>
6990
6991         * src/pathx.c: it is an error if we don't consume the whole expression
6992
6993 2009-02-27  David Lutterkort  <lutter@redhat.com>
6994
6995         * tests/test-event-saved.sh: make sure fuiles are writable by owner
6996
6997 2009-02-25  David Lutterkort  <lutter@redhat.com>
6998
6999         Plug a few memory leaks
7000
7001         Remove files whose tree under /files was deleted
7002         When doing rm /files/etc/hosts, we now delete the file /etc/hosts
7003         on save
7004
7005         Move path formatting functions around
7006         Move path_expand and format_path to internal.c
7007         Rename format_path to path_of_tree
7008
7009         * src/augeas.c (tree_find): helper for getting a tree node
7010
7011 2009-02-24  David Lutterkort  <lutter@redhat.com>
7012
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
7016
7017         Record saved files in transform_save, not tree_save
7018
7019         * src/augeas.c (tree_unlink): remove and free a subtree
7020
7021         * src/transform.h: move transform decls out of syntax.h
7022
7023         Util.stdexcl: exclude .augsave and .augnew files
7024
7025 2009-02-20  David Lutterkort  <lutter@redhat.com>
7026
7027         * src/lexer.l: correct location info for strings and regexps
7028
7029         * src/get.c: check for valid match before calling token()
7030
7031 2009-02-19  David Lutterkort  <lutter@redhat.com>
7032
7033         * src/parser.y: do not allow epsilon as a tree constant
7034         This grammar mistake made epsilon a valid expression
7035
7036         * src/fa.c: cache hash values in the state
7037         This gives about a 15% performance improvement in typechecking
7038         the logrotate lens
7039
7040 2009-02-18  David Lutterkort  <lutter@redhat.com>
7041
7042         * src/pathx.c: allow '(' Expr ')'
7043
7044         * src/pathx.c: add 'and' and 'or' operators
7045
7046         * src/pathx.c: add relational expressions '>', '<', '>=', '<='
7047
7048         * src/pathx.c: add count() function
7049
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)'
7053
7054         * src/pathx.c: add position() function
7055
7056         * src/pathx.c: allow '=' and '!=' of numbers
7057
7058 2009-02-18  David Lutterkort  <lutter@redhat.com>
7059
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.
7063
7064         This requires that we compute nodesets explicitly.
7065
7066 2009-02-18  David Lutterkort  <lutter@redhat.com>
7067
7068         Logrotate: small fixes
7069         * recognize 'yearly' schedule
7070         * allow whitespaces around { and }
7071
7072 2009-02-17  David Lutterkort  <lutter@redhat.com>
7073
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
7077         that.
7078
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'
7083
7084         Always do REGS_REALLOCATE for regexp match registers
7085
7086         * src/regexp.c: clean up syntax options
7087
7088         * src/put.c: remove outdated debug msgs and comments
7089
7090         * src/internal.h: Remove bogus DEBUG define
7091
7092         Ntp: enhance lens
7093         These enhancements are needed to make the Ntp.lns process the default
7094         /etc/ntp.conf on Fedora
7095
7096 2009-02-16  David Lutterkort  <lutter@redhat.com>
7097
7098         * src/syntax.c: print tests results in the same form we read them
7099
7100 2009-02-13  David Lutterkort  <lutter@redhat.com>
7101
7102         Allow passing NULL regexps in some regexp routines
7103
7104 2009-02-13  Raphael Pinson  <raphink@gmail.com>
7105
7106         Xorg: new lens and tests
7107
7108 2009-02-11  David Lutterkort  <lutter@redhat.com>
7109
7110         Test that an invalid regexp makes module loading fail
7111
7112         Services: various small fixes to process Fedora's /etc/services
7113
7114         * tests/test-get.sh: print all error info on failure
7115
7116         Better error mesages when re match fails during get/put
7117
7118         * src/lens.c: throw exception on regexp syntax errors
7119
7120         * src/fa.c: test for invalid ranges like [z-a]
7121
7122 2009-02-11  Raphael Pinson  <raphink@gmail.com>
7123
7124         Lens and test for /etc/services
7125
7126 2009-02-11  David Lutterkort  <lutter@redhat.com>
7127
7128         * src/augtool.c (cmd_match): check return from aug_match more defensively
7129
7130 2009-02-06  David Lutterkort  <lutter@redhat.com>
7131
7132         Version 0.4.0
7133
7134         Use printf instead of 'echo -e' in tests
7135         Printf is more portable
7136
7137         Fix compilation on OpenSolaris
7138         * src/pathx.c (position): assert not marked as noreturn
7139
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
7141
7142         * src/pathx.c: remove the value() function, it's redundant with '.'
7143
7144         * pathx.c: when comparing strings consider NULL == ""
7145
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'.
7150
7151         * tests/grub-rm-entry.rb: fix test failure
7152
7153         * tests/augtest: do not typecheck everything
7154         The typecheck is redundant (we already do that when running lens tests) and
7155         really slow
7156
7157 2009-02-06  David Lutterkort  <lutter@redhat.com>
7158
7159         Grub: process 'savedefault' in boot stanza
7160         Also, allow keywords to be preceded by whitespace
7161
7162         Fixes ticket #36
7163
7164 2009-02-06  David Lutterkort  <lutter@redhat.com>
7165
7166         Minor whitespace cleanup
7167
7168 2009-02-02  Free Ekanayaka  <free@64studio.com>
7169
7170         Lens and tests for DarkIce
7171         See http://darkice.tyrell.hu/
7172
7173 2009-02-01  David Lutterkort  <lutter@redhat.com>
7174
7175         * src/augeas.c: use ALLOC instead of CALLOC
7176
7177         * augeas.c (aug_init): check an allocation failure
7178
7179         * src/internal.c (escape, unescape): check allocation failures
7180
7181         * src/pathx.c (free_state): allow NULL state
7182
7183         * src/augeas.c (init_root): check for failure of strdup
7184
7185 2009-01-30  David Lutterkort  <lutter@redhat.com>
7186
7187         * src/pathx.c: factor test if a step matches into step_matches
7188         This also fixes a problem matching, test also included
7189
7190         * src/pathx.c: use bool for boolean values
7191
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
7195
7196         * src/transform.c: use POSIX conform FNM_PATHNAME, nut GNU alias
7197
7198         * src/get.c: remove braindead use of alloca
7199
7200         * tests/test-get.sh: use new descendant syntax to find errors
7201
7202         Remove unneeded call to pathx_parse in aug_match
7203
7204         Introduce parse_user_pathx to report errors
7205         If user-supplied path expressions have errors, report them in
7206         /augeas/pathx/error
7207
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
7212         expressions.
7213
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.
7217
7218         More xpath tests; allow ... in tests
7219
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
7223           tree node any more
7224
7225 2009-01-30  David Lutterkort  <lutter@redhat.com>
7226
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
7231
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.
7235
7236         Also add tests to check path expression evaluation
7237
7238 2009-01-30  David Lutterkort  <lutter@redhat.com>
7239
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.
7244
7245         Notes on new XPath grammar
7246
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
7250
7251 2009-01-29  David Lutterkort  <lutter@redhat.com>
7252
7253         Grub: support color directive
7254
7255 2009-01-26  David Lutterkort  <lutter@redhat.com>
7256
7257         Version 0.3.6
7258
7259 2009-01-26  Dominique Dumont  <dominique.dumont@hp.com>
7260
7261         Sshd: add documentation on usage
7262
7263 2009-01-25  David Lutterkort  <lutter@redhat.com>
7264
7265         Add indented puppet.conf to test root
7266
7267 2009-01-22  David Lutterkort  <lutter@redhat.com>
7268
7269         Fix bug #25 - allow indented entries in puppet.conf
7270         * lenses/inifile.aug: add new indented_entry and indented_title
7271           lenses
7272         * lenses/puppet.aug: use the indented_* lenses
7273         * lenses/tests/test_puppet.aug: test with indented entries
7274
7275 2009-01-19  David Lutterkort  <lutter@redhat.com>
7276
7277         Report version and legal save modes in /augeas/version
7278
7279 2009-01-17  David Lutterkort  <lutter@redhat.com>
7280
7281         * ref.h: include limits.h, since we use UINT_MAX
7282
7283 2009-01-16  David Lutterkort  <lutter@redhat.com>
7284
7285         Mark up code in documentation comments for Dpkg and Exports
7286
7287 2009-01-16  Robin Lee Powell  <rlpowell@digitalkingdom.org>
7288
7289         Documentation for Exports and Dpkg
7290
7291 2009-01-13  David Lutterkort  <lutter@redhat.com>
7292
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
7296         * add a test
7297
7298 2009-01-13  Bryan Kearney  <bkearney@redhat.com>
7299
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
7304
7305 2009-01-08  Jim Meyering  <meyering@redhat.com>
7306
7307         comment typos
7308
7309         plug a leak
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)
7325
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.
7329
7330 2009-01-04  Arnaud Gomes-do-Vale  <arnaud.gomes@ircam.fr>
7331
7332         * src/Makefile.am: fix bz #478619 - do not use abspath
7333
7334 2009-01-03  Robin Lee Powell  <rlpowell@digitalkingdom.org>
7335
7336         Dpkg: new lens and test
7337
7338 2009-01-03  David Lutterkort  <lutter@redhat.com>
7339
7340         Php: expand filter slightly
7341         Suggested by Robin Lee Powell <rlpowell@digitalkingdom.org>
7342
7343 2008-12-29  David Lutterkort  <lutter@redhat.com>
7344
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
7348
7349         Bug reported by Robin Lee Powell <rlpowell@digitalkingdom.org>
7350
7351 2008-12-27  Free Ekanayaka  <free@64studio.com>
7352
7353         Add soma lens and test
7354
7355         Add limits lens and test
7356
7357 2008-12-24  David Lutterkort  <lutter@redhat.com>
7358
7359         * autogen.sh: remove bogus argument to configure
7360
7361 2008-12-24  Marc Fournier  <marc.fournier@camptocamp.com>
7362
7363         Php, Gdm: exclude literal ".anon" from title, not regexp /.anon/
7364
7365 2008-12-24  Free Ekanayaka  <free@64studio.com>
7366
7367         Phpvars: allow whitespaces before the \n in the <?php head line
7368
7369 2008-12-23  David Lutterkort  <lutter@redhat.com>
7370
7371         Version 0.3.5
7372
7373         * transform.c (transfer_file_attrs): ignore SELinux failures if filesystem   does not support extended attributes
7374
7375         * transform.c (clone_file): fix #32; only copy if   /augeas/save/copy_if_rename_fails exists
7376
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.
7380
7381 2008-12-23  Free Ekanayaka  <free@64studio.com>
7382
7383         Add lens and test for /etc/group
7384
7385 2008-12-23  David Lutterkort  <lutter@redhat.com>
7386
7387         Simpler interface and implementation for path_find_one
7388
7389         Add path_expand_tree
7390         Instead of calling path_find_one/tree_create
7391
7392         Move implementation dealing with path expressions into separate file
7393
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.
7397
7398 2008-12-23  David Lutterkort  <lutter@redhat.com>
7399
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.
7404
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.
7408
7409 2008-12-23  David Lutterkort  <lutter@redhat.com>
7410
7411         Rename seg_siblings to tree_siblings
7412
7413         Add an explicit parent pointer to the tree
7414
7415 2008-12-23  Free Ekanayaka  <free@64studio.com>
7416
7417         Lens and test for config files using PHP-style variables
7418         Process /etc/squirrelmail/config.php
7419
7420 2008-12-23  Marc Fournier  <marc.fournier@camptocamp.com>
7421
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).
7426
7427 2008-12-23  David Lutterkort  <lutter@redhat.com>
7428
7429         * fa.c: mark '.' as a special character that needs to be escaped
7430
7431 2008-12-22  David Lutterkort  <lutter@redhat.com>
7432
7433         Notes on the expanded XPath notation
7434
7435 2008-12-22  Free Ekanayaka  <free@64studio.com>
7436
7437         Add lens and test for /etc/passwd
7438
7439         Shellvars: process two more files on Debian
7440         Add /etc/arno-iptables-firewall/debconf.cfg and /etc/cron-apt/config
7441
7442         Add lenses and tests for postfix's main.cf and master.cf
7443
7444         Squid: new lens for squid.conf
7445
7446         Webmin: new lens
7447
7448 2008-12-16  David Lutterkort  <lutter@redhat.com>
7449
7450         Shellvars: load /etc/sysconfig/sendmail
7451
7452 2008-12-03  David Lutterkort  <lutter@redhat.com>
7453
7454         Xinetd: make sure equal sign is surrounded by spaces
7455         Fix ticket #30
7456
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
7460
7461 2008-11-20  David Lutterkort  <lutter@redhat.com>
7462
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.
7466
7467 2008-11-19  David Lutterkort  <lutter@redhat.com>
7468
7469         Only try to save backup file if original exists
7470         * transform.c (transform_save): check that original exists before
7471         creating backup
7472
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
7477
7478 2008-11-05  David Lutterkort  <lutter@redhat.com>
7479
7480         * Makefile.maint: add target tag-release
7481
7482         Version 0.3.4
7483
7484         * test-preserve.sh: check that augtool -b produces a backup
7485
7486 2008-10-30  David Lutterkort  <lutter@redhat.com>
7487
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
7495
7496 2008-10-24  David Lutterkort  <lutter@redhat.com>
7497
7498         Version 0.3.3
7499
7500         * Makefile.maint: add upload target
7501
7502         Modest beginnings of a maiintainer Makefile
7503         * Makefile.maint: new file
7504
7505         Undo API breakage introduced in commit 48c285c
7506         * src/augeas.c (aug_save): return 0 on success, instead of the number of
7507           files changed
7508         * src/augtool.c (cmd_save): get the number of files changed from aug_match
7509
7510         build: use LIB_SELINUX as set by gnulib
7511         * configure.ac: do not set up LIB_SELINUX, gnulib does that
7512
7513 2008-10-22  Sylvain Baubeau  <bob@glumol.com>
7514
7515         Grub: support "rootnoverify" and "chainloader" directives
7516
7517 2008-10-21  David Lutterkort  <lutter@redhat.com>
7518
7519         Version 0.3.2
7520
7521         test-preserve.sh: do not check SELinux context on non-SELinux systems
7522
7523         test-events-saved.sh: sort the list of saved files
7524
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.
7530
7531         Generate ChangeLog from git history
7532
7533         file_replace: preserve SELinux context
7534         Copy the SELinux context from the existing file.
7535
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
7540         user has set.
7541
7542 2008-10-20  David Lutterkort  <lutter@redhat.com>
7543
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.
7547
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
7554         in mtime.
7555
7556         Formatting changes
7557
7558 2008-10-16  Jim Meyering  <jim@meyering.net>
7559
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.
7566
7567 2008-10-13  Joel Nimety  <jnimety@perimeterusa.com>
7568
7569         Grub: add support for password directive
7570
7571 2008-10-06  Free Ekanayaka  <free@64studio.com>
7572
7573         Samba: Change default indentation and separation
7574         Match indentation of the example configuration file shipped by the upstream
7575         authors
7576
7577         Add gdm lens and associated test
7578
7579 2008-10-02  David Lutterkort  <lutter@redhat.com>
7580
7581         Ignore files based on .hgignore
7582
7583 2008-10-01  David Lutterkort  <lutter@redhat.com>
7584
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.
7589
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.
7592
7593         This also uncovered that the test rec-hosts-add.rb was broken, but still
7594         passed.
7595
7596 2008-10-01  David Lutterkort  <dlutter@redhat.com>
7597
7598         Pass --nostdinc properly when running under gdb
7599
7600         Logrotate: parse tabooext into list; add processing of a number of options
7601         Patch by Sean E. Millichamp
7602
7603 2008-09-22  David Lutterkort  <dlutter@redhat.com>
7604
7605         Grub: add support for 'serial' and 'terminal'
7606         Patch by Sean E. Millichamp
7607
7608         Add backlinks to main site
7609
7610         Remove some italics
7611
7612         Logrotate: add dateext flag
7613         Patch by Sean E. Millichamp
7614
7615 2008-09-22  David Lutterkort  <dlutter@redhat.com>
7616
7617         Various changes to the NaturalDocs support
7618         This patch changes a few things around in the NaturalDocs support:
7619
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.
7624
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
7628               path
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
7632
7633         - Various fixes to make 'make distcheck' work
7634
7635 2008-09-12  David Lutterkort  <dlutter@redhat.com>
7636
7637         Properly include test modules
7638
7639 2008-09-11  Raphael Pinson  <raphink@gmail.com>
7640
7641         Add naturaldocs support Build pdf docs
7642
7643 2008-09-09  Raphael Pinson  <raphink@gmail.com>
7644
7645         Adapt comments for NaturalDocs parsing
7646
7647         Add comments for NaturalDocs parsing
7648
7649         Add comments for NaturalDocs parsing
7650
7651         Add comments for NaturalDocs parsing Reorganize a bit
7652
7653         Adapt sudoers.aug for NaturalDocs parsing
7654
7655         Adapt augeas.h for NaturalDocs parsing
7656
7657 2008-09-08  David Lutterkort  <dlutter@redhat.com>
7658
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.
7662
7663 2008-09-08  Free Ekanayaka  <free@64studio.com>
7664
7665         Add monit lens and test
7666
7667 2008-09-06  Free Ekanayaka  <free@64studio.com>
7668
7669         Ldap: merge with Spacevars. Spacevars: process havp.config
7670         Adapt Test_ldap, since there is no Ldap.lns anymore
7671
7672 2008-09-08  David Lutterkort  <dlutter@redhat.com>
7673
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
7677
7678         augtool, augparse: add --nostdinc option
7679
7680         augtool, augparse: allow long options
7681
7682 2008-09-06  Free Ekanayaka  <free@64studio.com>
7683
7684         Shellvars: merge Sysconfig, Ifcfg; support /etc/default
7685         Merge Sysconfig and Ifcfg into Shellvars
7686
7687         Add /etc/default/* to the list of supported configuration files
7688
7689 2008-09-05  David Lutterkort  <dlutter@redhat.com>
7690
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.
7695
7696         Shellvars: use Util.eol for eol
7697
7698         test/modules: only distribute .aug files
7699
7700         Shellvars: handle space at the end of a line
7701
7702 2008-09-04  David Lutterkort  <dlutter@redhat.com>
7703
7704         Added tag release-0.3.1 for changeset 803c17b1833a
7705
7706         Release 0.3.1
7707
7708         Sysctl: lens for sysctl.conf
7709         Contributed by Sean Millichamp
7710
7711 2008-09-04  Free Ekanayaka  <free@64studio.com>
7712
7713         Add lens and test for dnsmasq.conf
7714
7715 2008-09-02  Free Ekanayaka  <free@64studio.com>
7716
7717         Add slapd.aug and test modules
7718
7719         Spacevars: Allow passing the entry keyword as a parameter
7720         Modify Ldap.lns and Test_spacevars accordingly
7721
7722 2008-08-30  Free Ekanayaka  <free@64studio.com>
7723
7724         Add samba.aug and associated test
7725
7726 2008-08-27  Free Ekanayaka  <free@64studio.com>
7727
7728         Inifile: support empty comments
7729         Empty comments are lines beginning with ";" or "#" but without any more text
7730
7731 2008-08-29  Raphael Pinson  <raphink@gmail.com>
7732
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
7738
7739 2008-09-03  David Lutterkort  <dlutter@redhat.com>
7740
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
7743         the empty string.
7744
7745 2008-09-03  David Lutterkort  <dlutter@redhat.com>
7746
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
7750         word.
7751
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.
7755
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.
7761
7762         Added tests to verify the typechecking of '?'
7763
7764 2008-09-02  David Lutterkort  <dlutter@redhat.com>
7765
7766         Minor error message improvements
7767         - Include information about the lens that produced the error if it's
7768           available
7769         - When a union during 'put' does not match, produce an error instead of
7770           aborting
7771
7772 2008-08-28  David Lutterkort  <dlutter@redhat.com>
7773
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.
7779
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
7783         an empty string.
7784
7785 2008-08-27  David Lutterkort  <dlutter@redhat.com>
7786
7787         Some files for the test root
7788
7789         A test for the del typecheck
7790
7791         Script to run lens tests through Valgrind
7792         We don't run this as part of 'make check' since it's _very_ slow.
7793
7794 2008-08-27  David Lutterkort  <dlutter@redhat.com>
7795
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.
7799
7800         The lexer bug is https://fedorahosted.org/augeas/ticket/12
7801
7802 2008-08-27  Free Ekanayaka  <free@64studio.com>
7803
7804         Dhclient lens
7805
7806 2008-08-26  Raphael Pinson  <raphink@gmail.com>
7807
7808         Add OpenVPN lens and associated test
7809
7810 2008-08-27  Free Ekanayaka  <free@64studio.com>
7811
7812         Dput: add allowed_distributions entry
7813         See man dput.cf(5) from a recent dput version (Ubuntu/hardy or
7814         Debian/lenny)
7815
7816 2008-08-26  David Lutterkort  <dlutter@redhat.com>
7817
7818         Typecheck del lens
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.
7822
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
7825         typecheck.
7826
7827 2008-08-18  Nahum Shalman  <nshalman elys com>
7828
7829         Shellvars: fix arrays so that saving works properly  * based on an IRC conversation with raphink
7830
7831 2008-08-25  David Lutterkort  <dlutter@redhat.com>
7832
7833         Acknowledge Free Ekanayaka
7834
7835 2008-08-25  Free Ekanayaka  <free@64studio.com>
7836
7837         Ldap lens
7838
7839         Spacevars lens
7840
7841 2008-08-24  Free Ekanayaka  <free@64studio.com>
7842
7843         Interfaces: new lens to process Debian's /etc/network/interfaces
7844
7845 2008-08-25  David Lutterkort  <dlutter@redhat.com>
7846
7847         Util.comment: produce #comment nodes
7848
7849 2008-08-14  Raphael Pinson  <raphink@gmail.com>
7850
7851         Inifile: complete rewrite. Also rewrite lenses using Inifile
7852         Adapt Php, Dput, Puppet and the corresponding tests to use the new Inifile
7853         module.
7854
7855         Php: allow entries outside of sections
7856         Adapt php.aug to support entries outside of sections and still map sections
7857         as labels (Fix #9)
7858
7859 2008-08-15  David Lutterkort  <dlutter@redhat.com>
7860
7861         Shellvars: one more cornercase with double quoted strings
7862
7863 2008-08-15  David Lutterkort  <dlutter@redhat.com>
7864
7865         Shellvars: much improved handling
7866         - handle single and double quoted strings correctly
7867         - parse arrays into a subtree
7868
7869         Inspired by a chat and preliminary work by nahamu
7870
7871 2008-08-15  David Lutterkort  <dlutter@redhat.com>
7872
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.
7876
7877         Fix syntax error in test
7878
7879         augl_error: Initialize info
7880
7881 2008-08-14  David Lutterkort  <dlutter@redhat.com>
7882
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.
7888
7889         Added test in test-mv.sh to test that moving at the root level works.
7890
7891 2008-08-14  David Lutterkort  <dlutter@redhat.com>
7892
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.
7898
7899 2008-08-13  Raphael Pinson  <raphink@gmail.com>
7900
7901         Add puppet.aug and associated test
7902
7903         test_php.aug: make a nice test for PHP
7904
7905         Php: simplified and based on Inifile
7906         "Slightly" simplify php.aug now that the comment issue is fixed in
7907         inifile.aug
7908
7909         Inifile: use #comment for comment fields
7910         Adapt test_dput.aug and test_inifile.aug
7911
7912         Inifile: no space around seps by default
7913
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
7921
7922         Fstab: map comments and support empty lines
7923
7924         Sudoers: clean up comment definition
7925
7926 2008-08-12  David Lutterkort  <dlutter@redhat.com>
7927
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.
7931
7932         Based on an initial patch by Kjetil Torgrim Homme <kjetilho@linpro.no>
7933
7934 2008-08-12  Raphael Pinson  <raphink@gmail.com>
7935
7936         Pam: Use eol, indent, comment and empty from Util
7937
7938         Util: add eol, indent, comment and empty
7939
7940         Pam: allow comments at the end of lines and leading spaces
7941
7942         Xinetd: better handling of whitespace
7943         - allow indented comments
7944         - allow spaces around "}" to close a service
7945
7946 2008-08-12  David Lutterkort  <dlutter@redhat.com>
7947
7948         Exports: fix failing test
7949         Exports.lns uses Hosts.comment .. since that changed, we also need to
7950         change Exports.lns
7951
7952 2008-08-12  Raphael Pinson  <raphink@gmail.com>
7953
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
7959
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
7964
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.
7969
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.
7973
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.
7979
7980         Add sudoers lens and associated test
7981
7982 2008-08-11  David Lutterkort  <dlutter@redhat.com>
7983
7984         Test for continuation lines
7985
7986 2008-08-11  David Lutterkort  <dlutter@redhat.com>
7987
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 '['.
7992
7993         Inside character classes, the backslash does not escape anything, and is
7994         treated as an ordianry character.
7995
7996         See regex(7) or
7997         http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04
7998
7999 2008-08-09  David Lutterkort  <dlutter@redhat.com>
8000
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.
8005
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
8011         dict is O(log n).
8012
8013 2008-08-09  David Lutterkort  <dlutter@redhat.com>
8014
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.
8018
8019 2008-08-08  David Lutterkort  <dlutter@redhat.com>
8020
8021         Eliminate unneeded calls to regexp_match in split_iter
8022
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.
8027
8028 2008-08-08  David Lutterkort  <dlutter@redhat.com>
8029
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
8034         constant time.
8035
8036         The same was true in a few other places: the building of a tree and of
8037         skeletons suffered from the same problem.
8038
8039         Dicts still have that problem - they need to be changed to hash tables to
8040         address this issue.
8041
8042 2008-08-08  David Lutterkort  <dlutter@redhat.com>
8043
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.
8047
8048 2008-08-07  David Lutterkort  <dlutter@redhat.com>
8049
8050         Added tag release-0.3.0 for changeset 60f2a13c2528
8051
8052         Release 0.3.0
8053
8054         Mention the exit status
8055
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
8059         the interface.
8060
8061 2008-08-07  David Lutterkort  <dlutter@redhat.com>
8062
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
8068         truncated.
8069
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
8073         test failure.
8074
8075         Fixes bug https://fedorahosted.org/augeas/ticket/1
8076
8077 2008-08-07  David Lutterkort  <dlutter@redhat.com>
8078
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.
8083
8084 2008-07-29  David Lutterkort  <dlutter@redhat.com>
8085
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 "..."'
8090
8091         Quiet the test
8092
8093 2008-07-29  Raphael Pinson  <raphink@gmail.com>
8094
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.
8098
8099 2008-07-25  Raphael Pinson  <raphink@gmail.com>
8100
8101         Fix php.aug now that inifile.aug supports spaces in values
8102
8103         Add PHP module and associated (basic) test file
8104
8105 2008-07-29  Raphael Pinson  <raphink@gmail.com>
8106
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.
8110
8111 2008-07-25  Raphael Pinson  <raphink@gmail.com>
8112
8113         Rewrite dput.aug using inifile.aug Add a few keywords from man dput.cf Fix test file after rewrite
8114
8115         Allow spaces in entry values
8116
8117         Allow spaces in titles
8118
8119         Fix empty comments in INI file
8120
8121 2008-07-29  David Lutterkort  <dlutter@redhat.com>
8122
8123         Include canonicalize.h
8124         On non-glibc systems, we need to make sure canonicalize_file_name is
8125         declared from gnulib.
8126
8127         Fail the whole test if one of the lens tests fails
8128
8129 2008-07-28  David Lutterkort  <dlutter@redhat.com>
8130
8131         Add a call to move a subtree to the public API
8132
8133 2008-07-26  David Lutterkort  <dlutter@redhat.com>
8134
8135         Refactor tree_create
8136
8137         Don't run the typechecker by default from try
8138
8139 2008-07-24  David Lutterkort  <dlutter@redhat.com>
8140
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
8144         lens.
8145
8146         Allow a key and store in each branch of a union
8147
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
8151         regexp.
8152
8153         Correctly handle saving to nonexistant files
8154
8155         Store system errors
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
8158
8159 2008-07-23  Raphael Pinson  <raphink@gmail.com>
8160
8161         Add AptPreferences module and associated test
8162
8163         Add bbhosts module and associated test
8164
8165         Add ntp module and associated test
8166
8167         Add logrotate and associated test
8168
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
8170
8171         Add inifile generic module and associated test module
8172
8173 2008-07-22  David Lutterkort  <dlutter@redhat.com>
8174
8175         Fix segfault when running 'augtool print'
8176
8177 2008-07-21  David Lutterkort  <dlutter@redhat.com>
8178
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
8184         file.
8185
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.
8189
8190 2008-07-18  David Lutterkort  <dlutter@redhat.com>
8191
8192         Added tag release-0.2.2 for changeset e7f6d16e75df
8193
8194         Release 0.2.2
8195
8196         Rename rule because FreeBSD's make chokes on it
8197         Rename the rule .FORCE-datadir.h to FORCE-datadir.h
8198
8199         Sample dput.cf for dput lens
8200
8201         Lens for Debian's dput files
8202         Contributed by Raphael Pinson
8203
8204 2008-07-17  David Lutterkort  <dlutter@redhat.com>
8205
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.
8210
8211         Added tag release-0.2.1 for changeset 13fdcd9bb18a
8212
8213 2008-07-17  David Lutterkort  <dlutter@redhat.com>
8214
8215         aliases.aug: Do not require whitespace after commas
8216         It's perfectly fine to have an alias like 'alias: target1,target2'
8217
8218         Bug reported by Greg Swift
8219
8220 2008-07-16  David Lutterkort  <dlutter@redhat.com>
8221
8222         Fix insertion before the first child
8223         Inserting a node as the new first child was completely broken.
8224
8225         Bug reported by Raphael Pinson.
8226
8227 2008-07-16  David Lutterkort  <dlutter@redhat.com>
8228
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
8232
8233           test lns put str after
8234             insa label path = str2
8235
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.
8239
8240 2008-07-09  David Lutterkort  <dlutter@redhat.com>
8241
8242         Test that putting into an empty string works
8243
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.
8247
8248 2008-07-07  David Lutterkort  <dlutter@redhat.com>
8249
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.
8253
8254         Most of this fix suggested by Jim Meyering, I only touched it up a little
8255         (and no doubt introduced all the bugs).
8256
8257 2008-07-07  David Lutterkort  <dlutter@redhat.com>
8258
8259         Check for NULL values in the put direction of store
8260         This is now flagged as an error instead of causing a segfault.
8261
8262 2008-07-03  David Lutterkort  <dlutter@redhat.com>
8263
8264         Lens for /etc/exports
8265
8266 2008-07-01  David Lutterkort  <dlutter@redhat.com>
8267
8268         Release 0.2.1
8269
8270         distclean-local: Do not clobber build/aux
8271
8272         Suppress generated manpages
8273
8274 2008-06-30  David Lutterkort  <dlutter@redhat.com>
8275
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.
8280
8281         Man page for augparse
8282
8283         Put Augeas version into footer
8284
8285 2008-06-23  David Lutterkort  <dlutter@redhat.com>
8286
8287         Auto-generate the ChangeLog file from mercurial logs
8288         Reviewed-by: David Lutterkort <dlutter@redhat.com>
8289
8290 2008-06-13  David Lutterkort  <dlutter@redhat.com>
8291
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
8295
8296         Reported by Jason Dobies
8297
8298 2008-06-13  David Lutterkort  <dlutter@redhat.com>
8299
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.
8305
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.
8308
8309 2008-06-12  David Lutterkort  <dlutter@redhat.com>
8310
8311         Check that we take the right branch in a union
8312
8313         Process /etc/sysconfig/selinux
8314         Patch by Alan Pevec
8315
8316 2008-06-12  David Lutterkort  <dlutter@redhat.com>
8317
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,
8321         ever.
8322
8323         Reported by Harald Hoyer
8324
8325 2008-06-06  David Lutterkort  <dlutter@redhat.com>
8326
8327         Initialize out parameters
8328
8329 2008-06-06  David Lutterkort  <dlutter@redhat.com>
8330
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
8334         fields.
8335
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.
8340
8341 2008-06-05  David Lutterkort  <dlutter@redhat.com>
8342
8343         Added tag release-0.2.0 for changeset d23f95cd13f3
8344
8345         Release 0.2.0
8346
8347 2008-06-03  David Lutterkort  <dlutter@redhat.com>
8348
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.
8352
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.
8358
8359 2008-06-03  David Lutterkort  <dlutter@redhat.com>
8360
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.
8364
8365         The bootstrap script was copied from libvirt.
8366
8367 2008-06-02  David Lutterkort  <dlutter@redhat.com>
8368
8369         Use a build aux dir (in build/aux)
8370
8371         Use autoheader and generate config.h
8372
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.
8376
8377         Remove src/config.h
8378         It was a bad idea to begin with; fold the contents into internal.h and make
8379         room for a generated config.h
8380
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.
8384
8385         Handle trailing whitespace in pam.d; split module-arguments
8386
8387         Allow multiple comma-separated fs types in fstab
8388         On Debian Etch, the CDROM has fs type 'udf,iso9660'
8389
8390         Handle blank lines in /etc/hosts
8391
8392         Fix missing ref on an info struct in syntax.c(compile_minus)
8393
8394 2008-05-30  Jim Meyering  <meyering@redhat.com>
8395
8396         * tests/test-lenses.sh: more quotes, protect against space in abs_srcdir
8397
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.
8407
8408 2008-05-29  David Lutterkort  <dlutter@redhat.com>
8409
8410         Make distcheck work again
8411         Restore top_builddir and top_srcdir so that augtest passes during make
8412         distcheck.
8413
8414         Fix memory leak in make_exn_lns_error
8415
8416 2008-05-29  Jim Meyering  <meyering@redhat.com>
8417
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}.
8426
8427 2008-05-23  David Lutterkort  <dlutter@redhat.com>
8428
8429         Fix use of possibly uninitialized variable
8430         * get.c(lns_parse): initialize skel; gcc complains about possible
8431           uninitialized use
8432
8433 2008-05-28  David Lutterkort  <dlutter@redhat.com>
8434
8435         Check that augtool reads all of tests/root/ without error
8436
8437 2008-05-23  David Lutterkort  <dlutter@redhat.com>
8438
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.
8442
8443         Escape | when turning a string into a regexp
8444
8445         Add source statements in shell scripts as '.source' nodes
8446
8447         Escape label strings when creating the key regexp for them
8448
8449         Allow lower case characters in shell vars
8450
8451 2008-05-23  Jim Meyering  <meyering@redhat.com>
8452
8453         "echo get /|augtool -n" would read one past end of malloc'd buffer * src/augeas.c (make_path): Avoid buffer overrun.
8454
8455 2008-05-23  David Lutterkort  <dlutter@redhat.com>
8456
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.
8462
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.
8466
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.
8470
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.
8474
8475 2008-05-22  David Lutterkort  <dlutter@redhat.com>
8476
8477         Fix use of uninitialized pointer
8478         ERR must be initialized, since it is later passed to free_lns_error
8479
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.
8483
8484 2008-05-21  James Antill  <james@code.and.org>
8485
8486          Fix for the joy that is the glibc asprintf API.
8487
8488 2008-05-21  James Antill  <james@and.org>
8489
8490          Minor fix to not use bad memory.
8491
8492          Remove strcat's for stpcpy's
8493
8494          Fix escaping strings that end in \  Fix escaping of unprintable bytes
8495
8496          Fix buffer overflow on strings ending in \
8497
8498 2008-05-21  David Lutterkort  <dlutter@redhat.com>
8499
8500         Use glibtoolize on OSX
8501         Patch provided by Rizwan Kassim
8502
8503 2008-05-21  Jim Meyering  <meyering@redhat.com>
8504
8505         Make a file-scoped static array "const".
8506
8507 2008-05-18  Jim Meyering  <meyering@redhat.com>
8508
8509         * src/augtool.c (cleanpath): Don't access path[-1].
8510
8511         * src/transform.c (transform_save): Detect pre-fclose write failure.
8512
8513         * src/internal.c (read_file): Rewrite, plugging a file descriptor leak.
8514
8515 2008-05-16  David Lutterkort  <dlutter@redhat.com>
8516
8517         Added tag release-0.1.1 for changeset fae07193655a
8518
8519         Release 0.1.1
8520
8521         Add dependency on ref.h
8522
8523 2008-05-16  David Lutterkort  <dlutter@redhat.com>
8524
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.
8529
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.
8533
8534 2008-05-15  David Lutterkort  <dlutter@redhat.com>
8535
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
8542
8543         Don't leak the key when appending dict entries
8544
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.
8548
8549         Don't leak key/value in parse on error
8550
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.
8554
8555         Free loadpath
8556         Although not strictly necessary, it makes it easier to run augparse through
8557         valgrind and get meaningful results.
8558
8559         Free path
8560
8561         Don't leak SNAME
8562
8563         Free the lns_error in lens_put
8564
8565         Cleanly free regexp patterns; put empty_pattern into ro storage
8566
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
8571
8572 2008-05-14  David Lutterkort  <dlutter@redhat.com>
8573
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.
8579
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.
8583
8584 2008-05-13  David Lutterkort  <dlutter@redhat.com>
8585
8586         Report errors during put
8587
8588         Check that values match the regexp for the corresponding store during put
8589
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
8594         a v2 feature.
8595
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.
8601
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.
8606
8607 2008-05-13  David Lutterkort  <dlutter@redhat.com>
8608
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.
8612
8613         Weaken the check for key, label, seq, and counter a tiny bit.
8614
8615 2008-05-12  David Lutterkort  <dlutter@redhat.com>
8616
8617         Proper typecheck for lens unions
8618         Check that lenses have disjoint ctypes and atypes in a union.
8619
8620         Fix up the existing lenses that violate that.
8621
8622 2008-05-09  David Lutterkort  <dlutter@redhat.com>
8623
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.
8627
8628         Use the new '-' operator for key_re
8629
8630 2008-05-09  David Lutterkort  <dlutter@redhat.com>
8631
8632         Add subtraction of regular expressions to the language
8633         It is now possible to say something like
8634
8635           let re = /[a-z]+/ - "baseurl"
8636
8637         The '-' operator is only defined between regexps.
8638
8639 2008-05-09  David Lutterkort  <dlutter@redhat.com>
8640
8641         Add REGEXP_MINUS; move REGEXP_TO_FA to regexp.c
8642
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.
8646
8647         Store character sets as bitsets
8648         Also clean up the definition of the bitset type and make the bitset_*
8649         functions const correct
8650
8651 2008-05-09  David Lutterkort  <dlutter@redhat.com>
8652
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.
8657
8658         There are lots of gyrations to keep the generated regexp reasonably short
8659         (and syntactically correct)
8660
8661 2008-05-08  David Lutterkort  <dlutter@redhat.com>
8662
8663         Check for (some) allocation failures
8664
8665         Reference count 'struct re' instances
8666
8667         Split ref counting macros into separate header
8668
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
8672         failures.
8673
8674         Safer memory allocation from libvirt
8675
8676 2008-05-08  David Lutterkort  <dlutter@redhat.com>
8677
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.
8681
8682         Also, add ATTRIBUTE_PURE macro.
8683
8684 2008-05-08  David Lutterkort  <dlutter@redhat.com>
8685
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.
8691
8692         There were also cases where we iterated over chars using a char, which was
8693         prone to silent overflow.
8694
8695 2008-05-08  David Lutterkort  <dlutter@redhat.com>
8696
8697         Fix mistaken assignments in asserts
8698         Reported by Jeff Johnson
8699
8700 2008-05-06  David Lutterkort  <dlutter@redhat.com>
8701
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.
8705
8706         Patch by Jim Meyering
8707
8708 2008-05-06  David Lutterkort  <dlutter@redhat.com>
8709
8710         Small fixes to the specfile
8711         Suggested by Michael Schwendt
8712
8713 2008-05-05  David Lutterkort  <dlutter@redhat.com>
8714
8715         Lens and transform for xinetd.conf
8716
8717         Enclose the regexp for a key in (..) before adding a /
8718
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
8722         was "(none)"
8723
8724         Be more consistent in how NULL labels are printed
8725
8726 2008-05-05  David Lutterkort  <dlutter@redhat.com>
8727
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
8731         on.
8732
8733         Rather than turning assertions off globally, only do the hash_verify
8734         asserts when they are explicitly requested by defining HASH_DEBUG_VERIFY
8735
8736 2008-05-05  David Lutterkort  <dlutter@redhat.com>
8737
8738         Do not minimize freshly created regexps
8739         The minimization imposes a serious performance penalty, and is generally
8740         not needed.
8741
8742         This also exposes a bug in fa_overlap; for acceptToAccept to work properly,
8743         it needs to be passed a deterministic automaton.
8744
8745 2008-05-05  David Lutterkort  <dlutter@redhat.com>
8746
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.
8750
8751 2008-05-02  David Lutterkort  <dlutter@redhat.com>
8752
8753         Spec file fixes
8754
8755 2008-05-01  David Lutterkort  <dlutter@redhat.com>
8756
8757         Added tag release-0.1.0 for changeset c032a957c316
8758
8759         Version 0.1.0
8760
8761         Rename parameter 'glob' to 'glb'
8762         gcc on RHEL4 gets confused and thinks that that shadows the global 'glob'
8763         function.
8764
8765 2008-04-30  David Lutterkort  <dlutter@redhat.com>
8766
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.
8770
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)
8774
8775 2008-04-30  David Lutterkort  <dlutter@redhat.com>
8776
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.
8780
8781         Refactor ifcfg.aug
8782         This puts the bits that are generally useful for processing /etc/sysconfig
8783         files into shell.aug
8784
8785 2008-04-30  Jim Meyering  <meyering@redhat.com>
8786
8787         check for a few failed memory allocations
8788         * src/augtool.c: check for a few failed memory allocations
8789
8790 2008-04-30  Harald Hoyer  <harald@redhat.com>
8791
8792         do ldconfig in post/postun of the libs subpackage
8793
8794 2008-04-28  David Lutterkort  <dlutter@redhat.com>
8795
8796         Free the value when freeing a tree node
8797
8798         Plug another memory leak
8799
8800 2008-04-25  David Lutterkort  <dlutter@redhat.com>
8801
8802         Fix segfault when aug_get was passed a "/"
8803         In that case, make_path returns NULL, which must be checked.
8804
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.
8809
8810 2008-04-25  David Lutterkort  <dlutter@redhat.com>
8811
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
8814           { "section"
8815              ... other key/value pairs ...
8816              { "baseurl" = "url1" }
8817              { "baseurl" = "url2" }
8818              ...
8819              { "baseurl" = "urlN" }
8820              ... other key/value pairs ...
8821           }
8822
8823         Note that the baseurl nodes have to be consecutive; otherwise, put will
8824         fail.
8825
8826 2008-04-24  David Lutterkort  <dlutter@redhat.com>
8827
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.
8833
8834         This change fixes that and adds a test to demonstrate the problem.
8835
8836 2008-04-24  David Lutterkort  <dlutter@redhat.com>
8837
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
8842
8843         * src/fa.c (string_extend): Handle realloc failure.
8844         Patch by Jim Meyering
8845
8846         Update AUTHORS/NEWS
8847
8848         Processing of Apt's sources files
8849         Contributed by Dean Wilson
8850
8851 2008-04-24  David Lutterkort  <dlutter@redhat.com>
8852
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.
8856
8857         See http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks
8858
8859 2008-04-24  David Lutterkort  <dlutter@redhat.com>
8860
8861         Remove trailing whitespace from the end of lines
8862         No functional change, only formatting.
8863
8864 2008-04-23  David Lutterkort  <dlutter@redhat.com>
8865
8866         Remove aug_exists - it does not exist anymore
8867
8868         Delete old, outdated notes
8869
8870         Some repo files for yum
8871
8872         Add todo file for low-level tasks that don't make sense on the website
8873
8874 2008-04-23  David Lutterkort  <dlutter@redhat.com>
8875
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.
8879
8880         Patch provided by Harald Hoyer
8881
8882 2008-04-23  David Lutterkort  <dlutter@redhat.com>
8883
8884         Include the augtool manpage as doc in the RPM
8885
8886 2008-04-23  David Lutterkort  <dlutter@redhat.com>
8887
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
8891         can be NULL.
8892
8893         Also, parseline initializes all args as NULL now to guard against garbage
8894         pointers accumulating from previous uses.
8895
8896 2008-04-23  David Lutterkort  <dlutter@redhat.com>
8897
8898         Don't complain about missing optional args
8899         For example, both 'print' and 'print PATH' are legal. Make sure we accept
8900         either.
8901
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.
8905
8906         Revised help texts
8907
8908         Man page
8909         Provided by Dean Wilson
8910
8911 2008-04-22  David Lutterkort  <dlutter@redhat.com>
8912
8913         Fix two memory leaks in the interpreter
8914
8915         Plug more memory leaks
8916
8917         Fix memory leak from not freeing hash table entries
8918
8919         Clean up the error path in load_file; free the loaded text in transform_load
8920
8921 2008-04-22  David Lutterkort  <dlutter@redhat.com>
8922
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
8925         gnulib soon.
8926
8927         Also, make read_file return a char * instead of the silly const char *.
8928
8929 2008-04-22  David Lutterkort  <dlutter@redhat.com>
8930
8931         Check the return value from hash_create
8932
8933         More const-correctness fixes
8934         Patch provided by Jim Meyering
8935
8936         File needed for running the tests
8937
8938         Stick more closely to what the shell accepts as assignments
8939
8940         Properly escape/unescape quotes in strings
8941         Patch provided by Alan Pevec
8942
8943 2008-04-21  David Lutterkort  <dlutter@redhat.com>
8944
8945         Updated for 0.0.8 and upcoming 0.1.0 release
8946
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.
8951
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.
8955
8956         Propagate failure of transform_save up
8957
8958 2008-04-21  David Lutterkort  <dlutter@redhat.com>
8959
8960         Sync compiler warnings with latest from libvirt
8961         This should avoid build failures seen on Debian, caused by
8962         -fstack-protector
8963
8964         Also fix build failure caused by addition of -Wformat-security
8965
8966 2008-04-21  David Lutterkort  <dlutter@redhat.com>
8967
8968         Mention people who sent patches
8969
8970         Parse network configs in /etc/sysconfig/ifcfg-*
8971         Patch provided by Alan Pevec
8972
8973         Don't mark ROOT for MAKE_PATH as const - it's not always true
8974
8975         Cap file reads (arbitrarily) at 32MB
8976
8977         Don't ever try to read a directory
8978         Suggested by Jim Meyering.
8979
8980         Return int from aug_print to indicate errors
8981         Check for failures during printing and return an indication whether printing
8982         succeeded or not.
8983
8984 2008-04-21  David Lutterkort  <dlutter@redhat.com>
8985
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.
8989
8990         Mark the places where the passed-in struct augeas is readonly in the API.
8991
8992         Patch provided by Jim Meyering
8993
8994 2008-04-21  David Lutterkort  <dlutter@redhat.com>
8995
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.
8998
8999         Suggested by Jim Meyering.
9000
9001 2008-04-21  David Lutterkort  <dlutter@redhat.com>
9002
9003         Add "2008" to the copyright in the headers
9004
9005 2008-04-19  David Lutterkort  <dlutter@redhat.com>
9006
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.
9011
9012 2008-04-18  David Lutterkort  <dlutter@redhat.com>
9013
9014         Hashtable from Kazlib 1.20
9015         Available from http://users.footprints.net/~kaz/kazlib.html
9016
9017         Abort if failing assertions are not used
9018
9019 2008-04-19  David Lutterkort  <dlutter@redhat.com>
9020
9021         Remove pathsplit symbol
9022
9023 2008-04-16  David Lutterkort  <dlutter@redhat.com>
9024
9025         Added tag release-0.0.8 for changeset cb00aa18e518
9026
9027         Release 0.0.8
9028
9029         Remove unused function
9030
9031         Install lens tests in lenses/tests/ not lenses/
9032
9033         Use the right path expression to print the whole tree
9034
9035         Don't segfault when a test fails without producing any tree
9036
9037 2008-04-15  David Lutterkort  <dlutter@redhat.com>
9038
9039         Call the node for a boot entry 'title'
9040
9041 2008-04-14  David Lutterkort  <dlutter@redhat.com>
9042
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.
9047
9048         Start sequences at 1, in symmetry with the element[N] counting
9049
9050         Consolidate tree allocation into one make_tree function
9051
9052         Change the ins syntax to support insert before/after
9053         This reflects the change to the aug_insert API
9054
9055         Handle searching for the last() element properly
9056         path_first didn't find anything when looking for 'element[last()]'
9057
9058         Process grub.conf
9059
9060 2008-04-14  David Lutterkort  <dlutter@redhat.com>
9061
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
9066         deleted)
9067
9068         Now, first generate a list of nodes to delete before removing anything.
9069
9070 2008-04-14  David Lutterkort  <dlutter@redhat.com>
9071
9072         Fix put test - it was checking for hte wrong result
9073
9074         Running a failing test fails loading the whole module
9075
9076 2008-04-11  David Lutterkort  <dlutter@redhat.com>
9077
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.
9082
9083         Syntax and semantics follow XPath.
9084
9085 2008-04-11  David Lutterkort  <dlutter@redhat.com>
9086
9087         Run all tests - don't abort after the first failure
9088
9089 2008-04-10  David Lutterkort  <dlutter@redhat.com>
9090
9091         Escape values and enclose them in quotes when printing
9092
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.
9096
9097 2008-04-09  David Lutterkort  <dlutter@redhat.com>
9098
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.
9103
9104 2008-04-09  David Lutterkort  <dlutter@redhat.com>
9105
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.
9109
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.
9114
9115 2008-04-09  David Lutterkort  <dlutter@redhat.com>
9116
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.
9120
9121         Update README
9122
9123         Remove 'spec' files and tests that don't make sense any longer
9124
9125         Fail test scripts on _any_ unexpected error
9126
9127         Distribute lens tests
9128
9129         Suppress .rpmnew/save files
9130
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.
9134
9135 2008-04-09  David Lutterkort  <dlutter@redhat.com>
9136
9137         Update augtool round-trip tests and add them to 'make check'
9138         Update the tests to the new layout of the tree.
9139
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
9143
9144 2008-04-09  David Lutterkort  <dlutter@redhat.com>
9145
9146         Fix underallocation
9147
9148         Only attempt to save if there are dirty files
9149
9150         Reread the original file from the same root on save
9151
9152         Pass the children of the right tree
9153
9154         Fix some errors that made aug_save fail
9155
9156         Mark a freshly loaded tree as clean
9157
9158         Check the return value of asprintf
9159         Handling of asprintf failures (and allocation failures in general) needs a
9160         lot more work.
9161
9162         Small touchup - needs much more work
9163
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
9167         produced.
9168
9169 2008-04-08  David Lutterkort  <dlutter@redhat.com>
9170
9171         Typecheck the atype of concat and iter
9172
9173         Typecheck the atype of union
9174
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
9179
9180         Port of the lenses for inittab and sshd_config tothe new syntax
9181
9182         Curb the repeated printing of exceptions
9183
9184         Clearer error message
9185
9186         Processing of pam.d
9187
9188         Pull some useful space deleters into Util
9189
9190         Check that let expressions work
9191
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.
9197
9198         Mark hosts and aliases for autoloading
9199
9200         Load from the new ../lenses dir
9201
9202         Obey setting of an explicit root directory
9203
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.
9207
9208         Handle continuation lines; more thorough tests
9209
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.
9213
9214         Print a newline on EOF
9215
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
9220         module.
9221
9222 2008-04-07  David Lutterkort  <dlutter@redhat.com>
9223
9224         Builtins for filters and transforms
9225         Three simple builtins to construct transforms:
9226
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
9230
9231 2008-04-08  David Lutterkort  <dlutter@redhat.com>
9232
9233         Implement free_lens
9234
9235 2008-04-07  David Lutterkort  <dlutter@redhat.com>
9236
9237         A lens for yum
9238
9239         Fix bad free
9240
9241         Add Util.split
9242
9243         Local let expressions
9244         Add syntax for
9245           let a =
9246             let b = exp in
9247               exp
9248
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
9256
9257         Add a 'gensym' builtin
9258
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
9263           in valgrind better
9264
9265 2008-04-04  David Lutterkort  <dlutter@redhat.com>
9266
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.
9271
9272         Initialize *err properly, even if there is no tree
9273
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)
9278
9279         Kludge around an inconsistency with print_tree
9280
9281         Beginnings of tests for the interpreter
9282
9283         Exceptions during compilation countas failure
9284
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.
9290
9291         Start a util module with some common functions
9292
9293         Run lens tests during 'make check'
9294
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.
9298
9299         Handle trailing slashes on loadpath components cleanly
9300
9301         /etc/aliases processing in the new syntax with tests
9302
9303 2008-04-04  David Lutterkort  <dlutter@redhat.com>
9304
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.
9309
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)
9313
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
9316         there.
9317
9318 2008-04-04  David Lutterkort  <dlutter@redhat.com>
9319
9320         Small tweaks
9321
9322         Produce exn when tree_rm/tree_set fail
9323
9324         Update yylloc for string/regexp constants
9325
9326 2008-04-03  David Lutterkort  <dlutter@redhat.com>
9327
9328         When compile_exp produces an exn, bind it anyway
9329         This avoids lots of trouble with NULL values
9330
9331         Desugar (lens)+
9332         The construct (lens)+ is now processed as lens . lens*
9333
9334         Fix segv on repetition of regexps
9335
9336         Clearer error messages from typechecking lenses
9337
9338         Fix key regexp for union; throw exception on subtrees with multiple keys
9339
9340         Have lens constructors return exns on failure
9341         Also refactor exception generation.
9342
9343         Add a test that produces an exception
9344
9345         Allow '*' as a test result indicating an expected exception
9346
9347         Error propagation from lns_put
9348         Record a lns_error if things don't work out during put. Generate an
9349         exception on error.
9350
9351         A very first lens in the new syntax, with tests
9352
9353         Use the default string for a del lens, really.
9354
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
9358
9359 2008-04-03  David Lutterkort  <dlutter@redhat.com>
9360
9361         Add explicit loadpath
9362         augtool and augparse now take an explicit loadpath with the -I option,
9363         which can be repeated multiple times.
9364
9365         aug_init takes a loadpath as a new argument
9366
9367 2008-04-03  David Lutterkort  <dlutter@redhat.com>
9368
9369         Load needed modules
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
9372         path.
9373
9374         Rename struct env to struct module
9375
9376         Separate function composition from concatenation
9377         Function composition is now written as 'f ; g' instead of 'f . g'
9378
9379         Allow tree constants with NULL labels
9380
9381         Clean up printing of empty trees
9382
9383         Clarify the reference counting terminology
9384
9385         Free the skel that lns_put creates initially
9386
9387         Make sure free_dict frees the whole dict
9388
9389         Fix reference problem
9390         The wrong type was being unref'd
9391
9392 2008-04-02  David Lutterkort  <dlutter@redhat.com>
9393
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.
9397
9398         Clear skel and dict in state so assertions in create_ don't trip
9399
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.
9403
9404         Fix incorrect usage of size parameter for re_match
9405
9406         Add missing break in get/parse_union
9407         Without it, it acts like a concat that drops trees on the floor
9408
9409         Allow printing of hidden tree nodes
9410         When printing test results, we want to see the full tree
9411
9412         Pass lns_error to parse; free dicts and skels
9413
9414 2008-04-02  David Lutterkort  <dlutter@redhat.com>
9415
9416         Report errors from get as exceptions
9417         Adds a value kind 'EXN'. When the interpreter gets such a value, it bails
9418         out immediately.
9419
9420         lns_get now reports parse errors in an lns_error struct, which is turned
9421         into an exception in the interpreter.
9422
9423 2008-04-02  David Lutterkort  <dlutter@redhat.com>
9424
9425         Added tag ml-syntax-start for changeset fcd6c04a1eed
9426
9427         A subtree without a key matches "/"
9428
9429         Print \n after test result
9430
9431         Allocate enough bytes for string in unescape
9432
9433         Free regexps cleanly
9434
9435         Fill in subtree->atype with empty regexp
9436
9437 2008-04-01  David Lutterkort  <dlutter@redhat.com>
9438
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.
9443
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.
9446
9447 2008-03-25  David Lutterkort  <dlutter@redhat.com>
9448
9449         Revamp the language
9450
9451 2008-03-14  David Lutterkort  <dlutter@redhat.com>
9452
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.
9455
9456         Rename parse_* functions to get_*
9457
9458         Rename parser.c to get.c
9459
9460         Add bcprules (by Benjamin Pierce); needed by lenses.tex
9461
9462         Added tag release-0.0.7 for changeset 93563112907c
9463
9464         Release 0.0.7
9465
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)
9469
9470         Be a little more restrictive on when to dump the whole grammar
9471
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.
9475
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)
9483
9484 2008-03-13  David Lutterkort  <dlutter@redhat.com>
9485
9486         Defer allocating storage for a state_set as long as possible
9487
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
9491         array_max_expansion
9492
9493         Speed up FA_MINUS by checking for some simple cases with fixed results
9494
9495         Speed up fa_contains by not determinizing FA1
9496
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
9501
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
9505         faster.
9506
9507         Remove unused macro
9508
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}
9512
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.
9516
9517         Rejigger the weights assigned by chr_score to make fa_example more predictable
9518
9519         Minor optimization for fa_example
9520
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)
9523
9524         Store that pairs of states for intersection in a hash table
9525
9526         Sorted state sets
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.
9529
9530 2008-03-12  David Lutterkort  <dlutter@redhat.com>
9531
9532         Fix two memory leaks
9533
9534         Remove the last uses of FA_MAP
9535         Use STATE_SET instead, since it's faster and lighterweight
9536
9537         Rename structs fa_state and fa_trans to state and trans
9538
9539         [mq]: min_hopcroft.patch
9540
9541         Sort transitions before generating examples
9542         Otherwise, examples depend on the order in which transitions appear for
9543         each state.
9544
9545         Add state sets at head of state_set_list
9546
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.
9550
9551         Reverse transitions in place in fa_reverse
9552
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.
9556
9557 2008-03-12  David Lutterkort  <dlutter@redhat.com>
9558
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.
9562
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)
9566
9567 2008-03-11  David Lutterkort  <dlutter@redhat.com>
9568
9569         fa_star added a spurious epstrans loop on new initial
9570
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
9574         purpose.
9575
9576 2008-03-11  David Lutterkort  <dlutter@redhat.com>
9577
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.
9583
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.
9587
9588 2008-03-10  David Lutterkort  <dlutter@redhat.com>
9589
9590         Fix subtle bug in determinize
9591         Fix a bug that would only hit if '\0' is ever in points.
9592
9593 2008-03-06  David Lutterkort  <dlutter@redhat.com>
9594
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.
9599
9600 2008-03-06  David Lutterkort  <dlutter@redhat.com>
9601
9602         Fix example generation, it was completely broken
9603         The previous algorithm was way too simplistic, and failed on more
9604         complicated languages.
9605
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.
9609
9610 2008-03-06  David Lutterkort  <dlutter@redhat.com>
9611
9612         Fix some cornercases in fa_example
9613
9614 2008-03-05  David Lutterkort  <dlutter@redhat.com>
9615
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^*
9619
9620         Fix tyops
9621
9622         Added tag release-0.0.6 for changeset 9a4f846673ac
9623
9624         Released version 0.0.6
9625
9626 2008-03-05  David Lutterkort  <dlutter@redhat.com>
9627
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.
9633
9634         Also added switches to augtool to set this from the command line, and to
9635         set the filesystem root.
9636
9637 2008-03-05  David Lutterkort  <dlutter@redhat.com>
9638
9639         Added tag release-0.0.5 for changeset 0efe2a620e39
9640
9641         Mark print_re as unused
9642
9643         Release 0.0.5
9644
9645         Make aug_close public
9646
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
9649         global variables.
9650
9651 2008-03-04  David Lutterkort  <dlutter@redhat.com>
9652
9653         Add fa_example which produces an example string from a regular language
9654
9655         Add a test that performs Anders Moeller's ambiguity algorithm manually
9656
9657 2008-03-04  David Lutterkort  <dlutter@redhat.com>
9658
9659         Two bug fixes
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
9663
9664         Also added tests to check these two problems.
9665
9666 2008-03-04  David Lutterkort  <dlutter@redhat.com>
9667
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
9671         per character)
9672
9673         Fix order in which libraries are installed
9674         libaugeas must be installed after libfa, since it depends on it.
9675
9676         Remove old sketch of interface; not needed anymore
9677
9678         Compute the complement, set difference and overlap of two languages
9679
9680 2008-03-04  David Lutterkort  <dlutter@redhat.com>
9681
9682         Fix a bug in how '.' is being handled
9683         The '.' was treated the same as [\n] instead of [^\n] by mistake.
9684
9685         Also fixes a small bug in fa_contains.
9686
9687 2008-03-04  David Lutterkort  <dlutter@redhat.com>
9688
9689         Add deciding unambiguously iterable based on ua concatenable
9690
9691 2008-03-03  David Lutterkort  <dlutter@redhat.com>
9692
9693         Automatically free all automata allocated during a test
9694
9695         Cleanup the returned FA in fa_intersect
9696
9697         Add a target to run fatest through valgrind
9698
9699         Add fa_intersect: intersection of regular languages
9700
9701         Comment the uses of FA_MAP better and rename some internal helper functions
9702
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.
9706
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.
9710
9711 2008-02-29  David Lutterkort  <dlutter@redhat.com>
9712
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
9716
9717         Performance improvements
9718         (1) Don't minimize the automaton quite so often. Now, only fa_compile minimizes
9719             by default.
9720         (2) Instead of full-on minimization, clean up the automaton before
9721             returning to the user by removing dead transitions/states.
9722
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.
9726
9727         Add tests for language subsets and equality
9728
9729 2008-02-29  David Lutterkort  <dlutter@redhat.com>
9730
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/)
9734
9735         Eventually, this should becomea standalone library, seeing how there does
9736         not seem to be any open-source, maintained finite automata library.
9737
9738 2008-02-29  David Lutterkort  <dlutter@redhat.com>
9739
9740         Some unit testing help
9741         This is an adapted version of CuTest
9742         (http://sourceforge.net/projects/cutest/) written by Asim Jalis
9743
9744         Minimal docs for aug_save and aug_print
9745
9746 2008-02-26  David Lutterkort  <dlutter@redhat.com>
9747
9748         Ignore more stuff
9749
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
9753
9754 2008-02-25  David Lutterkort  <dlutter@redhat.com>
9755
9756         Added tag release-0.0.4 for changeset d8e750d82f97
9757
9758         Version 0.0.4
9759
9760         Some NEWS
9761
9762         Package as RPM
9763
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)
9769
9770         Only define print_dict when it is used
9771
9772         Added tag release-0.0.3 for changeset 56cb08f222a3
9773
9774         Version 0.0.3
9775
9776         Test for readline in a way that works on RHEL5
9777
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
9782
9783         Rename AUGEAS_SPECLIB to AUGEAS_LENS_LIB
9784
9785         Added tag release-0.0.2 for changeset f981ccccb0ab
9786
9787         Include the try script in the distribution
9788
9789         Bump version to 0.0.2
9790
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
9795
9796         Fix warnings about uninitialized variables
9797
9798         Add config.h to libaugeas.la
9799
9800         Stricter types for some combinators. List needed reg lang operations
9801
9802 2008-02-21  David Lutterkort  <dlutter@redhat.com>
9803
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
9808
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
9812
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
9816         children.
9817
9818         Fix splitting of AcceptEnv
9819         The list of env vars for AcceptEnv was not being split into individual
9820         pieces
9821
9822 2008-02-20  David Lutterkort  <dlutter@redhat.com>
9823
9824         A (pretty kludgy) description for cmfm.conf
9825
9826         Make printing of skel/dict optional
9827
9828         Print test results a tad prettier
9829
9830 2008-02-20  David Lutterkort  <dlutter@redhat.com>
9831
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
9835         implementation.
9836
9837         The syntax for regular expressions is now RE_SYNTAX_POSIX_MINIMAL_EXTENDED,
9838         essentially extended POSIX regular expressions, except that '.' does not
9839         match newlines.
9840
9841 2008-02-20  David Lutterkort  <dlutter@redhat.com>
9842
9843         Clean up regexps for POSIX
9844         Various small fixes to regexps to make them work properly as POSIX regexps.
9845
9846         Added tag remove-any-first-follow for changeset 0d22160e9494
9847
9848 2008-02-20  David Lutterkort  <dlutter@redhat.com>
9849
9850         Remove any matches ... and ..? from the language. Remove first/follow sets
9851         They currently require lookahead assertions from the underlying regexp
9852         engine.
9853
9854         Since any matches were the only reason to compute first/follow sets, remove
9855         those, too.
9856
9857 2008-02-20  David Lutterkort  <dlutter@redhat.com>
9858
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.
9862
9863         Don't segfault when parsing fails
9864
9865 2008-02-19  David Lutterkort  <dlutter@redhat.com>
9866
9867         Drop CF-oriented check for ambiguity through looking at first sets
9868
9869         Allow escaping of a slash in tegular expressions
9870
9871 2008-02-18  David Lutterkort  <dlutter@redhat.com>
9872
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
9877         first 'token'.
9878
9879         The downside is that rules can not be recursive anymore, as that would
9880         make the matched language non-regular.
9881
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.
9885
9886         Unfortunately, we have to keep first/follow computations to construct the
9887         fairly tricky regexps that are used for ANY patterns.
9888
9889 2008-02-18  David Lutterkort  <dlutter@redhat.com>
9890
9891         Remove unused token T_FIELD
9892
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.
9896
9897         Add Match blocks
9898
9899         Remove leading whitespace inside Match directives
9900
9901 2008-02-18  David Lutterkort  <dlutter@redhat.com>
9902
9903         Fix nested splits
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.
9908
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.
9912
9913 2008-02-18  David Lutterkort  <dlutter@redhat.com>
9914
9915         Properly print split nodes
9916
9917         Lenses for sshd_config
9918         This is interesting because of the treatment of AcceptEnv and similar
9919         constructs
9920
9921 2008-02-18  David Lutterkort  <dlutter@redhat.com>
9922
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)
9928
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
9932         one node.
9933
9934 2008-02-15  David Lutterkort  <dlutter@redhat.com>
9935
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
9939
9940         Fix very bad use of realloc
9941
9942         Adjust expected diff
9943         Do not allow comments to disappear
9944
9945         Fix test
9946         The old diff was bogus (it expected a comment to be removed that has to
9947         stay there)
9948
9949         Cleanly handle comments
9950
9951         Default COLON to ':' plus tab. Simple tests for aliases
9952
9953         Informal survey of files in /etc
9954
9955         Ignore intermediate Latex files
9956
9957         Store comments in subtrees so they are restored properly
9958
9959         Turn into a test on a legal tree and make it pass
9960
9961         Fix split of QUANT_MAYBE. Add create_quant_maybe
9962
9963         Make aliases work
9964
9965         Free the results of split_tree
9966
9967         Properly split an empty * as an empty list
9968
9969         Try to make putting QUANT_MAYBE work
9970         This is still kinda suspect
9971
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 ]
9976
9977         Modified yum spec that seems to work
9978
9979         Script to ease testing of augtool
9980
9981         Enable parsing of pam
9982
9983         Remove bogus reset of 'record' counter
9984
9985         Fix print problem
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.
9988
9989         Add clear command
9990
9991         Properly handle a NULL value in aug_set. Make aug_insert deal with NULL labels.
9992
9993 2008-02-14  David Lutterkort  <dlutter@redhat.com>
9994
9995         Fixed, nicely working tests
9996
9997 2008-02-14  David Lutterkort  <dlutter@redhat.com>
9998
9999         Readline completion
10000         Complete command names and tree paths.
10001
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
10004         API.
10005
10006 2008-02-14  David Lutterkort  <dlutter@redhat.com>
10007
10008         Major rework
10009         Code still unbelievably buggy and segfaults in lots of places, but it is
10010         fairly clean and works for choice examples.
10011
10012         The reworked code is based fairly closely of boomerang and
10013         lenses. doc/lenses.tex describes some of the background.
10014
10015 2008-02-13  David Lutterkort  <dlutter@redhat.com>
10016
10017         Cleaner syntax
10018         The spec language now contains instructions on how to build the tree inline
10019         with the grammar.
10020
10021         This change is majorly broken.
10022
10023 2008-02-12  David Lutterkort  <dlutter@redhat.com>
10024
10025         Better description of lenses
10026
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).
10030
10031 2008-02-08  David Lutterkort  <dlutter@redhat.com>
10032
10033         Beginnings of a formal writeup
10034
10035 2008-01-30  David Lutterkort  <dlutter@redhat.com>
10036
10037         Remove field references as a match
10038         It used to be possible to have a rule like
10039           rule: RE '=' $1
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.
10042
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
10045         incomplete AST's.
10046
10047         Slightly mroe helpful error message during parsing
10048
10049         Don't segfault when the parse matches nothing
10050
10051 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10052
10053         Another yum test
10054
10055         Remove more unneeded cruft
10056
10057         Remove unneeded safe_free, TRUE and FALSE
10058
10059         Remove unneeded ROOT_DIR and update augtool help
10060
10061         Remove dead code and misleading comment
10062
10063         Remove files not needed any longer
10064
10065         Update NEWS
10066
10067         Run all the augtest tests by default and from make check
10068
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.)
10074
10075 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10076
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.
10081
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.
10085
10086 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10087
10088         Test that reordering of subtrees works
10089
10090         Set the root of the tree from include
10091
10092 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10093
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
10098         the config tree.
10099
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.
10103
10104 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10105
10106         Fix bug in creating sequence subtrees
10107
10108 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10109
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
10115         path)
10116
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.
10121
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
10125         component.
10126
10127 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10128
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.
10133
10134         As a byproduct, a number of questionable constructs are spotted and
10135         rejected:
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
10142               the whole grammar
10143
10144 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10145
10146         Produce dot files for the grammar
10147
10148 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10149
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
10155
10156         Some of the tests are still failing.
10157
10158 2008-01-29  David Lutterkort  <dlutter@redhat.com>
10159
10160         aug_ls: Fix bad parent comparison
10161         Before /foo/1000 was listed as a child of /foo/1
10162
10163         Docs
10164
10165 2008-01-24  David Lutterkort  <dlutter@redhat.com>
10166
10167         Rough thoughts about emit
10168
10169 2008-01-21  David Lutterkort  <dlutter@redhat.com>
10170
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.
10177
10178         This ensures that in the AST, the children of '*' and '+' have different
10179         names and simplifies the 'put' direction of the transformation
10180         considerably.
10181
10182 2008-01-21  David Lutterkort  <dlutter@redhat.com>
10183
10184         Some config settings - most of them need to be exposed through configure.ac
10185
10186 2008-01-18  David Lutterkort  <dlutter@redhat.com>
10187
10188         Global filename does not exist. Use basename
10189
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.
10194
10195         Spec files needed by the tests
10196
10197         Don't segfault in ast_dot on NULL ast
10198
10199 2008-01-18  David Lutterkort  <dlutter@redhat.com>
10200
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.
10206
10207         As a byproduct, parts of the AST that are no longer needed are actually
10208         freed.
10209
10210 2008-01-18  David Lutterkort  <dlutter@redhat.com>
10211
10212         Handle null values/tokens when storing
10213
10214         Detect association of values with impossible paths
10215
10216 2008-01-17  David Lutterkort  <dlutter@redhat.com>
10217
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
10221         files.
10222
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.
10228
10229 2008-01-17  David Lutterkort  <dlutter@redhat.com>
10230
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
10234         written to disk.
10235
10236         This is a first version that works for some restricted set of grammars, but
10237         needs a lot more testing.
10238
10239 2008-01-17  David Lutterkort  <dlutter@redhat.com>
10240
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.
10245
10246         The handle of an action is a regular expression matching the path generated
10247         by that action.
10248
10249 2008-01-17  David Lutterkort  <dlutter@redhat.com>
10250
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.
10255
10256         Split parsing and evaluating into to passes; references to fields
10257         are too hard to resolve with a partially constructed AST.
10258
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
10261         ast'
10262
10263         Remove aug_token and any mention of it - that has been replaced by struct
10264         ast.
10265
10266 2008-01-17  David Lutterkort  <dlutter@redhat.com>
10267
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.
10272
10273         This leads to a cleaner parser and makes constructing an explicit AST
10274         simpler.
10275
10276 2008-01-17  David Lutterkort  <dlutter@redhat.com>
10277
10278         Prefer comments over kv
10279
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.
10283
10284         Remove debug printing in augparse about loaded maps
10285
10286 2008-01-07  David Lutterkort  <dlutter@redhat.com>
10287
10288         Free tokens entirely when freeing file
10289
10290         Set action in all path components
10291
10292 2008-01-03  David Lutterkort  <dlutter@redhat.com>
10293
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.
10299
10300         Still missing is saving of the tree back to file, and in particular adding
10301         new entries in the tree to such files.
10302
10303 2008-01-03  David Lutterkort  <dlutter@redhat.com>
10304
10305         Move hosts and inittab under /etc
10306
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.
10311
10312         Compile regexps for multiline matching
10313
10314 2008-01-02  David Lutterkort  <dlutter@redhat.com>
10315
10316         Fix syntax error; we want to test that missing defaults are noticed
10317
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.
10321
10322         Print the filename in errors about tokens (abbrevs)
10323
10324         Add name to grammars
10325
10326         Add -v switch for printing errors
10327
10328         Two more test grammars
10329
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.
10334
10335 2007-12-21  David Lutterkort  <dlutter@redhat.com>
10336
10337         Check grammar acceptance/rejection
10338
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
10347             has been parsed
10348
10349         Snapshot before changing the syntax of rule actions
10350
10351 2007-12-20  David Lutterkort  <dlutter@redhat.com>
10352
10353         Remove unused keyword and token 'default'
10354
10355         Fix field number computation
10356
10357         Two more rejection tests
10358
10359         Add a simple test for rejecting bad grammars
10360
10361         Don't try to dump a NULL grammar
10362
10363         Introduce SUBMATCH_P macro; cleanup unnecessary switch statements.
10364
10365         Statically number all matches in a rule. Check for illegal field refs.
10366
10367         Collect unprocessed tokens in the parser state.
10368
10369         Print quantifier after rule reference
10370
10371         Remove unneeded debug print
10372
10373         Produce tokens during parsing.
10374         Also, nicer printing of the tokens read.
10375
10376 2007-12-20  David Lutterkort  <dlutter@redhat.com>
10377
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)
10383
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
10386         hard to determine.
10387
10388 2007-12-20  David Lutterkort  <dlutter@redhat.com>
10389
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.
10393
10394         Add options to control grammar printing
10395
10396         Set match->owner for _all_ matches
10397
10398         Two more sample/test grammars
10399
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.
10405
10406 2007-12-14  David Lutterkort  <dlutter@redhat.com>
10407
10408         Factor aug_make_file into internal.c
10409
10410 2007-12-01  David Lutterkort  <dlutter@redhat.com>
10411
10412         Be more verbose about which tests were run
10413
10414         Do not include unused util.h
10415
10416         Mention language bindings
10417
10418         Added tag release-0.0.1 for changeset 69688020bb1b
10419
10420         Some news
10421
10422         Disribute tests and doc/examples.txt
10423
10424         Some pseudo-code examples
10425
10426         Explain yourself
10427
10428 2007-11-30  David Lutterkort  <dlutter@redhat.com>
10429
10430         Add a test that shows how to change the initdefault
10431
10432         Add help texts and a help command
10433
10434         Add aug_match as a simple query facility
10435
10436         Handle /etc/inittab
10437
10438         Make the ROOT_DIR a constant instead of hardcoding it everywhere
10439
10440         Test deleting everything from /etc/hosts
10441
10442         Describe what a test description looks like
10443
10444         Add a provider for /etc/hosts and reorganize how providers are loaded/saved a little
10445
10446         aug_rec_save: Check input parameters
10447
10448 2007-11-30  David Lutterkort  <dlutter@redhat.com>
10449
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
10453
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
10456         and records/lines)
10457
10458 2007-11-30  David Lutterkort  <dlutter@redhat.com>
10459
10460         Root filesys that tests pass against
10461
10462         Basic tests for record parsing
10463
10464 2007-11-26  David Lutterkort  <dlutter@redhat.com>
10465
10466         Trim trailing slashes from paths
10467
10468         Keep /system and /system/config around at all times
10469
10470         Access aug_insert from the command line; do better error checking for aug_insert
10471
10472         Autotools support for building
10473
10474 2007-11-26  David Lutterkort  <dlutter@redhat.com>
10475
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
10479         files
10480
10481         augtool gives a basic mean to inspect the keystore from the command line
10482
10483 2007-11-26  David Lutterkort  <dlutter@redhat.com>
10484
10485         Ignore some files