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