./sysutils/findutils, find, locate, updatedb, and xargs utilities

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.9.0, Package name: findutils-4.9.0, Maintainer: bouyer

The GNU Find Utilities are the basic directory searching utilities
of the GNU operating system. These programs are typically used in
conjunction with other programs to provide modular and powerful
directory search and file locating capabilities to other commands.

The tools supplied with this package are:

* find - search for files in a directory hierarchy
* locate - list files in databases that match a pattern
* updatedb - update a file name database
* xargs - build and execute command lines from standard input


Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)

Filesize: 1998.293 KB

Version history: (Expand)


CVS history: (Expand)


   2022-02-17 16:42:00 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
findutils: update to 4.9.0.

* Noteworthy changes in release 4.9.0 (2022-02-22) [stable]

** New features in find

  find now supports the -files0-from option to be able to safely pass an
  arbitrary number of starting points to the tool.  The option requires a file
  name as argument, or "-" to read from standard input.  The entries \ 
in that
  file have to be separated by NUL characters. [#60383]

** Changes in locate / updatedb

  updatedb now skips (fuse-mounted) s3fs filesystems by default,
  i.e., unless PRUNEFS is set.

** Bug Fixes

  'find -D stat -L ...' no longer determines SELinux security information as
  if the -L option was not given.
  [Bug present since the SELinux implementation in 4.5.6]

  'find -inum' and 'find -printf %i' now also work on platforms which allow
  the inode number Zero; e.g. the GNU/Hurd uses inode number 0 for /dev/console.
  Previously, find(1) would abort when visiting such a file.
  [Bug present since FINDUTILS_4_5_4-1.]

  findutils-4.8.0 failed to build on some MacOS versions.
  Fixed by a gnulib update. [#59972, #59991]

** Documentation Changes

  The find.1 man page and the Texinfo manual now show environment variables
  in a consistent style. [#59963]

  Furthermore, both add the description of the -printf format directive '%B',
  for a file's birth time, and its limitations. [#61327]

  The description of the -delete action has been improved and aligned among
  the manual page and the Texinfo documentation. [#61774]

  Various other documentation fixes - syntax issues and typos.
  [#61303, #60823, #61341]

  The output of 'find --help' now reads better.

  The HTML online manual is using the official GNU stylesheet again.

** Changes to the build process

  The find version without FTS, oldfind, has been completely removed.  It has
  not been installed since 4.5.18 (2015), and was only still used in tests.
   2021-10-26 13:20:30 by Nia Alarie | Files touched by this commit (630)
Log message:
sysutils: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes
   2021-10-16 02:51:18 by Ryo ONODERA | Files touched by this commit (4) | Package updated
Log message:
findutils: Update to 4.8.0

Changelog:
* Noteworthy changes in release 4.8.0 (2020-01-09) [stable]

** Changes in xargs

'xargs -t' no longer outputs a trailing blank to stderr after the last argument
of each constructed command line to be executed.  [#57291]

xargs now warns when more than one of the conflicting options --max-lines (-L,
-l), --replace (-i/-I) and --max-args (-n) are specified on the command line.
[#52137]

** Bug Fixes

find no longer crashes when an XFS filesystem is heavily changed during the run.
Discussed at: <https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html>

find -used works again.  This predicate was not working properly since adding
the support for sub-second timestamp resolution for various predicates in
FINDUTILS_4_3_3-1 back in 2007.
Discussed at: <https://lists.gnu.org/r/bug-findutils/2019-11/msg00010.html>

** Improvements

'find -D exec' now diagnoses all -exec, -execdir, -ok and -okdir runs including
the call arguments and the exit code of the launched process. [#59083]

** Documentation Changes

The documentation of 'find -printf %Ak' has been improved: it now refers to the
strftime(3) documentation for a complete list of supported conversion
specifiers, and documents the 'F' conversion specifier ('yyyy-mm-dd').

The man pages (find.1, locate.1, locatedb.5, updatedb.1, and xargs.1) now
consistently end with the sections "REPORTING BUGS", \ 
"COPYRIGHT" and "SEE ALSO",
with the latter referring to the online page on the GNU web server.

The "EXAMPLES" section in the find.1 man page now shows the examples \ 
in a better
structure and uses consistent formatting.

Various man page fixes - syntax issues and typos.
[#59745, #59330, #59012, #58193, #57807, #57775]

Other documentation changes:

#58654: doc: clarify that 'find -perm +MODE' is unrelated to umask

#58458: doc: improve section 'Hard links', especially fix the description
        regarding 'find -L -samefile FILE'.

#58205: find.1: clarify double dash '--' option

#58149: 'xargs --help' now mentions that --replace (-I, -i) splits the input
        at newline characters.

#57025: doc: enhance description of tests accepting numeric arguments in find.1
        [see also #49640].

#54730: Add additional valuable example of find -quit

#48135: Fix testsuite error on Hurd and BSD related to ln

#35253: Clarify descriptions of -printf %f, %h.

** Changes to the build process

The configure option --without-fts has been removed.  The attempt to use
it stopped configure with an error message since 4.5.18 (2015) anyway.

* Major changes in release 4.7.0, 2019-08-29

** Changes to locate / updatedb

Support for generating old-format databases (with updatedb
--old-format or updatedb --dbformat=old) has been removed.  The old
database format was deprecated in 2007 (and updatedb has warned about
this since that time).  The locate program will will read old-format
databases, though this support also will be removed.

The updatedb script now operates in the C locale only.  This means
that character encoding issues are now not likely to cause sort to
fail.  It also honours the TMPDIR environment variable if that was
set, and no longer sorts file names case-insensitively.

The (unspecified) order in which filenames are stored in the locate
database is now different to previous versions.  However, you should
not rely on locate's output appearing in any particular order in any
case.

** Improvements

All utilities now only show the full usage text when requested via
the --help option.  Previously, when the user passed invalid options
or arguments, the user's attention to the corresponding error
diagnostic was distracted by that lengthy text.

find now accepts multiple file type arguments to the -type and -xtype
options separated by comma ','.  For example, to search for symbolic
links and directories simply provide the shorter '-type l,d' instead
of the - yet more portable - '( -type l -o -type d )'.

find now diagnoses failures returned by readdir().  This bug was inherent
in the use of FTS.

find now exits in more cases immediately after the error diagnostic, i.e.,
without the following usage text, to make the former more eye-catching.

find now outputs a better hint in case the user passed an unquoted shell-
glob pattern to options like -name, i.e., when the offending argument is
an existing file.

find now supports the debug option '-D all' to include all of the other
debug options at once.

xargs now supports the -o, --open-tty option to reopen stdin as /dev/tty
in the child process before executing the command; useful to run an
interactive application.  Added for compatibility with BSD.

xargs now supports the GNU_FINDUTILS_FD_LEAK_CHECK environment
variable to enable/disable fd leak check.

'xargs -t' (--verbose) now properly quotes each part of the command to the
executed if needed when printing it to stderr; likewise -p (--interactive).

** Documentation Changes

Prefer https:// over http:// links where possible, e.g. for '*.gnu.org' servers.

Both find.1 and the find texinfo manual now consistently document all of the
'N', 'L' and '?' possibilities in '-printf %Y' output when the determination of
the type of a symlink target fails.

find.1 now correctly states the -prune has no effect when the -depth option is
given.  Before, it wrongly stated that -prune would return false in that case.

Some minor documentation improvements are listed in "Bug Fixes" below.

** Bug Fixes

#56820: find: improve diagnostic when a global option like -maxdepth is
        specified after another argument like a test, thus hopefully avoiding
        translation issues (at least French, German).

#56142: doc: fix bug #56142 by specifying which actions inhibit the
        default -print.

#55272: find: improve diagnostic when -name or -iname is used with a pattern
        containing a directory separator ('/'), suggesting to use -wholename
        or -iwholename respectively.

#54859: doc: fix typo in 'xargs -l' examples in texinfo manual.
        Change from 'xargs -1' (minus one) to 'xargs -l' (minus El) in 3 places.

#54838: doc: fix the examples of the -perm option in the texinfo documentation.
        The example '-perm -g+w,o+w' was misplaced.
        Bug present since FINDUTILS_4_2_27-1.

#54262: 'find -printf "%Y"' now correctly outputs 'N' for broken symlinks
        (ENOENT or ENOTDIR).  Previously, it output 'l' in such a case.
        Bug introduced while attempting to fix #29460 in version v4.5.8.

#54171: 'find -depth' now outputs the name of unreadable directories.
        Previously, FTS-based find missed to output those entries.
        Bug present since the FTS implementation in FINDUTILS_4_3_0-1.

#52981: find: the '-delete' action no longer complains about disappeared files
        when the '-ignore_readdir_race' option is given, too.  That action will
        also returns true in such a case now.

#52220: 'find -D' without any further argument no longer crashes.
        Bug present since the implementation of -D in FINDUTILS_4_3_1-1.

#51304: doc: use correct IEC unit prefixes in the documentation of 'find -size'.
        find(1) uses binary-based units for the suffixes 'k', 'M', and 'G' of
        the argument of the '-size' option: 1024, 1024*1024 and 1024^3.
        Therefore, the documentation should use the correct IEC prefixes
        kibibyte, mebibyte and gibibyte respectively (or their abbreviations
        'KiB', 'MiB' and 'GiB').

#50758: doc: fix the description of the -perm examples matching the permission
        mode "022" in find's texinfo manual: the match is for the \ 
file's group
        and 'other' mode bits instead of for user and group.
        Bug introduced when adding the -perm examples in FINDUTILS-4.2.11.

#50326: find no longer leaks memory for a recently added member in gnulib's
        mount list structure.

#50259: find -printf '%h' now outputs the correct path for arguments with one or
        more trailing slashes.  Previously, it would e.g. output "foo" \ 
instead
        of "." when "foo/" was passed; likewise, it would \ 
output "/user/xxx/"
        instead of "/user" when "/user/xxx//" was passed.
        Bug introduced in FINDUTILS-4.2.19.

#48180: find -noop (an internal option not intended to be exposed to the user)
        no longer crashes.  Bug introduced in FINDUTILS-4.3.1.

#48030: find -exec + does not pass all arguments for certain specific filename
        lengths.  After the internal (usually 128k) buffer is full and find(1)
        executed the given command with these arguments, it would miss to run
        the command yet another time if only one other file argument has to be
        processed.  Bug introduced in FINDUTILS-4.2.12.

#46784: frcode drops last char if no final newline

** Changes to the build process

The configure option --enable-id-cache has been removed.  It has been
a no-op since findnutils-4.5.15.

The configure option --enable-debug has been removed.  Debugging in
find is now controlled by its -D option only.

The configure option --enable-silent-rules is the default now.
Use --disable-silent-rules or "make V=1" to get verbose build output.

"make dist" no longer builds .tar.gz files.
xz is portable enough and in wide-enough use that distributing
only .tar.xz files is enough.

Maintainer builds from the Git repository now derive the version string from
the version control system instead of using a fixed string (changed after each
release manually).  As a result, the inter-release builds can now be
distinguished: e.g. "4.6.0.152-fe9c" is the 152th commit after the tag \ 
"v4.6.0"
and has the Git short hash "fe9c".  Builds from an unclean tree are \ 
marked with
the suffix "-dirty".

The translation files in the PO directory are no longer version controlled;
instead bootstrap auto-updates them from "translationproject.org" during a
maintainer build.

A shell-style test framework borrowed from GNU coreutils has been added.
This allows better tests with more control over stdin, stdout, stderr,
signals, preparatory steps, cleanup, return code verification, root-only
tests, etc.
   2021-10-07 16:58:44 by Nia Alarie | Files touched by this commit (630)
Log message:
sysutils: Remove SHA1 hashes for distfiles
   2020-01-19 00:36:14 by Roland Illig | Files touched by this commit (3046)
Log message:
all: migrate several HOMEPAGEs to https

pkglint --only "https instead of http" -r -F

With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.

This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
   2018-09-03 19:10:54 by Ryo ONODERA | Files touched by this commit (1)
Log message:
We no longer apply a patch to *.y files. So do not use bison as tool

Bump PKGREVISION.
   2016-05-02 07:18:47 by Richard PALO | Files touched by this commit (2) | Package updated
Log message:
pkg_admin check (an bmake check) notice that the target of the symlink
$LOCALBASE/gnu/bin/oldfind and its manpage is missing.

Indeed, oldfind was obsoleted in findutils 4.4.2.

PLIST and symlink generation is updated to reflect this.

bump PKGREVISION to pick up the change.
   2016-01-03 18:00:48 by Thomas Klausner | Files touched by this commit (8) | Package updated
Log message:
Update findutils to 4.6.0:

* 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.