Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Kamil Dudka | 5fa5d75808 | |
Kamil Dudka | 8338a51be8 |
|
@ -1 +1 @@
|
|||
/findutils-4.*.*.tar.?z
|
||||
/findutils-4.*.*.tar.gz
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
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 +-
|
||||
configure.ac | 2 --
|
||||
doc/find.texi | 24 ++++++++----------------
|
||||
3 files changed, 9 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index c7f8f39..0dacb93 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -9,7 +9,7 @@ DISTCLEANFILES = tool-versions.txt
|
||||
|
||||
|
||||
# "tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl tests build-aux lib find xargs locate doc po m4
|
||||
+SUBDIRS = gl tests build-aux lib find xargs doc po m4
|
||||
|
||||
ACLOCAL_AMFLAGS = -I gl/m4 -I m4
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f31dd37..431f0ce 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -253,8 +253,6 @@ find/testsuite/Makefile
|
||||
gl/Makefile
|
||||
gl/lib/Makefile
|
||||
lib/Makefile
|
||||
-locate/Makefile
|
||||
-locate/testsuite/Makefile
|
||||
m4/Makefile
|
||||
po/Makefile.in
|
||||
po/Makefile
|
||||
diff --git a/doc/find.texi b/doc/find.texi
|
||||
index 1f278de..c584298 100644
|
||||
--- a/doc/find.texi
|
||||
+++ b/doc/find.texi
|
||||
@@ -7,7 +7,6 @@
|
||||
@c %**end of header
|
||||
|
||||
@include version.texi
|
||||
-@include ../locate/dblocation.texi
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
@@ -571,8 +570,7 @@ the databases are updated, and the directories for which they contain
|
||||
entries.
|
||||
|
||||
Here is how to select which file name databases @code{locate}
|
||||
-searches. The default is system-dependent. At the time this document
|
||||
-was generated, the default was @file{@value{LOCATE_DB}}.
|
||||
+searches. The default is system-dependent.
|
||||
|
||||
@table @code
|
||||
@item --database=@var{path}
|
||||
@@ -2874,13 +2872,9 @@ thrashing the network.
|
||||
directories are indexed by each database file.
|
||||
|
||||
The default location for the locate database depends on how findutils
|
||||
-is built, but the findutils installation accompanying this manual uses
|
||||
-the default location @file{@value{LOCATE_DB}}.
|
||||
-
|
||||
-If no database exists at @file{@value{LOCATE_DB}} but the user did not
|
||||
-specify where to look (by using @samp{-d} or setting
|
||||
-@code{LOCATE_PATH}), then @code{locate} will also check for a
|
||||
-``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
||||
+is built. If user did not specify where to look (by using @samp{-d}
|
||||
+or setting @code{LOCATE_PATH}), then @code{locate} will also check for
|
||||
+a ``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
||||
|
||||
@node Database Formats
|
||||
@section Database Formats
|
||||
@@ -3423,8 +3417,7 @@ present.
|
||||
|
||||
@item --database=@var{path}
|
||||
@itemx -d @var{path}
|
||||
-Instead of searching the default @code{locate} database
|
||||
-@file{@value{LOCATE_DB}}, @code{locate} searches the file
|
||||
+@code{locate} searches the file
|
||||
name databases in @var{path}, which is a colon-separated list of
|
||||
database file names. You can also use the environment variable
|
||||
@code{LOCATE_PATH} to set the list of database files to search. The
|
||||
@@ -3599,8 +3592,7 @@ The environment variable @code{PRUNEFS} also sets this value. Default
|
||||
is @file{nfs NFS proc}.
|
||||
|
||||
@item --output=@var{dbfile}
|
||||
-The database file to build. The default is system-dependent, but
|
||||
-when this document was formatted it was @file{@value{LOCATE_DB}}.
|
||||
+The database file to build.
|
||||
|
||||
@item --localuser=@var{user}
|
||||
The user to search the non-network directories as, using @code{su}.
|
||||
@@ -5619,7 +5611,7 @@ why @code{xargs} is confused by your operating system).
|
||||
@section Error Messages From @code{locate}
|
||||
|
||||
@table @samp
|
||||
-@item warning: database @file{@value{LOCATE_DB}} is more than 8 days old
|
||||
+@item warning: database @file{LOCATE_DB} is more than 8 days old
|
||||
The @code{locate} program relies on a database which is periodically
|
||||
built by the @code{updatedb} program. That hasn't happened in a long
|
||||
time. To fix this problem, run @code{updatedb} manually. This can
|
||||
@@ -5627,7 +5619,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
|
||||
to run.
|
||||
|
||||
-@item locate database @file{@value{LOCATE_DB}} is corrupt or invalid
|
||||
+@item locate database @file{LOCATE_DB} is corrupt or invalid
|
||||
This should not happen. Re-run @code{updatedb}. If that works, but
|
||||
@code{locate} still produces this error, run @code{locate --version}
|
||||
and @code{updatedb --version}. These should produce the same output.
|
||||
--
|
||||
1.7.4.4
|
||||
|
|
@ -1,22 +1,22 @@
|
|||
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] findutils-4.4.2-xautofs.patch
|
||||
Subject: [PATCH 3/4] findutils-4.4.2-xautofs.patch
|
||||
|
||||
---
|
||||
doc/find.texi | 4 ++++
|
||||
find/defs.h | 3 +++
|
||||
find/find.1 | 3 +++
|
||||
find/ftsfind.c | 6 ++++++
|
||||
find/parser.c | 9 +++++++++
|
||||
find/util.c | 3 ++-
|
||||
find/parser.c | 11 ++++++++++-
|
||||
find/util.c | 1 +
|
||||
6 files changed, 27 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/doc/find.texi b/doc/find.texi
|
||||
index c584298..9731b71 100644
|
||||
--- a/doc/find.texi
|
||||
+++ b/doc/find.texi
|
||||
@@ -1606,6 +1606,10 @@ them.
|
||||
@@ -1436,6 +1436,10 @@ them.
|
||||
There are two ways to avoid searching certain filesystems. One way is
|
||||
to tell @code{find} to only search one filesystem:
|
||||
|
||||
|
@ -31,7 +31,7 @@ diff --git a/find/defs.h b/find/defs.h
|
|||
index 11d1d00..f95ce72 100644
|
||||
--- a/find/defs.h
|
||||
+++ b/find/defs.h
|
||||
@@ -562,6 +562,9 @@ struct options
|
||||
@@ -557,6 +557,9 @@ struct options
|
||||
/* If true, don't cross filesystem boundaries. */
|
||||
bool stay_on_filesystem;
|
||||
|
||||
|
@ -45,9 +45,9 @@ diff --git a/find/find.1 b/find/find.1
|
|||
index e851f82..a4799ff 100644
|
||||
--- a/find/find.1
|
||||
+++ b/find/find.1
|
||||
@@ -638,6 +638,9 @@ to stat them; this gives a significant increase in search speed.
|
||||
.IP "\-version, \-\-version"
|
||||
Print the \fBfind\fR version number and exit.
|
||||
@@ -461,6 +461,9 @@ if standard input is a tty, and to
|
||||
.B \-nowarn
|
||||
otherwise.
|
||||
|
||||
+.IP \-xautofs
|
||||
+Don't descend directories on autofs filesystems.
|
||||
|
@ -59,7 +59,7 @@ diff --git a/find/ftsfind.c b/find/ftsfind.c
|
|||
index 9fdb8ef..bd7cc37 100644
|
||||
--- a/find/ftsfind.c
|
||||
+++ b/find/ftsfind.c
|
||||
@@ -435,6 +435,12 @@ consider_visiting (FTS *p, FTSENT *ent)
|
||||
@@ -485,6 +485,12 @@ consider_visiting (FTS *p, FTSENT *ent)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -76,50 +76,50 @@ diff --git a/find/parser.c b/find/parser.c
|
|||
index 52a1ef6..995aec3 100644
|
||||
--- a/find/parser.c
|
||||
+++ b/find/parser.c
|
||||
@@ -139,6 +139,7 @@ static bool parse_used (const struct parser_table*, char *argv[], int *
|
||||
static bool parse_user (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
@@ -146,6 +146,7 @@ static bool parse_user (const struct parser_table*, char *argv[], int *
|
||||
static bool parse_version (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_wholename (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_xdev (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
+static bool parse_xautofs (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_ignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_noignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_warn (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
@@ -304,6 +305,7 @@ static struct parser_table const parse_table[] =
|
||||
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but now -path is standardized since POSIX 2008 */
|
||||
@@ -306,6 +307,7 @@ static struct parser_table const parse_table[] =
|
||||
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but anyway -path will soon be in POSIX */
|
||||
{ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */
|
||||
PARSE_OPTION ("xdev", xdev), /* POSIX */
|
||||
+ PARSE_OPTION ("xautofs", xautofs),
|
||||
PARSE_TEST ("xtype", xtype), /* GNU */
|
||||
#ifdef UNIMPLEMENTED_UNIX
|
||||
/* It's pretty ugly for find to know about archive formats.
|
||||
@@ -2607,6 +2609,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
return parse_noop (entry, argv, arg_ptr);
|
||||
@@ -1230,7 +1232,7 @@ operators (decreasing precedence; -and is implicit where no others are given):\n
|
||||
positional options (always true): -daystart -follow -regextype\n\n\
|
||||
normal options (always true, specified before other expressions):\n\
|
||||
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf\n\
|
||||
- --version -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
||||
+ --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
||||
puts (_("\
|
||||
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\
|
||||
@@ -2736,6 +2738,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
}
|
||||
|
||||
+static bool
|
||||
static bool
|
||||
+parse_xautofs (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
+{
|
||||
+ options.bypass_autofs = true;
|
||||
+ return parse_noop (entry, argv, arg_ptr);
|
||||
+}
|
||||
+
|
||||
static bool
|
||||
+static bool
|
||||
parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
{
|
||||
options.ignore_readdir_race = true;
|
||||
diff --git a/find/util.c b/find/util.c
|
||||
index 8577396..4d45f84 100644
|
||||
--- a/find/util.c
|
||||
+++ b/find/util.c
|
||||
@@ -183,7 +183,7 @@ Positional options (always true):\n\
|
||||
HTL (_("\n\
|
||||
Normal options (always true, specified before other expressions):\n\
|
||||
-depth -files0-from FILE -maxdepth LEVELS -mindepth LEVELS\n\
|
||||
- -mount -noleaf -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
||||
+ -mount -noleaf -xautofs -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
||||
HTL (_("\n\
|
||||
Tests (N can be +N or -N or N):\n\
|
||||
-amin N -anewer FILE -atime N -cmin N -cnewer FILE -context CONTEXT\n\
|
||||
@@ -1028,6 +1028,7 @@ set_option_defaults (struct options *p)
|
||||
@@ -1014,6 +1014,7 @@ set_option_defaults (struct options *p)
|
||||
|
||||
p->full_days = false;
|
||||
p->stay_on_filesystem = false;
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
From de69fd334b77ec578c2232574fc76222808148b0 Mon Sep 17 00:00:00 2001
|
||||
From: Ulrich Weigand <uweigand@de.ibm.com>
|
||||
Date: Fri, 30 May 2014 11:34:23 +0100
|
||||
Subject: [PATCH] isfinite, isinf, isnan tests: fix for little-endian PowerPC
|
||||
|
||||
* tests/test-isfinite.c (test_isfinitel): Only manipulate the
|
||||
first double of a PowerPC "double double" pair.
|
||||
* tests/test-isinf.c (test_isinfl): Likewise.
|
||||
* tests/test-isnan.c (test_long_double): Likewise.
|
||||
* tests/test-isnanl.h (main): Likewise.
|
||||
* tests/test-signbit.c (test_signbitl): Likewise.
|
||||
|
||||
[upstream commit e962c07c0c8bb18f9a5969cbf1ddb01d0fe4f55c]
|
||||
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
tests/test-isfinite.c | 9 +++++++++
|
||||
tests/test-isinf.c | 9 +++++++++
|
||||
tests/test-isnanl.h | 9 +++++++++
|
||||
3 files changed, 27 insertions(+)
|
||||
|
||||
diff --git a/tests/test-isfinite.c b/tests/test-isfinite.c
|
||||
index 828cd69..8e88b67 100644
|
||||
--- a/tests/test-isfinite.c
|
||||
+++ b/tests/test-isfinite.c
|
||||
@@ -152,6 +152,15 @@ test_isfinitel ()
|
||||
/* A bit pattern that is different from a Quiet NaN. With a bit of luck,
|
||||
it's a Signalling NaN. */
|
||||
{
|
||||
+#if defined __powerpc__ && LDBL_MANT_DIG == 106
|
||||
+ /* This is PowerPC "double double", a pair of two doubles. Inf and Nan are
|
||||
+ represented as the corresponding 64-bit IEEE values in the first double;
|
||||
+ the second is ignored. Manipulate only the first double. */
|
||||
+ #undef NWORDS
|
||||
+ #define NWORDS \
|
||||
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
|
||||
+#endif
|
||||
+
|
||||
memory_long_double m;
|
||||
m.value = zerol / zerol;
|
||||
# if LDBL_EXPBIT0_BIT > 0
|
||||
diff --git a/tests/test-isinf.c b/tests/test-isinf.c
|
||||
index 253f341..76c132e 100644
|
||||
--- a/tests/test-isinf.c
|
||||
+++ b/tests/test-isinf.c
|
||||
@@ -158,6 +158,15 @@ test_isinfl ()
|
||||
/* A bit pattern that is different from a Quiet NaN. With a bit of luck,
|
||||
it's a Signalling NaN. */
|
||||
{
|
||||
+#if defined __powerpc__ && LDBL_MANT_DIG == 106
|
||||
+ /* This is PowerPC "double double", a pair of two doubles. Inf and Nan are
|
||||
+ represented as the corresponding 64-bit IEEE values in the first double;
|
||||
+ the second is ignored. Manipulate only the first double. */
|
||||
+ #undef NWORDS
|
||||
+ #define NWORDS \
|
||||
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
|
||||
+#endif
|
||||
+
|
||||
memory_long_double m;
|
||||
m.value = zerol / zerol;
|
||||
# if LDBL_EXPBIT0_BIT > 0
|
||||
diff --git a/tests/test-isnanl.h b/tests/test-isnanl.h
|
||||
index 8a9e684..bf81630 100644
|
||||
--- a/tests/test-isnanl.h
|
||||
+++ b/tests/test-isnanl.h
|
||||
@@ -51,6 +51,15 @@ main ()
|
||||
/* A bit pattern that is different from a Quiet NaN. With a bit of luck,
|
||||
it's a Signalling NaN. */
|
||||
{
|
||||
+#if defined __powerpc__ && LDBL_MANT_DIG == 106
|
||||
+ /* This is PowerPC "double double", a pair of two doubles. Inf and Nan are
|
||||
+ represented as the corresponding 64-bit IEEE values in the first double;
|
||||
+ the second is ignored. Manipulate only the first double. */
|
||||
+ #undef NWORDS
|
||||
+ #define NWORDS \
|
||||
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
|
||||
+#endif
|
||||
+
|
||||
memory_long_double m;
|
||||
m.value = NaNl ();
|
||||
# if LDBL_EXPBIT0_BIT > 0
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
From 690d4bd9f29a805999a3ce4651dac9585ccc9917 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 11 May 2011 16:46:57 +0200
|
||||
Subject: [PATCH] findutils-4.5.7-warnings.patch
|
||||
Subject: [PATCH 1/2] findutils-4.5.7-warnings.patch
|
||||
|
||||
---
|
||||
xargs/xargs.c | 3 ++-
|
||||
|
@ -11,7 +11,7 @@ diff --git a/xargs/xargs.c b/xargs/xargs.c
|
|||
index 5e373f2..c0a8676 100644
|
||||
--- a/xargs/xargs.c
|
||||
+++ b/xargs/xargs.c
|
||||
@@ -1346,7 +1346,8 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char *
|
||||
@@ -1253,7 +1253,8 @@ xargs_do_exec (struct buildcmd_control *ctl, void *usercontext, int argc, char *
|
||||
* utility if we run it, for POSIX compliance on the
|
||||
* handling of exit values.
|
||||
*/
|
||||
|
@ -24,3 +24,30 @@ index 5e373f2..c0a8676 100644
|
|||
--
|
||||
1.7.1
|
||||
|
||||
|
||||
From c5654b9ca5f50daa1ca406ebd7b4546f24d00db6 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Mon, 23 Sep 2013 15:04:03 +0200
|
||||
Subject: [PATCH 2/2] parser: silence a [-Wmaybe-uninitialized] GCC warning
|
||||
|
||||
... caused by a missing model of error()
|
||||
---
|
||||
find/parser.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/find/parser.c b/find/parser.c
|
||||
index 89d8bcf..8c399d7 100644
|
||||
--- a/find/parser.c
|
||||
+++ b/find/parser.c
|
||||
@@ -2776,7 +2776,7 @@ insert_type (char **argv, int *arg_ptr,
|
||||
const struct parser_table *entry,
|
||||
PRED_FUNC which_pred)
|
||||
{
|
||||
- mode_t type_cell;
|
||||
+ mode_t type_cell /* to silence GCC warning */ = 0;
|
||||
struct predicate *our_pred;
|
||||
float rate = 0.5;
|
||||
const char *typeletter;
|
||||
--
|
||||
1.9.3
|
||||
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
From bf4d8abd7ae3624a13967275dcbaea19f6b6ceb5 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 11 Feb 2015 13:48:12 +0100
|
||||
Subject: [PATCH] fts: avoid crash when a cycle is added while traversing
|
||||
|
||||
This could be triggered by auto-mounting a recursive bind mount.
|
||||
Reported by Michael Chapman in: https://bugzilla.redhat.com/1188498
|
||||
* lib/fts.c (fts_read): Avoid removing the original hash table item
|
||||
when leaving a directory that caused a cycle, and preserve the FTS_DC
|
||||
flag.
|
||||
|
||||
Bug: https://bugzilla.redhat.com/1188498
|
||||
Bug: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/34867
|
||||
---
|
||||
gl/lib/fts.c | 13 ++++++++++---
|
||||
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index 500e92c..f76c015 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -1091,9 +1091,16 @@ cd_dot_dot:
|
||||
p->fts_errno = errno;
|
||||
SET(FTS_STOP);
|
||||
}
|
||||
- p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
|
||||
- if (p->fts_errno == 0)
|
||||
- LEAVE_DIR (sp, p, "3");
|
||||
+
|
||||
+ /* If the directory causes a cycle, preserve the FTS_DC flag and keep
|
||||
+ * the corresponding dev/ino pair in the hash table. It is going to be
|
||||
+ * removed when leaving the original directory.
|
||||
+ */
|
||||
+ if (p->fts_info != FTS_DC) {
|
||||
+ p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP;
|
||||
+ if (p->fts_errno == 0)
|
||||
+ LEAVE_DIR (sp, p, "3");
|
||||
+ }
|
||||
return ISSET(FTS_STOP) ? NULL : p;
|
||||
}
|
||||
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
From 16bc7d519ed81bc9427a4e28dd74b45e1595f960 Mon Sep 17 00:00:00 2001
|
||||
From: James Youngman <jay@gnu.org>
|
||||
Date: Tue, 19 Aug 2014 08:29:49 +0100
|
||||
Subject: [PATCH] Fix bug #42903: the print statement doesn't exist in Python
|
||||
3.
|
||||
|
||||
* find/testsuite/checklists.py (main): Avoid using the print
|
||||
statement as it is not compatible with Python 3. We use
|
||||
sys.stdout.write, since our needs here are simple.
|
||||
|
||||
Upstream-commit: d56af2e2d5902c5f8a1ef99073d925c7d3b253d2
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
find/testsuite/checklists.py | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/find/testsuite/checklists.py b/find/testsuite/checklists.py
|
||||
index 2a2fd10..63c9c16 100644
|
||||
--- a/find/testsuite/checklists.py
|
||||
+++ b/find/testsuite/checklists.py
|
||||
@@ -77,7 +77,8 @@ def main(args):
|
||||
dupes, configured = configured_file_names(args[1])
|
||||
with TemporaryWorkingDirectory(args[2]):
|
||||
actual = set(find_test_files(args[3:]))
|
||||
- print '%d test files configured for find, %s files on-disk' % (len(configured), len(actual))
|
||||
+ sys.stdout.write('%d test files configured for find, %s files on-disk'
|
||||
+ % (len(configured), len(actual)))
|
||||
problem_count = 0
|
||||
problem_count += report_problems(dupes, report_dupe)
|
||||
problem_count += report_problems(configured - actual, report_missing)
|
||||
--
|
||||
2.1.0
|
||||
|
Binary file not shown.
|
@ -0,0 +1,231 @@
|
|||
From 1fc080b7c1eac7fa8063273aaae6b80165c17fe0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||
Date: Sun, 20 Dec 2015 23:46:05 +0000
|
||||
Subject: [PATCH 1/5] fts: enable leaf optimization for XFS
|
||||
|
||||
XFS provides usable dirent.d_type only for DT_DIR,
|
||||
but the noleaf optimization still applies, as confirmed with:
|
||||
|
||||
test $(($(find . -maxdepth 1 -type d | wc -l) + 1)) = $(stat -c %h .)
|
||||
|
||||
Enabling this gives significant traversal speedup.
|
||||
Testing with find(1) gives:
|
||||
|
||||
$ time find/find-before /usr/share >/dev/null
|
||||
real 0m0.410s
|
||||
user 0m0.145s
|
||||
sys 0m0.266s
|
||||
|
||||
$ time find/find-after /usr/share >/dev/null
|
||||
real 0m0.278s
|
||||
user 0m0.147s
|
||||
sys 0m0.131s
|
||||
|
||||
* lib/fts.c (leaf_optimization_applies): Add XFS to the white list.
|
||||
|
||||
Upstream-commit: d459ec6a4f97001a57d9299143ea9a5f6b1f313b
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/fts.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index f76c015..fb720c0 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -663,6 +663,7 @@ fts_close (FTS *sp)
|
||||
# define S_MAGIC_TMPFS 0x1021994
|
||||
# define S_MAGIC_NFS 0x6969
|
||||
# define S_MAGIC_REISERFS 0x52654973
|
||||
+# define S_MAGIC_XFS 0x58465342
|
||||
# define S_MAGIC_PROC 0x9FA0
|
||||
|
||||
/* Return false if it is easy to determine the file system type of
|
||||
@@ -718,6 +719,7 @@ leaf_optimization_applies (int dir_fd)
|
||||
/* List here the file system types that lack usable dirent.d_type
|
||||
info, yet for which the optimization does apply. */
|
||||
case S_MAGIC_REISERFS:
|
||||
+ case S_MAGIC_XFS:
|
||||
return true;
|
||||
|
||||
case S_MAGIC_PROC:
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From 2f0dddbb01a70b2ae02797b315924de7e06c3d83 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 9 Dec 2015 07:34:56 +0100
|
||||
Subject: [PATCH 2/5] fts: ensure leaf optimization is used for NFS
|
||||
|
||||
NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
of large directories. See <https://bugzilla.redhat.com/1252549>
|
||||
* lib/fts.c (leaf_optimization_applies): Append NFS on the white list.
|
||||
|
||||
Upstream-commit: c97b8b9030de7c9a9f9f6d7dcdc3505c6b3f7f98
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/fts.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index fb720c0..d2d404f 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -716,6 +716,11 @@ leaf_optimization_applies (int dir_fd)
|
||||
|
||||
switch (fs_buf.f_type)
|
||||
{
|
||||
+ case S_MAGIC_NFS:
|
||||
+ /* NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
+ of large directories. See <https://bugzilla.redhat.com/1252549>. */
|
||||
+ return true;
|
||||
+
|
||||
/* List here the file system types that lack usable dirent.d_type
|
||||
info, yet for which the optimization does apply. */
|
||||
case S_MAGIC_REISERFS:
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From 1328926a705fdb4728c1f255dd368de928736d39 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 25 Sep 2015 16:09:39 +0200
|
||||
Subject: [PATCH 3/5] fts: introduce the FTS_NOLEAF flag
|
||||
|
||||
The flag is needed to implement the -noleaf option of find.
|
||||
* lib/fts.c (link_count_optimize_ok): Implement the FTS_NOLEAF flag.
|
||||
* lib/fts_.h (FTS_NOLEAF): New macro, shifted conflicting constants.
|
||||
---
|
||||
gl/lib/fts.c | 4 ++++
|
||||
gl/lib/fts_.h | 12 +++++++++---
|
||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index d2d404f..808466f 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -786,6 +786,10 @@ link_count_optimize_ok (FTSENT const *p)
|
||||
bool opt_ok;
|
||||
struct LCO_ent *t2;
|
||||
|
||||
+ if (ISSET(FTS_NOLEAF))
|
||||
+ /* leaf optimization explicitly disabled by the FTS_NOLEAF flag */
|
||||
+ return false;
|
||||
+
|
||||
/* If we're not in CWDFD mode, don't bother with this optimization,
|
||||
since the caller is not serious about performance. */
|
||||
if (!ISSET(FTS_CWDFD))
|
||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
||||
index 63d4b74..f1d519b 100644
|
||||
--- a/gl/lib/fts_.h
|
||||
+++ b/gl/lib/fts_.h
|
||||
@@ -149,10 +149,16 @@ typedef struct {
|
||||
from input path names during fts_open initialization. */
|
||||
# define FTS_VERBATIM 0x1000
|
||||
|
||||
-# define FTS_OPTIONMASK 0x1fff /* valid user option mask */
|
||||
+ /* Disable leaf optimization (which eliminates stat() calls during traversal,
|
||||
+ based on the count of nested directories stored in stat.st_nlink of each
|
||||
+ directory). Note that the optimization is by default enabled only for
|
||||
+ selected file systems, and only if the FTS_CWDFD flag is set. */
|
||||
+# define FTS_NOLEAF 0x2000
|
||||
|
||||
-# define FTS_NAMEONLY 0x2000 /* (private) child names only */
|
||||
-# define FTS_STOP 0x4000 /* (private) unrecoverable error */
|
||||
+# define FTS_OPTIONMASK 0x3fff /* valid user option mask */
|
||||
+
|
||||
+# define FTS_NAMEONLY 0x4000 /* (private) child names only */
|
||||
+# define FTS_STOP 0x8000 /* (private) unrecoverable error */
|
||||
int fts_options; /* fts_open options, global flags */
|
||||
|
||||
/* Map a directory's device number to a boolean. The boolean is
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From c186934e6e37ddadf7511abb9b1045192757618e Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 25 Sep 2015 19:13:15 +0200
|
||||
Subject: [PATCH 4/5] ftsfind: propagate the -noleaf option to FTS
|
||||
|
||||
* find/ftsfind.c (find): Propagate the -noleaf option to FTS.
|
||||
---
|
||||
find/ftsfind.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/find/ftsfind.c b/find/ftsfind.c
|
||||
index 5159470..e34b672 100644
|
||||
--- a/find/ftsfind.c
|
||||
+++ b/find/ftsfind.c
|
||||
@@ -559,6 +559,9 @@ find (char *arg)
|
||||
if (options.stay_on_filesystem)
|
||||
ftsoptions |= FTS_XDEV;
|
||||
|
||||
+ if (options.no_leaf_check)
|
||||
+ ftsoptions |= FTS_NOLEAF;
|
||||
+
|
||||
p = fts_open (arglist, ftsoptions, NULL);
|
||||
if (NULL == p)
|
||||
{
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From 2edb6204bab0acb0ef8cdde7499396afd9c66131 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?P=C3=A1draig=20Brady?= <P@draigBrady.com>
|
||||
Date: Mon, 18 Jan 2016 17:29:28 +0000
|
||||
Subject: [PATCH 5/5] fts: don't unconditionally use leaf optimization for NFS
|
||||
|
||||
NFS st_nlink are not accurate on all implementations,
|
||||
leading to aborts() if that assumption is made.
|
||||
See <https://bugzilla.redhat.com/1299169>
|
||||
* lib/fts.c (leaf_optimization_applies): Remove NFS from
|
||||
the white list, and document the issue.
|
||||
|
||||
Upstream-commit: 85717b68b03bf85016c5079fbbf0c8aa2b182ba6
|
||||
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||
---
|
||||
gl/lib/fts.c | 19 ++++++++++---------
|
||||
1 file changed, 10 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index 55cd554..6e1eaf5 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -718,22 +718,23 @@ leaf_optimization_applies (int dir_fd)
|
||||
|
||||
switch (fs_buf.f_type)
|
||||
{
|
||||
- case S_MAGIC_NFS:
|
||||
- /* NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
- of large directories. See <https://bugzilla.redhat.com/1252549>. */
|
||||
- return true;
|
||||
-
|
||||
/* List here the file system types that lack usable dirent.d_type
|
||||
info, yet for which the optimization does apply. */
|
||||
case S_MAGIC_REISERFS:
|
||||
case S_MAGIC_XFS:
|
||||
return true;
|
||||
|
||||
+ /* Explicitly list here any other file system type for which the
|
||||
+ optimization is not applicable, but need documentation. */
|
||||
+ case S_MAGIC_NFS:
|
||||
+ /* NFS provides usable dirent.d_type but not necessarily for all entries
|
||||
+ of large directories, so as per <https://bugzilla.redhat.com/1252549>
|
||||
+ NFS should return true. However st_nlink values are not accurate on
|
||||
+ all implementations as per <https://bugzilla.redhat.com/1299169>. */
|
||||
+ /* fall through */
|
||||
case S_MAGIC_PROC:
|
||||
- /* Explicitly listing this or any other file system type for which
|
||||
- the optimization is not applicable is not necessary, but we leave
|
||||
- it here to document the risk. Per http://bugs.debian.org/143111,
|
||||
- /proc may have bogus stat.st_nlink values. */
|
||||
+ /* Per <http://bugs.debian.org/143111> /proc may have
|
||||
+ bogus stat.st_nlink values. */
|
||||
/* fall through */
|
||||
default:
|
||||
return false;
|
||||
--
|
||||
2.5.5
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
From 3e5e311d23ac0a5bd5930ddb4094f7555b886329 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Sat, 19 Dec 2015 22:56:40 +0100
|
||||
Subject: [PATCH 1/2] Revert "Don't include dblocation.texi from original spot,
|
||||
symlink it."
|
||||
|
||||
This reverts commit f59d88e456553dfe0b5185caf75e4041285fd595.
|
||||
---
|
||||
doc/Makefile.am | 7 +------
|
||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||
index f6f7443..6fbf57b 100644
|
||||
--- a/doc/Makefile.am
|
||||
+++ b/doc/Makefile.am
|
||||
@@ -16,11 +16,9 @@ AM_CFLAGS = $(WARN_CFLAGS)
|
||||
|
||||
info_TEXINFOS = find.texi find-maint.texi
|
||||
find_TEXINFOS = perm.texi parse-datetime.texi regexprops.texi fdl.texi
|
||||
-BUILT_SOURCES = dblocation.texi
|
||||
-nodist_find_TEXINFOS = dblocation.texi
|
||||
find_maint_TEXINFOS = fdl.texi
|
||||
MOSTLYCLEANFILES = find.cps
|
||||
-CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz dblocation.texi \
|
||||
+CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz \
|
||||
find_mono.html findutils.texi_html_node.tar.gz \
|
||||
find-info.tar.gz find.texi.tar.gz \
|
||||
find.txt tmp-doc-install find_mono.html.gz
|
||||
@@ -73,9 +71,6 @@ findutils.texi_html_node.tar.gz: find.html
|
||||
tar zcf $@ find.html
|
||||
|
||||
|
||||
-dblocation.texi: ../locate/dblocation.texi
|
||||
- $(LN_S) ../locate/dblocation.texi $@
|
||||
-
|
||||
find-info.tar.gz:
|
||||
$(MKDIR_P) tmp-doc-install/info
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From d5473caa86f689ebcadacc593f5a71781c99e829 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Wed, 11 May 2011 16:46:13 +0200
|
||||
Subject: [PATCH 2/2] findutils-4.4.0-no-locate.patch
|
||||
|
||||
---
|
||||
Makefile.am | 2 +-
|
||||
configure.ac | 2 --
|
||||
doc/find.texi | 24 ++++++++----------------
|
||||
tests/local.mk | 2 +-
|
||||
4 files changed, 10 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index af82d54..6ad453b 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -35,7 +35,7 @@ DISTCLEANFILES = tool-versions.txt
|
||||
|
||||
|
||||
# "gnulib-tests" is the gnulib unit test dir.
|
||||
-SUBDIRS = gl build-aux lib find xargs locate doc po m4 gnulib-tests
|
||||
+SUBDIRS = gl build-aux lib find xargs doc po m4 gnulib-tests
|
||||
|
||||
ALL_RECURSIVE_TARGETS =
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index ce0e768..521e665 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -309,8 +309,6 @@ find/testsuite/Makefile
|
||||
gl/Makefile
|
||||
gl/lib/Makefile
|
||||
lib/Makefile
|
||||
-locate/Makefile
|
||||
-locate/testsuite/Makefile
|
||||
m4/Makefile
|
||||
po/Makefile.in
|
||||
po/Makefile
|
||||
diff --git a/doc/find.texi b/doc/find.texi
|
||||
index c2714dd..01367a4 100644
|
||||
--- a/doc/find.texi
|
||||
+++ b/doc/find.texi
|
||||
@@ -7,7 +7,6 @@
|
||||
@c @setchapternewpage odd
|
||||
@c %**end of header
|
||||
|
||||
-@include dblocation.texi
|
||||
|
||||
@iftex
|
||||
@finalout
|
||||
@@ -661,8 +660,7 @@ the databases are updated, and the directories for which they contain
|
||||
entries.
|
||||
|
||||
Here is how to select which file name databases @code{locate}
|
||||
-searches. The default is system-dependent. At the time this document
|
||||
-was generated, the default was @file{@value{LOCATE_DB}}.
|
||||
+searches. The default is system-dependent.
|
||||
|
||||
@table @code
|
||||
@item --database=@var{path}
|
||||
@@ -3112,13 +3110,9 @@ thrashing the network.
|
||||
directories are indexed by each database file.
|
||||
|
||||
The default location for the locate database depends on how findutils
|
||||
-is built, but the findutils installation accompanying this manual uses
|
||||
-the default location @file{@value{LOCATE_DB}}.
|
||||
-
|
||||
-If no database exists at @file{@value{LOCATE_DB}} but the user did not
|
||||
-specify where to look (by using @samp{-d} or setting
|
||||
-@env{LOCATE_PATH}), then @code{locate} will also check for a
|
||||
-``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
||||
+is built. If user did not specify where to look (by using @samp{-d}
|
||||
+or setting @code{LOCATE_PATH}), then @code{locate} will also check for
|
||||
+a ``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
||||
|
||||
@node Database Formats
|
||||
@section Database Formats
|
||||
@@ -3627,8 +3621,7 @@ present.
|
||||
|
||||
@item --database=@var{path}
|
||||
@itemx -d @var{path}
|
||||
-Instead of searching the default @code{locate} database
|
||||
-@file{@value{LOCATE_DB}}, @code{locate} searches the file
|
||||
+@code{locate} searches the file
|
||||
name databases in @var{path}, which is a colon-separated list of
|
||||
database file names. You can also use the environment variable
|
||||
@env{LOCATE_PATH} to set the list of database files to search. The
|
||||
@@ -3803,8 +3796,7 @@ The environment variable @env{PRUNEFS} also sets this value. Default
|
||||
is @file{nfs NFS proc}.
|
||||
|
||||
@item --output=@var{dbfile}
|
||||
-The database file to build. The default is system-dependent, but
|
||||
-when this document was formatted it was @file{@value{LOCATE_DB}}.
|
||||
+The database file to build.
|
||||
|
||||
@item --localuser=@var{user}
|
||||
The user to search the non-network directories as, using @code{su}.
|
||||
@@ -5828,7 +5820,7 @@ See the manual of the system call @code{dup2(2)}.
|
||||
@section Error Messages From @code{locate}
|
||||
|
||||
@table @samp
|
||||
-@item warning: database @file{@value{LOCATE_DB}} is more than 8 days old
|
||||
+@item warning: database @file{LOCATE_DB} is more than 8 days old
|
||||
The @code{locate} program relies on a database which is periodically
|
||||
built by the @code{updatedb} program. That hasn't happened in a long
|
||||
time. To fix this problem, run @code{updatedb} manually. This can
|
||||
@@ -5836,7 +5828,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
|
||||
to run.
|
||||
|
||||
-@item locate database @file{@value{LOCATE_DB}} is corrupt or invalid
|
||||
+@item locate database @file{LOCATE_DB} is corrupt or invalid
|
||||
This should not happen. Re-run @code{updatedb}. If that works, but
|
||||
@code{locate} still produces this error, run @code{locate --version}
|
||||
and @code{updatedb --version}. These should produce the same output.
|
||||
diff --git a/tests/local.mk b/tests/local.mk
|
||||
index 7e52a04..ae08a56 100644
|
||||
--- a/tests/local.mk
|
||||
+++ b/tests/local.mk
|
||||
@@ -15,7 +15,7 @@
|
||||
## You should have received a copy of the GNU General Public License
|
||||
## along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
-built_programs = find xargs frcode locate updatedb
|
||||
+built_programs = find xargs
|
||||
|
||||
# Indirections required so that we'll still be able to know the
|
||||
# complete list of our tests even if the user overrides TESTS
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,122 +0,0 @@
|
|||
From 547e7145f335dc07144f35eaacc520475068852e Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 30 Aug 2019 10:22:22 +0200
|
||||
Subject: [PATCH 1/3] Revert "fts: cleanup after FTS_NOATIME removal"
|
||||
|
||||
This reverts commit dce8759f0f0236a860a3e68b63c5e99cc6f168f9.
|
||||
---
|
||||
gl/lib/fts_.h | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
||||
index fb5558f..0122262 100644
|
||||
--- a/gl/lib/fts_.h
|
||||
+++ b/gl/lib/fts_.h
|
||||
@@ -149,14 +149,16 @@ typedef struct {
|
||||
dirent.d_type data. */
|
||||
# define FTS_DEFER_STAT 0x0400
|
||||
|
||||
+/* 0x0800 unused, was non-working FTS_NOATIME */
|
||||
+
|
||||
/* Use this flag to disable stripping of trailing slashes
|
||||
from input path names during fts_open initialization. */
|
||||
-# define FTS_VERBATIM 0x0800
|
||||
+# define FTS_VERBATIM 0x1000
|
||||
|
||||
-# define FTS_OPTIONMASK 0x0fff /* valid user option mask */
|
||||
+# define FTS_OPTIONMASK 0x1fff /* valid user option mask */
|
||||
|
||||
-# define FTS_NAMEONLY 0x1000 /* (private) child names only */
|
||||
-# define FTS_STOP 0x2000 /* (private) unrecoverable error */
|
||||
+# define FTS_NAMEONLY 0x2000 /* (private) child names only */
|
||||
+# define FTS_STOP 0x4000 /* (private) unrecoverable error */
|
||||
int fts_options; /* fts_open options, global flags */
|
||||
|
||||
/* Map a directory's device number to a boolean. The boolean is
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
||||
From 1328926a705fdb4728c1f255dd368de928736d39 Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 25 Sep 2015 16:09:39 +0200
|
||||
Subject: [PATCH 2/3] fts: introduce the FTS_NOLEAF flag
|
||||
|
||||
The flag is needed to implement the -noleaf option of find.
|
||||
* lib/fts.c (link_count_optimize_ok): Implement the FTS_NOLEAF flag.
|
||||
* lib/fts_.h (FTS_NOLEAF): New macro, shifted conflicting constants.
|
||||
---
|
||||
gl/lib/fts.c | 4 ++++
|
||||
gl/lib/fts_.h | 12 +++++++++---
|
||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
||||
index d2d404f..808466f 100644
|
||||
--- a/gl/lib/fts.c
|
||||
+++ b/gl/lib/fts.c
|
||||
@@ -706,6 +706,10 @@ filesystem_type (FTSENT const *p, int fd)
|
||||
struct dev_type *ent;
|
||||
struct statfs fs_buf;
|
||||
|
||||
+ if (ISSET(FTS_NOLEAF))
|
||||
+ /* leaf optimization explicitly disabled by the FTS_NOLEAF flag */
|
||||
+ return 0;
|
||||
+
|
||||
/* If we're not in CWDFD mode, don't bother with this optimization,
|
||||
since the caller is not serious about performance. */
|
||||
if (!ISSET (FTS_CWDFD))
|
||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
||||
index 63d4b74..f1d519b 100644
|
||||
--- a/gl/lib/fts_.h
|
||||
+++ b/gl/lib/fts_.h
|
||||
@@ -155,10 +155,16 @@ typedef struct {
|
||||
from input path names during fts_open initialization. */
|
||||
# define FTS_VERBATIM 0x1000
|
||||
|
||||
-# define FTS_OPTIONMASK 0x1fff /* valid user option mask */
|
||||
+ /* Disable leaf optimization (which eliminates stat() calls during traversal,
|
||||
+ based on the count of nested directories stored in stat.st_nlink of each
|
||||
+ directory). Note that the optimization is by default enabled only for
|
||||
+ selected file systems, and only if the FTS_CWDFD flag is set. */
|
||||
+# define FTS_NOLEAF 0x2000
|
||||
|
||||
-# define FTS_NAMEONLY 0x2000 /* (private) child names only */
|
||||
-# define FTS_STOP 0x4000 /* (private) unrecoverable error */
|
||||
+# define FTS_OPTIONMASK 0x3fff /* valid user option mask */
|
||||
+
|
||||
+# define FTS_NAMEONLY 0x4000 /* (private) child names only */
|
||||
+# define FTS_STOP 0x8000 /* (private) unrecoverable error */
|
||||
int fts_options; /* fts_open options, global flags */
|
||||
|
||||
/* Map a directory's device number to a boolean. The boolean is
|
||||
--
|
||||
2.5.0
|
||||
|
||||
|
||||
From c186934e6e37ddadf7511abb9b1045192757618e Mon Sep 17 00:00:00 2001
|
||||
From: Kamil Dudka <kdudka@redhat.com>
|
||||
Date: Fri, 25 Sep 2015 19:13:15 +0200
|
||||
Subject: [PATCH 3/3] ftsfind: propagate the -noleaf option to FTS
|
||||
|
||||
* find/ftsfind.c (find): Propagate the -noleaf option to FTS.
|
||||
---
|
||||
find/ftsfind.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/find/ftsfind.c b/find/ftsfind.c
|
||||
index 5159470..e34b672 100644
|
||||
--- a/find/ftsfind.c
|
||||
+++ b/find/ftsfind.c
|
||||
@@ -509,6 +509,9 @@ find (char *arg)
|
||||
if (options.stay_on_filesystem)
|
||||
ftsoptions |= FTS_XDEV;
|
||||
|
||||
+ if (options.no_leaf_check)
|
||||
+ ftsoptions |= FTS_NOLEAF;
|
||||
+
|
||||
p = fts_open (arglist, ftsoptions, NULL);
|
||||
if (NULL == p)
|
||||
{
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
From 129f23ce758620fade812baab811379ce8454048 Mon Sep 17 00:00:00 2001
|
||||
From: rpm-build <rpm-build>
|
||||
Date: Fri, 27 Jan 2017 11:44:41 +0100
|
||||
Subject: [PATCH] test-lock: disable the rwlock test
|
||||
|
||||
It hangs indefinitely if the system rwlock implementation does not
|
||||
prevent writer starvation (and glibc does not implement it).
|
||||
|
||||
Bug: http://www.mail-archive.com/bug-gnulib@gnu.org/msg33017.html
|
||||
---
|
||||
gnulib-tests/test-lock.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gnulib-tests/test-lock.c b/gnulib-tests/test-lock.c
|
||||
index a992f64..fd9c014 100644
|
||||
--- a/gnulib-tests/test-lock.c
|
||||
+++ b/gnulib-tests/test-lock.c
|
||||
@@ -42,7 +42,7 @@
|
||||
Uncomment some of these, to verify that all tests crash if no locking
|
||||
is enabled. */
|
||||
#define DO_TEST_LOCK 1
|
||||
-#define DO_TEST_RWLOCK 1
|
||||
+#define DO_TEST_RWLOCK 0
|
||||
#define DO_TEST_RECURSIVE_LOCK 1
|
||||
#define DO_TEST_ONCE 1
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEzBAABCAAdFiEEpRidtpwRZNMwApNmRlAu95aRcZUFAmH50AcACgkQRlAu95aR
|
||||
cZU/DQgAjt38b5+7CREWR7rk9y/NRvc+xAg7wMfwjt90cAycjRZ7hMVviB7R+MhO
|
||||
1rrV+4UkKCYzBzks5FIhN00IwmXoe0VPeH17ATtSB6c70rBNwHE7CWcGz2cnqHBQ
|
||||
CzPBy3hXEq7YY1kq7bfZCkTTEnxve9eKrgoczj/NpxvxoRkLmXzzKd0ChvHLlYJl
|
||||
m0GrPAl81eUF2vYIo5/9F28AR2mfCv1cwzsb1Ch3WEXqZB2tcIKsocrO4AVVpkmD
|
||||
o1pmPZa1FTKPI4YdBOlOuWUYkf6rD7WEKTcFmXrafkPlzhY4HJyN35XslAllJg6w
|
||||
81EbRarQvxrVDuxoS0jnx0oMvV7jxg==
|
||||
=hp30
|
||||
-----END PGP SIGNATURE-----
|
248
findutils.spec
248
findutils.spec
|
@ -1,27 +1,37 @@
|
|||
Summary: The GNU versions of find utilities (find and xargs)
|
||||
Name: findutils
|
||||
Version: 4.9.0
|
||||
Release: 2%{?dist}
|
||||
Version: 4.5.14
|
||||
Release: 7%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv3+
|
||||
URL: https://www.gnu.org/software/findutils/
|
||||
Source0: https://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||
Group: Applications/File
|
||||
URL: http://www.gnu.org/software/findutils/
|
||||
Source0: ftp://alpha.gnu.org/gnu/findutils/%{name}-%{version}.tar.gz
|
||||
|
||||
# do not build locate
|
||||
Patch1: findutils-4.5.15-no-locate.patch
|
||||
Patch1: findutils-4.4.0-no-locate.patch
|
||||
|
||||
# add -xautofs option to not descend into directories on autofs file systems
|
||||
Patch2: findutils-4.4.2-xautofs.patch
|
||||
# fix a crash triggered by recursive bind mount (#1188498)
|
||||
Patch2: findutils-4.5.14-fts-cycle.patch
|
||||
|
||||
# add a new option -xautofs to find to not descend into directories on autofs
|
||||
# file systems
|
||||
Patch3: findutils-4.4.2-xautofs.patch
|
||||
|
||||
# eliminate compile-time warnings
|
||||
Patch3: findutils-4.5.13-warnings.patch
|
||||
Patch4: findutils-4.5.13-warnings.patch
|
||||
|
||||
# test-lock: disable the rwlock test
|
||||
Patch4: findutils-4.6.0-test-lock.patch
|
||||
# eliminate failure of gnulib tests on little-endian PowerPC (#1083145)
|
||||
Patch5: findutils-4.5.12-ppc-gnulib-tests.patch
|
||||
|
||||
# implement the -noleaf option of find (#1252549)
|
||||
Patch5: findutils-4.6.0-leaf-opt.patch
|
||||
# make the test-suite ready for Python 3
|
||||
Patch6: findutils-4.5.14-python3.patch
|
||||
|
||||
# enable leaf optimization for XFS and NFS (#1252549)
|
||||
Patch8: findutils-4.5.15-leaf-opt.patch
|
||||
|
||||
Requires(post): /sbin/install-info
|
||||
Requires(preun): /sbin/install-info
|
||||
Conflicts: filesystem < 3
|
||||
Provides: /bin/find
|
||||
Provides: bundled(gnulib)
|
||||
|
@ -29,10 +39,7 @@ Provides: bundled(gnulib)
|
|||
BuildRequires: automake
|
||||
BuildRequires: dejagnu
|
||||
BuildRequires: gettext-devel
|
||||
BuildRequires: gcc
|
||||
BuildRequires: git
|
||||
BuildRequires: libselinux-devel
|
||||
BuildRequires: make
|
||||
BuildRequires: texinfo
|
||||
|
||||
%description
|
||||
|
@ -47,208 +54,69 @@ You should install findutils because it includes tools that are very
|
|||
useful for finding things on your system.
|
||||
|
||||
%prep
|
||||
%autosetup -N -S git
|
||||
%setup -q
|
||||
rm -rf locate
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch8 -p1
|
||||
|
||||
# drop the source code of locate
|
||||
git rm -q -r locate
|
||||
git commit -q -m "drop the source code of locate"
|
||||
|
||||
# remove ignored files from git and mark them as ignored
|
||||
tee -a .gitignore << EOF
|
||||
*~
|
||||
Makefile.in
|
||||
/aclocal.m4
|
||||
/autom4te.cache
|
||||
/build
|
||||
/configure
|
||||
/doc/find.info*
|
||||
/doc/stamp-vti
|
||||
/doc/version.texi
|
||||
EOF
|
||||
git rm -q -r --cached .
|
||||
git add --all .
|
||||
git commit -m "remove ignored files from git"
|
||||
|
||||
# apply all patches
|
||||
%autopatch
|
||||
|
||||
# needed because of findutils-4.5.15-no-locate.patch
|
||||
autoreconf -fiv
|
||||
git add --all .
|
||||
git commit -q -m "after invocation of autoreconf"
|
||||
# needed because of findutils-4.4.0-no-locate.patch
|
||||
autoreconf -iv
|
||||
|
||||
%build
|
||||
# disable -flto on ppc64le to make test-float pass (#1789115)
|
||||
%ifarch ppc64le
|
||||
export CFLAGS="$RPM_OPT_FLAGS -fno-lto"
|
||||
%endif
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
%global _configure ../configure
|
||||
%configure
|
||||
|
||||
%make_build
|
||||
# uncomment to turn off optimizations
|
||||
#find -name Makefile | xargs sed -i 's/-O2/-O0/'
|
||||
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%check
|
||||
make %{?_smp_mflags} check -C build V=1
|
||||
make check
|
||||
|
||||
%install
|
||||
%make_install -C build
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
|
||||
rm -f %{buildroot}%{_infodir}/dir
|
||||
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
%post
|
||||
if [ -f %{_infodir}/find.info.gz ]; then
|
||||
/sbin/install-info %{_infodir}/find.info.gz %{_infodir}/dir || :
|
||||
fi
|
||||
|
||||
%preun
|
||||
if [ $1 = 0 ]; then
|
||||
if [ -f %{_infodir}/find.info.gz ]; then
|
||||
/sbin/install-info --delete %{_infodir}/find.info.gz %{_infodir}/dir || :
|
||||
fi
|
||||
fi
|
||||
|
||||
%files -f %{name}.lang
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
%license COPYING
|
||||
%doc AUTHORS NEWS README THANKS TODO
|
||||
%{_bindir}/find
|
||||
%{_bindir}/oldfind
|
||||
%{_bindir}/xargs
|
||||
%{_mandir}/man1/find.1*
|
||||
%{_mandir}/man1/oldfind.1*
|
||||
%{_mandir}/man1/xargs.1*
|
||||
%{_infodir}/find.info*
|
||||
%{_infodir}/find-maint.info.*
|
||||
%{_infodir}/find-maint.info.gz
|
||||
|
||||
%changelog
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.9.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Wed Feb 02 2022 Kamil Dudka <kdudka@redhat.com> - 1:4.9.0-1
|
||||
- new upstream release
|
||||
|
||||
* Mon Jan 24 2022 Kamil Dudka <kdudka@redhat.com> - 1:4.8.0-6
|
||||
- make findutils build on 32bit x86
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue May 25 2021 Florian Weimer <fweimer@redhat.com> - 1:4.8.0-3
|
||||
- Rebuild with new binutils to fix ppc64le corruption (#1960730)
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Sat Jan 09 2021 Kamil Dudka <kdudka@redhat.com> - 1:4.8.0-1
|
||||
- new upstream release
|
||||
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.7.0-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Fri Jul 24 2020 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-6
|
||||
- disable -flto on ppc64le to make test-float pass (#1789115)
|
||||
- do not compile with -D__SUPPORT_SNAN__ (#1294016)
|
||||
|
||||
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 1:4.7.0-5
|
||||
- Use make macros
|
||||
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
||||
|
||||
* Fri Apr 17 2020 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-4
|
||||
- simplify leaf optimization for XFS (#1823247)
|
||||
|
||||
* Tue Feb 11 2020 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-3
|
||||
- make upstream test-suite work with root privileges (#1799064)
|
||||
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.7.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Aug 30 2019 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-1
|
||||
- new upstream release
|
||||
|
||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-24
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Wed Apr 24 2019 Björn Esser <besser82@fedoraproject.org> - 1:4.6.0-23
|
||||
- Remove hardcoded gzip suffix from GNU info pages
|
||||
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-22
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Nov 05 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-21
|
||||
- fix programming mistakes detected by static analysis
|
||||
|
||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-20
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Fri Apr 20 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-19
|
||||
- fix crash caused by mistakenly enabled leaf optimization (#1558249)
|
||||
|
||||
* Tue Mar 06 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-18
|
||||
- fix build failure with glibc-2.28
|
||||
|
||||
* Mon Feb 19 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-17
|
||||
- add explicit BR for the gcc compiler
|
||||
|
||||
* Mon Feb 12 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-16
|
||||
- import gnulib's FTS module from upstream commit 281b825e (#1544429)
|
||||
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-14
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
||||
|
||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-13
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Thu Mar 02 2017 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-12
|
||||
- drop ppc64le workaround no longer needed (#1417753)
|
||||
|
||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Mon Jan 30 2017 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-10
|
||||
- avoid using broken memcmp() code that gcc generates on ppc64le (#1417753)
|
||||
|
||||
* Fri Jan 27 2017 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-9
|
||||
- add explicit BR for git as we use it in %%prep
|
||||
|
||||
* Fri Sep 16 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-8
|
||||
* Fri Jun 24 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-7
|
||||
- disable leaf optimization for NFS (#1299169)
|
||||
|
||||
* Fri Jun 24 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-7
|
||||
- bump release to preserve upgrade path f24 -> f25
|
||||
|
||||
* Fri Jun 17 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-6
|
||||
- use %%autosetup to create a git repo in %%prep
|
||||
- use out of source build
|
||||
- avoid SIGSEGV in case the internal -noop option is used (#1346471)
|
||||
|
||||
* Tue May 31 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-5
|
||||
- make sure that find -exec + passes all arguments (upstream bug #48030)
|
||||
|
||||
* Mon Apr 18 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-4
|
||||
- clarify exit status handling of -exec cmd {} + in find(1) man page (#1325049)
|
||||
|
||||
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Wed Jan 06 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-2
|
||||
- prevent test-isinf from failing with gcc-5.3.1 on ppc64le (#1294016)
|
||||
- prevent mbrtowc tests from failing (#1294016)
|
||||
|
||||
* Tue Dec 29 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-1
|
||||
- new upstream release
|
||||
- drop oldfind(1) no longer supported by upstream
|
||||
|
||||
* Fri Dec 25 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.16-1
|
||||
- new upstream release
|
||||
|
||||
* Mon Dec 21 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.15-2
|
||||
* Tue Dec 29 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-6
|
||||
- enable leaf optimization for XFS and NFS (#1252549)
|
||||
|
||||
* Sat Dec 19 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.15-1
|
||||
- new upstream release
|
||||
|
||||
* Tue Jul 07 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-7
|
||||
- make the test-suite ready for Perl 5.22 (#1239501)
|
||||
|
||||
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.14-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Wed Mar 18 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-5
|
||||
- make the test-suite ready for Python 3
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (findutils-4.9.0.tar.xz) = ba4844f4403de0148ad14b46a3dbefd5a721f6257c864bf41a6789b11705408524751c627420b15a52af95564d8e5b52f0978474f640a62ab86a41d20cf14be9
|
||||
a8a8176282fd28e8d1234c84d847fa66 findutils-4.5.14.tar.gz
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Makefile of /CoreOS/findutils/Sanity/smoke
|
||||
# Description: Smoke test for find and xargs.
|
||||
# Author: Branislav Nater <bnater@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing
|
||||
# to use, modify, copy, or redistribute it subject to the terms
|
||||
# and conditions of the GNU General Public License version 2.
|
||||
#
|
||||
# This program is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
export TEST=/CoreOS/findutils/Sanity/smoke
|
||||
export TESTVERSION=1.0
|
||||
|
||||
BUILT_FILES=
|
||||
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||
|
||||
.PHONY: all install download clean
|
||||
|
||||
run: $(FILES) build
|
||||
./runtest.sh
|
||||
|
||||
build: $(BUILT_FILES)
|
||||
test -x runtest.sh || chmod a+x runtest.sh
|
||||
|
||||
clean:
|
||||
rm -f *~ $(BUILT_FILES)
|
||||
|
||||
|
||||
include /usr/share/rhts/lib/rhts-make.include
|
||||
|
||||
$(METADATA): Makefile
|
||||
@echo "Owner: Branislav Nater <bnater@redhat.com>" > $(METADATA)
|
||||
@echo "Name: $(TEST)" >> $(METADATA)
|
||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||
@echo "Description: Smoke test for find and xargs." >> $(METADATA)
|
||||
@echo "Type: Sanity" >> $(METADATA)
|
||||
@echo "TestTime: 5m" >> $(METADATA)
|
||||
@echo "RunFor: findutils" >> $(METADATA)
|
||||
@echo "Requires: findutils" >> $(METADATA)
|
||||
@echo "Priority: Normal" >> $(METADATA)
|
||||
@echo "License: GPLv2" >> $(METADATA)
|
||||
@echo "Confidential: no" >> $(METADATA)
|
||||
@echo "Destructive: no" >> $(METADATA)
|
||||
|
||||
rhts-lint $(METADATA)
|
|
@ -1,3 +0,0 @@
|
|||
PURPOSE of /CoreOS/findutils/Sanity/smoke
|
||||
Description: Smoke test for find and xargs.
|
||||
Author: Branislav Nater <bnater@redhat.com>
|
|
@ -1,64 +0,0 @@
|
|||
#!/bin/bash
|
||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# runtest.sh of /CoreOS/findutils/Sanity/smoke
|
||||
# Description: Smoke test for find and xargs.
|
||||
# Author: Branislav Nater <bnater@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing
|
||||
# to use, modify, copy, or redistribute it subject to the terms
|
||||
# and conditions of the GNU General Public License version 2.
|
||||
#
|
||||
# This program is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# Include rhts environment
|
||||
. /usr/bin/rhts-environment.sh || exit 1
|
||||
. /usr/lib/beakerlib/beakerlib.sh || exit 1
|
||||
|
||||
PACKAGE="findutils"
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlAssertRpm $PACKAGE
|
||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||
rlRun "pushd $TmpDir"
|
||||
rlRun "touch \"file with spaces\"" 0
|
||||
rlRun "mkdir dir" 0
|
||||
rlRun "touch dir/file1" 0
|
||||
rlPhaseEnd
|
||||
|
||||
rlGetTestState && {
|
||||
rlPhaseStartTest
|
||||
rlRun "find . -name \"file*\" -type f | tee output | wc -l > wcout" 0
|
||||
cat output
|
||||
rlAssertGrep 2 wcout
|
||||
rlRun "find $TmpDir -mindepth 1 -type d | tee output | wc -l > wcout" 0
|
||||
cat output
|
||||
rlAssertGrep 1 wcout
|
||||
rlRun "find $TmpDir -name \"file*\" -print0 | xargs -0 ls -l | tee output | wc -l > wcout" 0
|
||||
cat output
|
||||
rlAssertGrep 2 wcout
|
||||
rlPhaseEnd
|
||||
}
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "popd"
|
||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||
rlPhaseEnd
|
||||
rlJournalEnd
|
||||
rlJournalPrintText
|
|
@ -1,14 +0,0 @@
|
|||
---
|
||||
# Tests which will run in all contexts
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-beakerlib
|
||||
tags:
|
||||
- classic
|
||||
- container
|
||||
- atomic
|
||||
tests:
|
||||
- smoke
|
||||
- xautofs
|
||||
required_packages:
|
||||
- autofs # autofs required for xautofs test
|
|
@ -1,65 +0,0 @@
|
|||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Makefile of /CoreOS/findutils/Sanity/options/xautofs
|
||||
# Description: Check xautofs option
|
||||
# Author: Petr Splichal <psplicha@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing
|
||||
# to use, modify, copy, or redistribute it subject to the terms
|
||||
# and conditions of the GNU General Public License version 2.
|
||||
#
|
||||
# This program is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
export TEST=/CoreOS/findutils/Sanity/options/xautofs
|
||||
export TESTVERSION=1.0
|
||||
|
||||
BUILT_FILES=
|
||||
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||
|
||||
.PHONY: all install download clean
|
||||
|
||||
run: $(FILES) build
|
||||
./runtest.sh
|
||||
|
||||
build: $(BUILT_FILES)
|
||||
chmod a+x runtest.sh
|
||||
|
||||
clean:
|
||||
rm -f *~ $(BUILT_FILES)
|
||||
|
||||
|
||||
include /usr/share/rhts/lib/rhts-make.include
|
||||
|
||||
$(METADATA): Makefile
|
||||
@echo "Owner: Branislav Nater <bnater@redhat.com>" > $(METADATA)
|
||||
@echo "Name: $(TEST)" >> $(METADATA)
|
||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
||||
@echo "Description: Check xautofs option" >> $(METADATA)
|
||||
@echo "Type: Sanity" >> $(METADATA)
|
||||
@echo "TestTime: 10m" >> $(METADATA)
|
||||
@echo "RunFor: findutils" >> $(METADATA)
|
||||
@echo "Requires: autofs findutils" >> $(METADATA)
|
||||
@echo "Priority: Normal" >> $(METADATA)
|
||||
@echo "License: GPLv2" >> $(METADATA)
|
||||
@echo "Confidential: no" >> $(METADATA)
|
||||
@echo "Destructive: no" >> $(METADATA)
|
||||
@echo "Bug: 485672 529391" >> $(METADATA)
|
||||
@echo "Releases: -RHEL3 -RHEL4" >> $(METADATA)
|
||||
|
||||
rhts-lint $(METADATA)
|
|
@ -1,8 +0,0 @@
|
|||
PURPOSE of /CoreOS/findutils/Sanity/options/xautofs
|
||||
Description: Check xautofs option
|
||||
Author: Petr Splichal <psplicha@redhat.com>
|
||||
Bug summary: [RFE] Modify find to be able to skip direct mapped autofs mounts
|
||||
Bugzilla link: None
|
||||
|
||||
Check that the new -xautofs option works as expected: make sure
|
||||
find does not descend into directories on autofs filesystems.
|
|
@ -1,90 +0,0 @@
|
|||
#!/bin/bash
|
||||
# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# runtest.sh of /CoreOS/findutils/Sanity/options/xautofs
|
||||
# Description: Check xautofs option
|
||||
# Author: Petr Splichal <psplicha@redhat.com>
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
||||
#
|
||||
# This copyrighted material is made available to anyone wishing
|
||||
# to use, modify, copy, or redistribute it subject to the terms
|
||||
# and conditions of the GNU General Public License version 2.
|
||||
#
|
||||
# This program is distributed in the hope that it will be
|
||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public
|
||||
# License along with this program; if not, write to the Free
|
||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
# Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
# Include rhts environment
|
||||
. /usr/bin/rhts-environment.sh
|
||||
. /usr/share/rhts-library/rhtslib.sh
|
||||
|
||||
PACKAGE="findutils"
|
||||
|
||||
MasterConf="/etc/auto.master"
|
||||
DirectConf="/etc/auto.direct"
|
||||
|
||||
MountDir="/mnt/findutils"
|
||||
AutomountDir="$MountDir/etc"
|
||||
RegularDir="$MountDir/regular/directory/master"
|
||||
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlAssertRpm $PACKAGE
|
||||
rlAssertRpm "autofs"
|
||||
rlRun "set -o pipefail"
|
||||
|
||||
# create dirs & back up
|
||||
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
|
||||
rlRun "mkdir -p $RegularDir" 0 "Creating regular directory"
|
||||
rlRun "rlFileBackup $MasterConf"
|
||||
|
||||
# set up autofs
|
||||
rlRun "echo '/- /etc/auto.direct' > $MasterConf" \
|
||||
0 "Setting up autofs master map"
|
||||
rlRun "echo '$AutomountDir localhost:/etc' > $DirectConf" \
|
||||
0 "Setting up autofs direct map"
|
||||
|
||||
# RHEL-7 is using xfs
|
||||
rlIsRHEL 4 5 6 && fs="ext[34]" || fs="xfs"
|
||||
|
||||
rlRun "pushd $TmpDir"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest "Without -xautofs option"
|
||||
rlRun "rlServiceStart autofs" 0 "Starting autofs"
|
||||
rlAssertNotGrep "$AutomountDir.*$fs" "/proc/mounts"
|
||||
rlRun "find $MountDir -noleaf -name '*master*' | tee filelist"
|
||||
rlAssertGrep "$RegularDir" "filelist"
|
||||
rlAssertGrep "$MountDir$MasterConf" "filelist"
|
||||
rlAssertGrep "$AutomountDir.*$fs" "/proc/mounts"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest "With -xautofs option"
|
||||
rlRun "rlServiceStart autofs" 0 "Starting autofs"
|
||||
rlAssertNotGrep "$AutomountDir.*$fs" "/proc/mounts"
|
||||
rlRun "find $MountDir -xautofs -noleaf -name '*master*' | tee filelist"
|
||||
rlAssertGrep "$RegularDir" "filelist"
|
||||
rlAssertNotGrep "$MountDir$MasterConf" "filelist"
|
||||
rlAssertNotGrep "$AutomountDir.*$fs" "/proc/mounts"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartCleanup
|
||||
rlRun "popd"
|
||||
rlRun "rlFileRestore"
|
||||
rlRun "rlServiceRestore autofs"
|
||||
rlRun "rm -r $TmpDir $DirectConf $MountDir" 0 "Removing tmp files"
|
||||
rlPhaseEnd
|
||||
rlJournalPrintText
|
||||
rlJournalEnd
|
Loading…
Reference in New Issue