Subject: CVS commit: pkgsrc/sysutils/findutils
From: Thomas Klausner
Date: 2016-01-03 18:00:48
Message id: 20160103170048.D8BF6FBB5@cvs.NetBSD.org

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.

Files:
RevisionActionfile
1.36modifypkgsrc/sysutils/findutils/Makefile
1.13modifypkgsrc/sysutils/findutils/PLIST
1.19modifypkgsrc/sysutils/findutils/distinfo
1.8modifypkgsrc/sysutils/findutils/patches/patch-aa
1.2removepkgsrc/sysutils/findutils/patches/patch-ab
1.5removepkgsrc/sysutils/findutils/patches/patch-ag
1.4removepkgsrc/sysutils/findutils/patches/patch-ah
1.1removepkgsrc/sysutils/findutils/patches/patch-gnulib_lib_getdate.y