new upstream release: findutils-4.5.10

This commit is contained in:
Kamil Dudka 2011-05-11 16:52:18 +02:00
parent e41051998e
commit ee3f03dfd5
9 changed files with 69 additions and 133 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
findutils-4.5.9.tar.gz findutils-4.5.9.tar.gz
/findutils-4.5.10.tar.gz

View File

@ -1,3 +1,13 @@
From dc92679e2c363f8c0d659fa428c138684455a6bd Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 11 May 2011 16:46:13 +0200
Subject: [PATCH 1/4] findutils-4.4.0-no-locate.patch
---
Makefile.am | 2 +-
doc/find.texi | 24 ++++++++----------------
2 files changed, 9 insertions(+), 17 deletions(-)
diff --git a/Makefile.am b/Makefile.am diff --git a/Makefile.am b/Makefile.am
index c7f8f39..0dacb93 100644 index c7f8f39..0dacb93 100644
--- a/Makefile.am --- a/Makefile.am
@ -12,7 +22,7 @@ index c7f8f39..0dacb93 100644
ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4 ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
diff --git a/doc/find.texi b/doc/find.texi diff --git a/doc/find.texi b/doc/find.texi
index d719ccb..b509f66 100644 index 1f278de..c584298 100644
--- a/doc/find.texi --- a/doc/find.texi
+++ b/doc/find.texi +++ b/doc/find.texi
@@ -7,7 +7,6 @@ @@ -7,7 +7,6 @@
@ -33,7 +43,7 @@ index d719ccb..b509f66 100644
@table @code @table @code
@item --database=@var{path} @item --database=@var{path}
@@ -2728,13 +2726,9 @@ thrashing the network. @@ -2825,13 +2823,9 @@ thrashing the network.
directories are indexed by each database file. directories are indexed by each database file.
The default location for the locate database depends on how findutils The default location for the locate database depends on how findutils
@ -50,7 +60,7 @@ index d719ccb..b509f66 100644
@node Database Formats @node Database Formats
@section Database Formats @section Database Formats
@@ -3213,8 +3207,7 @@ present. @@ -3310,8 +3304,7 @@ present.
@item --database=@var{path} @item --database=@var{path}
@itemx -d @var{path} @itemx -d @var{path}
@ -60,7 +70,7 @@ index d719ccb..b509f66 100644
name databases in @var{path}, which is a colon-separated list of name databases in @var{path}, which is a colon-separated list of
database file names. You can also use the environment variable database file names. You can also use the environment variable
@code{LOCATE_PATH} to set the list of database files to search. The @code{LOCATE_PATH} to set the list of database files to search. The
@@ -3399,8 +3392,7 @@ The environment variable @code{PRUNEFS} also sets this value. Default @@ -3496,8 +3489,7 @@ The environment variable @code{PRUNEFS} also sets this value. Default
is @file{nfs NFS proc}. is @file{nfs NFS proc}.
@item --output=@var{dbfile} @item --output=@var{dbfile}
@ -70,7 +80,7 @@ index d719ccb..b509f66 100644
@item --localuser=@var{user} @item --localuser=@var{user}
The user to search the non-network directories as, using @code{su}. The user to search the non-network directories as, using @code{su}.
@@ -5359,7 +5351,7 @@ See the description of the similar message for @code{find}. @@ -5491,7 +5483,7 @@ why @code{xargs} is confused by your operating system).
@section Error Messages From @code{locate} @section Error Messages From @code{locate}
@table @samp @table @samp
@ -79,7 +89,7 @@ index d719ccb..b509f66 100644
The @code{locate} program relies on a database which is periodically The @code{locate} program relies on a database which is periodically
built by the @code{updatedb} program. That hasn't happened in a long built by the @code{updatedb} program. That hasn't happened in a long
time. To fix this problem, run @code{updatedb} manually. This can time. To fix this problem, run @code{updatedb} manually. This can
@@ -5367,7 +5359,7 @@ often happen on systems that are generally not left on, so the @@ -5499,7 +5491,7 @@ often happen on systems that are generally not left on, so the
periodic ``cron'' task which normally does this doesn't get a chance periodic ``cron'' task which normally does this doesn't get a chance
to run. to run.
@ -88,3 +98,6 @@ index d719ccb..b509f66 100644
This should not happen. Re-run @code{updatedb}. If that works, but This should not happen. Re-run @code{updatedb}. If that works, but
@code{locate} still produces this error, run @code{locate --version} @code{locate} still produces this error, run @code{locate --version}
and @code{updatedb --version}. These should produce the same output. and @code{updatedb --version}. These should produce the same output.
--
1.7.4.4

View File

@ -1,5 +1,14 @@
From 113d6b31623db33fbea65e586f5bfaf1ea1c8d30 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 11 May 2011 16:46:32 +0200
Subject: [PATCH 2/4] findutils-4.4.2-autofs.patch
---
find/fstype.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 deletions(-)
diff --git a/find/fstype.c b/find/fstype.c diff --git a/find/fstype.c b/find/fstype.c
index 21c446b..502e208 100644 index c6dbe8b..9cbf620 100644
--- a/find/fstype.c --- a/find/fstype.c
+++ b/find/fstype.c +++ b/find/fstype.c
@@ -205,7 +205,72 @@ must_read_fs_list (bool need_fs_type) @@ -205,7 +205,72 @@ must_read_fs_list (bool need_fs_type)
@ -86,3 +95,6 @@ index 21c446b..502e208 100644
/* Don't cache unknown values. */ /* Don't cache unknown values. */
fstype_known = (type != NULL); fstype_known = (type != NULL);
--
1.7.4.4

View File

@ -1,3 +1,9 @@
From 17e470dc1acca4824b70328d733d5f99c12d0d65 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 11 May 2011 16:46:45 +0200
Subject: [PATCH 3/4] findutils-4.4.2-xautofs.patch
---
doc/find.texi | 4 ++++ doc/find.texi | 4 ++++
find/defs.h | 3 +++ find/defs.h | 3 +++
find/find.1 | 3 +++ find/find.1 | 3 +++
@ -7,7 +13,7 @@
6 files changed, 27 insertions(+), 1 deletions(-) 6 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/doc/find.texi b/doc/find.texi diff --git a/doc/find.texi b/doc/find.texi
index b509f66..3ce5b1e 100644 index c584298..9731b71 100644
--- a/doc/find.texi --- a/doc/find.texi
+++ b/doc/find.texi +++ b/doc/find.texi
@@ -1438,6 +1438,10 @@ them. @@ -1438,6 +1438,10 @@ them.
@ -36,7 +42,7 @@ index 11d1d00..f95ce72 100644
* no longer exists by the time we get around to processing it. * no longer exists by the time we get around to processing it.
*/ */
diff --git a/find/find.1 b/find/find.1 diff --git a/find/find.1 b/find/find.1
index 5da6ddf..82dc802 100644 index e851f82..a4799ff 100644
--- a/find/find.1 --- a/find/find.1
+++ b/find/find.1 +++ b/find/find.1
@@ -460,6 +460,9 @@ if standard input is a tty, and to @@ -460,6 +460,9 @@ if standard input is a tty, and to
@ -67,7 +73,7 @@ index 9fdb8ef..bd7cc37 100644
{ {
/* this is the preorder visit, but user said -depth */ /* this is the preorder visit, but user said -depth */
diff --git a/find/parser.c b/find/parser.c diff --git a/find/parser.c b/find/parser.c
index 3da5721..b14b59a 100644 index 52a1ef6..995aec3 100644
--- a/find/parser.c --- a/find/parser.c
+++ b/find/parser.c +++ b/find/parser.c
@@ -151,6 +151,7 @@ static bool parse_user (const struct parser_table*, char *argv[], int * @@ -151,6 +151,7 @@ static bool parse_user (const struct parser_table*, char *argv[], int *
@ -95,7 +101,7 @@ index 3da5721..b14b59a 100644
puts (_("\ puts (_("\
tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N\n\ tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N\n\
-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME\n\ -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME\n\
@@ -2795,6 +2797,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr) @@ -2800,6 +2802,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
} }
static bool static bool
@ -121,3 +127,6 @@ index 8577396..4d45f84 100644
p->ignore_readdir_race = false; p->ignore_readdir_race = false;
if (p->posixly_correct) if (p->posixly_correct)
--
1.7.4.4

BIN
findutils-4.5.10.tar.gz.sig Normal file

Binary file not shown.

View File

@ -1,12 +1,18 @@
From 1b7065f25457fea9f9ee7100437b12815b92a38c Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Wed, 11 May 2011 16:46:57 +0200
Subject: [PATCH 4/4] findutils-4.5.7-warnings.patch
---
find/pred.c | 6 +++--- find/pred.c | 6 +++---
xargs/xargs.c | 5 +++-- xargs/xargs.c | 5 +++--
2 files changed, 6 insertions(+), 5 deletions(-) 2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/find/pred.c b/find/pred.c diff --git a/find/pred.c b/find/pred.c
index e310eea..6eeaa42 100644 index 3acfe9f..ee3c245 100644
--- a/find/pred.c --- a/find/pred.c
+++ b/find/pred.c +++ b/find/pred.c
@@ -566,7 +566,7 @@ impl_pred_exec (const char *pathname, @@ -561,7 +561,7 @@ impl_pred_exec (const char *pathname,
struct predicate *pred_ptr) struct predicate *pred_ptr)
{ {
struct exec_val *execp = &pred_ptr->args.exec_vec; struct exec_val *execp = &pred_ptr->args.exec_vec;
@ -15,7 +21,7 @@ index e310eea..6eeaa42 100644
bool result; bool result;
const bool local = is_exec_in_local_dir (pred_ptr->pred_func); const bool local = is_exec_in_local_dir (pred_ptr->pred_func);
char *prefix; char *prefix;
@@ -665,7 +665,7 @@ impl_pred_exec (const char *pathname, @@ -660,7 +660,7 @@ impl_pred_exec (const char *pathname,
if (target != pathname) if (target != pathname)
{ {
assert (local); assert (local);
@ -24,7 +30,7 @@ index e310eea..6eeaa42 100644
} }
return result; return result;
} }
@@ -2111,7 +2111,7 @@ launch (struct buildcmd_control *ctl, void *usercontext, int argc, char **argv) @@ -2106,7 +2106,7 @@ launch (struct buildcmd_control *ctl, void *usercontext, int argc, char **argv)
} }
} }
@ -34,10 +40,10 @@ index e310eea..6eeaa42 100644
else else
execvp (argv[0], argv); execvp (argv[0], argv);
diff --git a/xargs/xargs.c b/xargs/xargs.c diff --git a/xargs/xargs.c b/xargs/xargs.c
index c53b5a9..a0d90a5 100644 index 3cc1832..35f6822 100644
--- a/xargs/xargs.c --- a/xargs/xargs.c
+++ b/xargs/xargs.c +++ b/xargs/xargs.c
@@ -1105,7 +1105,7 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char * @@ -1132,7 +1132,7 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char *
prep_child_for_exec (); prep_child_for_exec ();
@ -46,7 +52,7 @@ index c53b5a9..a0d90a5 100644
errno = E2BIG; errno = E2BIG;
else else
execvp (argv[0], argv); execvp (argv[0], argv);
@@ -1123,7 +1123,8 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char * @@ -1150,7 +1150,8 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char *
* utility if we run it, for POSIX compliance on the * utility if we run it, for POSIX compliance on the
* handling of exit values. * handling of exit values.
*/ */
@ -56,3 +62,6 @@ index c53b5a9..a0d90a5 100644
} }
close (fd[1]); close (fd[1]);
--
1.7.4.4

View File

@ -1,106 +0,0 @@
ChangeLog | 18 ++++++++++++++++++
NEWS | 4 ++++
find/pred.c | 10 ++++------
find/testsuite/find.gnu/execdir-multiple.exp | 1 +
lib/dircallback.c | 7 ++++++-
5 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ba12e93..e2451c4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2010-05-24 Kamil Dudka <kdudka@redhat.com>
+
+ Fix Savannah bug #29949, -execdir does not change working directory
+ * find/pred.c (record_exec_dir): Do not throw the execdir when not
+ working in the cumulative mode.
+ * find/testsuite/find.gnu/execdir-multiple.exp: Add a test-case for
+ the bug #29949.
+ * NEWS: Mention this bugfix.
+
+2010-05-07 Kamil Dudka <kdudka@redhat.com>
+
+ * lib/dircallback.c (run_in_dir): Make sure that if the callback
+ doesn't get run, the return value is nonzero. Make sure that if
+ the directory save/restore fails, we don't overwrite errno with a
+ random value (and hence report some unrelated and nonexistent
+ error, instead of the real problem). Restore the previous current
+ directory.
+
2010-04-29 James Youngman <jay@gnu.org>
Prepare for the release of findutils version 4.5.9.
diff --git a/NEWS b/NEWS
index e27a834..cae1eab 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,9 @@
GNU findutils NEWS - User visible changes. -*- outline -*- (allout)
+** Bug Fixes
+
+#29949: find -execdir does not change working directory
+
* Major changes in release 4.5.9, 2010-04-29
** Bug Fixes
diff --git a/find/pred.c b/find/pred.c
index 6eeaa42..0efb55f 100644
--- a/find/pred.c
+++ b/find/pred.c
@@ -528,13 +528,11 @@ initialise_wd_for_exec (struct exec_val *execp, int cwd_fd, const char *dir)
static bool
record_exec_dir (struct exec_val *execp)
{
- if (!execp->wd_for_exec)
+ /* working directory not already known, so must be a *dir variant,
+ and this must be the first arg we added. However, this may
+ be -execdir foo {} \; (i.e. not multiple). */
+ if (!execp->state.todo)
{
- /* working directory not already known, so must be a *dir variant,
- and this must be the first arg we added. However, this may
- be -execdir foo {} \; (i.e. not multiple). */
- assert (!execp->state.todo);
-
/* Record the WD. If we're using -L or fts chooses to do so for
any other reason, state.cwd_dir_fd may in fact not be the
directory containing the target file. When this happens,
diff --git a/find/testsuite/find.gnu/execdir-multiple.exp b/find/testsuite/find.gnu/execdir-multiple.exp
index 6d4bd66..495b93b 100644
--- a/find/testsuite/find.gnu/execdir-multiple.exp
+++ b/find/testsuite/find.gnu/execdir-multiple.exp
@@ -49,6 +49,7 @@ if { [ safe_path ] } {
}
set SKIP_OLD 1
+ find_start p {tmp -type f -empty -execdir sh ./runme \{\} \; } ""
find_start p {tmp -type f -empty -execdir sh ./runme \{\} + } ""
set SKIP_OLD 0
exec rm -rf tmp
diff --git a/lib/dircallback.c b/lib/dircallback.c
index 8497bee..c1e4088 100644
--- a/lib/dircallback.c
+++ b/lib/dircallback.c
@@ -37,7 +37,8 @@ int
run_in_dir (const struct saved_cwd *there,
int (*callback)(void*), void *usercontext)
{
- int err, saved_errno;
+ int err = -1;
+ int saved_errno = 0;
struct saved_cwd here;
if (0 == save_cwd (&here))
{
@@ -50,6 +51,10 @@ run_in_dir (const struct saved_cwd *there,
{
openat_restore_fail (errno);
}
+
+ if (restore_cwd (&here) != 0)
+ openat_restore_fail (errno);
+
free_cwd (&here);
}
else

View File

@ -1,7 +1,7 @@
Summary: The GNU versions of find utilities (find and xargs) Summary: The GNU versions of find utilities (find and xargs)
Name: findutils Name: findutils
Version: 4.5.9 Version: 4.5.10
Release: 3%{?dist} Release: 1%{?dist}
Epoch: 1 Epoch: 1
License: GPLv3+ License: GPLv3+
Group: Applications/File Group: Applications/File
@ -23,10 +23,6 @@ Patch3: findutils-4.4.2-xautofs.patch
# eliminate compile-time warnings # eliminate compile-time warnings
Patch4: findutils-4.5.7-warnings.patch Patch4: findutils-4.5.7-warnings.patch
# fix some bugs in handling of -execdir, including upstream commit 443487e
# and the proposed fix for https://savannah.gnu.org/bugs/index.php?29949
Patch5: findutils-4.5.9-execdir.patch
Requires(post): /sbin/install-info Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info Requires(preun): /sbin/install-info
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -53,7 +49,6 @@ useful for finding things on your system.
%patch2 -p1 %patch2 -p1
%patch3 -p1 %patch3 -p1
%patch4 -p1 %patch4 -p1
%patch5 -p1
# needed because of findutils-4.4.0-no-locate.patch # needed because of findutils-4.4.0-no-locate.patch
aclocal -I gnulib/m4 -I m4 aclocal -I gnulib/m4 -I m4
@ -103,7 +98,7 @@ rm -rf $RPM_BUILD_ROOT
%files -f %{name}.lang %files -f %{name}.lang
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc AUTHORS COPYING NEWS README THANKS TODO %doc AUTHORS COPYING NEWS README THANKS TODO ChangeLog
/bin/find /bin/find
%{_bindir}/find %{_bindir}/find
%{_bindir}/oldfind %{_bindir}/oldfind
@ -114,6 +109,9 @@ rm -rf $RPM_BUILD_ROOT
%{_infodir}/find-maint.info.gz %{_infodir}/find-maint.info.gz
%changelog %changelog
* Wed May 11 2011 Kamil Dudka <kdudka@redhat.com> - 1:4.5.10-1
- new upstream release
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.9-3 * Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

View File

@ -1 +1 @@
f0276639a824f57e78916d3c207ee618 findutils-4.5.9.tar.gz 06bd1e0c0026e134c591c07de83dd94b findutils-4.5.10.tar.gz