12019-04-13  David Lutterkort  <lutter@watzmann.net>
2
3	NEWS: mention Strongswan breaking change
4
52019-04-13  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
6
7	Strongswan: parse lists
8
92019-04-13  Pino Toscano  <ptoscano@redhat.com>
10
11	* examples/fadot.c: stop including getopt.h
12	getopt.h is a GNU extension, and it is not even needed for this example
13	(plain getopt() is used).
14
15	* examples/dump.c: stop building with _GNU_SOURCE
16	This might not be available on all the platforms, and it should not be
17	needed anyway.
18
192019-04-13  Pino Toscano  <ptoscano@redhat.com>
20
21	examples: turn them as standalone
22	Examples are supposed to be small test applications (examples, indeed)
23	that help users to know how the library works.  Hence, it is a good
24	thing that users can pick them out of the sources, and build them
25	standalone on their own, using the system augeas library.
26
27	Make this situation possible:
28	- do not rely on gnulib: they are test applications of augeas, not
29	  supposed to be the most perfect C examples; besides, gnulib is not
30	  available out of the augeas build tree
31	- stop including config.h: the content of the examples is not supposed
32	  to change depending on the augeas build configuration
33	- include the augeas headers as system headers, not as local ones; the
34	  build system takes care that the local augeas headers are used when
35	  building the examples as part of the sources
36
372019-04-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
38
39	Update NEWS [skip ci]
40
412019-04-12  Raphaël Pinson  <github+aem1eeshi1@raphink.net>
42
43	Rsyslog: support dynamic file paths (#622)
44	As per https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/s1-basic_configuration_of_rsyslog#s2-Actions
45
462019-04-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
47
48	Update NEWS [skip ci]
49
502019-04-10  Raphaël Pinson  <github+aem1eeshi1@raphink.net>
51
52	Support unix sockets as server address (fix #617) (#618)
53
542019-04-07  David Lutterkort  <lutter@watzmann.net>
55
56	* gnulib: update to latest master
57
58	* configure.ac: remove explicit automake-1.11 dependency
59
602019-04-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>
61
62	Update NEWS [skip ci]
63
642019-04-05  Michael Wodniok  <wodniok@wor.net>
65
66	Fixes missing recognition of double quoted filenames. (#611)
67	Fixes missing recognition of double quoted filenames.
68
69	Logrotate is able use quote filenames. This by itself is fixed there. Some
70	distributions files are using that. Logrotate would also be able to use files
71	with spaces (when quoted), fixing is too complicated for a quick fix and this
72	should be also uncommon in real life.
73
742019-04-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>
75
76	Update NEWS [skip ci]
77
782019-04-05  Raphaël Pinson  <github+aem1eeshi1@raphink.net>
79
80	Puppetfile: allow comments in entries (#620)
81
822019-04-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
83
84	Update NEWS [skip ci]
85
862019-04-04  Raphaël Pinson  <github+aem1eeshi1@raphink.net>
87
88	Puppetfile: allow symbols as (optional) values (fix #427) (#619)
89
902019-03-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>
91
92	Add missing lens docs
93
942019-02-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
95
96	Update NEWS
97
982019-02-26  frh  <frh+github@frh.no>
99
100	nsswitch: Add action merge (#609)
101
1022019-02-26  David Lutterkort  <github@watzmann.net>
103
104	Ssh: accept RekeyLimit (#607)
105
1062019-02-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
107
108	Update NEWS
109
110	Shellvars: accept variable as command
111
112	Update NEWS and AUTHORS
113
1142019-02-24  Nathan Ward  <nward@braintrust.co.nz>
115
116	Add test for dovecot permitting ! in block names
117
118	Permit ! in block titles, which is permitted in modern versions of Dovecot m Please enter the commit message for your changes. Lines starting
119
1202019-02-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
121
122	Update NEWS and AUTHORS
123
1242019-02-24  David Farrell  <davidpfarrell+github@gmail.com>
125
126	Allow Creation of Hostname When File is Missing
127	Within augtool, the current `hostname` lens does not allow you to create a hostname entry under the following circumstances:
128	* /etc/hostname file is empty
129	* /etc/hostname file does not exist
130
131	:: /etc/hostname file is empty
132
133	There is no augtool command(s) that will allow you to add a hostname entry to an existing, but empty, file.  Example:
134	```
135	$ sudo rm /etc/hostname
136	$ sudo touch /etc/hostname
137	$ sudo augtool
138
139	augtool> set /files/etc/hostname/hostname myhostname
140	augtool> save
141	error: Failed to execute command
142	saving failed (run 'errors' for details)
143
144	augtool> errors
145
146	Error in /etc/hostname:1.0 (parse_skel_failed)
147	  Input string does not match at all
148	  Lens: /usr/share/augeas/lenses/dist/hostname.aug:16.10-.57:
149	```
150
151	Additionally, you cannot remove the empty file using augtool:
152	```
153	$ sudo rm /etc/hostname
154	$ sudo touch /etc/hostname
155	$ sudo augtool rm /files/etc/hostname
156	$ ls -l /etc/hostname
157	-rw-r--r-- 1 root root 0 Feb 19 12:39 /etc/hostname
158	```
159
160	:: /etc/hostname does not exist
161
162	Similar to the empty file case, you cannot create a hostname entry if the file does not already exist.
163
164	You can, however, create an empty file:
165	```
166	$ sudo rm /etc/hostname
167	# You can create an empty file with clear or touch
168	$ sudo augtool touch /files/etc/hostname
169	$ ls -l /etc/hostname
170	-rw-r--r-- 1 root root 0 Feb 19 12:34 /etc/hostname
171	```
172
173	Of course, now that you have an empty file, you cannot create a hostname entry for it :(
174
175	This proposed change will allow you to at least create a hostname entry when the file does not already exist.
176
177	It also enables you to remove file, allowing for a deterministic approach:
178	```
179	$ sudo rm /etc/hostname
180	$ sudo touch /etc/hostname
181	$ sudo augtool rm /files/etc/hostname
182	$ ls -l /etc/hostname
183	ls: cannot access '/etc/hostname': No such file or directory
184	$ sudo augtool set /files/etc/hostname/hostname myhostname
185	$ ls -l /etc/hostname
186	-rw-r--r-- 1 root root 11 Feb 19 12:44 /etc/hostname
187	$ cat /etc/hostname
188	myhostname
189	```
190
191	NOTE: Its probably very possible to fix the lens to deal more of the edge cases, but this quick fix at least gives deterministic behavior if a rm/set each time I want to configure the hostname.
192
193	Thank you for your consideration.
194
195	-David Farrell
196
1972019-01-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
198
199	Update NEWS
200
2012019-01-31  Jason A. Smith  <smithj4@bnl.gov>
202
203	Added more pkinit_* options.
204
2052019-01-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
206
207	Update NEWS
208
209	Organize NEWS alphabetically
210
2112019-01-07  Pino Toscano  <ptoscano@redhat.com>
212
213	Shellvars: fix parsing of commands with dashes
214	Move the dash as first element in the regexp, so it is not handled as
215	range separator.
216
217	Shellvars: do not handle csh/tcsh profile scripts
218	They are specific scripts for csh/tcsh, which are not POSIX compliant.
219	As Shellvars cannot handle them (it is de-facto for POSIX compliant
220	shells), exclude them directly.
221
222	Shellvars: support variables with dash
223	E.g. 'alias foo-bar=value'.
224
225	Shellvars: support (...) for the body of functions
226	Support (...) for the body of functions, so other than
227	  foo() {...}
228	now Shellvars can parse also
229	  foo() (...)
230
2312018-12-12  Pino Toscano  <ptoscano@redhat.com>
232
233	New lens: Anaconda (#597)
234	Introduce a new lens to parse the INI-like `/etc/sysconfig/anaconda` instead of using `Shellvars`.
235
2362018-11-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
237
238	DevfsRules: Add lens for FreeBSD devfs.rules files
239
2402018-11-30  Axel Arnold  <arnolda747@gmail.com>
241
242	Xorg: Accept empty values for options
243
244	Rsyslog: In rsyslog, bsd-like #!/+/- are just comments without special meaning
245
2462018-11-29  Emil Dragu  <emil.dragu@gmail.com>
247
248	Allow parsing of options with equal sign (#587)
249	Ssh: Options in sshd_config can be specified using space, tab or equal sign.
250	They all have the same effect.
251
2522018-11-29  David Lutterkort  <github@watzmann.net>
253
254	Pam: accept continuation lines (#592)
255	Make it possible to use '\<LF>' as a whitespace character between tokens
256
257	Fixes https://github.com/hercules-team/augeas/issues/590
258
2592018-11-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
260
261	Toml: support dos newlines
262
263	Toml: time_re can start with one digit only
264
2652018-11-29  Raphaël Pinson  <github+aem1eeshi1@raphink.net>
266
267	TOML lens (#91)
268	Toml: New lens to parse the TOML format
269
2702018-11-29  Pino Toscano  <ptoscano@redhat.com>
271
272	New lens: Semanage (#594)
273	Introduce a new lens to parse /etc/selinux/semanage.conf instead of
274	using Simplevars: the latter cannot handle the more complex syntax of
275	groups introduced in newer versions of libsemanage.
276
2772018-11-01  David Lutterkort  <lutter@watzmann.net>
278
279	* src/augtool.c (get_home_dir): try harder to get the user's home dir
280	At least on musl systems, sysconf(_SC_GETPW_R_SIZE_MAX) returns -1, which
281	caused us to not try and find the user's home dir, which meant that we did
282	not save history.
283
284	We now try harder by (1) getting the user's pw entry into a 16k buffer, and
285	if that still fails, by (2) getting the home dir from $HOME.
286
2872018-11-01  David Lutterkort  <lutter@watzmann.net>
288
289	* src/augeas.h: improve docs for aug_init
290
2912018-11-01  Steve Traylen  <steve.traylen@cern.ch>
292
293	Fix sudoers lens: "always_query_group_plugin" (#588)
294	The option is now enabled by default in the default sudoers of
295	RHEL 7.6 (and probably soon CentOS 7).
296
2972018-10-16  David Lutterkort  <lutter@watzmann.net>
298
299	Syslog: accept include directive
300	Add syslog.conf from
301	https://svnweb.freebsd.org/base?view=revision&revision=308160 to test root,
302	too
303
304	Fixes https://github.com/hercules-team/augeas/issues/486
305
3062018-10-08  Pino Toscano  <ptoscano@redhat.com>
307
308	* src/lexer.l: disable 'input' and 'yyunput' functions
309	flex by default generates the 'input', and 'yyunput' functions; OTOH,
310	augeas does not use them, so add the right options to suppress their
311	generation.
312
3132018-09-24  David Lutterkort  <lutter@watzmann.net>
314
315	Multipath: accept values enclosed in quotes
316	Multipath is happy with values enclosed in quotes, like 'path_checker
317	"tur"' in addition to the unquoted values. This change accepts such values
318	and strips the enclosing quotes.
319
320	Fixes https://github.com/hercules-team/augeas/issues/583
321
3222018-09-03  Raphaël Pinson  <github+aem1eeshi1@raphink.net>
323
324	Shellvars: allow and/or in @if conditions (#582)
325
3262018-08-24  David Lutterkort  <lutter@watzmann.net>
327
328	Version 1.11.0
329
3302018-08-22  David Lutterkort  <lutter@watzmann.net>
331
332	Replace pure function invocations in path expressions with their result
333	In path expressions, we generally need to evaluate functions against every
334	node that we consider for the result set. For example, in the path
335	expression /files/etc/hosts/*[ipaddr =~ regexp('127\\.')], the regexp
336	function was evaluated against every entry in /etc/hosts. Evaluating that
337	function requires the construction and compilation of a new regexp. Because
338	of how memory is managed during evaluation of path expressions, the memory
339	used by all these copies of the same regexp is only freed after we are done
340	evaluating the path expression. This causes unacceptable memory usage in
341	large files (see https://github.com/hercules-team/augeas/issues/569)
342
343	To avoid these issues, we now distinguish between pure and impure functions
344	in the path expression interpreter. When we encounter a pure function, we
345	change the AST for the path expression so that the function invocation is
346	replaced with the result of invoking the function. With the example above,
347	that means we only construct and compile the regexp '127\\.' once,
348	regardless of how many nodes it gets checked against. That leads to a
349	dramatic reduction in the memory required to evaluate path expressions with
350	such constructs against large files.
351
352	Fixes https://github.com/hercules-team/augeas/issues/569
353
3542018-08-22  Yann Hamon  <yann.hamon@9cookies.com>
355
356	Redis: accept bind command
357	Fixes https://github.com/hercules-team/augeas/issues/194
358
3592018-08-09  David Lutterkort  <lutter@watzmann.net>
360
361	Httpd: accept whitespace comment after tag opening a section
362	We used to only deal with completely empty comments after a tag opening a
363	section, for example '<If cond>#\n', but not with a comment that consisted
364	only of whitespace like '<If cond># \n'. We now accept both cases,
365	resulting in the same tree.
366
367	Fixes https://github.com/hercules-team/augeas/issues/577
368
3692018-08-09  Pino Toscano  <ptoscano@redhat.com>
370
371	* tests/Makefile.am: use right make for valgrind target
372	Use $(MAKE), and $(MAKEFLAGS) when invoking the check target in valgrind
373	mode, this way the right make, with the right parameters, is used.
374
375	* src/augparse.c (main): call aug_close even on failure
376	Even if the resources will be freed at the exit, manually call aug_close
377	to make sure that analyzers/checkers see only the real issues.
378
379	* src/transform.c (transform_save): fix leaks on fchmod fail
380	If fchmod fails, the early return prevents any cleanup of the function
381	resources, e.g. the open FILEs.  Use the common error handling instead.
382
383	* src/syntax.c (interpreter_init): fix memleak on load_module fail
384	If load_module fails, then name is not freed.  Instead, store the
385	return value of load_module separately, cleanup name, and then check
386	that value.
387
388	* src/pathx.c (parse_location_path): fix memleak on error
389	If parse_relative_location_path fails, then the early return will leak
390	locpath.  Use the common error handling to cleanup all the resources.
391
392	* src/jmt.c (add_lens): fix memory leak w/ debugging
393	format_lens returns a new string every time, so save its result, and
394	free it properly after use.
395
3962018-07-19  Pino Toscano  <ptoscano@redhat.com>
397
398	* src/fa.c (fa_dot_debug): check result of fopen
399	Return earlier if fopen fails, otherwise fa_dot will dereference a null
400	pointer.
401
4022018-07-19  Pino Toscano  <ptoscano@redhat.com>
403
404	* src/augtool.c: fix access to invalid memory
405	When stripping the context from the result, readline_path_generator used
406	to realloc the string to a shorter size, copying only the content after
407	the prefix.  This resulted in reading with strcpy  from the previous
408	memory, which is freed already.  Avoid the issue, and simplify the code
409	by using strdup, freeing the old string.
410
411	This issue could be reproduced in augtool, trying to autocomplete files
412	without the /files prefix, e.g.:
413	  augtool> ls <TAB><TAB>
414
4152018-06-26  David Lutterkort  <lutter@watzmann.net>
416
417	Nginx: improved parsing of simple directives
418	The 'argument' to a simple directive can now be made up of any number of
419	bare words (not containing quotes) and quoted strings. Semicolons are
420	allowed within quoted strings.
421
422	Also, allow simple directives without arguments (like 'internal' for
423	location)
424
425	Fixes https://github.com/hercules-team/augeas/issues/566
426
4272018-06-26  John Morrissey  <jwm@horde.net>
428
429	Dhclient: fix parsing of append / prepend / default / supersede statements
430
4312018-06-13  David Lutterkort  <lutter@watzmann.net>
432
433	Rsyslog: support include() directive
434
4352018-06-11  David Lutterkort  <lutter@watzmann.net>
436
437	* tests/test-api.c: add a check for aug_source
438
439	* src/augeas.c (aug_source): actually return the source for the node
440
441	Multipath: fix syntax error in test
442	Error was introduced in commit ade45812
443
4442018-06-09  David Lutterkort  <lutter@watzmann.net>
445
446	* .travis.yml: run 'make check' in verbose mode
447
448	* NEWS: mention augmatch changes
449
450	* man/augmatch.pod: explain possible exit statuses
451
452	augmatch: add a --quiet option
453	The --quiet option mimics grep's option: suppress output and only set the
454	status code according to whether there was a match or not
455
456	augmatch: exit with code 2, not 1, on error
457
4582018-06-07  David Lutterkort  <lutter@watzmann.net>
459
460	Multipath: allow regexps for devnode, wwid, and property in blacklist section
461	Fixes https://github.com/hercules-team/augeas/issues/564
462
4632018-06-06  David Lutterkort  <lutter@watzmann.net>
464
465	Regenerate docs
466
467	Use a safer calling convention for native functions
468	The native functions in the lens interpreter used a calling convention that
469	required unsafe casting of function pointers. We now use a calling
470	convention that does not cause any function pointer casts.
471
4722018-06-06  David Lutterkort  <lutter@watzmann.net>
473
474	Remove CALLOC and MEMCPY macros
475	MEMCPY was unsued.
476
477	Replace uses of CALLOC with the safer ALLOC and ALLOC_N macros
478
4792018-06-04  David Lutterkort  <lutter@watzmann.net>
480
481	Grub: tolerate some invalid entries
482	Refusing to parse an entire file because of invalid entries is too
483	harsh. Try to make the behavior a little friendlier by simply mapping invalid
484	entries to '#error' nodes but still parsing the rest of the file.
485
486	Also remove del_to_eol, that would delete anything up to eol; it was only
487	used in kw_pres, but should have never been used there. kw_pres should only
488	match the keyword and eol. A line like 'quiet foo bar baz' should not be
489	accepted by (kw_pres "quiet").
490
4912018-05-30  David Lutterkort  <lutter@watzmann.net>
492
493	* NEWS: mention Nginx change
494
4952018-05-29  plumbeo  <plumbeo@users.noreply.github.com>
496
497	Parse nginx sites-enabled
498	On Debian/Ubuntu the active sites are configured in /etc/nginx/sites-enabled, either as files or as symlinks to files in /etc/nginx/sites-available/, so parse that path too.
499
5002018-05-24  David Lutterkort  <lutter@watzmann.net>
501
502	Json: allow escaped slashes in strings
503	According to https://www.json.org/, a string like "\/" is legal in Json.
504
505	Fixes https://github.com/hercules-team/augeas/issues/557
506
5072018-04-25  Han Han  <hhan@redhat.com>
508
509	Fix several memory leak in augmatch
510
5112018-04-23  David Lutterkort  <lutter@watzmann.net>
512
513	src/augmatch.c: include libgen.h
514	Fixes: https://github.com/hercules-team/augeas/issues/556
515
5162018-03-13  David Lutterkort  <lutter@watzmann.net>
517
518	Systemd: explicitly exclude *.d and *.wants directories
519	We used to get confused when writing back systemd changes and tried to
520	write a whole *.d or *.wants directory as one file, which would fail. By
521	explicitly not matching them, we make sure that we write to the files in
522	those directories, not the directories themselves.
523
524	Fixes https://github.com/hercules-team/augeas/issues/548
525
5262018-03-13  David Lutterkort  <lutter@watzmann.net>
527
528	Update gnulib
529
530	NEWS: add note about Chrony changes
531
5322018-03-13  Miroslav Lichvar  <mlichvar@redhat.com>
533
534	Chrony: add new options
535	Add new options supported in chrony 3.2 and 3.3.
536
5372018-02-12  Pino Toscano  <ptoscano@redhat.com>
538
539	Fstab: allow leading whitespace in lines with spec (#544)
540	The documentation does not explicitly mention this possibility, but
541	tooling that parses fstab actually supports this: hence, allow leading
542	whitespace in lines with filesystem specification.
543
5442018-02-09  Pat Riehecky  <riehecky@fnal.gov>
545
546	More specific message as to why this errors out
547
5482018-02-07  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
549
550	new lens: Strongswan
551
5522018-01-29  David Lutterkort  <lutter@watzmann.net>
553
554	Version 1.10.1
555
556	* src/fa_sym.version: fix symbol versioning mistake
557
5582018-01-25  David Lutterkort  <lutter@watzmann.net>
559
560	Version 1.10.0
561
5622018-01-11  David Lutterkort  <lutter@watzmann.net>
563
564	NEWS: add note about previous commit
565
5662018-01-11  Pat Riehecky  <riehecky@fnal.gov>
567
568	Add logind.conf to systemd lense
569
5702018-01-05  David Lutterkort  <lutter@watzmann.net>
571
572	* examples/Makefile.am: do not force static linking of dump
573	Forcing static linking of 'dump' was accidentally left in from some
574	testing; there is no reason to force that specifically for dump.
575
576	Thanks to Jörg Krause for reporting the issue and verifying the fix.
577
578	Fixes https://github.com/hercules-team/augeas/issues/535
579
5802018-01-05  David Lutterkort  <lutter@watzmann.net>
581
582	NEWS: mention addition from commit 94e636df
583
584	Add a few more files to the test root
585
5862018-01-05  Tomas Meszaros  <exo@tty.sk>
587
588	httpd: include  /etc/httpd/conf.modules.d
589	Fedora/RHEL uses this directory for modules config.
590
5912018-01-02  David Lutterkort  <lutter@watzmann.net>
592
593	New command augmatch to query the tree more easily from the command line
594
595	Add more aug_ns_ functions to query nodesets in variables
596	These new functions make it possible to efficiently count the number of
597	nodes in a nodeset, retrieve their label and index, retrieve their value,
598	and get a full path to them
599
600	* src/lens.c (typecheck_prim): new function
601	Factor typechecking primitive lenses into a separate function, and only
602	call that if typechecking is actually turned on.
603
604	* src/lens.c (lns_make_prim): avoid unnecessarily checking key lenses
605	When typechecking is turned off, we do not need to typecheck key lenses.
606
607	* src/info.h: add a helper to see if we should be typechecking
608
609	* src/pathx.c (pathx_symtab_count): return size of a nodeset
610	Add a utility function to retrieve the size of the nodest stored in a
611	variable
612
613	* src/internal.c (tree_sibling_index): utility to compute index of a node
614	Make the logic to determine the index of a node amongst its siblings (as in
615	label[2]) available as a utility function.
616
617	Path expressions allow abbreviating '[. = "foo"]'
618	It's now possible to write 'label["value"]' instead of 'label[. = "value"]'
619	in path expressions.
620
6212017-12-13  omgold  <ybyt4t@gmail.com>
622
623	created lense for /boot/grub/grubenv (grub2) (#291)
624
6252017-12-13  Hilko Bengen  <bengen--github@hilluzination.de>
626
627	Correct some spelling mistakes (#523)
628
6292017-12-11  David Lutterkort  <lutter@watzmann.net>
630
631	* tests/fatest.c (testEnumerate): ignore result of asprintf on purpose
632	Wea re already trying to handle an error; if the asprintf fails we just give up
633
6342017-12-11  Jörg Krause  <joerg.krause@embedded.rocks>
635
636	Update Makefile.am
637	Add missing trailing backslash for `dump_LDADD`.
638
6392017-11-20  David Lutterkort  <lutter@watzmann.net>
640
641	New command 'count' in augtool
642
643	* src/pathx.c (func_not): new function to add 'not(...)' operator
644
645	Remove flags field from struct info
646	The flags field in struct info was only used to pass whether spans are
647	enabled to lns_get. Instead of having this field in every struct info, we
648	just pass it into lns_get explicitly shich puts it into its struct
649	state. That saves a small amount of memory as it makes struct info, of
650	which we have a lot, 4 bytes smaller.
651
652	* put.c: move whether spans are enabled into a flag in struct state
653
654	* get.c: move whether spans are enabled into a flag in struct state
655
6562017-11-10  David Lutterkort  <lutter@watzmann.net>
657
658	Make sure we don't load a module but then later can't find it
659	If a module name contains a '/', it can happen that we find the
660	module (like 'dist/Fstab.lns'), load it and then later can't find it under
661	the invalid module name containing the slash, leading to an endless loop of
662	loding the same module over and over again.
663
664	We avoid this by making sure there is no '/' in the module name before
665	looking for the module file. Other forms of invalid module names should not
666	cause similar problems as we will simply fail to find the corresponding
667	file.
668
669	Fixes https://github.com/hercules-team/augeas/issues/522
670
6712017-11-10  klemens  <ka7@github.com>
672
673	spelling fixes
674
6752017-11-04  John Vandenberg  <jayvdb@gmail.com>
676
677	Support YAML sequence documents
678	This only adds support for a document which
679	consists of a sequence.
680
6812017-11-03  David Lutterkort  <lutter@watzmann.net>
682
683	* README.md: add Travis badge for build status
684
685	* src/fa.c (fa_ambig_example): short-circuit the computation in some cases
686
687	Update gnulib to 180a0d70d
688
689	* src/fa.h: add some more comments for the fa_state_* functions
690
691	* src/fa.h (fa_json): small improvements
692	- make it return an int so we can indicate errors
693	- store the hashes in an array of hash_val_t to ensure we do not
694	  accidentally truncate hash values
695	- small code formatting/clarification changes
696
697	Mention fa_json and fa_state_* in NEWS and AUTHORS
698
6992017-11-03  Pedro  <pedro.valero.mejia@gmail.com>
700
701	Implemented function fa_json to export the FA in json format.
702	Implemented functions fa_state_* that allow the user to go through states and transitions of the FA.
703
704	These changes are discussed in #513
705
7062017-10-31  David Lutterkort  <lutter@watzmann.net>
707
708	* examples/Makefile.am: do not install dump
709
7102017-10-27  David Lutterkort  <lutter@watzmann.net>
711
712	Resolv: accept empty comments with DOS line endings
713	Fixes https://github.com/hercules-team/augeas/issues/161
714
715	Properties: accept empty comments with DOS line endings
716	Fixes https://github.com/hercules-team/augeas/issues/161
717
718	Resolv: no functional change, whitespace cleanup
719
720	* NEWS: mention Nsswitch and Ntp fixes
721
7222017-10-27  David Lutterkort  <lutter@watzmann.net>
723
724	Ntp: accept 'ntpsigndsocket' statement
725	Patch by Philipp Hahn
726
727	Fixes https://github.com/hercules-team/augeas/issues/516
728
7292017-10-27  David Lutterkort  <lutter@watzmann.net>
730
731	Nsswitch: allow comments at end of line
732	Patch by Philipp Hahn
733
734	Fixes https://github.com/hercules-team/augeas/issues/517
735
7362017-10-17  Matt Dainty  <matt@bodgit-n-scarper.com>
737
738	RANCiD lens
739
7402017-10-09  Hilko Bengen  <bengen@hilluzination.de>
741
742	* tests/Makefile.am (lens_tests): explicitly remove target
743	Debian's debhelper will, by default, run autoreconf, which leads to
744	problems as released tarballs contain copies of the various lens-*.sh
745	tests. autoreconf triggers an attempt to recreate the symbolic links to
746	those tests via 'ln -s', which fails because there are already ordinary
747	files for that in place.
748
749	To work aroun that, explicitly remove the 'lens-*.sh' scripts before
750	creating a symbolic link to them.
751
752	For background on Debian's rationale for running autoreconf, see
753	https://wiki.debian.org/Autoreconf
754
755	Fixes https://github.com/hercules-team/augeas/issues/511
756
7572017-10-05  David Lutterkort  <lutter@watzmann.net>
758
759	Version 1.9.0
760
7612017-10-04  Matt Dainty  <matt@bodgit-n-scarper.com>
762
763	Add lenses for reading termcap-style databases
764
7652017-09-29  David Lutterkort  <lutter@watzmann.net>
766
767	Ssh: accept '=' to separate keyword from arguments
768
769	Add Ceph contribution to NEWS and AUTHORS
770
7712017-09-29  Pavel Chechetin  <pchechetin@mirantis.com>
772
773	Add Ceph module
774
7752017-09-29  David Lutterkort  <lutter@watzmann.net>
776
777	Sshd: recognize quoted group names with spaces in them
778	Fixes: https://github.com/hercules-team/augeas/issues/477
779
7802017-09-29  David Lutterkort  <lutter@watzmann.net>
781
782	Properties: accept DOS line endings
783	We now allow /\r?\n/ in line endings. The regular expressions preceding eol
784	and hard_eol are a little tighter than they really need to be to avoid
785	ambiguous concatenations as they generally result from removing \r from
786	allowable values. If that turns out to be a problem, we need to refine them
787	further.
788
789	Fixes https://github.com/hercules-team/augeas/issues/468
790
7912017-09-28  David Lutterkort  <lutter@watzmann.net>
792
793	* src/put.c (create_del): do not unescape the string before writing it out
794	We already unescape the default for a del when we read the lens file. Doing
795	it during put will cause two rounds of unescaping to happen, which is
796	wrong.
797
798	Fixes: https://github.com/hercules-team/augeas/issues/507
799
8002017-09-28  David Lutterkort  <lutter@watzmann.net>
801
802	Httpd: improve handling of arguments in directives
803	* handle '>""' properly
804	* make space between quoted args optional
805	* do not get confused by quoted strings in bare arguments
806
807	Fixes https://github.com/hercules-team/augeas/issues/429
808	Fixes https://github.com/hercules-team/augeas/issues/435
809	Fixes https://github.com/hercules-team/augeas/issues/470
810
8112017-09-28  David Lutterkort  <lutter@watzmann.net>
812
813	Httpd: handle empty comments with a continuation line in them
814	Fixes https://github.com/hercules-team/augeas/issues/423
815
816	* examples/cont.aug: an example for handling continuation lines
817
818	Regenerate docs to include Oz lens
819
820	Exports: allow paths in quotes
821	We used to insist that paths start with a /, but things like
822	"/path/in/quotes" is legal, too. The lens now accepts pretty much anything
823	for the path now.
824
825	Rsyslog: allow comments inside config objects like 'module'
826	At least in Fedora 26, that is used in the default rsyslog.conf
827
828	Syslog: allow spaces before the # starting a comment
829
8302017-09-28  Pat Riehecky  <riehecky@fnal.gov>
831
832	New lense for OZ
833
8342017-09-26  Pino Toscano  <ptoscano@redhat.com>
835
836	* .gitignore: ignore examples/dump
837
8382017-09-26  Denys Stroebel  <stroebs@users.noreply.github.com>
839
840	Add seccomp_sandbox to vsftpd.aug lens
841	Required for Docker containers. Enabled by default on amd64
842	https://wiki.gentoo.org/wiki/Vsftpd
843	seccomp filter sanboxing with vsftpd 3.0.x
844
8452017-09-19  David Lutterkort  <lutter@watzmann.net>
846
847	* tests/test-api.c (testAugNs): deallocate memory used in the test
848	Without this, address sanitizer will complain about lots of leaks.
849
850	* src/transform.c (xfm_lens): initialize *lens_name to NULL
851	Otherwise, we might deal with an uninitialized lens_name in callers,
852	something that gcc 7.1 spots under -O3.
853
8542017-09-19  Han Han  <hhan@redhat.com>
855
856	Fix memory leak when checking version of augparse
857	Add aug_close() before exit to fix memory leak when printing
858	version information of augparse.
859
8602017-09-19  Romain Tartière  <romain@blogreen.org>
861
862	Fix shell location / finding
863	POSIX says a bourne shell is available in `/bin/sh`.  For any other
864	command, `/usr/bin/env` can be used to locate the binary in $PATH.
865
866	Fix all scripts to use `/bin/sh` when applicable, and rely on
867	`/usr/bin/env` to locate `bash` when necessary.
868
8692017-09-19  Romain Tartière  <romain@blogreen.org>
870
871	Use a portable pattern substitution
872	Bash has a non-standard substitution `${parameter/pattern/string}` but
873	since the autotools produce a shell whose interpreted is `/bin/sh`,
874	there is no warranty for this pattern to be supported.
875
8762017-09-16  David Lutterkort  <lutter@watzmann.net>
877
878	* src/fa.c (fa_make_empty): do not mark fa as minimal or deterministic
879	Even though the empty fa is both minimal and deterministic, this function
880	is also used to allocate new fa's which may be modified further,
881	invalidating their being marked as minimal or deterministic. For example,
882	the fa constructed by fa_intersect was erroneously marked as minimal
883	because of this, making it impossible to actually minimize that fa.
884
885	Not marking the empty fa as minimal and deterministic will not cause any
886	problems, and may only cause us to unnecessarily try to determinize or
887	minimize the fa, which, given the size of the empty fa will be very fast
888	operations.
889
8902017-09-15  David Lutterkort  <lutter@watzmann.net>
891
892	* src/lexer.l: properly handle backslash escaping in strings and regex
893	We used to look at a string literal like "\\" as not ending, and instead
894	mistook \" as escaping the ending quotes. This (longstanding, embarrassing)
895	bug would lead to weird syntax errors in lenses when encountered.
896
897	Fixes https://github.com/hercules-team/augeas/issues/495
898
8992017-09-15  David Lutterkort  <lutter@watzmann.net>
900
901	When saving to nonwritable file fails, make sure we remove the tempfile
902	When the file we are trying to save to is not writable, we left the
903	temporary file we wriote to behind. Now, we make sure we remove it.
904
905	Fixes https://github.com/hercules-team/augeas/issues/479
906
9072017-09-15  David Lutterkort  <lutter@watzmann.net>
908
909	Test that putting text with a lens updates spans
910	Fixes https://github.com/hercules-team/augeas/issues/467
911
912	* transform.c (lens_put): factor out bookkeeping around calling lns_put
913	Both transform_save and text_retrieve need to update the span info for
914	their root nodes. The lens_put function does that.
915
916	* transform.c (lens_get): common logic around calling lns_get
917	To make sure we correctly handle setting the span for the toplevel node for
918	a file, factor the setup around calling lns_get into the lens_get method
919	(yes, naming is hard) and use it from load_file and text_store
920
921	* put.c: recalculate span information when writing a file
922
923	Pass struct info into lns_put
924	This makes the AUG_ENABLE_SPAN flag available so that we can later update
925	spans when we put.
926
927	* transform.c (make_lns_info): new function to create struct info for lns_get
928	We had that in two different places with slightly different ways of doing
929	this. Turning this into a function makes sure we do the same thing for
930	load_file and text_store.
931
932	* transform.c (text_store): pass aug->flags to lns_get
933	This ensures that we calculate spans when they are turned on
934
9352017-09-12  Pino Toscano  <ptoscano@redhat.com>
936
937	Grub: handle top-level "boot" directive (#494)
938	Grub 1 effectively ignores commands in the configuration which work only
939	in the command line.  The generated configuration by anaconda included
940	also a commented "boot=device" entry at the beginning: uncommenting that
941	does not make the configuration invalid, but makes the Grub lens not
942	able to parse it.
943
944	Since there is no harm in representing a configuration key that will be
945	effectively ignored, accept top-level "boot" entries as well.
946
9472017-09-08  Omer Katz  <omer.drow@gmail.com>
948
949	Added branch prediction macros and marked allocation errors as unlikely.
950
9512017-09-08  Pino Toscano  <ptoscano@redhat.com>
952
953	Cgconfig: allow fperm & dperm in admin & task
954	These keys are used to control the permissions for files and
955	directories.
956
9572017-08-28  David Lutterkort  <lutter@watzmann.net>
958
959	* examples/dump.c: example of using aug_ns_* functions
960
961	* augeas.c (aug_ns_attr): new function to iterate through a nodeset
962	This function makes it possible to quickly iterate through a nodeset and
963	retrieve various bits of information about the nodes in it.
964
965	* pathx.c (pathx_symtab_get_tree): new function
966
967	Remove lots of duplicate 'const' declarations
968	GCC 7 warns about those, and they are completely unnecessary.
969
970	Mark fallthroughs in switch statements as intentional
971	WIth GCC 7.0, gcc will warn about these fallthroughs. In the one place
972	where we do that, we need to keep them to avoid rewriting the entire
973	logic. We therefore just mark them as intentional.
974
9752017-08-28  Shawn Ferry  <sferry@gmail.com>
976
977	Solaris needs gnu-version-script-compat
978
9792017-08-25  Dominic Cleal  <dominic@cleal.org>
980
981	Sshd: split HostKeyAlgorithms values into list
982	Matches Ssh lens behaviour.
983
9842017-08-25  Roy Hubbard  <rhubbard@integralads.com>
985
986	Add FreeBSD path for rc.conf.d
987
988	Add FreeBSD paths to dovecot
989
990	Add FreeBSD paths for postfix
991
9922017-08-25  David Lutterkort  <lutter@watzmann.net>
993
994	* NEWS: fix encoding back to UTF-8
995
9962017-08-25  Luigi Toscano  <ltoscano@redhat.com>
997
998	Fix sudoers lens: recognize "match_group_by_gid"
999	The option is now enabled by default in the default sudoers of
1000	RHEL 7.4 (and probably soon CentOS 7).
1001
1002	Closes #482
1003
10042017-08-25  David Lutterkort  <lutter@watzmann.net>
1005
1006	* augeas.pc.in: make -lfa a private lib
1007
1008	Fix the pkg-config file augeas.pc
1009	The file previously was unusable because it did not include linking to
1010	libfa, and did not list libselinux as a dependency if it was built with
1011	support for it. This should now all work
1012
10132017-08-17  David Lutterkort  <lutter@watzmann.net>
1014
1015	NEWS: include news for 1.8.1
1016
10172017-08-17  David Lutterkort  <lutter@watzmann.net>
1018
1019	* src/pathx.c (parse_name): correctly handle trailing whitespace in names
1020	When a name ended in whitespace, we incorrectly assumed it was always ok to
1021	trim that whitespace. That is not true if that whitespace is escaped,
1022	i.e. if the path expression is something like '/x\ '. In that case, the
1023	name really needs to be literally 'x ', i.e., we can not trim that
1024	whitespace.
1025
1026	The incorrect behavior led to turning '/x\ ' first into 'x\' and then,
1027	because we assume that '\' is always followed by a character inside the
1028	string, when we removed the escaping '\', we would read beyond the end of
1029	the intermediate string result; if we were lucky, that would lead to a
1030	crash, otherwise we'd continue with junk.
1031
1032	We now make sure that escaped whitespace at the end of a string does not
1033	get stripped, avoiding all these headaches.
1034
1035	Fixes RHBZ https://bugzilla.redhat.com/show_bug.cgi?id=1475621
1036
10372017-06-29  Doug Wilson  <dallendoug@users.noreply.github.com>
1038
1039	update rsyslog lens to includ files in rsyslog.d dir (#475)
1040
10412017-06-10  David Lutterkort  <lutter@watzmann.net>
1042
1043	put.c: improve the error when putting l* fails
1044	We now include both the tree that we failed to match and the tree pattern
1045	that we wanted to match in the error.
1046
1047	put.c: track the fully qualified path of our position in the tree
1048	Previously, we only tracked a path like /a/b/c and printed that in errors
1049	to indicate where in the tree the error occurred. That was ambiguous when
1050	there were multiple /a/b's for example. We now include the more precise
1051	path /a[2]/b[3]/c in error messages to clarify that.
1052
1053	put.c (regexp_match_error): add newlines to error to increase readability
1054
1055	regexp_escape: suppress some internal changes to regexps
1056	We make sure regexps for atypes do not ever match characters
1057	\001-\004. When we print them, we want to keep that from the user to make
1058	the regexps closer to what the user typed, and to remove unnecessary
1059	clutter.
1060
10612017-06-10  David Lutterkort  <lutter@watzmann.net>
1062
1063	tests/test-api.c: include libgen.h
1064	Missing that include leads to segfaults on OS X Sierra.
1065
1066	Thanks to yan12125 for the fix
1067
1068	Fixes https://github.com/hercules-team/augeas/issues/461
1069
10702017-06-10  David Lutterkort  <lutter@watzmann.net>
1071
1072	doc/naturaldocs/conf/lenses/Menu.txt: fix broken syntax
1073	This fixes a syntax error introduced in c2dd3ac8 that made building fail
1074
10752017-06-10  Omer Katz  <omer.drow@gmail.com>
1076
1077	Parse available sites for nginx (#471)
1078	Some of the configuration for nginx at least for Debian & Ubuntu can be found at `/etc/nginx/sites-available/`. These files are specific to each server nginx is going to proxy.
1079
10802017-05-22  JSP-GIHS  <JSP-GIHS@users.noreply.github.com>
1081
1082	Added the group-sorted keyword in line with group-compress, and a (#462)
1083	suitable test to the test_xymon.aug
1084
1085	Confirmed operational on a FreeBSD 10-RELEASE server.
1086
10872017-05-17  Jose Plana  <jplana@gmail.com>
1088
1089	Add new nslcd.conf lenses to parse nss-pam-ldapd configuration file
1090
10912017-03-22  Dominic Cleal  <dominic@cleal.org>
1092
1093	Update gnulib to 7b8cbb9
1094
10952017-03-20  David Lutterkort  <lutter@watzmann.net>
1096
1097	Version 1.8.0
1098
10992017-03-17  David Lutterkort  <lutter@watzmann.net>
1100
1101	augeas.spec.in: sync with latest from Fedora; add -static subpackage
1102
1103	Reorganize how help lists all commands
1104
1105	Add an 'info' command to print important runtime information
1106
1107	Make changing context node more discoverable with a 'context' command
1108
11092017-03-16  Craig Miskell  <craig@catalyst.net.nz>
1110
1111	Fix for rsyslog rainerscript module loading, with options
1112
11132017-03-14  David Lutterkort  <lutter@watzmann.net>
1114
1115	Update NEWS and AUTHORS with information about Radicale lens
1116
11172017-03-14  James Valleroy  <jvalleroy@mailbox.org>
1118
1119	Add radicale lens test to list
1120
1121	Add test for radicale lens
1122
1123	Add lens for radicale config file
1124
11252017-03-14  David Lutterkort  <lutter@watzmann.net>
1126
1127	Reduce the total amount of memory used by Augeas
1128	The pattern buffers for compiled regular expressions take up a large amount
1129	of space. Previously, we had placed calls to lens_release strategically so
1130	that that memory gets released when we are done with a lens for a while
1131	(for example, after loading all files described by a transform)
1132
1133	That overlooked that the interpreter compiles regular expressions when it
1134	loads lenses. We now also release lens storage after loading an entire
1135	module. That requires that regular expressions are compiled again when we
1136	start actually loading files, but the additional regex compilation does not
1137	seem to affect the overall runtime. It does dramatically reduce maximum
1138	memory needed by an 'augtool -L quit'. On my machine, it drops from about
1139	90MB to about 20MB.
1140
11412017-03-13  David Lutterkort  <lutter@watzmann.net>
1142
1143	Ssh: only look for *.conf files in /etc/ssh/ssh_config.d
1144	The previous commit would have slurped in all files in that directory, but
1145	only *.conf files are important.
1146
1147	Patch by Ian Mortimer
1148
11492017-03-08  David Lutterkort  <lutter@watzmann.net>
1150
1151	Ssh: also look for files in /etc/ssh/ssh_config.d
1152	Patch by Ian Mortimer
1153
11542017-02-28  David Lutterkort  <lutter@watzmann.net>
1155
1156	Split aug_to_xml into its own source file
1157	This makes it possible to statically link against libaugeas without pulling
1158	libxml in (assuming the code does not call aug_to_xml)
1159
11602017-02-23  David Lutterkort  <lutter@watzmann.net>
1161
1162	Add a new aug_source API call and 'source' command in augtool
1163	Fixes https://github.com/hercules-team/augeas/issues/384
1164
11652017-02-22  Jörg Krause  <joerg.krause@embedded.rocks>
1166
1167	src/augtool: fix multiple definition of xasprintf
1168	`xasprintf` is defined both in *internal.c* and *augtool.c*. This
1169	breaks building augeas statically:
1170
1171	```
1172	./.libs/libaugeas.a(internal.o): In function `xasprintf':
1173	internal.c:(.text+0x934): multiple definition of `xasprintf'
1174	augtool.o:augtool.c:(.text+0x8a4): first defined here
1175	collect2: error: ld returned 1 exit status
1176	```
1177
1178	Mark the definition of xasprintf in *augtool.c* as a private copy by
1179	prefixing the function name with an underscore and making the function
1180	static.
1181
11822017-02-20  Jason Lingohr  <lingfish@users.noreply.github.com>
1183
1184	Postfix_Virtual: Allow underscores in e-mail addresses
1185	Fixes #439
1186
11872017-02-16  Jörg Krause  <joerg.krause@embedded.rocks>
1188
1189	Interfaces: fix documentation typos
1190
11912017-02-16  Xavier Mol  <xavier.mol@kit.edu>
1192
1193	Multipath: updated for multipath-0.4.9-99.el7
1194
11952017-02-06  Miroslav Lichvar  <mlichvar@redhat.com>
1196
1197	Chrony: add new directives and options
1198	Add support for new directives and options from chrony 3.0 and 3.1.
1199
1200	Chrony: allow floating-point numbers
1201
12022017-02-06  Dustin Wheeler  <mdwheele@ncsu.edu>
1203
1204	[krb5.aug] Support realms that start with numbers (#437)
1205	Currently, the default kerberos configuration that ships with
1206	Ubuntu has a realm that starts with a number (1TS.ORG). This
1207	causes the parser to fail and prevents krb5.conf from being
1208	available via augtool.
1209
1210	This patch allows numbers 0-9 as the first character of a
1211	realm.
1212
12132017-01-09  Pat Riehecky  <jcpunk@gmail.com>
1214
1215	yum.aug: Yum lenses work on DNF, add them to import list (#434)
1216
12172017-01-03  Daniel Dico  <ddico@oerp.ca>
1218
1219	php.aug  - Fix php7 FPM support
1220	Update path to reflect the transition from:
1221	/etc/php5/ to /etc/php/7.0/
1222
12232016-12-23  Jason A. Smith  <smithj4@bnl.gov>
1224
1225	Fix #430 - support Krb5 include(dir)?
1226	Updated the Krb5 lens to support the include(dir)? directives,
1227	with test case.
1228
12292016-12-23  Iavael  <iavael@users.noreply.github.com>
1230
1231	Removed trailing space in token in slapd.lens
1232
12332016-11-23  David Lutterkort  <lutter@watzmann.net>
1234
1235	Xml: process external entities in DOCTYPE declaration
1236	See http://www.w3.org/TR/2006/REC-xml11-20060816/#sec-external-ent for the
1237	required syntax.
1238
1239	Based on initial patch by Adam Bottchen.
1240
1241	Fixes https://github.com/hercules-team/augeas/issues/142
1242
12432016-11-11  Dominic Cleal  <dominic@cleal.org>
1244
1245	Tmpfiles: parse three digit file modes
1246
1247	Tmpfiles: parse two character argument fields
1248
1249	Tmpfiles: permit 'q'/'Q' entry types
1250
12512016-11-08  David Lutterkort  <lutter@watzmann.net>
1252
1253	Version 1.7.0
1254
12552016-11-04  David Lutterkort  <lutter@watzmann.net>
1256
1257	Refine handling of multiple transforms handling the same file
1258	We used to blindly flag an error when there were multiple transforms that
1259	handled the same file. That is now ok as long as these transforms all use
1260	the exact same lens.
1261
12622016-11-02  Richard W.M. Jones  <rjones@redhat.com>
1263
1264	Grub: add alternate locations for UEFI grub 1 config file.
1265	The path looks like "/boot/efi/EFI/redhat/grub.conf", with "redhat"
1266	substituted for other vendors.
1267
12682016-11-01  David Lutterkort  <lutter@watzmann.net>
1269
1270	Cron_User: new lens for user crontab files
1271	The user crontab files in /var/spool/cron have a slightly different format
1272	from /etc/crontab in that they do not have a 'user' field as that's implied
1273	by the filename. Unfortunately, it is not possible to use Cron.lns, since
1274	defining Cron.entry as
1275
1276	  let entry       = [ label "entry" . indent
1277	                    . prefix?
1278	                    . ( time | schedule )
1279	                    . (sep_spc . user)?
1280	                    . sep_spc . store Rx.space_in . eol ]
1281
1282	(i.e., with a ( .. )? around the user name) leads to typecheck errors.
1283
1284	This lens is a minor variation on Cron.lns and just removes the bits about
1285	the user field.
1286
12872016-11-01  Richard W.M. Jones  <rjones@redhat.com>
1288
1289	gnulib: Allow tests to be disabled with ./configure --disable-gnulib-tests
1290	gnulib tests sometimes fail for reasons which are everything to do
1291	with gnulib and nothing to do with Augeas.  Allow them to be skipped.
1292
12932016-10-27  David Lutterkort  <lutter@watzmann.net>
1294
1295	Properly check composite regular expressions for syntax errors
1296	We used to not properly check the syntax of regular expressions that are
1297	constructed. For example, in the construct
1298
1299	    let rx = /a/ | /b)/
1300
1301	we would not check whether /b)/ is syntactically correct, which would later
1302	lead to Augeas crashing. The reason for this was that literals had types
1303	assigned to them before we actually checked them, i.e., the assumption was
1304	that values didn't need any checking beyond setting their type, which is
1305	not true for regular expressions.
1306
13072016-10-27  David Lutterkort  <lutter@watzmann.net>
1308
1309	* src/get.c (recursive parsing): simplify logic around get/parse_combine
1310	Instead of having explicit if statements to decide whether to call
1311	get_combine or parse_combine at various places, store a pointer to the
1312	appropriate one in struct rec_state and call that instead.
1313
1314	* src/get.c (visit_exit): address possible leak of TREE
1315
1316	* src/get.c: properly propagate errors from the various frame handling helpers
1317
13182016-10-27  David Lutterkort  <lutter@watzmann.net>
1319
1320	* src/errcode.h (ensure, ensure0): do not compile out when NDEBUG is set
1321	The two macros ensure and ensure0 have an important sideeffect in that they
1322	set Augeas' internal error code and their failure can therefore be used to
1323	detect errors and return early for error handling.
1324
1325	It is therefore a bad idea to make it possible to compile them out by
1326	setting NDEBUG as that will change the overall control flow
1327	considerably. Leaving htem always on also will have minimal performance
1328	impact, especially in the non-error case.
1329
13302016-10-27  David Lutterkort  <lutter@watzmann.net>
1331
1332	* src/get.c: properly propagate errors from push_frame
1333
1334	* src/get.c: comment better how traversing a recursive parse tree works
1335
1336	* src/get.c: simplify recursive lens handling by fixing frame stack
1337	The stack for frames on which we remember results from traversing the parse
1338	tree with visit_enter/visit_exit was implemented very oddly: pop_frame
1339	removed a frame and returned the new top. It now returns the top of the
1340	stack that we just popped, i.e., the old top, which makes it possible to
1341	get rid of some odd ways in which we got intermediate results off the
1342	stack.
1343
13442016-10-26  Craig Miskell  <craig@stroppykitten.com>
1345
1346	Opendkim: new lens for /etc/opendkim.conf
1347
13482016-10-04  Jason Antman  <jason@jasonantman.com>
1349
1350	Splunk: support Splunk Universal Forwarder and underscore-prefixed keys for 6.x
1351	Fixes https://github.com/hercules-team/augeas/issues/407
1352
13532016-10-04  David Lutterkort  <lutter@watzmann.net>
1354
1355	* tests/cutest.c: fix indentation by removing tabs
1356	This file used tabs for indentation which causes errors about misleading
1357	indentation with GCC 6. Replacing tabs with spaces fixes that.
1358
1359	* tests/cutest.h: remove misleading const decls from struct CuTest
1360
13612016-10-02  David Lutterkort  <lutter@watzmann.net>
1362
1363	* NEWS: add note about coverity/ASAN fixes
1364
13652016-10-02  David Lutterkort  <lutter@watzmann.net>
1366
1367	* src/augeas.c (aug_load): make detection of file metadata safer
1368	When we went to clean up files that are not managed by a lens anymore, we
1369	just assumed that anything with a 'path' child held metadata for a file and
1370	removed that metadata and the actual contents.
1371
1372	That could lead to a situation where creating a node /augeas/files/path
1373	would lead to a crash. We now use an explicit flag in the tree node that
1374	holds file metadata to indicate the fact rather than just inferring it from
1375	the presence of a 'path' child, so that we will never inadvertently free
1376	everything under /augeas/files.
1377
13782016-10-01  David Lutterkort  <lutter@watzmann.net>
1379
1380	* examples/fadot.c: free the result from FA_AS_REGEXP
1381	This avoids false positives with address sanitizer
1382
1383	* src/get.c (visit_exit): do not leak SKEL when we fail to allocate DICT
1384
1385	* src/get.c (parse_combine): do not leak SKEL or DICT on error
1386	If we encountered an (internal) error in ENSURE, it was possible that we
1387	leaked SKEL and DICT. We now make sure they get set to NULL when we have
1388	saved them, and free them if they are not NULL yet.
1389
1390	* src/augrun.c (aug_srun): make sure we always initialize CMD
1391	Otherwise, we might try to free cmd.opt before it has been set to NULL.
1392
1393	* src/put.c (lns_put): do not leak various things when parse fails
1394	When parse failed, and we needed to skip the actual put, we used to return
1395	straight away, even though we were holding on to a number of intermediate
1396	data structures. Now we properly clean them up.
1397
1398	* src/builtin.c (pathx_parse_glue): do not ref INFO passed to make_pathx_exn
1399	make_pathx_exn already increases the reference count appropriately. The
1400	additional reference caused INFO to be leaked.
1401
1402	* src/augrun.c (cmd_errors): do not leak filename
1403
1404	* src/pathx.c (parse_location_path): do not leak STEP on error
1405
1406	* src/pathx.c (axis_sep): remove unused constant
1407
1408	* tests: fix various memory leaks caused by the tests
1409
14102016-09-30  David Lutterkort  <lutter@watzmann.net>
1411
1412	* src/get.c (rec_process): do not leak span on error
1413
1414	* src/get.c (visit_exit): do not deref TREE until after we checked it for NULL
1415
1416	* src/get.c (visit_enter): do not allocate a new span for L_MAYBE
1417	There was no good reason why we allocated a span here; in fact, it would
1418	only get leaked as there was nothing in visit_exit that would move the span
1419	into the tree.
1420
1421	* src/get.c (get_subtree): make sure we do not leak a span on error
1422
1423	* src/internal.h (move): new macro to move ownership of pointers
1424
1425	* src/augrun.c (aug_srun): do not leak command_opt when 'quit' is issued
1426
1427	* src/transform.c (transform_file_error): do not leak EP
1428
1429	* tests/fatest.c: free memory allocated by tests
1430	Without this cleanup, it's too hard to spot genuine leaks from address
1431	sanitizer
1432
1433	* cutest.h (CuSuiteFree): new function to free memory held by a suite
1434
1435	* src/builtin.c (make_pathx_exn): avoid unnecessary alllocation and leak
1436	We used to call STRDUP for no good reason on the constant error message
1437	returned by PATHX_ERROR and promptly leaked it.
1438
1439	* src/augeas.c (dump_tree): do not leak P when we can't compile pathx "/*"
1440
14412016-09-30  David Lutterkort  <lutter@watzmann.net>
1442
1443	* src/syntax.c (define_native_intl): fix memory leak on allocation error
1444	When we tried to allocate BODY and allocation failed, we still had
1445	allocated memory in PARAMS that was not freed in the error label. We now
1446	free that list on error.
1447
1448	To make sure we do not try and free PARAMS when it has been linked into
1449	FUNC, we set it to NULL after the call to BUILD_FUNC.
1450
1451	The call to BUILD_FUNC also erroneously checked the return value for NULL,
1452	even though this function can never return NULL. This check was removed.
1453
14542016-09-30  David Lutterkort  <lutter@watzmann.net>
1455
1456	* src/fa.c (determinize): do not leak INI in an error case
1457	If we succeed in allocating INI ourselves, but then fail to push the
1458	initial state into it, we would leak INI. Fix that by explicitly freeing
1459	it.
1460
1461	* src/get.c (print_frames): do not leak the result of format_lens
1462	Fixing this to make coverity happy - it's unused code in a debugging routine
1463
1464	* src/internal.c (path_expand): remove unnecessary NULL check
1465	The TREE argument must not be NULL, so there's no need to check for that
1466	later on
1467
1468	* src/info.c, src/lens.c: shore up some error formatting routines
1469	These routines are now more resilient to being passed NULL arguments
1470
1471	* src/pathx.c (ns_from_locpath): insist that arg LP is not NULL
1472	This allows us to remove some confused checking
1473
1474	* src/lexer.l (regexp_literal): avoid knockon error on allocation failure
1475
14762016-09-29  David Lutterkort  <lutter@watzmann.net>
1477
1478	* src/pathx.c (parse_relative_location_path): avoid leak on ENOMEM
1479	When we ran out of memory, we did not properly free the previously
1480	allocated LOCPATH.
1481
1482	* src/pathx.c (clone_vlaue): remove incorrect call to free
1483	We were calling free on a pointer into the interior of an array
1484
1485	* src/augeas.c (unlink_removed_files): avoid leaking PX on pathx parse error
1486
1487	* src/lens.c (typecheck_n): make clearer why we return early
1488
1489	* src/augeas.c (aug_load_file): check xasprintf call for alloc error
1490
1491	* src/transform.c (text_retrieve): remove unused variable
1492
1493	* src/transform.c (remove_file): remove some unreachable code
1494
14952016-09-29  David Lutterkort  <lutter@watzmann.net>
1496
1497	* src/get.c: move saving/restoring match state into macros
1498	The main reason to make these macros is that it makes sure we set
1499	state->regs to NULL when we save registers so that any error path does not
1500	inadvertently free the caller's registers.
1501
1502	Before we inconsistently set state->regs to NULL manually, and there were
1503	cases where we could have freed the caller's registers when encountering
1504	certain errors.
1505
15062016-09-29  David Lutterkort  <lutter@watzmann.net>
1507
1508	* src/transform.c (text_store): remove dead code
1509
1510	* src/augeas.c (aug_to_xml): do not leak P on syntax error in PATHIN
1511
1512	* src/augeas.c (aug_defnode): do not leak p on syntax error in expr
1513
1514	* src/augeas.c (aug_rm): do not leak p on syntax error in path
1515
1516	* src/augeas.c (aug_text_store): fix leak of p on syntax error in path
1517
1518	* transform.c (xfm_error): do not leak v or l if allocation of one of them fails
1519
1520	* augeas.c (aug_setm): fix leaking of bx and sx
1521
1522	* augeas.c (aug_set, aug_print): do not leak p when path expr has syntax error
1523
1524	* transform.c (load_file, text_store): do not leak info on some error paths
1525
1526	* transform.c (load_file): avoid leaking span on parse errors
1527
1528	Update gnulib to 5f7358cc
1529
15302016-09-28  David Lutterkort  <lutter@watzmann.net>
1531
1532	* NEWS: update with details for Issue #398
1533
1534	* src/put.c (skel_instance_of): simplify convoluted logic for L_STAR
1535	We know that l->tag is L_STAR, but hte code was written as if it could be
1536	something else, too.
1537
1538	* src/lens.h (struct skel): add comment that skels in union is used for L_SQUARE
1539
15402016-09-28  David Lutterkort  <lutter@watzmann.net>
1541
1542	* src/put.c (skel_instance_of): fix illegal memory access
1543	We used to always access skel->skels; but that is only valid if the tag for
1544	skel->skels is L_CONCAT or L_STAR. Because of this, we could, for example
1545	access skel->skels for a skel tagged as L_DEL, which is illegal.
1546
1547	This patch adds a fix to the L_CONCAT case so that we only look at
1548	skel->skels if the skel is tagged that way.
1549
1550	Fixes https://github.com/hercules-team/augeas/issues/398
1551
15522016-09-26  David Lutterkort  <lutter@watzmann.net>
1553
1554	* src/augtool.c (main): call aug_close before returning
1555	While it's not necessary to call that, as the OS will clean up for us, it
1556	might help in uncovering memory handling errors more easily.
1557
15582016-09-26  David Lutterkort  <lutter@watzmann.net>
1559
1560	* src/get.c (visit_enter, visit_exit): fix use-after-free when spans are used
1561	When spans are enabled, we used to store a a pointer to the same span both
1562	in a frame and in the current state for L_SUBTREE lenses, which meant that
1563	two different tree nodes might have pointers to the same span. That is
1564	counter to the assumptions made about tree nodes, in that they need to own
1565	the spans attached to them, resulting in a use-after-free. It would also
1566	record incorrect span information in one of the tree nodes.  We now
1567	allocate a new span when we store one in the frame - that way we are
1568	guaranteed that there is no aliasing.
1569
1570	With L_MAYBE lenses, visit_enter allocated a new span in state, thus
1571	possibly leaking the one that might be there already. We now store that
1572	span in the frame that we push for L_MAYBE, avoiding that leak.
1573
1574	Finally, we popped frames in visit_exit without doing anything with
1575	them. We now also free any associated span to make sure we do not leak that
1576	information.
1577
1578	Fixes https://github.com/hercules-team/augeas/issues/397
1579
15802016-09-25  David Lutterkort  <lutter@watzmann.net>
1581
1582	* src/transform.c (transform_load): fix leak when ignoring a file match
1583
1584	* src/try: allow passing arguments to augtool when running valgrind
1585
15862016-08-19  David Lutterkort  <lutter@watzmann.net>
1587
1588	Update gnulib to 6fafd688
1589
15902016-08-18  Michael Wodniok  <michi@noorganization.org>
1591
1592	Reflect Ubuntu 16.04 location of php.ini (#399)
1593	php.ini has moved with upgrade from PHP5 to PHP7 (included in Ubuntu 16.04).
1594
15952016-08-16  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1596
1597	Update Copyright date to 2016
1598
15992016-08-15  Dominic Cleal  <dominic@cleal.org>
1600
1601	Csv: remove unused caret from comment regexp
1602	Fixes #396
1603
16042016-08-05  David Lutterkort  <lutter@watzmann.net>
1605
1606	Version 1.6.0
1607
1608	man/augtool.pod: clarify the description of --load-file and load-file
1609
16102016-08-05  David Lutterkort  <lutter@watzmann.net>
1611
1612	* src/pathx.c: make numbers in path expressions 64 bit integers
1613	Previously, they were whatever 'int' was, which might be too small, for
1614	example to handle timestamps. With making them int64_t, it is now possible
1615	to find files that have changed since a certain point in time with
1616
1617	  match /augeas/files//*[mtime][int(mtime) >= TIMESTAMP]
1618
1619	where TIMESTAMP is in seconds since the epoch
1620
16212016-08-05  Loren Gordon  <loren@fleet-it.com>
1622
1623	Uses spaces between tokens instead of tabs for pam files
1624	pam.d(5) man page states: "The format of each rule is a space
1625	separated collection of tokens..." Previsouly, pam.aug used
1626	`Util.del_ws_tab` to insert tabs as a token separator. This patch
1627	modifies pamconf.aug and pam.aug to use `Sep.space`, which
1628	uses a space as a separator instead.
1629
1630	Fixes #236
1631
16322016-08-05  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
1633
1634	Shellvars: include lbu.conf
1635	Alpine Linux Local Backup Utility
1636
16372016-08-05  Omer Katz  <omer.drow@gmail.com>
1638
1639	Added nginx locations for homebrew installed nginx.
1640
16412016-08-04  g-coder  <garima.g@samsung.com>
1642
1643	NO_VA_END
1644	Function 'va_end' was not called before internal.c:55 and internal.c:64 inside function 'pathjoin'.
1645	Added 'va_end(ap)' before return statement.
1646
16472016-07-21  g-coder  <garima.g@samsung.com>
1648
1649	DEREF_OF_NULL
1650	Return value of a function 'add_state' is dereferenced at fa.c:2776 without checking.
1651	Added check on return value.
1652
16532016-07-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1654
1655	Update NEWS and AUTHORS
1656
16572016-07-11  Josef Reidinger  <jreidinger@suse.cz>
1658
1659	Ntp: fix restrict to allow also -4 and also fix save/store ability (#386)
1660	* fix restrict to allow also -4 and also fix save/store ability
1661	* use backward compatible ip flags
1662
16632016-07-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1664
1665	Update NEWS
1666
16672016-07-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1668
1669	Add aug_load_file to load individual files
1670	API:
1671
1672	  - Add aug_load_file() API entry to load an individual file
1673
1674	Augtool:
1675
1676	  - Add -l|--load-file option
1677	  - Add load-file command
1678
1679	Internal:
1680
1681	  - change transform_load() signature to take a FILE filter
1682	  - expose filter_matches() in transform.h
1683
16842016-06-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1685
1686	Add /etc/profile and /etc/byobu to Shellvars.lns
1687
16882016-06-22  Dominic Cleal  <dominic@cleal.org>
1689
1690	Httpd: follow line continuations in comments
1691
16922016-06-16  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1693
1694	Update NEWS and AUTHORS
1695
16962016-06-16  Anton Baranov  <abaranov@linuxfoundation.org>
1697
1698	Add lens to parse postfix password maps
1699
17002016-06-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1701
1702	Update NEWS
1703
17042016-06-13  Craig Miskell  <craig@catalyst.net.nz>
1705
1706	Support for rsyslog RainerScript syntax
1707	Specifically configuration objects per http://www.rsyslog.com/doc/v8-stable/rainerscript/configuration_objects.html
1708
17092016-06-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1710
1711	Update AUTHORS and NEWS
1712
17132016-06-09  Craig Miskell  <craig@catalyst.net.nz>
1714
1715	Recent ntp.conf allows for 'pool' instead of 'server' et al
1716
17172016-05-16  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1718
1719	Update AUTHORS & NEWS
1720
17212016-05-16  Robert Moucha  <robert.moucha@gooddata.com>
1722
1723	Add allow_writeable_chroot boolead option to vsftpd lens
1724	* available since version 2.3.5 of vsftpd
1725	* not well documented, yet widely used
1726
17272016-05-16  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1728
1729	It's already 2016
1730
17312016-05-11  David Lutterkort  <lutter@watzmann.net>
1732
1733	Version 1.5.0
1734
1735	Remove some test files with very long names
1736	Since tar and automake have conspired to make it impossible to distribute
1737	files with very long names, simply remove them; we still get coverage of
1738	what we need since there is another ifcfg file with special characters in
1739	the name
1740
1741	* Makefile.md: distribute HACKING.md rather than the now nonexistant HACKING
1742
17432016-05-07  Dominic Cleal  <dominic@cleal.org>
1744
1745	Httpd: parse escaped spaces in directive/section arguments
1746
1747	Httpd: allow blank continuation lines in section args
1748
17492016-05-06  David Lutterkort  <lutter@watzmann.net>
1750
1751	* augrun.c (cmd_errors): include the path where an error happened if there is one
1752
1753	Make the error message when a tree does not match a lens easier to read
1754
1755	aug_get: set *value to NULL even if called with invalid path
1756	Fixes https://github.com/hercules-team/augeas/issues/372
1757
17582016-05-04  David Lutterkort  <lutter@watzmann.net>
1759
1760	NEWS: add entry for chrony-2.4 additions
1761
17622016-05-04  Miroslav Lichvar  <mlichvar@redhat.com>
1763
1764	Chrony: add new options
1765	chrony-2.4 will have a new maxdrift directive and new options for the
1766	local directive.
1767
17682016-04-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1769
1770	Properties: add test for empty comment
1771
17722016-04-26  David Lutterkort  <lutter@watzmann.net>
1773
1774	Set MALLOC_CHECK_ for some tests
1775	The malloc in glibc can be told to check and abort a program for some cases
1776	of incorrectly using memory. Turn these checks on for the lens and
1777	interpreter tests (in tests/modules/) to give us some better coverage and
1778	so that we can spot some memory handling errors.
1779
17802016-04-26  David Lutterkort  <lutter@watzmann.net>
1781
1782	Fix buffer overflow in format_union_atype
1783	The change in commit 234de0e did not correctly calculate the length of the
1784	output buffer, which would lead to writing beyond the end of that buffer,
1785	and ultimately to memory corruption.
1786
1787	The format_atype (and ultimately, format_union_atype) functions are not
1788	just used for debugging printing purposes, but also for error reporting
1789	when users create invalid subtrees and try to save them. In that case,
1790	merely creating an invalid tree can lead to a segfault.
1791
1792	This change corrects the length calculation and adds a test that fails with
1793	the old length calculation, provided the test is run with MALLOC_CHECK_=3
1794	in the environment.
1795
1796	Fixes issue #349
1797
17982016-04-25  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1799
1800	Update NEWS and AUTHORS
1801
18022016-04-25  Gerlof Fokkema  <gerlof.fokkema@gmail.com>
1803
1804	Add support for redirecting output to named pipes.
1805
18062016-04-25  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1807
1808	Update NEWS and AUTHORS
1809
18102016-04-22  Chris Reeves  <chris.reeves@york.ac.uk>
1811
1812	logrotate: support dateyesterday option (GH #367)
1813
18142016-04-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1815
1816	Update AUTHORS and NEWS
1817
1818	Puppetfile: add support for moduledir (Christoph Maser)
1819
18202016-04-18  Cédric Bosdonnat  <cedric.bosdonnat@free.fr>
1821
1822	Add lens to parse /etc/default/star
1823	/etc/default/star is not really matching the shellvars expected syntax.
1824	Create a lens for it based on man 1 star and exclude it from the
1825	shellvars lens.
1826
18272016-04-15  Cédric Bosdonnat  <cedric.bosdonnat@free.fr>
1828
1829	smbusers: add support for ; comments
1830
18312016-03-31  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
1832
1833	add paths to default filters
1834	additions mostly specific to Alpine Linux directory layout
1835
18362016-03-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1837
1838	Updating NEWS
1839
18402016-03-31  Cédric Bosdonnat  <cedric.bosdonnat@free.fr>
1841
1842	Exclude network/if-up.d/SuSEfirewall2 in shellvars lens
1843	openSUSE has /etc/sysconfig/network/if-up.d/SuSEfirewall2 that is not a
1844	shell variable script, exclude it to avoid errors.
1845
18462016-03-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1847
1848	Update NEWS
1849
18502016-03-31  Cédric Bosdonnat  <cedric.bosdonnat@free.fr>
1851
1852	host_conf lens: spaces between list items support
1853	List items are separated by commas in host.conf, but we may find spaces
1854	on top of the comma.
1855
18562016-03-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1857
1858	Update AUTHORS and NEWS
1859
18602016-03-30  Cédric Bosdonnat  <cedric.bosdonnat@free.fr>
1861
1862	inputrc lens: support @else
1863	@if structures can also have an @else, let's read them into another
1864	subtree.
1865
1866	inputrc lens: support mapping like ","
1867	The mapping values aren't always words. They can also be quoted values
1868	containing characters like [,+/*-]
1869
18702016-03-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1871
1872	Add missing test
1873
18742016-03-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1875
1876	MySQL: include /etc/my.cnf.d/*.cnf (fix #353)
1877
18782016-02-25  Dominic Cleal  <dominic@cleal.org>
1879
1880	Httpd: permit backslashes in section tags
1881	Fixes a regression introduced by 0b22176 which failed when a backslash
1882	was present in a section tag.  Now it's permitted apart from being the
1883	last character, when it's taken to be a line continuation.
1884
18852016-02-25  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1886
1887	NEWS
1888
1889	Trapperkeeper: new lens for Puppetserver configuration files
1890
18912016-02-23  Dominic Cleal  <dominic@cleal.org>
1892
1893	Httpd: parse line continuations in section arguments
1894
18952016-02-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1896
1897	Update NEWS
1898
18992016-02-11  Miroslav Lichvar  <mlichvar@redhat.com>
1900
1901	Chrony: improve lens
1902	Add new directives and options that were added in chrony-2.2 and
1903	chrony-2.3.
1904
1905	Also, improve parsing of access configuration. The allow, deny,
1906	cmdallow, and cmddeny directives can be specified with no address and
1907	they can use the "all" option.
1908
19092016-01-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1910
1911	YAML: continued lines
1912
1913	YAML: Documentation
1914
1915	YAML: add support for headers
1916
19172015-12-23  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1918
1919	Shellvars: add unsupported syntax to tests (Issue #343)
1920
19212015-12-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1922
1923	Update NEWS
1924
1925	Interfaces: add support for source-directory (Issue #306)
1926
1927	Update NEWS
1928
1929	Shellvars: support subshells (Issue #339)
1930
1931	Shellvars: newlines in start of functions
1932
1933	Shellvars: allow newlines after actions
1934
1935	Shellvars: support comments after function name (Issue #339)
1936
1937	Update NEWS
1938
1939	AptConf: allow empty hash-style comments
1940
1941	Util: add empty_any
1942
1943	Update NEWS
1944
19452015-12-22  Omer Katz  <omer.drow@gmail.com>
1946
1947	Nginx: add @server simple nodes (Issue #335)
1948	Thanks to Omer Katz for the test case.
1949
19502015-12-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1951
1952	Update NEWS and AUTHORS
1953
19542015-12-22  Dimitar Dimitrov  <mitkofr@yahoo.fr>
1955
1956	Yaml subset lens
1957
19582015-12-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1959
1960	Httpd: support perl directives (Issue #327)
1961
19622015-12-18  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1963
1964	Update NEWS
1965
19662015-12-18  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
1967
1968	Shellvars: allow command-specific environment variables
1969
19702015-12-17  Dominic Cleal  <dcleal@redhat.com>
1971
1972	Httpd: parse directive args containing quotes
1973
1974	* tests/test-save.c (testSaveNoPermission): skip when root
1975
19762015-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1977
1978	Update NEWS and AUTHORS
1979
19802015-12-17  florian chazal  <florianchazal@gmail.com>
1981
1982	Vsftpd: add isolate and isolate_network options
1983
19842015-12-17  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
1985
1986	Shellvars: test case for wrapping command arguments
1987
19882015-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1989
1990	Update NEWS
1991
19922015-12-17  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
1993
1994	Shellvars: allow wrapping command sequences
1995
19962015-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
1997
1998	Update NEWS
1999
2000	Nginx: allow masks in IP keys and IPv6 (GH #260)
2001
20022015-12-10  Dominic Cleal  <dcleal@redhat.com>
2003
2004	Httpd: parse directive args starting with double quote
2005	ErrorDocument and similar directives can take a message as the last or
2006	only argument, which starts with a double quote and ends at the EOL.
2007
2008	Fixes #330
2009
20102015-12-07  Dominic Cleal  <dcleal@redhat.com>
2011
2012	Httpd: parse wordlists in braces in SSLRequire directives
2013
20142015-12-04  Dominic Cleal  <dcleal@redhat.com>
2015
2016	Httpd: parse multiple ending section tags on one line
2017
2018	Httpd: parse mismatching case in opening/closing tags
2019
20202015-12-02  Dominic Cleal  <dcleal@redhat.com>
2021
2022	Httpd: parse backslashes at the start of directive args
2023	Fixes #324
2024
20252015-11-30  David Lutterkort  <lutter@watzmann.net>
2026
2027	Skip hidden tree nodes in path expressions
2028	When we were evaluating path expressions, we were not skipping hidden tree
2029	nodes, i.e. tree nodes whose label is NULL. In most cases, that's not
2030	visible to users, but when we match something like /foo/*[2] where /foo has
2031	a bunch of hidden children, the result was not what the user might expect,
2032	as we might actually return a hidden node to aug_match, which would
2033	suppress that node and make it seem to the user as if nothing had matched.
2034
2035	With this patch, we try to skip over hidden nodes while evaluating the path
2036	expression to avoid this issue.
2037
2038	Thanks to Xavier Mol for reporting this
2039
20402015-11-25  David Lutterkort  <lutter@watzmann.net>
2041
2042	* HACKING.md: add a note on using Homebrew to install readline on OSX
2043	Thanks to Daniel Trebbien for the tip
2044
20452015-11-25  David Lutterkort  <lutter@watzmann.net>
2046
2047	* src/augtool.c: add stubs for readline functions missing on OSX
2048	OSX ships with a crippled version of readline, libedit, which does not
2049	contain rl_crlf and rl_replace_line. This patch makes builds on OSX work
2050	again by providing trivial replacements for these functions.
2051
2052	Fixes https://github.com/hercules-team/augeas/issues/256
2053
20542015-11-25  David Lutterkort  <lutter@watzmann.net>
2055
2056	* HACKING.md: rename from HACKING and format as markdown
2057
20582015-11-25  David Lutterkort  <lutter@watzmann.net>
2059
2060	aug_rm: fix segfault when deleting a tree and one of its ancestors
2061	In a tree like /files/1/2, when we execute 'rm /files//*', the path
2062	expression matches /files/1 and /files/1/2. When tree_rm goes to delete
2063	these two nodes, it first deletes (frees) /files/1 and all its
2064	descendents. By the time we try to delete /files/1/2, the pointer we have
2065	to that is no longer valid and we end up causing a double-free.
2066
2067	With this change, we make sure we only delete a node if none of its
2068	ancestors is being deleted beforehand in the same operation - deleting a
2069	node, and one of its ancestors afterwards is fine as the pointer to the
2070	ancestor is still valid.
2071
2072	Fixes https://github.com/hercules-team/augeas/issues/319
2073
2074	Special shoutout to Geoff Williams for finding, diagnosing and filing a
2075	great bug report about this.
2076
20772015-11-25  Daniel Trebbien  <dtrebbien@gmail.com>
2078
2079	fa.h: Minor documentation improvements
2080
20812015-11-25  Daniel Trebbien  <dtrebbien@gmail.com>
2082
2083	Fix fa_ambig_example() when the automata involve NULs
2084	After the example for `amb' was calculated, the code that generated the
2085	*UPV string and pointers *PV and *V within this string used strlen() to
2086	calculate the length of the example; however, the example string may
2087	contain NUL bytes. Thus, it could happen that not enough space would be
2088	allocated for the *UPV string.
2089
2090	Instead of computing the length of the example using strlen(), just use
2091	`s_len'.
2092
2093	Added a new test to fatest, testAmbigWithNuls.
2094
20952015-11-24  Dominic Cleal  <dcleal@redhat.com>
2096
2097	Httpd: parse backslashes in unquoted directive args
2098	Fixes issue #307
2099
21002015-11-24  David Lutterkort  <lutter@watzmann.net>
2101
2102	NEWS: updated for commit baa87fdc
2103
2104	* src/augtool.c: print brief, more standard message when invalid option is given
2105	Instead of dumping all our help, just tell hte user to run with --help when
2106	they provide an unsupported option.
2107
2108	* src/augtool.c: new option '--timing' to print timing info after each command
2109
21102015-11-24  Daniel Trebbien  <dtrebbien@gmail.com>
2111
2112	Correct the documentation of fa_minimize()
2113	It uses the currently-set fa_minimization_algorithm.
2114
2115	Fix a Clang 'sometimes-uninitialized' warning
2116	clang-700.1.76 was issuing a 'sometimes-uninitialized' warning for
2117	minimize_hopcroft() because it was possible for control flow to reach
2118	the `for (int i=0; i < nstates*nsigma; i++)' loop in done: before
2119	`nstates' and/or `nsigma' were initialized.
2120
2121	Fix a Clang 'sometimes-uninitialized' warning in aug_escape_name()
2122	If `in' or `out' is NULL, then the uninitialized value of `result' was
2123	returned.
2124
21252015-11-18  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2126
2127	Update NEWS
2128
2129	Ssh: add support for GlobalKnownHostsFile
2130
21312015-10-03  David Lutterkort  <lutter@watzmann.net>
2132
2133	Update the end year in Copyright statements to 2015
2134
2135	* man/ : update copyright in man pages, correct email address
2136
2137	* man/augtool.pod: update copyright statement
2138	Because of Red Hat's copyright policy for employees, the statement
2139	'Copyright Red Hat' had never been true, and it was 'Copyright David
2140	Lutterkort' all along.
2141
21422015-09-29  David Lutterkort  <lutter@watzmann.net>
2143
2144	* src/pathx.c (ns_from_locpath): special-case 'name[42]' path expressions
2145	We know that in a path expression like 'name[42]', only one node can
2146	possibly match, and that we simply need to step through all the nodes and
2147	count until we've reached the 42nd matching node. This greatly simplifies
2148	how we construct the resulting nodeset, and is done in the new function
2149	position_filter.
2150
21512015-09-28  David Lutterkort  <lutter@watzmann.net>
2152
2153	* src/pathx.c (ns_filter): speed up by removing nodes in batches
2154	We used to remove nodes that did not match one-by-one by calling memmove
2155	for each of them. Now we batch runs of non-matching nodes and call memmove
2156	only once for each run. The common case of a predicate that matches only
2157	one node at a certain position ('service[17]') now requires two memmoves
2158	rather than size(ns)-1 many memmoves.
2159
2160	This leads to a drastic performance improvement for large nodesets.
2161
21622015-09-28  David Lutterkort  <lutter@watzmann.net>
2163
2164	Speed up the duplicate check when constructing nodesets
2165	When we evaluate path expressions, we need to construct nodesets, and they
2166	truly need to be sets, i.e. contain each node at most once. This leads to
2167	problems when a node has lots of children with the same name. The duplicate
2168	check in ns_add lead to O(n^2) behavior for nodes with n children.
2169
2170	We simplify this by adding a flag to each tree node that we use only around
2171	repeated calls of ns_add when we construct a node set. This is possible
2172	since the construction of nodesets is very local, and it is therefore easy
2173	to determine where we need to put the call to ns_clear_added when we are
2174	done building the nodeset.
2175
21762015-09-28  Dominic Cleal  <dcleal@redhat.com>
2177
2178	* test-perf.c (testPerfPredicate): add test showing slow predicates
2179	When parsing a file with NagiosObjects and many objects inside, a large
2180	tree forms like this:
2181
2182	    /files/etc/nagios/objects/services.cfg/service[1]
2183	    /files/etc/nagios/objects/services.cfg/service[2]
2184	    ...
2185	    /files/etc/nagios/objects/services.cfg/service[5000]
2186
2187	aug_get performance is pretty terrible at this size when using a path
2188	above, due to the evaluation of the [5000] predicate.  Paths without a
2189	predicate (e.g. using seq or uniquely labelled nodes) are retrieved
2190	quickly.
2191
2192	The time taken to set and get 5,000 such nodes is recorded in
2193	tests/test-perf.log and is currently about:
2194
2195	    testPerfPredicate = 66636ms
2196
2197	A helper to run Valgrind's callgrind tool is added to src/try.
2198
21992015-09-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2200
2201	Update AUTHORS
2202
22032015-09-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2204
2205	Update NEWS
2206
22072015-09-14  Geoff Williams  <geoff.williams@puppetlabs.com>
2208
2209	Sudoers: support for negated command alias (Issue #262)
2210
22112015-09-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2212
2213	Update NEWS
2214
2215	Aptsources: fix name in Makefile
2216
2217	Aptsources: rename test file properly
2218
2219	Aptsources: support brackets with spaces in URI (GH #296)
2220
2221	Aptsource: support operation on options (GH #295)
2222
2223	Aptsource: support options (GH #295)
2224
22252015-09-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2226
2227	Update NEWS
2228
2229	Dhclient: avoid put ambiguity for node without value
2230
22312015-09-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2232
2233	Update NEWS
2234
2235	Merge commit 'refs/pull/289/head' of github.com:hercules-team/augeas
2236
2237	Update NEWS and AUTHORS
2238
22392015-09-01  Oliver Mangold  <o.mangold@gmail.com>
2240
2241	ssh lense: adding new keywords HostKeyAlgorithms, KexAlgorithms and PubkeyAcceptedKeyTypes
2242
2243	multipath.conf lense: added bunch of missing keywords
2244
22452015-09-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2246
2247	Update NEWS and AUTHORS
2248
2249	Merge commit 'refs/pull/278/head' of github.com:hercules-team/augeas
2250
22512015-08-31  Justin Akers  <justin.akers@opengear.com>
2252
2253	openvpn: simple ipv6 regex to save memory for tests
2254
22552015-08-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2256
2257	Puppetfile: separator is not mandatory
2258
2259	Json: parse verbatim escaped spaces and newlines in quotes
2260
2261	Json: refactor escapes in quotes
2262
2263	Json: allow escaped quotes and blackslashes
2264
22652015-08-25  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2266
2267	Update NEWS
2268
2269	Reprepro_Uploaders: support unused group declaration
2270
2271	Reprepro_Uploaders: support empty group declaration
2272
2273	Reprepro_Uploaders: support group contains declaration
2274
2275	Reprepro_Uploaders: support group declaration
2276
2277	Reprepro_Uploaders: support group conditions
2278
2279	Shellvars: allow &&/|| in commands
2280
22812015-08-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2282
2283	Spacevars: Support flags
2284	Fix #279
2285
2286	Typo
2287
2288	Update NEWS and AUTHORS
2289
22902015-08-22  Gregory Smith  <gasmith@nutanix.com>
2291
2292	Rsyslog: Improve property filter parsing.
2293	 - Treat whitespace after commas as optional.
2294	 - Recognize '~' as a valid syslog action (discard).
2295
22962015-08-06  Justin Akers  <justin.akers@opengear.com>
2297
2298	openvpn: added all options available in OpenVPN2.3 and all tests
2299
23002015-08-05  Mathieu Alorent  <malorent.ext@orange.com>
2301
2302	Reprepro_Uploaders: Add support for distribution field
2303
23042015-08-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2305
2306	Shellvars: support pipes in commands
2307
23082015-08-03  Raphaël Pinson  <raphink@gmail.com>
2309
2310	Shellvars: Allow (almost) any command
2311	    Note: this may have edge effects in recursive sublenses
2312	          that augparse cannot check.
2313
23142015-08-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2315
2316	Update NEWS
2317
23182015-08-03  Joe Topjian  <joe@topjian.net>
2319
2320	Keepalived: Allow notify option
2321
2322	Keepalived: Expanding vrrp_sync_group block
2323
2324	Keepalived: Adding vrrp_script options
2325
2326	Keepalived: Added missing garp options
2327
2328	Keepalived: Added mcast/unicast_src_ip and unicast_peer
2329	These are related option that handle unicast configuration of
2330	keepalived. They are configured as EOL options since I believe they can
2331	take both IPv4 and IPv6 addresses.
2332
2333	Keepalived: Added more vrrp_instance flags
2334
2335	Keepalived: Added vrrp_mcast_group4 and vrrp_mcast_group6
2336
2337	Keepalived: fixing spacing/tag alignments and hanging spaces.
2338
23392015-08-03  Julien Pivotto  <roidelapluie@inuits.eu>
2340
2341	Fstab: remove unneeded brackets
2342
23432015-08-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2344
2345	CSV: New lens to parse CSV files (Issue #275)
2346
2347	Update NEWS and AUTHORS
2348
23492015-08-03  Julien Pivotto  <roidelapluie@inuits.eu>
2350
2351	Add a tmpfiles.d lens
2352
23532015-07-30  Dominic Cleal  <dcleal@redhat.com>
2354
2355	Rhsm: new lens to parse subscription-manager's rhsm.conf
2356
23572015-07-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2358
2359	Json: improve readability
2360
2361	Json: Cleanup and refactor
2362	Use comment_delim instead of comment_multiline
2363	Use Util.del_str instead of delim
2364	Use Quote.dquote
2365	Simplify comments
2366
2367	Json: Move recursion tests to test_json.aug
2368
23692015-07-30  Joe Topjian  <joe@topjian.net>
2370
2371	Rabbitmq: Utilizing regexes for some options
2372
2373	Rabbitmq: Adding versions option to ssl_options
2374
2375	Rabbitmq: Adding some missing simple options
2376
2377	Rabbitmq: cluster_partitioning_handling
2378	Adds support for the rabbitmq.config cluster_partition_handling option.
2379
2380	Rabbitmq: Removed space in option name
2381
23822015-07-30  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
2383
2384	Shellvars: allow && and || constructs after condition
2385
2386	Shellvars: use sto_to_semicol in condition lens
2387
2388	Shellvars: pattern nodes in case entries
2389	Breaking change: case entry values are now in a @pattern subnode.
2390
23912015-07-30  jamido  <jan.doleschal@lgl.bwl.de>
2392
2393	Support for SLES
2394	Added SLES vhosts path
2395
23962015-07-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2397
2398	Shellvars: add alias builtin support
2399
2400	Shellvars: add eval builtin support
2401
24022015-07-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2403
2404	OpenShift_Quickstarts: Fix tests after Json update
2405
2406	OpenShift_Quickstarts: Use Json.lns lens
2407
2408	Json: multiline comments
2409
2410	Json: support empty comments
2411
2412	Json: Support comments, C-style
2413
24142015-07-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2415
2416	Ntp: support basic interface syntax
2417
2418	AptConf: Support hash comments
2419
2420	Util: Add comment_c_style_or_hash
2421
24222015-07-13  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
2423
2424	Shellvars: case: support quotes and spaces in pattern lists
2425
2426	Shellvars: allow quotes in loop conditions
2427
2428	Shellvars: allow wrapping builtin arguments to multiple lines
2429
2430	Shellvars: guard against comments
2431
2432	Shellvars: allow wrapping loop condition to multiple lines
2433
2434	Shellvars: allow partial quoting, mixing multiple styles
2435
24362015-07-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2437
2438	Shellvars: Add test for [[]]
2439
2440	Shellvars: accept [] and [[]] builtins
2441	Fix GH #188
2442
24432015-07-13  Matt Dainty  <matt@bodgit-n-scarper.com>
2444
2445	Update /etc/group lens for NIS map
2446	Supports an overridden and disabled password, i.e. `+:*::`
2447
2448	Add support for /etc/master.passwd
2449
24502015-06-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2451
2452	Nginx: Add non-recursive ambiguities test
2453
2454	Update NEWS
2455
2456	Merge branch 'dev/xml_empty'
2457
24582015-06-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2459
2460	Rework Known_Hosts
2461
2462	Known_Hosts: fix description
2463
24642015-06-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2465
2466	Xml: Accept empty document
2467
24682015-06-05  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
2469
2470	Simplelines: parse OpenBSD's hostname.if(5) files
2471
24722015-06-05  Dominic Cleal  <dcleal@redhat.com>
2473
2474	Update NEWS, AUTHORS
2475
24762015-06-04  Miroslav Lichvar  <mlichvar@redhat.com>
2477
2478	Chrony: add missing directives and options
2479	Add all missing directives and options that are supported in the current
2480	chrony git.
2481
2482	Chrony: include end of line in broadcast with port
2483
2484	Chrony: allow indentation and don't allow comment on end of line
2485
24862015-06-03  Miroslav Lichvar  <mlichvar@redhat.com>
2487
2488	Chrony: allow signed numbers
2489
24902015-06-01  David Lutterkort  <lutter@watzmann.net>
2491
2492	Version 1.4.0
2493
2494	* src/augeas_sym.version: correct version for aug_escape_name
2495	The (unreleased) version for aug_escape_name was erroneously set to 0.19.0
2496	in commit 1aa51f93; the correct version for the next release is 0.20.0
2497
2498	Httpd: add test to verify that issue #140 is fixed
2499	Issue: https://github.com/hercules-team/augeas/issues/140
2500
25012015-06-01  David Lutterkort  <lutter@watzmann.net>
2502
2503	Fix SEGV when target file is not writable
2504	When the file we want to wirte to is not writable by us, we used to
2505	segfault. With this change, we now report a proper error.
2506
2507	Fixes https://github.com/hercules-team/augeas/issues/178
2508
25092015-06-01  David Lutterkort  <lutter@watzmann.net>
2510
2511	Add the default ssl.conf from CentOS 6.6
2512	This shows that Issue #191 is fixed
2513
25142015-06-01  Matt Dainty  <matt@bodgit-n-scarper.com>
2515
2516	Passwd: fix @nisdefault on OpenBSD
2517	Following passwd(5) on OpenBSD results in an /etc/passwd NIS entry like:
2518
2519	    +:*:0:0:::
2520
2521	Passwd lens barfs on the '*' password. Change to match how normal entries are
2522	matched.
2523
25242015-06-01  Borislav Stoichkov  <borislav.stoichkov@gmail.com>
2525
2526	Passwd: support nis [+-]username syntax
2527	The /etc/passwd file can contain nis users with the syntax [+-]username for
2528	the pruprose of including or excluding specific accounts.
2529
2530	Importing of particular users' accounts can be restricted by using the
2531	prefix "+" with a username.
2532
2533	    root:x:0:0:root user:/home/root:/bin/bash
2534	    +bob::::::
2535	    +alice::::Alice:/home/alice:/bin/bash
2536
2537	Certain users' accounts can be excluded from being imported by using the
2538	"-" prefix with a username.
2539
2540	    root:x:0:0:root user:/home/root:/bin/bash
2541	    -bob::::::
2542	    +
2543
2544	The string that can comprise a valid username has been updated to cover a
2545	range slightly larger that the definitions in POSIX
2546	(http://pubs.opengroup.org/onlinepubs/9699919799/ , section 3.431),
2547	is_valid_name() in chkname.c in shadow-utils and the NAME_REGEX definition
2548	in distributions where defined. Rx.word was too broad and did not allow for
2549	the -username syntax.
2550
25512015-05-27  Michael Moll  <kvedulv@kvedulv.de>
2552
2553	integrate two patches from FreeBSD ports
2554	- /boot/loader.conf can be parsed with the sysctl lens
2555	- /etc/perodic.conf can be parsed with the shellvars lens
2556
25572015-05-22  David Lutterkort  <lutter@watzmann.net>
2558
2559	Grub: support a password stanza inside a boot/title section
2560	The biggest change in this commit is changing the structure of lns: it now
2561	says that boot sections have to come after the general menu_setting and
2562	debian sections. Since 'password' is legal in both a top-level menu_setting
2563	and in a boot section, that is necessary to keep the lens unambiguous.
2564
2565	Fixes https://github.com/hercules-team/augeas/issues/229
2566
25672015-05-22  Borislav Stoichkov  <borislav.stoichkov@gmail.com>
2568
2569	Shadow: allow NIS entries
2570	Add support for the NIS default entry + and the nis default entry with
2571	overrides +::::::::
2572
2573	Based on https://github.com/hercules-team/augeas/pull/237
2574
25752015-05-22  Geoffrey Gardella  <gardella@gmail.com>
2576
2577	Updated tests/test-put-symlink-augsave.sh to remedy failure on Solaris
2578	Due to output from 'sum' command containing the filename.
2579
2580	Fixes #242
2581
25822015-05-21  David Lutterkort  <lutter@watzmann.net>
2583
2584	Nginx: change how we handle indentation of lines
2585	Before this change, any change to the file would drop all indentation from
2586	it. Now, we preserve existing indentation. Newly inserted lines don't get
2587	the indentation of their block, but at least we preserve it for existing lines
2588
25892015-05-20  David Lutterkort  <lutter@watzmann.net>
2590
2591	* NEWS: add note about errors command and better error messages
2592	Should have been part of the last 4 commits, but I fat-fingered the push.
2593
2594	Suppress repeated errors about not finding a module
2595	We used to print 'Could not load module XYZ' every time that module wsa
2596	mentioned. To cut down the number of annoying error messages, we now create
2597	an empty dummy module when we fail to look one up; subsequent lookups will
2598	find that and therefore not print the error message again.
2599
26002015-05-20  David Lutterkort  <lutter@watzmann.net>
2601
2602	* src/lens.c (lns_format_atype): make output more readable
2603	Try to make the output more readable by using better formatting:
2604	  - each entry in a concatenation and a union now goes on its own line
2605	  - indent formatted entries
2606
2607	This is not perfect, but much better than splatting everything into one line
2608
26092015-05-20  David Lutterkort  <lutter@watzmann.net>
2610
2611	Add an 'errors' command that pretty prints /augeas//error messages
2612
26132015-05-20  David Lutterkort  <lutter@watzmann.net>
2614
2615	Analyze 'short iteration' errors better
2616	When an iteration fell short, we would just throw our hands in the air and
2617	produce not very helpful information. We now try to find the exact place
2618	where some part of the iterated lens still matched and the rest didn't and
2619	provide that information to the user.
2620
2621	Note that these errors will only be produced for regular lenses, not for
2622	recursive lenses
2623
26242015-05-20  David Lutterkort  <lutter@watzmann.net>
2625
2626	* src/get.c (vget_error): replace unchecked CALLOC with checked ALLOC
2627	One more place where a failing allocation won't cause a crash
2628
26292015-05-20  David Lutterkort  <lutter@watzmann.net>
2630
2631	Nginx: rework to support a much broader set of valid configurations
2632	The Nginx.lns is now recursive and can handle nested blocks.
2633
2634	It can now also deal with some special block-start directives like
2635	'location' and 'if' which have additonal stuff between the keyword and the
2636	opening brace.
2637
2638	The file tests/root/etc/nginx/nginx.conf if the stock Nginx configuration
2639	example from their siurce control, with everything that was commented out
2640	activated. Having that file makes sure (via tests/test-get.sh) that we
2641	successfully parse that file.
2642
2643	Fixes https://github.com/hercules-team/augeas/issues/179
2644
26452015-05-20  David Lutterkort  <lutter@watzmann.net>
2646
2647	Test_Nginx: no functional change, reformatted
2648
26492015-05-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2650
2651	Shellvars: more associate array syntax
2652
2653	Shellvars: support associative arrays
2654
2655	Known_Hosts: support aliases
2656
26572015-05-15  Michael Smith  <michael.smith@puppetlabs.com>
2658
2659	Add /etc/puppetlabs/mcollective to mcollective lens
2660	In the latest release of Puppet, the mcollective paths have been updated
2661	to reflect the documentation at
2662	https://github.com/puppetlabs/puppet-specifications/blob/master/file_paths.md
2663
2664	This commit adds server.cfg and client.cfg in
2665	/etc/puppetlabs/mcollective to the mcollective filter.
2666
26672015-04-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2668
2669	Puppetfile: Use seq instead of a fixed label
2670
26712015-04-20  Haotian Liu  <liuhaotian.air@gmail.com>
2672
2673	Postgresql: add default paths used on Red Hat-based distros
2674	As of Postgres 9.4, postgresql.conf is stored in the database cluster's
2675	data directory
2676
2677	See:
2678	http://www.postgresql.org/docs/9.4/static/runtime-config-file-locations.html
2679
26802015-04-20  timdeluxe  <tim.eilers@web.de>
2681
2682	Limits: allow comments at end of line
2683	Here is my proposal for changing limits.aug lens to allow comments at the end of the line, which are no problem for the OS and heavily used in the limits.conf on our systems. Without that change you get a parse error.
2684
26852015-04-20  Steve Shipway  <steve@steveshipway.org>
2686
2687	Jaas: add several improvements to cover more valid syntax
2688	Add flexibility to Jaas lens: allow comments within Modules, optionless
2689	flags, options without intervening linebreaks, and true/false option
2690	values without quotes.  All of these are valid syntax in the Shibboleth
2691	file.
2692
26932015-04-20  David Lutterkort  <lutter@watzmann.net>
2694
2695	* src/get.c: fix possible NULL dereference
2696	Reported in https://github.com/hercules-team/augeas/issues/218 by ggardella
2697
2698	* src/fa.c: fix a number of possible NULL dereferences
2699	Reported in https://github.com/hercules-team/augeas/issues/218 by ggardella
2700
2701	* src/augtool.c: fix minor memory leak
2702
27032015-04-20  Dominic Cleal  <dcleal@redhat.com>
2704
2705	Logrotate: support 'maxsize' directive
2706	Fixes RHBZ#1213292
2707
27082015-04-10  Jurjen Bokma  <j.bokma@rug.nl>
2709
2710	Krb5: add keyword 'krb524_server'
2711
2712	Krb5: allow realm names that start with lower case characters
2713
27142015-04-10  David Lutterkort  <lutter@watzmann.net>
2715
2716	* src/parser.y: update to work with Bison 3.0.2
2717
27182015-04-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2719
2720	Httpd: Properly manage eol after opening tag
2721	Allow comments and empty lines after opening tag.
2722
2723	Fix #220
2724
27252015-04-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2726
2727	Httpd: Make \ illegal in char_arg_dir
2728	Add tests to check non-recursive behaviour
2729	of partial lenses
2730
2731	Fix #223
2732
27332015-04-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2734
2735	Httpd: Do not pass empty as body to section
2736	This causes a conflict with eol_comment over newlines.
2737	`empty` is just a generic part of `section`, not really a body.
2738
2739	.travis.yml: Use sudo false and the apt addons
2740
27412015-04-03  David Lutterkort  <lutter@watzmann.net>
2742
2743	Logrotate: do not require a space before the opening brace
2744	The actual fix was in the previous commit c2abb62c, this just adds a test
2745
2746	Fixes issue #123
2747
27482015-04-03  David Lutterkort  <lutter@watzmann.net>
2749
2750	Build (block_newlines): make the space before the opening brace optional
2751	Added block_newlines_spc for the palces where we really need a block to
2752	start with ' {'; it seems that everywhere else requiring that space was an
2753	oversight.
2754
2755	The two lenses that needed the space are Dovecot and Xinetd.
2756
27572015-04-03  David Lutterkort  <lutter@watzmann.net>
2758
2759	Dovecot: no functional change; remove trailing whitespace
2760
2761	Logrotate: no functional change; remove tabs
2762
2763	NEWS: mention augtool fix from previous commit
2764	The fix came from https://github.com/hercules-team/augeas/pull/93
2765
27662015-04-03  Robert Drake  <rdrake@direcpath.com>
2767
2768	* src/augtool.c: fix for readline add_history with interactive mode
2769	If you use interactive mode, augtool never adds anything to history that
2770	you type once the input becomes a normal tty.
2771
2772	This is because it was checking stdin, which as far as the system is
2773	concerned is still !isatty().
2774
27752015-04-03  fonfon  <blubb@fonfon.at>
2776
2777	Allow more fine-grained control of service_on entries
2778
27792015-04-03  David Lutterkort  <lutter@watzmann.net>
2780
2781	* tests/Makefile.am: fix breakage introduced in c1b7784e
2782
27832015-04-03  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
2784
2785	Dns_Zone: new lens to parse DNS zone files
2786
27872015-04-03  Pat Riehecky  <riehecky@fnal.gov>
2788
2789	AFS_Cellalias: new lens
2790	https://github.com/hercules-team/augeas/pull/210
2791
27922015-04-03  Pat Riehecky  <riehecky@fnal.gov>
2793
2794	Iscsid: new lens
2795	Thanks to Joey Boggs for writing tests
2796
2797	Fixes issue #174
2798
2799	https://github.com/hercules-team/augeas/pull/216
2800
28012015-04-03  David Lutterkort  <lutter@watzmann.net>
2802
2803	NEWS: mention Logrotate change and issue # for Postfix_sasl_smtpd
2804	Minor changes for commits 2face8cf and c1b7784e
2805
2806	Logrotate: support 'dateformat' directive
2807	Fixes issue #217
2808
28092015-04-03  David Lutterkort  <lutter@watzmann.net>
2810
2811	Postfix_sasl_smtpd: new lens
2812	Fixes issue #182
2813
2814	Contributed by larsen0815
2815
28162015-04-02  David Lutterkort  <lutter@watzmann.net>
2817
2818	* src/pathx.c (pathx_escape_name): also escape backslash
2819	Since backslash is an escape character in parse_name, we need to escape it
2820	with a backslash to make sure that parse_name is really the inverse of
2821	pathx_escape_name.
2822
2823	Thanks to Eric Blake for spotting this problem with the initial attempt to
2824	escape names introduced in e4f0a677
2825
28262015-04-02  David Lutterkort  <lutter@watzmann.net>
2827
2828	Revert previous commit 27e36585; that change did more than was needed
2829	I overlooked that pathx_escape_name already escaped whitespace, and
2830	therefore we only need to also escape backslashes. The next patch will add
2831	escaping of backslashes to patchx_escape_name.
2832
28332015-04-01  David Lutterkort  <lutter@watzmann.net>
2834
2835	* src/pathx.c (pathx_escape_name): also escape backslash and space
2836	Since backslash is an escape character in parse_name, we need to escape it
2837	with a backslash to make sure that parse_name is really the inverse of
2838	pathx_escape_name.
2839
2840	We also escape a space as that is used in some circumstances to end a name
2841	(when we encounter ' or ' or ' and ')
2842
2843	Thanks to Eric Blake for spotting this problem with the initial attempt to
2844	escape names introduced in e4f0a677
2845
28462015-03-13  David Lutterkort  <lutter@watzmann.net>
2847
2848	Shellvars: fix insertion at top of file that starts with blank lines
2849	Possible blank lines at the start of a file were mapped with Util.empty
2850	which produces empty 'hidden' nodes (nodes with NULL label and value)
2851
2852	This causes problem when a user inserts something before these nodes, for
2853	example with "insert 'foo' before /*[1]". Even though the nodes that
2854	Util.empty produces are generally hidden from the user, they are still in
2855	the tree and /*[1] selects such a node. The resulting tree has a hidden
2856	node in the middle, something that Shellvars.lns does not allow and
2857	therefore putting this tree fails. This is really hard to understand for
2858	users as the tree they see with 'print' is indistinguishable from one that
2859	doesn't have these hidden nodes.
2860
2861	To fix this, the changed lens simply deletes the blank lines at the
2862	beginning of the file without creating any tree nodes. This makes the above
2863	insertion work at the cost of losing these blank lines as soon as anything
2864	is inserted into or deleted from the file.
2865
2866	Fixes #202
2867
28682015-03-13  David Lutterkort  <lutter@watzmann.net>
2869
2870	Sysconfig: accept leading whitespace before variables
2871	Make sure we allow '  var=value' and similar entries in files
2872
2873	Fixes part of https://bugzilla.redhat.com/show_bug.cgi?id=761246
2874
28752015-03-02  Pat Riehecky  <riehecky@fnal.gov>
2876
2877	Chrony: fix error in spelling of 'measurements' and add test for that
2878
28792015-02-27  Jeremy Lin  <jjlin@cs.stanford.edu>
2880
2881	augtool: on interrupt, cancel current line instead of exiting
2882
28832015-02-27  David Lutterkort  <lutter@watzmann.net>
2884
2885	New API aug_escape_name
2886	Provide a way to escape the characters that are special in a path
2887	expression
2888
2889	* src/internal.c (path_expand): escape path components as needed
2890	    path_expand, which is used to turn the name of a tree node into a path
2891	    component, now escapes special characters for path expressions so that the
2892	    resulting paths can be used to look up that node even if the node name
2893	    contains special characters.
2894
2895	* src/transform.c (remove_file): do not use path_of_tree
2896	remove_file uses path_of_tree to derive the name of the file that should be
2897	removed. Since we will change path_of_tree so that it escapes certain
2898	characters, we need to use a different way to get at the filename.
2899
2900	* src/pathx.c (pathx_escape_name): new function
2901	Several characters in a path component are treated special, such as '[' and
2902	']'; to treat a string containing such characters as a literal path
2903	component, they need to be escaped with a '\\'.
2904
2905	Move constant 'follow' out of parse_name
2906
2907	* src/try: when running from the cli, exec augtool
2908	Before, when using this script, it was not really possible to put the
2909	resulting augtool run into the background.
2910
29112015-02-25  Russell Knighton  <russellk@motionpicturesolutions.com>
2912
2913	Added support for conf-available apache config file location
2914
29152015-02-09  Andrew Colin Kissa  <andrew@topdog.za.net>
2916
2917	Add Mailscanner_Rules lens for MailScanner rules files
2918
2919	Add Pylonspaste lens
2920
2921	Add Pgbouncer lens
2922
2923	Add Mailscanner lens
2924
2925	Add Clamav lens
2926
29272015-02-02  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
2928
2929	Dnsmasq: add structure to 'address' and 'server' options
2930	This is a backwards incompatible change.
2931
29322015-02-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2933
2934	Authorized_keys: Allow double quotes in option values (GH #135)
2935
29362015-02-02  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
2937
2938	Shellvars: case: support ;; on same line with multiple commands
2939
29402015-01-28  Vincent Desjardins  <vincent.desjardins@lacapitale.com>
2941
2942	exports: add bracket support to the supported machine name formats.
2943
29442015-01-20  David Lutterkort  <lutter@watzmann.net>
2945
2946	NEWS: mention previous commit
2947
29482015-01-20  grueni  <andreas.grueninger@lgl.bwl.de>
2949
2950	Fix: '+' in user_alias
2951	Users of Samba may use '+' as separator between group and user name if
2952	domain accounts are used.
2953
29542015-01-06  Dominic Cleal  <dcleal@redhat.com>
2955
2956	Erlang: parse kernel app config, handle empty lists
2957	Fixes RHBZ#1175546
2958
29592015-01-05  Dominic Cleal  <dcleal@redhat.com>
2960
2961	PythonPaste: parse "set" keyword for default overrides
2962	Fixes RHBZ#1175545
2963
29642014-12-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2965
2966	Puppetfile: New lens to parse the Puppetfile format
2967
29682014-12-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2969
2970	Shellvars_list: Support double-quoted continued lines
2971
29722014-11-25  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2973
2974	NagiosCfg: default to no spaces around equal, fix #177
2975
29762014-11-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2977
2978	Exports: Do not use Hosts lenses
2979
2980	Hosts: Refactor module
2981
29822014-11-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
2983
2984	Ssh: allow indented commas_entry
2985
29862014-11-07  David Lutterkort  <lutter@watzmann.net>
2987
2988	Version 1.3.0
2989
2990	* tests/test-save.c (teardown): make <root>/etc writable after test
2991	Leaving it non-writable, as testRemovePermission does, causes 'make
2992	distcheck' to fail
2993
29942014-10-31  Chris Hollowell  <hollowec@bnl.gov>
2995
2996	Cgconfig: permit quoted spaces in parameter values
2997	Allow quoted spaces in controller parameter value assignments, making valid
2998	statements such as the following permissible:
2999
3000	  blkio.throttle.read_iops_device="8:0 50";
3001
30022014-10-30  Kenaniah Cerny  <kenaniah@users.noreply.github.com>
3003
3004	Added config.d files to the filter
3005	Used by systems running Red Hat or a variant
3006
30072014-10-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3008
3009	Build: remove unused indent definition
3010
30112014-10-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3012
3013	Update NEWS
3014
3015	Httpd: Allow comparison operators in tags (GH #154)
3016
30172014-10-17  Tomáš Chvátal  <tomas.chvatal@gmail.com>
3018
3019	Add more possible SUSE extensions to read from multipath config.
3020
30212014-10-17  Alastair Lynn  <arplynn@gmail.com>
3022
3023	Inifile: allow single-character keys
3024
30252014-10-17  Yanis Guenane  <yguenane@gmail.com>
3026
3027	xml.aug: Allow nmotoken rather than plain word after !DOCTYPE
3028	Currently, the lens only accepts a word after the !DOCTYPE word.
3029
3030	A - valid - Doctype can have the following form :
3031	<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> making the xml
3032	file invalid with the current lens. This commits aims for the lens
3033	to accept nmtoken rather than strict word after the DOCTYPE string.
3034
30352014-10-17  fonfon  <blubb@fonfon.at>
3036
3037	Pagekite: new lens and tests
3038
30392014-09-23  Dominic Cleal  <dcleal@redhat.com>
3040
3041	Iptables: parse /etc/sysconfig/iptables.save
3042	Fixes RHBZ#1144651
3043
30442014-09-23  Pino Toscano  <ptoscano@redhat.com>
3045
3046	LVM: handle also /etc/lvm/lvm.conf
3047	The syntax should be the same, so use the lvm lens also for the main
3048	lvm2 configuration file.
3049
3050	LVM: support negative numbers
3051	Use Rx.relinteger instead of Rx.integer so negative numbers as values
3052	can be read.
3053
30542014-09-18  Dominic Cleal  <dcleal@redhat.com>
3055
3056	Systemd: parse environment variables where only value is quoted
3057	Fixes regression introduced in 5226ae7, which added support to parse fully
3058	quoted "NAME=value" environment vars.  To support both, this commit stores
3059	the quotes in the value if it's only the value quoted.
3060
3061	Fixes RHBZ#1138508
3062
30632014-09-12  Dominic Cleal  <dcleal@redhat.com>
3064
3065	Dhclient: parse hash statements with dhcp-eval strings
3066
3067	Systemd: parse semicolons inside entry values, not as EOL comments
3068	Fixes RHBZ#1139498
3069
30702014-09-09  Dominic Cleal  <dcleal@redhat.com>
3071
3072	Kdump: parse new options, permit EOL comments, refactor
3073	Fixes RHBZ#1139298
3074
3075	Test_Kdump: fix test of complete config file
3076
30772014-09-05  Dominic Cleal  <dcleal@redhat.com>
3078
3079	Xml: enable CDATA parsing
3080	Fixes GitHub #80
3081
30822014-09-04  Dominic Cleal  <dcleal@redhat.com>
3083
3084	* src/augeas.c (unlink_removed_files): ensure aug_save returns non-zero result   when unable to delete files
3085	Fixes RHBZ#1091143
3086
30872014-09-03  Dominic Cleal  <dcleal@redhat.com>
3088
3089	Syslog: permit IPv6 loghost addresses
3090	Fixes RHBZ#1129388
3091
3092	Aliases: permit missing whitespace between colon and recipients
3093
30942014-07-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3095
3096	NEWS
3097
3098	Xml: Allow backslash in #attribute values
3099
31002014-07-21  Dominic Cleal  <dcleal@redhat.com>
3101
3102	Services: permit colons in service name
3103	Fixes RHBZ#1121263
3104
31052014-07-09  Dominic Cleal  <dcleal@redhat.com>
3106
3107	Rmt: new lens to parse /etc/default/rmt
3108	Fixes RHBZ#1100549
3109
3110	Systemd: parse /etc/sysconfig/*.systemd as used in 389-ds
3111	Fixes RHBZ#1083022
3112
3113	Shellvars: support $(( .. )) arithmetic expansion in variable assignment
3114	Fixes RHBZ#1100550
3115
3116	Systemd: allow quoted Environment key=value pairs
3117	Fixes RHBZ#1100547
3118
31192014-06-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3120
3121	Simplevars: Support empty values
3122
31232014-06-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3124
3125	Sshd: support doseol and standardize code
3126
3127	Sshd: Use Build.opt_list
3128
3129	Sshd: Also make Host entries case-insensitive
3130
3131	Ssh: support case-insensitive entries everywhere
3132
31332014-06-24  Andy Grimm  <agrimm@redhat.com>
3134
3135	Add other valid controllers to cgconfig lens
3136
31372014-06-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3138
3139	Xymon_Alerting: refactor lens (GH issue #89)
3140
31412014-06-11  Nick  <npiace@mars.asu.edu>
3142
3143	Sudoers: Allow quoted string in default str/bool parameters
3144	  Made string or bool parameters able to be quoted strings like non-bool strings.
3145	  Also added "mailfrom" parameter to the list of string/bool parameters
3146	  and removed duplicates from that list.
3147
31482014-06-06  Frank Grötzner  <frank@unforgotten.de>
3149
3150	add support for mtu relevant parameters fragment and mssfix
3151
31522014-06-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3153
3154	Update NEWS and AUTHORS
3155
31562014-06-05  fonk  <frank@unforgotten.de>
3157
3158	OpenVPN/ Add support for setting script-security
3159	Setting script security is especially needed when using learn-address,
3160	which we can already set via augeas but is useless without script-security.
3161
31622014-06-04  Dominic Cleal  <dcleal@redhat.com>
3163
3164	* man/augtool.pod: fix description of 'move' alias
3165
31662014-06-03  Dominic Cleal  <dcleal@redhat.com>
3167
3168	* src/augrun.c: remove unused "filename" argument from dump-xml command
3169	Fixes RHBZ#1100106
3170
3171	* man/augtool.pod: update man page with --span option
3172
31732014-06-02  Raphaël Pinson  <raphink@gmail.com>
3174
3175	Update AUTHORS and NEWS
3176
31772014-06-02  Joel Loudermilk  <joel@loudermilk.org>
3178
3179	Multipath: add support for rr_min_io_rq
3180
31812014-06-02  Dominic Cleal  <dcleal@redhat.com>
3182
3183	* man/augtool.pod: update man page with new commands
3184	Fixes RHBZ#1100077
3185
3186	* src/augtool.c: add command aliases to autocomplete
3187	Fixes RHBZ#1100184
3188
3189	Ldso: handle "hwcap" lines
3190	Fixes #100
3191
3192	Rsyslog: parse property filters and file actions with complex templates
3193	Fixes RHBZ#1083016
3194
31952014-06-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3196
3197	Update NEWS
3198
31992014-06-02  Pat Riehecky  <riehecky@fnal.gov>
3200
3201	Added tuned lense
3202
32032014-06-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3204
3205	Update NEWS and AUTHORS
3206
32072014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
3208
3209	Add a little bit of ducumentation
3210	for both the shadow and the gshadow lenses
3211
32122014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
3213
3214	Add a lens for /etc/gshadow file format
3215	and wire-up its test to the runner's list in Makefile.am
3216
3217	Also add a mock /etc/gshadow in tests/root
3218
32192014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
3220
3221	Add a lens for /etc/shadow file format
3222	and wire-up its test to the runner's list in Makefile.am
3223
3224	Also add a mock /etc/shadow in tests/root
3225
32262014-06-02  Lorenzo M. Catucci  <lorenzo@sancho.ccd.uniroma2.it>
3227
3228	Refactor and document
3229	 - import already defined lenses from the respective modules
3230	   instead of defining them internally
3231
3232	 - add a missing \r to the excluded chars in sto_to_col
3233
3234	 - add some documentation
3235
32362014-05-14  Michael Tiernan  <michael.tiernan@gmail.com>
3237
3238	* HACKING: fix git repository URL
3239
32402014-05-11  Mike Latimer  <mlatimer@suse.com>
3241
3242	Device_map: Parse all device.map files under /boot
3243
32442014-05-08  Raphaël Pinson  <raphink@gmail.com>
3245
3246	CPanel: Allow colons in keys
3247
3248	CPanel: New lens to parse cpanel.config files
3249
32502014-05-05  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3251
3252	Simplevars: Support flags
3253
32542014-04-24  Raphaël Pinson  <raphink@gmail.com>
3255
3256	Shellvars: Allow any kind of quoted values in block conditions (GH issue #118)
3257
32582014-04-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3259
3260	Sssd: Allow ; for comments
3261
32622014-04-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3263
3264	Allow empty quoted values (GH issue #115)
3265
3266	Allow continued lines inside quoted value (GH issue #104)
3267
32682014-04-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3269
3270	Update NEWS and AUTHORS
3271
32722014-04-12  Robert Drake  <rdrake@direcpath.com>
3273
3274	syslog, support for "# !" style comments
3275	This makes it so if a comment begins with "# " then +, -, or ! it's
3276	treated as a comment and won't have a special meaning.
3277
3278	fixes #65
3279
32802014-04-12  Robert Drake  <rdrake@direcpath.com>
3281
3282	dhclient, add support for option modifiers
3283	This adds basic support for append|prepend|supercede|default
3284
3285	I believe it has the same limitations as the existing "option" support.
3286	Any arguments supplied to the option can't have a space.
3287
3288	fixes #95
3289
32902014-04-12  Vincent Brillault  <vincent.brillault@cern.ch>
3291
3292	pam: partial support of arguments enclosed in [ .. ]
3293	Pam.conf(5) manual page states 'module-arguments are a space separated list
3294	of tokens that can be used to modify the specific behavior of the given PAM.
3295	Such arguments will be documented for each individual module. Note, if you
3296	wish to include spaces in an argument, you should surround that argument with
3297	square brackets.', but such arguments are not supported by the pam lenses, as
3298	expressed in the comments 'This isn't entirely right: arguments enclosed in
3299	[ .. ] are allowed and should be parsed as one'.
3300
3301	This commit add basic support of such arguments via the regex:
3302	'/(\[[^]#\n]+\]|[^[#\n \t][^#\n \t]*)/'
3303
3304	It is only a partial support as some corner cases are not covered:
3305	- Multi line arguments (lines ending with '\')
3306	- Arguments containing a '[' (escaped via '\')
3307
33082014-04-12  Robert Drake  <rdrake@direcpath.com>
3309
3310	added seq to vim syntax highlight
3311
33122014-04-03  Simon Séhier  <simon.sehier@camptocamp.com>
3313
3314	add missing } in file path for nagios/icinga objects
3315
33162014-03-13  Raphaël Pinson  <raphink@gmail.com>
3317
3318	UpdateDB: Update tests to ensure spaces around = are OK
3319
3320	Update NEWS
3321
3322	UpdateDB: New lens to parse /etc/updatedb.conf
3323
33242014-03-13  Dominic Cleal  <dcleal@redhat.com>
3325
3326	* augeas.spec.in: improve augeas-libs description
3327
33282014-03-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3329
3330	Httpd: Add unit test for comment on next line
3331
3332	Httpd: Define an eol_comment in section to allow for \n before comment
3333
33342014-03-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3335
3336	Httpd: Allow eol comments after section tags
3337
33382014-03-06  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3339
3340	Rx: Add iso_8601 simple regex
3341
3342	Update NEWS
3343
3344	Update AUTHORS and NEWS
3345
33462014-03-06  Robert Drake  <rdrake@direcpath.com>
3347
3348	dhcpd, style and test changes suggested by raphink
3349	I also updated the NEWS entry to note the incompatible change
3350
3351	dhcpd, fix for put on dhcp option records
3352	Type cannot be blank.  I fixed this by making it use record instead of
3353	nesting through "type"
3354
3355	dhcpd, fix for key block puts
3356	I discovered this after thinking I was done.  It actually was a problem
3357	before I started messing with the code but I didn't notice it because
3358	there was never any test for keys.
3359
3360	dhcpd, removed unused variable and reformatted
3361	stmt_subclass was a little too cluttered so I changed it to multiple
3362	lines for readability.  I had also introduced an unused lens sep_to_ncl
3363	which I removed.
3364
33652014-03-06  Robert Drake  <rdrake@direcpath.net>
3366
3367	dhcpd, changing quotes on stmt_block_arg
3368	This patch can break users parsers.
3369
3370	Fixes failover-peer, shared-network, class, host, zone, group, and "on" to
3371	handle quoted values properly.
3372
3373	It also allows optional semicolon at the end of key {} block.
3374
33752014-03-06  Robert Drake  <rdrake@direcpath.net>
3376
3377	dhcpd, adding support for "on" statement
3378	For things like:
3379
3380	on commit {
3381	      set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
3382	      set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
3383	}
3384
33852014-03-06  Robert Drake  <rdrake@direcpath.net>
3386
3387	dhcpd, added fddi to stmt_hardware
3388	getting pretty obscure..
3389
33902014-03-06  Robert Drake  <rdrake@direcpath.net>
3391
3392	dhcpd, adding support for set command
3393	This allows you to define variables in your dhcp configuration.  They
3394	can be arbitrarily complicated.
3395
3396	Things like this:
3397
3398	      set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
3399	      set ClientMac = binary-to-ascii(16, 8, ":" , substring(hardware, 1, 6));
3400
3401	I also added most of the rest of the functions from dhcp-eval and listed
3402	the limitations of the current parser.  I don't think I'm going to be
3403	able to fix most of it but I think I'm getting into obscure features
3404	that most people don't bother using.
3405
3406	At this point if they need to do very strange class maps they could put
3407	them in an include file and not have augeas parse it.
3408
34092014-03-06  Robert Drake  <rdrake@direcpath.net>
3410
3411	dhcpd, added support for match if suffix|option
3412	I also relaxed the rules on matching quoted and unquoted values.
3413
3414	Things like:
3415	    match if suffix (option vendor-class-identifier,6)="123456";
3416	or
3417	    match if option vendor-class-identifier="Brave, Warrior Pidgins";
3418
3419	work now.
3420
34212014-03-06  Robert Drake  <rdrake@direcpath.net>
3422
3423	dhcpd fix to allow subclasses values to be quoted
3424	DHCP subclass values can have spaces in them.
3425
3426	Here is an example:
3427	subclass "consoles" "Xbox 360";
3428	subclass "consoles" "Nintendo 3DS";
3429	subclass "consoles" Wii;
3430	subclass "consoles" NintendoDS;
3431
34322014-03-06  Robert Drake  <rdrake@direcpath.net>
3433
3434	dhcpd known-clients allows spaces in it's value
3435	This is a fix for lines like these:
3436
3437	   deny unknown clients;
3438	   deny known clients;
3439	   allow known clients;
3440	   allow unknown clients;
3441
34422014-03-06  Robert Drake  <rdrake@direcpath.net>
3443
3444	dhcpd, fix for quoted characters in members of
3445	Some of my "allow members of" statements have more complicated names
3446	that include things like parenthesis.  This change makes it so semicolon
3447	and space are the only things not allowed in barewords, and quotes and
3448	newlines are the only thing not allowed in quoted things.
3449
34502014-03-06  Robert Drake  <rdrake@direcpath.net>
3451
3452	dhcpd, fix whitespace problems with blocks
3453	Most blocks should support braces at the end of a line or
3454	on the next line.
3455
3456	Like this:
3457
3458	class "test class"
3459	{
3460
3461	}
3462
3463	or
3464
3465	class testclass {}
3466
34672014-03-06  Robert Drake  <rdrake@direcpath.net>
3468
3469	dhcpd, expanding support for user-defined-options
3470	This incorporates changes suggested by raphink.
3471
3472	It should be able to parse all of the following DHCP options now:
3473
3474	    option name-service-search code 117 = array of unsigned integer 16;
3475	    option domain-search code 119 = string;
3476	    option sip-servers code 120 = string;
3477	    option classless-static-route code 121 = string;
3478	    option space cable-labs;
3479	    option cable-labs.tsp-primary-dhcp-server code 1 = ip-address;
3480	    option cable-labs.tsp-secondary-dhcp-server code 2 = ip-address;
3481	    option cable-labs.tsp-provisioning-server code 3 = string;
3482	    option cable-labs.tsp-as-backoff-retry code 4 = { unsigned integer 32, unsigned integer 32, unsigned integer 32 };
3483	    option cable-labs.tsp-ap-backoff-retry code 5 = { unsigned integer 32, unsigned integer 32, unsigned integer 32 };
3484	    option cable-labs.tsp-kerberos-realm-name code 6 = string;
3485	    option cable-labs.tsp-ticket-granting-server-utilization code 7 = boolean;
3486	    option cable-labs.tsp-provisioning-timer code 8 = unsigned integer 8;
3487	    option cable-labs-encapsulation code 122 = encapsulate cable-labs;
3488	    option tftp-server-address code 150 = array of ip-address;
3489	    option ip-telephone code 176 = string;
3490	    option wpad-url code 252 = text;
3491
34922014-03-06  Robert Drake  <rdrake@direcpath.net>
3493
3494	dhcpd, add support for omapi-key statement
3495	You can use this along with omapi-port to specify a secure way to talk
3496	to your DHCP server.
3497
3498	key myspecialkey {
3499	    algorithm hmac-md5;
3500	    secret "base64string==";
3501	}
3502
3503	omapi-key myspecialkey;
3504	omapi-port 7911;
3505
35062014-03-06  Robert Drake  <rdrake@direcpath.net>
3507
3508	dhcpd, add support for named groups
3509	Things like group Special_users {
3510
3511	}
3512
35132014-03-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3514
3515	Update NEWS
3516
3517	Desktop: Allow @ in keys (GH issue #92)
3518
35192014-03-03  KaMichael  <KaMichael@users.noreply.github.com>
3520
3521	Group: Dropped nisentry (not valid here)
3522
3523	group: Testcase for NIS default
3524
35252014-03-03  KaMichael  <KaMichael@gmail.com>
3526
3527	Update group.aug
3528
3529	Update group.aug to parse NIS entries
3530
35312014-02-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3532
3533	Update NEWS
3534
35352014-02-28  Pat Riehecky  <riehecky@fnal.gov>
3536
3537	Added chrony lense
3538
35392014-02-25  Dominic Cleal  <dcleal@redhat.com>
3540
3541	Krb5: permit braces in values when not in sub-section
3542	Fixes RHBZ#1066419
3543
35442014-02-21  Dominic Cleal  <dcleal@redhat.com>
3545
3546	Keepalived: add more virtual/real server settings and checks
3547	Fixes RHBZ#1064388
3548
35492014-02-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3550
3551	NetworkManager: Use the Quote module, support # in values (no eol comments)
3552
35532014-02-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3554
3555	AptPreferences: Support spaces in origin fields
3556
3557	Remove mercurial legacy files
3558
3559	Sshd: Allow all types of issues in Match groups (GH issue #75)
3560
3561	Update NEWS
3562
3563	Add cp to manpage (issue #78)
3564
3565	Update AUTHORS and NEWS
3566
35672014-02-20  Mykola Nikishov  <mn@mn.com.ua>
3568
3569	Support configuration file for Squid 3
3570
35712014-02-12  Dominic Cleal  <dcleal@redhat.com>
3572
3573	IPRoute2: handle "/" in protocol names, swap ID and name fields
3574	This is an incompatible change.
3575
3576	Fixes RHBZ#1063968
3577
35782014-02-12  Dominic Cleal  <dcleal@redhat.com>
3579
3580	IPRoute2: handle hex IDs and hyphens in names, as present in rt_dsfield
3581	Fixes RHBZ#1063961
3582
35832014-02-10  Dominic Cleal  <dcleal@redhat.com>
3584
3585	Shellvars: handle case statements with same-line ;; tokens
3586	Fixes RHBZ#1033799
3587
35882014-02-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3589
3590	Update NEWS
3591
3592	Fix release date for 1.2.0 in NEWS
3593
3594	Add Known_Hosts lens
3595
35962014-01-30  Miguel Armas  <kuko@canarytek.com>
3597
3598	Grub: handle "foreground" option
3599	Fixes RHBZ#1059383
3600
36012014-01-27  David Lutterkort  <lutter@watzmann.net>
3602
3603	Version 1.2.0
3604
36052014-01-27  Raphaël Pinson  <raphink@gmail.com>
3606
3607	Update NEWS with span info in XML dump
3608
36092014-01-27  Dominic Cleal  <dcleal@redhat.com>
3610
3611	Add %check to RPM spec, fix download URL
3612	  * augeas.spec.in: add %check to run `make check` during build, skipping
3613	    SELinux tests which don't work in a mock environment
3614
3615	Original %check patch from Richard Jones <rjones@redhat.com>
3616
36172014-01-27  Raphaël Pinson  <raphink@gmail.com>
3618
3619	Add span info to XML dump
3620	For a node, add span information for the label, value, and node overall if
3621	it is present in the tree. The resulting XML looks like
3622
3623	  <node label="..." file="..." path="...">
3624	    <span for="label" start="..." end="..."/>
3625	    <span for="value" start="..." end="..."/>
3626	    <span for="node" start="..." end="..."/>
3627	    <value>...</value>
3628	  </node>
3629
36302014-01-27  David Lutterkort  <lutter@watzmann.net>
3631
3632	Rename build/aux to build/ac-aux
3633	The directory name 'aux' is special on Windows, and using it keeps the
3634	build from working.
3635
3636	You will need to rerun autogen.sh after this change
3637
36382014-01-23  Raphaël Pinson  <raphink@gmail.com>
3639
3640	Update NEWS
3641
3642	Sshd: let all special keys be case-insensitive
3643
3644	Update NEWS
3645
3646	Sshd: Support Ciphers and KexAlgorithms groups, GH issue #69
3647
3648	Update NEWS
3649
3650	Grub: Add 'verbose' option, GH issue #73
3651
3652	Update NEWS
3653
3654	Shellvars_list: Allow end-of-line values, bug #342
3655
3656	Fix xymonalerting into xymon_alerting in tests/Makefile.am
3657
3658	Add Xymon_Alerting lens to NEWS, update AUTHORS
3659
3660	Rename XymonAlerting lens as Xymon_Alerting
3661
3662	Fix NaturalDocs comments in XymonAlerting lens
3663
36642014-01-23  Francois Maillard  <fmaillard@gmail.com>
3665
3666	Add NaturalDocs documentation to the xymonalerting lens and its tests
3667
3668	add basic doc
3669
3670	Add the test lens to the Makefile
3671
3672	New lens for xymon alerting rules
3673
36742014-01-23  Raphaël Pinson  <raphink@gmail.com>
3675
3676	Update NEWS with Authorized_Keys change
3677
36782014-01-23  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
3679
3680	Allow 'ssh-ed25519' as a valid authorized_key type
3681
36822014-01-23  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3683
3684	Update NEWS and AUTHORS
3685
36862014-01-13  Kaarle Ritvanen  <kaarle.ritvanen@datakunkku.fi>
3687
3688	Interfaces: map bond-slaves and bridge-ports options to arrays
3689	This is a backwards incompatible change, as these would previously show up
3690	as strings in the tree
3691
36922014-01-13  Tomas Klouda  <tomas.klouda@gooddata.com>
3693
3694	Fix MongoDB Server lens - MongoDB doesn't accept quoted values
3695	This lens worked for already defined values, but once you wanted to
3696	add new value, it was created with quotes and MongoDB failed to start
3697
36982014-01-13  Dominic Cleal  <dcleal@redhat.com>
3699
3700	Fix umask handling when creating new files
3701	  * src/transform.c (transform_save): faulty umask arithmetic would cause
3702	    overly-open file modes when the umask contains "7", as the umask was
3703	    incorrectly subtracted from the target file mode
3704
3705	Fixes CVE-2013-6412, RHBZ#1034261
3706
37072014-01-13  Freakin  <brendanaye@gmail.com>
3708
3709	OpenVPN: additional config options
3710	Support
3711	  1) daemon
3712	  2) client-config-dir
3713	  3) route
3714	  4) management
3715
37162014-01-13  David Lutterkort  <lutter@watzmann.net>
3717
3718	* NEWS: describe Slapd changes in last few commits
3719
37202014-01-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3721
3722	Slapd: move by/who to the value of by
3723
3724	Slapd: Allow any allowed combination of who/access/control in by field
3725
3726	Slapd: support smart quotes in database entry
3727
3728	Slapd: remove duplicate entry in database_re
3729
3730	Slapd: rename by parameters
3731	* Rename by/what as by/access (as per official doc)
3732	* Allow access to be absent (as per official doc)
3733
37342014-01-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3735
3736	Slapd: Add unit test for by/control
3737
37382013-12-18  Dominic Cleal  <dcleal@redhat.com>
3739
3740	Shellvars, Sysconfig: map "bare" export and unset lines using seq to handle multiple variables
3741	Fixes RHBZ#1033795
3742
37432013-12-18  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3744
3745	Shellvars.lns: Actually test continued lines and fix support
3746
3747	Shellvars.lns: add unit test for continued lines in double quoted values
3748
37492013-12-16  Dominic Cleal  <dcleal@redhat.com>
3750
3751	Sysconfig: permit empty comments after comment lines
3752	Fixes RHBZ#1043636
3753
37542013-12-05  Dominic Cleal  <dcleal@redhat.com>
3755
3756	Shellvars: fix syntax error in filter
3757
37582013-12-04  David Lutterkort  <lutter@watzmann.net>
3759
3760	Shellvars: exclude /etc/sysconfig/ip*tables.save files
3761
37622013-12-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3763
3764	Sudoers.lns: Allow uppercase characters in user names (ticket #376)
3765
3766	Build: Add combine_three_ord and combine_three
3767
3768	Build: Add combine_two_ord and combine_two
3769
3770	Yum.lns: split excludes as lists (ticket #275)
3771
3772	Build: Add combinatorics group
3773
3774	Yum.lns: simplify code for combinatory logic of list_entry elements
3775
37762013-12-02  Tomas Hoger  <thoger@redhat.com>
3777
3778	Corrections for CVE-2012-0786 tests
3779	- test-put-symlink-augsave.sh - variable $HOSTS_AUGNEW was used to check if
3780	  file was still symlink, while it wasn't set before.  Fix to use
3781	  $HOSTS_AUGSAVE.
3782	- test-put-symlink-augnew.sh, test-put-symlink-augsave.sh - 'test -f'
3783	  dereferences symlink and hence can not be used to check if file is regular
3784	  file or symlink to a regular file.  Use 'test -h' instead.
3785
37862013-12-02  Tomas Hoger  <thoger@redhat.com>
3787
3788	Correct locations table for transform_save()
3789	Commit 16387744 introduced a table with locations of temporary, destination and
3790	backup file in various modes as part of the comment for transform_save().  This
3791	corrects two incorrectly listed temporary file locations.
3792
3793	Note that PATH_canon is somewhat misleading, as canonicalized path is always
3794	used when not using NEWFILE save flag, while it is meant to indicate whether
3795	file is created in a directory that contains symlink, or a directory that
3796	contains symlink's target.
3797
37982013-12-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3799
3800	Desktop.lns: Support square brackets in keys
3801
38022013-11-19  Dominic Cleal  <dcleal@redhat.com>
3803
3804	* src/transform.c (filter_matches): wrap fnmatch to ensure that an incl   pattern containing "//" matches file paths
3805	Fixes RHBZ#1031084
3806
38072013-11-09  Sean Millichamp  <sean.millichamp@secure-24.com>
3808
3809	Enhance Nagiosobjects lens
3810	This adds support and tests for three additional Nagios
3811	supported behaviors:
3812	- An optional space between the object name and the {
3813	   Example: "define host{"
3814	- An optional indent prior to the closing }
3815	   Example: "    }"
3816	- Whole-line comments that start with ;
3817	   Example: "; This is a comment"
3818
3819	It does not add support for end-of-line comments with ;
3820
38212013-11-09  Yanis Guenane  <yguenane@gmail.com>
3822
3823	Dhcpd: support a wider variety of DHCP allow/deny/ignore statement
3824	The Dhcpd.aug was missing a part of the allow/deny/ignore possible
3825	statement. This commit updates the lense so it supports the list
3826	of options available here
3827
3828	http://www.ipamworldwide.com/declarations-topological/declarations-allowdenyignore.html
3829
3830	Also this bug was preventing a Foreman user to parse the dhcpd.conf
3831	generated by theforeman/dhcp puppet module
3832
38332013-11-09  Dominic Cleal  <dcleal@redhat.com>
3834
3835	Yum: permit spaces after equals sign in list options
3836	Fixes GitHub issue #45
3837
38382013-11-08  Matteo Cerutti  <matteo.cerutti@hotmail.co.uk>
3839
3840	Sudoers: permit underscores in group names
3841	Fixes ticket #370
3842
38432013-11-01  Andrew N Golovkov  <a.golovkov@dwteam.ru>
3844
3845	include only *.repo files from yum.repos.d;
3846
38472013-10-24  Michael Haslgrübler  <work-michael@haslgruebler.eu>
3848
3849	Use Quote module in dovecot
3850	* use Quote.dquote_spaces for quoting
3851
3852	dovecot enchancement and bug fixes
3853	* add mailbox to block_names
3854	* fix for block_args in quotes
3855	* fix for block's brackets upon write
3856	* fixes broken tests for mailbox
3857	* fixes indention
3858	* test case for block_args with "
3859	* fixes broken indention
3860
38612013-10-17  Dominic Cleal  <dcleal@redhat.com>
3862
3863	Shellvars_list: handle backtick variable assignments
3864	Fixes ticket #368
3865
38662013-10-08  Yanis Guenane  <yguenane@gmail.com>
3867
3868	Update NEWS
3869
38702013-10-07  Dietmar Kling  <baldur@email.de>
3871
3872	Cyrus_Imapd: create new entries without space before separator
3873	Fixes RHBZ#1014974
3874
38752013-10-05  Dominic Cleal  <dcleal@redhat.com>
3876
3877	Exports: permit colons for IPv6 client addresses
3878	Fixes ticket #366
3879
38802013-09-20  Esteve Fernandez  <esteve.fernandez@gmail.com>
3881
3882	Added dhclient.conf path for Debian/Ubuntu
3883
38842013-09-09  Yanis Guenane  <yguenane@gmail.com>
3885
3886	Fix Trac#364. Syslog lense accept UDP(@) and TCP(@@) protocol
3887	Currently the syslog lense only accept sending log to another host
3888	via UDP - a single @ -, and was discarding TCP - a double @ -. This
3889	PR fixes that.
3890
3891	Fix test_rsyslog.aug
3892
3893	Remove unused variable at
3894
38952013-09-07  Yanis Guenane  <yguenane@gmail.com>
3896
3897	Fix NagiosCfg lense so /etc/nagios/nrpe.cfg is parsed by Nrpe and not NagiosCfg
3898	Currently NagiosCfg lense is in charge of parsing all files under /etc/nagios/*.cfg
3899	but /etc/nagios/commands.cfg. /etc/nagios/nrpe.cfg should be also added as an exception
3900	since it needs to be parsed by the Nrpe lense. This issue currently causes the following
3901	error : "Lenses @NagiosCfg and @Nrpe could be used to load this file"
3902
39032013-09-02  Dominic Cleal  <dcleal@redhat.com>
3904
3905	* tests/test-load.c (testPermsErrorReported): skip permissions test when root
3906
39072013-08-27  Tom Hendrikx  <tom@whyscream.net>
3908
3909	Postfix_virtual: allow '+' and '=' in email addresses
3910	+ ('plus') and = ('equals') are valid characters in email addresses.
3911	Example is from postfix docs, see:
3912	http://www.postfix.org/MULTI_INSTANCE_README.html#quick
3913
39142013-08-27  Raphaël Pinson  <raphink@gmail.com>
3915
3916	Add aug_cp and the cp and copy commands
3917
39182013-08-27  Dominic Cleal  <dcleal@redhat.com>
3919
3920	Grub: handle makeactive menu command
3921	Fixes ticket #340
3922
3923	Postfix_Main: handle stray whitespace at end of multiline lines
3924	Fixes ticket #348
3925
39262013-08-27  Pat Riehecky  <riehecky@fnal.gov>
3927
3928	Koji: new lens to parse Koji configs
3929
39302013-08-27  Dominic Cleal  <dcleal@redhat.com>
3931
3932	Access: support DOMAIN\user syntax for users and groups
3933	Fixes ticket #353
3934
3935	Samba: permit asterisk in key name
3936	Fixes ticket #354
3937
3938	Shellvars: support all types of quoted strings in arrays
3939	Patch from webmeister.  Fixes ticket #357.
3940
39412013-08-27  Pat Riehecky  <prieheck@iwu.edu>
3942
3943	Yum: add yum-cron*.conf files
3944
39452013-08-27  Pascal Lalonde  <plalonde@google.com>
3946
3947	Interfaces: allow numeric characters in stanza options
3948
39492013-08-27  David Lutterkort  <lutter@watzmann.net>
3950
3951	Shellvars: read /etc/firewalld/firewalld.conf
3952	Fixes https://fedorahosted.org/augeas/ticket/363
3953
39542013-08-27  Matthew Booth  <mbooth@redhat.com>
3955
3956	Grub: support the 'lock' directive
3957
3958	Grub: NFC fix whitespace errors introduced by 4e09d15
3959	Kill tabs!
3960
3961	Grub: support the 'setkey' directive
3962
39632013-08-27  Michael Wisheu  <wisheu@google.com>
3964
3965	Interfaces: add /etc/network/interfaces.d/* as another commonly used location
3966
39672013-08-06  Raphaël Pinson  <raphink@gmail.com>
3968
3969	Update NEWS
3970
3971	Fix NaturalDocs comments in lenses
3972
39732013-08-06  Stephen P. Schaefer  <sschaefer@acm.org>
3974
3975	Allow augeas to deal with one variant of /etc/sysconfig/network-scripts/route-*
3976
39772013-08-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>
3978
3979	Update NEWS
3980
3981	Properties: Support multiline starting with an empty string, GH issue #19
3982
3983	Dhcpd: support conditionals, GH issue #34
3984
3985	Update NEWS
3986
3987	PHP: Allow php-fpm syntax (GH issue #35)
3988
39892013-08-01  Patrick Adair  <padair@he.net>
3990
3991	Interfaces: add in support for the source stanza in /etc/network/interfaces files
3992
39932013-07-30  Dominic Cleal  <dcleal@redhat.com>
3994
3995	Simplevars: adopt /etc/selinux/semanage.conf due to spaces around delimiters
3996
39972013-07-30  Michael Scherer  <misc@zarb.org>
3998
3999	Shellvars: add /etc/selinux/semanage.conf
4000
40012013-07-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4002
4003	Start new NEWS section
4004
4005	Fix documentation links in c_api naturaldocs menu
4006
40072013-07-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4008
4009	Sshd: also indent comments by 2 spaces by default in Match groups
4010
4011	Sshd: Indent Match entries by 2 spaces by default
4012
40132013-06-27  Jan Vansteenkiste  <jan@vstone.eu>
4014
4015	Fixes #27: Automounter lens does not handle hostnames with dashes in them
4016
40172013-06-24  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4018
4019	Fix my name
4020
40212013-06-14  David Lutterkort  <lutter@watzmann.net>
4022
4023	Version 1.1.0
4024
4025	Make tree_unlink safer to use
4026	tree_unlink used to only remove nodes from the tree, leaving the
4027	possibilities of dangling references from variables stored in the
4028	symtab. The new incarnation is safer in that it cleans up the symtab first.
4029
40302013-06-14  David Lutterkort  <lutter@watzmann.net>
4031
4032	Do not interpret file names as path exprs during load
4033	We used to interpret file names as path expressions at various points in
4034	the process of loading the tree. That lead to nasty failures if the file
4035	names contained characters that have a special meaning in path expressions,
4036	like '!', '[' etc.
4037
4038	When the loading code now creates nodes or looks them up based on filenames
4039	(e.g. to create the file's top level node in /files or the info node in
4040	/augeas/files), we now use tree_fpath/tree_fpath_cr to do that.
4041
4042	The workaround introduced into shellvars.aug to fix tiecket #246 is also no
4043	longer needed.
4044
4045	Fixes https://fedorahosted.org/augeas/ticket/343
4046	Fixes https://fedorahosted.org/augeas/ticket/333
4047	Improves on the fix for https://fedorahosted.org/augeas/ticket/246
4048
40492013-06-14  David Lutterkort  <lutter@watzmann.net>
4050
4051	* src/transform.c (xfm_error): do not segfault when msg is NULL
4052
4053	* src/try: make 'try gdb' work with emacs-24 and gdb-7.5.1
4054
40552013-06-11  David Lutterkort  <lutter@watzmann.net>
4056
4057	LVM: fix handling of quoted strings that contain quotes
4058	Fixes https://github.com/hercules-team/augeas-do-not-use/issues/28 reported
4059	by brianredbeard
4060
40612013-06-11  Erik B. Andersen  <erik.b.andersen@gmail.com>
4062
4063	AptCacherNGSecurity: new lens for /etc/apt-cacher-ng/security.conf
4064
40652013-06-11  brian redbeard  <brian@dead-city.org>
4066
4067	Added node config for OpenShift
4068	When the intial lens was developed there was a missing transform
4069	on /etc/openshift/node.conf
4070
4071	This is a fix for bug hercules-team/augeas#22
4072
40732013-06-04  David Lutterkort  <lutter@watzmann.net>
4074
4075	Xorg: allow 'Screen' in Device section
4076	Patch from merkela
4077
4078	Fixes bug https://fedorahosted.org/augeas/ticket/344
4079
40802013-06-03  David Lutterkort  <lutter@watzmann.net>
4081
4082	Xorg: support extmod section
4083	Patch by merkela
4084
4085	Partial fix for https://fedorahosted.org/augeas/ticket/344
4086
40872013-05-30  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4088
4089	Yum: optimize regexp substractions
4090
4091	Nrpe: optimize regexp substractions
4092
4093	Mdadm_Conf: optimize regexp substractions
4094
4095	Fai_Diskconfig: Optimize regexp substractions
4096
4097	Shellvars: Optimize regexp substraction
4098
40992013-05-28  Dominic Cleal  <dcleal@redhat.com>
4100
4101	Automaster: accept spaces between options
4102
41032013-05-24  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4104
4105	Update NEWS
4106
4107	Add Rob Tucker to AUTHORS
4108
4109	Add README as a symlink to README.md to make autogen relax
4110
41112013-05-24  Rob Tucker  <rtucker11@gmail.com>
4112
4113	Added augeas lens and test for the asterisk sip.conf file
4114
41152013-05-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4116
4117	postfix_master: Allow [] in words (ticket #345)
4118
41192013-05-17  David Lutterkort  <github@watzmann.net>
4120
4121	Update README.md
4122	Reformat as GH-flavored markdown; add a License section
4123
4124	Rename README to README.md
4125
41262013-05-17  David Lutterkort  <lutter@watzmann.net>
4127
4128	* tests/test-run.c (load_module): do not downcase the lensdir
4129	We should not touch the lensdir, since it is user provided; we only want to
4130	downcase the module name.
4131
4132	Patch by aponomarenko
4133
4134	Fixes bug #332
4135
41362013-05-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4137
4138	Add --echo alias to augtool manpage
4139
4140	Add -t option to augtool manpage
4141
41422013-05-17  Enrico Stahn  <mail@enricostahn.com>
4143
4144	PHPFPM Support
4145
41462013-05-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
4147
4148	Add Splunk lens
4149	Lens to parse Splunk configuration. Based on IniFile lens, with few differences:
4150
4151	* Accepts empty value in entry
4152	* Entries without parent section are children of .anon node
4153
4154	Thanks to Tim Brigham for this contribution.
4155
41562013-05-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
4157
4158	Add CR as a white space char in RX.space_in
4159	CR is used in the IniFile lens as of EOL. To avoid concat ambig between
4160	IniFile.store_to_eol and IniFile.eol, CR has to be added to Rx.space_in. This
4161	change do not break any existing lens in the repository.
4162
41632013-05-16  Davide Guerri  <davide.guerri@gmail.com>
4164
4165	adds support for iptoute2 configuration files (/etc/iproute2/*)
4166
41672013-05-16  Simon Vocella  <voxsim@gmail.com>
4168
4169	JaaS: lens for the Java Authentication and Authorization Service
4170
41712013-05-15  David Lutterkort  <lutter@redhat.com>
4172
4173	Function composition: fix the typing of the generated lambda
4174	When f and g are functions, 'f ; g' gets translated into
4175	  lambda x: g (f x)
4176
4177	The resulting function wasn't typed right, which led to an internal error.
4178
4179	This fixes bug #328
4180
41812013-05-08  Raphaël Pinson  <raphink@gmail.com>
4182
4183	Update AUTHORS
4184
41852013-05-08  Brian Harrington  <bharrington@redhat.com>
4186
4187	Added support for OpenShift
4188	Added a series of lenses to support the corresponding configuration
4189	formats including conf, JSON, & HTTP.
4190
41912013-05-08  Brian Harrington  <bharrington@redhat.com>
4192
4193	Add support for MongoDB Server
4194	A basic lens and test to support the configuration of MongoDB
4195
4196	Added infrastructure components for MongoDB
4197
4198	Included references to MongoDBServer to handle the auto testing of
4199	lenses on build & mention of lens in for autodoc generation.
4200
4201	fixes hercules-team/augeas/#25
4202
4203	Improved documentation on MongoDBServer filter
4204
4205	Added improved reference and usage information for the lens
4206
4207	Mistyped port path in MongoDBServer lens usage
4208
4209	The port component was missing from the set command
4210
4211	fixes herclues/team-augeas/#25
4212
42132013-05-08  Brian Harrington  <bharrington@redhat.com>
4214
4215	Added support for ActiveMQ / Red Hat JBoss A-MQ
4216	Added a series of lenses to support the file formats utilized with
4217	the project ActiveMQ / Red Hat JBoss A-MQ.
4218
4219	ActiveMQ is a standards-based, open source messaging platform
4220	shipped by Red Hat (Formerly Fuse Source).
4221
4222	http://activemq.apache.org/
4223	http://www.redhat.com/products/jbossenterprisemiddleware/amq/
4224
42252013-04-30  Mathieu Alorent  <malorent@kumy.net>
4226
4227	Add more flags
4228	add other flags, and use regexp to check
4229
42302013-04-30  Mathieu Alorent  <malorent@kumy.net>
4231
4232	implement Downtime feature
4233	As seen in this thread, there is a downtime feature that is not
4234	parsed by Augeas.
4235
4236	http://lists.xymon.com/archive/2011-March/030998.html
4237
42382013-04-20  Dominic Cleal  <dcleal@redhat.com>
4239
4240	Rsyslog: support :omusrmsg: list of users in actions
4241
42422013-04-15  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4243
4244	Passwd: allow period in user names in spec (fixes #337)
4245
4246	Passwd: allow overrides in nisentry
4247
42482013-03-31  Gonzalo Servat  <gservat@gmail.com>
4249
4250	Nrpe: accept any config option, remove predefined list
4251
42522013-03-30  Branan Purvine-Riley  <branan@puppetlabs.com>
4253
4254	Add support for port ranges to /etc/services lens
4255	The `/etc/services` file on AIX can contain entries with ranges of ports. This change allows Augeas to parse such files.
4256
4257	Example from an AIX /etc/services file:
4258	    x11                      6000-6063/tcp  # X Window System
4259	    x11                      6000-6063/udp  # X Window System
4260
42612013-03-21  Dominic Cleal  <dcleal@redhat.com>
4262
4263	Shellvars: reinstate /etc/sysconfig/network
4264	Fixes #330, RHBZ#904222, RHBZ#920609
4265
42662013-03-14  Gabriel  <g2p.code@gmail.com>
4267
4268	Add some autodoc comments.
4269
4270	Add a lens for LVM metadata.
4271
42722013-03-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4273
4274	Update NEWS
4275
42762013-03-11  Serge Smetana  <smetana@pluron.com>
4277
4278	Added lens for Dovecot config files
4279
42802013-03-01  Dominic Cleal  <dcleal@redhat.com>
4281
4282	* src/augtool.c (usage): fix spelling error
4283
42842013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4285
4286	Krb5: Improve performances
4287
42882013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4289
4290	IniFile: Support dos eol
4291	  Subversion: Support dos eol
4292	  Desktop: Support dos eol
4293	  MySQL: Support dos eol
4294	  Samba: Support dos eol
4295	  Yum: Support dos eol
4296	  Krb5: Support dos eol
4297
4298	  IniFile: Add empty_generic_nocomment
4299	  Rx: make no_spaces compatible with doseol
4300	  Schroot: Use empty_generic_nocomment
4301
43022013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4303
4304	IniFile: Allow quotes inside bare values
4305
4306	IniFile: Multiline values can begin with a single newline
4307
4308	IniFile: Add empty_generic and empty_noindent
4309	  Subversion: Use IniFile.empty_noindent
4310
4311	IniFile: Add entry_generic and entry_multiline_generic
4312	Subversion: Use IniFile.entry_multiline_generic
4313
4314	IniFile: Allow spaces in entry_multiline* values
4315
43162013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4317
4318	IniFile: Use Util.comment_generic and Util.empty
4319	  Add put test for ace
4320
4321	  Lightdm: empty comments are mapped as empty
4322	  PHP: empty comments are mapped as empty
4323	  Odbc: empty comments are mapped as empty
4324	  Samba: empty comments are mapped as empty
4325	  Krb5: Fix tests for new IniFile.empty
4326	  MySQL: Support smart quotes and empty comments
4327	  Yum: Use Util.empty instead of IniFile.empty
4328	  Subversion: Adapt to new IniFile.empty definition
4329	  Systemd: Fix tests for new IniFile.empty
4330
43312013-02-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4332
4333	IniFile: Support smart quotes
4334	  Add support for smart quotes in IniFile lenses.
4335	  Fix PHP lens to support smart quotes.
4336	  Subversion: Adapt to smart quotes but allow ; in values
4337	  Schroot: Support smart quotes
4338
4339	IniFile: Add ready-to-use lns_loose and lns_loose_multiline lenses
4340
43412013-02-06  Andrew Anderson  <andrew@lirn.net>
4342
4343	Krb5: fix parse error with IPA generated krb5.conf
4344
43452013-02-06  Igor Pashev  <pashev.igor@gmail.com>
4346
4347	* configure.ac: better detection of how to pass version script to linker
4348	This now also works on Illumos when using GNU ld
4349
4350	Fixes https://fedorahosted.org/augeas/ticket/289
4351
43522013-02-06  Jan Pokorný  <jpokorny@redhat.com>
4353
4354	lenses.tex: fix typos, single-quote cleanup
4355
43562013-01-23  Dominic Cleal  <dcleal@redhat.com>
4357
4358	Shellvars: ignore network configs with brackets in their name
4359	SSIDs containing brackets would cause aug_init failures, as the characters are
4360	parsed in path expressions.
4361
4362	Fixes ticket #246
4363
43642013-01-23  David Lutterkort  <lutter@redhat.com>
4365
4366	augparse: add --trace option
4367	Using --trace will print the filenames of all modules that are loaded.
4368
4369	Shellvars: ignore network configs with ! in their name
4370	NetworkManager would write such files, but that leads to problems during
4371	aug_init, as the attempt to create the node
4372	/augeas/files/etc/sysconfig/network-scripts/FILE!NAME will fail as that is
4373	not a valid path expression
4374
4375	* .gitignore: ignore test result files (*.trs)
4376
4377	* acinclude.m4: only turn on FORTIFY_SOURCE if it won't anger gcc
4378	Following libvirt commits cf9bced0 and 1c2edf0f
4379
43802013-01-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4381
4382	Quote: Allow multiple spaces in quote_spaces
4383
43842013-01-10  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4385
4386	Add two files found on OpenBSD to the simplevars lens.
4387
43882013-01-08  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4389
4390	The nagios filters work for Icinga too
4391
4392	Modify the Nagios lens to handle resources.cfg too.
4393	Fixes ticket #312
4394
43952013-01-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4396
4397	AptPreferences: adjust a little bit to simplified lens
4398
4399	AptPreferences: Simplify/Standardize the module
4400
44012013-01-04  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4402
4403	Make sure the usage shows up properly formated.
4404
4405	sync another comment with ND definition
4406
4407	Sync View comment with actual definition.
4408
4409	Properly document this lens.
4410
4411	Basic documentation for final apt lenses and sync Menu.txt
4412
4413	regen Menu.txt after recent changes.
4414
4415	Move the 'coding' comment to the end of the file to fix the menu entry.
4416
4417	Fix some more broken module names
4418
4419	Small fixes to improve documentation:
4420	- Declare a module name in test_yum, so that gets taken instead of Yum.lns
4421	- Filter is a view, not a variable in ntpd.aug
4422	- Properly declare the module name nginx.aug
4423
4424	Correctly set the module name, and let it actually test the Lightdm lens.
4425
44262013-01-04  David Lutterkort  <lutter@redhat.com>
4427
4428	Xml test (input1): modify to mildly check handling DOS line endings
4429
44302013-01-04  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4431
4432	Add support for handling the "client-output-buffer-limit" to the Redis lens.
4433
44342013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4435
4436	Some small Rx tweaks: include regexes for octal and hex and simplify ipv4 matching.
4437	Fixes ticket #327
4438
4439	Add a lens for OpenNTPD's config file (ntpd.conf).
4440	Extend rx.aug with some helpful regexes while here.
4441	Fixes ticket #324
4442
4443	Adjust the fonts lens' exclusion rule to ignore all README files
4444	Fixes ticket #323
4445
44462013-01-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4447
4448	Quote: improve lens usage
4449
4450	Quote: lens usage
4451
4452	Quote: Improve documentation for functions
4453
4454	Xorg: Fix filter
4455
44562013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4457
4458	Also handle /etc/monitrc
4459	Fixes ticket #326
4460
44612013-01-03  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4462
4463	Remove bogus use of Util.stdexcl.
4464	It should only be used for wildcard includes.
4465	Add an exclude to Util.stdexcl for "#*#" while here.
4466
4467	Fixes ticket #325
4468
44692013-01-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4470
4471	Erlang and Quote are generic lenses
4472
44732013-01-02  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4474
4475	Add a new lens for OpenBSD's /etc/boot.conf.
4476	Fixes ticket #322
4477
44782013-01-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4479
4480	Networks: networks can have weird submasks, too
4481
4482	Sysctl: exclude /etc/sysctl.d/README.sysctl
4483
4484	Sudoers: Allow user aliases in specs
4485
4486	Systemd: Allow backslashes inside values
4487
4488	Systemd: Simplify expression
4489
4490	Systemd: Don't use multiple negates in regexps
4491
44922012-12-30  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4493
4494	* tests/cutest.c: include sys/wait.h for WIFEXITED and WEXITSTATUS.
4495	Fixes ticket #321
4496
44972012-12-30  Dominic Cleal  <dcleal@redhat.com>
4498
4499	Inetd: support IPv6 addresses
4500	Fixes ticket #320
4501
45022012-12-30  Jasper Lievisse Adriaanse  <jasper@humppa.nl>
4503
4504	Shellvars: parse /etc/rc.conf.local which is found on OpenBSD.
4505	Fixes ticket #320
4506
4507	Dhclient: on OpenBSD dhclient.conf lives in /etc/dhclient.conf
4508	Fixes ticket #320
4509
4510	Resolv: Add two new views (family and lookup)
4511	Fixes ticket #320
4512
45132012-12-29  Dominic Cleal  <dcleal@redhat.com>
4514
4515	* src/augrun.c: fix spelling in defnode help
4516
45172012-12-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4518
4519	AptPreferences: Add "n" to pin keys
4520
45212012-12-23  Dominic Cleal  <dcleal@redhat.com>
4522
4523	Xinetd: handle missing values in lists
4524	Fixes ticket #307
4525
45262012-12-22  Dominic Cleal  <dcleal@redhat.com>
4527
4528	Update NEWS and AUTHORS
4529
45302012-12-21  David Lutterkort  <lutter@redhat.com>
4531
4532	Version 1.0.0
4533
45342012-12-21  Dominic Cleal  <dcleal@redhat.com>
4535
4536	Krb5: support semicolon comments, allow empty lines within subsections
4537	Fixes ticket #288
4538
45392012-12-21  Pat Riehecky  <riehecky@fnal.gov>
4540
4541	Krb5: support host { } subsections inside v4_name_convert, handle multiple arguments to *_enctypes settings, support ticket_lifetime
4542	Contains a minor incompatible lens change for permitted_enctypes,
4543	default_tgs_enctypes and default_tkt_enctypes settings, where labels are now
4544	lower-cased.
4545
4546	Fixes ticket #274
4547
45482012-12-21  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4549
4550	Update NEWS and AUTHORS
4551
4552	Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/nginx
4553
4554	Add Nginx lens to parse /etc/nginx/nginx.conf, bug #319
4555
45562012-12-21  David Lutterkort  <lutter@redhat.com>
4557
4558	* src/Makefile.am: add $(top_builddir)/gnulib/lib to GNULIB_CFLAGS
4559	Needed for building under IllumOS
4560
4561	Fixes https://fedorahosted.org/augeas/ticket/270
4562
45632012-12-19  Matthaus Owens  <matthaus@puppetlabs.com>
4564
4565	Add /etc/puppetlabs/puppet path to puppet lenses
4566	In Puppet Enterprise, puppet is rooted in /etc/puppetlabs/puppet instead of
4567	/etc/puppet, so that is also a valid location for puppet.conf, fileserver.conf,
4568	and auth.conf. This commit also adds /usr/local/etc/puppet/auth.conf as a
4569	filter for the puppet auth lens.
4570
45712012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>
4572
4573	Redis: new lens and tests
4574
45752012-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4576
4577	Quote: Add tests for *_nil entries
4578
45792012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>
4580
4581	Add Quote.*quote_opt_nil variables and functions
4582	... which are exactly the same as  Quote.*quote_opt, except they don't
4583	set quotes by default.
4584
4585	This patch also completes a couple of existing comments.
4586
45872012-12-17  Marc Fournier  <marc.fournier@camptocamp.com>
4588
4589	augeas.vim: added a couple of keywords recently introduced.
4590
45912012-12-17  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4592
4593	Dhcpd: force double quotes for filename attribute, bug #311
4594
45952012-12-16  Marc Fournier  <marc.fournier@camptocamp.com>
4596
4597	Postgresql: properly support quotes
4598	Fixes trac#317
4599
46002012-12-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4601
4602	Postfix_Transport: allow host:port and [host]:port syntaxes, bug #303
4603
4604	Really test Avahi.lns in test_avahi.aug
4605
4606	Update NEWS
4607
46082012-12-14  Athir Nuaimi  <athir@nuaimi.com>
4609
4610	Add new Avahi lens to manage /etc/avahi/avahi-daemon.conf
4611
46122012-12-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4613
4614	Merge branch 'trac#281' of git://github.com/mfournier/augeas into review/pr4
4615
46162012-12-14  Marc Fournier  <marc.fournier@camptocamp.com>
4617
4618	Add a path to pg_hba.aug, fixes Trac ticket #281.
4619
4620	Htpasswd: new lens and tests
4621
46222012-12-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4623
4624	Update NEWS
4625
4626	src/augtool.c: honor --echo in run_args
4627
4628	src/augtool.c: print_aug_error when run_args fails
4629
4630	src/augtool.c: run_args is successful if code >= 0, bug #316
4631
46322012-12-12  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4633
4634	Update AUTHORS
4635
4636	Prepare NEWS for 1.0 release
4637
4638	Add Quote.dquote_spaces and Quote.squote_spaces
4639
4640	Use Quote.quote_spaces in pg_hba.aug
4641
4642	Add Quote.quote_spaces
4643
4644	Automagically manage quotes in pg_hba.aug
4645
46462012-12-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4647
4648	pg_hba.aug: Support multiple options (ticket #313)
4649
4650	Add test for ticket 313
4651
4652	pg_hba.aug: fix method to avoid clashing with hostname
4653
46542012-12-11  Andreas Ntaflos  <daff@pseudoterminal.org>
4655
4656	Support hostnames/FQDNs and FQDN suffixes in pg_hba.conf
4657	In pg_hba.conf the "address" column may also be a hostname, FQDN or part
4658	of an FQDN starting with a dot, in addition to IP addresses. This adds
4659	support for such hostnames and hostname suffixes.
4660
46612012-12-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4662
4663	Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas into dev/shellvars_newlines
4664
46652012-12-09  Dominic Cleal  <dcleal@redhat.com>
4666
4667	Shellvars: add locale.conf, vconsole.conf systemd configs
4668	Fixes BZ#881841
4669
46702012-12-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4671
4672	Fix support for empty comments after comments
4673
4674	shellvars.aug: Fix newlines after comments being mapped as Util.empty
4675
46762012-12-06  Dominic Cleal  <dcleal@redhat.com>
4677
4678	Shellvars: add locale.conf, vconsole.conf systemd configs
4679	Fixes BZ#881841
4680
46812012-12-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4682
4683	Add rsyslog.aug
4684
46852012-11-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4686
4687	No need for comment in rabbitmq.aug (managed in erlang.aug)
4688
4689	Support comments in erlang.aug and rabbitmq.aug
4690
46912012-11-28  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4692
4693	Add rabbitmq.aug
4694
4695	Add erlang.aug
4696
46972012-11-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4698
4699	Add /etc/audit/auditd.conf to simplevars.aug
4700
47012012-11-20  Domen Kožar  <domen@dev.si>
4702
4703	correctly parse escaped string literals in vim syntax file
4704
47052012-11-20  Francois Lebel  <francoislebel@gmail.com>
4706
4707	Add a lens for logwatch.
4708
47092012-11-20  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4710
4711	Add tests for regexp builtin with flag
4712
4713	Add support for an 'i' flag in regexp builtin function
4714
47152012-11-20  David Lutterkort  <lutter@redhat.com>
4716
4717	* src/pathx.c: pass the number of actual arguments to the func implementation
4718
4719	* src/pathx.c: match functions by name and arity
4720	This makes it possible to have different numbers of arguments for the same
4721	function, e.g. count() and count(nodeset)
4722
4723	* src/pathx.c: disallow ',' in names in path expressions
4724	Note that this breaks backwards compatibility, since, when searching for a
4725	node 'a,b' you now must write "match a\,b" rather than "match a,b"
4726
47272012-11-14  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4728
4729	Add Puppet_Auth lens
4730
47312012-11-09  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4732
4733	Add aug_label to retrieve the label from a path.
4734
47352012-11-09  David Lutterkort  <lutter@redhat.com>
4736
4737	Sysconfig: handle end of line comments and semicolons; strip quotes
4738	Fixes RHBZ #761246
4739
4740	square lens: correctly process skeletons during put
4741	The current code would identify a L_SQUARE skeleton to match even when it
4742	did not, meaning we would not trigger a create in all instances where it
4743	was needed.
4744
4745	Shellvars: add tests for semicolon handling
4746
4747	* lenses/tests/test_sysconfig.aug: use a variable 'lns' for Sysconfig.lns
4748
4749	* lenses/tests/test_sysconfig.aug: use a variable 'lns' for Shellvars.lns
4750
4751	* tests/Makefile.am (lens_tests): add quote test
4752
47532012-10-29  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4754
4755	Use the Quote module in dhcpd.aug
4756
4757	Use the Quote module in openvpn.aug
4758
4759	Add quote.aug to easily manage quotes
4760
47612012-10-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4762
4763	vmware_config: use square lens to manage quotes
4764
47652012-10-26  David Lutterkort  <lutter@redhat.com>
4766
4767	square: properly handle first lens matching empty string
4768	The rewriting of the ctype of (square l1 l2 l3) introduced in commit
4769	1484afc3 was not correct when the ctype of l1 matched the empty string: the
4770	rewritten ctype did not match the empty string any more.
4771
4772	This patch fixes that by making sure that fa_enumerate includes the empty
4773	word if the language contains it.
4774
47752012-10-26  Marc Fournier  <marc.fournier@camptocamp.com>
4776
4777	improved documentation for carbon/mcollective/memcached/thttpd lenses.
4778
47792012-10-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4780
4781	VMware_Config accepts values without quotes
4782
47832012-10-23  Francis Giraldeau  <francis.giraldeau@gmail.com>
4784
4785	Xml: support single _and_ double quoted attribute values
4786	Fixes RHBZ #799885
4787	Fixes ticket #258
4788
47892012-10-23  David Lutterkort  <lutter@redhat.com>
4790
4791	Use precise ctype of a square lens if it is indeed regular
4792
4793	libfa (fa_enumerate): new function
4794	Function to enumerate FA's with a finite language, given a preset limit of
4795	words.
4796
4797	* src/syntax.c (compile_test): print which test failed when missing exception
4798	Tests which should produce an exception, but produce a regular value didn't
4799	print their line info when they failed.
4800
4801	* tests/modules/fail_shadow_union.aug: fix unintended test failure
4802
48032012-10-19  David Lutterkort  <lutter@redhat.com>
4804
4805	Gdm: also read /etc/gdm/custom.conf by default
4806
48072012-10-19  Filip Andres  <filip.andres@gooddata.com>
4808
4809	cgconfig.aug adds space between group and id
4810
48112012-10-19  David Lutterkort  <lutter@redhat.com>
4812
4813	Lightdm: new lens and tests
4814	Fixes ticket #302
4815	Contributed by David Salmen
4816
48172012-10-19  jmccann  <jacob.m.mccann@usps.gov>
4818
4819	Ntp: add tos directive
4820	Fixes ticket #297
4821
48222012-10-19  David Lutterkort  <lutter@redhat.com>
4823
4824	Phpvars: support classes and public/var values
4825	Fixes ticket #299
4826
4827	Patch by aheahe
4828
48292012-10-19  Marc Fournier  <marc.fournier@camptocamp.com>
4830
4831	Memcached: new lens and tests
4832
4833	Thttpd: new lens and tests
4834
4835	Carbon: new lens and tests for Carbon cache.
4836
4837	MCollective: new lens and tests
4838
48392012-09-24  Dominic Cleal  <dcleal@redhat.com>
4840
4841	Revert f04d7dfb3fe7c54b0be650e68aa7778eaf02ea66
4842	This was a subtle feature which uses counters named after the setting key to
4843	index the values beneath it, over all instances of the setting key.  This allows
4844	for path expressions such as /files/etc/ssh/sshd/AllowEnv/10 to map to the
4845	tenth value, irrespective of how many setting lines they are split over.
4846
4847	Modprobe: revert inner lens name change, fixes Modules_conf
4848	Modules: define own entry regexp as referenced Modprobe inner lens doesn't
4849	match file format
4850
48512012-09-21  Dominic Cleal  <dcleal@redhat.com>
4852
4853	Modprobe: support multiline split commands
4854	Fixes Ubuntu bug #1054306
4855
48562012-09-17  Dominic Cleal  <dcleal@redhat.com>
4857
4858	Sshd: reset seq counter for each array setting
4859
48602012-09-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4861
4862	Fix test_syslog.aug
4863
4864	Capital letters are allowed in tokens in syslog.aug
4865
4866	Add collectd.aug and associated test
4867
48682012-09-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4869
4870	Add postfix_virtual.aug and associated test
4871
4872	Remove /etc/postfix/virtual from postfix_transport.aug
4873
48742012-09-04  Dominic Cleal  <dcleal@redhat.com>
4875
4876	Sshd: permit hyphens in subsystem names
4877
48782012-09-03  Raphaël Pinson  <raphael.pinson@camptocamp.com>
4879
4880	Add apt_update_manager.aug and test
4881
4882	Add vmware_config.aug and test
4883
4884	Allow empty lines in gtkbookmarks.aug
4885
4886	Use label instead of seq in gtkbookmarks.aug
4887
4888	Add gtkbookmarks.aug and test
4889
48902012-08-27  Pat Riehecky  <riehecky@fnal.gov>
4891
4892	Cachefilesd: new lens for /etc/cachefilesd.conf
4893
48942012-08-23  jmccann  <jacob.m.mccann@usps.gov>
4895
4896	fixes #278 multipath: allow devices to override defaults
4897
48982012-08-22  Michal Filka  <mfilka@suse.cz>
4899
4900	Fixed logrotate.aug.
4901	    Logrotate accepts integers prefixed by a sign. Added real world
4902	    ntp config file example from SLES into test_logrotate.aug.
4903
49042012-08-21  Jeroen van Meeuwen (Kolab Systems)  <vanmeeuwen@kolabsys.com>
4905
4906	Add a lens for Cyrus IMAP configuration file /etc/imapd.conf (includes /etc/imap/*.conf)
4907	Fixes ticket #296
4908
49092012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>
4910
4911	Generic square lens v4
4912	Lens square now takes lenses instead of regular expressions as arguments, as follow:
4913
4914	  square left body right
4915
4916	The left and right lenses must accept the same language. The left lens can be
4917	either key or del, while the right lens must be del.
4918
4919	This patch changes the semantic of the square lens and is thus not backward
4920	compatible. Modules must be updated accordingly. The definition of the square
4921	lens should now be definitive, and later addition may add support for
4922	additionnal lenses for left and right sides.
4923
4924	  * builtin.c: change definition of the square lens.
4925	  * get.c: use the AST to recover the left and right strings matched by the
4926	    square lens.Regular lenses are handled with regexp registers.
4927	  * put.c: the variable state->override is used to indicate to a del part of a
4928	    square lens that it should use the provided value instead of the saved
4929	    string in the skel or the default value.
4930	  * lens.c: change the lns_make_square to match the new structure.
4931
4932	Update square lens test to use lens arguments instead of regexp. The change
4933	consists to replace "square re lens" into "square right lens left", where right
4934	and left are lenses. Hence, legacy lens is converted this way:
4935
4936	Legacy:
4937	  let x = square re body
4938
4939	New definition:
4940	  let x =
4941		let right = key re in
4942		let left = del re "" in
4943		square right body left
4944
4945	This patch splits pass_square.aug into regular and recursive tests. Other tests
4946	are added to verify constraints on the square lens arguments and typechecking.
4947
4948	Finally, this patch updates httpd and xml lens according to square args
4949
4950	Changes in v2:
4951	  * protect arg with parenthesis in child_first and child_last macros
4952	  * drop flag in_square, avoid lens copy, drop square_left/right strings
4953	    replaced by ast for rec lens and regs for regular lens. This
4954	    processing is more general than the previous approach, and thus
4955	    will help to extends the square lens more in the future.
4956	Changed in v3:
4957	  * Split the patch into smaller units
4958	Changed in v4:
4959	  * Rejoin patches to avoid breaking make check
4960
49612012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>
4962
4963	Build AST while visiting the parse v2
4964	The AST records the structure of the parse according to the lens tree. The
4965	indices of the text matched is recorded for later use.
4966
4967	Changed in v2:
4968	  * Additional checks for correctness
4969	  * Create the root node in rec_process()
4970	  * Merge ast_add_child() and ast_append()
4971
49722012-08-14  Francis Giraldeau  <francis.giraldeau@gmail.com>
4973
4974	Fix memory leak in dbg_visit
4975	dbg_visit() calls format_lens() to display the lens information. The caller of
4976	format_lens() must free the memory allocated, just do it.
4977
4978	Ignore Eclipse settings directory
4979
49802012-08-12  Dominic Cleal  <dcleal@redhat.com>
4981
4982	Simplevars: use to parse /etc/default/grub_installdevice
4983	Ticket #290
4984
4985	Hosts_Access: add hosts_options(5) support
4986	Fixes ticket #256
4987
49882012-08-12  Dominic Cleal  <dcleal@redhat.com>
4989
4990	Hosts_Access: permit more client list formats
4991	  * whitespace separated lists
4992	  * @netgroups
4993	  * IPv6 hosts, inc. zone indices
4994	  * paths to lists of clients
4995	  * wildcards
4996
4997	Mostly fixes ticket #256
4998
49992012-08-11  Dominic Cleal  <dcleal@redhat.com>
5000
5001	Fix regression in permissions of created files
5002	Commit 16387744 changed temporary file creation to use mkstemp, resulting in
5003	new files being created with 0600 permissions.  For brand new files created
5004	through Augeas, their permissions stayed at 0600 rather than being set by the
5005	umask as before.
5006
5007	  * src/transform.c (transform_save): chmod after creating new files to
5008	    permissions implied by the umask
5009
50102012-08-11  Dominic Cleal  <dcleal@redhat.com>
5011
5012	Fix issues reported by clang static analyser
5013	  * src/transform.c (text_retrieve): initialise variable before use
5014	  * src/transform.c (filter_generate): remove duplicate variable assignment
5015	  * src/jmt.c (parse_add_item): ensure return is defined on goto error
5016
5017	Fix augtool --transform documentation
5018	  * src/augtool.c (usage): -t syntax is now same as 'transform' command
5019	  * src/augrun.c (cmd_transform_def): improve description
5020
5021	Arrange commands into groups for better help
5022	  * src/augrun.c: create group definitions, move commands into arrays per
5023	    group, update help output to iterate over and announce each group
5024
5025	Ldif: new lens to read LDIF files per RFC2849
5026
5027	* src/augtool.c (add_transforms): move free() to prevent free(NULL) and run on   each iteration
5028
50292012-08-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5030
5031	Add a way to specify explict transforms
5032	Allow specifying transforms in three different ways:
5033	 - an aug_transform API call
5034	 - a transform command for aug_srun
5035	 - a -t|--transform option to augtool
5036
50372012-08-10  David Lutterkort  <lutter@redhat.com>
5038
5039	* src/augeas.c: use constants for "lens", "incl" and "excl"
5040
50412012-08-10  Francis Giraldeau  <francis.giraldeau@gmail.com>
5042
5043	Fix typo in previous commit
5044	Adjust comment and remove duplicated test case for primary statement in
5045	dhcpd.conf lens.
5046
5047	Fix bug #293 primary statement in dhcpd.conf
5048	The "primary" statement does not support any arguments, while it should when
5049	it's used in the "zone" block statement. The solution is to add the primary
5050	statement in the statements that requires a string argument. The primary
5051	statement can thus take a value or not, and thus do not cause any ambiguity in
5052	the put direction.
5053
50542012-08-08  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5055
5056	Add entry_list and entry_list_nocomment to inifile.aug Use entry_list_nocomment in subversion.aug
5057
50582012-08-07  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5059
5060	Add aug_rename to rename node labels without moving them in the tree.
5061
50622012-08-07  Francis Giraldeau  <francis.giraldeau@gmail.com>
5063
5064	Escape double quotes when dumping regexp
5065	Graphviz DOT is using double quotes to quotes the string of a label. Escape
5066	double quotes to avoid parsing errors with graphviz when the regexp of the lens
5067	includes double quotes.
5068
50692012-08-02  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5070
5071	Update doc/naturaldocs/conf/lenses/Menu.txt
5072
50732012-08-01  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5074
5075	Update email address for Raphaël Pinson in AUTHORS
5076
50772012-07-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5078
5079	Make get_square case insensitive on the ending key.
5080
50812012-07-29  Dominic Cleal  <dcleal@redhat.com>
5082
5083	* src/augrun.c (cmd_retrieve_help): tidy line wrapping
5084
5085	NetworkManager: support semicolons in values, spaces and brackets in entry names
5086
5087	* src/transform.c (xread_file): catch failed fopen, e.g. EACCES
5088
5089	Fix Valgrind memcheck errors
5090	  * src/augtool.c (main_loop): free memory allocated by readline
5091	  * src/augrun.c (aug_srun): free command opts after use
5092
50932012-07-27  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5094
5095	Notify #augeas channel
5096
5097	Add valgrind test in .travis.yml
5098
5099	Add Travis CI file
5100
5101	Shellvars.aug fix empty comments
5102
5103	Shellvars.aug: Allow double quotes around variables in case statements
5104
5105	Shellvars.aug: Add shift and exit builtins, with optional args
5106
5107	Shellvars.aug: Fix empty lines after comments
5108
5109	Shellvars.aug: Support matching keys in var_action (ticket #290)
5110
5111	Shellvars.aug: Add dbquot for double bquoted values
5112
5113	Shellvars.aug: eol_comments must begin with a space char can contain #
5114
5115	Shellvars.aug: Add bquot and dollar-assigned tests
5116
5117	shellvars.aug: Allow semi-colons in bquot and dollar_assign Fix wrong test using bquot and eol_comment
5118
5119	Allow newlines in quoted values
5120
5121	Add lns_norec to shellvars.aug and fix ambiguities in the lens.
5122
5123	Fix ambiguity in shellvars.aug by making semi-colons illegal in bquot and arrays.
5124
51252012-07-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5126
5127	Allow end of line comments in fstab.aug
5128
51292012-07-23  Michal Filka  <mfilka@suse.cz>
5130
5131	Cron: records can be prefixed by '-'.
5132
51332012-07-19  Danny Yates  <danny@codeaholics.org>
5134
5135	vsftpd.aug: Add require_ssl_reuse option
5136
51372012-07-19  David Lutterkort  <lutter@redhat.com>
5138
5139	* augeas.spec.in: add bundled(gnulib) provides
5140	Fixes BZ 821745
5141
51422012-07-19  Dominic Cleal  <dcleal@redhat.com>
5143
5144	Prevent cross-mountpoint attacks via .augsave during saving
5145	Previously Augeas would open PATH.augsave for writing if a rename from PATH to
5146	PATH.augsave failed, then write the file contents in.  Now if the rename fails,
5147	it tries to unlink PATH.augsave and open it with O_EXCL first.
5148
5149	Mountpoints remain permitted at either PATH or PATH.augnew provided
5150	/augeas/save/copy_if_rename_fails exists.
5151
5152	* src/transform.c (clone_file):
5153	    add argument to perform unlink and O_EXCL on destination filename after a
5154	    rename failure to prevent PATH.augsave being a mountpoint
5155	* src/transform.c (transform_save, remove_file):
5156	    always try to unlink PATH.augsave if rename fails, only allowing PATH to be
5157	    a mountpoint; allow PATH or PATH.augnew to be mountpoints
5158	* tests/
5159	    test-put-mount: check PATH being a mountpoint is supported
5160	    test-put-mount-augnew.sh: check PATH.augnew being a mountpoint is supported
5161	    test-put-mount-augsave.sh: check unlink error when PATH.augsave is a mount
5162
5163	Fixes BZ 772261
5164
51652012-07-19  Dominic Cleal  <dcleal@redhat.com>
5166
5167	Prevent symlink attacks via .augnew during saving
5168	Instead of saving into a predictable PATH.augnew file, save into a securely
5169	created PATH.augnew.XXXXXX
5170
5171	* src/transform.c (transform_save):
5172	    write changes to a temporary file in the same directory as the destination
5173	    (either the file's canonical path or the path of .augnew), before renaming
5174
5175	* src/transform.c (transfer_file_attrs):
5176	    use fchown, fchmod etc. on the same file handles to ensure consistent
5177	    permission changes
5178
5179	* bootstrap: add mkstemp gnulib module
5180	* tests/
5181	    test-put-symlink-augnew.sh: test symlink attack when writing .augnew
5182	    test-put-symlink-augsave.sh: test symlink attack when writing .augsave
5183	    test-put-symlink-augtemp.sh: test symlink attack via temp .augnew
5184	    test-put-symlink.sh: also test file modification
5185
5186	Fixes BZ 772257
5187
51882012-07-18  Dan Prince  <dprince@redhat.com>
5189
5190	Pythonpaste: new lens for Python Paste configs.
5191	Added a new lense file for Python Paste configs. This is useful
5192	for editing a variety of Openstack config files including,
5193	Nova api-paste.ini, Glance *.ini files, keystone.conf, and the
5194	swift config files.
5195
51962012-07-18  David Lutterkort  <lutter@redhat.com>
5197
5198	Xinetd: slight formatting improvements
5199
5200	Case-insensitive regexps: fix a problem with number of groups
5201	When we expand a regexp to a case-sensitive regexp in regexp_expand_nocase,
5202	it is possible that the number of groups in that regexp changes,
5203	e.g. /(a)|(b)/i becomes /[AaBb]/. That confuses the parser when that regexp
5204	is used in a union or concatenation, since it expects the match following
5205	the match for this regexp to be in group 3, not group 1.
5206
5207	* src/regexp.c (regexp_union_n, regexp_concat_n): fix bad memory access
5208	Avoid calling strlen on a possibly unintialized string (since we overwrite
5209	the trailing '\0' with a '(' just before calling REALLOC
5210
52112012-07-18  Michal Filka  <mfilka@suse.cz>
5212
5213	made xinetd.aug case insensitive on attribute names
5214
52152012-07-18  David Lutterkort  <lutter@redhat.com>
5216
5217	Update gnulib to commit cabce6b8
5218
52192012-07-18  David Lutterkort  <lutter@redhat.com>
5220
5221	* src/builtin.c (pr_tree): new primitive print_tree
5222	Useful in 'put' tests, as in
5223
5224	  test lns put ".." after
5225	    set .. ;
5226	    print_tree;
5227	    set ..
5228	  = ?
5229
52302012-07-17  David Lutterkort  <lutter@redhat.com>
5231
5232	aug_text_store, aug_text_retrieve: fix segfault when passed in node was NULL
5233	When the node existed, but had a NULL value, we segfaulted instead of
5234	reporting an error. We now report ENOMATCH.
5235
5236	Fixes https://fedorahosted.org/augeas/ticket/283
5237
52382012-07-15  Dominic Cleal  <dcleal@redhat.com>
5239
5240	Fstab: options field is optional
5241
52422012-07-13  Dominic Cleal  <dcleal@redhat.com>
5243
5244	Authorized_Keys: add more tests
5245
52462012-07-13  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5247
5248	Add authorized_keys.aug and associated test.
5249
52502012-07-04  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5251
5252	simplevars.aug: Add /etc/zabbix/*.conf to includes
5253
5254	simplevars.aug: Allow quotes in variables that do not begin with a quote
5255
52562012-06-28  Dominic Cleal  <dcleal@redhat.com>
5257
5258	Shellvars: exclude directories from /etc/sysconfig/* wildcard
5259	This prevents a bug where Augeas maps a directory such as
5260	/etc/sysconfig/network-scripts to a lens via a matching transform and fails
5261	to save if the user edits /etc/sysconfig/network-scripts/ifcfg-eth0.
5262
52632012-06-19  Micah Anderson  <micah@riseup.net>
5264
5265	escape all possible regular expressions before they are sent to sed
5266
52672012-06-12  David Lutterkort  <lutter@redhat.com>
5268
5269	Modprobe: allow spaces around '=' in option
5270	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=826752
5271
52722012-06-05  David Lutterkort  <lutter@redhat.com>
5273
5274	* man/augtool.pod: update mentions of default load path
5275
52762012-06-01  Luc Didry  <luc@didry.org>
5277
5278	Add su logrotate.conf option in logrotate.aug
5279
52802012-05-31  David Lutterkort  <lutter@redhat.com>
5281
5282	Tests for aug_text_store and aug_text_retrieve
5283
5284	aug_text_store, aug_text_retrieve: expose in augtool and aug_srun
5285
5286	aug_text_store, aug_text_retrieve: new API functions
5287
5288	* src/transform.c (text_retrieve): new function to turn tree into text
5289
5290	* src/transform.c (text_store): new function to write string to tree
5291
5292	* tests/test-run.c: allow loading of a module with 'use'
5293
52942012-05-31  David Lutterkort  <lutter@redhat.com>
5295
5296	Allow running individual tests with test-run
5297	Invoking 'test-run t1 t2 t3' will only run tests t1, t2 and t3
5298
5299	  * tests/test-xpath.c: move checking if a test is mentioned in argv to
5300	    cutest
5301	  * tests/cutest.c, tests/cutest.h: add should_run
5302	  * Makefile.am: test-xpath now uses cutest.[ch]
5303	  * tests/test-run.c (run_tests): check if tests is mentioned on cmd line
5304
53052012-05-31  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5306
5307	Add postgresql lens
5308
5309	Allow eol comments in simplevars.aug
5310
5311	Add lens for cups
5312
5313	Add lens for samba's smbusers
5314
53152012-05-21  David Lutterkort  <lutter@redhat.com>
5316
5317	* src/augrun.c (cmd_span): better synopsis
5318
5319	* tests/run.tests: fix lines with trailing whitespace
5320
5321	* tests/test-run.c (errtokens): bring in sync with actual error codes
5322
53232012-05-17  David Lutterkort  <lutter@redhat.com>
5324
5325	* src/transform.c (load_file): remove unused variable file
5326
53272012-05-16  David Lutterkort  <lutter@redhat.com>
5328
5329	Fix behavior of set with empty strings
5330	  * src/augrun.c (cmd_set, cmd_setm): distinguish between empty string and
5331	    NULL value
5332	  * tests/run.tests (set-args): adapt to new behavior
5333
53342012-05-12  Dominic Cleal  <dcleal@redhat.com>
5335
5336	* src/try: don't overwrite gdbcmds.txt if it exists
5337
53382012-05-11  Dominic Cleal  <dcleal@redhat.com>
5339
5340	Fstab: handle options with empty values ("password=")
5341
53422012-05-06  Tim Bishop  <tim@bishnet.net>
5343
5344	Puppet, PuppetFileserver: add /usr/local/etc/puppet paths
5345
53462012-04-26  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5347
5348	Shellvars: various edge cases in case entries
5349
5350	AptPreferences: #comments are accepted within entries
5351
5352	NagiosCfg: /etc/nagios3/commands.cfg and /etc/nagios3/resource.cfg have their own syntax, allow spaces in values.
5353
5354	/etc/default/whoopsie is an IniFile
5355
5356	Merge branch 'master' of ssh://git.fedorahosted.org/git/augeas
5357
5358	Mke2fs: Add support for default_mntopts, enable_periodic_fsck, and auto_64-bit_support.
5359
53602012-04-26  Dominic Cleal  <dcleal@redhat.com>
5361
5362	Make creating NULL value nodes more intuitive
5363	* src/augrun.c: add "touch" command to create node if it doesn't exist, make
5364	  <VALUE> argument to "set" and "setm" optional
5365
5366	Fixes ticket #276
5367
53682012-04-23  David Lutterkort  <lutter@redhat.com>
5369
5370	* src/augeas.h: include 'extern "C"' wrapper for C++
5371	Fixes https://fedorahosted.org/augeas/ticket/272
5372
5373	Patch from Igor Pashev
5374
53752012-04-22  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5376
5377	Use Sys.getenv("HOME") in dput.aug
5378
53792012-04-19  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5380
5381	PHPVars: map arrays with @arraykey subnodes to make working paths
5382
53832012-04-12  Michal Filka  <michal.filka@suse.cz>
5384
5385	Shellvars: handle bash's implicit concatenation of quoted strings
5386
53872012-04-12  Josh  <jokajak@gmail.com>
5388
5389	Grub: add /boot/grub/grub.conf to transform
5390
53912012-04-12  Luc Didry  <luc@didry.org>
5392
5393	Use Sys.getenv('HOME') in filter instead of ~ since it's not expanded
5394
53952012-04-12  Brett Porter  <brett@apache.org>
5396
5397	Properties: improve handling of whitespace, empty props, and underscores in keys
5398	This brings the lens closer to the Java specification
5399
5400	With help from Carlos Sanchez <csanchez@maestrodev.com> and Dominic Cleal
5401	<dcleal@redhat.com>
5402
54032012-04-11  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5404
5405	Use a more standard way of writing LGPL v2+ in lens headers
5406
54072012-04-10  Raphaël Pinson  <raphael.pinson@camptocamp.com>
5408
5409	postfix_transport.aug also applies to virtual (5)
5410
5411	Add postfix_transport.aug and associated test.
5412
5413	Add subversion lens and associated test.
5414
5415	Add networkmanager lens to tests and doc
5416
5417	Add networkmanager.aug and associated test file.
5418
54192012-04-09  Dominic Cleal  <dcleal@redhat.com>
5420
5421	Sudoers: allow quoted strings in Defaults parameters
5422	Fixes bug #263
5423
54242012-04-08  Dominic Cleal  <dcleal@redhat.com>
5425
5426	Debctrl: allow control extensions for Python packages
5427	Fixes bug #267
5428
5429	Debctrl: fixed package paragraph keywords, allow variables for version numbers in dependency lists, allow DM-Upload-Allowed keyword
5430	Fixes Debian bug #650887
5431
54322012-04-06  Dominic Cleal  <dcleal@redhat.com>
5433
5434	AUTHORS: updated from recent commits
5435
54362012-04-06  Jason Kincl  <jkincl@gmail.com>
5437
5438	Xymon: new lens for Xymon config files
5439	Fixes ticket #266
5440
54412012-04-06  Jim Meyering  <meyering@redhat.com>
5442
5443	compile_exp: don't return an uninitialized pointer upon failure
5444	As a result of its improved flow analysis gcc-4.7.0 20111202 reported:
5445
5446	  syntax.c: In function 'compile_exp':
5447	  syntax.c:1694:5: warning: 'v' may be used uninitialized in this \
5448	  function [-Wmaybe-uninitialized]
5449
5450	However, compile_exp calls many functions that return values that are
5451	then assigned to "v".  Only two of those had a problem: in each there
5452	is an error path by which the returned pointer is not initialized.
5453	* src/syntax.c (compile_concat): Initialize "v".
5454	(compile_minus): Likewise.
5455
54562012-04-04  Duncan Mac-Vicar P  <dmacvicar@suse.de>
5457
5458	bootloader is also present in shellvars_list, exclude from shellvars.
5459
54602012-04-01  Dominic Cleal  <dcleal@redhat.com>
5461
5462	Sudoers: allow "!" as a type of Defaults entry
5463	Fixes Debian bug #650079
5464
5465	Modprobe: support softdep command
5466	Fixes Debian bug #641813
5467
54682012-03-29  Dominic Cleal  <dcleal@redhat.com>
5469
5470	* src/augrun.c (nexttoken): support \t and \n in aug_srun tokens
5471	Fixes bug #265
5472
54732012-03-23  Raphaël Pinson  <raphink@gmail.com>
5474
5475	Add netmask to hosts_access.aug
5476
54772012-03-18  Dominic Cleal  <dcleal@redhat.com>
5478
5479	Shellvars: add systemd's /etc/os-release file
5480
5481	Systemd: new lens to parse systemd unit files
5482
5483	* 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
5484	Fixes ticket #264
5485
54862012-03-17  Dominic Cleal  <dcleal@redhat.com>
5487
5488	Qpid: new lens to read Apache Qpid daemon/client configs
5489	Contributed by Andrew Replogle.
5490
54912012-03-12  David Lutterkort  <lutter@redhat.com>
5492
5493	Make sure reloading discards changes after save with mode 'newfile'
5494
54952012-03-10  Dominic Cleal  <dcleal@redhat.com>
5496
5497	Util: add *.bak and *.old to stdexcl, to match files in /etc/sysconfig
5498
5499	Fix excl filters that only specify a filename or wildcard
5500	  * src/transform.c (transform_validate): only normalise excl paths with
5501	    directory separators into absolute paths
5502	  * src/transform.c (filter_generate): don't apply root prefix to excl filter
5503	    values when only comparing the base filename
5504
5505	Shellvars: exclude non-shell files in tests/root/etc/sysconfig
5506
5507	Shellvars: add /etc/selinux/config
5508
55092012-03-06  Dominic Cleal  <dcleal@redhat.com>
5510
5511	Shellvars: include /etc/{default,sysconfig}/* and list exceptions instead
5512
55132012-03-03  Tim Mooney  <Tim.Mooney@ndsu.edu>
5514
5515	src/augtool.c: rename echo to echo_commands to fix differing types reported with Solaris linker
5516	Fixes ticket #262
5517
55182012-02-24  Dominic Cleal  <dcleal@redhat.com>
5519
5520	Up2date: change tree to distinguish between empty values and empty lists
5521
5522	Up2date: change tree to fix ambiguity during put, remove list of known config options and separation of possible values
5523
55242012-02-22  Dominic Cleal  <dcleal@redhat.com>
5525
5526	Protocols: change tree to support protocols named "a/n" and "tp++"
5527
5528	Shellvars: remove non-shell files, up2date now has a lens, move updatedb.conf to Simplevars
5529	Fonts: exclude README
5530
5531	Sep: add semicolon
5532
5533	Ntp: allow deprecated 'authenticate' setting
5534
55352012-02-21  Raphaël Pinson  <raphink@gmail.com>
5536
5537	Add up2date.aug and associated test file
5538
55392012-02-17  Raphaël Pinson  <raphink@gmail.com>
5540
5541	Support \r in httpd.aug
5542
5543	Support \r in comments in util.aug
5544
5545	Support \r\n in xml.aug
5546
5547	Do not allow \r in comment_or_eol
5548
5549	Add Util.doseol
5550
55512012-02-13  David Lutterkort  <lutter@redhat.com>
5552
5553	* src/transform.c (clone_file): do not leak from_fp
5554
55552012-02-13  Raphaël Pinson  <raphink@gmail.com>
5556
5557	Allow commands without full path if they begin with a lowcase letter in sudoers.aug
5558
5559	Allow = in commands in sudoers.aug (but force ! or / as first character if not an alias)
5560
5561	Use Build.opt_list in sudoers.aug
5562
55632012-02-13  Dominic Cleal  <dcleal@redhat.com>
5564
5565	Shellvars: add BSD's /etc/rc.conf
5566	Fixes ticket #255
5567
55682012-02-12  Dominic Cleal  <dcleal@redhat.com>
5569
5570	Improve aug_srun quoting to permit concatenation and better detect bad quoting
5571	* src/augrun.c (nexttoken): permit shell-like concatenation of quoted and
5572	  unquoted strings, detect unmatched quotes and raise AUG_ECMDRUN.
5573	* tests/run.tests: add lots of tests to cover quoting mismatches, single and
5574	  double quote combinations, courtesy of David Schmitt
5575
5576	Passwd: allow asterisk in password field
5577	Fixes ticket #255
5578
5579	Pam: exclude /etc/pam.d/README
5580	Fixes ticket #255
5581
55822012-02-10  Raphaël Pinson  <raphink@gmail.com>
5583
5584	Simplify Sudoers.sto_to_com_user to improve performance. Use more standard constructs.
5585
5586	Add continued lines to rx.aug and sep.aug
5587
55882012-02-09  Raphaël Pinson  <raphink@gmail.com>
5589
5590	Improve grub.aug's performances slightly
5591
5592	Improve keepalived.aug: cut typechecking time and resident size by 2.
5593
5594	Use Cron.shellvar in anacron.aug
5595
5596	Simplify Cron.key_re to improve typechecking of cron.aug
5597
5598	Allow # and ; in quoted values in inifile.aug (Fix ticket #243)
5599
56002012-02-08  Terence Haddock  <thaddock@tripi.com>
5601
5602	* lenses/tests/test_iptables.aug: test that we accept blank lines
5603
56042012-02-08  Francis Giraldeau  <francis.giraldeau@gmail.com>
5605
5606	Allocate exception instead of static const value
5607	The static const value returned by exn_error() may cause SIGSEGV in case
5608	the value is further changed. To avoid this situation, the structure is
5609	allocated early in aug_init instead and released in aug_close, and is
5610	accessible via aug->error->exn. The resulting exception value can be
5611	modified without adverse effect.
5612
56132012-02-08  Duncan Mac-Vicar P  <dmacvicar@suse.de>
5614
5615	Shellvars: autoload some SuSe and RHN specific files
5616
56172012-02-07  David Lutterkort  <lutter@redhat.com>
5618
5619	Add very simplistic leak test
5620
5621	Fix some memory leaks
5622	  * src/augeas.c (tree_from_transform): do not do unneeded strdups which
5623	    lead to leaks
5624	  * src/lens.h: any lens can carry a jmt when it is recursive; this was a
5625	    pretty serious issue which could have lead to memory corruptions, since
5626	    struct lens was not right for that
5627	  * src/lens.c (free_lens, lens_release): call jmt_free for all lenses
5628
56292012-02-07  Raphaël Pinson  <raphink@gmail.com>
5630
5631	Fix test-save by allowing (empty | comment)* in yum.aug.
5632
56332012-02-07  Dominic Cleal  <dcleal@redhat.com>
5634
5635	CronAllow: remove accompanying test, moved into Simplelines test earlier
5636
56372012-02-06  David Lutterkort  <lutter@redhat.com>
5638
5639	* src/transform.c (transform_save): different errors for parse and put failure
5640
56412012-02-06  David Lutterkort  <lutter@redhat.com>
5642
5643	Graphviz: remove since it can not be typechecked
5644	Typechecking for the Graphviz lens requires too much memory right now,
5645	which makes it impossible to run 'mke check' on a reasonably sized machine
5646	(6GB memory)
5647
5648	Backing out the lens until we can figure out a way to fix it so that 'make
5649	check' works with it in practice.
5650
56512012-02-06  Raphaël Pinson  <raphink@gmail.com>
5652
5653	Disable recursive mode in graphviz.aug since it fails in the put direction.
5654
5655	Pass Util.empty with entry in Build.block_generic. Fix ambiguity with Util.empty in graphviz.aug.
5656
56572012-02-03  Raphaël Pinson  <raphink@gmail.com>
5658
5659	graphviz.aug: space is optional before options
5660
5661	graphviz.aug: names can be empty
5662
5663	Support crazy example in graphviz.aug
5664
5665	Add a simple graphviz.aug and associated test
5666
5667	Use Build.block_newlines in keepalived.aug
5668
5669	Build.block_newlines takes a comment parameter, newline is optional
5670
5671	Add variables for default delimiters and regexps in build.aug
5672
56732012-02-02  David Lutterkort  <lutter@redhat.com>
5674
5675	* src/transform.c (filter_generate): take root into account for excludes
5676	When matching an exclude pattern against a path, only try to match against
5677	the part of path after the root. The paths found by globbing include
5678	patterns contain the root.
5679
5680	Fixes bug #252
5681
56822012-02-02  Raphaël Pinson  <raphink@gmail.com>
5683
5684	Improve logrotate, use Build, Rx, Sep
5685
5686	Add lbracket and rbracket to sep.aug
5687
5688	Add tests for build.aug
5689
5690	Add Build.block_newlines and use it in xinetd.aug
5691
5692	Rewrite xinetd.aug with Build, Sep, Rx
5693
5694	Allow to set lbracket_re and rbracket_re in Build.block_generic
5695
5696	Add Util.delim and use it in Sep.space_equal
5697
5698	Add Build.block_setdefault
5699
5700	Add default_lbracket and default_rbracket to Build.block_generic
5701
5702	Add blocks to build.aug, add comment_noindent to util.aug Add test_build.aug
5703
57042012-02-01  Raphaël Pinson  <raphink@gmail.com>
5705
5706	Support dollar assignment ($(bar)) in shellvars.aug
5707
5708	Parse functions in shellvars.aug
5709
5710	Shellvars.aug allows multiple elif statements
5711
5712	Add test_fonts.aug
5713
57142012-01-31  Dominic Cleal  <dcleal@redhat.com>
5715
5716	CronAllow: remove lens, add files to the Simplelines lens
5717
57182012-01-31  Raphaël Pinson  <raphink@gmail.com>
5719
5720	Add fonts.aug
5721
5722	Add ldso.aug and test
5723
5724	Fix author
5725
5726	Add /etc/sysctl.d to sysctl.aug, improve lens and add it to docs.
5727
5728	Add protocols.aug and associated test
5729
5730	Add /etc/wgetrc to simplevars.aug
5731
5732	Add simplelines.aug and test
5733
5734	Add simplevars.aug and associated test
5735
5736	Add inputrc.aug and associated test
5737
5738	Add anacron.aug and associated test
5739
5740	cowpoke.conf
5741
57422012-01-30  Raphaël Pinson  <raphink@gmail.com>
5743
5744	Ignore allow.pamlist from pam.aug
5745
5746	Add a few files to shellvars.aug
5747
5748	Add fuse.aug and associated test
5749
57502012-01-27  Dominic Cleal  <dcleal@redhat.com>
5751
5752	Vfstab: new lens for /etc/vfstab config on Solaris
5753
57542012-01-22  Dominic Cleal  <dcleal@redhat.com>
5755
5756	Automounter: exclude /etc/auto_master for Solaris, small tidyup
5757
5758	Automounter: exclude /etc/auto.master
5759
5760	Automaster: change to lowercase for consistency with Automounter
5761
5762	Automounter: new lens to parse automounter maps (/etc/auto.*)
5763
57642012-01-21  Dominic Cleal  <dcleal@redhat.com>
5765
5766	AutoMaster: new lens to parse autofs auto.master files
5767
5768	CronAllow: new lens to parse both cron/at allow/deny files
5769	Cron: exclude cron allow/deny files
5770
5771	Nsswitch: remove long list of databases, match by regexp
5772
5773	PamConf: new lens to parse /etc/pam.conf with the additional service field
5774
5775	Pam: allow uppercase chars in 'types', remove /etc/pam.conf from filter
5776	PamConf: new lens to parse /etc/pam.conf with the additional service field
5777
5778	Networks: handle multiple missing network octets, fix sequencing of aliases
5779
5780	Nsswitch: add extra databases used on Solaris
5781
5782	Shells: permit same-line comments
5783
57842012-01-20  Dominic Cleal  <dcleal@redhat.com>
5785
5786	Netmasks: new lens for parsing /etc/inet/netmasks on Solaris
5787
57882012-01-19  Travis Groth  <tgroth@gmail.com>
5789
5790	Nsswitch: add passwd_compat, group_compat and shadow_compat GNU extensions
5791
57922012-01-18  Raphaël Pinson  <raphink@gmail.com>
5793
5794	Add channels.aug and associated test.
5795
57962012-01-14  Dominic Cleal  <dcleal@redhat.com>
5797
5798	Grub: parse "password --encrypted" properly, add tests for file subnode
5799	Fixes ticket #250
5800
58012012-01-11  Francis Giraldeau  <francis.giraldeau@gmail.com>
5802
5803	Fix fatest linking with libfa
5804	fatest requires libfa symbols which are not exported by libaugeas library.
5805
58062012-01-09  Lubomir Rintel  <lubo.rintel@gooddata.com>
5807
5808	Correctly parse empty object and arrays in JSON
5809	Add a test case.
5810	Fix from David Lutterkort <lutter@redhat.com>.
5811
5812	https://fedorahosted.org/augeas/ticket/248
5813
58142012-01-09  Lubomir Rintel  <lubo.rintel@gooddata.com>
5815
5816	Allow JSON number literals to be followed by whitespace
5817	Add a test case.
5818
5819	Fixes https://fedorahosted.org/augeas/ticket/247
5820
58212012-01-09  David Lutterkort  <lutter@redhat.com>
5822
5823	* build/aux/move-if-change: refresh with latest from gnulib
5824	Taken from gnulib commit 1602f0af
5825
58262012-01-02  Dominic Cleal  <dcleal@redhat.com>
5827
5828	* 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
5829	Fixes ticket #241
5830
58312011-12-31  Dominic Cleal  <dcleal@redhat.com>
5832
5833	* tests/test-augtool.sh: fix broken gsed check
5834
58352011-12-30  Dominic Cleal  <dcleal@redhat.com>
5836
5837	Remove Linux-isms so tests can run on Solaris
5838	* tests/test-augtool-modify-root.sh: /bin/sh -> /bin/bash
5839	* tests/test-augtool.sh: /bin/sh -> /bin/bash, use 'gsed' if available (GNU sed
5840	  is required)
5841	* tests/test-load.c: don't use GNU sed in-place extension
5842	* tests/test-preserve.sh: handle Solaris `ls -il` output
5843
5844	* bootstrap: add strchrnul gnulib module (for Solaris)
5845
58462011-12-24  Jim Meyering  <meyering@redhat.com>
5847
5848	Don't use variables uninitialized upon error
5849	* src/transform.c (filter_generate): Move declarations and
5850	  initializations of pathv and pathc to precede possible
5851	  "goto error;" via which those variables are used.
5852
58532011-12-23  Francis Giraldeau  <francis.giraldeau@gmail.com>
5854
5855	fix fatest linking
5856
58572011-12-19  Raphaël Pinson  <raphink@gmail.com>
5858
5859	Rebase yum.aug on inifile.aug, support comments (except in lists) Fix ticket #217
5860
5861	Add @return to shellvars.aug
5862
58632011-12-19  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
5864
5865	Create lens and tests for sssd.conf heavily based on mysql and php lenses.
5866
58672011-12-18  Raphaël Pinson  <raphink@gmail.com>
5868
5869	aliases.aug: commands can be fully enclosed in quotes (Fix ticket #229)
5870
58712011-12-18  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
5872
5873	Add in single-request-reopen into lens and tests.
5874
58752011-12-16  Michael Chapman  <mike@very.puzzling.org>
5876
5877	Add missing argument to escape()
5878	Fixes ticket #242.
5879
58802011-12-10  Dominic Cleal  <dcleal@redhat.com>
5881
5882	* src/augeas.c (tree_root_ctx): create context path if it doesn't exist
5883
58842011-12-09  Raphaël Pinson  <raphink@gmail.com>
5885
5886	Add libxml2-devel to requirements in HACKING
5887
58882011-12-08  Raphaël Pinson  <raphink@gmail.com>
5889
5890	Debian-based distributions use /etc/mdadm/mdadm.conf
5891
58922011-12-05  Raphaël Pinson  <raphink@gmail.com>
5893
5894	Support include() in phpvars.aug
5895
5896	Add unit test for bug #239
5897
5898	In aug_to_xml: do not replace pathin with '/*' unless the length is 0 or pathin is '/' (Fix ticket #239)
5899
59002011-12-03  Richard W.M. Jones  <rjones@redhat.com>
5901
5902	pkg-config: Augeas requires libxml2.
5903
59042011-12-02  David Lutterkort  <lutter@redhat.com>
5905
5906	Version 0.10.0
5907
59082011-12-02  Dominic Cleal  <dcleal@redhat.com>
5909
5910	Implement escape sequences for whitespace, quotes and square brackets in command arguments to match Puppet provider.
5911	  * \<sp> or \<tab> will be escaped if not in quotes, else literal
5912	  * \' or \" will be escaped if in the same type of quotes, else literal
5913	  * \\ will be escaped
5914	  * \[ or \] will be passed through so they're escaped in path expressions
5915
5916	  * src/augrun.c: implement escape sequences
5917	  * tests/run.tests: add covering tests
5918
59192011-12-02  Raphaël Pinson  <raphink@gmail.com>
5920
5921	Add approx.aug and test to Menu.txt
5922
5923	Document approx.aug
5924
5925	Fix nocommand as nocomma in test_aliases.aug
5926
5927	Add documentation to test_aliases.aug
5928
59292011-12-01  David Lutterkort  <lutter@redhat.com>
5930
5931	* src/augtool.c (print_aug_error): print newline after error details
5932
5933	augtool: rename 'print-xml' to 'dump-xml'
5934	That way, 'p' tab-completes to print as before.
5935
5936	* src/augeas.c (tree_from_transform): handle alloc failure better
5937
5938	* src/augeas.c (aug_init): make more robust
5939	  - propagate errors from aug_set and similar
5940	  - only call api_exit if we called api_enter before
5941
5942	* src/augeas.c (aug_init): pull logic to set up loadpath into separate function
5943
5944	* src/augeas.c (init_root): properly report out-of-memory
5945
5946	* tests/test-api.c (testToXml): swap expected/actual values in assertions
5947
5948	* src/augeas.c (aug_to_xml): rename 'path' attr on root to 'match'
5949	The attribute contains a path expression, not just a path.
5950
59512011-12-01  David Lutterkort  <lutter@redhat.com>
5952
5953	Make it possible for aug_init to report initialization errors
5954	Sometimes initialization fails for mundane reasons, like syntax errors in
5955	lens files. So far, it was not possible for callers to report details for
5956	these errors, because they always got a NULL augeas handle back.
5957
5958	The new flag AUG_NO_ERR_CLOSE causes aug_init to return a handle even if
5959	initialization fails, so that callers can use the aug_error* functions to
5960	extract error details before calling aug_close.
5961
5962	  * src/augeas.c (aug_init): return a partially initialized struct augeas
5963	    if AUG_NO_ERR_CLOSE is set
5964	  * src/augeas.h (aug_flags): add AUG_NO_ERR_CLOSE
5965	  * src/augtool.c: call aug_init with AUG_NO_ERR_CLOSE and print errors on
5966	    initialization failure
5967
59682011-12-01  David Lutterkort  <lutter@redhat.com>
5969
5970	Update documentation for augtool/augrun and man page
5971
5972	Adjust more copyright notices
5973
5974	Fstab: allow ',' in file names
5975	Fixes BZ https://bugzilla.redhat.com/show_bug.cgi?id=751342
5976
5977	* man/augtool.pod: update copyright years, regenerate
5978
59792011-12-01  Raphaël Pinson  <raphink@gmail.com>
5980
5981	Sub::Install is not necessary to override functions in Augeas.pm
5982
5983	Fix white_spaces into with_spaces in test_faidiskconfig.aug
5984
5985	Add documentation to test_fai_diskconfig.aug
5986
5987	Extend copyright to 2011 in src/*
5988
5989	Add test_xml.aug to the lens Menu.txt
5990
5991	Improve documentation in test_xml.aug
5992
5993	Add test_keepalived.aug doc to lens Menu.txt and keepaved.aug
5994
5995	Add documentation to test_keepalived.aug
5996
5997	Improve documentation for sep.aug
5998
5999	Improve documentation for rx.aug
6000
60012011-12-01  Dominic Cleal  <dcleal@redhat.com>
6002
6003	src/augrun.c: fix parsing of commands with trailing whitespace tests/test-run.c: use : to write tests with trailing whitespace
6004
60052011-12-01  Raphaël Pinson  <raphink@gmail.com>
6006
6007	Improve documentation for access.aug and test_access.aug
6008
6009	Fix examples note in inifile.aug
6010
6011	Add examples note to reprepro_uploaders.aug
6012
6013	Finalize doc for test_reprepro_uploaders.aug
6014
60152011-12-01  Dominic Cleal  <dcleal@redhat.com>
6016
6017	Fix path context with trailing slash or whitespace
6018
6019	Add tests from Puppet's Augeas provider, some commented out until fixed.
6020
60212011-12-01  Raphaël Pinson  <raphink@gmail.com>
6022
6023	Fix test_inifile.aug's typo
6024
6025	Add documentation to test_inifile.aug
6026
6027	Better integration of tests in NaturalDocs, verbatim code display in doc.
6028
60292011-11-30  Raphaël Pinson  <raphink@gmail.com>
6030
6031	Add unit tests for aug_to_xml
6032
6033	libaugeas must now be linked to libxml, too.
6034
60352011-11-30  Dominic Cleal  <dcleal@redhat.com>
6036
6037	* augeas.spec.in: add build req on libxml2-devel
6038
60392011-11-29  Raphaël Pinson  <raphink@gmail.com>
6040
6041	Add an Examples section to reprepro_uploaders.aug's header
6042
6043	ARG_CHECK errors when condition is met. Invert conditions in aug_to_xml.
6044
60452011-11-29  Francis Giraldeau  <francis.giraldeau@gmail.com>
6046
6047	Sudoers: add more parameter flags/options
6048	Fixes bug #143
6049
60502011-11-29  Raphaël Pinson  <raphink@gmail.com>
6051
6052	Add aug_to_xml to public API
6053
60542011-11-29  David Lutterkort  <lutter@redhat.com>
6055
6056	New error code AUG_EBADARG and ARG_CHECK macro
6057	Use ARG_CHECK to check arguments passed through the public API for
6058	validity; invalid paramters lead to an error of AUG_EBADARG.
6059
6060	  * src/augeas.h (aug_errcode_t): new error code AUG_EBADARG
6061	  * src/augeas.c (errcodes): human-readable text for AUG_EBADARG
6062	  * src/errcode.h (ARG_CHECK): new macro
6063
60642011-11-29  Raphaël Pinson  <raphink@gmail.com>
6065
6066	Improve doc in test_reprepro_uploaders.aug and update Menu.txt for lenses.
6067
6068	Fix parsing of tests in Augeas.pm, add a test doc to test_reprepro.aug
6069
6070	Fix parsing of 'in[ \t\r\n]+let' in Augeas.pm
6071
60722011-11-29  David Lutterkort  <lutter@redhat.com>
6073
6074	Normalize lens filters to absolute paths
6075	It doesn't really make sense to specify relative paths in lens filters; we
6076	treat them as absolute to avoid unpleasant surprises for users who think
6077	relative paths are relative to AUGEAS_ROOT. With this change, they are.
6078
6079	Fixes bug #238
6080
60812011-11-29  David Lutterkort  <lutter@redhat.com>
6082
6083	* tests/cutest.c: run one test when CUTEST env var is set
6084
60852011-11-29  Raphaël Pinson  <raphink@gmail.com>
6086
6087	Add support for 'not' in reprepro_uploaders.aug
6088
6089	Improve CSS for NaturalDocs
6090
60912011-11-28  Dominic Cleal  <dcleal@redhat.com>
6092
6093	augtool: change readline tab completion to be context-aware
6094
6095	path expressions: prepend context from /augeas/context to all relative paths
6096	A path context is prepended to all paths that do not begin at the root,
6097	changing relative paths into absolute paths.  The context is stored in
6098	/augeas/context and defaults to the value "/files".
6099
61002011-11-28  David Lutterkort  <lutter@redhat.com>
6101
6102	* src/transform.c (load_file): fix segfault when storing span in NULL tree
6103
6104	* src/syntax.c (print_tree): print something for a NULL tree
6105
61062011-11-28  Raphaël Pinson  <raphink@gmail.com>
6107
6108	Add header to shellvars.aug
6109
6110	Add Kdump and Ssh to Menu.txt
6111
6112	Fix NaturalDocs CSS a bit
6113
6114	Add a Tests and Examples group in naturaldocs
6115
6116	Improve documentation for reprepro_uploaders.aug
6117
6118	Add 'contain' subnodes to reprepro_uploaders.aug and improve documentation.
6119
6120	Simplify logical tree in reprepro_uploaders.aug
6121
6122	Improve parameter parsing in reprepro_uploaders.aug
6123
6124	Add reprepro.aug and associated test.
6125
6126	Fix small type in comment
6127
61282011-11-23  Raphaël Pinson  <raphink@gmail.com>
6129
6130	Add support for until and select loops in shellvars.aug
6131
6132	Add elif support to shellvars.aug
6133
61342011-11-22  Raphaël Pinson  <raphink@gmail.com>
6135
6136	Add big WARNING to aptconf.aug
6137
6138	Register modules.aug with naturaldocs
6139
61402011-11-22  Tom Limoncelli  <tal@whatexit.org>
6141
6142	Xendconfsxp: new lens and tests for Xen configuration
6143
61442011-11-22  David Lutterkort  <lutter@redhat.com>
6145
6146	* tests/Makefile.am (lens_tests): add missing tests
6147
61482011-11-22  Raphaël Pinson  <raphink@gmail.com>
6149
6150	Add modules.aug and associated test file (Fix ticket #236)
6151
6152	Add backuppchosts.aug and test (Fix ticket #233)
6153
6154	mdadm.aug: dev_device cannot match dev_partitions_re
6155
6156	Fix test_phpvars.aug as per using Util.empty_c_style
6157
6158	Clean wrong lines in modprobe.aug's header
6159
6160	Update tests and documentation for new lenses
6161
6162	Add desktop.aug and associated test.
6163
6164	Add aptconf.aug and associated test.
6165
6166	Use Util.empty_c_style in phpvars.aug and don't map empty comments in Util.comment_multiline
6167
6168	Add support for case in shellvars.aug
6169
6170	Add for and while loops to shellvars.aug
6171
6172	Adapt modules_conf.aug and test file to refect the changes in modprobe.aug
6173
6174	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.
6175
61762011-11-21  Raphaël Pinson  <raphink@gmail.com>
6177
6178	Fix unpriviliged into unpriviliged in test_postfix_master.aug, too.
6179
6180	Add one-liner unit test for shellvars.aug
6181
6182	shellvars.aug: Refactor lens, add end-of-line comment support, if/then/else/fi conditionals, one-liners support
6183
6184	phpvars.aug: Add test for bash-style comment, improve eol comments, use generic_function in simple_function definition
6185
6186	Parse /etc/mailname with hostname.aug
6187
6188	Add hosts_access.aug to parse /etc/hosts.{allow,deny} and associated test.
6189
61902011-11-18  Raphaël Pinson  <raphink@gmail.com>
6191
6192	Double quotes are allowed in variable names in phpvars.aug
6193
6194	Refactor entries in phpvars.aug
6195
6196	PHP tags are case-insensitive in phpvars.aug
6197
6198	Add include_once() to phpvars.aug
6199
6200	Fix typo in postfix_master.aug (Fix ticket 234)
6201
6202	Allow empty lines at end of files in phpvars.aug
6203
6204	Better define() support in phpvars.aug
6205
6206	Support bash-style comments and define() functions in phpvars.aug
6207
6208	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.
6209
6210	Cleanup phpvars.aug, rebase it on sep.aug and util.aug and prepare the way to support end-of-line comments
6211
6212	Fix comment_multiline and add a test file for util.aug
6213
6214	Spaces are not mandatory around = in phpvars.aug
6215
6216	Fix open_php and close_php tags in phpvars.aug (Fix ticket 232)
6217
62182011-11-17  Jim Meyering  <jim@meyering.net>
6219
6220	avoid double-free upon fclose failure
6221	  * src/transform.c (transform_save): Upon initial fclose failure, set "fp
6222	    = NULL;" so that we don't attempt to free/close "fp" while cleaning up
6223	    upon "goto done".
6224
62252011-11-17  David Lutterkort  <lutter@redhat.com>
6226
6227	* lenses/util.aug: do not set caml mode for Emacs
6228
6229	* lenses/rx.aug: delete trailing whitespace
6230
62312011-11-17  Raphaël Pinson  <raphink@gmail.com>
6232
6233	Parse pam.conf in pam.aug
6234
6235	Add hostname.aug
6236
6237	Add networks.aug lens
6238
6239	Add host_conf.aug lens
6240
6241	Add flag_line to build.aug
6242
6243	Add blkid.conf to shellvars.aug
6244
62452011-11-16  Raphaël Pinson  <raphink@gmail.com>
6246
6247	Add doc to grub.aug (ticket 33)
6248
6249	Support debug flag in keepalived.aug
6250
6251	Fix origin entries in aptpreferences.aug
6252
62532011-11-15  Dominic Cleal  <dcleal@redhat.com>
6254
6255	Resolv: Permit end-of-line comments
6256	Fixes ticket #223
6257
6258	Krb5: Allow a [pam] section for pam_krb5 (possibly deprecated)
6259	Fixes ticket #225
6260
62612011-11-15  Roman Rakus  <rrakus@redhat.com>
6262
6263	Kdump: new lens and tests
6264
62652011-11-15  Dominic Cleal  <dcleal@redhat.com>
6266
6267	aug_srun: add 'insert' and 'move' command aliases to 'ins' and 'mv'
6268
62692011-11-15  Michael Chapman  <mike@very.puzzling.org>
6270
6271	Dhcpd: slashes must be double-quoted
6272	In dhcpd.conf, tokens containing slashes must be double-quoted.
6273
6274	Fixes the following dhcpd error:
6275
6276	  /etc/dhcpd.conf line 4: filename string expected.
6277	  include /
6278	          ^
6279	  Configuration file errors encountered -- exiting
6280
62812011-11-15  Michael Chapman  <mike@very.puzzling.org>
6282
6283	Access: parse user@host and (group) in users field
6284	pam_access matches the hostname in user@host against the system's own
6285	hostname, which allows a single access.conf to be shared amongst
6286	multiple machines yet still contain per-server rules.
6287
6288	pam_access also allows group names to be optionally enclosed in
6289	parentheses to disambiguate them from user names.
6290
62912011-11-15  Michael Chapman  <mike@very.puzzling.org>
6292
6293	Access: field separator need not be surrounded by spaces
6294	For compatibility with the old behaviour and to match the examples in
6295	the PAM documentation, new entries are still emitted with spaces.
6296
6297	Dhcpd: add Red Hat's dhcpd.conf locations
6298	RHEL 5 uses /etc/dhcpd.conf.
6299	RHEL 6 uses /etc/dhcp/dhcpd.conf.
6300
63012011-11-15  David Lutterkort  <lutter@redhat.com>
6302
6303	Mdadm: use case-insensitive regexps
6304
63052011-11-15  David Lutterkort  <lutter@redhat.com>
6306
6307	* src/fa.c (totalize): handle case-insensitive FA's properly
6308	The convention for case-insensitive FA's is that they do not contain any
6309	transitions on [A-Z], effectively removing upper case letters from the
6310	alphabet.
6311
6312	totalize used to create transitions into the crash state that did
6313	transition on upper case letters, violating the convention.
6314
63152011-11-13  David Lutterkort  <lutter@redhat.com>
6316
6317	* src/builtin.c (regexp_match): new helper to test a regexp
6318
63192011-11-13  Matthew Booth  <mbooth@redhat.com>
6320
6321	Mdadm_conf: new lens for /etc/mdadm.conf
6322
63232011-11-13  David Lutterkort  <lutter@redhat.com>
6324
6325	* lenses/tests/test_iptables.aug: fix syntax error
6326
63272011-10-31  Raphaël Pinson  <raphink@gmail.com>
6328
6329	Allow digits in ipt_match keys (bug #224)
6330
63312011-10-18  David Lutterkort  <lutter@redhat.com>
6332
6333	* src/syntax.c: fix composition of unit and function
6334	For a composition with types 'unit ; a -> b' we tricked ourselves into
6335	doing function composition, when we should do unit composition.
6336
6337	* src/syntax.c (type_names): fix order of names
6338
63392011-10-17  Michael Chapman  <mike@very.puzzling.org>
6340
6341	Fix regular expression escaping
6342	This patch fixes:
6343
6344	  /[\/]/
6345
6346	Previously, this matched either a backslash or a slash, since \/ was not
6347	an escape sequence known to unescape(). Now this matches only a slash.
6348
6349	We pass an extra argument to escape() and unescape() listing the extra
6350	characters that should be handled. STR_ESCAPES and RX_ESCAPES provide
6351	the extra characters for strings and regexps respectively, and NULL may
6352	be passed if no extra characters should be handled.
6353
63542011-10-17  David Lutterkort  <lutter@redhat.com>
6355
6356	Json: fix handling of whitespace
6357	We just gobble up whitespace after various expressions as part of the lens
6358	processing that expression.
6359
63602011-10-14  Raphaël Pinson  <raphink@gmail.com>
6361
6362	Spaces are allowed before colons in aliases.aug
6363
6364	Empty options are allowed in exports.aug
6365
6366	Entries outside Host statements are allowed (though not documented) in ssh.aug
6367
6368	Allow indentations in array_entry in ssh.aug
6369
6370	Small improvements to squid.aug. This lens is inconsistent and should probably be deeply reviewed, although that might break compatibility.
6371
6372	Not really shellvar entries in cron.aug, semi-colons are allowed for email addresses
6373
6374	Add schroot to tests and doc
6375
6376	Add schroot.aug lens
6377
63782011-10-13  Raphaël Pinson  <raphink@gmail.com>
6379
6380	Simplify rsyncd.aug and support indented anon entries and records.
6381
63822011-10-10  Raphaël Pinson  <raphink@gmail.com>
6383
6384	Small adjustments in postfix_master.aug
6385
63862011-10-10  Michael Chapman  <mike@very.puzzling.org>
6387
6388	Fix escape sequences in bracket expressions
6389	With POSIX extended regexps, escape sequences are not recognised within
6390	bracket expressions. Any escape sequences passed through by the
6391	unescape() function would be misinterpreted. For instance, the regular
6392	expression:
6393
6394	  /[\.-]/
6395
6396	matches any of the three characters backslash, dot or hyphen, when the
6397	lens author most likely wanted dot or hyphen only.
6398
6399	This patch cleans up the bracket expressions in all lenses, with the
6400	exception of \/ and \\ sequences. These needs to be handled by
6401	unescape() directly.
6402
64032011-10-10  Michael Chapman  <mike@very.puzzling.org>
6404
6405	FAI_DiskConfig: Fix invalid escape sequence \s
6406	It should be expanded to [ \n\t].
6407
64082011-10-10  Michael Chapman  <mike@very.puzzling.org>
6409
6410	Cron: Fix parsing of numeric fields
6411	In:
6412
6413	  let num = /[0-9\*][0-9\/,-\*]*/
6414
6415	the hyphen was treated as a range, not a literal character. This
6416	erroneously allowed a whole bunch of characters (including all uppercase
6417	letters) in numeric fields.
6418
64192011-10-10  Michael Chapman  <mike@very.puzzling.org>
6420
6421	Cgconfig: Fix parsing of group names
6422	In:
6423
6424	  let id = /[a-zA-Z0-9_\-\/\.]+/
6425
6426	the hyphen was treated as a range, not a literal character.
6427
64282011-10-10  Raphaël Pinson  <raphink@gmail.com>
6429
6430	Revert badly applied series or patches.
6431	This reverts commit dc9ef16bc7a4cc45e4d66ea69b4bdf0038e816bb.
6432
64332011-10-10  Michael Chapman  <mike@very.puzzling.org>
6434
6435	Cgconfig: Fix parsing of group names
6436	In:
6437
6438	  let id = /[a-zA-Z0-9_\-\/\.]+/
6439
6440	the hyphen was treated as a range, not a literal character.
6441
64422011-10-06  David Lutterkort  <lutter@redhat.com>
6443
6444	path expressions: add a function 'int'
6445	This makes it possible to do numerical comparisons of node values, for
6446	example, 'match /files/etc/group/*[int(gid) < 3]'
6447
64482011-10-06  Raphaël Pinson  <raphink@gmail.com>
6449
6450	Fix cmd_span (ticket #220):
6451	 - Retrieve option from tree before using it;
6452	 - Invert conditions since we now use streqv.
6453
64542011-10-05  Raphaël Pinson  <raphink@gmail.com>
6455
6456	Replace sep_spc? with sep_opt_spc in bbhosts.aug
6457
64582011-10-05  Michael Chapman  <mike@very.puzzling.org>
6459
6460	Postfix_master: allow commas in commands
6461	Postfix daemons accept "-o name=value" to override main.cf configuration
6462	parameters, and the value can be a comma-separated value list.
6463
64642011-10-05  Raphaël Pinson  <raphink@gmail.com>
6465
6466	Support \!include in mysql.aug
6467
64682011-10-04  Raphaël Pinson  <raphink@gmail.com>
6469
6470	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.
6471
64722011-10-03  Raphaël Pinson  <raphink@gmail.com>
6473
6474	Spaces are mandatory after # in bbhosts.aug
6475
64762011-10-01  Marc Fournier  <marc.fournier@camptocamp.com>
6477
6478	nrpe: fixed #218 - error caused by unused '=' in lens
6479
64802011-10-01  Dominic Cleal  <dcleal@redhat.com>
6481
6482	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
6483	Fixes ticket #207
6484
64852011-09-12  Raphaël Pinson  <raphink@gmail.com>
6486
6487	Support more ranges in cron.aug
6488
6489	Flags also can be indented in mysql.aug
6490
64912011-09-09  Raphaël Pinson  <raphink@gmail.com>
6492
6493	Allow indented entries in php.aug
6494
6495	{ can be followed by spaces in xinetd.aug
6496
6497	Allow indented entries in mysql.aug
6498
6499	Allow empty lines after includedir
6500
6501	includedir statements are not part of sections in mysql.aug
6502
65032011-09-07  Raphaël Pinson  <raphink@gmail.com>
6504
6505	Hooks without any lines are valid in logrotate.aug
6506
6507	Allow spaces after 'endscript' in logrotate.aug
6508
65092011-09-06  Raphaël Pinson  <raphink@gmail.com>
6510
6511	Various fixes in bbhosts.aug
6512
6513	Fix empty lines support in fai_diskconfig.aug
6514
65152011-09-05  Raphaël Pinson  <raphink@gmail.com>
6516
6517	Add functionalities, refactor volume by type of disk_config entry and add tests to fai_diskconfig.aug
6518
65192011-09-01  David Lutterkort  <lutter@redhat.com>
6520
6521	* src/pathx.c (nodeset_as_regexp): match nothing if nodeset is empty
6522	This makes sure that constructs like 'glob(no_such_node)' or
6523	'regexp(no_such_node)' in path expressions never match anything, which is a
6524	better default than the empty regexp that was produced before.
6525
65262011-09-01  Francis Giraldeau  <francis.giraldeau@gmail.com>
6527
6528	Fix run single command with autosave
6529	This patch fixes autosave in the case only one command is provided as
6530	arguments and adds a test that checks proper handling of this case.
6531
65322011-08-31  Francis Giraldeau  <francis.giraldeau@gmail.com>
6533
6534	Disable autoload transform for the fai_diskconfig
6535	Autoload transform with only standard exclude makes failing the glob_for_lens
6536	xpath test. fai_diskconfig does this. As a temporary fix, we disable transform
6537	from fai_diskconfig.
6538
65392011-08-31  Francis Giraldeau  <francis.giraldeau@gmail.com>
6540
6541	Adding ssh client lens
6542	This lens parses the client side configuration directives of ssh.
6543
6544	Thanks to Jiri Suchomel for this contribution.
6545
65462011-08-30  Raphaël Pinson  <raphink@gmail.com>
6547
6548	Add fai_diskconfig.aug and test
6549
6550	Allow semicolons in shellvars.aug, add non regression test
6551
65522011-08-21  Francis Giraldeau  <francis.giraldeau@gmail.com>
6553
6554	New stunnel lens
6555	Stunnel provides SSL tunnel for daemons. The configuration is based on the ini
6556	file syntax.
6557
6558	Thanks to Oliver Beattie that contributed this lens.
6559
65602011-08-16  David Lutterkort  <lutter@redhat.com>
6561
6562	Fix uses of Spacevars as a utility module
6563	  - add Build.key_ws_value to do the same as Spacevars.entry
6564	  - expand uses of (Spacevars.lns l) into the more explicit (comment|empty|l)*
6565
6566	This fixes test breakage introduced by commit 4840c7ab
6567
65682011-08-11  Francis Giraldeau  <francis.giraldeau@gmail.com>
6569
6570	Proper test for eolwhite space handling
6571	By reformating eol of pupperfileserver test, it's possible to make both git and
6572	unit test working.
6573
65742011-08-11  Francis Giraldeau  <francis.giraldeau@gmail.com>
6575
6576	Remove trailing white spaces from puppet test
6577	Trailing white lines are valid in a puppet file, but the test is rejected when
6578	pushing to master git repository.
6579
6580	remote: lenses/tests/test_puppetfileserver.aug:20: trailing whitespace.
6581	remote: +allow *
6582	remote: error: hook declined to update refs/heads/master
6583	 ! [remote rejected] master -> master (hook declined)
6584
6585	Removing white space for now.
6586
65872011-08-11  Dominic Cleal  <dcleal@redhat.com>
6588
6589	PuppetFileserver: support same-line comments and trailing whitespace (2.7.3rc1)
6590	Fixes ticket #214
6591
65922011-08-10  David Lutterkort  <lutter@redhat.com>
6593
6594	Spacevars: rename toplevel lens to lns
6595	Leave simple_lns as an alias for backwards compatibility
6596
65972011-08-08  David Lutterkort  <lutter@redhat.com>
6598
6599	* examples/fadot.c: accept -h option to print usage
6600
66012011-07-25  David Lutterkort  <lutter@redhat.com>
6602
6603	.gitignore: ignore tests/test-run
6604
6605	Version 0.9.0
6606
6607	Minor fixes to make distcheck pass
6608
66092011-07-22  David Lutterkort  <lutter@redhat.com>
6610
6611	path expressions: parse [expr1 or expr2] correctly
6612	Since commit ea010d85, we would interpret the predicate [e1 or e2] as
6613	matching any node with a child labelled 'e1 or e2'; this patch restores the
6614	semantics that the predicate is true if either e1 or e2 are true. It does
6615	the same for [e1 and e2]
6616
6617	Of course, this is a heinous hack.
6618
66192011-07-22  David Lutterkort  <lutter@redhat.com>
6620
6621	Migrate tests from test-mv.sh into run.tests
6622
6623	aug_srun: new API call
6624
6625	aug_mv: report EMVDESC if move would move a node into its descendant
6626
6627	path expressions: produce straight augeas errors when it makes sense
6628	Some errors, especially matching no nodes or multiple nodes in
6629	pathx_expand_tree can be directly translated to AUG_ENOMATCH and
6630	AUG_EMMATCH, and there's no need to give pathx details about the error
6631
6632	Fix some of the errors reported by coverity
6633	These are some of the errors by running coverity on augeas 0.8.0
6634
66352011-07-18  Mathieu Arnold  <mat@FreeBSD.org>
6636
6637	Aliases: allow spaces and commas in aliases; add docs
6638
66392011-07-11  Dominic Cleal  <dcleal@redhat.com>
6640
6641	Sudoers: support users:groups format in a Runas_Spec line for sudo -g
6642	Fixes ticket #211
6643
66442011-07-11  David Lutterkort  <lutter@redhat.com>
6645
6646	* tests/test-bug-1.sh: fix test
6647	The test caused an augtool failure for all the wrong reasons
6648
66492011-07-06  David Lutterkort  <lutter@redhat.com>
6650
6651	Php: include files from Zend community edition
6652	Fixes ticket #210
6653
66542011-07-06  Craig Dunn  <craig@craigdunn.org>
6655
6656	Properties: new lens for Java properties files
6657	Fixes ticket #194
6658
66592011-07-01  Dominic Cleal  <dcleal@redhat.com>
6660
6661	Grub: allow "bootfs" Solaris/ZFS extension for dataset name
6662	Fixes ticket #201
6663
66642011-07-01  John Morrissey  <jwm@horde.net>
6665
6666	Spacevars: add two more filse to parse by default
6667	Fixes ticket #202
6668
66692011-07-01  David Lutterkort  <lutter@redhat.com>
6670
6671	Interpret escape sequences in function regexp() in path expressions
6672	The wildcard character '.' in regular expressions, just as in the rest of
6673	Augeas, does not match an end of line. It is therefore crucial to be able
6674	to write '(.|\n)' to match any character, including newlines.
6675
6676	  * src/regexp.h: (make_regexp_unescape): new function; (make_regexp_dup)
6677	    removed
6678	  * src/regexp.c: (make_regexp_unescape): new function; (make_regexp_dup)
6679	    removed
6680	  * src/pathx.c: (nodeset_as_regexp, func_regexp_or_glob): use
6681	                  make_regexp_unescape
6682
66832011-06-29  Dominic Cleal  <dcleal@redhat.com>
6684
6685	Sudoers: add CSW paths, /opt/csw/etc and /etc/opt/csw/sudoers
6686
6687	Sudoers: allow same-line comments
6688	Fixes ticket #206
6689
66902011-06-29  Dominic Cleal  <dcleal@redhat.com>
6691
6692	Util: allow comment_or_eol to match empty comments containing only whitespace
6693	Services: add test for line with a whitespace-only comment
6694
6695	Fixes ticket #205
6696
66972011-06-29  David Lutterkort  <lutter@redhat.com>
6698
6699	* tests/test-bug-1.sh: fix broken logrotate file
6700
67012011-06-08  Raphaël Pinson  <raphink@gmail.com>
6702
6703	Implement multiline values in inifile.aug
6704
67052011-05-14  David Lutterkort  <lutter@redhat.com>
6706
6707	* src/augeas.c (static_nodes): add list of pathx functions to /augeas/version
6708
67092011-05-12  David Lutterkort  <lutter@redhat.com>
6710
6711	Grub: allow kernel path to start with a device like (hd0,0)
6712	Fixes ticket #199
6713
6714	* examples/fadot.c: include <config.h>, link against GNULIB
6715
67162011-05-10  David Lutterkort  <lutter@redhat.com>
6717
6718	tests: expand what the valgrind target runs
6719
6720	* src/pathx.c: rename CHECK_ERROR{,_RET0} to RET{,0}_ON_ERROR
6721	This should make it harder to misuse them and cause memory leaks
6722
6723	* src/pathx.c (ns_from_locpath, parse_relative_location_path): free memory on error
6724
6725	* tests/test-xpath.c: allow running individual tests from the command line
6726
6727	* src/pathx.c: fix leaking of function arguments
6728
6729	path expressions: allow concatenating strings and regexps with '+'
6730
6731	path expressions: add operator '!~'
6732
6733	path expressions: add 'glob' function that constructs regexps from globs
6734
6735	regexp: add make_regexp_from_glob to convert globs to regexps
6736
6737	regexp: add convenience function make_regexp_dup
6738
6739	path expressions: allow passing a nodeset to function regexp
6740
6741	* src/pathx.c (check_app): allow overloaded functions
6742	Make it possible to have multiple functions with the same name, but
6743	different signatures. All variants of a function must have the same arity,
6744	they can only differ in their return type and the types of the arguments.
6745
6746	Keep a dummy struct info in struct error for convenience
6747	  * src/errcode.h (struct error): at a info member
6748	  * src/augeas.c (aug_init): set up the struct info in struct error;
6749	    (aug_close): free the struct info in struct error
6750
6751	* src/augtool: store history in ~/.augeas/history
6752
67532011-05-04  David Lutterkort  <lutter@redhat.com>
6754
6755	Xorg: accept InputClass section
6756
67572011-05-03  David Lutterkort  <lutter@redhat.com>
6758
6759	Xorg: autoload from /etc/X11/xorg.conf.d/*.conf
6760	Based on patch by manugupta
6761
6762	Fixes bug #197
6763
67642011-04-29  David Lutterkort  <lutter@redhat.com>
6765
6766	test root: add a few more files
6767
67682011-04-29  David Lutterkort  <lutter@redhat.com>
6769
6770	path expressions: allow whitespace inside names
6771	This makes the path expression '/files/etc/foo bar/baz' legal, i.e. it is
6772	no longer necessary to escape whitespace in path expressions.
6773
6774	Fixes BZ 700608
6775
67762011-04-15  David Lutterkort  <lutter@redhat.com>
6777
6778	Version 0.8.1
6779
6780	Iptables: handle --tcp-flags
6781	Fixes bug #157
6782
67832011-04-14  David Lutterkort  <lutter@redhat.com>
6784
6785	* src/augtool.c: respect autosave flag when executing a single command
6786	Fixes bug #193
6787
67882011-04-13  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
6789
6790	Grub: support the 'device' directive for UEFI boot
6791	Fixes bug #189
6792
67932011-04-13  David Lutterkort  <lutter@redhat.com>
6794
6795	Access: support the format @netgroup@@nisdomain
6796	Fixes bug #190
6797
6798	* lenses/tests/test_fstab.aug: test that we parse SELinux context correctly
6799
68002011-03-25  David Lutterkort  <lutter@redhat.com>
6801
6802	Httpd: remove duplicate inclusion of /etc/httpd/conf/httpd.conf
6803
68042011-03-25  Bill Pemberton  <wfp5p@virginia.edu>
6805
6806	Deal with continuation lines in httpd.aug
6807	Apache allows config lines to be continued with a backslash, but the
6808	lens couldn't deal with it.  Change the value sep_spc to deal with
6809	continuation lines as found in interfaces.aug
6810
6811	Enable the test for continuation lines in test_httpd.aug
6812
68132011-03-25  Bill Pemberton  <wfp5p@virginia.edu>
6814
6815	Add /etc/httpd/conf/httpd.conf to the filter list for httpd.aug
6816
6817	Allow blank and comment lines throughout config file in iptables
6818
6819	Exclude /etc/yum/pluginconf.d/versionlock.list from yum.aug
6820	The versionlock plugin puts a file in /etc/yum/pluginconf.d that is
6821	not a yum config file so yum.aug shouldn't try to parse it.
6822
68232011-03-23  David Lutterkort  <lutter@redhat.com>
6824
6825	Mysql: include /etc/my.cnf used on Fedora/RHEL
6826	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688053
6827
6828	Httpd: include /etc/httpd/conf/httpd.conf used on Fedora/RHEL
6829	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=688149
6830
68312011-03-22  David Lutterkort  <lutter@redhat.com>
6832
6833	* src/lexer.l: fix a few compilation warnings
6834
6835	Eliminate global variable 'comment_depth' in lexer
6836
68372011-03-19  Francis Giraldeau  <francis.giraldeau@gmail.com>
6838
6839	Add support for configfile and background in grub
6840	Test for the new configuration directives are also provided.
6841
6842	Thanks to Onur Küçük for the patch.
6843
68442011-03-18  Raphaël Pinson  <raphink@gmail.com>
6845
6846	#include is also valid in sudoers.aug
6847
6848	Add support for #includedir in sudoers.aug and test (ticket #188)
6849
68502011-03-17  Francis Giraldeau  <francis.giraldeau@gmail.com>
6851
6852	Support sudoers in nsswitch.aug
6853	nsswitch.conf support a configuration item to specify database backend, this
6854	commit adds the support for it.
6855
6856	Fix bug #187
6857
6858	Thanks to thefoxbox for the enhancement
6859
68602011-03-17  Francis Giraldeau  <francis.giraldeau@gmail.com>
6861
6862	Fix unmatch bracket causes segfault in augtool.c
6863	When command is parsed in augtool, function nexttoken verify that path has
6864	valid and matching brackets and return NULL if not. The function cleanpath that
6865	follows was not handling the NULL case, leading to a segmentation fault. By
6866	checking for NULL value, the error is thrown adequately.
6867
6868	Fix bug #186
6869
6870	Thanks to spamaps for the help to resolve this issue.
6871
68722011-03-16  David Lutterkort  <lutter@redhat.com>
6873
6874	* src/lexer.l (augl_init_lexer): really close the input file on error
6875
68762011-03-16  Richard W.M. Jones  <rjones@redhat.com>
6877
6878	Add FreeBSD /etc/rc.conf file to Shellvars lens.
6879
68802011-03-15  David Lutterkort  <lutter@redhat.com>
6881
6882	Replace erroneous assert(0) with proper error report
6883	  * src/put.c (create_union): report an error to the user if none of the
6884	    alternatives match
6885	  * lenses/tests/test_shellvars.aug: add a test to trigger that code path
6886	    in create_union
6887
6888	Fixes bug #183
6889
68902011-03-10  David Lutterkort  <lutter@redhat.com>
6891
6892	* src/augeas.c (aug_init): check return value of argz_* for ENOMEM
6893
68942011-03-10  Matthew Booth  <mbooth@redhat.com>
6895
6896	Fix parsing of fstab entries containing fscontext SELinux option
6897	Systems using SELinux can contain an fstab option like:
6898	fscontext=system_u:object_r:removable_t
6899
6900	The fstab lens is currently too strict, and doesn't allow colons in the value.
6901	This patch relaxes the parsing to make it as lax as possible within the
6902	constraints of the syntax.
6903
69042011-03-08  David Lutterkort  <lutter@redhat.com>
6905
6906	Be more defensive about closing input files for the lexer
6907
69082011-03-04  David Lutterkort  <lutter@redhat.com>
6909
6910	Explain using ./src/try
6911	  * HACKING: document the various modes of using ./src/try
6912	  * src/try: read commands from build/augcmds.txt rather than /tmp; use a
6913	    more sensible default if augcmds.txt does not exist
6914
69152011-03-03  Matthew Booth  <mbooth@redhat.com>
6916
6917	Use getopt-gnu from gnulib for AIX support
6918
6919	Update to gnulib commit c2090a8
6920	Required for updated getopt-gnu license.
6921
69222011-03-03  Raphaël Pinson  <raphink@gmail.com>
6923
6924	Remove trailing spaces in lenses/tests/test_nagiosobjects.aug
6925
6926	Add nagiosobjects.aug based on Sebastien Aperghis' work.
6927
6928	Remove trailing spaces in nagioscfg.aug
6929
6930	Improve nagioscfg.aug as per Sebastien Aperghis' work.
6931
69322011-03-02  Raphaël Pinson  <raphink@gmail.com>
6933
6934	Fix single quotes support in httpd.aug.
6935
6936	Support single quotes in httpd.aug. Add unit test for it in test_httpd.aug.
6937
69382011-03-02  David Lutterkort  <lutter@redhat.com>
6939
6940	* tests/fatest.c (testManualAmbig): don't use '$' in variable names
6941	Breaks on, at least, AIX
6942
69432011-03-02  Raphaël Pinson  <raphink@gmail.com>
6944
6945	Add Sep.equal, used in nrpe.aug
6946
6947	Changes in nrpe.aug Remove wrong ^ in comment regex Use Util.comment_generic Use generic modules Improve NaturalDocs documentation
6948
69492011-02-23  David Lutterkort  <lutter@redhat.com>
6950
6951	Version 0.8.0
6952
69532011-02-23  David Lutterkort  <lutter@redhat.com>
6954
6955	Fix compile errors found by gcc 4.6.0
6956	There were several places that caused the new 'variable assigned but not
6957	used' warning.
6958
6959	The struct lens also contained the member jmt twice; it is now only
6960	available for L_REC lenses.
6961
69622011-02-23  David Lutterkort  <lutter@redhat.com>
6963
6964	* src/info.h: include stdlib so we can use uint
6965
6966	* tests/Makefile.am: distribute the test data in test-augtool/
6967
69682011-02-23  Dominic Cleal  <dcleal@redhat.com>
6969
6970	Split Solaris multiboot argument for the kernel path into @path node (ticket #158)
6971
69722011-02-22  Francis Giraldeau  <francis.giraldeau@gmail.com>
6973
6974	Add aug_span API function V2
6975	aug_span API function provides information about the node of the specified
6976	path. It sets the absolute path of the file name and spans of label, value
6977	and span inside the node. The span includes all matching chars of the actual
6978	lens and it's descendant. Hence, the top level node will span the entire file.
6979	It returns 0 in case of success and -1 if the node is not associated to a file
6980	or if the path is invalid.  The main use case is to make possible to display
6981	the related file with the node elements hightlighted in a UI.
6982
6983	The API option AUG_NO_NODE_SPAN provided to aug_init disable the allocation
6984	structures to keep node spans. It saves about 5% of memory for a typical
6985	tree.
6986
6987	  * src/augeas.c : add aug_span implementation and option handling to aug_in
6988	    according to the option /augeas/span in the tree
6989	  * src/augeas.h : add declaration of aug_span and constants for option
6990	  * src/augeas_sym.version : make the new function visible in libaugeas
6991	  * src/augtool.c : add the "nodepos" command to augtool
6992	  * src/get.c : gather filename, label, value and span spans if any
6993	  * src/info.c : create and release functions for struct node_span
6994	  * src/info.h : add definition of struct node_info
6995	  * src/internal.h : add node_info to struct tree
6996	  * src/transform.c : duplicate filename string
6997	  * tests/test-load.c : 3 basic unit tests for general correct behavior
6998
69992011-02-22  Raphaël Pinson  <raphink@gmail.com>
7000
7001	Add short options for --nostdinc, --noload and --noautoload Update manpage and pod accordingly
7002
7003	Distribute bcprules.sty and xpath.txt
7004
70052011-02-19  Raphaël Pinson  <raphink@gmail.com>
7006
7007	Add indented_title_label in inifile.aug Use indented_title_label in mysql.aug Adjust test for mysql.aug accordingly
7008
70092011-02-18  Raphaël Pinson  <raphink@gmail.com>
7010
7011	Allow indentation for "iface" entries in interfaces.aug (Fix ticket #182) Add unit test for "iface" indentation
7012
70132011-02-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
7014
7015	Minor code format cleanup
7016	  * Cut long lines to 80 chars
7017	  * Indentation fix
7018
7019	Fix memory leak with recursive square lens
7020
70212011-02-16  Raphaël Pinson  <raphink@gmail.com>
7022
7023	Remove trailing whitespaces in util.aug
7024
7025	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
7026
70272011-02-15  Francis Giraldeau  <francis.giraldeau@gmail.com>
7028
7029	Fix segfault in get.c with L_MAYBE lens (bug#180)
7030	When a L_MAYBE lens was the last child of a L_CONCAT inside a L_SUBTREE, then
7031	the match in visit_exit top_frame(rec_state)->lens == lens->child was true,
7032	causing combine of a frame when it shouldn't. This test is true because there
7033	is no other lens following in the concat in this special case, hence the top
7034	frame matched the child of the L_MAYBE.
7035
7036	To avoid this special case, we propose to push L_MAYBE lens on the frames
7037	stack. If L_MAYBE is encountered in visit_exit, we pop at least one frame and
7038	two if the child match. This way, the stack is always valid.
7039
7040	Closes trac ticket #180.
7041
70422011-02-15  Raphaël Pinson  <raphink@gmail.com>
7043
7044	Improve vim syntax file
7045
70462011-02-14  David Lutterkort  <lutter@redhat.com>
7047
7048	man pages: update man page for augtool
7049
70502011-02-14  Raphaël Pinson  <raphink@gmail.com>
7051
7052	augtool: add --interactive option
7053	This option runs an interactive shell after evaluating STDIN or an explicit
7054	inputfile
7055
70562011-02-14  David Lutterkort  <lutter@redhat.com>
7057
7058	Mysql: change default comment delimiter from ';' to '#'
7059	Fixes bug #181 reported by devzero
7060
70612011-02-06  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
7062
7063	Add Dhcpd lens
7064	  * Support unquoting for allow/deny statements
7065	  * Append new line to block statement braces by default
7066	  * Add missing string and integer statements according to man dhcpd.conf
7067	  * Remove trailing white space from the lens file
7068
7069	Replace seq by label in option list
7070
7071	  The counter/seq doesn't garantee that node label "1" will get at the first
7072	  position. Positional arguments are ordered, hence the sequence may be
7073	  misleading. This is why a fixed label for sequence nodes are better.
7074
70752011-01-28  Raphaël Pinson  <raphink@gmail.com>
7076
7077	Support directives without arg in httpd.aug
7078	* Use sep.aug in httpd.aug Modify Sep.opt_space to make it fit the
7079	  definition in httpd.aug (it's only used here)
7080	* Allow directives without arguments in httpd.aug
7081	* Adjust test_httpd.aug to test argument-less directives
7082
70832011-01-25  Francis Giraldeau  <francis.giraldeau@gmail.com>
7084
7085	Fix httpd.aug doc, filter and add to checks
7086	  * Added other contributors to authors
7087	  * Changed the licence to LGPLv2+
7088	  * Fix copy/paste error about config files
7089	  * Added filters for Fedora and RHEL
7090
70912011-01-25  Francis Giraldeau  <francis.giraldeau@gmail.com>
7092
7093	Add Httpd lens
7094	The Httpd lens parses Apache Web server configuration according to the manual.
7095
7096	  * Generic sections with square lens
7097	  * Generic directives
7098	  * Arguments of sections and directives are handled as list
7099
7100	The lens doesn't support automatic quoting of string values, because arguments
7101	are separated by spaces and it raises ambiguity when using unquoting. The lens
7102	doesn't support either long lines splitted by backslash.
7103
71042011-01-25  David Lutterkort  <lutter@redhat.com>
7105
7106	* src/pathx.c (store_error): make sure pos_str is always NUL terminated
7107	Fixes bug #178
7108
71092011-01-19  Fred  <frederic.lespez@free.fr>
7110
7111	PuppetFileserver: new lens for Puppet's fileserver.conf
7112
71132011-01-19  David Lutterkort  <lutter@redhat.com>
7114
7115	* man/augtool.pod: fix typos
7116	Fixes https://bugzilla.redhat.com/show_bug.cgi?id=628502
7117
71182011-01-14  David Lutterkort  <lutter@redhat.com>
7119
7120	Allow compiling with NDEBUG defined
7121	  * src/errcode.h (ensure0): do not mention 'error' label when NDEBUG is
7122	    defined
7123	  * src/pathx.c (coerce_to_bool, eval_pred): make sure we return something
7124	    when assert(0) is compiled away
7125
71262011-01-13  Francis Giraldeau  <francis.giraldeau@gmail.com>
7127
7128	Fix a small bashism from test script
7129
71302011-01-13  David Lutterkort  <lutter@redhat.com>
7131
7132	Xorg: "position" in "screen" section is optional; allow "Extensions" section
7133	Patch by omzzk
7134
7135	Fixes bug #175
7136
71372011-01-11  David Lutterkort  <lutter@redhat.com>
7138
7139	Replace augtest by test-augtool.sh
7140	This removes the silly dependency on Ruby, since augtest was the only
7141	Ruby script in the whole source tree.
7142
7143	The test files for test-augtool.sh live in tests/test-augtool, and are
7144	functionally identical to the Ruby test files tests/*.rb. The only
7145	exception is that test-root.rb has been removed - it tested something that
7146	is better tested in test-xpath.c
7147
7148	The new test-augtool.sh test is also a little more efficient in that it
7149	only copies the file needed by a test into the root, and only sets the lens
7150	for that file up for loading. This reduces the runtime of the tests from ~
7151	30s on my machine to under 2s.
7152
71532011-01-11  David Lutterkort  <lutter@redhat.com>
7154
7155	Test that getting and setting the root node works
7156	This tests the same thing that test-get.sh tests, but in a much more
7157	reliable fashion
7158
7159	* src/pathx.c (store_error): never append to an uninitialized string
7160
7161	* src/augtool.c: be a little more quiet
7162	Some of the commands used to print unconditionally; we now only print if we
7163	should be echoing (i.e., if --echo is given on the command line or if stdin
7164	is a tty)
7165
71662011-01-11  Fred  <frederic.lespez@free.fr>
7167
7168	Crypttab: new lens for /etc/crypttab
7169
71702011-01-11  Raphaël Pinson  <raphink@gmail.com>
7171
7172	In autosave mode, print "save" when in echo or interactive mode. Remove comma at the end of enum list.
7173
71742011-01-10  Raphaël Pinson  <raphink@gmail.com>
7175
7176	Refactor augtool.c to use only readline
7177
71782011-01-10  Raphaël Pinson  <raphink@gmail.com>
7179
7180	augtool: add --autosave option
7181	Additional changes to augtool:
7182	  * Define AUGTOOL_PROMPT as a constant
7183	  * Do not print (null) lines when using --echo
7184	  * Add test for --autosave in test-save-mode.sh
7185
7186	Fixes ticket #172
7187
71882011-01-07  David Lutterkort  <lutter@redhat.com>
7189
7190	bootstrap: add sys_wait module
7191	Fixes bug #164
7192
71932011-01-07  Dominic Cleal  <dcleal@redhat.com>
7194
7195	Add support for Solaris multiboot kernels with slashes in the first kernel argument (Fix ticket #158)
7196
7197	Allow kernel$ and module$ extensions to GRUB for Solaris (Fix ticket #158)
7198
71992011-01-07  David Lutterkort  <lutter@redhat.com>
7200
7201	Shellvars: read various snmpd config files
7202	Patch by erinn
7203
7204	Fixes ticket #170
7205
72062011-01-07  Dominic Cleal  <dcleal@redhat.com>
7207
7208	Solaris_system: new lens for /etc/system (Solaris)
7209	File is used to configure the kernel, module loading and parameters. The
7210	system(4) man page gives a good overview of the commands and a sample file:
7211	http://docs.sun.com/app/docs/doc/816-5174/system-4?l=en&n=1&a=view
7212
7213	It supports moddir, rootdev, rootfs, exclude, include, forceload and set.
7214	The set tree is broken down quite a lot as the operator can vary (equals,
7215	bitwise AND and OR).
7216
72172011-01-07  David Lutterkort  <lutter@redhat.com>
7218
7219	Resolv: allow comments starting with semicolon
7220	Patch by erinn
7221
7222	Fixes bug #173
7223
72242011-01-03  Raphaël Pinson  <raphink@gmail.com>
7225
7226	Add automount, netmasks and sendmailvars keywords for databases in nsswitch.aug
7227
7228	Add bootparams as database keyword (Fix ticket #171) Update test file accordingly
7229
72302010-12-29  Raphaël Pinson  <raphink@gmail.com>
7231
7232	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
7233
72342010-12-28  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
7235
7236	Add xml lens
7237	The XML lens parse arbitrary XML documents. Most, but not all features of XML
7238	standard are implemented, partially because the nature of augeas. Tests comes
7239	from OASIS test suite.
7240
7241	Supported:
7242	  * Document type declaration: elements, attlist, entity
7243	  * XML Prolog
7244	  * XML comments
7245	  * XML processing instructions
7246	  * Neested elements, including empty elements
7247	  * Element attributes
7248	  * Mixed content, text and elements
7249	  * CDATA sections
7250
7251	Not supported:
7252	  * Single quotes attributes: double quotes is mandatory
7253	  * External entity reference, because augeas can't load a related file within a lens
7254	  * Document validation: augeas don't enforce DTD
7255
7256	This lens doesn't respect the PutGet law, becuse of an ambiguity in union.put
7257	with text nodes. If a text node is created as a sibling of another text node, a
7258	put and a get will merge those two nodes. In practice, no error occur and this
7259	is a desirable behavior.
7260
72612010-12-22  Raphaël Pinson  <raphink@gmail.com>
7262
7263	Fix ticket #169 and add unit tests by Sergio Ballestrero.
7264
72652010-12-20  David Lutterkort  <lutter@redhat.com>
7266
7267	* src/pathx.c (func_regexp): do not SEGV on error; provide better error msg
7268	Fixes bug 168
7269
7270	  * when the passed in regexp had a syntax error, we would leave the
7271	    interpreter variable at VIND uninitialised, but tagged as a regexp. As
7272	    a result, we'd SEGV when that slot in the variable table is
7273	    freed. Properly initialize slots in the variable table to NULL, and
7274	    store the regexp as soon as it has been built (before compilation)
7275	    there to address that.
7276	  * when a regexp had a syntax error, we would just drop the details of the
7277	    syntax error on the floor. We now include that in the error details so
7278	    that the user has some hint to how the regexp is foobared
7279
7280	# Please enter the commit message for your changes. Lines starting
7281	# with '#' will be ignored, and an empty message aborts the commit.
7282	# On branch master
7283	# Changes to be committed:
7284	#   (use "git reset HEAD <file>..." to unstage)
7285	#
7286	#	modified:   src/pathx.c
7287	#
7288	# Untracked files:
7289	#   (use "git add <file>..." to include in what will be committed)
7290	#
7291	#	doc/cfg.txt
7292	#	doc/naturaldocs/conf/lenses/Menu_Backup.txt
7293	#	doc/naturaldocs/conf/lenses/Menu_Backup_2.txt
7294	#	p/
7295	#	site.orig/
7296	#	tests/root-small/
7297	#	tests/root/etc/network/
7298	#	tests/root/etc/samba/
7299	#	tests/root/etc/sysconfig/system-config-firewall
7300
73012010-12-10  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
7302
7303	Enable square lens in dump_lens
7304
73052010-12-10  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
7306
7307	Add square lens to language
7308	The new primitive square lens allows to handle XML like open and close tags.
7309	It takes 2 arguments, a regexp for the tag and a lens for the content. The
7310	square lens verify that open and close tags are matched in the get direction,
7311	and put direction handles the close tag by copying the key.
7312
7313	  * src/builtin.c: add "square" keyword to language
7314	  * src/lens.c: lns_make_square to compile the lens from actual simpler
7315	    lenses
7316	  * src/lens.h: append L_SQUARE to lens_tag enum to identify the square lens
7317	    type object
7318	  * src/jmt.c: handle square lens in parser
7319	  * src/get.c: add char* square to state struct to hold the last L_DEL in
7320	    square to perform syntax check, and add all get handling functions for
7321	    L_SQUARE
7322	  * src/put.c: modify create_del to render current key when default string is
7323	    NULL and add all put handling functions
7324	  * tests/modules/pass_square.aug: unit tests to validate the square lens,
7325	    regular and recursives
7326
73272010-12-09  Francis Giraldeau  <francis.giraldeau@usherbrooke.ca>
7328
7329	Add test for lens-access.sh in Makefile
7330
73312010-12-02  Raphaël Pinson  <raphink@gmail.com>
7332
7333	Relicense pg_hba.aug as LGPLv2+ as the rest of Augeas.
7334
73352010-12-02  Lorenzo Dalrio  <lorenzo.dalrio@gmail.com>
7336
7337	Add access.aug and associated test file
7338
73392010-12-02  Raphaël Pinson  <raphink@gmail.com>
7340
7341	Fix GPL into LGPLv2+ for a series of lenses.
7342
73432010-11-24  Francis Giraldeau  <francis.giraldeau@gmail.com>
7344
7345	Ignore eclipse project files
7346
73472010-11-22  Raphael Pinson  <raphink@gmail.com>
7348
7349	Add support for "map" entries in grub.aug and adapt test accordingly (Fix ticket #148)
7350
73512010-11-19  David Lutterkort  <lutter@redhat.com>
7352
7353	Version 0.7.4
7354
73552010-11-19  Raphaël Pinson  <raphink@gmail.com>
7356
7357	* lenses/util.aug: improve management of eol comments
7358	  - add comment_generic
7359	  - use comment_generic in comment
7360	  - add comment_eol
7361	  - add comment_or_eol
7362
7363	Use comment_eol and comment_or_eol in some lenses to fix default eol
7364	comment entries.  Adapt tests for shellvars and services to take this new
7365	behaviour in consideration.
7366
73672010-11-19  Raphaël Pinson  <raphink@gmail.com>
7368
7369	Add "indomU" Debian setting to grub.aug (Fix ticket #162)
7370
7371	Allow "\" style newlines in syslog.aug and add corresponding test (Fix ticket #161).
7372
73732010-11-18  Raphael Pinson  <raphink@gmail.com>
7374
7375	Make filter a View in sudoers.aug to make it appear properly in doc
7376
7377	Improve doc on services.aug
7378
7379	Add some doc to pg_hba.aug
7380
7381	Add a bit of doc to pbuilder.aug
7382
7383	Add all missing lenses to Menu.txt
7384
73852010-11-18  Mathieu Arnold  <mat@FreeBSD.org>
7386
7387	Add syslog.aug and associated test file
7388
73892010-11-18  Raphaël Pinson  <raphink@gmail.com>
7390
7391	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
7392	Fix ticket #46
7393
73942010-11-18  Mathieu Arnold  <mat@FreeBSD.org>
7395
7396	On FreeBSD (at least) the sudoers file is in /usr/local/etc/.
7397
73982010-11-18  Francis Giraldeau  <francis.giraldeau@gmail.com>
7399
7400	Parse ulimit builtin in shellvars.aug (fix ticket #73).
7401
7402	Accept double quotes in arguments in postfix_master.aug, fix bug# 69
7403
74042010-11-18  David Lutterkort  <lutter@redhat.com>
7405
7406	* tests/Makefile.am (lens_tests): add tests for new lenses
7407
74082010-11-18  David Lutterkort  <lutter@redhat.com>
7409
7410	Krb5 (realm_re, app_re): allow digits in realm names
7411	Still makes the incorrect assumption that realm names start with an upper
7412	case letter, and app names with a lower case one, but it's an improvement
7413	over the current restrictions.
7414
7415	Fixes bug https://fedorahosted.org/augeas/ticket/139
7416
74172010-11-18  Matthew Booth  <mbooth@redhat.com>
7418
7419	Fix crasher in ast.c:dict_pos on i686 with gcc 4.5 and -O2
7420	This patch works around what appears to be an optimization bug in gcc 4.5. The
7421	symptom of the bug is that dict_pos, called from dict_lookup, receives an
7422	invalid value when accessing dict->used. The following ticket describes the bug,
7423	and includes a simple test case:
7424
7425	https://fedorahosted.org/augeas/ticket/149
7426
7427	Adding a printf to dict_lookup immediately before the dict_pos call reveals that
7428	dict->used has a value of 30 in the crashing case on my F14 system. A printf
7429	added to the first line of dict_pos shows dict->used has an apparent value of
7430	16777246. This causes an invalid array lookup shortly afterwards, which causes
7431	the crash. 16777246, interestingly, is 2^24 + 30, where 24 is the size of the
7432	dict->used bitfield. This should obviously not be possible, suggesting either a
7433	compiler bug or undefined behaviour due in incorrect use of the language. Having
7434	re-read the relevant section of K&R, I can't see anything about this use of
7435	bitfields which might be a problem, except that: 'Fields may be declared only as
7436	ints; for portability, specify signed or unsigned explicitly.' uint32_t resolves
7437	to 'unsigned int' on i686, and in any case, replacing it with 'unsigned int'
7438	does not solve the problem. As it stands, I believe this is a bug in the
7439	optimizer.
7440
7441	The above ticket contains an alternate patch which copies dict in dict_pos,
7442	which also prevents the crash. However, adding anything to dict_pos which
7443	prevents the compiler from optimising dict away achieves the same result. For
7444	example:
7445
7446	printf("%p", dict);
7447
7448	This patch instead removes the bitfields in struct dict. While this is a
7449	workaround, these bitfields save at most 1 word of memory per struct, but at the
7450	cost of mis-aligned access. The patch does not increase the size of
7451	dict_max_size to UINT32_MAX, as the lower maximum serves as a better guard
7452	against runaway memory allocation.
7453
74542010-11-17  Raphael Pinson  <raphink@gmail.com>
7455
7456	Allow underscore in chain_name for iptables.aug and adjust test accordingly.
7457
74582010-11-17  Erinn Looney-Triggs  <erinn.looneytriggs@gmail.com>
7459
7460	Add login_defs.aug and associated test file.
7461
74622010-11-14  Marc Fournier  <marc.fournier@camptocamp.com>
7463
7464	pg_hba: added debian systems path to filter - fixes #154.
7465
7466	util.aug: exclude unneeded files on debian systems (fix ticket #153)
7467
74682010-11-05  Raphael Pinson  <raphink@gmail.com>
7469
7470	Map comments and use Util.comment and Util.empty in order to full fix ticket #151. Adapt test accordingly.
7471
7472	Allow indented lines in aptsources.aug (Fix ticket #151) and add associated test
7473
7474	Allow "=" as a separator for title in grub.aug (Fix ticket #150) and adapt test accordingly.
7475
74762010-11-04  Raphael Pinson  <raphink@gmail.com>
7477
7478	Fix example in lens
7479
74802010-11-02  Raphael Pinson  <raphink@gmail.com>
7481
7482	Add a few lenses to Menu.txt
7483
7484	Add shells.aug and associated test
7485
74862010-11-01  Raphael Pinson  <raphink@gmail.com>
7487
7488	Add mke2fs.aug and associated test
7489
74902010-10-31  Raphael Pinson  <raphink@gmail.com>
7491
7492	Add support for rpc services in inetd.aug, rework lens to allow it and add tests accordingly.
7493
7494	Parse option values in fstab.aug, adapt test file accordingly.
7495
7496	Map service names in node values instead of node names to prevent variable node names.
7497
74982010-10-29  Raphael Pinson  <raphink@gmail.com>
7499
7500	Add /etc/mtab to known files
7501
75022010-10-28  Raphael Pinson  <raphink@gmail.com>
7503
7504	Fix paramater into parameter in ND comment
7505
75062010-10-27  Raphael Pinson  <raphink@gmail.com>
7507
7508	Use generic modules in bbhosts.aug
7509
75102010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>
7511
7512	Fixes bug #144: wrong behavior of iter concat
7513	This patch fix the list_tail_cons macro to fastforward the tail list when
7514	the first item is added to the list, otherwise if the first item added when
7515	the list is NULL has two item, the tail points the the first item.
7516
75172010-10-26  Raphael Pinson  <raphink@gmail.com>
7518
7519	Fix filter to use proper file
7520
7521	Remove trailing whitespace
7522
7523	Add nsswitch.aug and associated test
7524
75252010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>
7526
7527	Add debugging information about lens hierarchy
7528	When compiled with --enable-debug, will compile a function to output the lens
7529	hierarchy in dot files. Enable this specific debug info with
7530	AUGEAS_DEBUG=lenses
7531
75322010-10-26  David Lutterkort  <lutter@redhat.com>
7533
7534	Sudoers: allow 'visiblepw' parameter flag
7535	Fix provided by christj. Fixes bug #143
7536
75372010-10-26  Francis Giraldeau  <francis.giraldeau@gmail.com>
7538
7539	Add clearm command to augtool
7540	The clearm command is the same as setm, but sets the node value to
7541	NULL in place of a string, suitable in some use case.
7542
7543	Fix ticket #146
7544
75452010-10-26  Raphael Pinson  <raphink@gmail.com>
7546
7547	/etc/sudoers.d is now supported (at least in Debian and Ubuntu)
7548
7549	Add resolv.aug and test
7550
75512010-10-14  Aurelien Bompard  <aurelien@bompard.org>
7552
7553	Pg_hba: new lens and test
7554	Fixes bug #140
7555
75562010-09-30  Raphaël Pinson  <raphink@gmail.com>
7557
7558	Add a few lenses to Menu.txt
7559
7560	Use Rx.ipv4 and Rx.integer in openvpn.aug
7561
7562	Use generic modules Rx, Sep and Build in keepalived.aug
7563
7564	Add email_addr to rx.aug
7565
7566	Improve build.aug
7567
7568	Improve documentation of build.aug
7569
75702010-09-29  Raphaël Pinson  <raphink@gmail.com>
7571
7572	Move Build, Rx and Sep into Generic Modules, add Keepalived
7573
75742010-09-24  Raphaël Pinson  <raphink@gmail.com>
7575
7576	Improve keepalived.aug
7577
75782010-09-23  Raphaël Pinson  <raphink@gmail.com>
7579
7580	Add a lens for keepalived.conf and associated test
7581
75822010-09-23  David Lutterkort  <lutter@redhat.com>
7583
7584	Preserve parse errors under /augeas//error
7585	With the changes in commit 5ee81630, a subtree in /augeas/files that is
7586	dirty after trying to load all files indicates a file that was loaded
7587	before, but is not loaded anymore (e.g., because the set of lenses changed
7588	since the last time we loaded) In that situation, both the subtree in
7589	/augeas/files as well as the corresponding subtree in /files is deleted.
7590
7591	The code in store_error, which is called by load_file when a parse error
7592	happens, would leave that subtree in /augeas/files dirty. This commit fixes
7593	that by making sure we mark the error entries as clean. It also revamps
7594	store_error to use the lighter-weight tree_xxx functions instead of the
7595	aug_xxx functions.
7596
7597	Fixes bug #138
7598
75992010-09-21  Raphaël Pinson  <raphink@gmail.com>
7600
7601	* src/augtool.c: add -f|--file option to get commands from an input file
7602
76032010-09-21  Marc Fournier  <marc.fournier@camptocamp.com>
7604
7605	Nrpe: new lens and tests.
7606
7607	Odbc: new lens and tests.
7608
76092010-09-15  David Lutterkort  <lutter@redhat.com>
7610
7611	When setting a tree node to the value it already has, do not modify the tree
7612
76132010-09-09  David Lutterkort  <lutter@redhat.com>
7614
7615	* src/try: add an optioj to strace augtool
7616
76172010-09-09  David Lutterkort  <lutter@redhat.com>
7618
7619	Properly record the new mtime of a saved file in the tree
7620	transform_save used to pass an incorrect file name to add_file_info (the
7621	name was missing the root prefix), leading to an mitme of 0 for all saved
7622	files. That in turn causes freshly saved files to be unnecessarily reloaded
7623	on the next aug_load.
7624
7625	  * src/transform.c (mtime_as_string): tolerate a NULL filename, and return
7626	    an mtime of 0; (transform_save): pass the full file name, including the
7627	    root to add_file_info
7628	  * tests/test-load.c (testReloadDeletedMeta): the test is now
7629	    time-sensitive; to work around that, set the mtime of the changed tree
7630	    to the original mtime of the file
7631	  * tests/test-save.c (testMtime): verify that we record the actual mtime
7632	    and not just 0 in the tree after a save.
7633
7634	Thanks to Laine Stump for spotting this
7635
76362010-08-27  Francis Giraldeau  <francis.giraldeau@gmail.com>
7637
7638	Fix yum tests
7639	  * Modify separator for list values to accept simple spaces
7640	  * Add all alternatives for baseurl and gpgkey
7641	  * Add tests to verify the correct behavior
7642
76432010-08-27  David Lutterkort  <lutter@redhat.com>
7644
7645	* bootstrap: add locale module from gnulib
7646	Fixes bug #137
7647
76482010-08-16  David Lutterkort  <lutter@redhat.com>
7649
7650	Yum: accept continuation lines for gpgkey
7651	Fixes bug #132
7652
76532010-08-16  Francis Giraldeau  <francis.giraldeau@gmail.com>
7654
7655	* src/get.c (visit_exit): fix segfault from empty stack for L_MAYBE
7656	Fixes bug #136
7657
76582010-08-06  David Lutterkort  <lutter@redhat.com>
7659
7660	Version 0.7.3
7661
76622010-08-06  David Lutterkort  <lutter@redhat.com>
7663
7664	Fix behavior of aug_defnode
7665	  (1) Make sure that the definition of the variable is recorded under
7666	      /augeas/variables
7667	  (2) Do not report an error if the expression evaluates to a non-empty
7668	      nodeset
7669
7670	  * src/augeas.c (aug_defvar): split creating metadata under
7671	    /augeas/variables into record_var_meta; (aug_defnode): do not return an
7672	    error when expr evaluates to nonempty node set; record variable
7673	    definition
7674	  * tests/test-api.c: add tests for defvar and defnode behavior
7675
76762010-08-05  David Lutterkort  <lutter@redhat.com>
7677
7678	Use pathx_aug_parse rather than pathx_parse in various places
7679	Since pathx_aug_parse makes sure the symbol table stays updated, use
7680	pathx_aug_parse whereever that makes sense.
7681
7682	Rename parse_user_pathx to pathx_aug_parse
7683	  * internal.h (pathx_aug_parse): new protoype
7684	  * augeas.c (pathx_aug_parse): renamed, add optional arg for a different
7685	    root
7686
76872010-08-05  David Lutterkort  <lutter@redhat.com>
7688
7689	Fix BZ 613967 - memory corruption on reloading externally modified file
7690	The problem was that when we replaced the old tree for a file with the new
7691	one we just read from the file, the replace operation did not update
7692	nodesets in variables, since we did not pass the global symtab into
7693	tree_replace.
7694
7695	  * src/internal.h (tree_replace): pass in struct augeas, so that we have
7696	    access to the global symtab
7697	  * src/augeas.c (tree_replace): make sure we create the pathx with the
7698	    global symtab
7699	  * src/transform.c (load_file): adapt to new prototype for tree_replace
7700	  * tests/test-load.c (testReloadExternalMod): test that we do not segfault
7701	    when a file was modified externally
7702
77032010-08-05  David Lutterkort  <lutter@redhat.com>
7704
7705	Test root: mimick the setup of grub config files on Fedora more closely
7706	  * root/etc/grub.conf: symlink to root/boot/grub/grub.conf
7707	  * root/boot/grub/grub.conf: new file with contents of /etc/grub.conf
7708	  * root/boot/grub/menu.lst: symlink to grub.conf
7709
77102010-08-03  Raphael Pinson  <raphink@gmail.com>
7711
7712	Sudoers: allow escaped spaces in user/group names
7713	Fixes bug #124
7714
77152010-07-26  David Lutterkort  <lutter@redhat.com>
7716
7717	Limits: also look for files in /etc/security/limits.d
7718	Suggested by David Timms
7719
77202010-07-23  Tim Stoop  <tim.stoop@gmail.com>
7721
7722	Mysql: lens for MySQL's *.cnf files
7723
77242010-07-23  David Lutterkort  <lutter@redhat.com>
7725
7726	Sysconfig: new lens for a subdialect of shell
7727	Using shell files with simple variable assignments is a very popular config
7728	file format. The Shellvars lens doesn't serve those files perfectly well,
7729	since it tries to preserve details important for general shell scripts that
7730	are ignored by sysconfig files.
7731
7732	This lens is a variation on Shellvars that changes a few important aspects
7733	of it:
7734
7735	  * Strip quotes from values when reading a file, and restore quotes as
7736	    needed upon writing
7737	  * Pretend there's no difference between single and double quotes (this
7738	    assumption makes it possible to add quotes as needed solely based on
7739	    syntax)
7740	  * Do not support shell arrays or backticks; support for these could be
7741	    restored by somebody sufficiently motivated, though neither of them
7742	    should be used in a sysconfig file
7743
7744	The lens doesn't autoload any files yet, though we should consider moving
7745	most of the files that Shellvars loads over to this lens.
7746
77472010-07-23  David Lutterkort  <lutter@redhat.com>
7748
7749	* src/lens.c (lns_check_rec): allow 'let rec' with regular RHS
7750	If the user writes 'let rec l = rhs' and the RHS does not mention l, just
7751	mark the lens as regular and carry on.
7752
77532010-07-21  David Lutterkort  <lutter@redhat.com>
7754
7755	* src/syntax.c (load_module_file): make sure we report an error
7756
77572010-07-21  David Lutterkort  <lutter@redhat.com>
7758
7759	Fix segfault in glue routines; add test for the fix
7760	The tree_*_glue functions did not set the error struct when parsing a path;
7761	this caused a segfault when trying to insert before/after a non-existant
7762	node, since tree_insert tried to report the error into a struct error that
7763	was NULL.
7764
7765	Fixes bug #129
7766
77672010-07-21  David Lutterkort  <lutter@redhat.com>
7768
7769	* src/syntax.c (compile_test): reset errors at the end of the test
7770	Otherwise, we can't have tests succeed after tests failed intentionally (by
7771	making their result '= *')
7772
7773	* src/errcode.h (reset_error): new function
7774	  * src/augeas.c (api_entry): use reset_error
7775	  * src/errcode.c (reset_error): new function, with code from api_entry
7776	  * src/errcode.h (reset_error): add prototype
7777
77782010-07-20  Francis Giraldeau  <francis.giraldeau@gmail.com>
7779
7780	* src/put.c (split_concat): fix memory leak when split doesn't match
7781
77822010-07-19  David Lutterkort  <lutter@redhat.com>
7783
7784	Use gnulib from a submodule
7785	This allows us to record the exact changeset from gnulib that everybody
7786	should be using.
7787
77882010-07-19  Frederik Wagner  <fnerdwq@googlemail.com>
7789
7790	Added /etc/sysconfig/suseconfig to shellvars lens.
7791
77922010-07-08  Francis Giraldeau  <francis.giraldeau@gmail.com>
7793
7794	Adding is_scan in the condition to accept an item
7795
77962010-06-30  Matthew Booth  <mbooth@redhat.com>
7797
7798	Device_map: new lens for grub's device.map
7799
78002010-06-29  David Lutterkort  <lutter@redhat.com>
7801
7802	Avoid unnecessary file parsing when reloading the tree
7803	We used to reparse every file we knew about upon aug_load. Now, we only
7804	reparse files if the file has changed on disk.
7805
7806	We test a few scenarios to make sure aug_load retains its behavior of
7807	obliterating the tree and filling it with the latest from disk. This
7808	includes throwing away unsaved changes or trees that have been deleted.
7809
78102010-06-29  David Lutterkort  <lutter@redhat.com>
7811
7812	Add utility tree_store_value to avoid unnecessary strdup's
7813	  * src/internal.h (tree_store_value): add prototype
7814	  * src/augeas.c (tree_store_value): new function; (tree_set_value): use
7815	    tree_store_value
7816
7817	Make tree_clean available outside of augeas.c
7818	  * src/augeas.c (tree_clean): remove 'static'
7819	  * src/internal.h (tree_clean): add prototype
7820
78212010-06-29  David Lutterkort  <lutter@redhat.com>
7822
7823	Add xstrtoint64 to internal.[ch]
7824	The implementation is directly from libvirt
7825
7826	  * src/internal.h (xstrtoint64): add prototype
7827	  * src/internal.c (xstrtoint64): add impl
7828
78292010-06-29  David Lutterkort  <lutter@redhat.com>
7830
7831	* src/test-load.c (testLoadSave): work off a writable /etc/hosts
7832	This addresses a FIXME that could lead to use not detecting incorrect behavior
7833
7834	Move 'run' test utility to cutest.[ch]
7835	  * tests/cutest.h (run): add prototype
7836	  * tests/cutest.c (run): add impl
7837	  * tests/test-save.c (run): remove
7838
78392010-06-29  David Lutterkort  <lutter@redhat.com>
7840
7841	Redefine all variables upon load
7842	This is a slight change in behavior: before, we used to just discard the
7843	contents of all variables upon load. Now, we redefine variables by
7844	evaluating the expression with which they were defined initially again.
7845
7846	The change in behavior is backwards compatible, since at worst, users will
7847	redefine variables themselves after an aug_load
7848
78492010-06-29  David Lutterkort  <lutter@redhat.com>
7850
7851	* src/augeas.c (aug_init): create /augeas/variables on startup
7852
7853	* src/augeas.c (aug_defvar): use constants to create /augeas/variables
7854
78552010-06-22  David Lutterkort  <lutter@redhat.com>
7856
7857	Version 0.7.2
7858
7859	* augeas.spec.in: fix ownership of /usr/share/augeas
7860	fixes BZ 569393
7861
78622010-06-17  David Lutterkort  <lutter@redhat.com>
7863
7864	Test behavior of aug_setm
7865	  * src/augeas.c (aug_setm): return number of modified nodes
7866	  * tests/test-api.c (testSetM): compliance tests for aug_setm
7867
7868	* src/augeas.c (aug_setm): do not segfault when sub is NULL
7869
78702010-06-17  Frederik Wagner  <fnerdwq@gmail.com>
7871
7872	Tests for new aug_setm function
7873	Test through augtool calls.
7874
7875	Exposed aug_setm to augtool.
7876
78772010-06-17  David Lutterkort  <lutter@redhat.com>
7878
7879	Add aug_setm to API
7880	  * src/augeas.h (aug_setm): new public API call
7881	  * src/augeas.c (aug_setm): implement setting multiple nodes
7882	  * src/augeas_sym.version: export symbol aug_setm
7883
78842010-05-24  Frederik Wagner  <fnerdwq@googlemail.com>
7885
7886	Shellvars: added SuSE sysconfig puppet files
7887	For SuSE systems, added /etc/sysconfig/{puppet,puppetmaster} to lens.
7888
78892010-05-18  Frederik Wagner  <fnerdwq@googlemail.com>
7890
7891	List handling shellvars_list lens added.
7892	Lens shellvars_list has been added to treat variables in specific files
7893	as lists of words, e.g. in /etc/sysconfig/ 'kernel' and 'bootloader'.
7894
7895	* lenses/shellvars.aug: removed include for /etc/sysconfig/kernel
7896	* lenses/shellvars_array.aug: new lens
7897	* lenses/tests/test_shellvars_array.aug: test for new lens
7898
78992010-05-13  David Lutterkort  <lutter@redhat.com>
7900
7901	Add modules_conf to naturaldocs Menu
7902
7903	Add /etc/modules.conf from hell
7904	Actually, from http://www.janerob.com/rob/ts5100/modules.conf
7905
79062010-05-13  Matthew Booth  <mbooth@redhat.com>
7907
7908	Modules_conf: new lens for modules.conf and conf.modules
7909
7910	Modprobe: Refactor to make re-use easier
7911
79122010-05-11  David Lutterkort  <lutter@redhat.com>
7913
7914	* src/augeas.c: record expression for defvar in /augeas/variables
7915
79162010-05-07  David Lutterkort  <lutter@redhat.com>
7917
7918	* Grub: handle comments within a boot stanza
7919	Fixes RH BZ 590067
7920
7921	Adjust copyright notices
7922	  - copyright is from creation of file through 2010
7923	  - adjust copyright owner according to Red Hat's policy
7924
79252010-05-04  Raphael Pinson  <raphink@gmail.com>
7926
7927	Group: add test for disabled account ('!' in password field)
7928
79292010-04-27  seph  <seph@directionless.org>
7930
7931	Shellvars: process /etc/environment
7932
79332010-04-26  Nicolas Valc�rcel Scerpella  <nvalcarcel@ubuntu.com>
7934
7935	Iptables: also look for /etc/iptables-save
7936	This is where Debian keeps iptables rules
7937
79382010-04-26  Frederik Wagner  <fnerdwq@googlemail.com>
7939
7940	securetty: added handling of emtpy lines/comments
7941	* lenses/securetty.aug:
7942	        added handling of comments and empty lines
7943	* lenses/tests/test_securetty.aug:
7944	        added test for enhanced lens
7945
79462010-04-21  David Lutterkort  <lutter@redhat.com>
7947
7948	Version 0.7.1
7949
79502010-04-21  Simon Josi  <josi@puzzle.ch>
7951
7952	Securetty: new lens and test for /etc/securetty
7953
79542010-04-21  David Lutterkort  <lutter@redhat.com>
7955
7956	Sudoers: use example file from Fedora 13
7957	This is causing trouble with release-0.7.0, but not this revision.
7958
7959	File was reported in bug #122
7960
79612010-04-21  David Lutterkort  <lutter@redhat.com>
7962
7963	tests: make most tests work on Solaris
7964	The test scripts are full of bashisms; removed some of them, though for
7965	most, just changed the shell from /bin/sh to /bin/bash; removing bashisms
7966	will need to be addressed.
7967
7968	Tests now mostly pass (82/85) on the OpenCSW Solaris 5.10 build machine
7969
79702010-04-21  David Lutterkort  <lutter@redhat.com>
7971
7972	* tests/test-save.c: use proper includes for WIFEXITED
7973	Without them, the build fails on FreeBSD
7974
79752010-04-20  David Lutterkort  <lutter@redhat.com>
7976
7977	Debctrl (multi_line_entry): fix bad regexp
7978	The lens 'del /^ / " "' is not valid, since we do not allow '^' as a meta
7979	character. Changing that to 'del / / " "' exposed a typecheck problem in
7980	lns: both multi_line_entry and eol match blank lines. Fixed this by
7981	requiring that a multi_line_entry has to have at least one non-blank
7982	character.
7983
7984	Debctrl: whitespace cleanup, no functional change
7985
79862010-04-20  David Lutterkort  <lutter@redhat.com>
7987
7988	* src/fa.c (re_iter_as_string): escape literal '|'
7989	When turning a FA back to a string, a literal '|' needs to be output as '\|'
7990
7991	  * tests/fatest.c (testExpandCharRanges): test escaping of literal '|'
7992
79932010-04-19  David Lutterkort  <lutter@redhat.com>
7994
7995	* tests/fatest.c (print_regerror): do not use alloca
7996
7997	* bootstrap: pull in isblank explicitly
7998	Fixes bug #111
7999
8000	* src/lens.c (lns_check_rec): fix refcounting mistake on error path
8001	Fixes bug #120
8002
8003	* src/augtool.c: report an error when 'get' fails
8004
80052010-04-19  David Lutterkort  <lutter@redhat.com>
8006
8007	aug_get: return -1 when multiple nodes match
8008	This fixes breakage in the API contract for aug_get, introduced in commit
8009	e80494a6. Also adds a test to ensure we do not break API for aug_get again.
8010
8011	Fixes bug #121
8012
80132010-04-16  David Lutterkort  <lutter@redhat.com>
8014
8015	jmt: distinguish between successful parse and syntax error at end of input
8016	If a syntax error happened after the last character of the input string
8017	(e.g., becuase the input was incomplete), rec_process would think the parse
8018	was successful, and then notice that there was no parse result. That would
8019	lead to an incorrect error message hinting at an internal error, when it
8020	was really a syntax error.
8021
8022	By changing the return value for jmt_visit, it's now possible to
8023	distinguish between internal errors, syntax errors and successful parses
8024	properly.
8025
80262010-04-16  David Lutterkort  <lutter@redhat.com>
8027
8028	* src/get.c (visit_exit): handle L_MAYBE
8029	Added test to tests/modules/pass_simple_recursion.aug, lens 'maybe'
8030
8031	Fixes bug #119
8032
80332010-04-16  David Lutterkort  <lutter@redhat.com>
8034
8035	* src/jmt.c (build_tree): print debug output for build_nullable
8036
80372010-03-12  David Lutterkort  <lutter@redhat.com>
8038
8039	* lenses/tests/test_logrotate.aug: add test for files separated by newlines
8040	This test the fix for bug #104, commit fe0453ce.
8041
80422010-03-11  David Lutterkort  <lutter@redhat.com>
8043
8044	* lenses/group.aug (password): remove backslashes
8045	Backslashes in char classes are taken literally, they do not escape a
8046	character.
8047
80482010-03-11  root  <root@lx200.costest.lrz.de>
8049
8050	Group: Added disabled password support
8051	* lenses/group.aug: '*' and '!' are allowed chars for disabled password
8052	* lenses/tests/test_group.aug: added test for lens change
8053
80542010-03-11  David Lutterkort  <lutter@redhat.com>
8055
8056	* src/lens.c (lns_check_rec): avoid use of uninitialized 'result'
8057	The ensures can fail, and we check whether result is NULL in the error
8058	path.
8059
80602010-03-05  David Lutterkort  <lutter@redhat.com>
8061
8062	* src/lens.c (lns_format_atype): format L_REC lenses
8063
8064	* src/lens.c: remove asserts; better error for missed tag in switch
8065
8066	Shellvars: handle a bare 'export VAR'
8067
8068	Inittab: allow ':' in the process field
8069	Fixes part of bug #109
8070
80712010-03-05  Tim Stoop  <tim.stoop@gmail.com>
8072
8073	Approx: allow keywords starting with '$'
8074
80752010-03-04  David Lutterkort  <lutter@redhat.com>
8076
8077	Approx: lens and test for the approx proxy server
8078
8079	Produce a better error when iteration stops prematurely during put/create
8080	We now try to include the name of the child node that caused us to stop in
8081	the error message.
8082
80832010-03-03  David Lutterkort  <lutter@redhat.com>
8084
8085	* src/fa.c: allow the strange regexp syntax '(a|)'
8086	POSIX allows it, and so do we now
8087
8088	Fixes bug #113
8089
80902010-03-02  David Lutterkort  <lutter@redhat.com>
8091
8092	Passwd: parse NIS entries on Solaris
8093	Based on a fix by Stuart Sears
8094
80952010-02-26  David Lutterkort  <lutter@redhat.com>
8096
8097	* src/fa.c: clean up error macros
8098	The error macros _E, _F, and _N use names reserved for system libraries;
8099	this leads to compile errors at least on Solaris (as reported by lanky).
8100
8101	Rename _E and _F to E and F, and eliminate _N.
8102
81032010-02-26  Frederik Wagner  <wagner@lrz.de>
8104
8105	Modprobe: Suse includes
8106	* lenses/modprobe.aug: included /etc/modprobe.conf.local
8107
8108	Shellvars: Suse includes
8109	* lenses/shellvars.aug:
8110	    added include for /etc/sysconfig/network/ifcfg-
8111
8112	Grub: support empty kernel parameters, Suse incl.s
8113	* lenses/grub.aug:
8114	  - added support for kernel parameters of the form "parameter="
8115	    w/o given value
8116	  - included /boot/grub/menu.lst
8117	  - changed default for delimiter in kw_menu_arg to " "
8118	* lenses/tests/test_grub.aug: changes corresponding to lens change
8119
81202010-02-26  Dominique Dumont  <domi.dumont@free.fr>
8121
8122	Debctrl: new lens and test
8123
81242010-02-23  David Lutterkort  <lutter@redhat.com>
8125
8126	Ntp: add 'tinker' directive
8127	Fixes bug #103
8128
8129	Logrotate: tolerate whitespace at the end of a line
8130	Fixes bug #101
8131
81322010-02-23  Raphael Pinson  <raphink@gmail.com>
8133
8134	Dhclient: add rfc code parsing
8135	Fixes bug #107
8136
8137	Sudoers: allow del_negate even if no negate_node is found
8138	Fixes bug #106
8139
8140	Logrotate: files can be separated by newlines
8141	Fixes bug #104
8142
8143	Dput: add 'allow_dcut' parameter
8144	Fixes bug #105
8145
81462010-02-22  David Lutterkort  <lutter@redhat.com>
8147
8148	* src/augtool.c: ignore empty lines from stdin
8149	We still complain about the nonsensical 'augtool ""'.
8150
8151	Fixes BZ 566844 reported by Mike Burns
8152
81532010-02-22  Stuart Sears  <ssears@redhat.com>
8154
8155	Sudoers (parameter_string_nobool_kw): accept "secure_path "
8156	Fixes BX 566134
8157
81582010-02-19  Tim Stoop  <tim.stoop@gmail.com>
8159
8160	Nagisocfg: lens and test for /etc/nagios3/nagios.cfg
8161
81622010-02-12  Ivana Hutarova Varekova  <varekova@redhat.com>
8163
8164	Cgrules: new lens and test
8165	See cgrules.conf for http://libcg.sourceforge.net/
8166
81672010-02-11  Ivana Hutarova Varekova  <varekova@redhat.com>
8168
8169	Cgconfig: lens and tests for libcgroup config
8170	See http://libcg.sourceforge.net/
8171
81722010-02-11  Laine Stump  <laine@laine.org>
8173
8174	* src/transform.c (file_info): fix memory leak
8175
81762010-02-09  David Lutterkort  <lutter@redhat.com>
8177
8178	* lens.c (ambig_check): pretty print tree type errors
8179	Instead of dumping raw regular expressions for the tree encoding, print out
8180	something resembling our tree notation.
8181
81822010-02-08  David Lutterkort  <lutter@redhat.com>
8183
8184	libfa: handle the syntax r{min,} properly
8185	  * src/fa.c (parse_repeated_regexp): set max = -1 when we see r{min,};
8186	    (re_iter_as_string): when max == -1, print r{min,}
8187	  * tests/fatext.c (testExample): add a few tests for this syntax
8188
8189	* src/fa.c (parse_int): flag not parsing anything as an error
8190
81912010-02-08  David Lutterkort  <lutter@redhat.com>
8192
8193	* src/jmt.c: add caller filtering
8194	Caller filtering is needed to weed out seemingly ambiguous parse trees (see
8195	Section 5.3 of Jim/Mandelbaum's paper)
8196
8197	Also adds two pathological lenses and tests to
8198	pass_simple_recursion.aug. Those tests fail without caller filtering.
8199
82002010-02-08  David Lutterkort  <lutter@redhat.com>
8201
8202	* AUTHORS: reformatted
8203
8204	* tests/Makefile.am: add test for cobblermodules.aug
8205
82062010-02-08  Shannon Hughes  <shughes@redhat.com>
8207
8208	Cobblermodules: lens + tests for cobbler's modules.conf
8209
82102010-02-02  David Lutterkort  <lutter@redhat.com>
8211
8212	Shellvars: allow spaces after/before opening/closing parens for array
8213	Bug reported by Doug Warner
8214
82152010-02-01  Matthew Palmer  <matt@anchor.net.au>
8216
8217	Sshd: allow optional arguments in subsystem commands
8218
82192010-01-27  David Lutterkort  <lutter@redhat.com>
8220
8221	* src/augeas.c (tree_replace): don't bother marking the new parent as dirty
8222	We call tree_rm on it earlier, which already marks it as dirty.
8223
8224	This line also triggered a SEGV when sub == NULL; this happened, for
8225	example, when /etc/apt/preferences was an empty file.
8226
8227	Bug reported by Matt Palmer
8228
82292010-01-27  David Lutterkort  <lutter@redhat.com>
8230
8231	* src/get.c (no_match_error): initialize lname
8232	Otherwise, gcc complains about a possibly uninitialized value with -O2
8233
82342010-01-25  David Lutterkort  <lutter@redhat.com>
8235
8236	Test for using a recursive lens inside other lenses
8237
82382010-01-25  David Lutterkort  <lutter@redhat.com>
8239
8240	* src/get.c: handle recursive lenses that are not L_REC
8241	Since any lens that uses an L_REC is itself recursive, the distinction
8242	whether to use get_rec or get_lens can be made in lns_get
8243
8244	rec_process will also build the jmt if it does not exist yet
8245
8246	Fixes ticket #100
8247
82482010-01-25  David Lutterkort  <lutter@redhat.com>
8249
8250	Properly handle lenses that use L_REC lenses
8251	In constructs involving a recursive lens, we need to take the body of the
8252	recursive lens into consideration. We avoid infinite recursion by stopping
8253	when we see an L_REC that is marked as rec_internal, since that's the
8254	struct lens that points back to the top of the lens from within it.
8255
8256	jmt_build now expects to be handed a properly set up recursive lens, which
8257	means that for an L_REC both the internal and external instances have to
8258	exist and be connected
8259
8260	  * src/lens.c (lns_check_rec): defer building the jmt until the end
8261	  * src/jmt.c: when building the jmt, consider L_REC as long as it's not
8262	    internal
8263
82642010-01-25  David Lutterkort  <lutter@redhat.com>
8265
8266	* src/jmt.c (print_grammar): recurse into L_REC if they are not rec_internal
8267
82682010-01-25  David Lutterkort  <lutter@redhat.com>
8269
8270	* src/jmt.c (jmt_visit): allow for toplevel lenses that are not L_REC
8271	To reconstruct the parse of a lens that is not L_REC, but uses L_REC,
8272	e.g. l* where l is L_REC, we can not assume any longer that the root of the
8273	parse tree has only one child. Consequently, we need to start
8274	reconstruction with listing all the children of the root node.
8275
8276	Split build_tree into build_children (collects a list of child nodes) and
8277	build_tree which creates the tree for a nonterminal.
8278
8279	To start reconstruction, we now start with collecting the list of children
8280	of the root of the parse tree; the Earley graph does not contain an item
8281	for that, which makes this operation slightly special.
8282
82832010-01-25  David Lutterkort  <lutter@redhat.com>
8284
8285	* src/lens.c: propagate rec_internal in the body of an L_REC
8286
8287	* src/lens.c: don't short-circuit typechecking for recursive lenses explicitly
8288	The typecheck helpers are all smart enough to not run checks when one of
8289	the types is NULL, as is the case for recursive lenses.
8290
8291	* src/lens.h (struct lens): explain better how we handle recursive lenses
8292
8293	* src/jmt.c (build_trace): allow passing in a NULL item
8294
8295	* src/lens.c (tags): add name for value primitive
8296
8297	* src/get.c: replace assert's by ensure's
8298	assert aborts, which a library shouldn't do
8299
8300	* src/errcode.h (ensure0): convenience version of ensure
8301
8302	* src/get.c (find_seq): properly report OOM, do not call abort
8303
8304	Remove assert_error_at
8305	This function was dangerous, since it does not jump, and therefore users
8306	will continue doing what they were doing, even if an assertion failed. Use
8307	BUG_ON instead.
8308
8309	* src/get.c (struct state): make info a pointer
8310
83112010-01-23  David Lutterkort  <lutter@redhat.com>
8312
8313	* src/lens.c (restrict_regexp): properly report OOM
8314
83152010-01-20  David Lutterkort  <lutter@redhat.com>
8316
8317	Document the basics of building from git
8318
83192010-01-15  David Lutterkort  <lutter@redhat.com>
8320
8321	* src/builtin.c: builtins for printing and inspecting lenses
8322
8323	Add a unit type
8324	The literal '()' is the only member of the unit type. Composition is now
8325	allowed if the first expression is of type unit, i.e. '() ; something' is
8326	legal.
8327
83282010-01-15  David Lutterkort  <lutter@redhat.com>
8329
8330	Language: allow '_' as an identifier that is never bound
8331	  The expression
8332	    let _ = something
8333	  will evaluate something and then immediately forget it
8334
8335	  * src/lexer.l (LID): allow leading underscore
8336	  * src/syntax.c (bind, bind_type): do not bind '_'
8337
83382010-01-15  David Lutterkort  <lutter@redhat.com>
8339
8340	New primitive lens 'value'
8341	In analogy to 'label', this lens allows setting the value of a tree node to
8342	a fixed string
8343
83442010-01-14  David Lutterkort  <lutter@redhat.com>
8345
8346	Version 0.7.0
8347
8348	Json: lens and tests for generic Json files
8349
8350	Tests for recursive (context free) lenses
8351
83522010-01-14  David Lutterkort  <lutter@redhat.com>
8353
8354	Syntax for recursive lenses
8355	Add a 'let rec' construct; the syntax should be considered experimental and
8356	might be changed to some other form of expressing recursion.
8357
8358	With recursive lenses, we can't do the bottom-up typechecking that we do
8359	for regular lenses; we need to consider the whole lens at once. This is
8360	achieved by inserting a callback to lns_check_rec when we parse 'let rec
8361	ident = exp'.
8362
8363	  * src/builtin.c (lns_check_rec_glue): new function
8364	  * src/lexer.l: new token LETREC
8365	  * src/parser.y: add syntax rule for LETREC and desugar it into a call to
8366	    lns_check_rec
8367	  * src/syntax.h: make free_term available, constant for name
8368	    of let_check_rec within the interpreter
8369	  * src/syntax.c (free_term): now extern, not static
8370
83712010-01-14  David Lutterkort  <lutter@redhat.com>
8372
8373	* src/get.c (get_rec, parse_rec): get/parse for recursive lenses
8374
8375	* src/put.c: put/create for recursive lenses
8376
8377	Remember the jmt in the lens and free it when it is no loner needed
8378
8379	Earley parser based on Jim/Mandelbaum's transducers
8380
8381	Calculate if a lens's ctype is nullable
8382
8383	Add a typechecker and constructor for recursive lenses
8384	  * src/lens.h (lns_make_rec, lns_check_rec): new functions
8385	  * src/lens.c (lns_make_rec, lns_check_rec): new functions
8386
8387	Suppress buildtime typechecks for L_REC; propagate recursive flag
8388
8389	* src/lens.c (free_lens): free recursive lenses
8390
8391	* src/lens.h: add a recursive lens combinator
8392
83932010-01-14  David Lutterkort  <lutter@redhat.com>
8394
8395	A simple debug facility
8396	Debugging is disabled by default. When configured with --enable-debug=yes,
8397	Augeas will look at runtime at the environment variable AUGEAS_DEBUG, which
8398	should contain a colon-separated list of categories. Besides printing
8399	various thigs on stdout, some debug output is also left in files in the
8400	directory set by the environment variable AUGEAS_DEBUG_DIR, e.g., dot
8401	graphs of various internal data structures.
8402
8403	  * configure.ac: add --enable-debug option
8404	  * src/internal.h (debugging, debug_file): new functions
8405	  * src/internal.c (debugging, debug_file): new functions
8406
84072010-01-14  David Lutterkort  <lutter@redhat.com>
8408
8409	struct error: add pointer back to struct augeas
8410
8411	* src/errcode.h: more usable BUG_ON and BUG_FMT
8412
8413	* src/lens.c (ambig_check): report OOM from fa_ambig_example
8414
8415	* src/fa.c (fa_ambig_example): getting a NULL example is not an error
8416
8417	* src/syntax.c (compile): give up after the first error
8418	We have no error recovery to speak off; if we keep going, we most of the
8419	time carpet-bomb the user with error messages that are simple follow-ons to
8420	the first error.
8421
8422	* TODO: deleted, that list is in Trac now
8423
8424	* src/fa.c (fa_intersect): initialize vars that could be used on error
8425
8426	* src/fa.c (fa_as_regexp): convert strings more efficiently
8427	Since we are building the transitive closure of the FA, cut down the size
8428	of the FA by first extracting strings and removing their internal states.
8429
8430	* src/fa.c (fa_as_regexp): fin only accepting state, no trans fin->fin
8431
8432	Indicate whether an FA uses character ranges or regexps on transitions
8433	  * src/fa.c (struct fa): new field trans_re; (fa_as_regexp): set trans_re;
8434	    (fa_dot): print regexp rather than char range if trans_re is set
8435
84362010-01-13  David Lutterkort  <lutter@redhat.com>
8437
8438	Add syntax for case-insensitive regexps
8439	A regexp literal /regexp/i will be converted to a case-insensitive regexp.
8440
8441	* src/regexp.c (regexp_minus): respect nocase flags
8442
8443	* src/lens.c (str_to_fa): compile nocase fa when needed
8444
8445	* src/lens.c (str_to_fa): remove FIXME's and use proper error reporting
8446
84472010-01-13  David Lutterkort  <lutter@redhat.com>
8448
8449	Support for case-insensitive regexps
8450	Add nocase argument to make_regexp, and adjust all uses of make_regexp to
8451	pass that in. For concatenation and union of regexps we have to expand
8452	case-insensitive regexps when they are mixed with case-sensitive regexps.
8453
8454	Adjust all uses of make_regexp.
8455
84562010-01-13  David Lutterkort  <lutter@redhat.com>
8457
8458	Add fa_expand_nocase to libfa
8459
8460	Support for case-insensitive operations in libfa
8461	  * src/fa.h (fa_nocase, fa_is_nocase): new functions
8462	  * src/fa.c (struct fa): new field nocase; (fa_is_basic): a total FA has
8463	    two transitions under nocase; (fa_clone): preserve nocase flag;
8464	    (union_in_place, concat_in_place, fa_intersect): if one operand is
8465	    nocase, and the other isn't, expand the nocase FA to a case-sensitive
8466	    one; (totalize): do not add transitions on [A-Z]; (fa_nocase,
8467	    fa_is_nocase): new functions; (case_expand): new function
8468	  * tests/fatest.c (assertExample): also test against a nocase FA;
8469	    (testNoCase): test concat etc. on nocase FA's
8470
8471	* src/lens.c (subtree_atype): new function
8472
84732010-01-07  David Lutterkort  <lutter@redhat.com>
8474
8475	Facelift for augtool
8476	This makes augtool somewhat friendlier, mostly because
8477
8478	  - help is organized better: typing 'help' produces a list of commands and
8479	    a brief synopsis for each, typing 'help command' prints detailed help
8480	    about a command
8481	  - augtool now knows about path expressions, so that they do not need to
8482	    be enclosed in quotes if they have spaces with predicates, e.g. you can
8483	    now type 'get /foo[ last() ]'
8484
84852010-01-07  David Lutterkort  <lutter@redhat.com>
8486
8487	Record an error if more than one lens tries to load a file
8488	  * src/transform.c (file_info): new function; (transform_load): detect if
8489	    more than one lens tries to load a file and record error in
8490	    /augeas/files/PATH/error
8491
8492	Pull computing a path underneath /files from a filename into a function
8493	  * src/transform.c (file_name_path): new function; (load_file): use
8494	    file_name_path
8495
84962010-01-07  David Lutterkort  <lutter@redhat.com>
8497
8498	Change the metadata for individual files
8499	Record the name of the lens used to load the file in the lens node
8500	underneath /augeas/files/$PATH; the location info of the lens is kept in
8501	lens/info
8502
8503	  * src/transform.c (add_file_info): change what we keep underneath the
8504	    lens node
8505	  * tests/xpath.tests (lircd-ancestor): adapt to metadata change
8506
85072010-01-07  David Lutterkort  <lutter@redhat.com>
8508
8509	* src/transform.c (add_file_info): manipulate tree directly
8510	Going through public functions like aug_set is silly, and causes all kinds
8511	of string munging.
8512
8513	Produce better error message for multiple matching transforms in save
8514	  * src/augeas.h (aug_errcode_t): new error code AUG_EMXFM
8515	  * src/augeas.c (errcodes): new error string for AUG_EMXFM; (tree_save):
8516	    report multiple transforms as proper error
8517	  * tests/test-save.c (testMultipleXfm): new test
8518
8519	New function transform_file_error
8520	  * src/transfrom.h (transform_file_error): add prototype
8521	  * src/transform.c (transform_file_error): new function
8522
8523	New function xfm_lens_name
8524	  * src/transfrom.h (xfm_lens_name): add prototype
8525	  * src/transform.c (xfm_lens_name): new function
8526
85272010-01-07  David Lutterkort  <lutter@redhat.com>
8528
8529	Tree functions to find/create a node with a path expression
8530	Internal counterparts to aug_get and aug_set
8531
8532	  * src/internal.h (tree_find, tree_find_cr): new prototypes
8533	  * src/augeas.c (tree_find, tree_find_cr): new functions
8534
85352010-01-07  David Lutterkort  <lutter@redhat.com>
8536
8537	* src/internal.h: make various tree management functions available
8538
85392010-01-06  David Lutterkort  <lutter@redhat.com>
8540
8541	Xinetd (name): fix bad '-' in character class
8542
85432010-01-05  David Lutterkort  <lutter@redhat.com>
8544
8545	Do not choke on non-existing lens during save
8546	  * src/transform.c (add_file_info): check that lens is non-NULL;
8547	    (lens_from_name): provide detailed error message when lens lookup
8548	    failed; (transform_validate): copy error from lens_from_name into tree
8549	  * tests/test-save.c (testNonExistentLens): new test
8550
8551	Fixes bug #98
8552
85532010-01-05  David Lutterkort  <lutter@redhat.com>
8554
8555	New error code AUG_ENOLENS
8556	Indicates failure to look a lens up by name from /augeas/load/*/lens
8557
8558	  * src/augeas.h (aug_errcode_t): new value AUG_ENOLENS
8559	  * src/augeas.c (errcodes): new entry for AUG_ENOLENS
8560
85612010-01-05  David Lutterkort  <lutter@redhat.com>
8562
8563	* src/lens.c (lens_release): tolerate a NULL lens
8564
85652010-01-04  Bryan Kearney  <bkearney@localhost.localdomain>
8566
8567	Cobblersettings: new lens and test
8568
85692010-01-04  David Lutterkort  <lutter@redhat.com>
8570
8571	Rename read_file to xread_file
8572
85732009-12-23  David Lutterkort  <lutter@redhat.com>
8574
8575	* src/lens.c (lns_make_union, lns_make_concat): do not access free'd memory
8576	make_lens_binop may free one of the lenses it gets passed. We can therefore
8577	not reference them after a call to make_lens_binop.
8578
8579	* src/lens.c (format_lens): minimalistic pretty-printing of a lens
8580
8581	* src/regexp.c (print_regexp): clean the regexp with fa_restrict_alphabet
8582
85832009-12-18  David Lutterkort  <lutter@redhat.com>
8584
8585	* src/builtin.c (lens_get, lens_put): propagate errors as exceptions
8586
85872009-12-18  David Lutterkort  <lutter@redhat.com>
8588
8589	More convenience macros for errors
8590	Add BUG_ON and ERR_RET macros for reporting internal errors
8591
8592	  * src/errcode.h (BUG_ON, ERR_RET, HAS_ERR): new macros
8593	  * src/errcode.c (bug_on): implementation for BUG_ON
8594
85952009-12-17  David Lutterkort  <lutter@redhat.com>
8596
8597	Lokkit: allow '-' in arguments
8598
8599	Iptables: handle both negation syntaxes
8600	Options can be negated either with '! --option arg' or with '--option !
8601	arg'. We now handle both, though they lead to slightly different trees
8602
86032009-12-14  David Lutterkort  <lutter@redhat.com>
8604
8605	* doc/ftdetect/augeas.vim: fix syntax
8606
86072009-12-09  Partha Aji  <paji@redhat.com>
8608
8609	Made samba aug accept entry keys with ':' in them
8610
86112009-12-09  David Lutterkort  <lutter@redhat.com>
8612
8613	Shellvars: allow arrays that span multiple lines
8614
86152009-12-07  David Lutterkort  <lutter@redhat.com>
8616
8617	Iptables: allow quoted strings as arguments
8618
86192009-11-30  David Lutterkort  <lutter@redhat.com>
8620
8621	Version 0.6.0
8622
8623	Distribute and install vim syntax files
8624	Fixes ticket #97
8625
8626	* Makefile.maint: sign tags
8627
8628	Krb5: allow v4_name_convert in libdefaults section
8629	Fixes part of ticket #95
8630
8631	Fstab: allow # in the spec
8632	Fixes part of ticket #95
8633
8634	Group: allow empty password field
8635	Fixes part of ticket #95
8636
8637	* src/parser.y: properly initialize yylloc
8638	Fixes ticket #96
8639
86402009-11-25  David Lutterkort  <lutter@redhat.com>
8641
8642	Properly check regexp literals for syntax errors
8643	  * src/regexp.h (regexp_check): new function
8644	  * src/regexp.c (regexp_compile_internal): new function to base both
8645	    regexp_compile and regexp_check off
8646	  * src/syntax.c (check_value): produce a syntax error if regexp does not
8647	    pass regexp_check; (check_exp): make sure we do check values
8648
8649	Fixes ticket #93
8650
86512009-11-25  David Lutterkort  <lutter@redhat.com>
8652
8653	* src/lexer.l: include errcode.h; fix bad use of report_error
8654
8655	* src/errcode.c: include stdarg.h
8656
86572009-11-25  David Lutterkort  <lutter@redhat.com>
8658
8659	Cron: variable names can contain '_' etc.
8660	Use Shellvars.key_re for consistency.
8661
8662	Fixes ticket #94
8663
86642009-11-25  Matt Palmer  <mpalmer@hezmatt.org>
8665
8666	AptPreferences: add a put test
8667	Make sure we handle an empty file properly, and cleanup the resulting
8668	hassle
8669
86702009-11-24  Matt Palmer  <mpalmer@hezmatt.org>
8671
8672	Normalise records so that empty lines (which are a required part of the syntax) don't creep into the tree
8673
8674	Support version pins in apt_preferences
8675
86762009-11-23  David Lutterkort  <lutter@redhat.com>
8677
8678	* tests/Makefile.am (lens_tests): run postfix_access tests
8679
86802009-11-16  Partha Aji  <paji@redhat.com>
8681
8682	Added a Post Fix Access lens along with the unit tests
8683
86842009-11-13  David Lutterkort  <lutter@redhat.com>
8685
8686	* src/lens.c (ambig_check): distinguish error between concat and iteration
8687
8688	* src/regexp.c (regexp_escape): treat NULL regexps as the empty regexp
8689
8690	* src/regexp.c (regexp_escape): fix stripping of enclosing parens
8691	Only strip them if they belong together, and not for something like /(a)(b)/
8692
8693	* src/syntax.c: spew exceptions less often
8694	  print_value: only print exceptions that haven't been seen
8695	  compile_test: only print the exception for a test when it hasn't
8696	                been seen
8697
8698	* src/get.c: never try to process a string that doesn't match
8699	When a string during init_regs doesn't match at all, there's nothing useful
8700	we can do. Immediately return an error from lns_get.
8701
8702	* src/syntax.h (exn_error): produce an exception to indicate an error
8703	exn_error returns a special exception that indicates that an error has
8704	happened (e.g., out-of-memory) that has already been reported in the
8705	central augeas->error instance.
8706
87072009-11-12  David Lutterkort  <lutter@redhat.com>
8708
8709	* src/info.c (print_info): do not choke on NULL info
8710
8711	* src/internal.h: new macros MEMCMP and MEMMOVE
8712
8713	* src/lens.c (lns_make_subtype): explain type derivation
8714
8715	* examples/fadot.c: by default, print minimized regexp
8716
8717	* examples/fadot.c: fix formatting, no functional changes
8718
87192009-11-10  David Lutterkort  <lutter@redhat.com>
8720
8721	Make augparse and augtool use user's locale
8722
8723	* test/Makefile.am (TEST_ENVIRONMENT): set LANG to a non-C locale
8724
87252009-11-10  David Lutterkort  <lutter@redhat.com>
8726
8727	Remove character ranges from regexps if we are not in the C locale
8728	Since re_compile_pattern uses the current locale when expanding character
8729	ranges like [a-z], we need to be careful that such ranges are expanded in
8730	the C locale.
8731
8732	  * configure.ac: check for uselocale
8733	  * src/internal.[ch] (regexp_c_locale): new function
8734	  * src/lens.c (digits_string): spell out the digits
8735	  * src/lens.c (restrict_regexp): expand char ranges in restricted regexp
8736	  * src/lexer.l (regexp_literal): run regexp literals through
8737	    regexp_c_locale
8738	  * src/regexp.c (regexp_escape): compress character ranges for printing
8739	  * src/regexp.c (regexp_minus): expand charcter ranges
8740
8741	Fixes ticket #35 for systems that do not have uselocale (for systems with
8742	uselocale, the fix is commit 07b6a880)
8743
87442009-11-10  David Lutterkort  <lutter@redhat.com>
8745
8746	libfa: new function fa_expand_char_ranges
8747
8748	Calls to __aug_load_module need to go through api_entry/api_exit
8749
87502009-11-10  David Lutterkort  <lutter@redhat.com>
8751
8752	Switch to C locale on API entry on systems that have uselocale
8753	Since we need to do all our operations (especially regexp matching) in the
8754	C locale, we switch to that on API entry, and switch back to the user's
8755	locale on API exit.
8756
8757	That also makes it necessary that aug_init wraps the bulk of its work
8758	inside an api_entry/api_exit.
8759
8760	Fixes ticket #35 for systems that have uselocale
8761
87622009-10-26  David Lutterkort  <lutter@redhat.com>
8763
8764	Inittab: parse end-of-line comments into a #comment
8765
87662009-10-23  David Lutterkort  <lutter@redhat.com>
8767
8768	* src/lens.c (lns_make_subtree): parenthesize key and value patterns
8769	These patterns may be a union not enclosed in parens
8770
8771	* src/regexp.c (regexp_escape): don't clobber last character
8772
8773	* src/lens.c: use regexp_escape to print regexps in error messages
8774
8775	* src/fa.c (fa_restrict_alphabet): initialize parse
8776
8777	* src/fa.c (special_chars): treat $ and ^ as special
8778	They are special when they are at the beginning resp. the end of a regular
8779	expression. Making them special (i.e., escaping them with '\') everywhere
8780	doesn't hurt.
8781
8782	* src/fa.c (re_needs_parens_in_concat): ITER doesn't need parens in concat
8783
8784	* src/fa.c (re_cset_as_string): work properly with negated cset
8785	We did not take re->negate into account, and always acted as if the cset
8786	was not negated. Introduce helper function cset_contains to both fix that
8787	and make the code a little clearer.
8788
87892009-10-22  David Lutterkort  <lutter@redhat.com>
8790
8791	bootstrap: use stpcpy and stpncpy from gnulib
8792
8793	Makefiles: gnulib now requires linking against libselinux
8794	  * src/Makefile.am (libfa_la_LIBADD): add LIB_SELINUX
8795	  * examples/Makefile.am (fadot_LDADD): remove GNULIB
8796
87972009-10-21  David Lutterkort  <lutter@redhat.com>
8798
8799	Path expressions: add union operator
8800	Nodesets can now be unioned with the '|' operator
8801
8802	Fixes ticket #89
8803
88042009-10-21  David Lutterkort  <lutter@redhat.com>
8805
8806	* src/pathx.c (clone_nodeset): properly set size of the clone
8807	The size of the clone is the number of nodes in the original nodeset, not
8808	the size of the original nodeset.
8809
8810	* src/regexp.c (regexp_union_n): insert '|' after the first non-NULL regexp
8811	We can not blindly insert a '|' after the first passed-in regexp since that
8812	(and any number of regexps at the beginning) might be NULL. We only insert
8813	'|' after actually copying a regexp into the result.
8814
88152009-10-20  David Lutterkort  <lutter@redhat.com>
8816
8817	Wine: new lens and test
8818	Lens for parsing textual Windows registry files
8819
88202009-10-20  David Lutterkort  <lutter@redhat.com>
8821
8822	Pam: allow '-' before type
8823	The type field in a pam.d file can start with a '-' to indicate that
8824	missing the module should not cause an error. The '-' is now mapped into
8825	the tree as a separate node 'optional'
8826
8827	Bug reported by Shannon Hughes
8828
88292009-10-20  David Lutterkort  <lutter@redhat.com>
8830
8831	* test/Makefile.am (lens_tests): add lens-ethers.sh
8832
8833	* src/internal.c (escape): convert char to unsigned when printing as octal
8834	Without that, there's no guarantee that the char will be printed as three
8835	octal digits and not more
8836
8837	Report line/column number when get/put test fails
8838	  * src/builtin.c (make_exn_lns_error): add line/column number in error
8839	    message
8840	  * src/internal.c (calc_line_ofs): moved here from transform.c
8841	  * src/internal.h (calc_line_ofs): declare prototype
8842	  * src/transform.c (calc_line_ofs): moved to internal.c
8843
8844	* src/get.c (get_error): use end of last match as error position
8845
8846	* man/augtool.1: regenerate
8847
88482009-10-19  David Lutterkort  <lutter@redhat.com>
8849
8850	Krb5: support a [kdc] section
8851	The only entry it can have so far is 'profile' - no idea what else can go
8852	there since it's not documented in krb5.conf(5), but used, e.g. on Fedora
8853	11
8854
88552009-10-12  David Lutterkort  <lutter@redhat.com>
8856
8857	Rx (device_name): allow '!' in device name
8858
88592009-10-09  David Lutterkort  <lutter@redhat.com>
8860
8861	Lokkit: make argument for --trust more permissive
8862	The --trust option takes an interface name, whcih can be more than what
8863	token accepts.
8864
8865	  * lenses/lokkit.aug (trust): new lens; (entry): use trust
8866	  * lenses/rx.aug (device_name): new regexp
8867	  * lenses/tests/test_lokkit.aug: new test for more permissive device names
8868
88692009-10-09  David Lutterkort  <lutter@redhat.com>
8870
8871	Lokkit.forward_port: add missing eol
8872	Also adjust test_lokkit.aug since we're not getting a spurious empty entry
8873	anymore
8874
88752009-10-06  Satoru SATOH  <satoru.satoh@gmail.com>
8876
8877	/etc/ethers: new lens and test
8878	The followings adds a new lens for /etc/ethers and associated test.
8879
88802009-09-30  David Lutterkort  <lutter@redhat.com>
8881
8882	* src/augparse.c: get error details from error API
8883
8884	interpreter: do not abort() on fatal errors or print on stderr
8885	Use the error reporting infrastructure for most errors. Fatal errors (bugs)
8886	in the interpreter now lead to an error code AUG_EINTERNAL, and not an
8887	abort()
8888
8889	* src/parser.y: do not print to stderr
8890
8891	* src/lexer.l: print into struct error instead of stderr
8892
8893	New error code AUG_ESYNTAX
8894
8895	* src/info.c (format_info): minor fixes
8896	  - append a ':' after the location
8897	  - produce a result even when line numbers are invalid
8898	  - use xasprintf, not asprintf
8899
8900	* src/lexer.l (to_int): unused, remove
8901
8902	Make struct error available in struct info
8903	This makes it much easier to report errors into the central struct error
8904	instance hanging off the Augeas instance.
8905
8906	Put struct error and report_error into its own file
8907	Also, make the struct error in struct augeas a pointer
8908
8909	* src/info.h: optimize layout of struct info
8910
8911	*src/syntax.c: catch some allocation errors
8912
8913	* src/ref.h (make_ref_err): convenience macro
8914
8915	* tests/fatest.c (print_regerror): only print first 40 chars of regexp
8916
8917	libfa: handle allocation failures gracefully
8918
8919	parser: report some allocation failures
8920
8921	* src/fatest.c: make testable with failmalloc
8922	  - when FAILMALLOC_INTERVAL is set, report success, no matter
8923	    how many tests failed (presumably because of memory starvation)
8924	  - abort with die_oom() if crucial internal checks can't be performed
8925	    because of allocation failures
8926
8927	cutest: fortify against allocation failures
8928	  - new function die_oom which sets exit status to 2 when
8929	    we die from an oom condition
8930	  - use the safe-alloc macros for allocations
8931	  - abort the test when internal allocations fail
8932
8933	* src/hash.c (hash_alloc_insert): return 0/-1 for success/error
8934
8935	Use a proper function for make_ref
8936	That allows us to require that callers check the return value
8937
8938	Handle allocation failures from define_native_intl
8939
8940	build: support for running with libfailmalloc preloaded
8941	Add --with-failmalloc=LIB configure option and failmalloc targets to run
8942	select programs with failing allocations.
8943
89442009-09-24  David Lutterkort  <lutter@redhat.com>
8945
8946	* src/transform.c: do not include canonicalize.h anymore
8947	The canonicalize-lgpl gnulib module doesn't require that anymore
8948
89492009-09-21  David Lutterkort  <lutter@redhat.com>
8950
8951	Path expressions: add regexp matching
8952	Add a function regexp : string -> regexp and an operator
8953	 =~ : string|nodeset -> regexp -> boolean to the language for
8954	path expressions.
8955
8956	* src/regexp.c (regexp_compile): do not print anything on error
8957
89582009-09-21  David Lutterkort  <lutter@redhat.com>
8959
8960	Split regexps, info and strings out of syntax.[ch]
8961	  * Move struct string and struct info and related functions into info.[ch]
8962	  * Move headers for regexp.c into new file regexp.h
8963
8964	This makes it easier to reuse these outside of syntax.[ch] - including
8965	syntax.h in get.c and put.c was way too much anyway.
8966
89672009-09-21  David Lutterkort  <lutter@redhat.com>
8968
8969	aug_match, aug_mv: return -1 when pathx evaluation fails
8970
8971	Report errors when exactly one match is expected
8972	aug_mv and aug_insert expect that exactly one node matches the path
8973	expressions they are given. Report new errors if none or more than one node
8974	match.
8975
8976	* src/augtool.c: use new error API
8977	Call into the error API after each aug_* call and print error details
8978
8979	Propagate pathx errors during evalutaion
8980	We did not report errors from pathx evaluation functions, only from the
8981	parser/typechecker. Now functions like pathx_first etc. report errors
8982	properly.
8983
8984	Store pathx parse errors in internal error struct
8985	The pathx_parse function will now store error information in a struct
8986	error; we pass the one from struct augeas in and save it in the pathx.
8987
8988	Reset old error messages on each entry through the API from the outside
8989
8990	* src/syntax.c (interpreter_init): report errors
8991
8992	Error reporting API and infrastructure
8993	Only reporting errors in the tree makes the API much harder to use; the
8994	aug_error* functions make it easier to inquire about errors
8995	programmatically.
8996
8997	* src/pathx.c (pathx_symtab_init): unused, remove
8998
89992009-09-18  David Lutterkort  <lutter@redhat.com>
9000
9001	* src/syntax.c (interpreter_init): fix potential leak
9002	If globbuf has entries in it when we encounter an error, we need to
9003	globfree it.
9004
90052009-09-17  Matt Palmer  <mpalmer@hezmatt.org>
9006
9007	Sudoers: allow certain backslash-quoted characters in a command
9008	Commands may contain backslashes by themselves and the two-char sequences
9009	\\[=:,\\]
9010
90112009-09-14  David Lutterkort  <lutter@redhat.com>
9012
9013	Version 0.5.3
9014
90152009-09-11  David Lutterkort  <lutter@redhat.com>
9016
9017	Man pages: update to match current augtool and augparse
9018
9019	Add --version option to augtool and augparse
9020	Fixes bug #88
9021
9022	A couple more files for the test root
9023
9024	Add preceding-sibling and following-sibling axes to path expressions
9025
90262009-09-10  David Lutterkort  <lutter@redhat.com>
9027
9028	Better error message for too many args in a path expression
9029
90302009-09-09  David Lutterkort  <lutter@redhat.com>
9031
9032	Slapd: include /etc/openldap/slapd.conf
9033	This is the default location in Fedora.
9034
9035	Fixes bug #85
9036
90372009-09-04  David Lutterkort  <lutter@redhat.com>
9038
9039	Multipath: new lens for /etc/multipath.conf
9040
9041	* src/try: fix 'set annotate' for gdb
9042
90432009-09-03  David Lutterkort  <lutter@redhat.com>
9044
9045	Transparent save of cross-device links
9046	When saving to a file, we first write to a file with extension .augnew and
9047	then rename that file to the actual file. This fails when the original is a
9048	symlink to a file on another device.
9049
9050	We now write the .augnew file next to the canonicalized original file to
9051	avoid that headache. There are still situations where the rename fails,
9052	e.g. when the original file is bindmounted - in that situation, we have to
9053	copy.
9054
90552009-09-03  David Lutterkort  <lutter@redhat.com>
9056
9057	* src/syntax.c (print_value): use print_tree instead of dump_tree
9058
90592009-09-02  David Lutterkort  <lutter@redhat.com>
9060
9061	* lenses/rx.aug (fspath): simplistic regex for filesystem paths
9062
9063	* src/lens.c (disjoint_check): print example as tree for put
9064	When the typechecker finds lens overlap in a union's put direction, format
9065	the generated example as a tree to make it more readable.
9066
9067	* src/lens.c(enc_format): remove extraneous quote
9068
9069	Make fa_example work for strings with embedded NUL's
9070
90712009-09-01  Matt Palmer  <mpalmer@hezmatt.org>
9072
9073	Inetd: new lens and test
9074
90752009-08-31  David Lutterkort  <lutter@redhat.com>
9076
9077	Pretty-print lens atypes and use that for errors during put
9078	* src/lens.c (lns_format_atype): new function
9079	* src/lens.h (lns_format_atype): new prototype
9080	* src/put.c (regexp_match_error): use lns_format_atype for errors
9081
9082	* tests/modules/pass_strip_quotes.aug: test quote stripping
9083	The tests strips optional quotes and puts them back (or creates them) as
9084	needed, only depending on the value of the tree node.
9085
90862009-08-31  David Lutterkort  <lutter@redhat.com>
9087
9088	Match trees on label and value, not just label
9089	We still only use one level in the tree for matching in the put direction,
9090	but take the values of nodes into account.
9091
9092	We had fail_ tests in place to document the deficiency of the tree matcher,
9093	but with that deficiency gone, these now become passing tests.
9094
90952009-08-31  David Lutterkort  <lutter@redhat.com>
9096
9097	Restrict the alphabet of a regexp
9098
9099	Use offsets for various lens types
9100
9101	Carry the key type explicitly in lenses
9102	Instead of computing the key type recursively, store it in lens->ktype. The
9103	key type becomes the new abstract type (atype) when a lens is used inside a
9104	subtree combinator.
9105
9106	Allow NULLS in regexp_(union|concat)_n
9107	It's sometimes useful to union/concat N regexps even if some of them are
9108	NULL. regexp_(union|concat)_n will ignore them.
9109
9110	libfa: handle regexps with embedded NUL characters
9111	So far, the API promised that we could do that, but that wasn't implemented.
9112
9113	fa_compile: accept regexps with embedded NUL's
9114
9115	Make regexp_escape strip enclosing parens; make API const correct
9116	  * src/syntax.h (regexp_escape): make const correct
9117	  * src/regexp.h (regexp_escape): strip '(...)' enclosing entire regexp
9118
9119	* src/builtin.c (tree_clear_glue): primitive clear function for use in tests
9120
91212009-08-31  David Lutterkort  <lutter@redhat.com>
9122
9123	Utility function xasprintf
9124	Like asprintf, but don't leave first arg in limbo on error
9125
9126	*  src/internal.h (xasprintf): new prototype
9127	*  src/internal.c (xasprintf): new function
9128
91292009-08-31  David Lutterkort  <lutter@redhat.com>
9130
9131	regexp_release: allow NULL regexp
9132
9133	* src/augeas.c: do not read past the end of the load path
9134
91352009-08-14  David Lutterkort  <lutter@redhat.com>
9136
9137	Only read regular files
9138	  * src/transform.c (is_regular_file): new function
9139	  * src/transform.c (filter_generate): do not include non-regular files
9140
9141	Fixes bug #68
9142
91432009-08-12  David Lutterkort  <lutter@redhat.com>
9144
9145	Do not assume how glob allocates gl_pathv
9146	We assumed that the gl_pathv in a glob_t was allocated in a particular
9147	manner.
9148
9149	  * src/transform.c (filter_generate): make a copy of gl_pathv
9150
91512009-08-10  David Lutterkort  <lutter@redhat.com>
9152
9153	aug_load: cleanup variables when deleting /files
9154	The first thing aug_load does is delete /augeas/files and /files. We need
9155	to make sure that any variables that contain references to nodes in those
9156	subtrees are cleaned up properly, i.e. that we remove such nodes from
9157	nodesets in the variables.
9158
9159	  * src/augeas.c (tree_unlink_children): remove descendants of the tree we
9160	    are deleting from variables.
9161	  * tests/test-load.c (testLoadDefined): verify fix
9162
9163	Fixes bug #79
9164
91652009-08-10  David Lutterkort  <lutter@redhat.com>
9166
9167	Pass symtab explicitly into pathx_symtab_remove_descendants
9168
91692009-08-06  David Lutterkort  <lutter@redhat.com>
9170
9171	Record new files under /augeas/files when they are saved
9172	  * src/transform.c (transform_save): add file info with add_file_info
9173	  * tests/test-save.c: test that file info is added for a new file
9174	  * tests/Makefile.am: build and run test-save
9175	  * .gitignore: ignore tests/test-save
9176
9177	Fixes bug #78
9178
91792009-08-06  David Lutterkort  <lutter@redhat.com>
9180
9181	* src/transform.c (add_file_info): change what we store about a file
9182	For a file FILE, we now only record the path and the info for the lens;
9183	instead of
9184
9185	  /augeas/files/FILE/path      = /files/FILE
9186	  /augeas/files/FILE/lens/info = ...
9187	  /augeas/files/FILE/lens/id = 0x...
9188
9189	we only record
9190
9191	  /augeas/files/FILE/path  = /files/FILE
9192	  /augeas/files/FILE/lens  = ...
9193
9194	The id wasn't useful to anybody, and the lens info is useful for debugging
9195	at best
9196
91972009-08-06  David Lutterkort  <lutter@redhat.com>
9198
9199	* src/transform.c (add_file_info): minor cleanup
9200	  - Rename add_load_info to add_file_info
9201	  - Eliminate filename argument, since it's redundant
9202
92032009-08-06  David Lutterkort  <lutter@redhat.com>
9204
9205	defnode: when creating new node, put it in the nodeset
9206	When a new node is created, e.g. with 'defnode x "/foo[0 = 1]"' we used to
9207	assign an empty nodeset to x. Now x will hold a reference to the newly
9208	created node, even though the initial path expression would never match any
9209	nodes.
9210
9211	  * src/augeas.c (aug_defnode): call pathx_symtab_assign_tree after
9212	    creating a node
9213	  * src/pathx.c (pathx_symtab_assign_tree): new function to assign a single
9214	    tree node to a variable
9215	  * src/internal.h: declare pathx_symtab_assign_tree
9216	  * tests/test-xpath.c (test_defnode_nonexistent): test new behavior
9217
92182009-08-05  David Lutterkort  <lutter@redhat.com>
9219
9220	* src/lexer.l: allow DOS line endings
9221	Accept \r\n as a line ending in addition to \n
9222
9223	Fixes RH Bugzilla 514712
9224
92252009-08-04  Matthew Booth  <mbooth@redhat.com>
9226
9227	Require quotes around strings in xorg.conf
9228	man xorg.conf appears to support this:
9229	           String      a string enclosed in double quote marks (")
9230
9231	This change means that explicitly parsed values will remove quotes in the
9232	get directory and insert them in the put direction.
9233
9234	Currently, only the following entries are explicitly parsed:
9235	* Option
9236	* Screen
9237	* InputDevice
9238	* Driver
9239	* SubSection
9240	* Identifier
9241	* VideoRam
9242	* DefaultDepth
9243	* Device
9244	* All entries in the Display Subsection
9245
9246	The lens will also accept any other entry name not in this list. However,
9247	as it does not know what types to expect, it stores a bare string. This
9248	will include quote marks.
9249
92502009-08-04  Matthew Booth  <mbooth@redhat.com>
9251
9252	Add more specific entry handlers to xorg.conf
9253	Additionally handle:
9254	* Driver
9255	* Identifier
9256	* VideoRam
9257	* DefaultDepth
9258
9259	This covers all entries in the default configuration.
9260
9261	The advantage of having a specific handler is that it knows more about what
9262	values are valid. For example, with this patch Driver will not accept an
9263	unquoted value, which would cause the X server not to start.
9264
92652009-08-04  Matthew Booth  <mbooth@redhat.com>
9266
9267	Parse more directives in xorg.conf
9268	The default xorg.conf generated by pyxf86config on Red Hat/Fedora systems
9269	is not parsed by the current xorg.conf. Specifically it does not
9270	understand:
9271
9272	* Screen, in ServerLayout
9273	* InputDevice, in ServerLayout
9274	* SubSection "Display" ..., in Screen
9275
9276	This patch adds support for those values, so that the default xorg.conf on
9277	Red Hat/Fedora systems now parses.
9278
9279	It should also add support for all directives in the Display subsection,
9280	however they are not covered by the test.
9281
92822009-07-31  Marc Fournier  <marc.fournier@camptocamp.com>
9283
9284	vim: extra carriage return caused a parse error
9285
92862009-07-23  Jim Meyering  <meyering@redhat.com>
9287
9288	tests: extract SELinux context more portably
9289	* test-preserve.sh: Use stat --format=%C $hosts ... rather than
9290	ls -lZ $hosts | cut -d ' ' -f 5.  The latter fails with some
9291	combinations of ls and SELinux.
9292
92932009-07-16  David Lutterkort  <lutter@redhat.com>
9294
9295	* src/Makefile.am: link libfa with gnulib, needed on AIX
9296
92972009-07-14  Bruno Cornec  <Bruno.Cornec@hp.com>
9298
9299	* doc/augeas.vim: vi syntax highlighting for .aug files
9300
93012009-07-13  David Lutterkort  <lutter@redhat.com>
9302
9303	Version 0.5.2
9304
93052009-07-09  David Lutterkort  <lutter@redhat.com>
9306
9307	tree handling: propagate dirty flag into root
9308	We had an off-by-one error in tree_mark_dirty that lead to the root of the
9309	tree not being marked as dirty. As a consequence, performing a tree_clean
9310	on such a tree would not mark the tree as clean; that caused an aug_load
9311	directly followed by aug_save to write to disk, even though the tree was
9312	unchanged.
9313
9314	  * src/augeas.c (tree_mark_dirty): propagate dirty flag to the root
9315	  * tests/test-load.c (testLoadSave): test that simple load + save
9316	    does not touch the filesystem
9317
9318	This bug was introduced in commit 7278965b
9319
93202009-07-08  David Lutterkort  <lutter@redhat.com>
9321
9322	Ntp: allow additional options for server etc.
9323	Allow options listed on http://doc.ntp.org/4.2.4/confopt.html
9324
9325	Fixes bug #72 reported by Micah
9326
93272009-07-08  David Lutterkort  <lutter@redhat.com>
9328
9329	Shellvars: allow backticks as quote characters
9330	  * lenses/shellvars.aug (simple_value): allow backticks as quotes
9331	  * lenses/tests/test_shellvars.aug: add tests
9332
9333	Fixes bug #74 reported by Micah
9334
93352009-07-08  Jim Meyering  <meyering@redhat.com>
9336
9337	build: ignore generated test files
9338	* tests/.gitignore: Remove file.
9339	* .gitignore: ignore tests/lens-*.sh
9340
93412009-07-08  David Lutterkort  <lutter@redhat.com>
9342
9343	Logrotate: allow filenames to be indented
9344	  * lenses/logrotate.aug (rule): allow indentation at start of rule
9345	  * lenses/tests/test_logrotate.aug: add tests
9346
9347	Fixes part of bug #67 reported by Micah
9348
93492009-07-08  David Lutterkort  <lutter@redhat.com>
9350
9351	Logrotate: make owner/group in create statement optional
9352	  * lenses/logrotate.aug (create): make mode/owner/group optional
9353	  * lenses/test/test_logrotate.aug: add tests
9354
9355	Fixes part of bug #67 reported by Micah
9356
93572009-07-08  David Lutterkort  <lutter@redhat.com>
9358
9359	* configure.ac: use AC_SYS_LARGEFILE
9360	Suggested by Jeff Johnson <n3npq@mac.com>
9361
93622009-07-08  David Lutterkort  <lutter@redhat.com>
9363
9364	* src/augeas.c (init_root): when root0 == "", use "/" as root
9365	When an empty string is passed as root0, make sure we do not make an
9366	invalid memory access when we look for the trailing slash.
9367
9368	Reported and fix suggested by Jeff Johnson <n3npq@mac.com>
9369
93702009-06-26  Jim Meyering  <meyering@redhat.com>
9371
9372	tests: divide test-lenses.sh into its 54 independent tests
9373	This permits these tests to be run in parallel.
9374	* tests/lens-test-1: New file.
9375	* tests/Makefile.am (lens_tests): Define.
9376	(check-lens-tests): New rule, to ensure that the above stays in
9377	sync with reality.
9378	(check): Depend on check-lens-tests.
9379	($(lens_tests)): New rule.  Generate these files.
9380	(check_SCRIPTS): Remove test-lenses.sh.  Add $(lens_tests).
9381	(EXTRA_DIST): Add lens-test-1.
9382	* tests/test-lenses.sh: Remove file.
9383	* tests/.gitignore: suppress lens-*.sh files
9384
9385	enable automake-1.11 features: colorized and parallel tests, etc.
9386	Also enable automake's new "silent-rules" feature.
9387	Use "make V=1" to see the usual, verbose-mode commands.
9388	* configure.ac: Require automake-1.11.
9389	Enable color-tests parallel-tests.  Use AM_SILENT_RULES([yes])
9390
93912009-06-26  Marc Fournier  <marc.fournier@camptocamp.com>
9392
9393	Yum: also read files in /etc/yum/pluginconf.d
9394
93952009-06-16  David Lutterkort  <lutter@redhat.com>
9396
9397	Inittab: clean up formatting some
9398
93992009-06-16  Matt Palmer  <matt@anchor.net.au>
9400
9401	Inittab: simplified schema, map comments
9402	Change the structure of the inittab lens so that the 'id' field is used
9403	as the name of the subtree for that line in /etc/inittab.
9404
9405	Map comments as '#comment' nodes
9406
94072009-06-16  David Lutterkort  <lutter@redhat.com>
9408
9409	augtool: add --echo option
9410	  * src/augtool.c: add --echo option to print commands when reading
9411	                   from a file via stdin
9412	  * man/augtool.pod: document --echo option
9413	  * man/augtool.1: regenerated
9414
94152009-06-15  Jim Meyering  <meyering@redhat.com>
9416
9417	build: fix "make distcheck" failure
9418	* src/Makefile.am (EXTRA_DIST): Add fa_sym.version.
9419
94202009-06-12  Anders F Bjorklund  <afb@users.sourceforge.net>
9421
9422	* tests/augtest: convert darwin's double slashes to single slash
9423
9424	* test-test-preserve.sh: work with BSD ls, as well as GNU ls
9425	Needed to make the test pass on OS/X
9426
94272009-06-11  David Lutterkort  <lutter@redhat.com>
9428
9429	libfa: use linker script to only export public symbols
9430	libfa was exporting all kinds of symbols that were meant to be internal;
9431	now it only exports what's in fa.h
9432
94332009-06-11  Anders F Bj�rklund  <afb@users.sourceforge.net>
9434
9435	configure: do not use version script if the linker doesn't support it
9436	That is the case on OS X
9437
9438	Fixes part of ticket #66
9439
94402009-06-11  Anders F Bj�rklund  <afb@users.sourceforge.net>
9441
9442	configuration: check whether rl_completion_matches is available
9443	That function is missing on OS/X; we substitute it with a dummy if readline
9444	does not provide it.
9445
9446	Fixes part of ticket #66
9447
94482009-06-11  Anders F Bj�rklund  <afb@users.sourceforge.net>
9449
9450	* src/augtool.c: add missing include for ctype.h
9451	Part of fix for ticket #66
9452
94532009-06-09  David Lutterkort  <lutter@redhat.com>
9454
9455	Version 0.5.1
9456
9457	* tests/test-put-symlink.sh: fix broken test
9458	- use lenses in ../lenses
9459	- fix typo: HOSTS_AUGSAVE, not HOSTS_AGSAVE
9460
9461	* bootstrap: use getline module from gnulib
9462
9463	* src/augtool.c: initialize 'line' to NULL
9464
94652009-06-05  David Lutterkort  <lutter@redhat.com>
9466
9467	Logrotate (hooks): simplify to speed up typechecker
9468
9469	Logrotate: make newline at end of script optional
9470
9471	* src/put.c (put_store): escape regexp before printing
9472
9473	* src/pathx.c: coerce the operands of 'and'/'or' to boolean
9474	Fixes bug #44
9475
9476	* src/lexer.l: allow empty regexps
9477	Fixes bug #34
9478
9479	Dnsmasq: process files in /etc/dnsmasq.d/*
9480	Fixes bug #65 reported by abnormaliti
9481
94822009-06-01  David Lutterkort  <lutter@redhat.com>
9483
9484	* src/augtool.c: allow comments starting with '#'
9485
94862009-05-29  David Lutterkort  <lutter@redhat.com>
9487
9488	Whitespace cleanup (no functional change)
9489	Remove trailing whitespace
9490
94912009-05-29  David Lutterkort  <lutter@redhat.com>
9492
9493	Ntp: support more commands
9494	* process 'broadcastdelay'
9495	* process enable/disable flags
9496	* process leapfile
9497
9498	Minor amount of code cleanup
9499
9500	Fixes bug #62, reported by Frank Sweetser
9501
95022009-05-29  David Lutterkort  <lutter@redhat.com>
9503
9504	Fix grammar docs (production for PrimaryExpr was wrong)
9505
9506	* tests/root/etc/: add group and passwd files
9507
95082009-05-28  Matt Palmer  <matt@anchor.net.au>
9509
9510	Interfaces: various bug fixes
9511	* disallow end-of-line comments
9512	* support generic allow-* stanzas
9513
9514	Interfaces: accept options containing '_'
9515	Bug reported by Jonas Eriksson
9516
95172009-05-28  David Lutterkort  <lutter@redhat.com>
9518
9519	* tests/grub-rm-entry.rb: 'savedefault' indented by '\t', not ''
9520
95212009-05-14  David Lutterkort  <lutter@redhat.com>
9522
9523	Modprobe: handle comments at the end of a line
9524
95252009-04-13  David Lutterkort  <lutter@redhat.com>
9526
9527	Grub: allow optional argument for savedefault command
9528
9529	Grub: parse arguments to chainloader command
9530
9531	Grub: parse arguments for terminal command
9532
9533	Grub: parse individual arguments for serial command
9534
9535	Grub: parse kernel and module arguments
9536
9537	Grub: simplify comment_re to speed up typecheck
9538
95392009-04-13  Raphael Pinson  <raphink@gmail.com>
9540
9541	Cron: add a "time" node
9542
95432009-04-13  David Lutterkort  <lutter@redhat.com>
9544
9545	* src/augeas.h: improve some comments
9546
95472009-04-09  David Lutterkort  <lutter@redhat.com>
9548
9549	* src/augparse.c: add --notypecheck option
9550
95512009-04-08  Raphael Pinson  <raphink@gmail.com>
9552
9553	Pbuilder: lens and tests for Debian's personal builder
9554
9555	Shellvars: map comments with Util.comment and Util.empty
9556
9557	Shellvars: parse 'export' and 'unset' commands
9558
95592009-04-08  David Lutterkort  <lutter@redhat.com>
9560
9561	Add Cron to the dosumentation menu
9562
95632009-04-08  Raphael Pinson  <raphink@gmail.com>
9564
9565	Cron: new lens and test
9566	Parses /etc/crontab and /etc/cron.d
9567
95682009-04-08  Raphael Pinson  <raphink@gmail.com>
9569
9570	Sudoers: allow backslashes inside sto_to_com and sto_to_com_user
9571	This patch fixes ticket #60 which reports the possible usage of
9572	backslashes in sudoers aliases (for use with e.g. Windows resources).
9573
9574	Backslashes are now allowed only in the middle of sto_to_com and
9575	sto_to_com_cmnd.
9576
9577	Additionally, add a line with backslashes in test_sudoers to prevent
9578	regressions.
9579
95802009-04-08  Raphael Pinson  <raphink@gmail.com>
9581
9582	Xinetd: map comments using Util.comment
9583
9584	Squid: allow indentation of entries
9585
95862009-04-07  Raphael Pinson  <raphink@gmail.com>
9587
9588	Logrotate: allow = as a separator for value_to_eol
9589	Fix ticket #61 by allowing "=" as a valid separator in value_to_eol.
9590	"word" may not contain "=" anymore in this case.  Note that this is not
9591	documented in "man logrotate" but is shipped by default in CentOS (cf
9592	ticket #61).
9593
95942009-04-07  David Lutterkort  <lutter@redhat.com>
9595
9596	Ntp: fixes to make the default Fedora config work
9597	Now enough of ntp.conf is understood so that the config from Fedora 10 with
9598	all directives uncommented can be processed.
9599
96002009-04-07  Raphael Pinson  <raphink@gmail.com>
9601
9602	Ntp: add fudge directive
9603	Fixes ticket #59
9604
96052009-04-07  David Lutterkort  <lutter@redhat.com>
9606
9607	* src/transform.c (transform_save): append newline to old text
9608	If we appended a newline to initially load the file, we also need to do
9609	that when we parse the file again during save.
9610
9611	Bug reported by Michael Conigliaro <mike@conigliaro.org>
9612
96132009-04-03  David Lutterkort  <lutter@redhat.com>
9614
9615	* src/augtool.c: new option --noautoload
9616
9617	* src/augeas.h: expose flag to suppress module autoload
9618	With AUG_NO_MODL_AUTOLOAD, modules are only loaded when they are needed.
9619
9620	* src/transform.c (filter_generate): avoid segfault if we never call glob
9621
9622	Php: some more tests, sample php.ini in test root
9623
9624	Rx: remove \b and \d escapes
9625
96262009-04-03  Raphael Pinson  <raphink@gmail.com>
9627
9628	Modify some existing lenses to use new utility modules
9629	Changes Aliases, Exports, Fstab, Group, and Monit
9630
9631	Also exposes comments in /etc/aliases as #comment nodes
9632
96332009-04-03  Raphael Pinson  <raphink@gmail.com>
9634
9635	New utility modules Build, Rx, and Sep
9636
96372009-04-03  Marc Fournier  <marc.fournier@camptocamp.com>
9638
9639	Php: added default path on redhat
9640
96412009-04-02  Raphael Pinson  <raphink@gmail.com>
9642
9643	Use readline only when stdin is a tty, use getline otherwise
9644
96452009-04-01  Marc Fournier  <marc.fournier@camptocamp.com>
9646
9647	Vsftpd: several fixes
9648	* map comments as #comment
9649	* handle empty lines
9650	* find vsftpd.conf on Fedora/RHEL
9651
96522009-03-27  David Lutterkort  <lutter@redhat.com>
9653
9654	Iptables: fix ticket #51
9655	 * allow more characters in chain names
9656	 * allow comments mixed in with chains and rules
9657
9658	* augeas.spec.in: fadot is not installed yet
9659
9660	Version 0.5.0
9661
9662	Fix build problems uncovered by distcheck
9663
9664	* src/get.c (get_quant_star): do not leak registers
9665
9666	Some more test files
9667
9668	Fix uninitialized variables found by optimizer
9669
9670	* src/hash.c (hash_free_nodes): simplify and accelerate
9671	Reduces time to typecheck grub.aug from 9.8s to 8.5s on my machine.
9672
9673	* src/hash.c: mark some asserts as expensive
9674
9675	* tests/root/etc/krb5.conf: simple example file
9676
9677	Krb5: lens and tests for /etc/krb5.conf
9678
96792009-03-25  Raphael Pinson  <raphink@gmail.com>
9680
9681	Grub: add support for Debian's update-grub (ticket #50)
9682	Bug reported by Micah Anderson
9683
96842009-03-25  David Lutterkort  <lutter@redhat.com>
9685
9686	* src/fa.c (fa_ambig_example): use heuristic for fast checking
9687	This avoids a lot of intersections in the Augeas typechecker, and speeds
9688	typechecking up by between 5% and 20%, depending on the lens.
9689
9690	Thanks to Nate Foster for the inspiration of this
9691
96922009-03-25  David Lutterkort  <lutter@redhat.com>
9693
9694	Sudoers: produce at most one negate node
9695	Even if there are multiple '!' signs, only produce one negate node.
9696
96972009-03-25  Raphael Pinson  <raphink@gmail.com>
9698
9699	Sudoers: fix ticket #48
9700	* make a difference between boolean and non boolean values for integers and
9701	  strings
9702	* allow multiple negate flags (odd/even numbers change the behaviour)
9703	* add optional double quotes to integer and string field
9704
9705	Bug reported by Frank Sweetser
9706
97072009-03-25  David Lutterkort  <lutter@redhat.com>
9708
9709	* src/augtool.c: make second argument for 'set' optional
9710	This makes it possible to set a tree node's value to the empty string
9711	with
9712	  set /foo ""
9713	and
9714	  set /foo
9715
97162009-03-24  David Lutterkort  <lutter@redhat.com>
9717
9718	* src/augeas.c (aug_init): make it easier to override distributed lenses
9719	Make the default load path
9720
9721	   $(datadir)/augeas/lenses:$(datadir)/augeas/lenses/dist
9722
9723	and instal the lenses we distribute into the dist/ subdir. That makes it
9724	easy for other packages to override lenses we ship: when they are installed
9725	into $(datadir)/augeas/lenses, they are automatically preferred over the
9726	ones we ship.
9727
97282009-03-24  David Lutterkort  <lutter@redhat.com>
9729
9730	New API call aug_defnode and augtool command defnode
9731	It's common that we want to define a variable to reference /foo/bar, and
9732	create that node if it does not exist yet. aug_defnode bundles that
9733	together into one convenient call.
9734
9735	* src/pathx.c (eval_filter): correctly hande realloc of value_pool
9736
9737	* src/pathx.c (expand_tree): ensure we start with a nonempty lp_trace
9738
9739	* src/augtool.c: new 'defvar' command
9740
9741	Add variables for path expressions
9742	The new API call aug_defvar allows defining variables that can later be
9743	used in path expressions.
9744
97452009-03-22  David Lutterkort  <lutter@redhat.com>
9746
9747	Add FilterExpr to path expression grammar
9748	This allows using constructs like $foo/some/path and $foo[2]
9749
9750	* src/augeas.c (parse_user_pathx): new parameter need_nodeset
9751
9752	* src/pathx.c (pathx_parse): new parameter need_nodeset
9753
9754	* src/pathx.c (ns_filter): new function
9755
9756	* src/pathx.c: rename E_LOCPATH to E_FILTER
9757
9758	* src/pathx.c (clone_value): new function
9759
97602009-03-21  David Lutterkort  <lutter@redhat.com>
9761
9762	* src/pathx.c (release_value): factor logic into separate function
9763
9764	* src/pathx.c: remove assumption that toplevel expression is a locpath
9765	We can't assume that anymore when we have variables. That requires some
9766	headache for pathx_expand_tree, since that needs a full trace of evaluating
9767	a locpath against the tree.
9768
9769	* src/pathx.c (pathx_eval): factor eval into a function
9770
9771	* examples/fadot: remove, checked in by mistake
9772
97732009-03-20  David Lutterkort  <lutter@redhat.com>
9774
9775	* .gitignore: ignore examples/fadot
9776
9777	* src/get.c: rename 'Short iteration' to a more helpful message
9778
9779	* src/transform.c (store_error): report which lens failed
9780
9781	* src/transform.c (store_error): ignore errors from err_set
9782
9783	* src/transform.c (store_error): calculate line number/ofs for error
9784
9785	* src/transform.c (err_set): new function
9786
97872009-03-20  Francis Giraldeau  <francis.giraldeau@revolutionlinux.com>
9788
9789	* examples/fadot.c: tool to generate dot graphs of FA's
9790	The fadot tool produces dot graphs of finite automata, and allows certain
9791	operations on FA's from the command line, like intersection and complement
9792	of FA's.
9793
97942009-03-19  David Lutterkort  <lutter@redhat.com>
9795
9796	* src/pathx.c: call make_value before pop_value
9797	Since make_value might realloc, pointers retrieved with pop_value may
9798	become invalid across make_value calls.
9799
9800	* src/augeas.c: remove some internal uses of pathx_parse
9801
9802	* src/augeas.c: create various /augeas nodes when they go missing
9803
9804	* src/put.c (create_concat): fix goofy error message
9805
9806	Update and refresh man pages
9807
9808	* src/augtool.c: add --noload option
9809
9810	Validate trees representing a transform before using them
9811
9812	* tests/test-load.c: new test for aug_load
9813
9814	* src/augeas.h (aug_init): make loading the tree optional
9815	The new flag AUG_NO_LOAD can be used to keep aug_init from loading any
9816	files. This gives the user a chance to modify /augeas/load and then call
9817	aug_load.
9818
9819	* src/augtool.c: new 'load' command
9820
9821	* src/augeas.h (aug_load): new public function
9822
9823	* src/transform.h: use tree encoded transforms
9824
9825	* src/lens.c (lens_release): allow NULL lens to be passed in
9826
9827	* src/syntax.h (lens_lookup): new function
9828
9829	* src/augeas.c: report transforms under /augeas/load
9830
9831	Rename AUG_NO_DEFAULT_LOAD to AUG_NO_MODL_AUTOLOAD
9832
9833	Limits (filter): no need to exclude anything
9834
98352009-03-19  Raphael Pinson  <raphink@gmail.com>
9836
9837	Limits: map domain into the value of domain node (schema change)
9838	Mapping the domain as the label of a node leads to difficulties since '*'
9839	is a valid domain name.
9840
9841	Problem reported by Mark Drayton (ticket #47)
9842
98432009-03-19  David Lutterkort  <lutter@redhat.com>
9844
9845	Lokkit: new lens and test
9846
98472009-03-17  David Lutterkort  <lutter@redhat.com>
9848
9849	Iptables: new lens and test
9850	A fairly basic parse of the iptables config file. It should accept any
9851	legal iptables config file; what makes it basic is that it doesn't break
9852	some of the values down as fine-grained as I would like to have them
9853
98542009-03-13  David Lutterkort  <lutter@redhat.com>
9855
9856	* configure.ac: bump major version of libfa
9857
9858	* src/fa.h (fa_as_regexp): cleaner prototype
9859
9860	* src/fa.h (fa_ambig_example): cleaner prototype
9861
9862	* src/fa.h (fa_example): cleaner prototype
9863
9864	* src/fa.h (fa_compile): pass in size of regexp
9865
9866	* src/fa.h: use 'struct fa *' instead of fa_t
9867
98682009-03-13  David Lutterkort  <lutter@redhat.com>
9869
9870	* src/augeas.c: fix handling of dirty flag
9871	Under some circumstances, we did not properly propagate the dirty flag up
9872	the tree, leading to files that were not saved even though they should have
9873	been.
9874
9875	This also removes two full sweeps over the tree for dirty handling, and now
9876	only touches nodes that are/need to be marked dirty.
9877
98782009-03-13  David Lutterkort  <lutter@redhat.com>
9879
9880	* Makefile.maint: different setup at home
9881
98822009-03-12  David Lutterkort  <lutter@redhat.com>
9883
9884	* src/transform.c (transform_save): properly sync data to disk
9885	Make sure the data we write into the .augnew file hits the disk before
9886	renaming to the proper name
9887
9888	Modprobe: lens and tests for modprobe.conf
9889
9890	* src/fa.c (re_cset_as_string): turn '[^\n]' into '.'
9891
9892	Place Sudoers and Util under LGPLv2+
9893	Raphael Pinson agreed to changing the license for these to LGPLv2+ like the
9894	rest of Augeas.
9895
98962009-03-09  David Lutterkort  <lutter@redhat.com>
9897
9898	Version 0.4.2
9899
9900	Logrotate: process 'minsize 1M' rule
9901	logrotate allows unit suffixes 'k', 'M' and 'G' for 'size' and 'minsize'
9902
9903	Squid: add squid.conf from Fedora 11 rawhide
9904
9905	* src/builtin.c: new builtins Sys.getenv and Sys.read_file
9906
9907	* src/syntax.h (dup_string): duplicate a string
9908
9909	* src/internal.h (xstrerror): new function
9910
99112009-03-09  Francois Deppierraz  <francois.deppierraz@camptocamp.com>
9912
9913	Test the Debian Lenny sample squid.conf
9914
99152009-03-09  Francois Deppierraz  <francois.deppierraz@camptocamp.com>
9916
9917	Add a bunch of keywords available on squid-2.7-STABLE6 or squid-3.HEAD-20090308.
9918	The keywords list was generated by the following command:
9919
9920	fgrep TAG squid-2.7.STABLE6/src/squid.conf.default  | awk '{ print "                | \""$3"\"" }' | sort > /tmp/squid2.7
9921
9922	fgrep TAG squid-3.HEAD-20090308/src/squid.conf.documented | awk '{ print "                | \""$3"\"" }' | sort > /tmp/squid3-HEAD
9923
9924	cat /tmp/squid2.7 /tmp/squid3-HEAD | sort | uniq
9925
99262009-03-08  David Lutterkort  <lutter@redhat.com>
9927
9928	* tests/xpath.tests: Hosts lens puts comments into #comment nodes
9929
9930	* augeas.spec.in: BR for libselinux-devel (bug #26)
9931	Without the BR, the Fedora and EPEL builds are done without SELinux
9932	support, resulting in a binary that does not preserve SELinux contexts
9933
99342009-03-06  David Lutterkort  <lutter@redhat.com>
9935
9936	Sshd: map comments as '#comment' nodes
9937
9938	Change the label for comment nodes to '#comment'
9939
9940	Do not delete files that had an error upon parsing
9941	When we can't read a file, we create an entry for it under /augeas, but
9942	there won't be anything for it under /files. That looks a lot like a file
9943	whose entire subtree was deleted; but since we failed reading the file, we
9944	should not delete it either.
9945
9946	* src/augeas.c (aug_init): always create /files
9947
9948	Sshd: add test showing how to add a Subsystem
9949
99502009-03-03  David Lutterkort  <lutter@redhat.com>
9951
9952	* Makefile.maint: add autogen target
9953
9954	* src/pathx.c (eval_rel): for numbers, '<' and '<=' were reversed
9955
9956	Postfix_main: handle continuation lines
9957
9958	* src/pathx.c: fix some comments
9959
99602009-03-02  David Lutterkort  <lutter@redhat.com>
9961
9962	Version 0.4.1
9963
9964	* configure.ac: make default warning level 'maximum'
9965	Using 'error' here is too unfriendly on weird platforms, since builds can
9966	fail, e.g. because of broken system headers. When doing actual development,
9967	set this to 'error'.
9968
9969	* src/pathx.c: function label() returning the label of the ctx node
9970
9971	* src/pathx.c: make sure ['foo' != 'foo'] is false
9972
99732009-03-02  David Lutterkort  <lutter@redhat.com>
9974
9975	* src/pathx.c: handle names with '.' properly
9976	Make sure that a component ina path expression like '.bar' is parsed as a
9977	single step (name), and not as the self axis '.' followed by some
9978	garbage.
9979
9980	Bug reported by Jan Kupec
9981
99822009-03-02  David Lutterkort  <lutter@redhat.com>
9983
9984	* src/pathx.c: it is an error if we don't consume the whole expression
9985
99862009-02-27  David Lutterkort  <lutter@redhat.com>
9987
9988	* tests/test-event-saved.sh: make sure fuiles are writable by owner
9989
99902009-02-25  David Lutterkort  <lutter@redhat.com>
9991
9992	Plug a few memory leaks
9993
9994	Remove files whose tree under /files was deleted
9995	When doing rm /files/etc/hosts, we now delete the file /etc/hosts
9996	on save
9997
9998	Move path formatting functions around
9999	Move path_expand and format_path to internal.c
10000	Rename format_path to path_of_tree
10001
10002	* src/augeas.c (tree_find): helper for getting a tree node
10003
100042009-02-24  David Lutterkort  <lutter@redhat.com>
10005
10006	* src/augeas.c: erase /augeas/events/saved only once
10007	tree_save is called recursively; /augeas/events/saved must be reset
10008	in aug_save, not tree_save
10009
10010	Record saved files in transform_save, not tree_save
10011
10012	* src/augeas.c (tree_unlink): remove and free a subtree
10013
10014	* src/transform.h: move transform decls out of syntax.h
10015
10016	Util.stdexcl: exclude .augsave and .augnew files
10017
100182009-02-20  David Lutterkort  <lutter@redhat.com>
10019
10020	* src/lexer.l: correct location info for strings and regexps
10021
10022	* src/get.c: check for valid match before calling token()
10023
100242009-02-19  David Lutterkort  <lutter@redhat.com>
10025
10026	* src/parser.y: do not allow epsilon as a tree constant
10027	This grammar mistake made epsilon a valid expression
10028
10029	* src/fa.c: cache hash values in the state
10030	This gives about a 15% performance improvement in typechecking
10031	the logrotate lens
10032
100332009-02-18  David Lutterkort  <lutter@redhat.com>
10034
10035	* src/pathx.c: allow '(' Expr ')'
10036
10037	* src/pathx.c: add 'and' and 'or' operators
10038
10039	* src/pathx.c: add relational expressions '>', '<', '>=', '<='
10040
10041	* src/pathx.c: add count() function
10042
10043	* src/pathx.c (parse_name): do not allow ')' in names
10044	Names can not contain ')', otherwise we will run beyond the end of
10045	arguments in a function call like 'f(name)'
10046
10047	* src/pathx.c: add position() function
10048
10049	* src/pathx.c: allow '=' and '!=' of numbers
10050
100512009-02-18  David Lutterkort  <lutter@redhat.com>
10052
10053	* src/pathx.c: fix matching multiple predicates
10054	We used to evaluate /path[pred1][last()] wrong - last() must match the last
10055	node in the nodeset /path[pred1], not the last node in the nodeset /path.
10056
10057	This requires that we compute nodesets explicitly.
10058
100592009-02-18  David Lutterkort  <lutter@redhat.com>
10060
10061	Logrotate: small fixes
10062	* recognize 'yearly' schedule
10063	* allow whitespaces around { and }
10064
100652009-02-17  David Lutterkort  <lutter@redhat.com>
10066
10067	* src/get.c: speed up initial match
10068	Avoid matching the entire input string, since it can be _very_ slow.
10069	Since it is very common that the toplevel lens is (l)*, optimize for
10070	that.
10071
10072	* src/get.c: reduce the number of calls to regexp_match
10073	Only call the regexp matcher at the very beginning of get/parse, and once
10074	for every match inside an iteration. Use re_registers to keep track of the
10075	substrings being worked on in favor of 'struct split'
10076
10077	Always do REGS_REALLOCATE for regexp match registers
10078
10079	* src/regexp.c: clean up syntax options
10080
10081	* src/put.c: remove outdated debug msgs and comments
10082
10083	* src/internal.h: Remove bogus DEBUG define
10084
10085	Ntp: enhance lens
10086	These enhancements are needed to make the Ntp.lns process the default
10087	/etc/ntp.conf on Fedora
10088
100892009-02-16  David Lutterkort  <lutter@redhat.com>
10090
10091	* src/syntax.c: print tests results in the same form we read them
10092
100932009-02-13  David Lutterkort  <lutter@redhat.com>
10094
10095	Allow passing NULL regexps in some regexp routines
10096
100972009-02-13  Raphael Pinson  <raphink@gmail.com>
10098
10099	Xorg: new lens and tests
10100
101012009-02-11  David Lutterkort  <lutter@redhat.com>
10102
10103	Test that an invalid regexp makes module loading fail
10104
10105	Services: various small fixes to process Fedora's /etc/services
10106
10107	* tests/test-get.sh: print all error info on failure
10108
10109	Better error mesages when re match fails during get/put
10110
10111	* src/lens.c: throw exception on regexp syntax errors
10112
10113	* src/fa.c: test for invalid ranges like [z-a]
10114
101152009-02-11  Raphael Pinson  <raphink@gmail.com>
10116
10117	Lens and test for /etc/services
10118
101192009-02-11  David Lutterkort  <lutter@redhat.com>
10120
10121	* src/augtool.c (cmd_match): check return from aug_match more defensively
10122
101232009-02-06  David Lutterkort  <lutter@redhat.com>
10124
10125	Version 0.4.0
10126
10127	Use printf instead of 'echo -e' in tests
10128	Printf is more portable
10129
10130	Fix compilation on OpenSolaris
10131	* src/pathx.c (position): assert not marked as noreturn
10132
10133	* 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
10134
10135	* src/pathx.c: remove the value() function, it's redundant with '.'
10136
10137	* pathx.c: when comparing strings consider NULL == ""
10138
10139	Change how names are parsed in path expressions
10140	Names can not contain any of the characters [][=/ \t\n] - to include
10141	them in a name, they need to be escaped with a '\', so that 'foo\=bar'
10142	matches a node with literal label 'foo=bar'.
10143
10144	* tests/grub-rm-entry.rb: fix test failure
10145
10146	* tests/augtest: do not typecheck everything
10147	The typecheck is redundant (we already do that when running lens tests) and
10148	really slow
10149
101502009-02-06  David Lutterkort  <lutter@redhat.com>
10151
10152	Grub: process 'savedefault' in boot stanza
10153	Also, allow keywords to be preceded by whitespace
10154
10155	Fixes ticket #36
10156
101572009-02-06  David Lutterkort  <lutter@redhat.com>
10158
10159	Minor whitespace cleanup
10160
101612009-02-02  Free Ekanayaka  <free@64studio.com>
10162
10163	Lens and tests for DarkIce
10164	See http://darkice.tyrell.hu/
10165
101662009-02-01  David Lutterkort  <lutter@redhat.com>
10167
10168	* src/augeas.c: use ALLOC instead of CALLOC
10169
10170	* augeas.c (aug_init): check an allocation failure
10171
10172	* src/internal.c (escape, unescape): check allocation failures
10173
10174	* src/pathx.c (free_state): allow NULL state
10175
10176	* src/augeas.c (init_root): check for failure of strdup
10177
101782009-01-30  David Lutterkort  <lutter@redhat.com>
10179
10180	* src/pathx.c: factor test if a step matches into step_matches
10181	This also fixes a problem matching, test also included
10182
10183	* src/pathx.c: use bool for boolean values
10184
10185	Build changes so that 'make' on Opensolaris 5.11 works
10186	The tests ('make check') still fail, because of trouble with
10187	some of the shell scripts
10188
10189	* src/transform.c: use POSIX conform FNM_PATHNAME, nut GNU alias
10190
10191	* src/get.c: remove braindead use of alloca
10192
10193	* tests/test-get.sh: use new descendant syntax to find errors
10194
10195	Remove unneeded call to pathx_parse in aug_match
10196
10197	Introduce parse_user_pathx to report errors
10198	If user-supplied path expressions have errors, report them in
10199	/augeas/pathx/error
10200
10201	Move parsing of path expressions into public API methods
10202	For path expressions that are passed through the API, we need to report
10203	errors. This change lays the groundwork, so that we can distinguish between
10204	parsing user-supplied path expressions and internally generated path
10205	expressions.
10206
10207	Rename aug_tree_replace to tree_replace
10208	We reserve the aug_ prefix for public functions. There is also no need to
10209	pass struct augeas here, a tree root is enough.
10210
10211	More xpath tests; allow ... in tests
10212
10213	Simplify internal API's
10214	* pass origin, not root to pathx_parse
10215	* pathx_next does not need an explicit argument for the current
10216	  tree node any more
10217
102182009-01-30  David Lutterkort  <lutter@redhat.com>
10219
10220	Expand the grammar for path expressions
10221	* add predicates based on labels and values
10222	* allow path expressions in predicates, e.g. '/foo/bar[../baz = "7"]'
10223	* add explicit axes and some abbreviations thereof
10224
10225	This requires a rewrite of the interpreter of path expressions; the
10226	interpreter is now based on a more explicit representation of the abstract
10227	syntax of the path expression and is statically type checked.
10228
10229	Also add tests to check path expression evaluation
10230
102312009-01-30  David Lutterkort  <lutter@redhat.com>
10232
10233	Use absolute paths in lens tests when manipulating the tree
10234	Paths that start with a number (like '1/ipaddr') are ambiguous in the new
10235	path expression grammar and will confuse the parser; to make it clear that
10236	they are paths, and not just a number, use absolute paths.
10237
10238	Notes on new XPath grammar
10239
10240	Rename struct path to struct pathx
10241	Also rename path_* functions to pathx_*; rename make_pathx to pathx_parse
10242	and change its signature to allow cleaner error reporting
10243
102442009-01-29  David Lutterkort  <lutter@redhat.com>
10245
10246	Grub: support color directive
10247
102482009-01-26  David Lutterkort  <lutter@redhat.com>
10249
10250	Version 0.3.6
10251
102522009-01-26  Dominique Dumont  <dominique.dumont@hp.com>
10253
10254	Sshd: add documentation on usage
10255
102562009-01-25  David Lutterkort  <lutter@redhat.com>
10257
10258	Add indented puppet.conf to test root
10259
102602009-01-22  David Lutterkort  <lutter@redhat.com>
10261
10262	Fix bug #25 - allow indented entries in puppet.conf
10263	* lenses/inifile.aug: add new indented_entry and indented_title
10264	  lenses
10265	* lenses/puppet.aug: use the indented_* lenses
10266	* lenses/tests/test_puppet.aug: test with indented entries
10267
102682009-01-19  David Lutterkort  <lutter@redhat.com>
10269
10270	Report version and legal save modes in /augeas/version
10271
102722009-01-17  David Lutterkort  <lutter@redhat.com>
10273
10274	* ref.h: include limits.h, since we use UINT_MAX
10275
102762009-01-16  David Lutterkort  <lutter@redhat.com>
10277
10278	Mark up code in documentation comments for Dpkg and Exports
10279
102802009-01-16  Robin Lee Powell  <rlpowell@digitalkingdom.org>
10281
10282	Documentation for Exports and Dpkg
10283
102842009-01-13  David Lutterkort  <lutter@redhat.com>
10285
10286	Minor changes to handling of save flag
10287	* complain if /augeas/save is missing or has an invalid value
10288	* do not clobber non-save flags when updating from /augeas/save
10289	* add a test
10290
102912009-01-13  Bryan Kearney  <bkearney@redhat.com>
10292
10293	Dynamically change behavior of aug_save; add noop save mode
10294	* control behavior of aug_save through changing /augeas/save
10295	* noop mode allows checking if changes will be written, without
10296	  changing file system
10297
102982009-01-08  Jim Meyering  <meyering@redhat.com>
10299
10300	comment typos
10301
10302	plug a leak
10303	24 bytes in 1 blocks are definitely lost in loss record 1 of 1
10304	   at 0x4021BDE: calloc (vg_replace_malloc.c:397)
10305	   by 0x4029379: make_tree (augeas.c:316)
10306	   by 0x403AC70: get_lens (get.c:592)
10307	   by 0x403ACB6: get_lens (get.c:523)
10308	   by 0x403AB4F: get_lens (get.c:474)
10309	   by 0x403ACDE: get_lens (get.c:523)
10310	   by 0x403AB4F: get_lens (get.c:474)
10311	   by 0x403AF20: lns_get (get.c:684)
10312	   by 0x4034E81: lens_get (builtin.c:124)
10313	   by 0x402CDC7: native_call (syntax.c:967)
10314	   by 0x402F4C9: compile_exp (syntax.c:1574)
10315	   by 0x402EF17: compile_exp (syntax.c:1487)
10316	   by 0x402FEEC: __aug_load_module_file (syntax.c:1600)
10317	   by 0x80489AE: main (augparse.c:86)
10318
10319	test ls output more portably in face of SELinux differences
10320	* test-preserve.sh: Use cut -b1-10 to get mode from ls -l output.
10321	Use ls -lZ (not ls -Z, which is not portable) to get SELinux context.
10322
103232009-01-04  Arnaud Gomes-do-Vale  <arnaud.gomes@ircam.fr>
10324
10325	* src/Makefile.am: fix bz #478619 - do not use abspath
10326
103272009-01-03  Robin Lee Powell  <rlpowell@digitalkingdom.org>
10328
10329	Dpkg: new lens and test
10330
103312009-01-03  David Lutterkort  <lutter@redhat.com>
10332
10333	Php: expand filter slightly
10334	Suggested by Robin Lee Powell <rlpowell@digitalkingdom.org>
10335
103362008-12-29  David Lutterkort  <lutter@redhat.com>
10337
10338	Fix segfault when branch in a union does not have a ktype
10339	* src/lens.c (lns_key_regexp): check for NULL ktype of branch
10340	* tests/modules/pass_union_nokey.aug: test the fix
10341
10342	Bug reported by Robin Lee Powell <rlpowell@digitalkingdom.org>
10343
103442008-12-27  Free Ekanayaka  <free@64studio.com>
10345
10346	Add soma lens and test
10347
10348	Add limits lens and test
10349
103502008-12-24  David Lutterkort  <lutter@redhat.com>
10351
10352	* autogen.sh: remove bogus argument to configure
10353
103542008-12-24  Marc Fournier  <marc.fournier@camptocamp.com>
10355
10356	Php, Gdm: exclude literal ".anon" from title, not regexp /.anon/
10357
103582008-12-24  Free Ekanayaka  <free@64studio.com>
10359
10360	Phpvars: allow whitespaces before the \n in the <?php head line
10361
103622008-12-23  David Lutterkort  <lutter@redhat.com>
10363
10364	Version 0.3.5
10365
10366	* transform.c (transfer_file_attrs): ignore SELinux failures if filesystem   does not support extended attributes
10367
10368	* transform.c (clone_file): fix #32; only copy if   /augeas/save/copy_if_rename_fails exists
10369
10370	Group: split list of users, make it optional
10371	The list of users in a group is now split into individual 'user/'
10372	nodes. If a group has no members, no user/ nodes are produced.
10373
103742008-12-23  Free Ekanayaka  <free@64studio.com>
10375
10376	Add lens and test for /etc/group
10377
103782008-12-23  David Lutterkort  <lutter@redhat.com>
10379
10380	Simpler interface and implementation for path_find_one
10381
10382	Add path_expand_tree
10383	Instead of calling path_find_one/tree_create
10384
10385	Move implementation dealing with path expressions into separate file
10386
10387	Simplify searching in the tree by using parent pointers
10388	Segments do not need to track the tree node where they matched anymore,
10389	since we can get the same information by following parent pointers.
10390
103912008-12-23  David Lutterkort  <lutter@redhat.com>
10392
10393	Make finding the parent and siblings of a node uniform
10394	All nodes (including the root) now have a parent node, so
10395	that the start of the list of siblings can be found as
10396	tree->parent->children for any node.
10397
10398	All 'standalone' trees now have a fake root, called 'origin' whose
10399	children are the real root nodes. Another way to look at this is
10400	that the tree is now edge-labeled.
10401
104022008-12-23  David Lutterkort  <lutter@redhat.com>
10403
10404	Rename seg_siblings to tree_siblings
10405
10406	Add an explicit parent pointer to the tree
10407
104082008-12-23  Free Ekanayaka  <free@64studio.com>
10409
10410	Lens and test for config files using PHP-style variables
10411	Process /etc/squirrelmail/config.php
10412
104132008-12-23  Marc Fournier  <marc.fournier@camptocamp.com>
10414
10415	New lens and tests for /etc/rsyncd.conf
10416	rsyncd.conf is an ini file which allows indented
10417	parameters (like smb.conf) as well as entries outside
10418	any section (like php.ini).
10419
104202008-12-23  David Lutterkort  <lutter@redhat.com>
10421
10422	* fa.c: mark '.' as a special character that needs to be escaped
10423
104242008-12-22  David Lutterkort  <lutter@redhat.com>
10425
10426	Notes on the expanded XPath notation
10427
104282008-12-22  Free Ekanayaka  <free@64studio.com>
10429
10430	Add lens and test for /etc/passwd
10431
10432	Shellvars: process two more files on Debian
10433	Add /etc/arno-iptables-firewall/debconf.cfg and /etc/cron-apt/config
10434
10435	Add lenses and tests for postfix's main.cf and master.cf
10436
10437	Squid: new lens for squid.conf
10438
10439	Webmin: new lens
10440
104412008-12-16  David Lutterkort  <lutter@redhat.com>
10442
10443	Shellvars: load /etc/sysconfig/sendmail
10444
104452008-12-03  David Lutterkort  <lutter@redhat.com>
10446
10447	Xinetd: make sure equal sign is surrounded by spaces
10448	Fix ticket #30
10449
10450	* lenses/xinetd.aug: make sure new equal signs have a space before
10451	  and after them; indent attributes with a tab by default
10452	* lenses/tests/test_xinetd.aug: add test
10453
104542008-11-20  David Lutterkort  <lutter@redhat.com>
10455
10456	Sshd: change the structure of Condition subtrees
10457	The conditions for a match block are now a single subtree, instead of
10458	one subtree per condition.
10459
104602008-11-19  David Lutterkort  <lutter@redhat.com>
10461
10462	Only try to save backup file if original exists
10463	* transform.c (transform_save): check that original exists before
10464	creating backup
10465
10466	Fix saving of files where backup/new and target are on different devices
10467	* transform.c (clone_file): new function
10468	* transform.c (transform_save): if rename fails because new/backup file
10469	  and target file are on different devices, copy the files
10470
104712008-11-05  David Lutterkort  <lutter@redhat.com>
10472
10473	* Makefile.maint: add target tag-release
10474
10475	Version 0.3.4
10476
10477	* test-preserve.sh: check that augtool -b produces a backup
10478
104792008-10-30  David Lutterkort  <lutter@redhat.com>
10480
10481	Fix problem with transferring file attributes during save
10482	* src/transform.c(transform_save): transfer attributes from the original to
10483	  the new file as soon as the new file is created; create a .augsave file
10484	  as a hardlink, not by renaming
10485	* src/transform.c(file_replace): pull out the code to transfer attributes
10486	  into new function transfer_file_attrs; rename of new file to original is
10487	  now done in transform_save
10488
104892008-10-24  David Lutterkort  <lutter@redhat.com>
10490
10491	Version 0.3.3
10492
10493	* Makefile.maint: add upload target
10494
10495	Modest beginnings of a maiintainer Makefile
10496	* Makefile.maint: new file
10497
10498	Undo API breakage introduced in commit 48c285c
10499	* src/augeas.c (aug_save): return 0 on success, instead of the number of
10500	  files changed
10501	* src/augtool.c (cmd_save): get the number of files changed from aug_match
10502
10503	build: use LIB_SELINUX as set by gnulib
10504	* configure.ac: do not set up LIB_SELINUX, gnulib does that
10505
105062008-10-22  Sylvain Baubeau  <bob@glumol.com>
10507
10508	Grub: support "rootnoverify" and "chainloader" directives
10509
105102008-10-21  David Lutterkort  <lutter@redhat.com>
10511
10512	Version 0.3.2
10513
10514	test-preserve.sh: do not check SELinux context on non-SELinux systems
10515
10516	test-events-saved.sh: sort the list of saved files
10517
10518	aug_save: report saved files in /augeas/events/saved
10519	aug_save now reports which files were changed on disk underneath
10520	/augeas/events/saved; if multiple files are changed in one save operation,
10521	there will be multiple /augeas/events/saved entries in the tree. The value
10522	of each is the path to the file prefixed with /files.
10523
10524	Generate ChangeLog from git history
10525
10526	file_replace: preserve SELinux context
10527	Copy the SELinux context from the existing file.
10528
10529	transform_save: preserve file owner/group and mode when saving
10530	Take the file owner/group and mode from the existing file and set it on the
10531	newly created file during save. When a file is created from scratch, we
10532	still create the file with whatever default user/group/mode the current
10533	user has set.
10534
105352008-10-20  David Lutterkort  <lutter@redhat.com>
10536
10537	aug_save: report the number of files that were changed
10538	When the tree is saved, keep track of the number of files that were
10539	actually changed and return that number.
10540
10541	transform_save: make saving idempotent
10542	When a file needs to be saved, its contents are first generated in a temp
10543	file which is then moved over the original file. Between generating the
10544	temp file and moving it in its final place, read its contents back in and
10545	compare with the contents of the original file. Only move the tempfile over
10546	the original if the contents do indeed differ. This avoids spurious changes
10547	in mtime.
10548
10549	Formatting changes
10550
105512008-10-16  Jim Meyering  <jim@meyering.net>
10552
10553	Include <config.h> early, so its _GNU_SOURCE definition takes effect.
10554	* src/lexer.l (%top{...}): Include <config.h> here, not in %{...}.
10555	Otherwise, the flex-emitted inclusion of <string.h> would
10556	precede the definition of _GNU_SOURCE, rendering it useless.
10557	This also avoids warnings about strndup being undeclared.
10558	Don't include <string.h> explicitly, since flex already does that.
10559
105602008-10-13  Joel Nimety  <jnimety@perimeterusa.com>
10561
10562	Grub: add support for password directive
10563
105642008-10-06  Free Ekanayaka  <free@64studio.com>
10565
10566	Samba: Change default indentation and separation
10567	Match indentation of the example configuration file shipped by the upstream
10568	authors
10569
10570	Add gdm lens and associated test
10571
105722008-10-02  David Lutterkort  <lutter@redhat.com>
10573
10574	Ignore files based on .hgignore
10575
105762008-10-01  David Lutterkort  <lutter@redhat.com>
10577
10578	Complain when nodes in the tree can not be put
10579	When nodes are added to the tree that do not match the appropriate
10580	key/label lens, we used to silently drop them if the key/label was inside a
10581	repetition inside a concat.
10582
10583	Now, we check when we split the tree for a concat that we have used all the
10584	nodes in the tree that we were supposed to, and complain otherwise.
10585
10586	This also uncovered that the test rec-hosts-add.rb was broken, but still
10587	passed.
10588
105892008-10-01  David Lutterkort  <dlutter@redhat.com>
10590
10591	Pass --nostdinc properly when running under gdb
10592
10593	Logrotate: parse tabooext into list; add processing of a number of options
10594	Patch by Sean E. Millichamp
10595
105962008-09-22  David Lutterkort  <dlutter@redhat.com>
10597
10598	Grub: add support for 'serial' and 'terminal'
10599	Patch by Sean E. Millichamp
10600
10601	Add backlinks to main site
10602
10603	Remove some italics
10604
10605	Logrotate: add dateext flag
10606	Patch by Sean E. Millichamp
10607
106082008-09-22  David Lutterkort  <dlutter@redhat.com>
10609
10610	Various changes to the NaturalDocs support
10611	This patch changes a few things around in the NaturalDocs support:
10612
10613	- There is no explicit --with-naturaldocs option anymore; instead,
10614	  configure.ac looks for a program that's either called 'naturaldocs' or
10615	  'NaturalDocs' and enables support for doc generation depending on whether
10616	  that program is found or not.
10617
10618	  This works in any of the following situations:
10619	  (1) NaturalDocs is installed from an RPM, and therefore on the default
10620	      PATH, with its Perl modules installed on the standard Perl library
10621	      path
10622	  (2) NaturalDocs is installed in a random directory, and both PATH and
10623	      PERL5LIB are set accordingly
10624	  (3) A wrapper script that sets the path is on PATH
10625
10626	- Various fixes to make 'make distcheck' work
10627
106282008-09-12  David Lutterkort  <dlutter@redhat.com>
10629
10630	Properly include test modules
10631
106322008-09-11  Raphael Pinson  <raphink@gmail.com>
10633
10634	Add naturaldocs support Build pdf docs
10635
106362008-09-09  Raphael Pinson  <raphink@gmail.com>
10637
10638	Adapt comments for NaturalDocs parsing
10639
10640	Add comments for NaturalDocs parsing
10641
10642	Add comments for NaturalDocs parsing
10643
10644	Add comments for NaturalDocs parsing Reorganize a bit
10645
10646	Adapt sudoers.aug for NaturalDocs parsing
10647
10648	Adapt augeas.h for NaturalDocs parsing
10649
106502008-09-08  David Lutterkort  <dlutter@redhat.com>
10651
10652	Sshd: better handling of match blocks
10653	Split match conditions into individual 'Condition' entries. Store the
10654	settings for a match block inside 'Settings' entries.
10655
106562008-09-08  Free Ekanayaka  <free@64studio.com>
10657
10658	Add monit lens and test
10659
106602008-09-06  Free Ekanayaka  <free@64studio.com>
10661
10662	Ldap: merge with Spacevars. Spacevars: process havp.config
10663	Adapt Test_ldap, since there is no Ldap.lns anymore
10664
106652008-09-08  David Lutterkort  <dlutter@redhat.com>
10666
10667	Use --nostdinc in tests
10668	We never want to use installed lenses in the tests; they should only be
10669	read from the directories that are specified explicitly
10670
10671	augtool, augparse: add --nostdinc option
10672
10673	augtool, augparse: allow long options
10674
106752008-09-06  Free Ekanayaka  <free@64studio.com>
10676
10677	Shellvars: merge Sysconfig, Ifcfg; support /etc/default
10678	Merge Sysconfig and Ifcfg into Shellvars
10679
10680	Add /etc/default/* to the list of supported configuration files
10681
106822008-09-05  David Lutterkort  <dlutter@redhat.com>
10683
10684	transform: append missing newlines
10685	If a file does not end with a newline, append one automatically. Most
10686	lenses require that a file ends with a newline, and files that are missing
10687	them are quite common.
10688
10689	Shellvars: use Util.eol for eol
10690
10691	test/modules: only distribute .aug files
10692
10693	Shellvars: handle space at the end of a line
10694
106952008-09-04  David Lutterkort  <dlutter@redhat.com>
10696
10697	Added tag release-0.3.1 for changeset 803c17b1833a
10698
10699	Release 0.3.1
10700
10701	Sysctl: lens for sysctl.conf
10702	Contributed by Sean Millichamp
10703
107042008-09-04  Free Ekanayaka  <free@64studio.com>
10705
10706	Add lens and test for dnsmasq.conf
10707
107082008-09-02  Free Ekanayaka  <free@64studio.com>
10709
10710	Add slapd.aug and test modules
10711
10712	Spacevars: Allow passing the entry keyword as a parameter
10713	Modify Ldap.lns and Test_spacevars accordingly
10714
107152008-08-30  Free Ekanayaka  <free@64studio.com>
10716
10717	Add samba.aug and associated test
10718
107192008-08-27  Free Ekanayaka  <free@64studio.com>
10720
10721	Inifile: support empty comments
10722	Empty comments are lines beginning with ";" or "#" but without any more text
10723
107242008-08-29  Raphael Pinson  <raphink@gmail.com>
10725
10726	Map entries outside of sections inside a ".anon" section
10727	Clean regexp for entry key
10728	Remove /.anon/ from record key regexp
10729	Modify test_php.aug according to new mapping policy
10730	entry_re is standard in php.aug
10731
107322008-09-03  David Lutterkort  <dlutter@redhat.com>
10733
10734	typecheck_maybe: less convoluted check for empty match
10735	There's no need to construct an FA to check if a regular expression matches
10736	the empty string.
10737
107382008-09-03  David Lutterkort  <dlutter@redhat.com>
10739
10740	Properly typecheck the '?' operator
10741	The '?' operator was completely missing a typecheck for the atype. The
10742	check must make sure that neither the ctype nor the atype match the empty
10743	word.
10744
10745	To allow constructs like (store re)?, we allow the atype to match the empty
10746	word, as long as the lens inside the '?' consumes the value of the current
10747	node, since that also tells as whether to use the inner lens or not.
10748
10749	Various existing lenses failed to typecheck after this change and have been
10750	adapted; this also fixes a bug in the Fstab.lns where existing whitespace
10751	was being replaced with a default tab. The Interfaces.lns needed a fairly
10752	invasive change, and as a consequence produces way more (too many?)
10753	anonymous tree nodes.
10754
10755	Added tests to verify the typechecking of '?'
10756
107572008-09-02  David Lutterkort  <dlutter@redhat.com>
10758
10759	Minor error message improvements
10760	- Include information about the lens that produced the error if it's
10761	  available
10762	- When a union during 'put' does not match, produce an error instead of
10763	  aborting
10764
107652008-08-28  David Lutterkort  <dlutter@redhat.com>
10766
10767	Fix a bug with transferring skeletons
10768	It is possible for a skeleton to move from one subtree lens to another, if
10769	both use the same key; since the lenses might have different skeleton
10770	types, we need to detect this and discard the skeleton if its type does not
10771	match the lens that is used during put.
10772
10773	skel_instance_of: fix bad check for regexp match
10774	The return value of regexp_match was interpreted incorrectly, making it
10775	seem that the skel_instance_of test should fail if we ever tried to match
10776	an empty string.
10777
107782008-08-27  David Lutterkort  <dlutter@redhat.com>
10779
10780	Some files for the test root
10781
10782	A test for the del typecheck
10783
10784	Script to run lens tests through Valgrind
10785	We don't run this as part of 'make check' since it's _very_ slow.
10786
107872008-08-27  David Lutterkort  <dlutter@redhat.com>
10788
10789	Dhclient: change some defaults for del
10790	This is really a bug in how string literals are unescaped by the lexer, but
10791	we can sidestep the problem here.
10792
10793	The lexer bug is https://fedorahosted.org/augeas/ticket/12
10794
107952008-08-27  Free Ekanayaka  <free@64studio.com>
10796
10797	Dhclient lens
10798
107992008-08-26  Raphael Pinson  <raphink@gmail.com>
10800
10801	Add OpenVPN lens and associated test
10802
108032008-08-27  Free Ekanayaka  <free@64studio.com>
10804
10805	Dput: add allowed_distributions entry
10806	See man dput.cf(5) from a recent dput version (Ubuntu/hardy or
10807	Debian/lenny)
10808
108092008-08-26  David Lutterkort  <dlutter@redhat.com>
10810
10811	Typecheck del lens
10812	The builtin lens 'del RE STR' was missing a typecheck: the default string
10813	STR must match the regular expression RE, otherwise we might produce text
10814	that we cant parse back in.
10815
10816	This patch fixes that, adds a test that the check is performed, and fixes
10817	all the places in existing lenses where a use of 'del' failed the
10818	typecheck.
10819
108202008-08-18  Nahum Shalman  <nshalman elys com>
10821
10822	Shellvars: fix arrays so that saving works properly  * based on an IRC conversation with raphink
10823
108242008-08-25  David Lutterkort  <dlutter@redhat.com>
10825
10826	Acknowledge Free Ekanayaka
10827
108282008-08-25  Free Ekanayaka  <free@64studio.com>
10829
10830	Ldap lens
10831
10832	Spacevars lens
10833
108342008-08-24  Free Ekanayaka  <free@64studio.com>
10835
10836	Interfaces: new lens to process Debian's /etc/network/interfaces
10837
108382008-08-25  David Lutterkort  <dlutter@redhat.com>
10839
10840	Util.comment: produce #comment nodes
10841
108422008-08-14  Raphael Pinson  <raphink@gmail.com>
10843
10844	Inifile: complete rewrite. Also rewrite lenses using Inifile
10845	Adapt Php, Dput, Puppet and the corresponding tests to use the new Inifile
10846	module.
10847
10848	Php: allow entries outside of sections
10849	Adapt php.aug to support entries outside of sections and still map sections
10850	as labels (Fix #9)
10851
108522008-08-15  David Lutterkort  <dlutter@redhat.com>
10853
10854	Shellvars: one more cornercase with double quoted strings
10855
108562008-08-15  David Lutterkort  <dlutter@redhat.com>
10857
10858	Shellvars: much improved handling
10859	- handle single and double quoted strings correctly
10860	- parse arrays into a subtree
10861
10862	Inspired by a chat and preliminary work by nahamu
10863
108642008-08-15  David Lutterkort  <dlutter@redhat.com>
10865
10866	skel_instance_of: remove pointless check
10867	There is no point in trying to match against skel->text for a store lens
10868	since that is always NULL.
10869
10870	Fix syntax error in test
10871
10872	augl_error: Initialize info
10873
108742008-08-14  David Lutterkort  <dlutter@redhat.com>
10875
10876	aug_mv: fix bug when moving at the root level
10877	When moving from the root level, the source node needs to be removed from
10878	aug->tree, not aug->tree->children. In addition, the list_remove macro must
10879	be passed aug->tree and not a local variable holding that value, since we
10880	might have to remove the list entry that aug->tree is pointing to.
10881
10882	Added test in test-mv.sh to test that moving at the root level works.
10883
108842008-08-14  David Lutterkort  <dlutter@redhat.com>
10885
10886	Module names are treated case-insensitively
10887	Before, if you had a module 'Mod' in file 'mod.aug' and requested variable
10888	'MoD.var' from another module, the interpreter would throw itself into a
10889	loop where it kept loading 'mod.aug', but never found 'MoD.var' because the
10890	comparison of module names 'MoD' and 'Mod' was case sensitive.
10891
108922008-08-13  Raphael Pinson  <raphink@gmail.com>
10893
10894	Add puppet.aug and associated test
10895
10896	test_php.aug: make a nice test for PHP
10897
10898	Php: simplified and based on Inifile
10899	"Slightly" simplify php.aug now that the comment issue is fixed in
10900	inifile.aug
10901
10902	Inifile: use #comment for comment fields
10903	Adapt test_dput.aug and test_inifile.aug
10904
10905	Inifile: no space around seps by default
10906
10907	Inifile: reformat inifile.aug, ignore empty comments
10908	Reformat inifile.aug :
10909	  - improve readability
10910	  - limit line width to 80 chars
10911	  - change a few var names
10912	Ignore empty comments
10913	Adapt test_dput.aug to ignore empty comments
10914
10915	Fstab: map comments and support empty lines
10916
10917	Sudoers: clean up comment definition
10918
109192008-08-12  David Lutterkort  <dlutter@redhat.com>
10920
10921	Hosts: handle comments at the end of a host entry
10922	Comments are put into the tree as part of that host node, i.e. will live as
10923	long as the host entry.
10924
10925	Based on an initial patch by Kjetil Torgrim Homme <kjetilho@linpro.no>
10926
109272008-08-12  Raphael Pinson  <raphink@gmail.com>
10928
10929	Pam: Use eol, indent, comment and empty from Util
10930
10931	Util: add eol, indent, comment and empty
10932
10933	Pam: allow comments at the end of lines and leading spaces
10934
10935	Xinetd: better handling of whitespace
10936	- allow indented comments
10937	- allow spaces around "}" to close a service
10938
109392008-08-12  David Lutterkort  <dlutter@redhat.com>
10940
10941	Exports: fix failing test
10942	Exports.lns uses Hosts.comment .. since that changed, we also need to
10943	change Exports.lns
10944
109452008-08-12  Raphael Pinson  <raphink@gmail.com>
10946
10947	Hosts: put comments into tree and better whitespace handling
10948	- allow spaces at the end of the line
10949	- allow indentation at the beginning of entries
10950	- allow indented comments
10951	- show comments as fields and ignore empty lines and empty comments
10952
10953	Handle indentation for Sudoers
10954	Allow indentation for every field
10955	cmnd_spec: use sto_to_com_cmnd (allows spaces)
10956	Add a test with new tricky commands in spec
10957
10958	Various small fixes for Sudoers
10959	Deal with empty comments in empty.
10960	Add "!" as a valid parameter delimiter in Defaults.
10961	Make tests a bit more interesting in test_sudoers.aug.
10962
10963	Sudoers: fix Runas_Spec
10964	sep_cont is not mandatory after runas_spec.
10965	Remove a space after a runas_spec in the test.
10966
10967	Sudoers: various fixes for Defaults
10968	Do not allow "Defaults.*" as user name for spec (instead of "Defaults").
10969	Simplify Defaults type from (@|:|>) into [@:>].
10970	Make a specific regexp for Defaults value to allow spaces.
10971	Add a test line in test_sudoers.aug to test a more complex Defaults line.
10972
10973	Add sudoers lens and associated test
10974
109752008-08-11  David Lutterkort  <dlutter@redhat.com>
10976
10977	Test for continuation lines
10978
109792008-08-11  David Lutterkort  <dlutter@redhat.com>
10980
10981	Posix ERE compliant escaping
10982	Posix extended regular expressions treat a backslash outside of a character
10983	class always as an escape character, with the character sequence '\\x'
10984	being identical to 'x', even if 'x' is a special char like '['.
10985
10986	Inside character classes, the backslash does not escape anything, and is
10987	treated as an ordianry character.
10988
10989	See regex(7) or
10990	http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html#tag_09_04
10991
109922008-08-09  David Lutterkort  <dlutter@redhat.com>
10993
10994	Revamp the dict data structure
10995	Dicts were simple linked lists of key/value pairs, and appending and
10996	searching on those lists caused serious slowdown when the dicts became
10997	large, for example when writing an /etc/hosts file with > 2000 lines.
10998
10999	Dicts are now organized as arrays that are kept sorted by the key, and
11000	lookup is done through binary search. Though this is still quadratic in
11001	theory, it behaves linearly in practice even for a very large /etc/hosts
11002	file (~ 60k lines); when keys appear in order (e.g. when they are generated
11003	by a sequence) or when all entries fall under one key, adding an entry to a
11004	dict is O(log n).
11005
110062008-08-09  David Lutterkort  <dlutter@redhat.com>
11007
11008	Don't use registers in split_iter
11009	The data in the registers was never used, calculating it causes some
11010	overhead in the matcher.
11011
110122008-08-08  David Lutterkort  <dlutter@redhat.com>
11013
11014	Eliminate unneeded calls to regexp_match in split_iter
11015
11016	Don't call regexp_match when we know that there is no match
11017	It is common in the put direction that we try and split when we're already
11018	inside a leaf node. In that case, we know that there is no possible split,
11019	and therefore can save the trouble of calling regexp_match.
11020
110212008-08-08  David Lutterkort  <dlutter@redhat.com>
11022
11023	Avoid O(n^2) runtime by appending to lists in constant time
11024	The data structure used to keep track of successive matches of an iterated
11025	lens, a split list, was being appended to by traversing the list for each
11026	new element. Now, we remember the last element on the list and append in
11027	constant time.
11028
11029	The same was true in a few other places: the building of a tree and of
11030	skeletons suffered from the same problem.
11031
11032	Dicts still have that problem - they need to be changed to hash tables to
11033	address this issue.
11034
110352008-08-08  David Lutterkort  <dlutter@redhat.com>
11036
11037	Add list_reverse and list_tail_cons
11038	list_reverse reverses a list in place. list_tail_cons appends to a list in
11039	constant time, since it is given a pointer to the tail of the list.
11040
110412008-08-07  David Lutterkort  <dlutter@redhat.com>
11042
11043	Added tag release-0.3.0 for changeset 60f2a13c2528
11044
11045	Release 0.3.0
11046
11047	Mention the exit status
11048
11049	Version libfa and libaugeas
11050	Use libtool's version support to properly version these two libraries. For
11051	libaugeas, we also bump the minor version, since we just added aug_mv to
11052	the interface.
11053
110542008-08-07  David Lutterkort  <dlutter@redhat.com>
11055
11056	Check that 'put' fails when invalid tree entries are present
11057	put_quant_star and create_quant_star did not compare the part of the tree
11058	they should transform against the part of the tree they actually
11059	transformed. This lead to parts of the tree getting ignored during 'put' if
11060	the tree contained invalid nodes, and ultimately to files getting
11061	truncated.
11062
11063	This is now checked and causes a 'Short iteration' error, avoiding file
11064	truncation. The fix also uncovered an error in the test for Aptsources.lns,
11065	where an invalid tree node was put into the tree, but did not lead to a
11066	test failure.
11067
11068	Fixes bug https://fedorahosted.org/augeas/ticket/1
11069
110702008-08-07  David Lutterkort  <dlutter@redhat.com>
11071
11072	Return an exit status from augtool
11073	augtool will return a non-zero exit status if any command issued
11074	failed. This is useful when piping multiple commands into augtool to check
11075	that they all succeeded.
11076
110772008-07-29  David Lutterkort  <dlutter@redhat.com>
11078
11079	Fix failures on FreeBSD
11080	(1) Point augtool at the lenses in the source dir (not FreeBSD problem,
11081	    happens whenever Augeas is not installed yet)
11082	(2) Remove bashism 'echo $"..."' with 'echo -e "..."'
11083
11084	Quiet the test
11085
110862008-07-29  Raphael Pinson  <raphink@gmail.com>
11087
11088	Use regexp union instead of lens union in php.aug
11089	Using a union of regexps is much faster than a union of lenses, since the
11090	regular expressions that are constructed internally are much simpler.
11091
110922008-07-25  Raphael Pinson  <raphink@gmail.com>
11093
11094	Fix php.aug now that inifile.aug supports spaces in values
11095
11096	Add PHP module and associated (basic) test file
11097
110982008-07-29  Raphael Pinson  <raphink@gmail.com>
11099
11100	Use regexp union instead of lens union in dput.aug
11101	Using a union of regexps is much faster than a union of lenses, since the
11102	regular expressions that are constructed internally are much simpler.
11103
111042008-07-25  Raphael Pinson  <raphink@gmail.com>
11105
11106	Rewrite dput.aug using inifile.aug Add a few keywords from man dput.cf Fix test file after rewrite
11107
11108	Allow spaces in entry values
11109
11110	Allow spaces in titles
11111
11112	Fix empty comments in INI file
11113
111142008-07-29  David Lutterkort  <dlutter@redhat.com>
11115
11116	Include canonicalize.h
11117	On non-glibc systems, we need to make sure canonicalize_file_name is
11118	declared from gnulib.
11119
11120	Fail the whole test if one of the lens tests fails
11121
111222008-07-28  David Lutterkort  <dlutter@redhat.com>
11123
11124	Add a call to move a subtree to the public API
11125
111262008-07-26  David Lutterkort  <dlutter@redhat.com>
11127
11128	Refactor tree_create
11129
11130	Don't run the typechecker by default from try
11131
111322008-07-24  David Lutterkort  <dlutter@redhat.com>
11133
11134	Flatten the tree of lenses
11135	For union and concat, we used to store multiple unions/concats in a binary
11136	tree. Now, the tree is flattened and a string of concats is stored as one
11137	lens.
11138
11139	Allow a key and store in each branch of a union
11140
11141	lns_key_regexp: store does not do anything about the key
11142	We used to generate tree nodes with a NULL label for a STORE, but that is
11143	no longer the case, and therefore the STORE lens should not produce any key
11144	regexp.
11145
11146	Correctly handle saving to nonexistant files
11147
11148	Store system errors
11149	When encountering system errors while reading or writing a file, extract
11150	the full error message corresponding to errno and store it in error/message
11151
111522008-07-23  Raphael Pinson  <raphink@gmail.com>
11153
11154	Add AptPreferences module and associated test
11155
11156	Add bbhosts module and associated test
11157
11158	Add ntp module and associated test
11159
11160	Add logrotate and associated test
11161
11162	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
11163
11164	Add inifile generic module and associated test module
11165
111662008-07-22  David Lutterkort  <dlutter@redhat.com>
11167
11168	Fix segfault when running 'augtool print'
11169
111702008-07-21  David Lutterkort  <dlutter@redhat.com>
11171
11172	Canonicalize file names before writing
11173	We used to clobber symlinks because writing a file consists of writing to
11174	an intermediate .augnew file, and then moving that over the target file. To
11175	keep target files that are symlinks intact, we now canonicalize the target
11176	filename and then move the intermediate file to the canonicalized target
11177	file.
11178
11179	Avoid picking '\0' in examples.
11180	Now, we only pick '\0' as the example character for a transition if it is
11181	the only char for that transition.
11182
111832008-07-18  David Lutterkort  <dlutter@redhat.com>
11184
11185	Added tag release-0.2.2 for changeset e7f6d16e75df
11186
11187	Release 0.2.2
11188
11189	Rename rule because FreeBSD's make chokes on it
11190	Rename the rule .FORCE-datadir.h to FORCE-datadir.h
11191
11192	Sample dput.cf for dput lens
11193
11194	Lens for Debian's dput files
11195	Contributed by Raphael Pinson
11196
111972008-07-17  David Lutterkort  <dlutter@redhat.com>
11198
11199	augtool: Print '(none)' when getting a path with no value
11200	The output used to be mangled. Now it is 'path = value' if hte path has a
11201	non-NULL value, 'path (none)' if the path exists but has a NULL value, and
11202	'path (o)' if an error occurred.
11203
11204	Added tag release-0.2.1 for changeset 13fdcd9bb18a
11205
112062008-07-17  David Lutterkort  <dlutter@redhat.com>
11207
11208	aliases.aug: Do not require whitespace after commas
11209	It's perfectly fine to have an alias like 'alias: target1,target2'
11210
11211	Bug reported by Greg Swift
11212
112132008-07-16  David Lutterkort  <dlutter@redhat.com>
11214
11215	Fix insertion before the first child
11216	Inserting a node as the new first child was completely broken.
11217
11218	Bug reported by Raphael Pinson.
11219
112202008-07-16  David Lutterkort  <dlutter@redhat.com>
11221
11222	Add support for 'insert' in unit tests
11223	Two new primitives 'insa' (insert after) and 'insb' (insert before) are
11224	added so that unit tests can modify the tree through insert, as in
11225
11226	  test lns put str after
11227	    insa label path = str2
11228
11229	It would be nice to kill insert with one primitive, but that would have
11230	either required special syntax (like 'ins STR before/after STR') or some
11231	addition to the type system to make it syntactically reasonable.
11232
112332008-07-09  David Lutterkort  <dlutter@redhat.com>
11234
11235	Test that putting into an empty string works
11236
11237	Initialize state->pos in lns_parse and lns_get
11238	Otherwise, get and parse on an empty string will produce a 'short
11239	iteration' error, even if the empty string is acceptable for that lens.
11240
112412008-07-07  David Lutterkort  <dlutter@redhat.com>
11242
11243	Put the default dir for lenses into DATADIR (the real fix)
11244	Reworks 527:14602e2757dd in a way that actually works and conforms to the
11245	GNU coding standards.
11246
11247	Most of this fix suggested by Jim Meyering, I only touched it up a little
11248	(and no doubt introduced all the bugs).
11249
112502008-07-07  David Lutterkort  <dlutter@redhat.com>
11251
11252	Check for NULL values in the put direction of store
11253	This is now flagged as an error instead of causing a segfault.
11254
112552008-07-03  David Lutterkort  <dlutter@redhat.com>
11256
11257	Lens for /etc/exports
11258
112592008-07-01  David Lutterkort  <dlutter@redhat.com>
11260
11261	Release 0.2.1
11262
11263	distclean-local: Do not clobber build/aux
11264
11265	Suppress generated manpages
11266
112672008-06-30  David Lutterkort  <dlutter@redhat.com>
11268
11269	Put the default dir for lenses into DATADIR
11270	Instead of hardcoding the default dir for lenses to somewhere in '/usr',
11271	look in DATADIR - that's after all where the default lenses are installed
11272	if DATADIR (or PREFIX) is changed.
11273
11274	Man page for augparse
11275
11276	Put Augeas version into footer
11277
112782008-06-23  David Lutterkort  <dlutter@redhat.com>
11279
11280	Auto-generate the ChangeLog file from mercurial logs
11281	Reviewed-by: David Lutterkort <dlutter@redhat.com>
11282
112832008-06-13  David Lutterkort  <dlutter@redhat.com>
11284
11285	Fix two problems in the grub lens
11286	(1) The grub lens did not handle blank lines
11287	(2) Ubuntu uses 'quiet' in its boot stanzas, which we didn't know about
11288
11289	Reported by Jason Dobies
11290
112912008-06-13  David Lutterkort  <dlutter@redhat.com>
11292
11293	Produce more helpful errors
11294	The previous check whether we could proces the entire input was too crude
11295	and produced the unhelpful error message "Get could not process entire
11296	input", pointing to the start of the string, even if the problem was much
11297	farther down the line.
11298
11299	With this change, error messages contain an indication to where the error
11300	happened that is a little closer to the actual trouble spot.
11301
113022008-06-12  David Lutterkort  <dlutter@redhat.com>
11303
11304	Check that we take the right branch in a union
11305
11306	Process /etc/sysconfig/selinux
11307	Patch by Alan Pevec
11308
113092008-06-12  David Lutterkort  <dlutter@redhat.com>
11310
11311	Fix segfault when aug_init/close are called multiple times
11312	The way we cached the regexp '[0-9]+/' was totally botched. We now allocate
11313	the pattern statically in memory and pin it to protect it from being freed,
11314	ever.
11315
11316	Reported by Harald Hoyer
11317
113182008-06-06  David Lutterkort  <dlutter@redhat.com>
11319
11320	Initialize out parameters
11321
113222008-06-06  David Lutterkort  <dlutter@redhat.com>
11323
11324	Change struct fields of type (const char *) to (char *)
11325	There were many places where struct fields were declared (const char *) but
11326	then used as (char *) - mostly to free them. Remove the 'const' from those
11327	fields.
11328
11329	I would really appreciate if somebody could look over these and make sure I
11330	don't throw away constness in too many places. It seems strange to declare a
11331	field as non-const, even if the string referenced by it is never modified,
11332	and only ever free'd when the enclosing struct is free'd.
11333
113342008-06-05  David Lutterkort  <dlutter@redhat.com>
11335
11336	Added tag release-0.2.0 for changeset d23f95cd13f3
11337
11338	Release 0.2.0
11339
113402008-06-03  David Lutterkort  <dlutter@redhat.com>
11341
11342	Remove bashisms from test scripts
11343	Make tests scripts work with plain old sh; also, don't hardcode location of
11344	Ruby interpreter to /usr/bin/ruby.
11345
11346	Work around a problem with Bison on FreeBSD
11347	Bison looks for _STDLIB_H to see if stdlib.h has been included, but the
11348	system includes use _STDLIB_H_; that makes Bison think malloc/free have not
11349	been declared yet and it goes and does that. gcc then complains about the
11350	duplicate declaration.
11351
113522008-06-03  David Lutterkort  <dlutter@redhat.com>
11353
11354	Infrastructure and import of gnulib modules
11355	We do not keep the gnulib sources in our own repo. Instead, autogen.sh now
11356	calls out to bootstrap to pull in needed files from gnulib.
11357
11358	The bootstrap script was copied from libvirt.
11359
113602008-06-02  David Lutterkort  <dlutter@redhat.com>
11361
11362	Use a build aux dir (in build/aux)
11363
11364	Use autoheader and generate config.h
11365
11366	Work around lack of open_memstream on non-GNU systems
11367	Since open_memstream is only available with glibc, wrap its use and fall
11368	back to writing to a tempfile on other platforms.
11369
11370	Remove src/config.h
11371	It was a bad idea to begin with; fold the contents into internal.h and make
11372	room for a generated config.h
11373
11374	Support the @include syntax
11375	Debian uses lines of the form '@include module' to reference other pam
11376	configs. The official PAM docs don't mention it, but obviously it works.
11377
11378	Handle trailing whitespace in pam.d; split module-arguments
11379
11380	Allow multiple comma-separated fs types in fstab
11381	On Debian Etch, the CDROM has fs type 'udf,iso9660'
11382
11383	Handle blank lines in /etc/hosts
11384
11385	Fix missing ref on an info struct in syntax.c(compile_minus)
11386
113872008-05-30  Jim Meyering  <meyering@redhat.com>
11388
11389	* tests/test-lenses.sh: more quotes, protect against space in abs_srcdir
11390
11391	don't conflate top_srcdir and abs_top_srcdir
11392	* tests/Makefile.am: Use $(var), rather than obsolete @var@ notation.
11393	(TESTS_ENVIRONMENT): Rename LHS to match RHS to help avoid (my) confusion:
11394	s/top_builddir/abs_top_builddir/ and s/top_srcdir/abs_top_srcdir/.
11395	* tests/augtest: Reflect renamings.
11396	* tests/test-interpreter.sh: Likewise.
11397	* tests/test-get.sh: Likewise, and remove unused top_builddir= assignment.
11398	* tests/test-lenses.sh: Likewise; remove unnecessary braces, add quotes
11399	to protect against pathological $TMPDIR.
11400
114012008-05-29  David Lutterkort  <dlutter@redhat.com>
11402
11403	Make distcheck work again
11404	Restore top_builddir and top_srcdir so that augtest passes during make
11405	distcheck.
11406
11407	Fix memory leak in make_exn_lns_error
11408
114092008-05-29  Jim Meyering  <meyering@redhat.com>
11410
11411	Remove some absolute paths for binaries.
11412	* tests/Makefile.am [TESTS_ENVIRONMENT]: Add a PATH definition that
11413	lets tests invoke "augtool" and "augparse" without any absolute prefix.
11414	Remove top_builddir and top_srcdir definitions; no longer needed.
11415	* tests/augtest: Remove definition of AUGTOOL.  Update use.
11416	* tests/test-lenses.sh: Likewise for AUGPARSE.
11417	* tests/test-interpreter.sh: Likewise.
11418	* tests/rec-initdefault.rb: Use 'augtool -n' in place of #{AUGTOOL}.
11419
114202008-05-23  David Lutterkort  <dlutter@redhat.com>
11421
11422	Fix use of possibly uninitialized variable
11423	* get.c(lns_parse): initialize skel; gcc complains about possible
11424	  uninitialized use
11425
114262008-05-28  David Lutterkort  <dlutter@redhat.com>
11427
11428	Check that augtool reads all of tests/root/ without error
11429
114302008-05-23  David Lutterkort  <dlutter@redhat.com>
11431
11432	Add a test to check we take the right branch
11433	This does essentially the same as the test Pass_prefix_union introduced
11434	with cset 489:3f4414038a30, but in a real world lens.
11435
11436	Escape | when turning a string into a regexp
11437
11438	Add source statements in shell scripts as '.source' nodes
11439
11440	Escape label strings when creating the key regexp for them
11441
11442	Allow lower case characters in shell vars
11443
114442008-05-23  Jim Meyering  <meyering@redhat.com>
11445
11446	"echo get /|augtool -n" would read one past end of malloc'd buffer * src/augeas.c (make_path): Avoid buffer overrun.
11447
114482008-05-23  David Lutterkort  <dlutter@redhat.com>
11449
11450	Fix a major bug in the get implementation of lenses
11451	We used to process the input from left to right, matching the regular
11452	expressions of lenses with the input successively. That is very wrong, in
11453	particular, it leads to lens union choosing the wrong branch: in the union
11454	l1|l2, union would always choose l1 if l1 matched a prefix of l2.
11455
11456	We now process the input in a top-down fashion, splitting the string into
11457	parts as we descend in the tree of lenses. As evidenced by the test
11458	pass_prefix_union, that fixes the bad behavior.
11459
11460	Incidentally, it also uncovered another bug in the test_hosts.aug, where a
11461	test passed, even though the string we were using did not end with the
11462	newline that is mandatory for Hosts.record.
11463
11464	This change also does away with pasing flags and a FILE* for logging
11465	details about hte parse process; they don't really make sense anymore, nor
11466	is that behavior very useful in a library.
11467
114682008-05-22  David Lutterkort  <dlutter@redhat.com>
11469
11470	Fix use of uninitialized pointer
11471	ERR must be initialized, since it is later passed to free_lns_error
11472
11473	Lens for vsftpd.conf
11474	The lens is very tight, in that it only allows actual options, and knows
11475	what kind of value each option accepts.
11476
114772008-05-21  James Antill  <james@code.and.org>
11478
11479	 Fix for the joy that is the glibc asprintf API.
11480
114812008-05-21  James Antill  <james@and.org>
11482
11483	 Minor fix to not use bad memory.
11484
11485	 Remove strcat's for stpcpy's
11486
11487	 Fix escaping strings that end in \  Fix escaping of unprintable bytes
11488
11489	 Fix buffer overflow on strings ending in \
11490
114912008-05-21  David Lutterkort  <dlutter@redhat.com>
11492
11493	Use glibtoolize on OSX
11494	Patch provided by Rizwan Kassim
11495
114962008-05-21  Jim Meyering  <meyering@redhat.com>
11497
11498	Make a file-scoped static array "const".
11499
115002008-05-18  Jim Meyering  <meyering@redhat.com>
11501
11502	* src/augtool.c (cleanpath): Don't access path[-1].
11503
11504	* src/transform.c (transform_save): Detect pre-fclose write failure.
11505
11506	* src/internal.c (read_file): Rewrite, plugging a file descriptor leak.
11507
115082008-05-16  David Lutterkort  <dlutter@redhat.com>
11509
11510	Added tag release-0.1.1 for changeset fae07193655a
11511
11512	Release 0.1.1
11513
11514	Add dependency on ref.h
11515
115162008-05-16  David Lutterkort  <dlutter@redhat.com>
11517
11518	Get rid of compiled regexps earlier
11519	After we're done with a transform, release the memory used by compiled
11520	regexps; storage for compiled regexps accounts for the lion's share of
11521	Augeas' memory needs.
11522
11523	Before this patch, augtool run against the files in tests/root/ used more
11524	than 10MB of memory; with this patch, that is done to 250 kB after the
11525	initial load, with a spike of about 6MB during loading.
11526
115272008-05-15  David Lutterkort  <dlutter@redhat.com>
11528
11529	Misc leak fixes in the interpreter
11530	* Do not ref the old binding in bind_type, ownership is transferred from
11531	  the caller to the new list head
11532	* Unref the argument of an apply and the func computed in compile_compose
11533	* Unref the value after it is bound in the context in compile_decl
11534	* Unref various things in define_native_intl
11535
11536	Don't leak the key when appending dict entries
11537
11538	Free the actual struct exn when freeing an exn value
11539	Factor freeing a struct exn into free_exn; previously, the code did not
11540	free the storage for the struct exn itself.
11541
11542	Don't leak key/value in parse on error
11543
11544	Do not leak the split on error
11545	put_subtree has to free the split it computes; previously, it leaked that
11546	if an error inside the subtree occurred.
11547
11548	Free loadpath
11549	Although not strictly necessary, it makes it easier to run augparse through
11550	valgrind and get meaningful results.
11551
11552	Free path
11553
11554	Don't leak SNAME
11555
11556	Free the lns_error in lens_put
11557
11558	Cleanly free regexp patterns; put empty_pattern into ro storage
11559
11560	Ref the returned tree
11561	The tree that tree_set_glue and tree_rm_glue return needs to have its ref
11562	increased, as the calling conventions for builtin functions stipulate that
11563	the returned value is owned by the caller
11564
115652008-05-14  David Lutterkort  <dlutter@redhat.com>
11566
11567	Report errors more clearly in the tree
11568	When an error happens during get/put, store additional info in the tree:
11569	for get errors, store the position in the file where the error occured, for
11570	put errors, the path of the node. In both cases, also store the
11571	human-readable message.
11572
11573	For a file F, all this information is stored underneath /augeas/F/error,
11574	with the value associated with /augeas/F/error giving some indication about
11575	the kind of error encountered.
11576
115772008-05-13  David Lutterkort  <dlutter@redhat.com>
11578
11579	Report errors during put
11580
11581	Check that values match the regexp for the corresponding store during put
11582
11583	Lens and transform for /etc/fstab
11584	The lens could be further refined by distinguishing between the legal
11585	values in the first field (LABEL=xxx vs special file system vs device) and
11586	by trying to model more of the vfs/option dependencies, but that's more of
11587	a v2 feature.
11588
11589	Remove bad assertions
11590	It is perfectly legal for create_* functions to be called with a non-NULL
11591	skeleton; that happens for example when the union combinator puts a tree
11592	that "jumped branches", i.e. whose get used one branch of the union, and
11593	the put uses the other branch because of changes to the tree.
11594
11595	Reduce the number of calls to collect
11596	We were calling collect way too often, which was slowing things down. Also
11597	broke collect into separate subfunctions so we can see better when one of
11598	them becomes a bottleneck.
11599
116002008-05-13  David Lutterkort  <dlutter@redhat.com>
11601
11602	Stricter skeleton instance check for del and store
11603	Besides having the right tag, del and store match a skeleton only if the
11604	text for that skeleton also matches their regexp.
11605
11606	Weaken the check for key, label, seq, and counter a tiny bit.
11607
116082008-05-12  David Lutterkort  <dlutter@redhat.com>
11609
11610	Proper typecheck for lens unions
11611	Check that lenses have disjoint ctypes and atypes in a union.
11612
11613	Fix up the existing lenses that violate that.
11614
116152008-05-09  David Lutterkort  <dlutter@redhat.com>
11616
11617	Keep re_cset_as_string from including an explicit '\0'
11618	We use NUL delimited strings; that means we can not use a CSET
11619	representation that mentions '\0' explicitly.
11620
11621	Use the new '-' operator for key_re
11622
116232008-05-09  David Lutterkort  <dlutter@redhat.com>
11624
11625	Add subtraction of regular expressions to the language
11626	It is now possible to say something like
11627
11628	  let re = /[a-z]+/ - "baseurl"
11629
11630	The '-' operator is only defined between regexps.
11631
116322008-05-09  David Lutterkort  <dlutter@redhat.com>
11633
11634	Add REGEXP_MINUS; move REGEXP_TO_FA to regexp.c
11635
11636	Refactor typechecking for union/concat
11637	The typechecking for union and concat is incredibly similar, but was
11638	implemented with too much code duplication.
11639
11640	Store character sets as bitsets
11641	Also clean up the definition of the bitset type and make the bitset_*
11642	functions const correct
11643
116442008-05-09  David Lutterkort  <dlutter@redhat.com>
11645
11646	Add fa_as_regexp that converts an automaton back to a regexp
11647	During conversion from FA to regexp, our FA mutates into a 'generalized
11648	transition graph' where transitions aren't labelled with character
11649	intervals, but with regular expressions.
11650
11651	There are lots of gyrations to keep the generated regexp reasonably short
11652	(and syntactically correct)
11653
116542008-05-08  David Lutterkort  <dlutter@redhat.com>
11655
11656	Check for (some) allocation failures
11657
11658	Reference count 'struct re' instances
11659
11660	Split ref counting macros into separate header
11661
11662	Remove use of bad REALLOC macro.
11663	The old REALLOC macro caused an automatic memory leak when REALLOC
11664	failed. Use of REALLOC_N instead also forces checking of more allocation
11665	failures.
11666
11667	Safer memory allocation from libvirt
11668
116692008-05-08  David Lutterkort  <dlutter@redhat.com>
11670
11671	Fix a rather embarrassing #ifdef problem
11672	When __GNUC__ was not defined, a big chunk of internal.h was suppressed
11673	that is not compiler dependent.
11674
11675	Also, add ATTRIBUTE_PURE macro.
11676
116772008-05-08  David Lutterkort  <dlutter@redhat.com>
11678
11679	Switch to using unsigned char internally
11680	Since we use chars as indices into arrays in some cases, it is simpler to
11681	treat characters as unsigned. This also addresses passing possibly signed
11682	chars to is* functions - by using unsigned char, we avoid possible silent
11683	conversion problems when going from char -> int.
11684
11685	There were also cases where we iterated over chars using a char, which was
11686	prone to silent overflow.
11687
116882008-05-08  David Lutterkort  <dlutter@redhat.com>
11689
11690	Fix mistaken assignments in asserts
11691	Reported by Jeff Johnson
11692
116932008-05-06  David Lutterkort  <dlutter@redhat.com>
11694
11695	Cleaner way of turning off expensive asserts
11696	Avoid littering everything with #ifdef's, define an 'expensive_assert'
11697	instead that expands to nothing unless HASH_DEBUG_VERIFY is defined.
11698
11699	Patch by Jim Meyering
11700
117012008-05-06  David Lutterkort  <dlutter@redhat.com>
11702
11703	Small fixes to the specfile
11704	Suggested by Michael Schwendt
11705
117062008-05-05  David Lutterkort  <dlutter@redhat.com>
11707
11708	Lens and transform for xinetd.conf
11709
11710	Enclose the regexp for a key in (..) before adding a /
11711
11712	Properly determine if segment needs qualifier
11713	For segments with label NULL, we didn't qualify the first sibling with the
11714	NULL label since we were comparing NULL to the result of seg_label, which
11715	was "(none)"
11716
11717	Be more consistent in how NULL labels are printed
11718
117192008-05-05  David Lutterkort  <dlutter@redhat.com>
11720
11721	Suppress assert of hash_verify
11722	Doing the assert(hash_verify(hash)) at various places in hash.c is very
11723	expensive and slows things down considerably when assertions are turned
11724	on.
11725
11726	Rather than turning assertions off globally, only do the hash_verify
11727	asserts when they are explicitly requested by defining HASH_DEBUG_VERIFY
11728
117292008-05-05  David Lutterkort  <dlutter@redhat.com>
11730
11731	Do not minimize freshly created regexps
11732	The minimization imposes a serious performance penalty, and is generally
11733	not needed.
11734
11735	This also exposes a bug in fa_overlap; for acceptToAccept to work properly,
11736	it needs to be passed a deterministic automaton.
11737
117382008-05-05  David Lutterkort  <dlutter@redhat.com>
11739
11740	Fix containment check
11741	Checking for FA2\FA1 being empty was plain silly; this check is a little
11742	better, but still not the correct disjointness check.
11743
117442008-05-02  David Lutterkort  <dlutter@redhat.com>
11745
11746	Spec file fixes
11747
117482008-05-01  David Lutterkort  <dlutter@redhat.com>
11749
11750	Added tag release-0.1.0 for changeset c032a957c316
11751
11752	Version 0.1.0
11753
11754	Rename parameter 'glob' to 'glb'
11755	gcc on RHEL4 gets confused and thinks that that shadows the global 'glob'
11756	function.
11757
117582008-04-30  David Lutterkort  <dlutter@redhat.com>
11759
11760	Process lots of files in /etc/sysconfig
11761	Load all those shell-script style config files from /etc/sysconfig using
11762	the generic Shellvars lens.
11763
11764	Ultimately, it would be better if we definedfor each of them which
11765	variables are actually going to be looked at (together with some
11766	restrictions on possible values)
11767
117682008-04-30  David Lutterkort  <dlutter@redhat.com>
11769
11770	Test files for various /etc/sysconfig files
11771	The next commit will add a lens for handling shell var style files in
11772	/etc/sysconfig. These are simply test/sample files. No functionality.
11773
11774	Refactor ifcfg.aug
11775	This puts the bits that are generally useful for processing /etc/sysconfig
11776	files into shell.aug
11777
117782008-04-30  Jim Meyering  <meyering@redhat.com>
11779
11780	check for a few failed memory allocations
11781	* src/augtool.c: check for a few failed memory allocations
11782
117832008-04-30  Harald Hoyer  <harald@redhat.com>
11784
11785	do ldconfig in post/postun of the libs subpackage
11786
117872008-04-28  David Lutterkort  <dlutter@redhat.com>
11788
11789	Free the value when freeing a tree node
11790
11791	Plug another memory leak
11792
117932008-04-25  David Lutterkort  <dlutter@redhat.com>
11794
11795	Fix segfault when aug_get was passed a "/"
11796	In that case, make_path returns NULL, which must be checked.
11797
11798	The bigger question, why "/" is not a valid path is a little more subtle:
11799	the tree is really edge-labeled, not node-labeled, i.e. a label applies to
11800	the edge going from a parent to its child, but root has no parent, and
11801	therefore "/" does not really make sense.
11802
118032008-04-25  David Lutterkort  <dlutter@redhat.com>
11804
11805	Split multiple baseurl's in a yum file into multiple baseurl nodes
11806	With this, the schema for yum config files may now contain nodes like
11807	  { "section"
11808	     ... other key/value pairs ...
11809	     { "baseurl" = "url1" }
11810	     { "baseurl" = "url2" }
11811	     ...
11812	     { "baseurl" = "urlN" }
11813	     ... other key/value pairs ...
11814	  }
11815
11816	Note that the baseurl nodes have to be consecutive; otherwise, put will
11817	fail.
11818
118192008-04-24  David Lutterkort  <dlutter@redhat.com>
11820
11821	Fix lens selection in union
11822	The logic in put to select the appropriate branch in unions got it wrong if
11823	the first branch matched the empty word, because applies only checked that
11824	the atype for the sublens matched some of the tree. It has to check for a
11825	complete match of its tree.
11826
11827	This change fixes that and adds a test to demonstrate the problem.
11828
118292008-04-24  David Lutterkort  <dlutter@redhat.com>
11830
11831	Fix ref counting error in lns_make_plus
11832	We burnt the passed-in ownership of L when constructing STAR; also, since
11833	we unref STAR at the end, we need to take ownership of STAR->LENS when
11834	constructing the concat of L and STAR->LENS
11835
11836	* src/fa.c (string_extend): Handle realloc failure.
11837	Patch by Jim Meyering
11838
11839	Update AUTHORS/NEWS
11840
11841	Processing of Apt's sources files
11842	Contributed by Dean Wilson
11843
118442008-04-24  David Lutterkort  <dlutter@redhat.com>
11845
11846	Make sure install preserves timestamps
11847	Avoids getting into trouble with the .aug files in augeas-libs on multilib
11848	when installing more than one arch.
11849
11850	See http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks
11851
118522008-04-24  David Lutterkort  <dlutter@redhat.com>
11853
11854	Remove trailing whitespace from the end of lines
11855	No functional change, only formatting.
11856
118572008-04-23  David Lutterkort  <dlutter@redhat.com>
11858
11859	Remove aug_exists - it does not exist anymore
11860
11861	Delete old, outdated notes
11862
11863	Some repo files for yum
11864
11865	Add todo file for low-level tasks that don't make sense on the website
11866
118672008-04-23  David Lutterkort  <dlutter@redhat.com>
11868
11869	Split libraries into a -libs package
11870	This also includes the files in /usr/share/augeas, since they are read by
11871	the library and control how configuration files are processed.
11872
11873	Patch provided by Harald Hoyer
11874
118752008-04-23  David Lutterkort  <dlutter@redhat.com>
11876
11877	Include the augtool manpage as doc in the RPM
11878
118792008-04-23  David Lutterkort  <dlutter@redhat.com>
11880
11881	Don't die on NULL entries in args
11882	There is no guarantee that parseline will fill all of args with strings,
11883	empty or otherwise; chk_args needs to be prepared that any entry in args
11884	can be NULL.
11885
11886	Also, parseline initializes all args as NULL now to guard against garbage
11887	pointers accumulating from previous uses.
11888
118892008-04-23  David Lutterkort  <dlutter@redhat.com>
11890
11891	Don't complain about missing optional args
11892	For example, both 'print' and 'print PATH' are legal. Make sure we accept
11893	either.
11894
11895	Properly handle lines with spaces
11896	The lines read in through readline can now have spaces in their arguments,
11897	if those arguments are enclosed in single or double quotes.
11898
11899	Revised help texts
11900
11901	Man page
11902	Provided by Dean Wilson
11903
119042008-04-22  David Lutterkort  <dlutter@redhat.com>
11905
11906	Fix two memory leaks in the interpreter
11907
11908	Plug more memory leaks
11909
11910	Fix memory leak from not freeing hash table entries
11911
11912	Clean up the error path in load_file; free the loaded text in transform_load
11913
119142008-04-22  David Lutterkort  <dlutter@redhat.com>
11915
11916	Use fread_file_lim to read entire files
11917	The function is taken verbatim from libvirt's util.c, and due to show up in
11918	gnulib soon.
11919
11920	Also, make read_file return a char * instead of the silly const char *.
11921
119222008-04-22  David Lutterkort  <dlutter@redhat.com>
11923
11924	Check the return value from hash_create
11925
11926	More const-correctness fixes
11927	Patch provided by Jim Meyering
11928
11929	File needed for running the tests
11930
11931	Stick more closely to what the shell accepts as assignments
11932
11933	Properly escape/unescape quotes in strings
11934	Patch provided by Alan Pevec
11935
119362008-04-21  David Lutterkort  <dlutter@redhat.com>
11937
11938	Updated for 0.0.8 and upcoming 0.1.0 release
11939
11940	Remove aug_exists from public API
11941	aug_get now combines the functionality of the old aug_exists and aug_get
11942	calls, so that callers can retrieve a value and check whether a path
11943	expression matches exactly one node in a single call.
11944
11945	Make creation of new files work
11946	When a subtree is created that corresponds to a brandnew file, create the
11947	underlying file properly.
11948
11949	Propagate failure of transform_save up
11950
119512008-04-21  David Lutterkort  <dlutter@redhat.com>
11952
11953	Sync compiler warnings with latest from libvirt
11954	This should avoid build failures seen on Debian, caused by
11955	-fstack-protector
11956
11957	Also fix build failure caused by addition of -Wformat-security
11958
119592008-04-21  David Lutterkort  <dlutter@redhat.com>
11960
11961	Mention people who sent patches
11962
11963	Parse network configs in /etc/sysconfig/ifcfg-*
11964	Patch provided by Alan Pevec
11965
11966	Don't mark ROOT for MAKE_PATH as const - it's not always true
11967
11968	Cap file reads (arbitrarily) at 32MB
11969
11970	Don't ever try to read a directory
11971	Suggested by Jim Meyering.
11972
11973	Return int from aug_print to indicate errors
11974	Check for failures during printing and return an indication whether printing
11975	succeeded or not.
11976
119772008-04-21  David Lutterkort  <dlutter@redhat.com>
11978
11979	Don't hide pointer in typedef; const correctness
11980	The type for the Augeas handle is now called 'augeas' insteda of
11981	'augeas_t', and is a struct, not a pointer to a struct.
11982
11983	Mark the places where the passed-in struct augeas is readonly in the API.
11984
11985	Patch provided by Jim Meyering
11986
119872008-04-21  David Lutterkort  <dlutter@redhat.com>
11988
11989	Change names of macros used to guard against double-inclusion
11990	Change the names from __NAME_H to NAME_H_ since __* macros are reserved.
11991
11992	Suggested by Jim Meyering.
11993
119942008-04-21  David Lutterkort  <dlutter@redhat.com>
11995
11996	Add "2008" to the copyright in the headers
11997
119982008-04-19  David Lutterkort  <dlutter@redhat.com>
11999
12000	Remove dependency on glib and use kazlib's hash table instead
12001	The dependency on glib was only there for the hash tables used by
12002	libfa. Rather than requiring all of glib just for that, use the hash table
12003	implementation in hash.[ch] taken from kazlib.
12004
120052008-04-18  David Lutterkort  <dlutter@redhat.com>
12006
12007	Hashtable from Kazlib 1.20
12008	Available from http://users.footprints.net/~kaz/kazlib.html
12009
12010	Abort if failing assertions are not used
12011
120122008-04-19  David Lutterkort  <dlutter@redhat.com>
12013
12014	Remove pathsplit symbol
12015
120162008-04-16  David Lutterkort  <dlutter@redhat.com>
12017
12018	Added tag release-0.0.8 for changeset cb00aa18e518
12019
12020	Release 0.0.8
12021
12022	Remove unused function
12023
12024	Install lens tests in lenses/tests/ not lenses/
12025
12026	Use the right path expression to print the whole tree
12027
12028	Don't segfault when a test fails without producing any tree
12029
120302008-04-15  David Lutterkort  <dlutter@redhat.com>
12031
12032	Call the node for a boot entry 'title'
12033
120342008-04-14  David Lutterkort  <dlutter@redhat.com>
12035
12036	Remove the use in sequences in some places
12037	Where indentation isn't important, we can flatten and simplify the tree by
12038	not using seqs. Instead of something like aliases/1, aliases/2, ... we now
12039	have alias[1], alias[2] etc.
12040
12041	Start sequences at 1, in symmetry with the element[N] counting
12042
12043	Consolidate tree allocation into one make_tree function
12044
12045	Change the ins syntax to support insert before/after
12046	This reflects the change to the aug_insert API
12047
12048	Handle searching for the last() element properly
12049	path_first didn't find anything when looking for 'element[last()]'
12050
12051	Process grub.conf
12052
120532008-04-14  David Lutterkort  <dlutter@redhat.com>
12054
12055	Don't delete too many siblings
12056	When a path specified a node that had siblings with the same name, tree_rm
12057	was deleting that node and all the siblings after it (because the name
12058	label[3] would ssuccessively refer to its later siblings as label[3] was
12059	deleted)
12060
12061	Now, first generate a list of nodes to delete before removing anything.
12062
120632008-04-14  David Lutterkort  <dlutter@redhat.com>
12064
12065	Fix put test - it was checking for hte wrong result
12066
12067	Running a failing test fails loading the whole module
12068
120692008-04-11  David Lutterkort  <dlutter@redhat.com>
12070
12071	Add path expressions allowing XPath-like path matching
12072	Path expressions passed in through the public API can now contain indices
12073	to denote a specific sibling (including [last()]) amongst siblings with
12074	multiple labels, and use '*' to match nodes with any label.
12075
12076	Syntax and semantics follow XPath.
12077
120782008-04-11  David Lutterkort  <dlutter@redhat.com>
12079
12080	Run all tests - don't abort after the first failure
12081
120822008-04-10  David Lutterkort  <dlutter@redhat.com>
12083
12084	Escape values and enclose them in quotes when printing
12085
12086	Typecheck only on the first test
12087	It's enough to pass -c to augtool on the first test we run; doing it again
12088	in later tests is completely redundant and just slows the test run down.
12089
120902008-04-09  David Lutterkort  <dlutter@redhat.com>
12091
12092	Complain if a transform is built from a lens orphaning a key/value
12093	Such a transform would lose information when applied and can't be
12094	valid. Ideally, this check would be in the typechecker, but requires
12095	dependant types, too much of a complication right now.
12096
120972008-04-09  David Lutterkort  <dlutter@redhat.com>
12098
12099	Clean up some confusion around the semantics of store
12100	Store does not create a tree; instead it puts a value in place where the
12101	enclosing subtree will find it.
12102
12103	During lens building, there is now a check to make sure the key and value
12104	are set in at most one place in each subtree. Ideally, this check would
12105	happen in the typechecker, but it would require that we parametrize the
12106	lens type, considerably complicating matters.
12107
121082008-04-09  David Lutterkort  <dlutter@redhat.com>
12109
12110	When get encounters an error during a test, include hte tree in the exn
12111	lns_get now returns a tree even if the full input was not consumed. To
12112	check whether get succeeded, the ERR parameter needs to be checked.
12113
12114	Update README
12115
12116	Remove 'spec' files and tests that don't make sense any longer
12117
12118	Fail test scripts on _any_ unexpected error
12119
12120	Distribute lens tests
12121
12122	Suppress .rpmnew/save files
12123
12124	Obey AUG_TYPE_CHECK flag
12125	Do not do the expensive lens type checks if AUG_TYPE_CHECK is not set. Run
12126	augtool with -c in tests to ensure tests do type checks.
12127
121282008-04-09  David Lutterkort  <dlutter@redhat.com>
12129
12130	Update augtool round-trip tests and add them to 'make check'
12131	Update the tests to the new layout of the tree.
12132
12133	augtest allows marking tests to skip (by putting 'skip=true' into the
12134	test) and sets the exit status properly so that 'make check' will fail if
12135	one of the augtool tests fails
12136
121372008-04-09  David Lutterkort  <dlutter@redhat.com>
12138
12139	Fix underallocation
12140
12141	Only attempt to save if there are dirty files
12142
12143	Reread the original file from the same root on save
12144
12145	Pass the children of the right tree
12146
12147	Fix some errors that made aug_save fail
12148
12149	Mark a freshly loaded tree as clean
12150
12151	Check the return value of asprintf
12152	Handling of asprintf failures (and allocation failures in general) needs a
12153	lot more work.
12154
12155	Small touchup - needs much more work
12156
12157	Fix segfault if a qualified name references the module it is in
12158	Now explicitly referencing the enclosing module works properly: if the name
12159	is already defined locally, everything works, and if it is not, an error is
12160	produced.
12161
121622008-04-08  David Lutterkort  <dlutter@redhat.com>
12163
12164	Typecheck the atype of concat and iter
12165
12166	Typecheck the atype of union
12167
12168	Change the typecheck on union
12169	Typecheck unions l1|l2 less strictly (and less annoyingly) by requiring
12170	that l2 has a chance of ever being used, and not the stricter criterion of
12171	disjoint ctypes for l1 and l2
12172
12173	Port of the lenses for inittab and sshd_config tothe new syntax
12174
12175	Curb the repeated printing of exceptions
12176
12177	Clearer error message
12178
12179	Processing of pam.d
12180
12181	Pull some useful space deleters into Util
12182
12183	Check that let expressions work
12184
12185	Fix problem in concating filters
12186	The check whether we fully own a filter in compile_concat, and therefore
12187	can modify it destructively, was wrong. Besides holding the only reference
12188	to the filter, we also need to be holding the only reference to the value
12189	wrapping the filter.
12190
12191	Mark hosts and aliases for autoloading
12192
12193	Load from the new ../lenses dir
12194
12195	Obey setting of an explicit root directory
12196
12197	Don't segfault when there is no filter arg for a match
12198	Before, running "augtool match '/augeas/files/*/error'" would result in a
12199	segfault. Now it prints all matching entries, regardless of their value.
12200
12201	Handle continuation lines; more thorough tests
12202
12203	Check that labels and keys do not contain a '/'
12204	We rely on that fact in various places when handling paths; '/' is the
12205	separator of path components and can never appear in a path component.
12206
12207	Print a newline on EOF
12208
12209	Autoloading of files for augtool
12210	Autoload is indicated by putting a 'autoload ...' statement as the first
12211	expression in a module. Currently, there can only be one autoload; the
12212	identifier mentioned in the autoload must be defined in the enclosing
12213	module.
12214
122152008-04-07  David Lutterkort  <dlutter@redhat.com>
12216
12217	Builtins for filters and transforms
12218	Three simple builtins to construct transforms:
12219
12220	- incl : string -> filter includes all files matching a glob
12221	- excl : string -> filter -> filter excludes all files matching a glob
12222	- transform: lens -> filter -> transform
12223
122242008-04-08  David Lutterkort  <dlutter@redhat.com>
12225
12226	Implement free_lens
12227
122282008-04-07  David Lutterkort  <dlutter@redhat.com>
12229
12230	A lens for yum
12231
12232	Fix bad free
12233
12234	Add Util.split
12235
12236	Local let expressions
12237	Add syntax for
12238	  let a =
12239	    let b = exp in
12240	      exp
12241
12242	Plug two more memory leaks
12243	- require_exp_type is sometimes called with a term that already has
12244	  a type. Don't typecheck such terms again
12245	- compile_compose should not run the full typechecker on the closure it is
12246	  building, since parts of it have been typechecked already. Instead,
12247	  manually create types for the new terms. Also, don't evaluate the
12248	  subexpressions since their values are not used at all
12249
12250	Add a 'gensym' builtin
12251
12252	More ref ocunting fixes
12253	- aug_close now releases the list of modules
12254	- compile_bracket cleans up the arg
12255	- augparse closes the augeas connection, mostly so that we can see leaks
12256	  in valgrind better
12257
122582008-04-04  David Lutterkort  <dlutter@redhat.com>
12259
12260	Fix major brainfart in ref counting lists
12261	The way lists were reference counted (and particularly unref'd) was just
12262	plain stupid wrong. A list 'next' pointer is no different from any other
12263	pointer when it comes to ref counting.
12264
12265	Initialize *err properly, even if there is no tree
12266
12267	Fix bug with nested subtrees
12268	There was no clear indication if a subtree was a leaf (and should therefore
12269	not grow any tree returned by its child) or was an interior subtree (so
12270	that any returned tree needs to become a child of a new tree)
12271
12272	Kludge around an inconsistency with print_tree
12273
12274	Beginnings of tests for the interpreter
12275
12276	Exceptions during compilation countas failure
12277
12278	Fix how the key regexp for unions is calculated
12279	Union would produce spurious empty keys, for example in the expression
12280	  [ key /a/ . ([ l1 ] | [ l2 ]) ]
12281	the union would get an atype of '//' which is wrong, since the subtree []
12282	does not contribute to an atype.
12283
12284	Start a util module with some common functions
12285
12286	Run lens tests during 'make check'
12287
12288	Fix bug introduced in 292:5123e63e004b
12289	Don't compare with the whole path if there is a parent, only the last
12290	component of that path.
12291
12292	Handle trailing slashes on loadpath components cleanly
12293
12294	/etc/aliases processing in the new syntax with tests
12295
122962008-04-04  David Lutterkort  <dlutter@redhat.com>
12297
12298	Allow rm from toplevel of tree
12299	The only issue with this is that the dirty flag can not be set properly
12300	when deleting from the toplevel of the tree since the flag has to be set on
12301	the parent, which we don't have.
12302
12303	This is really only an issue if (a) we delete the whole tree (b) the next
12304	sibling of the node we delete is semantically different from the deleted
12305	node (e.g. because it goes into a different file)
12306
12307	Either way, this only happens during tests; in the 'real' tree, toplevel
12308	nodes are fixed, like /files and /augeas, and we don't really have an issue
12309	there.
12310
123112008-04-04  David Lutterkort  <dlutter@redhat.com>
12312
12313	Small tweaks
12314
12315	Produce exn when tree_rm/tree_set fail
12316
12317	Update yylloc for string/regexp constants
12318
123192008-04-03  David Lutterkort  <dlutter@redhat.com>
12320
12321	When compile_exp produces an exn, bind it anyway
12322	This avoids lots of trouble with NULL values
12323
12324	Desugar (lens)+
12325	The construct (lens)+ is now processed as lens . lens*
12326
12327	Fix segv on repetition of regexps
12328
12329	Clearer error messages from typechecking lenses
12330
12331	Fix key regexp for union; throw exception on subtrees with multiple keys
12332
12333	Have lens constructors return exns on failure
12334	Also refactor exception generation.
12335
12336	Add a test that produces an exception
12337
12338	Allow '*' as a test result indicating an expected exception
12339
12340	Error propagation from lns_put
12341	Record a lns_error if things don't work out during put. Generate an
12342	exception on error.
12343
12344	A very first lens in the new syntax, with tests
12345
12346	Use the default string for a del lens, really.
12347
12348	Module names must be consistent with the name of the file they are in
12349	The basename of the file must be the name of the module, lowercased and
12350	with ".aug" appended
12351
123522008-04-03  David Lutterkort  <dlutter@redhat.com>
12353
12354	Add explicit loadpath
12355	augtool and augparse now take an explicit loadpath with the -I option,
12356	which can be repeated multiple times.
12357
12358	aug_init takes a loadpath as a new argument
12359
123602008-04-03  David Lutterkort  <dlutter@redhat.com>
12361
12362	Load needed modules
12363	When the module for a qualified identifier Mod.name is not loaded yet,
12364	automatically load it by looking for a file mod.aug on the module load
12365	path.
12366
12367	Rename struct env to struct module
12368
12369	Separate function composition from concatenation
12370	Function composition is now written as 'f ; g' instead of 'f . g'
12371
12372	Allow tree constants with NULL labels
12373
12374	Clean up printing of empty trees
12375
12376	Clarify the reference counting terminology
12377
12378	Free the skel that lns_put creates initially
12379
12380	Make sure free_dict frees the whole dict
12381
12382	Fix reference problem
12383	The wrong type was being unref'd
12384
123852008-04-02  David Lutterkort  <dlutter@redhat.com>
12386
12387	Free the whole dictionary
12388	While entries are looked up, dict->entry changes; dict->mark is the head of
12389	the list of all entries that were ever in the dict.
12390
12391	Clear skel and dict in state so assertions in create_ don't trip
12392
12393	Always split the full tree
12394	There's no need to support splitting a partial tree for now. This means
12395	that lns_put will put TREE and all its siblings.
12396
12397	Fix incorrect usage of size parameter for re_match
12398
12399	Add missing break in get/parse_union
12400	Without it, it acts like a concat that drops trees on the floor
12401
12402	Allow printing of hidden tree nodes
12403	When printing test results, we want to see the full tree
12404
12405	Pass lns_error to parse; free dicts and skels
12406
124072008-04-02  David Lutterkort  <dlutter@redhat.com>
12408
12409	Report errors from get as exceptions
12410	Adds a value kind 'EXN'. When the interpreter gets such a value, it bails
12411	out immediately.
12412
12413	lns_get now reports parse errors in an lns_error struct, which is turned
12414	into an exception in the interpreter.
12415
124162008-04-02  David Lutterkort  <dlutter@redhat.com>
12417
12418	Added tag ml-syntax-start for changeset fcd6c04a1eed
12419
12420	A subtree without a key matches "/"
12421
12422	Print \n after test result
12423
12424	Allocate enough bytes for string in unescape
12425
12426	Free regexps cleanly
12427
12428	Fill in subtree->atype with empty regexp
12429
124302008-04-01  David Lutterkort  <dlutter@redhat.com>
12431
12432	Interpreter for the new file description syntax
12433	This is by no means done, but done enough to allow incremental fixes from
12434	now on. This checkin still contains lots of FIXME's and bugs. Very simple
12435	unit tests do work though.
12436
12437	The syntax for describing files is now a very simple OCaml-like functional
12438	language; the file syntax.c implements an interpreter for that language.
12439
124402008-03-25  David Lutterkort  <dlutter@redhat.com>
12441
12442	Revamp the language
12443
124442008-03-14  David Lutterkort  <dlutter@redhat.com>
12445
12446	Remove comment about fa_overlap/fa_ambig_example
12447	I don't really have the data to support preferring one over the other that.
12448
12449	Rename parse_* functions to get_*
12450
12451	Rename parser.c to get.c
12452
12453	Add bcprules (by Benjamin Pierce); needed by lenses.tex
12454
12455	Added tag release-0.0.7 for changeset 93563112907c
12456
12457	Release 0.0.7
12458
12459	Expose typechecking in augtool
12460	Run 'augtool -c' to get typechecking. Very useful during
12461	development. (Though augparse is even more useful when writing new lenses)
12462
12463	Be a little more restrictive on when to dump the whole grammar
12464
12465	Fix lenses so that they pass type checking.
12466	There were several subtle amibuities in the lenses previously, which the
12467	typechecker nicely discovers now.
12468
12469	When splitting the tree, check that we are atthe right subtree
12470	Without the check, spliting at a subtree just gobbles up trees without any
12471	regard for what that tree is. This becmoes a problem in a sequence like
12472	  [ COMMENT ] * . [ key FOO . store BAR ] *
12473	when there is no comment, and therefore no subtree witha NULL label. A tree
12474	with a single node matching FOO is wrongly split as if there was a COMMENT
12475	(which, if it were there would have to have a NULL label)
12476
124772008-03-13  David Lutterkort  <dlutter@redhat.com>
12478
12479	Defer allocating storage for a state_set as long as possible
12480
12481	Rename constants state_set_* to array_*
12482	We use state_set_initial_size and state_set_max_stride for both state_set
12483	and transitions arrays. Rename them to array_initial_size and
12484	array_max_expansion
12485
12486	Speed up FA_MINUS by checking for some simple cases with fixed results
12487
12488	Speed up fa_contains by not determinizing FA1
12489
12490	Speed up intersection
12491	(1) Do not determinize before intersecting
12492	(2) Check if one of the automata is the empty language, and return the
12493	    empty language if so
12494
12495	Store transitions in an array
12496	Brings about a 10% performance gain since we don't allocate each transition
12497	individually, and since traversing and accessing transitions is a wee bit
12498	faster.
12499
12500	Remove unused macro
12501
12502	Clean up fa_iter some
12503	Now both cases (max == -1 for unbounded iteration) and max >=0 use the same
12504	code to generate the automaton (fa){min}
12505
12506	Compute union and concat in place internally
12507	Reduces the number of times we clone an fa for internal purposes, and
12508	therefore the memory management overhead.
12509
12510	Rejigger the weights assigned by chr_score to make fa_example more predictable
12511
12512	Minor optimization for fa_example
12513
12514	Keep the list of states for clone in a sorted set
12515	This speeds up things enormously (for cmfm.aug, augparse goes from 17s to 6s)
12516
12517	Store that pairs of states for intersection in a hash table
12518
12519	Sorted state sets
12520	When order of states in a set doesn't matter, allow the set to be kept
12521	sorted so that search can use binary search.
12522
125232008-03-12  David Lutterkort  <dlutter@redhat.com>
12524
12525	Fix two memory leaks
12526
12527	Remove the last uses of FA_MAP
12528	Use STATE_SET instead, since it's faster and lighterweight
12529
12530	Rename structs fa_state and fa_trans to state and trans
12531
12532	[mq]: min_hopcroft.patch
12533
12534	Sort transitions before generating examples
12535	Otherwise, examples depend on the order in which transitions appear for
12536	each state.
12537
12538	Add state sets at head of state_set_list
12539
12540	Use state_set in fa_clone
12541	To speed up fa_clone, keep the correspondence between old and new states in
12542	a state_set to reduce allocation overhead.
12543
12544	Reverse transitions in place in fa_reverse
12545
12546	Improve the performance of fa_intersect with better data structures
12547	Store the map of (s1, s2) -> s for intersection in nested state sets
12548	instead of a linked list.
12549
125502008-03-12  David Lutterkort  <dlutter@redhat.com>
12551
12552	Faster data structures for sets of states and a list of sets of states
12553	Store the list of sets of states for determinize in a hash table. Since I
12554	don't feel like implementing my own, pull in glib and use GHashTable.
12555
12556	Store sets of states in an array rather than in a linked list. This greatly
12557	reducs the overhead from memory allocations, since the array is expanded by
12558	doubling its size (up to some threshold)
12559
125602008-03-11  David Lutterkort  <dlutter@redhat.com>
12561
12562	fa_star added a spurious epstrans loop on new initial
12563
12564	Mark live and reachable states
12565	Performance improvement. Instead of allocating temporary lists for live and
12566	reachable states, use one bit each in the state to mark them for that
12567	purpose.
12568
125692008-03-11  David Lutterkort  <dlutter@redhat.com>
12570
12571	Add typechecking of lenses
12572	Concatenation and iteration of lenses is now checked for ambiguity. Union
12573	is checked for disjointness, but that is only flagged as a warning, since
12574	it's mostly a harmless problem, and fixing it requires writing nasty
12575	regexps in the spec files.
12576
12577	Fix existing specs to pass typeckecking. Typechecking is extremely slow
12578	right now, some of that will be addressed shortly. For now, augtool does
12579	not do typechecking, but augparse does by default.
12580
125812008-03-10  David Lutterkort  <dlutter@redhat.com>
12582
12583	Fix subtle bug in determinize
12584	Fix a bug that would only hit if '\0' is ever in points.
12585
125862008-03-06  David Lutterkort  <dlutter@redhat.com>
12587
12588	Add fa_ambig_example to generate ambiguous words
12589	Generate an ambiguous string upv given two languages and directions on how
12590	to split that string into u.pv and up.v. Algorithm from Anders Moeller from
12591	the dk.brics.grammar package.
12592
125932008-03-06  David Lutterkort  <dlutter@redhat.com>
12594
12595	Fix example generation, it was completely broken
12596	The previous algorithm was way too simplistic, and failed on more
12597	complicated languages.
12598
12599	fa_example now generates a relatively short word, subject to certain
12600	preferences, so that for example, alnum characters are preferred over
12601	printable ones, and those over nonprintable ones.
12602
126032008-03-06  David Lutterkort  <dlutter@redhat.com>
12604
12605	Fix some cornercases in fa_example
12606
126072008-03-05  David Lutterkort  <dlutter@redhat.com>
12608
12609	Add generators and tests for some basic languages
12610	Basic languages are the empty language, the language containing only the
12611	empty word, and the total language \Sigma^*
12612
12613	Fix tyops
12614
12615	Added tag release-0.0.6 for changeset 9a4f846673ac
12616
12617	Released version 0.0.6
12618
126192008-03-05  David Lutterkort  <dlutter@redhat.com>
12620
12621	Allow influencing the behavior of save
12622	By passing one of the flags AUG_SAVE_BACKUP or AUG_SAVE_NEWFILE to
12623	aug_init, it is possible to influence the behavior of aug_save to either
12624	overwrite files in palce, save originals with extension .augsave, or put
12625	changes into files with extension .augnew.
12626
12627	Also added switches to augtool to set this from the command line, and to
12628	set the filesystem root.
12629
126302008-03-05  David Lutterkort  <dlutter@redhat.com>
12631
12632	Added tag release-0.0.5 for changeset 0efe2a620e39
12633
12634	Mark print_re as unused
12635
12636	Release 0.0.5
12637
12638	Make aug_close public
12639
12640	Public API change: include a reference to an augeas_t in all calls
12641	To make Augeas threadsafe, we need to move away from keeping stuff in
12642	global variables.
12643
126442008-03-04  David Lutterkort  <dlutter@redhat.com>
12645
12646	Add fa_example which produces an example string from a regular language
12647
12648	Add a test that performs Anders Moeller's ambiguity algorithm manually
12649
126502008-03-04  David Lutterkort  <dlutter@redhat.com>
12651
12652	Two bug fixes
12653	(1) fa_make_char_set would never create transitions with min == max
12654	(2) fa_intersect got things wrong when t2 had an interval that overlapped
12655	    several intervals on t1
12656
12657	Also added tests to check these two problems.
12658
126592008-03-04  David Lutterkort  <dlutter@redhat.com>
12660
12661	Fix handling of negated charsets
12662	Negated charsets where handled entirely wrong. A character set is now
12663	represented as a map from char -> {0, 1}. That map is rather big (one byte
12664	per character)
12665
12666	Fix order in which libraries are installed
12667	libaugeas must be installed after libfa, since it depends on it.
12668
12669	Remove old sketch of interface; not needed anymore
12670
12671	Compute the complement, set difference and overlap of two languages
12672
126732008-03-04  David Lutterkort  <dlutter@redhat.com>
12674
12675	Fix a bug in how '.' is being handled
12676	The '.' was treated the same as [\n] instead of [^\n] by mistake.
12677
12678	Also fixes a small bug in fa_contains.
12679
126802008-03-04  David Lutterkort  <dlutter@redhat.com>
12681
12682	Add deciding unambiguously iterable based on ua concatenable
12683
126842008-03-03  David Lutterkort  <dlutter@redhat.com>
12685
12686	Automatically free all automata allocated during a test
12687
12688	Cleanup the returned FA in fa_intersect
12689
12690	Add a target to run fatest through valgrind
12691
12692	Add fa_intersect: intersection of regular languages
12693
12694	Comment the uses of FA_MAP better and rename some internal helper functions
12695
12696	Clean up management of state lists
12697	Centralise allocating new states for a fa in add_state; that makes sure
12698	that all states appear on the list of states in fa->initial.
12699
12700	Do not rely on gcc >= 4.0 for restricting symbol exports
12701	Use a linker script instead. The visibility pragma is only available in gcc
12702	>= 4.0, and thus imposes a pretty high burden to build Augeas.
12703
127042008-02-29  David Lutterkort  <dlutter@redhat.com>
12705
12706	Reign in the number of symbols exported from libaugeas
12707	Use visibility=hidden to keep most local symbols to ourselves. Still needs
12708	some work for augparse/augtool
12709
12710	Performance improvements
12711	(1) Don't minimize the automaton quite so often. Now, only fa_compile minimizes
12712	    by default.
12713	(2) Instead of full-on minimization, clean up the automaton before
12714	    returning to the user by removing dead transitions/states.
12715
12716	Remove gratuitous list traversals
12717	Replace list_append with list_cons (adds at the head of a list) where order
12718	of the list does not matter.
12719
12720	Add tests for language subsets and equality
12721
127222008-02-29  David Lutterkort  <dlutter@redhat.com>
12723
12724	The beginnings of a finite automata library
12725	The code is heavily based on the Java package dk.brics.automaton by Anders
12726	Moeller (http://www.brics.dk/automaton/)
12727
12728	Eventually, this should becomea standalone library, seeing how there does
12729	not seem to be any open-source, maintained finite automata library.
12730
127312008-02-29  David Lutterkort  <dlutter@redhat.com>
12732
12733	Some unit testing help
12734	This is an adapted version of CuTest
12735	(http://sourceforge.net/projects/cutest/) written by Asim Jalis
12736
12737	Minimal docs for aug_save and aug_print
12738
127392008-02-26  David Lutterkort  <dlutter@redhat.com>
12740
12741	Ignore more stuff
12742
12743	Fix segfault in aug_ls
12744	When skipping nodes with NULL label, don't segfault if the whole tail of
12745	the list has NULL labels
12746
127472008-02-25  David Lutterkort  <dlutter@redhat.com>
12748
12749	Added tag release-0.0.4 for changeset d8e750d82f97
12750
12751	Version 0.0.4
12752
12753	Some NEWS
12754
12755	Package as RPM
12756
12757	Turn off warnings-as-errors when building spec-lex.l
12758	We need -Wno-error, otherwise the CFLAGS passed during mock builds turn
12759	checking for unused parameters back on; flex doesn't provide an easy way to
12760	generate code that passes those checks (that's the reason for building the
12761	liblexer.la convenience lib)
12762
12763	Only define print_dict when it is used
12764
12765	Added tag release-0.0.3 for changeset 56cb08f222a3
12766
12767	Version 0.0.3
12768
12769	Test for readline in a way that works on RHEL5
12770
12771	Some build/install tweaks
12772	(1) Rename spec in $(datadir)/augeas/spec to lenses
12773	(2) Add pkgconfig info for libaugeas
12774	(3) Install augeas.h as a header
12775
12776	Rename AUGEAS_SPECLIB to AUGEAS_LENS_LIB
12777
12778	Added tag release-0.0.2 for changeset f981ccccb0ab
12779
12780	Include the try script in the distribution
12781
12782	Bump version to 0.0.2
12783
12784	Fix things up so that 'make distcheck' works
12785	(1) make test runs work when when top_builddir != top_srcdir
12786	(2) Include spec/ files in distribution
12787	(3) disable test-grammars.sh since the test grammars are busted right now
12788
12789	Fix warnings about uninitialized variables
12790
12791	Add config.h to libaugeas.la
12792
12793	Stricter types for some combinators. List needed reg lang operations
12794
127952008-02-21  David Lutterkort  <dlutter@redhat.com>
12796
12797	Some changes to the yum description
12798	(1) Use a yum.conf that is actually shipping
12799	(2) Make COMMENT match blank lines
12800	(3) Fix tests to work with updated yum.conf
12801
12802	Only create /tmp/augcmds.txt if it doesn't exist
12803	Nothing deep; just trying to keep Mercurial from marking the file as
12804	modified as I change the commands that try runs
12805
12806	Make aug_ls return all the children for a given path
12807	aug_ls did not handle entries that were split across several nodes
12808	properly. Now, we find all the nodes for the given path and list their
12809	children.
12810
12811	Fix splitting of AcceptEnv
12812	The list of env vars for AcceptEnv was not being split into individual
12813	pieces
12814
128152008-02-20  David Lutterkort  <dlutter@redhat.com>
12816
12817	A (pretty kludgy) description for cmfm.conf
12818
12819	Make printing of skel/dict optional
12820
12821	Print test results a tad prettier
12822
128232008-02-20  David Lutterkort  <dlutter@redhat.com>
12824
12825	Use GNU regex instead of PCRE
12826	Use the GNU regex functions from glibc instead of PCRE, as glibc uses a DFA
12827	implementation that does not suffer the limitations of PCRE's backtracking
12828	implementation.
12829
12830	The syntax for regular expressions is now RE_SYNTAX_POSIX_MINIMAL_EXTENDED,
12831	essentially extended POSIX regular expressions, except that '.' does not
12832	match newlines.
12833
128342008-02-20  David Lutterkort  <dlutter@redhat.com>
12835
12836	Clean up regexps for POSIX
12837	Various small fixes to regexps to make them work properly as POSIX regexps.
12838
12839	Added tag remove-any-first-follow for changeset 0d22160e9494
12840
128412008-02-20  David Lutterkort  <dlutter@redhat.com>
12842
12843	Remove any matches ... and ..? from the language. Remove first/follow sets
12844	They currently require lookahead assertions from the underlying regexp
12845	engine.
12846
12847	Since any matches were the only reason to compute first/follow sets, remove
12848	those, too.
12849
128502008-02-20  David Lutterkort  <dlutter@redhat.com>
12851
12852	Remove the use of the any operators '...' and '..?'
12853	These operators inherently require lookahead assertions, but we need to
12854	switch to a regexp engine that does not support them.
12855
12856	Don't segfault when parsing fails
12857
128582008-02-19  David Lutterkort  <dlutter@redhat.com>
12859
12860	Drop CF-oriented check for ambiguity through looking at first sets
12861
12862	Allow escaping of a slash in tegular expressions
12863
128642008-02-18  David Lutterkort  <dlutter@redhat.com>
12865
12866	Base parsing completely off regexp matching.
12867	Parsing now uses regexp matching, and not the CFG-style parsing based on
12868	first sets previously used. This actually makes it easier to write specs,
12869	since parsing decisions are made based on the complete string, not just the
12870	first 'token'.
12871
12872	The downside is that rules can not be recursive anymore, as that would
12873	make the matched language non-regular.
12874
12875	The main motivator for this change is that it makes it possible to do
12876	stricter checking of the input spec using type checking similar to
12877	boomerang's string lenses based on operations on regular languages.
12878
12879	Unfortunately, we have to keep first/follow computations to construct the
12880	fairly tricky regexps that are used for ANY patterns.
12881
128822008-02-18  David Lutterkort  <dlutter@redhat.com>
12883
12884	Remove unused token T_FIELD
12885
12886	Rename match.xaction to match.action
12887	The field was named initially to avoid a clash with another 'action' field,
12888	but that field is gone now.
12889
12890	Add Match blocks
12891
12892	Remove leading whitespace inside Match directives
12893
128942008-02-18  David Lutterkort  <dlutter@redhat.com>
12895
12896	Fix nested splits
12897	For a lens like a . (b . c)*, tree_split used to return a split that looked
12898	like [a; b; c; b; c] That is wrong: when we split on the outer '.', we need
12899	to produce a split with exactly two entries: [a; b] (where b stands as the
12900	first entry in the tree that '*' will act on.
12901
12902	split_tree_car cleans up recursively computed splits in this manner; those
12903	subsplits are mostly computed for their sideeffect, particularly for the
12904	fact that they change state->tree.
12905
129062008-02-18  David Lutterkort  <dlutter@redhat.com>
12907
12908	Properly print split nodes
12909
12910	Lenses for sshd_config
12911	This is interesting because of the treatment of AcceptEnv and similar
12912	constructs
12913
129142008-02-18  David Lutterkort  <dlutter@redhat.com>
12915
12916	For split nodes, append entries at the last occurence
12917	It is possible that one logical node is split across several physical
12918	nodes to accomodate settings that are spread across several lines like
12919	'AcceptEnv' for sshd_config. Such lines lead to multiple nodes
12920	/system/config/sshd/AcceptEnv (all siblings of each other)
12921
12922	When a call to aug_set creates a new entry underneath such a split node,
12923	make sure that that the new node is put under the last such node. This
12924	helps maintain the illusion for users that the split node is really just
12925	one node.
12926
129272008-02-15  David Lutterkort  <dlutter@redhat.com>
12928
12929	Report some information underneath /augeas
12930	The root directory and information about how files were loaded into the
12931	tree are kept in the /augeas hierarchy now
12932
12933	Fix very bad use of realloc
12934
12935	Adjust expected diff
12936	Do not allow comments to disappear
12937
12938	Fix test
12939	The old diff was bogus (it expected a comment to be removed that has to
12940	stay there)
12941
12942	Cleanly handle comments
12943
12944	Default COLON to ':' plus tab. Simple tests for aliases
12945
12946	Informal survey of files in /etc
12947
12948	Ignore intermediate Latex files
12949
12950	Store comments in subtrees so they are restored properly
12951
12952	Turn into a test on a legal tree and make it pass
12953
12954	Fix split of QUANT_MAYBE. Add create_quant_maybe
12955
12956	Make aliases work
12957
12958	Free the results of split_tree
12959
12960	Properly split an empty * as an empty list
12961
12962	Try to make putting QUANT_MAYBE work
12963	This is still kinda suspect
12964
12965	parse_subtree must always generates a tree
12966	We have to have a subtree, no matter what, even if it is completely
12967	empty. If the subtree doesn't contain any key and store instructions, we
12968	still need to have a tree [ NULL -> NULL ]
12969
12970	Modified yum spec that seems to work
12971
12972	Script to ease testing of augtool
12973
12974	Enable parsing of pam
12975
12976	Remove bogus reset of 'record' counter
12977
12978	Fix print problem
12979	Print did not generate paths right; it would print children of a node with
12980	a path that did not contain the label of that node.
12981
12982	Add clear command
12983
12984	Properly handle a NULL value in aug_set. Make aug_insert deal with NULL labels.
12985
129862008-02-14  David Lutterkort  <dlutter@redhat.com>
12987
12988	Fixed, nicely working tests
12989
129902008-02-14  David Lutterkort  <dlutter@redhat.com>
12991
12992	Readline completion
12993	Complete command names and tree paths.
12994
12995	Also cleans up the path entered by the user so that it doesn't have
12996	trailing spaces or '/'. Cleaning should probably be done by the public
12997	API.
12998
129992008-02-14  David Lutterkort  <dlutter@redhat.com>
13000
13001	Major rework
13002	Code still unbelievably buggy and segfaults in lots of places, but it is
13003	fairly clean and works for choice examples.
13004
13005	The reworked code is based fairly closely of boomerang and
13006	lenses. doc/lenses.tex describes some of the background.
13007
130082008-02-13  David Lutterkort  <dlutter@redhat.com>
13009
13010	Cleaner syntax
13011	The spec language now contains instructions on how to build the tree inline
13012	with the grammar.
13013
13014	This change is majorly broken.
13015
130162008-02-12  David Lutterkort  <dlutter@redhat.com>
13017
13018	Better description of lenses
13019
13020	Different representation of the tree
13021	The tree is now represented as a tree data structure, where each node in
13022	the tree stores only a path component (label).
13023
130242008-02-08  David Lutterkort  <dlutter@redhat.com>
13025
13026	Beginnings of a formal writeup
13027
130282008-01-30  David Lutterkort  <dlutter@redhat.com>
13029
13030	Remove field references as a match
13031	It used to be possible to have a rule like
13032	  rule: RE '=' $1
13033	with the meaning that $1 would match the same thing as RE. That hasn't been
13034	used yet; unclear if it ever will.
13035
13036	When deleting, only mark AST changed when leaf was deleted
13037	This is really a kludge to work around the fact that we might construct
13038	incomplete AST's.
13039
13040	Slightly mroe helpful error message during parsing
13041
13042	Don't segfault when the parse matches nothing
13043
130442008-01-29  David Lutterkort  <dlutter@redhat.com>
13045
13046	Another yum test
13047
13048	Remove more unneeded cruft
13049
13050	Remove unneeded safe_free, TRUE and FALSE
13051
13052	Remove unneeded ROOT_DIR and update augtool help
13053
13054	Remove dead code and misleading comment
13055
13056	Remove files not needed any longer
13057
13058	Update NEWS
13059
13060	Run all the augtest tests by default and from make check
13061
13062	Test key/value parsing with yum
13063	The test file also nicely illustrates some shortcomings of the way comments
13064	are associated with tree entries. There's not enough flexibility to let the
13065	user cleanly indicate what a comment goes with (e.g., an entire section,
13066	the next key/value pair etc.)
13067
130682008-01-29  David Lutterkort  <dlutter@redhat.com>
13069
13070	Initialize fields used as path components
13071	When a field is used in a path component, initialize its value from the
13072	path. Since it is not possible to change an existing path, this operation
13073	is only needed when new parts of the AST are created.
13074
13075	The code assumes that the leaf for the path component is in the subtree
13076	where the leaf's value is used. That is not necessarily true; at least,
13077	it's not being checked from the grammar.
13078
130792008-01-29  David Lutterkort  <dlutter@redhat.com>
13080
13081	Test that reordering of subtrees works
13082
13083	Set the root of the tree from include
13084
130852008-01-29  David Lutterkort  <dlutter@redhat.com>
13086
13087	Respect ordering of nodes in the config tree.
13088	Previously, reordering of branches in the config tree did not lead to a
13089	corresponding reordering of elements in the file. Branches in the AST are
13090	now reordered in such a way that their ordering reflects the ordering in
13091	the config tree.
13092
13093	Iterator nodes with a $seq action need to be treated special: they do not
13094	change the path for the current (iterator) node, only for the child nodes.
13095	That is terribly ugly.
13096
130972008-01-29  David Lutterkort  <dlutter@redhat.com>
13098
13099	Fix bug in creating sequence subtrees
13100
131012008-01-29  David Lutterkort  <dlutter@redhat.com>
13102
13103	Distribute enters so we have one per match
13104	Simultaneous traversal of the AST and the config tree is much simpler if
13105	any match will only go at most one level deeper. That guarantees that
13106	entering a child in the config tree corresponds to entering an AST node
13107	(possibly followed by entering some more AST nodes labelled with the same
13108	path)
13109
13110	To this end, split actions with multiple enters into fake SEQUENCE matches
13111	(followed by the match that held the initial action). The fake SEQUENCE
13112	matches all have exactly one child in their matches field, and one of the
13113	enter instructions from the action for them.
13114
13115	Actions are also lifted up in the grammar as far as possible; in
13116	particular, this pulls constants (but not $seq) out of iterators. This
13117	ensures that the children of an AST node differ in exactly one path
13118	component.
13119
131202008-01-29  David Lutterkort  <dlutter@redhat.com>
13121
13122	Push stores to the matches they store in the tree
13123	In an assignment, the value being stored can only be a field
13124	reference. Push the corresponding action for the store to that field. This
13125	simplifies both getting and putting the tree.
13126
13127	As a byproduct, a number of questionable constructs are spotted and
13128	rejected:
13129	  (1) Assignments that move the value out of the current tree
13130	  (2) Storing the same value in more than one place in the tree (which
13131	      would make it possible to change one copy, but not both)
13132	  (3) Useless enter instructions; they don't cause harm but probably
13133	      indicate some other problem in the grammar. They are only spotted
13134	      if they get in the way of a store, but should probably be checked for
13135	      the whole grammar
13136
131372008-01-29  David Lutterkort  <dlutter@redhat.com>
13138
13139	Produce dot files for the grammar
13140
131412008-01-29  David Lutterkort  <dlutter@redhat.com>
13142
13143	Various changes to the tests to make them (almost) work
13144	(1) Adjust to the fact that the root dir is now a variable
13145	(2) Mark tests as failing if augtool exits with an error exit status
13146	(3) Use numbers matching [0-9]+ where the grammar uses $seq, otherwise
13147	    augtool will (rightly) report an impossible path
13148
13149	Some of the tests are still failing.
13150
131512008-01-29  David Lutterkort  <dlutter@redhat.com>
13152
13153	aug_ls: Fix bad parent comparison
13154	Before /foo/1000 was listed as a child of /foo/1
13155
13156	Docs
13157
131582008-01-24  David Lutterkort  <dlutter@redhat.com>
13159
13160	Rough thoughts about emit
13161
131622008-01-21  David Lutterkort  <dlutter@redhat.com>
13163
13164	For quantified groups, count the quantifier as the group
13165	Previously, for a match like '(A)*' A was counted as a group, which meant
13166	that if an action was attached to the group, all the children of the '*'
13167	node in the AST had the same path. By counting the '*' as the group, not
13168	'A', the children will have different name if different subtrees are
13169	produced in the group.
13170
13171	This ensures that in the AST, the children of '*' and '+' have different
13172	names and simplifies the 'put' direction of the transformation
13173	considerably.
13174
131752008-01-21  David Lutterkort  <dlutter@redhat.com>
13176
13177	Some config settings - most of them need to be exposed through configure.ac
13178
131792008-01-18  David Lutterkort  <dlutter@redhat.com>
13180
13181	Global filename does not exist. Use basename
13182
13183	Only increment $seq when it has been used
13184	With this change, $seq goes structly sequential in the generated tree
13185	nodes. Before, things like comments that don't lead to changes in the tree
13186	increased the counter, too.
13187
13188	Spec files needed by the tests
13189
13190	Don't segfault in ast_dot on NULL ast
13191
131922008-01-18  David Lutterkort  <dlutter@redhat.com>
13193
13194	Only save files with actual changes
13195	Split emitting into two parts: updating the AST from the config tree and
13196	actually writing the AST to file. do_insertion and do_deletion now report
13197	if they made any changes to the tree so that the provider can decide
13198	whether to save the file or not.
13199
13200	As a byproduct, parts of the AST that are no longer needed are actually
13201	freed.
13202
132032008-01-18  David Lutterkort  <dlutter@redhat.com>
13204
13205	Handle null values/tokens when storing
13206
13207	Detect association of values with impossible paths
13208
132092008-01-17  David Lutterkort  <dlutter@redhat.com>
13210
13211	Make augtest set AUGEAS_ROOT and AUGEAS_SPECLIB before running augtool.
13212	augtest now copies test files into a separate subdirectory and points
13213	augtool to that as its root. It also points augtool to ../spec for the spec
13214	files.
13215
13216	Add the spec provider.
13217	The provider should have been committed in 57:9e439a136787, but
13218	wasn't. Unfortunately, versions of prov_spec.c that would compile with that
13219	version have been lost. Therefore, builds between 57:9e439a136787 and this
13220	revision will fail.
13221
132222008-01-17  David Lutterkort  <dlutter@redhat.com>
13223
13224	Emit a the current tree into a file
13225	Based on the AST, generate the file that lead to that AST. Changes to the
13226	config tree are mirrored by corresponding changes in the AST before it is
13227	written to disk.
13228
13229	This is a first version that works for some restricted set of grammars, but
13230	needs a lot more testing.
13231
132322008-01-17  David Lutterkort  <dlutter@redhat.com>
13233
13234	Compute tree handles for each match
13235	The handle of a match is a set of regular expressions that indicate which
13236	subtrees are generated by that match. Handles are computed based on the
13237	actions in the grammar and propagated.
13238
13239	The handle of an action is a regular expression matching the path generated
13240	by that action.
13241
132422008-01-17  David Lutterkort  <dlutter@redhat.com>
13243
13244	Build an explicit AST
13245	Instead of representing the parsed file by a simple list of tokens, build a
13246	fullblown AST for that file. The AST is actually not very abstract, and is
13247	directly the parse tree from parsing a file with a certain grammar.
13248
13249	Split parsing and evaluating into to passes; references to fields
13250	are too hard to resolve with a partially constructed AST.
13251
13252	Also adds a routine (ast_dot) to output the AST as a dot file; this eases
13253	debugging tremendously. augparse will now produce dot files when given '-P
13254	ast'
13255
13256	Remove aug_token and any mention of it - that has been replaced by struct
13257	ast.
13258
132592008-01-17  David Lutterkort  <dlutter@redhat.com>
13260
13261	Represent quantifiers in their own match nodes
13262	Instead of using a field in struct match for quantifiers '*', '+', '?',
13263	represent quantified expressions by their own struct match, with a matches
13264	field pointing to the quantified expression.
13265
13266	This leads to a cleaner parser and makes constructing an explicit AST
13267	simpler.
13268
132692008-01-17  David Lutterkort  <dlutter@redhat.com>
13270
13271	Prefer comments over kv
13272
13273	Print first sets for every match
13274	Factor printing of a literal_set into print_literal_set and use it for
13275	printing both first and follow sets.
13276
13277	Remove debug printing in augparse about loaded maps
13278
132792008-01-07  David Lutterkort  <dlutter@redhat.com>
13280
13281	Free tokens entirely when freeing file
13282
13283	Set action in all path components
13284
132852008-01-03  David Lutterkort  <dlutter@redhat.com>
13286
13287	Provider that uses specs
13288	The spec provider is hooked into libaugeas and loaded. It reads spec files
13289	from /usr/share/augeas/spec and paths mentioned on AUGEAS_SPECLIB. Files
13290	are parsed according to the specs loaded, and values are written into the
13291	tree after parsing those files.
13292
13293	Still missing is saving of the tree back to file, and in particular adding
13294	new entries in the tree to such files.
13295
132962008-01-03  David Lutterkort  <dlutter@redhat.com>
13297
13298	Move hosts and inittab under /etc
13299
13300	Always set the passed-in grammars and maps to NULL
13301	Without that, it's too easy to pass an invalid pointer in from random
13302	nonsense on the stack. And since we do not append to anything the user may
13303	pass in, setting to NULL is safe.
13304
13305	Compile regexps for multiline matching
13306
133072008-01-02  David Lutterkort  <dlutter@redhat.com>
13308
13309	Fix syntax error; we want to test that missing defaults are noticed
13310
13311	Add filemappings to the language
13312	The map construct specifies a grammar and a list of glob patterns that this
13313	grammar should be applied to.
13314
13315	Print the filename in errors about tokens (abbrevs)
13316
13317	Add name to grammars
13318
13319	Add -v switch for printing errors
13320
13321	Two more test grammars
13322
13323	Execute actions (not writing to tree yet)
13324	Actions are executed at the right points during the parse, and a stack of
13325	paths is maintained. References to values work with the exception of
13326	references to rules.
13327
133282007-12-21  David Lutterkort  <dlutter@redhat.com>
13329
13330	Check grammar acceptance/rejection
13331
13332	More precise syntax for where actions attach in a rule
13333	Previously, it was not clear how far into a rule the current path would be
13334	modified during parsing. This syntax defines some clear rules for that:
13335	  - if the rule applies to a parenthesized group (@n), the
13336	    path is in effect until the end of the group
13337	  - if the rule applies to a field (@$n), the new path is used during
13338	    parsing of that field
13339	  - the assignment part of the action is done after the field/group
13340	    has been parsed
13341
13342	Snapshot before changing the syntax of rule actions
13343
133442007-12-20  David Lutterkort  <dlutter@redhat.com>
13345
13346	Remove unused keyword and token 'default'
13347
13348	Fix field number computation
13349
13350	Two more rejection tests
13351
13352	Add a simple test for rejecting bad grammars
13353
13354	Don't try to dump a NULL grammar
13355
13356	Introduce SUBMATCH_P macro; cleanup unnecessary switch statements.
13357
13358	Statically number all matches in a rule. Check for illegal field refs.
13359
13360	Collect unprocessed tokens in the parser state.
13361
13362	Print quantifier after rule reference
13363
13364	Remove unneeded debug print
13365
13366	Produce tokens during parsing.
13367	Also, nicer printing of the tokens read.
13368
133692007-12-20  David Lutterkort  <dlutter@redhat.com>
13370
13371	Stricter checking for ambiguous rules
13372	Check that all items in alternatives have non-overlapping first sets. Two
13373	sets are overlapping if they both contain an entry pointing to the same
13374	struct literal or if the contain entries where the literals have the same
13375	patterns (as strings)
13376
13377	This still misses the case where literals have equivalent regular
13378	expresions (e.g. /[ab]/ in one and /[ba]/ in the other) but that seems very
13379	hard to determine.
13380
133812007-12-20  David Lutterkort  <dlutter@redhat.com>
13382
13383	Print first/follow sets prettier, print control characters escaped with ~
13384	Literals from first/follow sets are now reduced back to the abbrev they
13385	belong to if that exists.
13386
13387	Add options to control grammar printing
13388
13389	Set match->owner for _all_ matches
13390
13391	Two more sample/test grammars
13392
13393	First step towards a specification for config files
13394	Definition of a simple language for describing the syntax of config files
13395	and how they are to be mapped to a tree. Lexer/parser for the language and
13396	data structures to hold the specification. Parses files defined by the
13397	grammar - processing of the parse is missing though.
13398
133992007-12-14  David Lutterkort  <dlutter@redhat.com>
13400
13401	Factor aug_make_file into internal.c
13402
134032007-12-01  David Lutterkort  <dlutter@redhat.com>
13404
13405	Be more verbose about which tests were run
13406
13407	Do not include unused util.h
13408
13409	Mention language bindings
13410
13411	Added tag release-0.0.1 for changeset 69688020bb1b
13412
13413	Some news
13414
13415	Disribute tests and doc/examples.txt
13416
13417	Some pseudo-code examples
13418
13419	Explain yourself
13420
134212007-11-30  David Lutterkort  <dlutter@redhat.com>
13422
13423	Add a test that shows how to change the initdefault
13424
13425	Add help texts and a help command
13426
13427	Add aug_match as a simple query facility
13428
13429	Handle /etc/inittab
13430
13431	Make the ROOT_DIR a constant instead of hardcoding it everywhere
13432
13433	Test deleting everything from /etc/hosts
13434
13435	Describe what a test description looks like
13436
13437	Add a provider for /etc/hosts and reorganize how providers are loaded/saved a little
13438
13439	aug_rec_save: Check input parameters
13440
134412007-11-30  David Lutterkort  <dlutter@redhat.com>
13442
13443	Major overhaul of record parsing
13444	Use PCRE to split records with regexps, and abstract a major chunk of
13445	functionality out so it is independent of parsing pam config files
13446
13447	Translate changes in the tree into changes in files (change/insert/delete
13448	of nodes are translated into changing fields and insert/delete of fields
13449	and records/lines)
13450
134512007-11-30  David Lutterkort  <dlutter@redhat.com>
13452
13453	Root filesys that tests pass against
13454
13455	Basic tests for record parsing
13456
134572007-11-26  David Lutterkort  <dlutter@redhat.com>
13458
13459	Trim trailing slashes from paths
13460
13461	Keep /system and /system/config around at all times
13462
13463	Access aug_insert from the command line; do better error checking for aug_insert
13464
13465	Autotools support for building
13466
134672007-11-26  David Lutterkort  <dlutter@redhat.com>
13468
13469	Very simplistic key store with a public API in augeas.h
13470	The implementation is braindead and slow, but good enough to experiment
13471	with the actual difficulty for augeas: parsing and editing different config
13472	files
13473
13474	augtool gives a basic mean to inspect the keystore from the command line
13475
134762007-11-26  David Lutterkort  <dlutter@redhat.com>
13477
13478	Ignore some files
13479