RHEL 9.0.0 Alpha bootstrap

The content of this branch was automatically imported from Fedora ELN
with the following as its source:
https://src.fedoraproject.org/rpms/findutils#253ce30f0955a2a05a156169bfd5b11e95fbccbc
This commit is contained in:
Petr Šabata 2020-10-15 00:22:32 +02:00
parent f64c5e602a
commit c16cf2763b
19 changed files with 1786 additions and 0 deletions

1
.gitignore vendored
View File

@ -0,0 +1 @@
/findutils-4.*.*.tar.?z

9
STAGE1-findutils Normal file
View File

@ -0,0 +1,9 @@
srpm $1
mcd $BUILDDIR/$1
sed -i~ -e "s,locate/Makefile locate/testsuite/Makefile ,," $SRC/${1}-*/configure
FINDLIBS="-lselinux -ldl" $SRC/${1}-*/configure $TCONFIGARGS
sed -i~ -e "s/ locate / /" Makefile
notparallel
test -d tools/gnulib/lib && make $J V=1 -C tools/gnulib/lib
make $J V=1
make $J install DESTDIR=${ROOTFS}

View File

@ -0,0 +1,132 @@
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
---
doc/find.texi | 4 ++++
find/defs.h | 3 +++
find/find.1 | 3 +++
find/ftsfind.c | 6 ++++++
find/parser.c | 9 +++++++++
find/util.c | 3 ++-
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
@@ -1474,6 +1474,10 @@ them.
There are two ways to avoid searching certain filesystems. One way is
to tell @code{find} to only search one filesystem:
+@deffn Option -xautofs
+Don't descend directories on autofs filesystems.
+@end deffn
+
@deffn Option -xdev
@deffnx Option -mount
Don't descend directories on other filesystems. These options are
diff --git a/find/defs.h b/find/defs.h
index 11d1d00..f95ce72 100644
--- a/find/defs.h
+++ b/find/defs.h
@@ -574,6 +574,9 @@ struct options
/* If true, don't cross filesystem boundaries. */
bool stay_on_filesystem;
+ /* If true, don't descend directories on autofs filesystems. */
+ bool bypass_autofs;
+
/* If true, we ignore the problem where we find that a directory entry
* no longer exists by the time we get around to processing it.
*/
diff --git a/find/find.1 b/find/find.1
index e851f82..a4799ff 100644
--- a/find/find.1
+++ b/find/find.1
@@ -567,6 +567,9 @@ to stat them; this gives a significant increase in search speed.
.IP "\-version, \-\-version"
Print the \fBfind\fR version number and exit.
+.IP \-xautofs
+Don't descend directories on autofs filesystems.
+
.IP \-xdev
Don't descend directories on other filesystems.
diff --git a/find/ftsfind.c b/find/ftsfind.c
index 9fdb8ef..bd7cc37 100644
--- a/find/ftsfind.c
+++ b/find/ftsfind.c
@@ -479,6 +479,12 @@ consider_visiting (FTS *p, FTSENT *ent)
}
}
+ if (options.bypass_autofs &&
+ 0 == strcmp ("autofs", filesystem_type (&statbuf, ent->fts_name)))
+ {
+ fts_set(p, ent, FTS_SKIP); /* descend no further */
+ }
+
if ( (ent->fts_info == FTS_D) && !options.do_dir_first )
{
/* this is the preorder visit, but user said -depth */
diff --git a/find/parser.c b/find/parser.c
index 52a1ef6..995aec3 100644
--- a/find/parser.c
+++ b/find/parser.c
@@ -138,6 +138,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);
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);
@@ -302,6 +303,7 @@ static struct parser_table const parse_table[] =
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but now -path is standardized since POSIX 2008 */
{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.
@@ -2603,6 +2605,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
return parse_noop (entry, argv, arg_ptr);
}
+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
parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr)
{
diff --git a/find/util.c b/find/util.c
index 8577396..4d45f84 100644
--- a/find/util.c
+++ b/find/util.c
@@ -181,7 +181,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"));
HTL (_("\
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\
@@ -1044,6 +1044,7 @@ set_option_defaults (struct options *p)
p->full_days = false;
p->stay_on_filesystem = false;
+ p->bypass_autofs = false;
p->ignore_readdir_race = false;
if (p->posixly_correct)
--
1.7.4.4

View File

@ -0,0 +1,26 @@
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
---
xargs/xargs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/xargs/xargs.c b/xargs/xargs.c
index 5e373f2..c0a8676 100644
--- a/xargs/xargs.c
+++ b/xargs/xargs.c
@@ -1299,7 +1299,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.
*/
- write (fd[1], &errno, sizeof (int));
+ int sink = write (fd[1], &errno, sizeof (int));
+ (void) sink;
}
close (fd[1]);
--
1.7.1

View File

@ -0,0 +1,173 @@
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 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 $@ $<
-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 %**end of header
@include version.texi
-@include dblocation.texi
@iftex
@finalout
@@ -575,8 +574,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}
@@ -2929,13 +2927,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
@@ -3460,8 +3454,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
@@ -3636,8 +3629,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}.
@@ -5631,7 +5623,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
@@ -5639,7 +5631,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 oldfind xargs frcode locate updatedb
+built_programs = find oldfind 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

View File

@ -0,0 +1,122 @@
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
@@ -713,6 +713,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
@@ -553,6 +553,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

View File

@ -0,0 +1,29 @@
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

View File

@ -0,0 +1,164 @@
From b9f9ed14bda93ecb407129b69e6476813c250046 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 15 Apr 2020 20:50:32 -0700
Subject: [PATCH] fts: remove NOSTAT_LEAF_OPTIMIZATION
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
It caused find and du to dump core, and it was useful
only for obsolescent Linux filesystems anyway. Problem reported in:
https://lists.gnu.org/r/bug-gnulib/2020-04/msg00068.html
Quite possibly there is still a serious underlying fts bug with
tight-loop-check and mutating file systems, but if so this patch
should cause the bug to be triggered less often.
* lib/fts.c (enum leaf_optimization): Remove
NOSTAT_LEAF_OPTIMIZATION, as its problematic.
(S_MAGIC_REISERFS, S_MAGIC_XFS): Remove; no longer needed.
(leaf_optimization): Remove special cases for ReiserFS and XFS.
(fts_read): Remove NOSTAT_LEAF_OPTIMIZATION code.
* lib/fts_.h (struct _ftsent.fts_n_dirs_remaining):
Remove. All uses removed.
Upstream-commit: 47bf2cf3184027c1eb9c1dfeea5c5b8b2d69710d
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
gl/lib/fts.c | 56 ++++++++-------------------------------------------
gl/lib/fts_.h | 5 -----
2 files changed, 8 insertions(+), 53 deletions(-)
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
index 1093ce5..dfe3fef 100644
--- a/gl/lib/fts.c
+++ b/gl/lib/fts.c
@@ -445,7 +445,6 @@ fts_open (char * const *argv,
if ((parent = fts_alloc(sp, "", 0)) == NULL)
goto mem2;
parent->fts_level = FTS_ROOTPARENTLEVEL;
- parent->fts_n_dirs_remaining = -1;
}
/* The classic fts implementation would call fts_stat with
@@ -634,9 +633,8 @@ fts_close (FTS *sp)
}
/* Minimum link count of a traditional Unix directory. When leaf
- optimization is OK and MIN_DIR_NLINK <= st_nlink, then st_nlink is
- an upper bound on the number of subdirectories (counting "." and
- ".."). */
+ optimization is OK and a directory's st_nlink == MIN_DIR_NLINK,
+ then the directory has no subdirectories. */
enum { MIN_DIR_NLINK = 2 };
/* Whether leaf optimization is OK for a directory. */
@@ -645,12 +643,8 @@ enum leaf_optimization
/* st_nlink is not reliable for this directory's subdirectories. */
NO_LEAF_OPTIMIZATION,
- /* Leaf optimization is OK, but is not useful for avoiding stat calls. */
- OK_LEAF_OPTIMIZATION,
-
- /* Leaf optimization is not only OK: it is useful for avoiding
- stat calls, because dirent.d_type does not work. */
- NOSTAT_LEAF_OPTIMIZATION
+ /* st_nlink == 2 means the directory lacks subdirectories. */
+ OK_LEAF_OPTIMIZATION
};
#if (defined __linux__ || defined __ANDROID__) \
@@ -663,9 +657,7 @@ enum leaf_optimization
# define S_MAGIC_CIFS 0xFF534D42
# define S_MAGIC_NFS 0x6969
# define S_MAGIC_PROC 0x9FA0
-# define S_MAGIC_REISERFS 0x52654973
# define S_MAGIC_TMPFS 0x1021994
-# define S_MAGIC_XFS 0x58465342
# ifdef HAVE___FSWORD_T
typedef __fsword_t fsword;
@@ -786,23 +778,15 @@ dirent_inode_sort_may_be_useful (FTSENT const *p, int dir_fd)
}
/* Given an FTS entry P for a directory with descriptor DIR_FD,
- return true if it is both useful and valid to apply leaf optimization.
- The optimization is useful only for file systems that lack usable
- dirent.d_type info. The optimization is valid if an st_nlink value
- of at least MIN_DIR_NLINK is an upper bound on the number of
- subdirectories of D, counting "." and ".." as subdirectories.
+ return whether it is valid to apply leaf optimization.
+ The optimization is valid if a directory's st_nlink value equal
+ to MIN_DIR_NLINK means the directory has no subdirectories.
DIR_FD is negative if unavailable. */
static enum leaf_optimization
leaf_optimization (FTSENT const *p, int dir_fd)
{
switch (filesystem_type (p, dir_fd))
{
- /* List here the file system types that may lack usable dirent.d_type
- info, yet for which the optimization does apply. */
- case S_MAGIC_REISERFS:
- case S_MAGIC_XFS: /* XFS lacked it until 2013-08-22 commit. */
- return NOSTAT_LEAF_OPTIMIZATION;
-
case 0:
/* Leaf optimization is unsafe if the file system type is unknown. */
FALLTHROUGH;
@@ -1027,26 +1011,7 @@ check_for_dir:
if (p->fts_info == FTS_NSOK)
{
if (p->fts_statp->st_size == FTS_STAT_REQUIRED)
- {
- FTSENT *parent = p->fts_parent;
- if (parent->fts_n_dirs_remaining == 0
- && ISSET(FTS_NOSTAT)
- && ISSET(FTS_PHYSICAL)
- && (leaf_optimization (parent, sp->fts_cwd_fd)
- == NOSTAT_LEAF_OPTIMIZATION))
- {
- /* nothing more needed */
- }
- else
- {
- p->fts_info = fts_stat(sp, p, false);
- if (S_ISDIR(p->fts_statp->st_mode)
- && p->fts_level != FTS_ROOTLEVEL
- && 0 < parent->fts_n_dirs_remaining
- && parent->fts_n_dirs_remaining != (nlink_t) -1)
- parent->fts_n_dirs_remaining--;
- }
- }
+ p->fts_info = fts_stat(sp, p, false);
else
fts_assert (p->fts_statp->st_size == FTS_NO_STAT_REQUIRED);
}
@@ -1830,11 +1795,6 @@ err: memset(sbp, 0, sizeof(struct stat));
}
if (S_ISDIR(sbp->st_mode)) {
- p->fts_n_dirs_remaining
- = ((sbp->st_nlink < MIN_DIR_NLINK
- || p->fts_level <= FTS_ROOTLEVEL)
- ? -1
- : sbp->st_nlink - (ISSET (FTS_SEEDOT) ? 0 : MIN_DIR_NLINK));
if (ISDOT(p->fts_name)) {
/* Command-line "." and ".." are real directories. */
return (p->fts_level == FTS_ROOTLEVEL ? FTS_D : FTS_DOT);
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
index d40a116..2e76cc4 100644
--- a/gl/lib/fts_.h
+++ b/gl/lib/fts_.h
@@ -227,11 +227,6 @@ typedef struct _ftsent {
size_t fts_namelen; /* strlen(fts_name) */
- /* If not (nlink_t) -1, an upper bound on the number of
- remaining subdirectories of interest. If this becomes
- zero, some work can be avoided. */
- nlink_t fts_n_dirs_remaining;
-
# define FTS_D 1 /* preorder directory */
# define FTS_DC 2 /* directory that causes cycles */
# define FTS_DEFAULT 3 /* none of the above */
--
2.21.1

View File

@ -0,0 +1,132 @@
From 498674f70816bb380ce11e62b620e4ece7763fd0 Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <mail@bernhard-voelker.de>
Date: Sun, 9 Feb 2020 19:58:07 +0100
Subject: [PATCH] tests: avoid FP when run as root
Test 'sv-bug-54171' produced a false-positive error as 'find' would
not fail for an unreadable directory when run as root.
Migrate the test to the newer shell-based tests, and add the
'skip_if_root_' guard to avoid a false-positive.
* find/testsuite/find.posix/sv-bug-54171.exp: Remove.
* find/testsuite/find.posix/sv-bug-54171.xo: Remove.
* find/testsuite/Makefile.am (EXTRA_DIST_XO, EXTRA_DIST_EXP): Remove the
above deleted test.
* tests/find/depth-unreadable-dir.sh: Add test.
* tests/local.mk (all_tests): Reference it.
Test FP introduced in commit v4.6.0-178-gdf4610d0.
Fixes https://savannah.gnu.org/bugs/?57762
and https://bugzilla.redhat.com/1799064
Upstream-commit: 2f9fff9e1f0c0b7a9034d7c46ca197ce693c4736
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
find/testsuite/Makefile.am | 2 --
find/testsuite/find.posix/sv-bug-54171.exp | 5 ---
find/testsuite/find.posix/sv-bug-54171.xo | 1 -
tests/find/depth-unreadable-dir.sh | 39 ++++++++++++++++++++++
tests/local.mk | 1 +
5 files changed, 40 insertions(+), 8 deletions(-)
delete mode 100644 find/testsuite/find.posix/sv-bug-54171.exp
delete mode 100644 find/testsuite/find.posix/sv-bug-54171.xo
create mode 100755 tests/find/depth-unreadable-dir.sh
diff --git a/find/testsuite/Makefile.am b/find/testsuite/Makefile.am
index d252451a..77a2902c 100644
--- a/find/testsuite/Makefile.am
+++ b/find/testsuite/Makefile.am
@@ -119,7 +119,6 @@ find.posix/prune-stat.xo \
find.posix/sizetype.xo \
find.posix/sv-bug-15235.xo \
find.posix/sv-bug-19613.xo \
-find.posix/sv-bug-54171.xo \
find.posix/typesize.xo
@@ -246,7 +245,6 @@ find.posix/sv-bug-15235.exp \
find.posix/sv-bug-19605.exp \
find.posix/sv-bug-19613.exp \
find.posix/sv-bug-19617.exp \
-find.posix/sv-bug-54171.exp \
find.posix/typesize.exp \
find.posix/user-empty.exp \
find.posix/user-missing.exp
diff --git a/find/testsuite/find.posix/sv-bug-54171.exp b/find/testsuite/find.posix/sv-bug-54171.exp
deleted file mode 100644
index 8e5448fb..00000000
--- a/find/testsuite/find.posix/sv-bug-54171.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-exec rm -rf tmp
-exec mkdir tmp tmp/dir
-exec chmod 0311 tmp/dir
-find_start f {tmp -depth -name dir }
-exec rm -rf tmp
diff --git a/find/testsuite/find.posix/sv-bug-54171.xo b/find/testsuite/find.posix/sv-bug-54171.xo
deleted file mode 100644
index 2dc4706a..00000000
--- a/find/testsuite/find.posix/sv-bug-54171.xo
+++ /dev/null
@@ -1 +0,0 @@
-tmp/dir
diff --git a/tests/find/depth-unreadable-dir.sh b/tests/find/depth-unreadable-dir.sh
new file mode 100755
index 00000000..86e2fd60
--- /dev/null
+++ b/tests/find/depth-unreadable-dir.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+# find -depth: ensure to output an unreadable directory.
+
+# Copyright (C) 2020 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# 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, see <https://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/tests/init.sh"; fu_path_prepend_
+print_ver_ find
+
+# Find run as root would not fail for an unreadable directory.
+skip_if_root_
+
+# Prepare an unreadable directory, and the expected stdout/stderr.
+mkdir tmp tmp/dir \
+ && chmod 0311 tmp/dir \
+ && echo 'tmp/dir' > exp \
+ && echo "find: 'tmp/dir': Permission denied" > experr \
+ || framework_failure_
+
+# Run FTS-based find with -depth; versions < 4.7.0 failed to output
+# an unreadable directory (see #54171).
+returns_ 1 find tmp -depth -name dir > out 2> err || fail=1
+
+compare exp out || fail=1
+compare experr err || fail=1
+
+Exit $fail
diff --git a/tests/local.mk b/tests/local.mk
index dccc7342..986df55e 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -106,6 +106,7 @@ check-root:
all_tests = \
tests/misc/help-version.sh \
+ tests/find/depth-unreadable-dir.sh \
tests/find/many-dir-entries-vs-OOM.sh \
tests/find/name-lbracket-literal.sh \
tests/find/printf_escapechars.sh \
--
2.21.1

View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEpRidtpwRZNMwApNmRlAu95aRcZUFAl1oMFIACgkQRlAu95aR
cZW3SAgAkWnO8T7D2ljH3BU7h1VRdZyqCsyinorRt7/LdGVIGZ3pcc0pux+dhOxo
p1ZuwSBczXJ7+R9WCMTx6wlfn2wXerBGWjxVsU1J8LIhxou8su4Otp2NPSf1iRqe
TfJ8Fj2uJB3FzOPz93jq6MQhwn0DZyI5++TgxtuRIFEKHZh29Op3i3ceb+KUBknd
dIf/p7B25pc7OG8sn1ClaL6+fORvMcVg/VoVrD4KYXLkKgIHuwUutCGXlkaEx0tD
sZQ9Rzh1A4NF5gyHkeSWZFS8MHnOixOykPtxJWfrQRFkTLRNgICy+vBsKiL5tupG
EvOKD0mniJnHJW/jal/8hIz4zoq31A==
=YyBw
-----END PGP SIGNATURE-----

679
findutils.spec Normal file
View File

@ -0,0 +1,679 @@
Summary: The GNU versions of find utilities (find and xargs)
Name: findutils
Version: 4.7.0
Release: 7%{?dist}
Epoch: 1
License: GPLv3+
URL: http://www.gnu.org/software/findutils/
Source0: https://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
# do not build locate
Patch1: findutils-4.5.15-no-locate.patch
# add -xautofs option to not descend into directories on autofs file systems
Patch2: findutils-4.4.2-xautofs.patch
# eliminate compile-time warnings
Patch3: findutils-4.5.13-warnings.patch
# test-lock: disable the rwlock test
Patch4: findutils-4.6.0-test-lock.patch
# implement the -noleaf option of find (#1252549)
Patch5: findutils-4.6.0-leaf-opt.patch
# make upstream test-suite work with root privileges (#1799064)
Patch6: findutils-4.7.0-root-tests.patch
# simplify leaf optimization for XFS (#1823247)
Patch7: findutils-4.7.0-leaf-opt-xfs.patch
Conflicts: filesystem < 3
Provides: /bin/find
Provides: bundled(gnulib)
BuildRequires: automake
BuildRequires: dejagnu
BuildRequires: gettext-devel
BuildRequires: gcc
BuildRequires: git
BuildRequires: libselinux-devel
BuildRequires: texinfo
%description
The findutils package contains programs which will help you locate
files on your system. The find utility searches through a hierarchy
of directories looking for files which match a certain set of criteria
(such as a file name pattern). The xargs utility builds and executes
command lines from standard input arguments (usually lists of file
names generated by the find command).
You should install findutils because it includes tools that are very
useful for finding things on your system.
%prep
%autosetup -N -S git
# 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
# replace weirdo constant in gnulib tests causing test failures on armv7hl
sed -e 's/1729576/EPERM/' \
-i gnulib-tests/test-{perror2,strerror_r}.c
# needed because of findutils-4.5.15-no-locate.patch
autoreconf -fiv
git add --all .
git commit -q -m "after invocation of autoreconf"
%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
%check
make %{?_smp_mflags} check -C build V=1
%install
%make_install -C build
rm -f %{buildroot}%{_infodir}/dir
%find_lang %{name}
%files -f %{name}.lang
%{!?_licensedir:%global license %%doc}
%license COPYING
%doc AUTHORS NEWS README THANKS TODO
%{_bindir}/find
%{_bindir}/xargs
%{_mandir}/man1/find.1*
%{_mandir}/man1/xargs.1*
%{_infodir}/find.info*
%{_infodir}/find-maint.info.*
%changelog
* 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
- 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
- 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
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 1:4.5.14-4
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Mon Feb 16 2015 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-3
- fix a crash triggered by recursive bind mount (#1188498)
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Mon Jul 21 2014 Kamil Dudka <kdudka@redhat.com> - 1:4.5.14-1
- new upstream release
* Wed Jul 16 2014 Kamil Dudka <kdudka@redhat.com> - 1:4.5.13-1
- new upstream release
* Sat Jul 12 2014 Tom Callaway <spot@fedoraproject.org> - 1:4.5.12-6
- fix license handling
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.12-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Mon Jun 02 2014 Kamil Dudka <kdudka@redhat.com> 1:4.5.12-4
- eliminate failure of gnulib tests on little-endian PowerPC (#1083145)
* Sat May 31 2014 Peter Robinson <pbrobinson@fedoraproject.org> 1:4.5.12-3
- drop ChangeLog, the NEWS file contains details back to 1993 to satisfy even
the most bored sysadmin
* Mon Sep 23 2013 Kamil Dudka <kdudka@redhat.com> - 1:4.5.12-2
- silence GCC warnings
* Mon Sep 23 2013 Kamil Dudka <kdudka@redhat.com> - 1:4.5.12-1
- new upstream release
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.11-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Jul 10 2013 Kamil Dudka <kdudka@redhat.com> - 1:4.5.11-3
- remove findutils-4.4.2-autofs.patch no longer needed
* Tue Jul 09 2013 Kamil Dudka <kdudka@redhat.com> - 1:4.5.11-2
- remove support for obsolete -perm +MODE syntax (#982503)
* Sun Feb 03 2013 Kamil Dudka <kdudka@redhat.com> - 1:4.5.11-1
- new upstream release
* Tue Aug 28 2012 Kamil Dudka <kdudka@redhat.com> - 1:4.5.10-7
- fix specfile issues reported by the fedora-review script
- do not use the AM_C_PROTOTYPES macro (removed in Automake 1.12)
- do not require gets() to be declared
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.10-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Wed May 16 2012 Kamil Dudka <kdudka@redhat.com> - 1:4.5.10-5
- add virtual provides for bundled(gnulib) copylib (#821753)
* Wed Jan 25 2012 Harald Hoyer <harald@redhat.com> 1:4.5.10-4
- add filesystem guard
* Wed Jan 25 2012 Harald Hoyer <harald@redhat.com> 1:4.5.10-3
- install everything in /usr
https://fedoraproject.org/wiki/Features/UsrMove
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.5.10-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* 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
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Mon May 24 2010 Kamil Dudka <kdudka@redhat.com> - 1:4.5.9-2
- fix some bugs in handling of -execdir (Savannah bug #29949)
* Wed May 05 2010 Kamil Dudka <kdudka@redhat.com> - 1:4.5.9-1
- new upstream release, dropped applied patches
* Tue Apr 06 2010 Kamil Dudka <kdudka@redhat.com> - 1:4.5.7-4
- avoid assertion failure due to access permissions (#579476)
* Sun Apr 04 2010 Kamil Dudka <kdudka@redhat.com> - 1:4.5.7-3
- upstream bugfix http://savannah.gnu.org/bugs/?29435
* Sat Apr 03 2010 Kamil Dudka <kdudka@redhat.com> - 1:4.5.7-2
- avoid assertion failure on non-recognized O_CLOEXEC
* Sat Apr 03 2010 Kamil Dudka <kdudka@redhat.com> - 1:4.5.7-1
- new upstream release, dropped applied patches
- eliminated compile-time warnings
* Thu Nov 26 2009 Kamil Dudka <kdudka@redhat.com> - 1:4.4.2-6
- update SELinux patch to the latest upstream (gnulib based) version
* Wed Nov 18 2009 Kamil Dudka <kdudka@redhat.com> - 1:4.4.2-5
- do not fail silently on a remount during traverse (#538536)
* Tue Oct 20 2009 Kamil Dudka <kdudka@redhat.com> - 1:4.4.2-4
- make it possible to recognize an autofs filesystem by find
- add a new find's option -xautofs to not descend directories on autofs
filesystems
* Mon Sep 14 2009 Kamil Dudka <kdudka@redhat.com> - 1:4.4.2-3
- do process install-info only without --excludedocs(#515914)
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Jul 1 2009 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.4.2-1
- Update to findutils-4.4.2
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Wed Apr 30 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.4.0-1
- Update to findutils-4.4.0
Resolves: #437733
* Mon Apr 14 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.33-3
- Move find to /bin
Resolves: #438183
* Fri Mar 28 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.33-2
- Fix xargs ARG_MAX assert
Resolves: #439168
* Fri Feb 15 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.33-1
- Update to findutils-4.2.33
- Fix License
* Wed Feb 13 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.32-1
- Update to findutils-4.2.32
* Mon Feb 11 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.31-4
- Rebuild
* Fri Jan 18 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.31-3
- Rebuild
* Thu Aug 23 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.31-2
- fix license
- rebuild
* Tue Jun 12 2007 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.2.31-1
- Update to findutils-4.2.31
Resolves: #243732
* Fri Jan 5 2007 Miloslav Trmac <mitr@redhat.com> - 1:4.2.29-2
- Ignore install-info errors in scriptlets
* Sun Nov 26 2006 Miloslav Trmac <mitr@redhat.com> - 1:4.2.29-1
- Update to findutils-4.2.29
- Fix some rpmlint warnings
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1:4.2.27-4.1
- rebuild
* Sun Feb 19 2006 Miloslav Trmac <mitr@redhat.com> - 1:4.2.27-4
- Report the correct directory when hard link count is inconsistent (#182001)
* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1:4.2.27-3.2
- bump again for double-long bug on ppc(64)
* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1:4.2.27-3.1
- rebuilt for new gcc4.1 snapshot and glibc changes
* Mon Jan 30 2006 Miloslav Trmac <mitr@redhat.com> - 1:4.2.27-3
- Updated SELinux patch, --context is no longer valid (use -context)
* Thu Jan 12 2006 Miloslav Trmac <mitr@redhat.com> - 1:4.2.27-2
- Don't use uninitialized memory in -printf %%Z (#174485)
- Ship more documentation files
- Clean up the spec file a bit
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
- rebuilt
* Wed Dec 7 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.27-1
- 4.2.27.
- No longer need arg_max patch.
* Mon Nov 21 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.26-1
- One further arg_max fix for PPC.
- Applied arg_max patch from upstream to fix test suite failures.
- 4.2.26 (fixes bug #173817).
* Tue Oct 11 2005 Dan Walsh <dwalsh@redhat.com> 1:4.2.25-3
- Fix selinux patch
* Mon Sep 5 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.25-2
- 4.2.25.
* Mon Jun 20 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.23-1
- 4.2.23.
* Thu Mar 17 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.20-1
- 4.2.20.
* Mon Mar 14 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.18-3
- Applied patch from Robert Scheck to fix compilation with GCC 4 (bug #151031).
* Wed Mar 2 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.18-2
- Rebuild for new GCC.
* Mon Feb 21 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.18-1
- 4.2.18.
* Mon Feb 14 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.15-2
- Added nofollow patch from upstream.
* Mon Jan 31 2005 Tim Waugh <twaugh@redhat.com> 1:4.2.15-1
- 4.2.15. Lots of patches removed due to upstream merge.
* Tue Jan 4 2005 Dan Walsh <dwalsh@redhat.com> 1:4.1.20-8
- Change --context to use fnmatch instead of strcmp
* Tue Dec 7 2004 Tim Waugh <twaugh@redhat.com>
- Removed "G" and "M" size qualifiers from man page, since support for
those is not in the stable branch (bug #141987).
* Tue Oct 19 2004 Tim Waugh <twaugh@redhat.com> 1:4.1.20-7
- Better xargs ARG_SIZE handling (bug #135129).
* Fri Oct 15 2004 Tim Waugh <twaugh@redhat.com>
- Fixed d_type patch for underquoted m4 macro.
* Fri Oct 8 2004 Tim Waugh <twaugh@redhat.com>
- Use upstream patch for find -size man page fix.
* Wed Oct 6 2004 Tim Waugh <twaugh@redhat.com> 1:4.1.20-6
- Fixed bug #126352.
* Tue Oct 5 2004 Tim Waugh <twaugh@redhat.com> 1:4.1.20-5
- Build requires gettext-devel, texinfo (bug #134692).
* Thu Sep 30 2004 Tim Waugh <twaugh@redhat.com> 1:4.1.20-4
- Set re->translate before re_compile_pattern (bug #134190).
* Sun Aug 1 2004 Alan Cox <alan@redhat.com> 1:4.1.20-3
- Fix build with current auto* tools (Steve Grubb)
* Tue Jul 6 2004 Tim Waugh <twaugh@redhat.com> 1:4.1.20-2
- Fix -iregex (bug #127297).
* Fri Jun 25 2004 Tim Waugh <twaugh@redhat.com> 1:4.1.20-1
- Clarify find man page (bug #126098).
- Apply changes by Robert Scheck <redhat@linuxnetz.de> (bug #126352):
- Upgrade to 4.1.20 and some specfile cleanup
* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Thu May 20 2004 Tim Waugh <twaugh@redhat.com> 4.1.7-26
- Fixed build requirements (bug #123746).
* Sun Mar 14 2004 Tim Waugh <twaugh@redhat.com> 4.1.7-25
- Apply Jakub Jelinek's patch for xargs -E/-I/-L options.
* Thu Mar 11 2004 Tim Waugh <twaugh@redhat.com> 4.1.7-24
- Apply selinux patch last so that it can be turned off (bug #118025).
* Tue Mar 9 2004 Tim Waugh <twaugh@redhat.com>
- Jakub Jelinek's d_type patch improvement.
* Sun Mar 7 2004 Tim Waugh <twaugh@redhat.com> 4.1.7-23
- Run 'make check'.
- Apply Ulrich Drepper's improvement on the d_type patch.
* Fri Mar 5 2004 Tim Waugh <twaugh@redhat.com> 4.1.7-22
- Apply Jakub Jelinek's d_type patch for improved efficiency with
many common expressions.
* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Tue Jan 27 2004 Dan Walsh <dwalsh@redhat.com> 4.1.7-20
- fix call to is_selinux_enabled
* Thu Oct 30 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-19
- Turn off SELinux
* Thu Oct 30 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-18.sel
- Turn on selinux
* Sat Oct 25 2003 Tim Waugh <twaugh@redhat.com> 4.1.7-17
- Rebuilt.
* Fri Oct 10 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-16
- Turn off selinux
* Fri Oct 10 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-15.sel
- Turn on selinux
* Fri Sep 5 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-15
- Turn off selinux
* Thu Aug 28 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-14.sel
- Turn on selinux
* Fri Jul 18 2003 Dan Walsh <dwalsh@redhat.com> 4.1.7-13
- Add SELinux patch
* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt
* Wed Apr 23 2003 Elliot Lee <sopwith@redhat.com> 4.1.7-11
- Remove config.{sub,guess} to make ppc64 work
* Mon Mar 17 2003 Tim Waugh <twaugh@redhat.com> 4.1.7-10
- Make 'xargs -i -n1' behave as expected (bug #86191).
* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 4.1.7-9
- rebuilt
* Tue Oct 22 2002 Tim Waugh <twaugh@redhat.com> 4.1.7-8
- Ship translations.
- Don't install files not packaged.
* Wed Jul 3 2002 Tim Waugh <twaugh@redhat.com> 4.1.7-7
- Fix usage message (bug #67828).
* Fri Jun 21 2002 Tim Powers <timp@redhat.com> 4.1.7-6
- automated rebuild
* Thu May 23 2002 Tim Powers <timp@redhat.com> 4.1.7-5
- automated rebuild
* Tue Feb 26 2002 Tim Waugh <twaugh@redhat.co,> 4.1.7-4
- Rebuild in new environment.
* Tue Feb 12 2002 Tim Waugh <twaugh@redhat.com> 4.1.7-3
- s/Copyright/License/.
- Fix documentation (bug #53857).
* Wed Jan 09 2002 Tim Powers <timp@redhat.com>
- automated rebuild
* Sun Jun 03 2001 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 4.1.7, no additional patch needed anymore
* Thu Feb 8 2001 Preston Brown <pbrown@redhat.com>
- remove extraneous linking to librt/libpthreads.
* Tue Oct 17 2000 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 4.1.6
* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
* Wed Jun 28 2000 Preston Brown <pbrown@redhat.com>
- revert to 4.1.5 ( :) ) on the advice of HJ Lu
- patch to fix finding w/ -perm flag
* Tue Jun 27 2000 Preston Brown <pbrown@redhat.com>
- revert to 4.1.4
- reapply numblks patch
- generate new nolocate patch, we don't ship it.
* Mon Jun 12 2000 Preston Brown <pbrown@redhat.com>
- 4.1.5, FHS paths
- remove mktemp,getshort patches (don't ship locate)
- alpha, numblks patch no longer needed
* Mon Apr 3 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- 4.1.4
- remove some obsolete patches, adapt others
- fix build on alpha
* Wed Feb 02 2000 Cristian Gafton <gafton@redhat.com>
- fix summary
- ma pages are compressed
* Wed Jan 12 2000 Preston Brown <pbrown@redhat.com>
- new description.
* Fri Aug 27 1999 Preston Brown <pbrown@redhat.com>
- fixed block count bug (# 2141)
* Mon Mar 29 1999 Preston Brown <pbrown@redhat.com>
- patch to fix xargs out of bounds overflow (bug # 1279)
* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
- auto rebuild in the new build environment (release 30)
* Fri Mar 19 1999 Jeff Johnson <jbj@redhat.com>
- strip binaries.
* Mon Feb 8 1999 Jeff Johnson <jbj@redhat.com>
- remove further updatedb remnants (#1072).
* Thu Dec 03 1998 Cristian Gafton <gafton@redhat.com>
- added patch for glibc21
* Mon Nov 16 1998 Erik Troan <ewt@redhat.com>
- removed locate stuff (as we now ship slocate)
* Wed Jun 10 1998 Erik Troan <ewt@redhat.com>
- updated updatedb cron script to not look for $TMPNAME.n (which was
a relic anyway)
- added -b parameters to all of the patches
* Fri Apr 24 1998 Prospector System <bugs@redhat.com>
- translations modified for de, fr, tr
* Mon Mar 09 1998 Michael K. Johnson <johnsonm@redhat.com>
- make updatedb.cron use mktemp correctly
- make updatedb use mktemp
* Sun Nov 09 1997 Michael K. Johnson <johnsonm@redhat.com>
- nobody should own tmpfile
- ignore /net
* Wed Nov 05 1997 Michael K. Johnson <johnsonm@redhat.com>
- made updatedb.cron do a better job of cleaning up after itself.
* Tue Oct 28 1997 Donald Barnes <djb@redhat.com>
- fixed 64 bit-ism in getline.c, patch tacked on to end of glibc one
* Thu Oct 23 1997 Erik Troan <ewt@redhat.com>
- added patch for glibc 2.1
* Fri Oct 17 1997 Donnie Barnes <djb@redhat.com>
- added BuildRoot support
* Tue Oct 14 1997 Michael K. Johnson <johnsonm@redhat.com>
- made updatedb.cron work even if "nobody" can't read /root
- use mktemp in updatedb.cron
* Sun Sep 14 1997 Erik Troan <ewt@redhat.com>
- added missing info pages
- uses install-info
* Mon Jun 02 1997 Erik Troan <ewt@redhat.com>
- built with glibc
* Mon Apr 21 1997 Michael K. Johnson <johnsonm@redhat.com>
- fixed updatedb.cron

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (findutils-4.7.0.tar.xz) = 650a24507f8f4ebff83ad28dd27daa4785b4038dcaadc4fe00823b976e848527074cce3f9ec34065b7f037436d2aa6e9ec099bc05d7472c29864ac2c69de7f2e

63
tests/smoke/Makefile Normal file
View File

@ -0,0 +1,63 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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)

3
tests/smoke/PURPOSE Normal file
View File

@ -0,0 +1,3 @@
PURPOSE of /CoreOS/findutils/Sanity/smoke
Description: Smoke test for find and xargs.
Author: Branislav Nater <bnater@redhat.com>

64
tests/smoke/runtest.sh Executable file
View File

@ -0,0 +1,64 @@
#!/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

14
tests/tests.yml Normal file
View File

@ -0,0 +1,14 @@
---
# 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

65
tests/xautofs/Makefile Normal file
View File

@ -0,0 +1,65 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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)

8
tests/xautofs/PURPOSE Normal file
View File

@ -0,0 +1,8 @@
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.

90
tests/xautofs/runtest.sh Executable file
View File

@ -0,0 +1,90 @@
#!/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