1 | GNU findutils NEWS - User visible changes. -*- outline -*- (allout)
|
---|
2 | * Major changes in release 4.3.2
|
---|
3 |
|
---|
4 | ** Bug Fixes
|
---|
5 |
|
---|
6 | #18222: find -printf '%H %P' once again prints the right result if
|
---|
7 | more than one start point was given on the command line.
|
---|
8 |
|
---|
9 | #17782: find -execdir now correctly puts the prefix "./" before the
|
---|
10 | expansion of "{}" rather than at the start of the argument it appears
|
---|
11 | in. Please note that if you use the -exec or -execdir actions with a
|
---|
12 | shell, then you may be vulnerable to shell code injection attacks, so
|
---|
13 | don't do that. It's not a security defect in find - you should not be
|
---|
14 | passing untrusted data (such as file names chosen by other people) to
|
---|
15 | the shell.
|
---|
16 |
|
---|
17 | #17490: find -regex generated a segfault in findutils-4.3.1, but this
|
---|
18 | is fixed in findutils-4.3.2.
|
---|
19 |
|
---|
20 | #17477: find -printf '%' (that is, where the format has a trailing %)
|
---|
21 | now generates an error message.
|
---|
22 |
|
---|
23 | #17372: The fts-based find executable (the default configuration uses
|
---|
24 | fts) is now much faster when -maxdepth is used on filesystems with
|
---|
25 | high fanouts.
|
---|
26 |
|
---|
27 | #15531: The -prune action now behaves correctly when applied to a file.
|
---|
28 |
|
---|
29 | ** Functional changes
|
---|
30 |
|
---|
31 | The slocate database format is now supported. Preliminary changes
|
---|
32 | intended to eventually allow setuid operation of locate have also been
|
---|
33 | made. For the moment, please don't install GNU locate as a
|
---|
34 | set-user-ID program (except for testing purposes; if you do so, please
|
---|
35 | make sure that untrusted users cannot execute the set-user-ID locate
|
---|
36 | program).
|
---|
37 |
|
---|
38 | Use of an slocate database which was built with a nonzero security
|
---|
39 | mode (at the moment, GNU updatedb will not do this) forces locate's
|
---|
40 | "-e" option to be turned on, which has an effect on the "-S" option
|
---|
41 | which is probably surprising for most users.
|
---|
42 |
|
---|
43 |
|
---|
44 | ** Documentation Fixes
|
---|
45 |
|
---|
46 | The global effect of options (other than -daystart and -follow) is now
|
---|
47 | explained more clearly in the manual page. Savannah bug #15360.
|
---|
48 |
|
---|
49 |
|
---|
50 | * Major changes in release 4.3.1
|
---|
51 |
|
---|
52 | ** Bug Fixes
|
---|
53 |
|
---|
54 | Find now follows POSIX rules for determining where directories end and
|
---|
55 | expressions start. This means that "find \(1 \!2 \, \)" now searches
|
---|
56 | in the four named directories, rather than trying to parse an
|
---|
57 | expression. (Savannah bug #15235).
|
---|
58 |
|
---|
59 | You now get a more helpful error message when you use command lines
|
---|
60 | which have missing expressions, such as
|
---|
61 | find . ( )
|
---|
62 | find . !
|
---|
63 | find . -a
|
---|
64 | find . \( -not \)
|
---|
65 | find . \( -true -a
|
---|
66 |
|
---|
67 | Savannah bug #15800: If find finds more subdirectories within a parent
|
---|
68 | directory than it previously expected to based on the link count of
|
---|
69 | the parent, the resulting error message now gives the correct
|
---|
70 | directory name (previously an error message was issued but it
|
---|
71 | specified the wrong directory).
|
---|
72 |
|
---|
73 | Savannah bug #16738: "find .... -exec ... {} +" now works if you have
|
---|
74 | a large environment and many files must be passed to the -exec
|
---|
75 | action. The same problem affected the -execdir action, though since
|
---|
76 | the number of files in a given directory will normally be smaller, the
|
---|
77 | problem was worse for -exec.
|
---|
78 |
|
---|
79 | Savannah bug #16579: Updatedb now works if it is running as a user
|
---|
80 | whose login shell is not actually a shell.
|
---|
81 |
|
---|
82 | There have also been a number of documentation improvements (includng
|
---|
83 | Savannah bug #16269).
|
---|
84 |
|
---|
85 | ** Functional changes
|
---|
86 |
|
---|
87 | For find, debug output can now be enabled at runtime with the -D
|
---|
88 | option. This causes the printing of various sorts of information
|
---|
89 | about find's internal state and progress.
|
---|
90 |
|
---|
91 | The find option -nowarn cannot itself produce a warning (this used to
|
---|
92 | happen with commands like "find . -name quux -nowarn -print".
|
---|
93 |
|
---|
94 | ** Performance Enhancements
|
---|
95 |
|
---|
96 | Find now has a rudimentary cost-based optimiser. It has an idea of
|
---|
97 | the basic cost of each test (i.e. that -name is very cheap while -size
|
---|
98 | is more expensive). It re-orders tests bearing in mind the cost of
|
---|
99 | each test and its likely success. Predicates with side effects (for
|
---|
100 | example -delete or -exec) are not reordered. The optimiser is not
|
---|
101 | yet enabled by default, but the new option -O controls the query
|
---|
102 | optimisation level. To see this in action, try
|
---|
103 | find -D opt -O3 . -type f -o -type c -o -size 555 -name Z
|
---|
104 | and compare the optimised query with:
|
---|
105 | find -D opt -O3 . -size 555 -o -type c -o -type f -name Z
|
---|
106 | and
|
---|
107 | find -D opt . -size 555 -o -type c -o -type f -name Z
|
---|
108 |
|
---|
109 | Over time, as optimisations are proven to be robust and correct, they
|
---|
110 | will be moved to lower optimisation levels. Some optimisations have
|
---|
111 | always been performed by find (for example -name is always done early
|
---|
112 | if possible).
|
---|
113 |
|
---|
114 | ** Translations
|
---|
115 |
|
---|
116 | Findutils 4.3.1 includes updated translations for the following
|
---|
117 | languages:
|
---|
118 | Vietnamese, Belarusian, Catalan, Danish, German, Greek, Esperanto,
|
---|
119 | Spanish, Estonian, Finnish, French, Irish, Galician, Croatian, Hungarian,
|
---|
120 | Indonesian, Italian, Japanese, Korean, Luganda, Malay, Dutch, Polish,
|
---|
121 | Portuguese, Brazilian Portuguese, Romanian, Russian, Kinyarwanda,
|
---|
122 | Slovak, Slovenian, Serbian, Swedish, Turkish, Chinese (simplified),
|
---|
123 | Chinese (traditional), Bulgarian
|
---|
124 |
|
---|
125 | * Major changes in release 4.3.0
|
---|
126 |
|
---|
127 | The 4.3.x release series are currently 'development' releases. Please
|
---|
128 | test it, but think carefully before installing it in a production
|
---|
129 | system. New features in findutils-4.3.x are under development; they
|
---|
130 | may change or go away.
|
---|
131 |
|
---|
132 | All changes up to and including findutils-4.2.27 are included in this
|
---|
133 | release. In addition the following changes are new in this release:
|
---|
134 |
|
---|
135 | ** Functional Changes
|
---|
136 |
|
---|
137 | By default, find now uses the fts() function to search the file
|
---|
138 | system. The use of fts greatly increases find's ability to search
|
---|
139 | extremely deep directory hierarchites.
|
---|
140 |
|
---|
141 | You can tell that the version of find you are using uses FTS, because
|
---|
142 | the output of "find --version" will include the word "FTS".
|
---|
143 |
|
---|
144 | Currently two binaries for 'find' are built. The configure option
|
---|
145 | --without-fts can be used to select whether 'find' uses fts:
|
---|
146 |
|
---|
147 | With fts Without fts
|
---|
148 | default configuration find oldfind
|
---|
149 | configure --with-fts find oldfind
|
---|
150 | configure --without-fts ftsfind find
|
---|
151 |
|
---|
152 | New tests, -readable, -writable, -executable. These check that a file
|
---|
153 | can be read, written or executed respectively.
|
---|
154 |
|
---|
155 | * Major changes in release 4.2.27
|
---|
156 |
|
---|
157 | ** Warnings of Future Changes
|
---|
158 |
|
---|
159 | The test -perm /000 currently matches no files, but for greater
|
---|
160 | consistency with -perm -000, this will be changed to match all files;
|
---|
161 | this change will probably be made in early 2006. Meanwhile, a warning
|
---|
162 | message is given if you do this.
|
---|
163 |
|
---|
164 | ** Bug Fixes
|
---|
165 |
|
---|
166 | If xargs is invoked with many short arguments on PPC systems running
|
---|
167 | the Linux kernel, we no longer get an "argument list too long" error
|
---|
168 | from the operating system.
|
---|
169 |
|
---|
170 | Fixed a bug in the test suite which caused it to spuriously fail on
|
---|
171 | systems where ARG_MAX is different to the value used by the Linux
|
---|
172 | kernel on 32-bit x86-architecture systems.
|
---|
173 |
|
---|
174 | On systems running the Linux kernel, "find -printf %F" no longer
|
---|
175 | produces the wrong answer for files on filesystems that have been
|
---|
176 | remounted elsewhere using "mount --bind". (Savannah bug #14921).
|
---|
177 |
|
---|
178 | ** Documentation Changes
|
---|
179 |
|
---|
180 | Following some extensive and detailed review comments from Aaron
|
---|
181 | Hawley, the material in the manual pages and the Texinfo manual are
|
---|
182 | now synchronised.
|
---|
183 |
|
---|
184 | The %M format specifier of "find -printf" is now documented, although
|
---|
185 | it has existed since release 4.2.5.
|
---|
186 |
|
---|
187 | The 'find' manual page now correctly documents the fact that -regex
|
---|
188 | defaults to using Emacs-style regular expressions (though this can be
|
---|
189 | changed).
|
---|
190 |
|
---|
191 | * Major changes in release 4.2.26
|
---|
192 |
|
---|
193 | ** Public Service Announcements
|
---|
194 |
|
---|
195 | I'd like to point out a second time that the interpretation of '-perm
|
---|
196 | +mode' has changed to be more POSIX-compliant. If you want the old
|
---|
197 | behaviour of the GNU extension you should use '-perm /mode'. See the
|
---|
198 | NEWS entry for findutils version 4.2.21 for details.
|
---|
199 |
|
---|
200 | ** Functional Changes
|
---|
201 |
|
---|
202 | The xargs command now supports a new option (--delimiter) which allows
|
---|
203 | input items to be separated by characters other than null and
|
---|
204 | whitespace. This resolves Savannah support request sr #102914.
|
---|
205 |
|
---|
206 | Sometimes find needs to read the /etc/mtab file (or perform the
|
---|
207 | equivalent operation on systems not using /etc/mtab). If this
|
---|
208 | information is needed butnot available, find now exits with an error
|
---|
209 | message non-zero status. If the information is not needed, find will
|
---|
210 | not spuriously fail.
|
---|
211 |
|
---|
212 | A new xargs option --delimiter allows the input delimiter to be
|
---|
213 | changed (previously \0 was the only choice unless you use the -L
|
---|
214 | option, which changes other semantics too).
|
---|
215 |
|
---|
216 | ** Bug Fixes
|
---|
217 |
|
---|
218 | If the environment size is too large to allow xargs to operate
|
---|
219 | normally, 'xargs --help' still works (now).
|
---|
220 |
|
---|
221 | If the input to xargs is a large number of very short options (for
|
---|
222 | example, one character each), earlier versions of xargs would fail
|
---|
223 | with 'Argument list too long'. However, since this is precisely the
|
---|
224 | problem that xargs was invented to solve, this is a bug. Hence on
|
---|
225 | those systems we now correctly use a shorter command line. This
|
---|
226 | problem particularly affected 64-bit Linux systems because of the
|
---|
227 | larger size of pointers, although 32-bit Linux systems were also
|
---|
228 | affected (albeit for longer command lines). In theory the same
|
---|
229 | problem could affect 'find -exec {} +', but that's much less likely
|
---|
230 | (even so, the bug is fixed there too).
|
---|
231 |
|
---|
232 | Bugfix for an unusual failure mode (Savannah bug #14842) where an
|
---|
233 | attempt to allocate more space for directory contents succeeds but is
|
---|
234 | incorrectly diagnosed as a failure. The likelihood of you
|
---|
235 | experiencing this depends on your architecture, operating system and
|
---|
236 | resource limits. This failure has been observed in a directory
|
---|
237 | containing 35396 entries.
|
---|
238 |
|
---|
239 | ** Documentation Changes
|
---|
240 |
|
---|
241 | The EXAMPLES section of the find manual page now correctly describes
|
---|
242 | the symbolic and octal modes for the -perm test.
|
---|
243 |
|
---|
244 | The documentation and "--help" usage information for the -L, -l, -I
|
---|
245 | and -i options have been clarified (but the behaviour has not changed).
|
---|
246 |
|
---|
247 | The documentation now explains more clearly what happens when you use
|
---|
248 | "-L -type l".
|
---|
249 |
|
---|
250 | * Major changes in release 4.2.25
|
---|
251 |
|
---|
252 | ** Bug Fixes
|
---|
253 |
|
---|
254 | find -perm /440 (which should succeed if a file is readable by its
|
---|
255 | owner or group) now works. Previously there was a bug which caused
|
---|
256 | this to be treated as "find -perm 440".
|
---|
257 |
|
---|
258 | Some files in the xargs test suite have been renamed to avoid problems
|
---|
259 | on operating systems whoch cannot distinguish filenames on the basis
|
---|
260 | of upper/lower case distinctions.
|
---|
261 |
|
---|
262 | The software now builds on Cygwin, including the generated file
|
---|
263 | regexprops.texi.
|
---|
264 |
|
---|
265 | Findutils should now build once again on systems supporting AFS, but
|
---|
266 | this support has not recently been fully tested. Findutils should
|
---|
267 | also (once again) build on Cygwin.
|
---|
268 |
|
---|
269 | ** Other Changes
|
---|
270 |
|
---|
271 | The test suite for find is now much more extensive.
|
---|
272 |
|
---|
273 | * Major changes in release 4.2.24
|
---|
274 |
|
---|
275 | ** Documentation Changes
|
---|
276 |
|
---|
277 | The manual now includes a "Worked Examples" section which talks about
|
---|
278 | the various ways in which findutils can be used to perform common
|
---|
279 | tasks, and why some of these alternatives are better than others.
|
---|
280 |
|
---|
281 | The -I option of xargs (which is required by the POSIX standard) is
|
---|
282 | now documented.
|
---|
283 |
|
---|
284 | We now document the fact that find ensures that commands run by -ok
|
---|
285 | and -okdir don't steal find's input. Find does this by redirecting
|
---|
286 | the command's standard input from stdin.
|
---|
287 |
|
---|
288 | Many documentation readability enhancements and proofreading fixes
|
---|
289 | were contributed by Aaron Hawley.
|
---|
290 |
|
---|
291 | ** Functional Changes
|
---|
292 |
|
---|
293 | *** Functional changes in locate
|
---|
294 |
|
---|
295 | The "--regex" option of locate now assumes the regular expression to
|
---|
296 | be in the same syntax as is used in GNU Emacs, though this can be
|
---|
297 | changed with the new option --regextype. This is a change from the
|
---|
298 | existing behaviour (which was to use POSIX Basic Regular Expressions).
|
---|
299 | Since this feature is releatively new anyway, I though it was more
|
---|
300 | useful to have compatibility between regular expression handling in
|
---|
301 | find and locate than to maintain the short-lived previous behaviour of
|
---|
302 | locate.
|
---|
303 |
|
---|
304 | The locate program now also supports a "--regextype" long option which
|
---|
305 | controls which regular expression syntax is understood by locate.
|
---|
306 | This is a long option and has no single-letter 'short option'
|
---|
307 | equivalent.
|
---|
308 |
|
---|
309 | *** Functional changes in find
|
---|
310 |
|
---|
311 | The regular expression syntax understood by "find" can be changed with
|
---|
312 | the -regextype option; this option is positional, meaning that you can
|
---|
313 | have several tests, each using a distinct syntax (this is not
|
---|
314 | recommended practice however).
|
---|
315 |
|
---|
316 | The default regular expression syntax is substantially the same as
|
---|
317 | that recognised by GNU Emacs, except for the fact that "." will match
|
---|
318 | a newline.
|
---|
319 |
|
---|
320 | The leaf optimisation can be disabled with the configure option
|
---|
321 | "--disable-leaf-optimisation", which is equivalent to specifying
|
---|
322 | "-noleaf" on all find command lines. This is useful for systems
|
---|
323 | having filesystems which do not provide traditional Unix behaviour for
|
---|
324 | the link count on directories (for example Cygwin and the Solaris 9
|
---|
325 | HSFS implementation).
|
---|
326 |
|
---|
327 | ** Bug Fixes
|
---|
328 |
|
---|
329 | *** Bug Fixes for find
|
---|
330 |
|
---|
331 | The -iregex test now works once again on systems that lack
|
---|
332 | re_search() (that is, systems on which findutils needs to use the
|
---|
333 | gnulib version of this function).
|
---|
334 |
|
---|
335 | find -regex now once again uses GNU Emacs-compatible regular
|
---|
336 | expressions.
|
---|
337 |
|
---|
338 | If invoked with stderr closed, the -fprint and -fprintf actions now no
|
---|
339 | longer cause error messages to be sent into the output file.
|
---|
340 |
|
---|
341 | If the link count of a directory is less that two, the leaf
|
---|
342 | optimisation is now disabled for that directory. This should allow
|
---|
343 | searching of non-Unix filesystems to be more reliable on systems that
|
---|
344 | don't take the trouble to make their filesystems look like traditional
|
---|
345 | Unix filesystems. Some filesystems don't even take the trouble to
|
---|
346 | have a link count of less than two and for these, -noleaf is still
|
---|
347 | required unless --disable-leaf-optimisation was used at configure time.
|
---|
348 |
|
---|
349 | The "%Y" directive for the -printf action now no longer changes find's
|
---|
350 | idea of the mode of the file, so this means among other things that
|
---|
351 | "-printf %Y %y" now works properly. This is Savannah bug #13973.
|
---|
352 |
|
---|
353 | * Major changes in release 4.2.23
|
---|
354 |
|
---|
355 | ** Documentation Changes
|
---|
356 |
|
---|
357 | The -L and -I options of xargs are currently incompatible (but should
|
---|
358 | not be).
|
---|
359 |
|
---|
360 | Improved the documentation for -execdir and -okdir.
|
---|
361 |
|
---|
362 | ** Functional Changes to updatedb
|
---|
363 |
|
---|
364 | File names ending in "/" which are specified as an argument to
|
---|
365 | --prunepaths (or in $PRUNEPATHS) don't work, so we now issue an error
|
---|
366 | message if the user tries to do that. The obvious exception of course
|
---|
367 | is "/" which does work and is not rejected.
|
---|
368 |
|
---|
369 |
|
---|
370 | * Major changes in release 4.2.22
|
---|
371 |
|
---|
372 | ** Security Fixes
|
---|
373 |
|
---|
374 | If a directory entry searched with "find -L" is a symbolic link to
|
---|
375 | ".", we no longer loop indefinitely. This problem affected find
|
---|
376 | versions 4.2.19, 4.2.20 and 4.2.21. This problem allows users to make
|
---|
377 | "find" loop indefinitely. This is in effect a denial of service and
|
---|
378 | could be used to prevent updates to the locate database or to defeat
|
---|
379 | file security checks based on find. However, it should be noted that
|
---|
380 | you should not use "find -L" in security-sensitive scenarios.
|
---|
381 |
|
---|
382 | ** Other Bug Fixes
|
---|
383 |
|
---|
384 | None in this release.
|
---|
385 |
|
---|
386 | ** Functional Changes to locate
|
---|
387 |
|
---|
388 | A locate database can now be supplied on stdin, using '-' as a element
|
---|
389 | of the database-path. If more than one database-path element is '-',
|
---|
390 | later instances are ignored.
|
---|
391 |
|
---|
392 | A new option to locate, '--all' ('-A') causes matches to be limited to
|
---|
393 | entries which match all given patterns, not entries which match
|
---|
394 | one or more patterns.
|
---|
395 |
|
---|
396 | ** Documentation Changes
|
---|
397 |
|
---|
398 | Some typos in the manual pages have been fixed. Various parts of the
|
---|
399 | manual now point out that it is good practice to quote the argument of
|
---|
400 | "-name". The manpage now has a "NON-BUGS" section which explains some
|
---|
401 | symptoms that look like bugs but aren't. The explanations of the "%k"
|
---|
402 | and "%b" directives to "find -printf" have been imrpoved.
|
---|
403 |
|
---|
404 |
|
---|
405 | * Major changes in release 4.2.21
|
---|
406 | ** Functional Changes to find
|
---|
407 |
|
---|
408 | The GNU extension "find ... -perm +MODE" has been withdrawn because it
|
---|
409 | is incompatible with POSIX in obscure cases like "find ... -perm ++r".
|
---|
410 | Use the new syntax "find ... -perm /MODE" instead. Old usages will
|
---|
411 | still continue to work, so long as they don't conflict with POSIX.
|
---|
412 |
|
---|
413 | If the output is going to a terminal, the -print, -fprint, -printf and
|
---|
414 | -fprintf actions now quote "unusual" characters to prevent unwanted
|
---|
415 | effects on the terminal. See "Unusual Characters in File Names" for
|
---|
416 | further details. There is no change to the behaviour when the output
|
---|
417 | is not going to a terminal. The locate program does the same thing,
|
---|
418 | unless the -0 option is in effect (in which case the filenames are
|
---|
419 | printed as-is).
|
---|
420 |
|
---|
421 | ** Functional Changes to locate
|
---|
422 |
|
---|
423 | The locate command will now read each locate database at most once.
|
---|
424 | This means that if you are using multiple databases and are searching
|
---|
425 | for more than one name, the results will now be printed in a different
|
---|
426 | order (and if you specified a small limit with --limit, you may get a
|
---|
427 | different set of results).
|
---|
428 |
|
---|
429 | A new option '--print' for locate causes it to print the matching
|
---|
430 | results even if the '--count' or '--statistics' option is in effect.
|
---|
431 |
|
---|
432 | ** Bug Fixes
|
---|
433 | find /blah/blah/blah -depth -empty now works once again.
|
---|
434 |
|
---|
435 | The -regex and -iregex tests of find now correctly accept POSIX Basic
|
---|
436 | Regular Expressions. (Savannah bug #12999)
|
---|
437 |
|
---|
438 | The updatedb program now works on systems where "su" does not support
|
---|
439 | the "-s" option, for example Solaris.
|
---|
440 |
|
---|
441 | * Major changes in release 4.2.20
|
---|
442 | ** Internationalization and Localization
|
---|
443 | Updated Vietnamese and Dutch translations.
|
---|
444 |
|
---|
445 | ** Bug Fixes
|
---|
446 | Minor bugfix affecting only those who compile from the CVS repository,
|
---|
447 | as opposed to those who compile from the source releases.
|
---|
448 |
|
---|
449 | * Major changes in release 4.2.19
|
---|
450 | ** Bug Fixes
|
---|
451 |
|
---|
452 | find should now no longer hang on systems which lack the O_NOFOLLOW
|
---|
453 | flag to open(2) and which are clients of an unresponsive NFS server
|
---|
454 | (Savannah bug #12044).
|
---|
455 |
|
---|
456 | We now avoid inappropriately failing for "find -L foo" or "find -H
|
---|
457 | foo" if foo is a symbolic link (Savannah bug #12181). Previously we
|
---|
458 | used to fail with the error message "Too many levels of symbolic
|
---|
459 | links".
|
---|
460 |
|
---|
461 | "find . -false -exec foo {} +" no longer runs an extra instance of foo
|
---|
462 | when find exits (Savannah bug #12230).
|
---|
463 |
|
---|
464 | If the chdir() safety check fails but we can no longer get back to
|
---|
465 | where we started, exit with an explanatory (fatal) error message.
|
---|
466 | This does not happen on GNU/Linux and FreeBSD because the safety check
|
---|
467 | is not needed (the security problem the safety check protects against
|
---|
468 | is prevented in a cleaner way on those systems).
|
---|
469 |
|
---|
470 | "make distclean" no longer deletes regex.c (which "make all" needs).
|
---|
471 |
|
---|
472 | ** Functionality Changes
|
---|
473 | "find -printf "%h\n" will now print "." for files in the current directory.
|
---|
474 | Previously it printed nothing (but there was a bug in the %h
|
---|
475 | implementation anyway). This fixes Savannah bug #12085.
|
---|
476 |
|
---|
477 | Should now build (again) on non-C99-compliant systems.
|
---|
478 |
|
---|
479 | ** Documentation enhancements
|
---|
480 | Fixed some typos and clarified wording in "Working with automounters".
|
---|
481 |
|
---|
482 | ** Internationalization and Localization
|
---|
483 | New Vietnamese message translation.
|
---|
484 | |
---|
485 |
|
---|
486 | * Major changes in release 4.2.18
|
---|
487 | ** Bug Fixes
|
---|
488 | *** "find -depth" was missing out non-leaf directories when they contain
|
---|
489 | non-directories. This affected findutils releases 4.2.15,
|
---|
490 | 4.2.16 and 4.2.17, but the bug is now fixed.
|
---|
491 | *** Find no longer hangs on systems which are clients of unresponsive
|
---|
492 | NFS servers.
|
---|
493 | ** Documentation improvements
|
---|
494 | *** Improvements and corrections to the find.1 manpage, including corrections to the descriptions of -H and -L.
|
---|
495 | |
---|
496 |
|
---|
497 | * Major changes in release 4.2.17
|
---|
498 | ** Bug Fixes
|
---|
499 | *** bug #11861 undefined symbol "basename" on IRIX 5.3
|
---|
500 | *** bug #11865 xargs -i regression (as compared to findutils-4.2.12)
|
---|
501 | *** bug #11866 Typo in pred_okdir renders it useless (affecting 4.2.16 only)
|
---|
502 | *** patch #3723 fix recent process_top_path change (for -execdir on /)
|
---|
503 | *** Fixing bug #11866 and applying patch #3723 made -execdir work much better.
|
---|
504 | *** find bar/baz/ugh now works again if baz is a symbolic link (broken
|
---|
505 | in 4.2.15).
|
---|
506 | |
---|
507 |
|
---|
508 | * Major changes in release 4.2.16
|
---|
509 | ** Functionality Changes
|
---|
510 | *** Updated the message catalogues for the translated messages.
|
---|
511 | *** The subfs filesystem is now treated the same as the autofs
|
---|
512 | filesystem is.
|
---|
513 | *** New translations: Belarusian, Catalan, Greek, Esperanto,
|
---|
514 | Finnish, Irish, Croatian, Hungarian, Japanese, Luganda,
|
---|
515 | Malay, Romanian, Slovenian, Serbian, Chinese (simplified).
|
---|
516 |
|
---|
517 | ** Bug Fixes
|
---|
518 | *** The -execdir action now works correctly for files named on the
|
---|
519 | command line.
|
---|
520 | |
---|
521 |
|
---|
522 | * Major changes in release 4.2.15
|
---|
523 | ** Functionality Changes
|
---|
524 | *** locate now supports matching regular expression (--regex).
|
---|
525 | *** --enable-d_type-optimization (introduced in findutils 4.2.13) is now turned on by default.
|
---|
526 | |
---|
527 |
|
---|
528 | * Major changes in release 4.2.14
|
---|
529 | ** Functionality Changes
|
---|
530 | *** New options -L, -P, -H for locate. The work in the same was as the same options for find.
|
---|
531 | ** Bug Fixes
|
---|
532 | *** Don't include the "findutils/find/testsuite/find.gnu" subdirectory in the
|
---|
533 | distributed tar file more than once.
|
---|
534 | *** Should now build on Solaris once again.
|
---|
535 | *** -xtype and -printf %Y now work correctly for symbolic links once again
|
---|
536 | ** Documentation improvements
|
---|
537 | *** All options for "locate" are now documented
|
---|
538 | |
---|
539 |
|
---|
540 | * Major changes in release 4.2.13
|
---|
541 | ** Performance Enhancements
|
---|
542 | *** On Linux and some other systems, a large performance improvement,
|
---|
543 | because we can eliminate many of the calls to lstat() (in extreme
|
---|
544 | cases, 99% of them). Limited testing shows a 2x speedup on NFS
|
---|
545 | filesystems. Other systems which can make use of this enhancement
|
---|
546 | include Mac OS X and *BSD.
|
---|
547 | |
---|
548 |
|
---|
549 | * Major changes in release 4.2.12
|
---|
550 | ** Functionality Changes
|
---|
551 | *** find is now POSIX-compliant, as far as I know.
|
---|
552 | *** -exec ... {} + now works.
|
---|
553 | *** New actions -execdir and -okdir which are like -exec and -ok but more secure.
|
---|
554 | *** "locate -w" is now a synonym for "locate --wholepath".
|
---|
555 | *** An empty path entry in the locate database path (for example "::" in
|
---|
556 | $LOCATE_PATH or in the argument to "locate -d") is taken to mean
|
---|
557 | the default database, whose name is hard-coded in locate.
|
---|
558 | ** Bug Fixes
|
---|
559 | *** If find or xargs cannot write to stdout, for example because
|
---|
560 | output is redirected to a file and the disk is full, the
|
---|
561 | relevant program will return a non-zero exit status.
|
---|
562 | |
---|
563 |
|
---|
564 | * Major changes in release 4.2.11
|
---|
565 | ** Bug Fixes
|
---|
566 | *** Compilation fix for systems without EOVERFLOW.
|
---|
567 | *** More helpful error message if you make a mistake with (, ), -o or -a.
|
---|
568 | ** Functionality Changes
|
---|
569 | *** If you have unclosed parentheses on the find command line,
|
---|
570 | or any of a number of similar problems, find will now produce
|
---|
571 | a more helpful error message.
|
---|
572 | *** locate -b is now a synonym for locate --basename
|
---|
573 | *** locate now supports a --statistics (or -S) option, which prints some
|
---|
574 | statistics about the locate databases.
|
---|
575 | *** Implemented the -samefile option.
|
---|
576 | ** Documentation improvements
|
---|
577 | *** New chapter in the manual, "Security Considerations".
|
---|
578 | *** Better documentation for -prune (Mainly thanks to Stepan Kasal)
|
---|
579 | ** Bug Fixes
|
---|
580 | *** locate's options -i and -w now work with the -e option (previously a bug
|
---|
581 | prevented this).
|
---|
582 | |
---|
583 |
|
---|
584 | * Major changes in release 4.2.10
|
---|
585 | ** Bug Fixes
|
---|
586 | *** Portability fix for fstype.c: should now compile on UNICOS, and possibly
|
---|
587 | also produce useful results on BeOS and Dolphin, perhaps other
|
---|
588 | systems too.
|
---|
589 | |
---|
590 |
|
---|
591 | * Major changes in release 4.2.9
|
---|
592 | ** Functionality Changes
|
---|
593 | *** 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_".
|
---|
594 | *** xargs now supports the POSIX options -E, -I and -L. These are synonyms
|
---|
595 | for the existing options -e, -i and -l, but the latter three are
|
---|
596 | now deprecated.
|
---|
597 | ** Bug Fixes
|
---|
598 | *** xargs -n NUM now invokes a command as soon as it has NUM arguments.
|
---|
599 | Previously, it waited until NUM+1 items had been read, and then
|
---|
600 | invoked the command with NUM arguments, saving the remaining one
|
---|
601 | for next time.
|
---|
602 | *** If "find -L" discovers a symbolic link loop, an error message is issued.
|
---|
603 | *** If you specify a directory on the find command line, but -prune
|
---|
604 | is applied to it, find will no longer chdir() into it anyway.
|
---|
605 | ** Documentation improvements
|
---|
606 | *** The precise interpretation of the arguments to the -atime, -ctime
|
---|
607 | and similar tests in find has been documented more clearly.
|
---|
608 | |
---|
609 |
|
---|
610 | * Major changes in release 4.2.8
|
---|
611 | *** Bugfix to the findutils 4.2.7 automount handling on Solaris. This
|
---|
612 | worked to some extent in findutils-4.2.7, but is much improved in
|
---|
613 | findutils-4.2.8.
|
---|
614 | |
---|
615 |
|
---|
616 | * Major changes in release 4.2.7
|
---|
617 | ** Functionality Changes
|
---|
618 | *** xargs can now read a list of arguments from a named file, allowing
|
---|
619 | the invoked program to use the same stdin as xargs started with
|
---|
620 | (for example ``xargs --arg-file=todo emacs'').
|
---|
621 | ** Documentation improvements
|
---|
622 | *** The Texinfo manual now has an extra chapter, "Error Messages". Most
|
---|
623 | error messages are self-explanatory, but some of the ones which
|
---|
624 | are not are explained in this chapter.
|
---|
625 | ** Bug Fixes
|
---|
626 | *** Avoid trying to link against -lsun on UNICOS, which doesn't need it or
|
---|
627 | have it.
|
---|
628 | *** Bugfix to the findutils 4.2.6 automount handling (which hadn't been enabled
|
---|
629 | on Solaris).
|
---|
630 | *** Reenabled internationalisation support (which had been accidentally
|
---|
631 | disabled in findutils-4.2.5).
|
---|
632 | |
---|
633 |
|
---|
634 | * Major changes in release 4.2.6
|
---|
635 | ** Bug Fixes
|
---|
636 | *** find now copes rather better when a directory appears to change just as
|
---|
637 | it is about to start examining it, which happens with automount.
|
---|
638 | This is because automount mounts filesystems as you change
|
---|
639 | directory into them. This should resolve Savannah bugs #3998,
|
---|
640 | #9043.
|
---|
641 | |
---|
642 |
|
---|
643 | * Major changes in release 4.2.5
|
---|
644 | ** Functionality Changes
|
---|
645 | *** The POSIX options -H and -L are supported. These control whether or not
|
---|
646 | find will follow symbolic links.
|
---|
647 | *** The BSD option -P is also now supported (though in any case
|
---|
648 | it is the default).
|
---|
649 | ** Documentation improvements
|
---|
650 | *** Better documentation for "xargs -i".
|
---|
651 | ** Bug Fixes
|
---|
652 | *** "make install" now respects DESTDIR when generating localstatedir.
|
---|
653 | (this is only relevant if you are installing to some location
|
---|
654 | other than the one that you indictaed when you ran "configure").
|
---|
655 | *** Compatible with automake versions 1.8 and 1.9.
|
---|
656 | *** Build problems on UNICOS now fixed, though the linker will still generate
|
---|
657 | warnings because we try to link with the nonexistent library
|
---|
658 | "-lsun". Edit $(LIBS) to work around this problem.
|
---|
659 | |
---|
660 |
|
---|
661 | * Major changes in release 4.2.4
|
---|
662 | ** Functionality Changes
|
---|
663 | *** If your system sort command has a working "-z" option, updatedb will
|
---|
664 | now correctly handle newline characters in filenames (as will
|
---|
665 | locate).
|
---|
666 | *** xargs now uses 128Kb of command line by default (less if the system
|
---|
667 | doesn't support that much).
|
---|
668 | *** If you specify a 'find' option after non-option, a warning message
|
---|
669 | is now issued. Options should be specified immediately after the
|
---|
670 | list of paths to search. These warnings are enabled if you
|
---|
671 | specify the -warn option, or if stdin is a tty. They are diabled
|
---|
672 | by the use of the -nowarn option.
|
---|
673 | *** Like find, the locate program now supports an option --null (short form -0)
|
---|
674 | which changes the result separator from newline to NULL.
|
---|
675 | *** Locate supports the option -c (long form --count) which suppresses normal
|
---|
676 | output but prints on stdout the number of results produced (like
|
---|
677 | grep -c).
|
---|
678 | *** Locate supports the option -l (long form --limit) which limits the
|
---|
679 | number of results. This is useful if you only want to find out if
|
---|
680 | there are copies of a certain file on the system, but don't want
|
---|
681 | to wait for the entire locate database to be searched.
|
---|
682 | *** Locate now has an option --basename which forces the specified pattern to
|
---|
683 | be matched against the basename of the entries in the locate
|
---|
684 | database, rather than the whole name. The default behaviour
|
---|
685 | (matching against the whole name of the file including all the
|
---|
686 | parent directory names) corresponds to the option --wholename.
|
---|
687 | *** updatedb has a new option, --findoptions, that can be used to
|
---|
688 | pass extra options through to the find command that it uses.
|
---|
689 | ** Bug Fixes
|
---|
690 | *** "find -printf '%H\n'" now works (rather than segfaulting) on
|
---|
691 | systems that have non-writable string constants.
|
---|
692 | *** Better POSIX compliance for the -s option to xargs (out of range
|
---|
693 | values should just result in bounding to the correct range, not an
|
---|
694 | error, so now we just print a warning message and adjust the
|
---|
695 | value).
|
---|
696 | *** Corrected section numbers of manual page cross-references
|
---|
697 | |
---|
698 |
|
---|
699 | * Major changes in release 4.2.3
|
---|
700 | ** Functionality Changes
|
---|
701 | *** Added new action -delete which deletes things that find matches.
|
---|
702 | *** Added new action -quit which causes find to exit immediately.
|
---|
703 | *** A new format directive '%D' for "find -printf" prints the device number.
|
---|
704 | *** The -ls predicate no longer truncates user or group names.
|
---|
705 | *** Added new option "-d" which is a synonym for "-depth" for compatibility
|
---|
706 | with Mac OS, OpenBSD and FreeBSD. This option is already
|
---|
707 | deprecated since the POSIX standard specifies "-depth".
|
---|
708 | *** Added two new format specifiers to the -printf action; these are
|
---|
709 | %y and %Y. They indicate the type of the file as a single letter;
|
---|
710 | these are the same latters as are used by the "-type" test.
|
---|
711 | *** If a parent directory changes during the execution of find,
|
---|
712 | the error message we issue identifies the nature of the change
|
---|
713 | (for example the previous and current inode numbers of the
|
---|
714 | directory we've just returned out of).
|
---|
715 | ** Other Changes
|
---|
716 | *** Non-functional code changes to silence compiler warnings.
|
---|
717 | |
---|
718 |
|
---|
719 | * Major changes in release 4.2.2
|
---|
720 | ** Documentation improvements
|
---|
721 | *** "find ... -exec {}+" is not yet supported.
|
---|
722 | ** Bug Fixes
|
---|
723 | *** Fixed compilation problems on Solaris, RedHat EL AS 2.1, Irix, AIX
|
---|
724 | *** Work around possible compiler bug on HP-UX 11.23 for ia64
|
---|
725 | *** The built-in internationalisation support now works again.
|
---|
726 | ** Other Changes
|
---|
727 | *** We now import the gnulib source in the way it is intended to be used,
|
---|
728 | which means among other things that we only have one config.h file
|
---|
729 | now.
|
---|
730 | *** Functions which findutils requires but which are not present in
|
---|
731 | gnulib are now defined in "libfind.a". This is in the lib
|
---|
732 | directory, while gnulib is in the gnulib subdirectory.
|
---|
733 | *** Fixed a typo in the address of the FSF in many of the file headers.
|
---|
734 | |
---|
735 |
|
---|
736 | * Major changes in release 4.2.1
|
---|
737 | ** Bug Fixes
|
---|
738 | *** 'find -name \*bar now matches .foobar, because the POSIX standard
|
---|
739 | requires it, as explained at
|
---|
740 | http://standards.ieee.org/reading/ieee/interp/1003-2-92_int/pasc-1003.2-126.html
|
---|
741 | |
---|
742 |
|
---|
743 | * Major changes in release 4.2.1
|
---|
744 | ** Bug Fixes
|
---|
745 | *** find -iname now works correctly on systems that have an fnmatch() function
|
---|
746 | that does not support FNM_CASEFOLD
|
---|
747 | *** updatedb now uses signal names for "trap" instead of numbers,
|
---|
748 | as per bug #9465 (see http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html)
|
---|
749 | *** Better support for systems lacking intmax_t
|
---|
750 | ** Other Changes
|
---|
751 | **** findutils now uses a newer version of gnulib (dated 2004-10-17).
|
---|
752 | |
---|
753 |
|
---|
754 | * Major changes in release 4.2.0
|
---|
755 | ** Functionality Changes
|
---|
756 | *** xargs now works better when the environment variables are very extensive.
|
---|
757 | The xargs command used to run into difficulties if the environment
|
---|
758 | data contained more than 20480 bytes.
|
---|
759 | *** New options -wholename and -iwholename
|
---|
760 | As per the GNU Projecvt coding standard, These are preferred over
|
---|
761 | the -path and -ipath options. Using -ipath now generates a warning,
|
---|
762 | though -path does not (since HPUX also offers -path).
|
---|
763 | *** The environment variable FIND_BLOCK_SIZE is now ignored.
|
---|
764 | *** New option "-ignore_readdir_race"
|
---|
765 | silences an error messages which would otherwise occur if a file is removed
|
---|
766 | after find has read it from the directory using readdir(), but before
|
---|
767 | find stats the file. There is also an option
|
---|
768 | -noignore_readdir_race which has the opposite effect.
|
---|
769 | ** Documentation improvements
|
---|
770 | *** The -size option of find is now documented in more detail
|
---|
771 | *** POSIX compliance and GNU extensions
|
---|
772 | The find manual page also now includes a section
|
---|
773 | which describes the relationship between the features of GNU
|
---|
774 | find and the POSIX standard. Some other small improvements
|
---|
775 | to the find and xargs manual pages have been made.
|
---|
776 | *** The argument to the -fprintf directive is now better documented.
|
---|
777 | The escape code '\0' for the `-printf' predicate of find is now
|
---|
778 | documented, and the documentation for the %k and %b specifiers
|
---|
779 | has been improved.
|
---|
780 | *** xargs -i is now more clearly documented.
|
---|
781 | ** Bug Fixes
|
---|
782 | *** locate 'pa*d' will now find /etc/passwd (if it exists, of course)
|
---|
783 | *** xargs standard input is not inherited by child processes
|
---|
784 | If the command invoked by xargs reads from its standard input,
|
---|
785 | it now gets nothing, as opposed to stealing data from the
|
---|
786 | list of files that xargs is trying to read.
|
---|
787 | *** Better support for 64-bit systems.
|
---|
788 | *** The command "xargs -i -n1" now works as one might expect,
|
---|
789 | I think this is a strange thing to want to do.
|
---|
790 | *** Arguments to find -mtime that are too large are now diagnosed
|
---|
791 | Previously, this just used to cause find just to do the wrong thing.
|
---|
792 | *** updatedb is now somewhat more robust
|
---|
793 | The updatedb shell script now does not generate an empty
|
---|
794 | database if it fails.
|
---|
795 | *** Sanity-check on some data read from locatedb
|
---|
796 | Locate now detects some types of file corruption in the
|
---|
797 | locate database.
|
---|
798 | *** The %k format specifier for -fprintf now works
|
---|
799 | This was broken in 4.1.20.
|
---|
800 | |
---|
801 |
|
---|
802 | * Major changes in release 4.1.20:
|
---|
803 | ** New maintainer, James Youngman <jay@gnu.org>
|
---|
804 | ** As far as I know, this is the first release after 4.1.7, but I've left
|
---|
805 | a gap just in case.
|
---|
806 | ** We now use an "imported" version of gnulib, rather than including
|
---|
807 | a copy of the gnulib code in our CVS repository. There are no
|
---|
808 | differences in the build instructions, though (unless you are
|
---|
809 | building directly from CVS, in which case please read the file
|
---|
810 | README-CVS).
|
---|
811 | ** There are no (deliberate) functional changes in version 4.1.20.
|
---|
812 | |
---|
813 |
|
---|
814 | * Major changes in release 4.1.7:
|
---|
815 | fix problem so that default "-print" is added when "-prune" is used.
|
---|
816 | security fixes related to directories changing while find is executing.
|
---|
817 | |
---|
818 |
|
---|
819 | * Major changes in release 4.1.6:
|
---|
820 | correct bug in prune.
|
---|
821 | added --ignore-case option for locate
|
---|
822 |
|
---|
823 | * Major changes in release 4.1.5:
|
---|
824 | Add support for large files
|
---|
825 |
|
---|
826 | * Major changes in release 4.1.4:
|
---|
827 | bug fixes, more up-to-date languages.
|
---|
828 |
|
---|
829 | * Major changes in release 4.1.3:
|
---|
830 | added internationalization and localization.
|
---|
831 |
|
---|
832 | * Major changes in release 4.1.1:
|
---|
833 | attempt at successful compilation on many platforms after years of neglect
|
---|
834 | "--existing" option added to locate "--prunefs" option added to updatedb
|
---|
835 |
|
---|
836 | * Major changes in release 4.1:
|
---|
837 |
|
---|
838 | ** Distribution renamed to findutils.
|
---|
839 | ** updatedb is now a user command, installed in $exec_prefix/bin
|
---|
840 | instead of $exec_prefix/libexec.
|
---|
841 | ** A few problems in Makefiles and testsuite corrected.
|
---|
842 | |
---|
843 |
|
---|
844 | * Major changes in release 4.0:
|
---|
845 |
|
---|
846 | ** Documentation:
|
---|
847 | *** Texinfo manual.
|
---|
848 | *** Man page for updatedb.
|
---|
849 | *** Man page for the locate database formats.
|
---|
850 |
|
---|
851 | ** find:
|
---|
852 | *** Takes less CPU time on long paths, because it uses chdir to descend
|
---|
853 | trees, so it does fewer inode lookups.
|
---|
854 | *** Does not get trapped in symbolic link loops when -follow is given.
|
---|
855 | *** Supports "-fstype afs" if you have /afs and /usr/afsws/include
|
---|
856 | and you configure using the --with-afs option.
|
---|
857 | *** New action -fls FILE; like -ls but writes to FILE.
|
---|
858 |
|
---|
859 | ** locate:
|
---|
860 | *** Supports a new database format, which is 8-bit clean and
|
---|
861 | allows machines with different byte orderings and integer sizes to
|
---|
862 | share the databases. The new locate can also detect and read the
|
---|
863 | old database format automatically. The new databases are typically
|
---|
864 | 30% or more larger than the old ones (due to allowing all 8 bits in
|
---|
865 | file names). Search times are approximately the same, or faster on
|
---|
866 | some systems.
|
---|
867 | *** Warns if a file name database is more than 8 days old.
|
---|
868 |
|
---|
869 | ** updatedb:
|
---|
870 | *** Takes command-line options.
|
---|
871 |
|
---|
872 | ** xargs:
|
---|
873 | *** Performance improved 10-20%.
|
---|
874 | *** The EOF string is not used when -0 is given.
|
---|
875 | *** Now has a test suite. Some minor bugs fixed as a result.
|
---|
876 | |
---|
877 |
|
---|
878 | * Major changes in release 3.8:
|
---|
879 |
|
---|
880 | ** case insensitive versions of -lname, -name, -path, -regex:
|
---|
881 | -ilname, -iname, -ipath, -iregex
|
---|
882 | ** %F directive for -printf, -fprintf to print file system type
|
---|
883 | |
---|
884 |
|
---|
885 | * Major changes in release 3.7:
|
---|
886 |
|
---|
887 | ** locate can search multiple databases
|
---|
888 | ** locate has an option to specify the database path
|
---|
889 | ** updatedb no longer goes into an infinite loop with some versions of tail
|
---|
890 |
|
---|
891 | --//--
|
---|
892 | This is used by Emacs' spell checker ispell.el:
|
---|
893 |
|
---|
894 | LocalWords: ansi knr strftime xargs updatedb sh fnmatch hin strcpy
|
---|
895 | LocalWords: lib getstr getline frcode bigram texi depcomp automake
|
---|
896 | LocalWords: strncasecmp strcasecmp LIBOBJS FUNC prunefs allout libexec
|
---|
897 | LocalWords: testsuite Texinfo chdir inode fstype afs fls ls EOF lname
|
---|
898 | LocalWords: regex ilname iname ipath iregex printf fprintf
|
---|
899 |
|
---|