diff options
Diffstat (limited to 'NEWS')
| -rw-r--r-- | NEWS | 2039 |
1 files changed, 2039 insertions, 0 deletions
@@ -0,0 +1,2039 @@ +GNU findutils NEWS - User visible changes. -*- outline -*- (allout) + +* Major changes in release 4.6.0, 2015-12-28 + +** Stable Release + +This is the first stable release since findutils-4.4.2. The entries +below in this file detail the changes that have occurred since release +4.3.13 (which is the common ancestor of this release and +findutils-4.4.0). This release includes all the bug fixes +incorporated into the 4.4.x release series, since those bug fixes were +also applied to the 4.5.x release series. + +** Summary of Changes + +The most significant changes since the 4.4.2 release are: + +1. Some backward-incompatible changes have been made to find: + - egrep regular expressions now work like GNU grep -E + - Minor changes to the way nanoseconds fields are printed + - find -perm +mode is now fully POSIX compliant (if you want the old + behaviour use -perm /mode). + - find -perm +numeric_mode is not supported any more. This syntax is + unspecified by POSIX. The prior functionality continues to be + available with -perm /numeric_mode. For more details see Savannah + bug #38474. + +2. Some backward-incompatible changes have been made to xargs: + - if the child exits with status 126 or 127, xargs exits with status + 123. + +3. There are also a large number of bugfixes, performance enhancements + and documentation improvements, as detailed below. + +4. The "oldfind" binary is no longer installed. + +** Translations + +Updated the Danish translation. + +* Major changes in release 4.5.19, 2015-12-28 + +** Bug Fixes: + +Applied patch #8688: Spelling fixes. + +* Major changes in release 4.5.18, 2015-12-27 + +** Changes to find + +Only the ftsfind binary will be installed, as "find". Installing +oldfind, under any name, is no longer supported. The configure option +--with-fts is still allowed, but trying to use it to enable the +installation of oldfind (for example by using --with-fts=no) results +in configure stopping with an error message. + +** Translations + +Updated the Slovenian translation. + +* Major changes in release 4.5.17, 2015-12-24 + +** Future Changes to Release Signing Keys + +Future findutils releases will be signed with a new GPG key, though +this release will be signed with the existing key. Here are the old +and new key fingerprints: + +pub 1024R/64A95EE5 1996-04-04 + Key fingerprint = 0C 1C D7 CA 66 33 D2 E9 14 E0 5F 16 D5 24 60 E9 +uid James Youngman <jay@gnu.org> +uid James Youngman <JYoungman@vggas.com> + +pub 4096R/C5DDACB9 2015-12-24 + Key fingerprint = 0CF4 E8D8 7159 3224 8428 32B8 88DD 9E08 C5DD ACB9 +uid James Youngman <james@youngman.org> +uid James Youngman <jay@gnu.org> +sub 4096R/771CE15D 2015-12-24 + +** Functional changes to find +When the POSIXLY_CORRECT environment variable is set, a warning is no +longer issued when '/' is found in the argument to -name. Use of +POSIXLY_CORRECT also turns off warnings about use of the deprecated +option -d and the use of global options in surprising positions. + +** Documentation Changes +The EXPRESSION section of the find manpage is now organised somewhat +more clearly. The -regextype option is now correctly documented as +being positional. + +** Bug Fixes: +When the -a option of xargs is used, xargs no longer leaks a file +descriptor (fixing a bug reported by Kyle Sallee). + +** Translations + +Updated the Brazilian Portuguese and Serbian translations. + +* Major changes in release 4.5.16, 2015-12-23 + +** Functional Changes to find +Using -regextype egrep now has the same effect as -regextype +posix-egrep. This is the result of a change to gnulib to bring it +into line with GNU grep (see +http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20974#22). + +** Translations +Updated translations: Estonian, Swedish, Polish, Vietnamese, Ukranian, +Norwegian Bokmaal, Czech, Russian, French, Hungarian. + +** Bug Fixes: +#46715: testsuite error with perl 5.22, gnulib outdated + +#40146: gnulib revision doesn't support musl libc + +* Major changes in release 4.5.15, 2015-12-18 + +** Bug Fixes +#45780: inode column is badly aligned when running 'find <dir> -ls' + +#45585: unclear description of -newerXY in manual page. + +#45505: give a more explicit error message when the argument to -regex + is not a valid regular expression. + +#45090: oldfind incorrectly omits test/..test (or any file whose name + begins with ..). + +#45065: find incorrectly prints a leading zero on the fractional part + of ctime timestamps + +#45064: Use of [[ ... ]] in /bin/sh script is incorrect + +#45062: Enabling CACHE_IDS causes segfaults (this bug affects many + historic releases, probably since release 3.0 in 1991). You + would not have been affected by this problem unless you used + the option --enable-id-cache when invoking confgure. + +#42903: checklists.py now supports Python 3. + +#40805: The locatedb manual page uses now troff symbols where + appropriate. + +** Translations + +Updated the German translation. + +* Major changes in release 4.5.14, 2014-07-19 + +** Bug Fixes + +#42793: "Failed to write output" with -ls (this bug affected only + release 4.5.13). + +* Major changes in release 4.5.13, 2014-07-16 + +** Documentation Changes + +Some minor documentation improvements are listed in "Bug Fixes" below. + +** Bug Fixes + +#40339: Fix leaked directory handle when listing mounted file + systems. + +#40094: The xargs --help output has a small number of cosmetic + improvements. + +#39197: Small fix to find's manual page to remove an unwanted + backslash, which made the troff incompatible with Eric + Raymond's doclifter software. + +#39162: -printf reads beyond arguments terminated by \ + +#35753: Check the success/failure of material I/O operations where + these are important to the use of the output (i.e. check the + output for "find -ok" but not debugging output). + +#31005: The find manual page and Texinfo manual now more clearly state + that -exec ... + always returns true. + + +** Translations + +Updated translations: Estonian, Polish, Ukranian. + + +* Major changes in release 4.5.12, 2013-09-22 + +** Functional Changes to find + +The GNU extension "find ... -perm /MODE" is no longer disabled when +the POSIXLY_CORRECT environment variable is set. + +The obsolete GNU extension "find ... -perm +MODE", which was withdrawn +in release 4.2.21 in 2005 due to compatibility problems, has been +completely removed. Use "find ... -perm /MODE" instead. + +** Documentation Changes + +If you use -type or -xtype with a type letter corresponding to a file +type which is not supported by the system on which find was compiled, +find will now give a clearer error message (though the functionality +is unchanged). Type letters are affected are D, l and p (for Solaris +Doors, symbolic links and named pipes respectively). + +The output of xargs --help has been slightly changed for greater +clarity. + +The documentation for xargs now warns about parallel processes (xargs +-P) sharing stdout. + +The documentation for find -execdir now describes correctly that the +command will be executed in the same directory as the file we were +considering at the time. The documentation previously (and +incorrectly) stated that the original working directory of find would +be used. + +** Bug Fixes + +Some bugs in 4.5.11 were fixed without adding them to the bug +database, though they are in the ChangeLog: + +*** Use of [[ ... ]] in find/testsuite/sv-bug-32043.sh + +*** Don't delete header files in "lib/" for "make clean". + +*** xargs: wait for process before prompting in interactive mode (-p) + +These following fixed bugs are recorded at +https://savannah.gnu.org/bugs/?group=findutils: + +#40088: potential buffer overflow in -execdir and -okdir + +#39324: exits without error on OOM + +#38583: errno-buffer read failed in xargs_do_exec + +#38474: Unintended (?) behaviour change of -perm +mode predicate + +#36652: Better document that -0/-d turns off the effect of -E. + +#34976: find -execdir leaks file descriptors for the working directory + + +* Major changes in release 4.5.11, 2013-02-02 + +** Documentation Changes + +The Texinfo manual and the find manual pafe now explain why two find +binaries (either 'find' and 'oldfind', or 'find' and 'ftsfind') are +installed. A manual page for either ftsfind or oldfind is also +installed, whichever is appropriate. + +** Bug Fixes + +#34079: Apply gnulib ftw memory fix + +#33384: If rm/chmod etc. are not in /bin or /usr/bin, updatedb fails + +#18227: find -ls does not display device major/minor numbers. + +#29698: Correct and clarify documentation of xargs -d option + +#32887: Present xargs options alphabetically like in GNU cp(1) etc + +#14386: updatedb relies on mktemp, which is not portable. + +#32043: find -name [ doesn't obey posix + +#37926: The -inum predicate previously gave wrong results in oldfind + (ftsfind, the default find binary, was unaffected). + +** Functional Changes to xargs + +If no utility is specified, xargs now calls "echo" (and searches on +$PATH to find it) rather than "/bin/echo". This may give rise to +subtle behaviour differences for some users. To avoid unexpected +surprises, just explicitly specify the utility you would like to run. +For example use "xargs /bin/echo < foo" rather than "xargs < foo". + +A new option is provided, --process-slot-var. If you set this, xargs +will set the indicated environment variable in each child. The values +are re-used, but no executing child process will have the same value +as another executing child process. This wishlist item was Savannah +bug #29512. + +** Functional Changes to find + +For find -printf, the format specifiers %{, %[ and %( are all now +reserved for future use. Previously these would print {, [ and ( +respectively, but in any case those characters can just be printed +literally like this: find -printf "{[(". Code changes intended to +explain that these are reserved went into findutils-4.5.5, but this +code had, before now, had no effect. + +When expanding "-printf '%F'", find reads /etc/mtab. We now take the +last match found in this file, rather than the first, to better deal +with implementations which have duplicate entries (for example +/proc/mounts on systems running the Linux kernel). + +Both oldfind and ftsfind now use less heap memory when processing +directories containing very many files. However, oldfind now uses one +file descriptor per recursive subdirectory level, which will further +limit the depth of directory trees it can search. If you need find to +be able to search deep directory trees, use ftsfind (this is, by +default the binary built and installed as 'find'). + +The behaviour of the "awk", "posix-awk" and "gnu-awk" regular +expression types selected by the -regextype option have slightly +changed, to bring them into line with the behaviour of the GNU C +library. For "awk", character classes (such as [[:digit:]]) are now +supported. For "gnu-awk" and "posix-awk", intervals are supported and +invalid interval specifcations are treated as literals (for example +'a{1' is treated as 'a\{1'). + + +* Major changes in release 4.5.10, 2011-05-11 + +** Documentation Changes + +The manual now includes a small number of references to further +reading on security. + +** Bug Fixes + +#30608: Automagic dependency on selinux. The configure script now +provides a --without-selinux option. + +#29949: find -execdir does not change working directory + +#31359: test-strstr unit test fails on alpha. + +#30777: find -exec echo TURNIP{} \+ is accepted but TURNIP is eaten + +#30180: error message from incorrect -size option is off + +#29828: test suite deadlock on FreeBSD. + +** Translations + +Updated translations: Finnish, Italian, Danish, Slovenian, German, +Estonian, French, Japanese, Danish. + +* Major changes in release 4.5.9, 2010-04-29 + +** Bug Fixes + +#29593: Make import-gnulib.sh work under a POSIX shell. + +#29511: fails to build on kfreebsd-* + +#27563: -L breaks -execdir + +#19593: -execdir .... {} + has suboptimal performance (see below) + +** Translations + +Updated translations: Chinese (simplified). + +** Performance changes + +The find program will once again build argument lists longer than 1 +with "-execdir ...+". The upper limit of 1 argument for execdir was +introduced as a workaround in findutils-4.3.4. The limit is now +removed, but find still does not issue the maximum possible number of +arguments, since an exec will occur each time find encounters a +subdirectory (if at least one argument is pending). + +** Functional enhancements to xargs + +You can now increase the parallelism of xargs in mid-run by sending +it SIGUSR1, and decrease the parallelism with SIGUSR2. + +* Major changes in release 4.5.8, 2010-04-07 + +** Bug Fixes + +#29460: -printf %Y fails in $CWD-dependent way + +#27974: Use gnulib's xreadlinkat support + +#29435: fd_is_cloexec does not work on Fedora buildhosts + +#27221: symlink_loop check broken by FTS_CWDFD + +#27213: avoid failed assertions for non-executable directories. + +** Translations + +Updated Vietnamese, Czech, Dutch, Polish, Russian translations. + +* Major changes in release 4.5.7, 2010-04-03 + +** Performance changes + +If you use the -fstype FOO predicate and specify a filsystem type FOO +which is not known (e.g. present in /etc/mtab) at the time find +starts, that predicate is now equivalent to -false. This substitution +currently occurs at optimisation level 2 and above. + +** Translations + +Copyright headers in the translation files have been updated. Some +additional messages have been marked for translation. However, there +have not been any changes to translation text. The main purpose of +this release is to provide a base for updated translations. + +* Major changes in release 4.5.6b, 2010-03-30 + +This is a replacement release for 4.5.6, which is not available by FTP +since it contains Makefiles which are vulnerable to CVE-2009-4029. + +* Major changes in release 4.5.6, 2010-03-30 + +** Functional Enhancements to find + +patch #4848: Patch - Support for SELinux + +** Bug Fixes + +#29089: SELinux --context and %Z options + +#28872: Mistake in "#safer" example in "Problems with -exec and + filenames" section of the Texinfo manual. + +#28824: Corrected error message for "-ctime x". + Likewise for -gid, -inum, -links, -mmin, -cmin, -amin, + -uid, -used, -atime, -mtime, -ctime. + +#27975: Infinite loop for -exec [..] {} +. + +#27846: Assertion failure in xargs.c on AIX. + +#27375: Open file descriptors leak into child processes. + +#27017: find -D opt / -fstype ext3 -print , -quit coredumps + +#27328: segfault if the initial exec for "find -exec" fails. + +#27017: find -D opt / -fstype ext3 -print , -quit coredumps. + +#26868: compilation error in pred.c on Solaris x86_64 + +#24873: Duplicate fprint option corrupts output + +#23920: warn about un-matchable -path arguments ending in /. + +#19120: Patch to fix single quotes in man page find(1) + +** Documentation Changes + +#26327: xargs man page is vague about the number of times command is executed. + +* Major changes in release 4.5.5, 2009-07-06 + +xargs now handles the case where the system's actual exec limits are +smaller than the value of ARG_MAX at compile time. Very few platforms +normally have this property, but it is possible to configure some Unix +systems this way. + +** Bug Fixes + +#25359: files/testsuite/find.gnu/posix-h.exp tests fail + +#26587: Fix a typo in -execdir documentation (it says -exec by mistake +in the text). + +#26537: find -prune now makes sure it has valid stat() information. + +#22708: Exit status 126 and 127 from the utility invoked from xargs +now makes xargs return 123, meaning that exit status values 126 and +127 now unambigously mean that the utility could not be run or could +not be found, respectively. + +** Documentation Changes + +The -wholename option to find is no longer preferred over -ipath. + + +* Major changes in release 4.5.4, 2009-03-10 + +** Performance changes + +The ftsfind executable (which is built by default as "find") now calls +fts() in such a way that it avoids calling stat() on directory +entries, if it doesn't need the information. This can produce a +significant speedup on filesystems which don't populate the d_type +element of struct dirent, for example reiserfs. Anecdotal evidence +suggests this can speed updatedb up from about 30 minutes to 3-4 +minutes. + +The ftsfind executable also now avoids calling stat() functions to +discover the inode number of a file, if we already read this +information from the directory. This does provide a speed-up, but +only for a restricted set of commands such as "find . -inum 4001". +This fix is listed below as bug #24342. + +** Bug Fixes + +#25764: remove duplicate entry for 'proc' in updatedb's $PRUNEFS. + +#25359: find -H wrongly behaves like -L sometimes; this bug affects +only filesystems which populate d_type and affects -type and -printf +%y. This does not affect the default behaviour of find or find -P. + +#25144: Misleading error message when argument to find -user is an +unknown user or is missing. + +#25154: Allow compilation with C compilers that don't allow +declarations to follow statements. + +#24342: -inum predicate shoud use dirent.d_ino instead of stat.st_ino +(this is a performance bug). + +** Translations + +Updated translations for Bulgarian, German, Irish, Hungarian, +Lithuanian, Dutch, Polish, Slovenian, Swedish, Turkish, Ukranian, +Vietnamese. + +** Documentation Changes + +The file README-CVS has been renamed to README-hacking and improved. + +* Major changes in release 4.5.3, 2008-12-07 + +** Bug Fixes + +#24283: find-4.5.2 -printf %TY causes NULL pointer dereference + +** Performance changes + +Changes to gnulib's fts code should provide performance improvements +in find when processing very large directories (for example +directories containing significantly more than 10000 filenames). +Performance imporvements may only exist for some find command lines +(performance testing was done for the fts implementation itself but +we haven't done the analogous performance tests in find). + +File type information is also passed back from fts to find, saving +calls to the stat system call for find command lines which don't need +the stat information. This provides a performance improvement for +common cases like "find . -type d". + +* Major changes in release 4.5.2, 2008-09-07 + +** Bug Fixes + +#24169: find would segfault if the -newerXY test was not followed by +any argument. + +#23996: integer overflow on some platforms when parsing "-used 3". + +** Documentation Enhancements + +#23070: Corrected manpage description of find -perm /000 (the change +was already made but the manpage indicated the change would happen +"soon"). + +** Translations + +Updated translation: French, Indonesian. +New translation: Czech. + +* Major changes in release 4.5.1, 2008-06-21 + +** Bug Fixes + +#22662: find -printf %AX appends nanoseconds in the right place now. + +#23663: crash in some locales for -printf %AX (this problem seems to +have affected only the CVS code, and not any public releases). + +** Translations + +New translation: Lithuanian. + +Updated translations: Chinese (simplified). + +** Documentation Enhancements + +Added a worked example describing how to find the shallowest instances +of a given directory name (or names) in a directory hierarchy. + +* Major changes in release 4.5.0, 2008-05-21 + +** Functional Enhancements to find + +If the POSIXLY_CORRECT environment variable is set, the system's +definition of "yes" and "no" responses are used to interpret the +response to questions from -ok and -okdir. The default is still to +use information from the findutils message translations. + +** Enhancements + +If xargs find that exec fails because the argument size limit it +calculated is larger than the system's actual maximum, it now adapts +by passing fewer arguments (as opposed to failing). + +** Performance changes + +The default optimisation level for find is now -O2 instead of -O0, +meaning that a number of additional optimisations are performed by +default. Current optimisations at each level are: + +0: Perform -name, -path, -iname, -ipath before other checks. +1: Expressions containing only cost-free tests are evaluated + before expressions which contain more costly tests. +2: Bring forward all tests that need to know the type of a file + but don't need to stat it. +3: All tests are ordered by their estimated cost. + +Cost here is simply an estimate of how time consuming the I/O +operations needed to make a test are. + +** Bug Fixes + + +#22662: nanoseconds wrongly appended after "PM" for find -printf %AX +in locale en_US.UTF-8. + +#15472: Error messages that print ino_t values are no longer truncated +on platforms with 64-bit ino_t. + +On some systems without support for a boolean type (for example some +versions of the AIX C compiler), find's regular expression +implementation fails to support case-insensitive regular expression +matching, causing -iregex to behave like -regex. This is now fixed. + +** Documentation Changes + +#20873: Indicate that * matches / and leading dot in filenames for +"find -path". + +Both the Texinfo manual and the find manual page now include a more +precise description of how your locale configuration affects the +interpretation of regular expressions and how your response to prompts +from the -ok action are interpreted. + +* Major changes in release 4.3.13, 2008-02-14 + +** Bug Fixes + +#22057: Actually rename the old locate database to the new one +atomically, instead of just claiming the rename is atomic in a +comment. + +#22056: -Xtime tests are off by one second (e.g. rm -f x; touch x; +find x -mtime 0 should print x). + +#21960: xargs should collect the exit status of child processes even if +the total count of unreaped children has not yet reached the maximum +allowed. + +** Documentation Fixes + +Documented various useful techniques with invoking "sh -c" from +xargs in the Texinfo documentation. + +** Translations + +Updated the German, Irish, Dutch, Polish and Vietnamese translations. + + +* Major changes in release 4.3.12, 2007-12-19 + +** Bug Fixes + +#15384: Find misbehaves when parent directory is not readable. + +** Documentation Fixes + +More examples in the xargs manual page, including a portable analogue +for BSD's "xargs -o". + +** Translations + +Updated translations: Polish, Dutch, Portuguese, Swedish, Vietnamese. + + +* Major changes in release 4.3.11, 2007-12-02 + +** Functional changes + +When the POSIXLY_CORRECT environment variable is set, "find -perm ++a+w" is rejected as invalid. Some other similar mode strings +starting with '+' which are not valid in POSIX are also rejected. + +The -prune action now always evaluates as true (this is also a +bugfix). + + +** Bug Fixes + +#21568: Switch to checking the gnulib code out with native git, not +CVS. This affects mainly those who check findutils code out of CVS. +This is not the first time this bug has been fixed (the previous fix +used "cvs update -D", which git-cvspserver silently does not +support). + +#21039: Setting the POSIXLY_CORRECT environment variable now turns off +warnings by default, because POSIX requires that only diagnostic +messages (and -ok prompts) are printed on STDERR, and diagnostic +messages must also result in a nonzero exit status. + +#20970: Trailing slash on directory arguments breaks -name. "find +foo/ -name foo" now correctly matches foo and printf foo/. See POSIX +interp http://www.opengroup.org/austin/interps/uploads/40/14959/AI-186.txt + +#20865: Using both -delete and -prune without explicitly using -depth +is now an error. Traditionally, -delete has always turned -depth on +anyway, so this is not a functional change. However, using -depth +(implicitly or explicitly) makes -prune a no-op. This change is +intended to avoid nasty surprises for people who test with +"-print" and then change it to "-delete" when they are happy. + +#20803: POSIX requires that -prune always returns true. Previously it +returned false when -depth was in effect and true otherwise. + +#20802: If -delete fails, find's exit status will now be non-zero. +However, find still skips trying to delete ".". + +** Documentation Fixes +#21635: Some of the documentation files had missing copying +conditions. The missing files now have copying headers, and these +are compatible with each other (GNU FDL 1.2). + +#21634: No copy of FDL 1.2 included with the source code + +#21633: Missing copyright/license header in some documentation. + +#21628: find -perm /000 matches all files rather than none, since +findutils-4.3.3. The Texinfo documentation is now consistent with the +manual page on this point. + +#21270: Formatting fixes to the xargs.1 manual page, including making +options bold instead of italic and making OPTIONS a section header +rather than a subsection. + +* Major changes in release 4.3.10, 2007-11-13 + +** Bug Fixes + +#21568: findutils gnulib code does not match the date in +import-gnulib.config. We now check out the gnulib code via +git-cvs-pserver. + +* Major changes in release 4.3.9, 2007-11-11 + +** Licensing + +Findutils version 4.3.9 is released under version 3 of the GNU General +Public License. + +** Bug Fixes + +#20834: Avoid segmentation violation for -execdir when $PATH is +unset. Assume that the PATH is safe in this situation. + +#20310: configure uses hosts's support status for "sort -z" when +generating the updatedb script for use on the target. This is +inappropriate when cross-compiling, so avoid doing that. + +#20263: Compilation fix for DEC Alpha OSF/1 cc, which forbids the +ordering comparison of function pointers. + +#20139: find -[acm]time -N (wrongly) includes files from N days ago, +as well as (correctly) from less than N days ago. + +#20273: When xargs is successful without consuming all of stdin (for +example, with the -E option), and stdin is seekable, xargs now +correctly restores the file position, even on platforms where exit() +does not follow the POSIX rules of doing likewise. Likewise for find +(for example, with the -ok action). + +#20547: The version information printed by find, xargs, locate, +updatedb, frcode and code now complies with the GNU Project's coding +standards. + +#20662: Avoid memory leak in find -name and other places affected by +gnulib dirname module. The leak had been present since 4.3.1. + +#20751: Avoid memory corruption in find -ls that has been present +since 4.3.1. + +#20871: Assertion failure introduced in 4.3.3, when oldfind is invoked +in a directory where the parent directory lacks search permission. + +** Enhancements + +#20594: Allow fine-tuning of the default argument size used by xargs +and find at ./configure time. + +#20688: The warning printed by -name or -iname when the pattern to +match contains a slash can now be silenced by -nowarn. This warning +was originally introduced unconditionally in 4.2.21. + +Translation of locate --limit problems is improved. + +POSIX will standardise -path, so the documentation no longer claims +that -wholename is the 'canonical' test, and -ipath no longer +generates a warning. + +** Documentation Fixes + +Point out more explicitly that the subsecond timestamp support +introduced by findutils-4.3.3 introduces a change in the format of +several fields. + +Also explain that when reporting a bug, you should check the most +recent findutils release first. + +Introduced doc/find-maint.texi, a maintenance manual for findutils. + +Added an extra worked example for find (copying a subset of files). + +The locate command's manual page now has a HISTORY section. + +#20951: Very bad/unclear/confusing documentation of security checks in +find -execdir + +#20865: Better documentation on the fact that -delete implies -depth +and that -delete interacts badly with -prune. + +#20552: Fixed typos, formatting and section ordering issues in the +find manual page. + +#20529: removed spurious 'o' in description of "xargs -a" in +doc/find.texi. + +#20232: The --max-database-age option of locate was added in release +4.3.3, but this file (NEWS) did not previously mention this fact. + +** Translations + +Updated Dutch translation. + + +* Major changes in release 4.3.8, 2007-06-12 + +** Bug Fixes + +#20157: Avoid segfault in locate when run as root. This is caused by +a buffer overrun, but at this time no exploit mechanism is known. + +* Major changes in release 4.3.7, 2007-06-09 + +** Functional changes + +Locate can now read old-format locate databases generated on machines +with a different byte order. It does this by guessing the byte order, +so the result is not completely reliable. If you need to share +databases between machines of different architectures, you should use +the LOCATE02 format (which has other advantages, as explained in the +documentation). + +** Security Fixes + +#20014: Findutils-4.3.7 includes a patch for a potential security +problem in locate. When locate read an old-format database, it read +file names into a fixed-length buffer allocated on the heap without +checking for overflow. Although overflowing a heap buffer is often +somewhat safer than overflowing a buffer on the stack, this bug still +has potential security implications. + +This bug also affected the following previous findutils releases: + + - All releases prior to 4.2.31 + - Findutils 4.3.0 to 4.3.6. + +This bug has been assigned CVE number CVE-2007-2452. + +** Bug Fixes + +#20128: Fix compilation error of find/tree.c on AIX with GCC. + +#20005: Tests -mtime -n and -mtime +n incorrectly treated like -mtime n. + +#19983: include_next causes compilation failure in findutils 4.3.6 on +non-GCC compilers + +#19981: Don't call setgroups if the function isn't available. This +fixes Savannah bug# 19981. + +#19980: Don't use the functions putw() or getw() since these are not +in current POSIX. Use the gnulib version of wcwidth() where the +system does not provide it. + +#19979: Compilation errors on BeOS + +#19970: Cannot cast from pointer to bool using gnulib's <stdbool.h> + +#19967: Use of __attribute((__noreturn__)) makes compilation fail with +some non-GCC compilers + +#19966: find should link against -lm for modf() and fabs() + +#19965: Compilation failure on OSF/1 4.0; non-declaration of uintmax_t + +#19948: Assertion failure O_NOFOLLOW != 0 on IRIX 6.5 + +#19871: Typos in find.1 + +#19596: Fixed this bug again, this time in the Texinfo manual (the +discussion should compare %b with %s/512, not %s/1024). + +#19416: _FORTIFY_SOURCE warn_unused_result warnings + +* Major changes in release 4.3.6, 2007-05-21 + +** Bug Fixes + +#19948: Fixed an assertion failure on IRIX 6.5 (O_NOFOLLOW is defined +to 0 there). + +#19923: Fixed an array overrun in groups[] array of 'locate' when run by +or as root. This bug appears not to be exploitable. If locate is not +installed setuid, the bug is not exploitable. For setuid +installations, it is concievable that there could be an information +leak if the user uses the -d option or the -e option, though the +maintainer has been unable to provoke this on an x86 system. + +#19871: Spurious .R directives in manpage produced error messages from +GNU troff. This is now fixed (they are corrected to .B). + +#19416: The result of I/O operations in print-related actions is now +checked, and failures are reported. Any failure will cause find's +exit status to be nonzero. The predicate itself will continue to +return true. + +** Compilation Fixes + +A variety of changes were made to allow compilation to succeed on +non-GNU systems. + +#19983: Now compiles on DEC C V5.9-005 on Digital UNIX V4.0 (or at +least, should). + +#19970: Compile correctly on C89 systems where the "_Bool" type is not +provided, taking into account the limitations of the gnulib +replacement for stdbool.h. + +#19967: Build successfully with C compilers that don't support the GCC + construct __attribute__((__noreturn__)). + +#19966: Findutils should now build on systems which have the modf() +and fabs() functions in the maths library, -lm. This includes some +versions of HP-UX and Solaris. + +#19965: Fixed a compilation failure on OSF/1 4.0 (no definition of the +type uintmax_t). + + +* Major changes in release 4.3.5, 2007-05-05 + +** Functional changes + +Updatedb can now support he generation of file name databases which +are compatible with slocate. For some time, GNU locate has been able +to read these. + +The /proc filesystem is excluded from the locate database (by +default; change PRUNEPATHS to modify this behaviour). + +** Bug Fixes + +#19806: The -samefile predicate might get fooled by inode reuse. We +now hold open a file descriptor on the reference file to prevent this. + +#19768: Better detection of corrupted old-style locate databases +(e.g. if the database is too short to include a complete bigram +table). + +#19766: The frcode and code programs now detect write errors more +reliably. + +#19371: Fix compilation failure on systems which #define open to +open64 (and similarly with the close system call). This fixes +Savannah bug #19371, affecting AIX 5.3. + +#19658: When cross-compiling, "make clean" no longer deletes the +generated file doc/regexprops.texi, because there is no way to +regenerate it. + +#19391: When xargs knows that the system's actual exec limit is larger +than the compiled-in ARG_MAX, use the system's limit without +generating an assertion failure. + +#18203: A duplicate report of bug #17478. + +#17478: Error messages from find can garble the console. + +#16378: Assertion failure if stat() returns 00000 as the mode +of a file. This apparently can happen occasionally with broken NFS +servers. + +#11668: FreeBSD extensions for time specification are now +implemented. In fact, these were included in findutils-4.3.3. The +change was listed as a functional change (whcih it is) and this bug +report was not mentioned. + +** Documentation Fixes + +The locatedb.5 manpage now documents the (default) LOCATE02 format +more clearly, and also documents the slocate database format. + +The maximum and default values applying to the -s option of xargs are +now documented more clearly in the manual page. + +* Major changes in release 4.3.4, 2007-04-21 + +** Bug Fixes + +#19634: Test suite now passes (again) if "." is on your $PATH. + +#19619: Findutils builds once again on Cygwin. + +#19617: Nonexistent start points are (once again) diagnosed in +ftsfind. This bug affected only findutils-4.3.3. + +#19616: Fix leaf optimisation and loop detection (which were +unreliable in findutils 4.3.3). This bug affected only +findutils-4.3.3. + +#19615: find --version no longer claims to be using FTS_CWDFD when it +isn't. This bug affected only findutils-4.3.3. + +#19613: "find -L . -type f" no longer causes an assertion failure when +it encounters a symbolic link loop. This bug affected only +findutils-4.3.3. + +#19605: Issue an error message (and later return nonzero exit status) + if a symbolic link loop was encountered during directory traversal. + +#19484: bigram.c and code.c fail if the first pathname recorded begins +with a space + +#19483: Inconsistent option highlighting in updatedb manpage + +#18414: Tests for "find -readable" are skipped for the superuser, as + on some systems (e.g. Cygwin with an Administrative user) users can + read mode-000 files. + +** Translations + +Findutils 4.3.4 includes a translation for the Ukrainian language. + + +* Major changes in release 4.3.3, 2007-04-15 + +Fiundutils-4.3.3 was released on 2007-04-15. + +** Bug Fixes + +#19596: Correct the comparison in the find manpage between %b and %s +(the divisor is 512 not 1024). + +#18714: In the POSIX locale, vertical tabs and form feeds are not +field separators. + +#18713: Quoted but empty arguments which occur last on an xargs input +line are no longer ignored, but instead produce an empty argument. + +#18554: Documented the construct -exec sh -c 'foo "$@" bar' {} + + +#18466: we now avoid this bug by limiting "-execdir ...+" +to just one argument for the time being. There is a performance +penalty for doing this. We hope to make a better fix in a later +release. + +#18384: excess bracket in xargs --help + +#18320: Zero bytes in input should give warning + +#17437: Corrected the handling of X in symbolic permissions (such +as-u+w,a+X). This change actually occurred in findutils-4.3.2, but +the NEWS file for that release didn't mention it. + +#17396: find -mtime -atime -ctime does not support fractional part +(see "Functional changes" below) + +#14748: find -perm /zzz gives wrong result when zzz evaluates to an + all-zero mask + +#14535: correctly support case-folding in locate (that is, "locate +-i") for multibyte character environments such as UTF-8. Previously, +if your search string contained a character which was outside the +single-byte-encoding range for UTF-8 for example, then the +case-folding behaviour failed to work and only exact matches would be +returned. + + + +** Functional changes + +The -printf action (and similar related actions) now support %S, +which is a measurement of the sparseness of a file. + +The test "-perm /000" now matches all files instead of no files. For +over a year find has been issuing warning messages indicating that +this change will happen. We now issue a warning indicating that the +change has already happened (in 4.3.x only, there is no plan to make +this change in the 4.2.x series). + +The tests -newer, -anewer, -cnewer, -mtime, -atime, -ctime, -amin, +-cmin, -mmin and -used now support sub-second timestamps, including +the ability to specify times with non-integer arguments. + +The -printf format specifiers also support sub-second timestamps: + atime ctime mtime + %a %c %t + %AS %CS %TS + %AT %CT %TT + %A+ %C+ %T+ + %AX %CX %TX + + +The new test -newerXY supports comparison between status times for +files. One of the status times for a file being considered (denoted +X) is checked against a reference time (denoted Y) for the file whose +name id the argument. X and Y can be: + + a Access time + B Birth time (st_birthtime, currently unsupported) + c Change time + m Modification time + t Valid only for the reference time; instead of comparison + against a file status time, the argument is a time string. + Not yet supported. + +For example, -newermm is equivalent to -newer, and -neweram is true if +the file being considered was accessed more recently than the +reference file was modified. The -newerXY test supports subsecond +timestamps where these are available. The X=B variant is not yet +implemented. + +If you configure the source code and then run the tests with "make +check", the test suite fails rather than defaulting to testing the +system binaries. + +A new option, --max-database-age, has been added to locate. + + +* Major changes in release 4.3.2, 2006-11-25 + +** Bug Fixes + +#18222: find -printf '%H %P' once again prints the right result if +more than one start point was given on the command line. + +#17782: find -execdir now correctly puts the prefix "./" before the +expansion of "{}" rather than at the start of the argument it appears +in. Please note that if you use the -exec or -execdir actions with a +shell, then you may be vulnerable to shell code injection attacks, so +don't do that. It's not a security defect in find - you should not be +passing untrusted data (such as file names chosen by other people) to +the shell. + +#17490: find -regex generated a segfault in findutils-4.3.1, but this + is fixed in findutils-4.3.2. + +#17477: find -printf '%' (that is, where the format has a trailing %) +now generates an error message. + +#17372: The fts-based find executable (the default configuration uses +fts) is now much faster when -maxdepth is used on filesystems with +high fanouts. + +#15531: The -prune action now behaves correctly when applied to a file. + +** Functional changes + +The slocate database format is now supported. Preliminary changes +intended to eventually allow setuid operation of locate have also been +made. For the moment, please don't install GNU locate as a +set-user-ID program (except for testing purposes; if you do so, please +make sure that untrusted users cannot execute the set-user-ID locate +program). + +Use of an slocate database which was built with a nonzero security +mode (at the moment, GNU updatedb will not do this) forces locate's +"-e" option to be turned on, which has an effect on the "-S" option +which is probably surprising for most users. + + +** Documentation Fixes + +The global effect of options (other than -daystart and -follow) is now +explained more clearly in the manual page. Savannah bug #15360. + + +* Major changes in release 4.3.1, 2006-08-06 + +** Bug Fixes + +Find now follows POSIX rules for determining where directories end and +expressions start. This means that "find \(1 \!2 \, \)" now searches +in the four named directories, rather than trying to parse an +expression. (Savannah bug #15235). + +You now get a more helpful error message when you use command lines +which have missing expressions, such as + find . ( ) + find . ! + find . -a + find . \( -not \) + find . \( -true -a + +Savannah bug #15800: If find finds more subdirectories within a parent +directory than it previously expected to based on the link count of +the parent, the resulting error message now gives the correct +directory name (previously an error message was issued but it +specified the wrong directory). + +Savannah bug #16738: "find .... -exec ... {} +" now works if you have +a large environment and many files must be passed to the -exec +action. The same problem affected the -execdir action, though since +the number of files in a given directory will normally be smaller, the +problem was worse for -exec. + +Savannah bug #16579: Updatedb now works if it is running as a user +whose login shell is not actually a shell. + +There have also been a number of documentation improvements (includng +Savannah bug #16269). + +** Functional changes + +For find, debug output can now be enabled at runtime with the -D +option. This causes the printing of various sorts of information +about find's internal state and progress. + +The find option -nowarn cannot itself produce a warning (this used to +happen with commands like "find . -name quux -nowarn -print"). + +** Performance Enhancements + +Find now has a rudimentary cost-based optimiser. It has an idea of +the basic cost of each test (i.e. that -name is very cheap while -size +is more expensive). It re-orders tests bearing in mind the cost of +each test and its likely success. Predicates with side effects (for +example -delete or -exec) are not reordered. The optimiser is not +yet enabled by default, but the new option -O controls the query +optimisation level. To see this in action, try + find -D opt -O3 . -type f -o -type c -o -size 555 -name Z +and compare the optimised query with: + find -D opt -O3 . -size 555 -o -type c -o -type f -name Z +and + find -D opt . -size 555 -o -type c -o -type f -name Z + +Over time, as optimisations are proven to be robust and correct, they +will be moved to lower optimisation levels. Some optimisations have +always been performed by find (for example -name is always done early +if possible). + +** Translations + +Findutils 4.3.1 includes updated translations for the following +languages: + Vietnamese, Belarusian, Catalan, Danish, German, Greek, Esperanto, + Spanish, Estonian, Finnish, French, Irish, Galician, Croatian, Hungarian, + Indonesian, Italian, Japanese, Korean, Luganda, Malay, Dutch, Polish, + Portuguese, Brazilian Portuguese, Romanian, Russian, Kinyarwanda, + Slovak, Slovenian, Serbian, Swedish, Turkish, Chinese (simplified), + Chinese (traditional), Bulgarian + +* Major changes in release 4.3.0, 2005-12-12 + +The 4.3.x release series are currently 'development' releases. Please +test it, but think carefully before installing it in a production +system. New features in findutils-4.3.x are under development; they +may change or go away. + +All changes up to and including findutils-4.2.27 are included in this +release. In addition the following changes are new in this release: + +** Functional Changes + +By default, find now uses the fts() function to search the file +system. The use of fts greatly increases find's ability to search +extremely deep directory hierarchites. + +You can tell that the version of find you are using uses FTS, because +the output of "find --version" will include the word "FTS". + +Currently two binaries for 'find' are built. The configure option +--without-fts can be used to select whether 'find' uses fts: + + With fts Without fts +default configuration find oldfind +configure --with-fts find oldfind +configure --without-fts ftsfind find + +New tests, -readable, -writable, -executable. These check that a file +can be read, written or executed respectively. + +* Major changes in release 4.2.27, 2005-12-06 + +** Warnings of Future Changes + +The test -perm /000 currently matches no files, but for greater +consistency with -perm -000, this will be changed to match all files; +this change will probably be made in early 2006. Meanwhile, a warning +message is given if you do this. + +** Bug Fixes + +If xargs is invoked with many short arguments on PPC systems running +the Linux kernel, we no longer get an "argument list too long" error +from the operating system. + +Fixed a bug in the test suite which caused it to spuriously fail on +systems where ARG_MAX is different to the value used by the Linux +kernel on 32-bit x86-architecture systems. + +On systems running the Linux kernel, "find -printf %F" no longer +produces the wrong answer for files on filesystems that have been +remounted elsewhere using "mount --bind". (Savannah bug #14921). + +** Documentation Changes + +Following some extensive and detailed review comments from Aaron +Hawley, the material in the manual pages and the Texinfo manual are +now synchronised. + +The %M format specifier of "find -printf" is now documented, although +it has existed since release 4.2.5. + +The 'find' manual page now correctly documents the fact that -regex +defaults to using Emacs-style regular expressions (though this can be +changed). + +* Major changes in release 4.2.26, 2005-11-19 + +** Public Service Announcements + +I'd like to point out a second time that the interpretation of '-perm ++mode' has changed to be more POSIX-compliant. If you want the old +behaviour of the GNU extension you should use '-perm /mode'. See the +NEWS entry for findutils version 4.2.21 for details. + +** Functional Changes + +The xargs command now supports a new option (--delimiter) which allows +input items to be separated by characters other than null and +whitespace. This resolves Savannah support request sr #102914. + +Sometimes find needs to read the /etc/mtab file (or perform the +equivalent operation on systems not using /etc/mtab). If this +information is needed but not available, find now exits with an error +message non-zero status. If the information is not needed, find will +not spuriously fail. + +A new xargs option --delimiter allows the input delimiter to be +changed (previously \0 was the only choice unless you use the -L +option, which changes other semantics too). + +** Bug Fixes + +If the environment size is too large to allow xargs to operate +normally, 'xargs --help' still works (now). + +If the input to xargs is a large number of very short options (for +example, one character each), earlier versions of xargs would fail +with 'Argument list too long'. However, since this is precisely the +problem that xargs was invented to solve, this is a bug. Hence on +those systems we now correctly use a shorter command line. This +problem particularly affected 64-bit Linux systems because of the +larger size of pointers, although 32-bit Linux systems were also +affected (albeit for longer command lines). In theory the same +problem could affect 'find -exec {} +', but that's much less likely +(even so, the bug is fixed there too). + +Bugfix for an unusual failure mode (Savannah bug #14842) where an +attempt to allocate more space for directory contents succeeds but is +incorrectly diagnosed as a failure. The likelihood of you +experiencing this depends on your architecture, operating system and +resource limits. This failure has been observed in a directory +containing 35396 entries. + +** Documentation Changes + +The EXAMPLES section of the find manual page now correctly describes +the symbolic and octal modes for the -perm test. + +The documentation and "--help" usage information for the -L, -l, -I +and -i options have been clarified (but the behaviour has not changed). + +The documentation now explains more clearly what happens when you use +"-L -type l". + +* Major changes in release 4.2.25, 2005-09-03 + +** Bug Fixes + +find -perm /440 (which should succeed if a file is readable by its +owner or group) now works. Previously there was a bug which caused +this to be treated as "find -perm 440". + +Some files in the xargs test suite have been renamed to avoid problems +on operating systems whoch cannot distinguish filenames on the basis +of upper/lower case distinctions. + +The software now builds on Cygwin, including the generated file +regexprops.texi. + +Findutils should now build once again on systems supporting AFS, but +this support has not recently been fully tested. Findutils should +also (once again) build on Cygwin. + +** Other Changes + +The test suite for find is now much more extensive. + +* Major changes in release 4.2.24, 2005-07-29 + +** Documentation Changes + +The manual now includes a "Worked Examples" section which talks about +the various ways in which findutils can be used to perform common +tasks, and why some of these alternatives are better than others. + +The -I option of xargs (which is required by the POSIX standard) is +now documented. + +We now document the fact that find ensures that commands run by -ok +and -okdir don't steal find's input. Find does this by redirecting +the command's standard input from stdin. + +Many documentation readability enhancements and proofreading fixes +were contributed by Aaron Hawley. + +** Functional Changes + +*** Functional changes in locate + +The "--regex" option of locate now assumes the regular expression to +be in the same syntax as is used in GNU Emacs, though this can be +changed with the new option --regextype. This is a change from the +existing behaviour (which was to use POSIX Basic Regular Expressions). +Since this feature is releatively new anyway, I though it was more +useful to have compatibility between regular expression handling in +find and locate than to maintain the short-lived previous behaviour of +locate. + +The locate program now also supports a "--regextype" long option which +controls which regular expression syntax is understood by locate. +This is a long option and has no single-letter 'short option' +equivalent. + +*** Functional changes in find + +The regular expression syntax understood by "find" can be changed with +the -regextype option; this option is positional, meaning that you can +have several tests, each using a distinct syntax (this is not +recommended practice however). + +The default regular expression syntax is substantially the same as +that recognised by GNU Emacs, except for the fact that "." will match +a newline. + +The leaf optimisation can be disabled with the configure option +"--disable-leaf-optimisation", which is equivalent to specifying +"-noleaf" on all find command lines. This is useful for systems +having filesystems which do not provide traditional Unix behaviour for +the link count on directories (for example Cygwin and the Solaris 9 +HSFS implementation). + +** Bug Fixes + +*** Bug Fixes for find + +The -iregex test now works once again on systems that lack +re_search() (that is, systems on which findutils needs to use the +gnulib version of this function). + +find -regex now once again uses GNU Emacs-compatible regular +expressions. + +If invoked with stderr closed, the -fprint and -fprintf actions now no +longer cause error messages to be sent into the output file. + +If the link count of a directory is less that two, the leaf +optimisation is now disabled for that directory. This should allow +searching of non-Unix filesystems to be more reliable on systems that +don't take the trouble to make their filesystems look like traditional +Unix filesystems. Some filesystems don't even take the trouble to +have a link count of less than two and for these, -noleaf is still +required unless --disable-leaf-optimisation was used at configure time. + +The "%Y" directive for the -printf action now no longer changes find's +idea of the mode of the file, so this means among other things that +"-printf %Y %y" now works properly. This is Savannah bug #13973. + +* Major changes in release 4.2.23, 2005-06-19 + +** Documentation Changes + +The -L and -I options of xargs are currently incompatible (but should +not be). + +Improved the documentation for -execdir and -okdir. + +** Functional Changes to updatedb + +File names ending in "/" which are specified as an argument to +--prunepaths (or in $PRUNEPATHS) don't work, so we now issue an error +message if the user tries to do that. The obvious exception of course +is "/" which does work and is not rejected. + + +* Major changes in release 4.2.22, 2005-06-12 + +** Security Fixes + +If a directory entry searched with "find -L" is a symbolic link to +".", we no longer loop indefinitely. This problem affected find +versions 4.2.19, 4.2.20 and 4.2.21. This problem allows users to make +"find" loop indefinitely. This is in effect a denial of service and +could be used to prevent updates to the locate database or to defeat +file security checks based on find. However, it should be noted that +you should not use "find -L" in security-sensitive scenarios. + +** Other Bug Fixes + +None in this release. + +** Functional Changes to locate + +A locate database can now be supplied on stdin, using '-' as a element +of the database-path. If more than one database-path element is '-', +later instances are ignored. + +A new option to locate, '--all' ('-A') causes matches to be limited to +entries which match all given patterns, not entries which match +one or more patterns. + +** Documentation Changes + +Some typos in the manual pages have been fixed. Various parts of the +manual now point out that it is good practice to quote the argument of +"-name". The manpage now has a "NON-BUGS" section which explains some +symptoms that look like bugs but aren't. The explanations of the "%k" +and "%b" directives to "find -printf" have been imrpoved. + + +* Major changes in release 4.2.21, 2005-06-07 +** Functional Changes to find + +The GNU extension "find ... -perm +MODE" has been withdrawn because it +is incompatible with POSIX in obscure cases like "find ... -perm ++r". +Use the new syntax "find ... -perm /MODE" instead. Old usages will +still continue to work, so long as they don't conflict with POSIX. + +If the output is going to a terminal, the -print, -fprint, -printf and +-fprintf actions now quote "unusual" characters to prevent unwanted +effects on the terminal. See "Unusual Characters in File Names" for +further details. There is no change to the behaviour when the output +is not going to a terminal. The locate program does the same thing, +unless the -0 option is in effect (in which case the filenames are +printed as-is). + +** Functional Changes to locate + +The locate command will now read each locate database at most once. +This means that if you are using multiple databases and are searching +for more than one name, the results will now be printed in a different +order (and if you specified a small limit with --limit, you may get a +different set of results). + +A new option '--print' for locate causes it to print the matching +results even if the '--count' or '--statistics' option is in effect. + +** Bug Fixes +find /blah/blah/blah -depth -empty now works once again. + +The -regex and -iregex tests of find now correctly accept POSIX Basic +Regular Expressions. (Savannah bug #12999) + +The updatedb program now works on systems where "su" does not support +the "-s" option, for example Solaris. + +* Major changes in release 4.2.20, 2005-03-17 +** Internationalization and Localization +Updated Vietnamese and Dutch translations. + +** Bug Fixes +Minor bugfix affecting only those who compile from the CVS repository, +as opposed to those who compile from the source releases. + +* Major changes in release 4.2.19, 2005-03-07 +** Bug Fixes + +find should now no longer hang on systems which lack the O_NOFOLLOW +flag to open(2) and which are clients of an unresponsive NFS server +(Savannah bug #12044). + +We now avoid inappropriately failing for "find -L foo" or "find -H +foo" if foo is a symbolic link (Savannah bug #12181). Previously we +used to fail with the error message "Too many levels of symbolic +links". + +"find . -false -exec foo {} +" no longer runs an extra instance of foo +when find exits (Savannah bug #12230). + +If the chdir() safety check fails but we can no longer get back to +where we started, exit with an explanatory (fatal) error message. +This does not happen on GNU/Linux and FreeBSD because the safety check +is not needed (the security problem the safety check protects against +is prevented in a cleaner way on those systems). + +"make distclean" no longer deletes regex.c (which "make all" needs). + +** Functionality Changes +"find -printf "%h\n" will now print "." for files in the current directory. +Previously it printed nothing (but there was a bug in the %h +implementation anyway). This fixes Savannah bug #12085. + +Should now build (again) on non-C99-compliant systems. + +** Documentation enhancements +Fixed some typos and clarified wording in "Working with automounters". + +** Internationalization and Localization +New Vietnamese message translation. + +* Major changes in release 4.2.18, 2005-02-16 +** Bug Fixes +*** "find -depth" was missing out non-leaf directories when they contain + non-directories. This affected findutils releases 4.2.15, + 4.2.16 and 4.2.17, but the bug is now fixed. +*** Find no longer hangs on systems which are clients of unresponsive + NFS servers. +** Documentation improvements +*** Improvements and corrections to the find.1 manpage, including corrections to the descriptions of -H and -L. + +* Major changes in release 4.2.17, 2005-02-08 +** Bug Fixes +*** bug #11861 undefined symbol "basename" on IRIX 5.3 +*** bug #11865 xargs -i regression (as compared to findutils-4.2.12) +*** bug #11866 Typo in pred_okdir renders it useless (affecting 4.2.16 only) +*** patch #3723 fix recent process_top_path change (for -execdir on /) +*** Fixing bug #11866 and applying patch #3723 made -execdir work much better. +*** find bar/baz/ugh now works again if baz is a symbolic link (broken + in 4.2.15). + +* Major changes in release 4.2.16, 2005-02-05 +** Functionality Changes +*** Updated the message catalogues for the translated messages. +*** The subfs filesystem is now treated the same as the autofs + filesystem is. +*** New translations: Belarusian, Catalan, Greek, Esperanto, + Finnish, Irish, Croatian, Hungarian, Japanese, Luganda, + Malay, Romanian, Slovenian, Serbian, Chinese (simplified). + +** Bug Fixes +*** The -execdir action now works correctly for files named on the + command line. + +* Major changes in release 4.2.15, 2005-01-29 +** Functionality Changes +*** locate now supports matching regular expression (--regex). +*** --enable-d_type-optimization (introduced in findutils 4.2.13) is now turned on by default. + +* Major changes in release 4.2.14, 2005-01-25 +** Functionality Changes +*** New options -L, -P, -H for locate. The work in the same was as the same options for find. +** Bug Fixes +*** Don't include the "findutils/find/testsuite/find.gnu" subdirectory in the + distributed tar file more than once. +*** Should now build on Solaris once again. +*** -xtype and -printf %Y now work correctly for symbolic links once again +** Documentation improvements +*** All options for "locate" are now documented + +* Major changes in release 4.2.13, 2005-01-23 +** Performance Enhancements +*** On Linux and some other systems, a large performance improvement, + because we can eliminate many of the calls to lstat() (in extreme + cases, 99% of them). Limited testing shows a 2x speedup on NFS + filesystems. Other systems which can make use of this enhancement + include Mac OS X and *BSD. + +* Major changes in release 4.2.12, 2005-01-22 +** Functionality Changes +*** find is now POSIX-compliant, as far as I know. +*** -exec ... {} + now works. +*** New actions -execdir and -okdir which are like -exec and -ok but more secure. +*** "locate -w" is now a synonym for "locate --wholepath". +*** An empty path entry in the locate database path (for example "::" in + $LOCATE_PATH or in the argument to "locate -d") is taken to mean + the default database, whose name is hard-coded in locate. +** Bug Fixes +*** If find or xargs cannot write to stdout, for example because + output is redirected to a file and the disk is full, the + relevant program will return a non-zero exit status. + +* Major changes in release 4.2.11, 2004-12-12 +** Bug Fixes +*** Compilation fix for systems without EOVERFLOW. +*** More helpful error message if you make a mistake with (, ), -o or -a. +** Functionality Changes +*** If you have unclosed parentheses on the find command line, + or any of a number of similar problems, find will now produce + a more helpful error message. +*** locate -b is now a synonym for locate --basename +*** locate now supports a --statistics (or -S) option, which prints some + statistics about the locate databases. +*** Implemented the -samefile option. +** Documentation improvements +*** New chapter in the manual, "Security Considerations". +*** Better documentation for -prune (Mainly thanks to Stepan Kasal) +** Bug Fixes +*** locate's options -i and -w now work with the -e option (previously a bug + prevented this). + +* Major changes in release 4.2.10, 2004-12-06 +** Bug Fixes +*** Portability fix for fstype.c: should now compile on UNICOS, and possibly + also produce useful results on BeOS and Dolphin, perhaps other + systems too. + +* Major changes in release 4.2.9, 2004-12-05 +** Functionality Changes +*** xargs no longer treats a line containing only an underscore as a logical end-of-file. To obtain the behaviour that was previously the default, use "-E_". +*** xargs now supports the POSIX options -E, -I and -L. These are synonyms + for the existing options -e, -i and -l, but the latter three are + now deprecated. +** Bug Fixes +*** xargs -n NUM now invokes a command as soon as it has NUM arguments. + Previously, it waited until NUM+1 items had been read, and then + invoked the command with NUM arguments, saving the remaining one + for next time. +*** If "find -L" discovers a symbolic link loop, an error message is issued. +*** If you specify a directory on the find command line, but -prune + is applied to it, find will no longer chdir() into it anyway. +** Documentation improvements +*** The precise interpretation of the arguments to the -atime, -ctime + and similar tests in find has been documented more clearly. + +* Major changes in release 4.2.8, 2004-11-24 +*** Bugfix to the findutils 4.2.7 automount handling on Solaris. This + worked to some extent in findutils-4.2.7, but is much improved in + findutils-4.2.8. + +* Major changes in release 4.2.7, 2004-11-21 +** Functionality Changes +*** xargs can now read a list of arguments from a named file, allowing + the invoked program to use the same stdin as xargs started with + (for example ``xargs --arg-file=todo emacs''). +** Documentation improvements +*** The Texinfo manual now has an extra chapter, "Error Messages". Most + error messages are self-explanatory, but some of the ones which + are not are explained in this chapter. +** Bug Fixes +*** Avoid trying to link against -lsun on UNICOS, which doesn't need it or + have it. +*** Bugfix to the findutils 4.2.6 automount handling (which hadn't been enabled + on Solaris). +*** Reenabled internationalisation support (which had been accidentally + disabled in findutils-4.2.5). + +* Major changes in release 4.2.6, 2004-11-21 +** Bug Fixes +*** find now copes rather better when a directory appears to change just as + it is about to start examining it, which happens with automount. + This is because automount mounts filesystems as you change + directory into them. This should resolve Savannah bugs #3998, + #9043. + +* Major changes in release 4.2.5, 2004-11-11 +** Functionality Changes +*** The POSIX options -H and -L are supported. These control whether or not + find will follow symbolic links. +*** The BSD option -P is also now supported (though in any case + it is the default). +** Documentation improvements +*** Better documentation for "xargs -i". +** Bug Fixes +*** "make install" now respects DESTDIR when generating localstatedir. + (this is only relevant if you are installing to some location + other than the one that you indictaed when you ran "configure"). +*** Compatible with automake versions 1.8 and 1.9. +*** Build problems on UNICOS now fixed, though the linker will still generate + warnings because we try to link with the nonexistent library + "-lsun". Edit $(LIBS) to work around this problem. + +* Major changes in release 4.2.4, 2004-11-08 +** Functionality Changes +*** If your system sort command has a working "-z" option, updatedb will + now correctly handle newline characters in filenames (as will + locate). +*** xargs now uses 128Kb of command line by default (less if the system + doesn't support that much). +*** If you specify a 'find' option after non-option, a warning message + is now issued. Options should be specified immediately after the + list of paths to search. These warnings are enabled if you + specify the -warn option, or if stdin is a tty. They are diabled + by the use of the -nowarn option. +*** Like find, the locate program now supports an option --null (short form -0) + which changes the result separator from newline to NULL. +*** Locate supports the option -c (long form --count) which suppresses normal + output but prints on stdout the number of results produced (like + grep -c). +*** Locate supports the option -l (long form --limit) which limits the + number of results. This is useful if you only want to find out if + there are copies of a certain file on the system, but don't want + to wait for the entire locate database to be searched. +*** Locate now has an option --basename which forces the specified pattern to + be matched against the basename of the entries in the locate + database, rather than the whole name. The default behaviour + (matching against the whole name of the file including all the + parent directory names) corresponds to the option --wholename. +*** updatedb has a new option, --findoptions, that can be used to + pass extra options through to the find command that it uses. +** Bug Fixes +*** "find -printf '%H\n'" now works (rather than segfaulting) on + systems that have non-writable string constants. +*** Better POSIX compliance for the -s option to xargs (out of range + values should just result in bounding to the correct range, not an + error, so now we just print a warning message and adjust the + value). +*** Corrected section numbers of manual page cross-references + +* Major changes in release 4.2.3, 2004-10-30 +** Functionality Changes +*** Added new action -delete which deletes things that find matches. +*** Added new action -quit which causes find to exit immediately. +*** A new format directive '%D' for "find -printf" prints the device number. +*** The -ls predicate no longer truncates user or group names. +*** Added new option "-d" which is a synonym for "-depth" for compatibility + with Mac OS, OpenBSD and FreeBSD. This option is already + deprecated since the POSIX standard specifies "-depth". +*** Added two new format specifiers to the -printf action; these are + %y and %Y. They indicate the type of the file as a single letter; + these are the same latters as are used by the "-type" test. +*** If a parent directory changes during the execution of find, + the error message we issue identifies the nature of the change + (for example the previous and current inode numbers of the + directory we've just returned out of). +** Other Changes +*** Non-functional code changes to silence compiler warnings. + +* Major changes in release 4.2.2, 2004-10-24 +** Documentation improvements +*** "find ... -exec {}+" is not yet supported. +** Bug Fixes +*** Fixed compilation problems on Solaris, RedHat EL AS 2.1, Irix, AIX +*** Work around possible compiler bug on HP-UX 11.23 for ia64 +*** The built-in internationalisation support now works again. +** Other Changes +*** We now import the gnulib source in the way it is intended to be used, + which means among other things that we only have one config.h file + now. +*** Functions which findutils requires but which are not present in + gnulib are now defined in "libfind.a". This is in the lib + directory, while gnulib is in the gnulib subdirectory. +*** Fixed a typo in the address of the FSF in many of the file headers. + +* Major changes in release 4.2.1, 2004-10-17 +** Bug Fixes +*** 'find -name \*bar now matches .foobar, because the POSIX standard + requires it, as explained at + http://standards.ieee.org/reading/ieee/interp/1003-2-92_int/pasc-1003.2-126.html + +* Major changes in release 4.2.1, 2004-10-17 +** Bug Fixes +*** find -iname now works correctly on systems that have an fnmatch() function + that does not support FNM_CASEFOLD +*** updatedb now uses signal names for "trap" instead of numbers, + as per bug #9465 (see http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html) +*** Better support for systems lacking intmax_t +** Other Changes +**** findutils now uses a newer version of gnulib (dated 2004-10-17). + +* Major changes in release 4.2.0, 2003-06-14 +** Functionality Changes +*** xargs now works better when the environment variables are very extensive. + The xargs command used to run into difficulties if the environment + data contained more than 20480 bytes. +*** New options -wholename and -iwholename + As per the GNU Projecvt coding standard, These are preferred over + the -path and -ipath options. Using -ipath now generates a warning, + though -path does not (since HPUX also offers -path). +*** The environment variable FIND_BLOCK_SIZE is now ignored. +*** New option "-ignore_readdir_race" + silences an error messages which would otherwise occur if a file is removed + after find has read it from the directory using readdir(), but before + find stats the file. There is also an option + -noignore_readdir_race which has the opposite effect. +** Documentation improvements +*** The -size option of find is now documented in more detail +*** POSIX compliance and GNU extensions + The find manual page also now includes a section + which describes the relationship between the features of GNU + find and the POSIX standard. Some other small improvements + to the find and xargs manual pages have been made. +*** The argument to the -fprintf directive is now better documented. + The escape code '\0' for the `-printf' predicate of find is now + documented, and the documentation for the %k and %b specifiers + has been improved. +*** xargs -i is now more clearly documented. +** Bug Fixes +*** locate 'pa*d' will now find /etc/passwd (if it exists, of course) +*** xargs standard input is not inherited by child processes + If the command invoked by xargs reads from its standard input, + it now gets nothing, as opposed to stealing data from the + list of files that xargs is trying to read. +*** Better support for 64-bit systems. +*** The command "xargs -i -n1" now works as one might expect, + I think this is a strange thing to want to do. +*** Arguments to find -mtime that are too large are now diagnosed + Previously, this just used to cause find just to do the wrong thing. +*** updatedb is now somewhat more robust + The updatedb shell script now does not generate an empty + database if it fails. +*** Sanity-check on some data read from locatedb + Locate now detects some types of file corruption in the + locate database. +*** The %k format specifier for -fprintf now works + This was broken in 4.1.20. + +* Major changes in release 4.1.20, 2003-06-14: +** New maintainer, James Youngman <jay@gnu.org> +** As far as I know, this is the first release after 4.1.7, but I've left + a gap just in case. +** We now use an "imported" version of gnulib, rather than including + a copy of the gnulib code in our CVS repository. There are no + differences in the build instructions, though (unless you are + building directly from CVS, in which case please read the file + README-CVS). +** There are no (deliberate) functional changes in version 4.1.20. + +* Major changes in release 4.1.7, 2001-05-20: +fix problem so that default "-print" is added when "-prune" is used. +security fixes related to directories changing while find is executing. + +* Major changes in release 4.1.6, 2000-10-10: +correct bug in prune. +added --ignore-case option for locate + +* Major changes in release 4.1.5, 2000-04-12: +Add support for large files + +* Major changes in release 4.1.4, 2000-02-26: +bug fixes, more up-to-date languages. + +* Major changes in release 4.1.3, 2000-01-27: +added internationalization and localization. + +* Major changes in release 4.1.2, 2000-01-18: +None. + +* Major changes in release 4.1.1, 1999-08-8: +attempt at successful compilation on many platforms after years of neglect + "--existing" option added to locate "--prunefs" option added to updatedb + +* Major changes in release 4.1, 1994-11-3: + +** Distribution renamed to findutils. +** updatedb is now a user command, installed in $exec_prefix/bin + instead of $exec_prefix/libexec. +** A few problems in Makefiles and testsuite corrected. + +* Major changes in release 4.0, 1994-11-2: + +** Documentation: +*** Texinfo manual. +*** Man page for updatedb. +*** Man page for the locate database formats. + +** find: +*** Takes less CPU time on long paths, because it uses chdir to descend + trees, so it does fewer inode lookups. +*** Does not get trapped in symbolic link loops when -follow is given. +*** Supports "-fstype afs" if you have /afs and /usr/afsws/include + and you configure using the --with-afs option. +*** New action -fls FILE; like -ls but writes to FILE. + +** locate: +*** Supports a new database format, which is 8-bit clean and + allows machines with different byte orderings and integer sizes to + share the databases. The new locate can also detect and read the + old database format automatically. The new databases are typically + 30% or more larger than the old ones (due to allowing all 8 bits in + file names). Search times are approximately the same, or faster on + some systems. +*** Warns if a file name database is more than 8 days old. + +** updatedb: +*** Takes command-line options. + +** xargs: +*** Performance improved 10-20%. +*** The EOF string is not used when -0 is given. +*** Now has a test suite. Some minor bugs fixed as a result. + +* Major changes in release 3.8, 1993-03-29: + +** case insensitive versions of -lname, -name, -path, -regex: + -ilname, -iname, -ipath, -iregex +** %F directive for -printf, -fprintf to print file system type + +* Major changes in release 3.7: + +** locate can search multiple databases +** locate has an option to specify the database path +** updatedb no longer goes into an infinite loop with some versions of tail + +* No NEWS was kept for earlier releases. Known release dates include: +** release 3.2, 1991-08-28 +** release 3.1, 1991-08-21 +** release 3.0, 1991-08-21 +** release 2.2, 1991-04-05 +** release 2.1, 1991-01-01 +** release 2.0, 1990-11-20 +** release 1.2, 1990-07-03 +** release 1.1, 1990-06-24 +** release 1.0, 1990-06-22 +** beginning of findutils history, 1987-02-21 + + --//-- +This is used by Emacs' spell checker ispell.el: + +LocalWords: ansi knr strftime xargs updatedb sh fnmatch hin strcpy +LocalWords: lib getstr getline frcode bigram texi depcomp automake +LocalWords: strncasecmp strcasecmp LIBOBJS FUNC prunefs allout libexec +LocalWords: testsuite Texinfo chdir inode fstype afs fls ls EOF lname +LocalWords: regex ilname iname ipath iregex printf fprintf + +Copyright (C) 1996, 1999, 2000, 2001, 2003-2015 Free Software Foundation, Inc. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. +A copy of the license is included in the ``GNU Free Documentation +License'' file as part of this distribution. |
