From c16cf2763b751c17ef4d79d41101e8eff701e77d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0abata?= Date: Thu, 15 Oct 2020 00:22:32 +0200 Subject: [PATCH] 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 --- .gitignore | 1 + STAGE1-findutils | 9 + findutils-4.4.2-xautofs.patch | 132 ++++++ findutils-4.5.13-warnings.patch | 26 ++ findutils-4.5.15-no-locate.patch | 173 ++++++++ findutils-4.6.0-leaf-opt.patch | 122 ++++++ findutils-4.6.0-test-lock.patch | 29 ++ findutils-4.7.0-leaf-opt-xfs.patch | 164 +++++++ findutils-4.7.0-root-tests.patch | 132 ++++++ findutils-4.7.0.tar.xz.sig | 11 + findutils.spec | 679 +++++++++++++++++++++++++++++ sources | 1 + tests/smoke/Makefile | 63 +++ tests/smoke/PURPOSE | 3 + tests/smoke/runtest.sh | 64 +++ tests/tests.yml | 14 + tests/xautofs/Makefile | 65 +++ tests/xautofs/PURPOSE | 8 + tests/xautofs/runtest.sh | 90 ++++ 19 files changed, 1786 insertions(+) create mode 100644 STAGE1-findutils create mode 100644 findutils-4.4.2-xautofs.patch create mode 100644 findutils-4.5.13-warnings.patch create mode 100644 findutils-4.5.15-no-locate.patch create mode 100644 findutils-4.6.0-leaf-opt.patch create mode 100644 findutils-4.6.0-test-lock.patch create mode 100644 findutils-4.7.0-leaf-opt-xfs.patch create mode 100644 findutils-4.7.0-root-tests.patch create mode 100644 findutils-4.7.0.tar.xz.sig create mode 100644 findutils.spec create mode 100644 sources create mode 100644 tests/smoke/Makefile create mode 100644 tests/smoke/PURPOSE create mode 100755 tests/smoke/runtest.sh create mode 100644 tests/tests.yml create mode 100644 tests/xautofs/Makefile create mode 100644 tests/xautofs/PURPOSE create mode 100755 tests/xautofs/runtest.sh diff --git a/.gitignore b/.gitignore index e69de29..43bcb9f 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/findutils-4.*.*.tar.?z diff --git a/STAGE1-findutils b/STAGE1-findutils new file mode 100644 index 0000000..c3f338d --- /dev/null +++ b/STAGE1-findutils @@ -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} diff --git a/findutils-4.4.2-xautofs.patch b/findutils-4.4.2-xautofs.patch new file mode 100644 index 0000000..d8ebd51 --- /dev/null +++ b/findutils-4.4.2-xautofs.patch @@ -0,0 +1,132 @@ +From 17e470dc1acca4824b70328d733d5f99c12d0d65 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +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 + diff --git a/findutils-4.5.13-warnings.patch b/findutils-4.5.13-warnings.patch new file mode 100644 index 0000000..cb7ee9b --- /dev/null +++ b/findutils-4.5.13-warnings.patch @@ -0,0 +1,26 @@ +From 690d4bd9f29a805999a3ce4651dac9585ccc9917 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +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 + diff --git a/findutils-4.5.15-no-locate.patch b/findutils-4.5.15-no-locate.patch new file mode 100644 index 0000000..659c7cf --- /dev/null +++ b/findutils-4.5.15-no-locate.patch @@ -0,0 +1,173 @@ +From 3e5e311d23ac0a5bd5930ddb4094f7555b886329 Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +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 +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 . + +-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 + diff --git a/findutils-4.6.0-leaf-opt.patch b/findutils-4.6.0-leaf-opt.patch new file mode 100644 index 0000000..c4e0f44 --- /dev/null +++ b/findutils-4.6.0-leaf-opt.patch @@ -0,0 +1,122 @@ +From 547e7145f335dc07144f35eaacc520475068852e Mon Sep 17 00:00:00 2001 +From: Kamil Dudka +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 +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 +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 + diff --git a/findutils-4.6.0-test-lock.patch b/findutils-4.6.0-test-lock.patch new file mode 100644 index 0000000..b74c0dc --- /dev/null +++ b/findutils-4.6.0-test-lock.patch @@ -0,0 +1,29 @@ +From 129f23ce758620fade812baab811379ce8454048 Mon Sep 17 00:00:00 2001 +From: 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 + diff --git a/findutils-4.7.0-leaf-opt-xfs.patch b/findutils-4.7.0-leaf-opt-xfs.patch new file mode 100644 index 0000000..ce8e93b --- /dev/null +++ b/findutils-4.7.0-leaf-opt-xfs.patch @@ -0,0 +1,164 @@ +From b9f9ed14bda93ecb407129b69e6476813c250046 Mon Sep 17 00:00:00 2001 +From: Paul Eggert +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 it’s 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 +--- + 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 + diff --git a/findutils-4.7.0-root-tests.patch b/findutils-4.7.0-root-tests.patch new file mode 100644 index 0000000..5207ac4 --- /dev/null +++ b/findutils-4.7.0-root-tests.patch @@ -0,0 +1,132 @@ +From 498674f70816bb380ce11e62b620e4ece7763fd0 Mon Sep 17 00:00:00 2001 +From: Bernhard Voelker +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 +--- + 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 . ++ ++. "${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 + diff --git a/findutils-4.7.0.tar.xz.sig b/findutils-4.7.0.tar.xz.sig new file mode 100644 index 0000000..a6cfc51 --- /dev/null +++ b/findutils-4.7.0.tar.xz.sig @@ -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----- diff --git a/findutils.spec b/findutils.spec new file mode 100644 index 0000000..ecd05c4 --- /dev/null +++ b/findutils.spec @@ -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 - 1:4.7.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 24 2020 Kamil Dudka - 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 - 1:4.7.0-5 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Fri Apr 17 2020 Kamil Dudka - 1:4.7.0-4 +- simplify leaf optimization for XFS (#1823247) + +* Tue Feb 11 2020 Kamil Dudka - 1:4.7.0-3 +- make upstream test-suite work with root privileges (#1799064) + +* Tue Jan 28 2020 Fedora Release Engineering - 1:4.7.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Aug 30 2019 Kamil Dudka - 1:4.7.0-1 +- new upstream release + +* Thu Jul 25 2019 Fedora Release Engineering - 1:4.6.0-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 24 2019 Björn Esser - 1:4.6.0-23 +- Remove hardcoded gzip suffix from GNU info pages + +* Thu Jan 31 2019 Fedora Release Engineering - 1:4.6.0-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Nov 05 2018 Kamil Dudka - 1:4.6.0-21 +- fix programming mistakes detected by static analysis + +* Fri Jul 13 2018 Fedora Release Engineering - 1:4.6.0-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Apr 20 2018 Kamil Dudka - 1:4.6.0-19 +- fix crash caused by mistakenly enabled leaf optimization (#1558249) + +* Tue Mar 06 2018 Kamil Dudka - 1:4.6.0-18 +- fix build failure with glibc-2.28 + +* Mon Feb 19 2018 Kamil Dudka - 1:4.6.0-17 +- add explicit BR for the gcc compiler + +* Mon Feb 12 2018 Kamil Dudka - 1:4.6.0-16 +- import gnulib's FTS module from upstream commit 281b825e (#1544429) + +* Wed Feb 07 2018 Fedora Release Engineering - 1:4.6.0-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Wed Aug 02 2017 Fedora Release Engineering - 1:4.6.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1:4.6.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Mar 02 2017 Kamil Dudka - 1:4.6.0-12 +- drop ppc64le workaround no longer needed (#1417753) + +* Fri Feb 10 2017 Fedora Release Engineering - 1:4.6.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 30 2017 Kamil Dudka - 1:4.6.0-10 +- avoid using broken memcmp() code that gcc generates on ppc64le (#1417753) + +* Fri Jan 27 2017 Kamil Dudka - 1:4.6.0-9 +- add explicit BR for git as we use it in %%prep + +* Fri Sep 16 2016 Kamil Dudka - 1:4.6.0-8 +- disable leaf optimization for NFS (#1299169) + +* Fri Jun 24 2016 Kamil Dudka - 1:4.6.0-7 +- bump release to preserve upgrade path f24 -> f25 + +* Fri Jun 17 2016 Kamil Dudka - 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 - 1:4.6.0-5 +- make sure that find -exec + passes all arguments (upstream bug #48030) + +* Mon Apr 18 2016 Kamil Dudka - 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 - 1:4.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jan 06 2016 Kamil Dudka - 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 - 1:4.6.0-1 +- new upstream release +- drop oldfind(1) no longer supported by upstream + +* Fri Dec 25 2015 Kamil Dudka - 1:4.5.16-1 +- new upstream release + +* Mon Dec 21 2015 Kamil Dudka - 1:4.5.15-2 +- enable leaf optimization for XFS and NFS (#1252549) + +* Sat Dec 19 2015 Kamil Dudka - 1:4.5.15-1 +- new upstream release + +* Tue Jul 07 2015 Kamil Dudka - 1:4.5.14-7 +- make the test-suite ready for Perl 5.22 (#1239501) + +* Wed Jun 17 2015 Fedora Release Engineering - 1:4.5.14-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Mar 18 2015 Kamil Dudka - 1:4.5.14-5 +- make the test-suite ready for Python 3 + +* Sat Feb 21 2015 Till Maas - 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 - 1:4.5.14-3 +- fix a crash triggered by recursive bind mount (#1188498) + +* Sat Aug 16 2014 Fedora Release Engineering - 1:4.5.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Mon Jul 21 2014 Kamil Dudka - 1:4.5.14-1 +- new upstream release + +* Wed Jul 16 2014 Kamil Dudka - 1:4.5.13-1 +- new upstream release + +* Sat Jul 12 2014 Tom Callaway - 1:4.5.12-6 +- fix license handling + +* Sat Jun 07 2014 Fedora Release Engineering - 1:4.5.12-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Jun 02 2014 Kamil Dudka 1:4.5.12-4 +- eliminate failure of gnulib tests on little-endian PowerPC (#1083145) + +* Sat May 31 2014 Peter Robinson 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 - 1:4.5.12-2 +- silence GCC warnings + +* Mon Sep 23 2013 Kamil Dudka - 1:4.5.12-1 +- new upstream release + +* Sat Aug 03 2013 Fedora Release Engineering - 1:4.5.11-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 10 2013 Kamil Dudka - 1:4.5.11-3 +- remove findutils-4.4.2-autofs.patch no longer needed + +* Tue Jul 09 2013 Kamil Dudka - 1:4.5.11-2 +- remove support for obsolete -perm +MODE syntax (#982503) + +* Sun Feb 03 2013 Kamil Dudka - 1:4.5.11-1 +- new upstream release + +* Tue Aug 28 2012 Kamil Dudka - 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 - 1:4.5.10-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 16 2012 Kamil Dudka - 1:4.5.10-5 +- add virtual provides for bundled(gnulib) copylib (#821753) + +* Wed Jan 25 2012 Harald Hoyer 1:4.5.10-4 +- add filesystem guard + +* Wed Jan 25 2012 Harald Hoyer 1:4.5.10-3 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Fri Jan 13 2012 Fedora Release Engineering - 1:4.5.10-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed May 11 2011 Kamil Dudka - 1:4.5.10-1 +- new upstream release + +* Tue Feb 08 2011 Fedora Release Engineering - 1:4.5.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon May 24 2010 Kamil Dudka - 1:4.5.9-2 +- fix some bugs in handling of -execdir (Savannah bug #29949) + +* Wed May 05 2010 Kamil Dudka - 1:4.5.9-1 +- new upstream release, dropped applied patches + +* Tue Apr 06 2010 Kamil Dudka - 1:4.5.7-4 +- avoid assertion failure due to access permissions (#579476) + +* Sun Apr 04 2010 Kamil Dudka - 1:4.5.7-3 +- upstream bugfix http://savannah.gnu.org/bugs/?29435 + +* Sat Apr 03 2010 Kamil Dudka - 1:4.5.7-2 +- avoid assertion failure on non-recognized O_CLOEXEC + +* Sat Apr 03 2010 Kamil Dudka - 1:4.5.7-1 +- new upstream release, dropped applied patches +- eliminated compile-time warnings + +* Thu Nov 26 2009 Kamil Dudka - 1:4.4.2-6 +- update SELinux patch to the latest upstream (gnulib based) version + +* Wed Nov 18 2009 Kamil Dudka - 1:4.4.2-5 +- do not fail silently on a remount during traverse (#538536) + +* Tue Oct 20 2009 Kamil Dudka - 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 - 1:4.4.2-3 +- do process install-info only without --excludedocs(#515914) + +* Fri Jul 24 2009 Fedora Release Engineering - 1:4.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jul 1 2009 Vitezslav Crhonek - 1:4.4.2-1 +- Update to findutils-4.4.2 + +* Tue Feb 24 2009 Fedora Release Engineering - 1:4.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Apr 30 2008 Vitezslav Crhonek - 1:4.4.0-1 +- Update to findutils-4.4.0 + Resolves: #437733 + +* Mon Apr 14 2008 Vitezslav Crhonek - 1:4.2.33-3 +- Move find to /bin + Resolves: #438183 + +* Fri Mar 28 2008 Vitezslav Crhonek - 1:4.2.33-2 +- Fix xargs ARG_MAX assert + Resolves: #439168 + +* Fri Feb 15 2008 Vitezslav Crhonek - 1:4.2.33-1 +- Update to findutils-4.2.33 +- Fix License + +* Wed Feb 13 2008 Vitezslav Crhonek - 1:4.2.32-1 +- Update to findutils-4.2.32 + +* Mon Feb 11 2008 Vitezslav Crhonek - 1:4.2.31-4 +- Rebuild + +* Fri Jan 18 2008 Vitezslav Crhonek - 1:4.2.31-3 +- Rebuild + +* Thu Aug 23 2007 Vitezslav Crhonek - 1:4.2.31-2 +- fix license +- rebuild + +* Tue Jun 12 2007 Vitezslav Crhonek - 1:4.2.31-1 +- Update to findutils-4.2.31 + Resolves: #243732 + +* Fri Jan 5 2007 Miloslav Trmac - 1:4.2.29-2 +- Ignore install-info errors in scriptlets + +* Sun Nov 26 2006 Miloslav Trmac - 1:4.2.29-1 +- Update to findutils-4.2.29 +- Fix some rpmlint warnings + +* Wed Jul 12 2006 Jesse Keating - 1:4.2.27-4.1 +- rebuild + +* Sun Feb 19 2006 Miloslav Trmac - 1:4.2.27-4 +- Report the correct directory when hard link count is inconsistent (#182001) + +* Fri Feb 10 2006 Jesse Keating - 1:4.2.27-3.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 1:4.2.27-3.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Jan 30 2006 Miloslav Trmac - 1:4.2.27-3 +- Updated SELinux patch, --context is no longer valid (use -context) + +* Thu Jan 12 2006 Miloslav Trmac - 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 +- rebuilt + +* Wed Dec 7 2005 Tim Waugh 1:4.2.27-1 +- 4.2.27. +- No longer need arg_max patch. + +* Mon Nov 21 2005 Tim Waugh 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 1:4.2.25-3 +- Fix selinux patch + +* Mon Sep 5 2005 Tim Waugh 1:4.2.25-2 +- 4.2.25. + +* Mon Jun 20 2005 Tim Waugh 1:4.2.23-1 +- 4.2.23. + +* Thu Mar 17 2005 Tim Waugh 1:4.2.20-1 +- 4.2.20. + +* Mon Mar 14 2005 Tim Waugh 1:4.2.18-3 +- Applied patch from Robert Scheck to fix compilation with GCC 4 (bug #151031). + +* Wed Mar 2 2005 Tim Waugh 1:4.2.18-2 +- Rebuild for new GCC. + +* Mon Feb 21 2005 Tim Waugh 1:4.2.18-1 +- 4.2.18. + +* Mon Feb 14 2005 Tim Waugh 1:4.2.15-2 +- Added nofollow patch from upstream. + +* Mon Jan 31 2005 Tim Waugh 1:4.2.15-1 +- 4.2.15. Lots of patches removed due to upstream merge. + +* Tue Jan 4 2005 Dan Walsh 1:4.1.20-8 +- Change --context to use fnmatch instead of strcmp + +* Tue Dec 7 2004 Tim Waugh +- 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 1:4.1.20-7 +- Better xargs ARG_SIZE handling (bug #135129). + +* Fri Oct 15 2004 Tim Waugh +- Fixed d_type patch for underquoted m4 macro. + +* Fri Oct 8 2004 Tim Waugh +- Use upstream patch for find -size man page fix. + +* Wed Oct 6 2004 Tim Waugh 1:4.1.20-6 +- Fixed bug #126352. + +* Tue Oct 5 2004 Tim Waugh 1:4.1.20-5 +- Build requires gettext-devel, texinfo (bug #134692). + +* Thu Sep 30 2004 Tim Waugh 1:4.1.20-4 +- Set re->translate before re_compile_pattern (bug #134190). + +* Sun Aug 1 2004 Alan Cox 1:4.1.20-3 +- Fix build with current auto* tools (Steve Grubb) + +* Tue Jul 6 2004 Tim Waugh 1:4.1.20-2 +- Fix -iregex (bug #127297). + +* Fri Jun 25 2004 Tim Waugh 1:4.1.20-1 +- Clarify find man page (bug #126098). +- Apply changes by Robert Scheck (bug #126352): + - Upgrade to 4.1.20 and some specfile cleanup + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Thu May 20 2004 Tim Waugh 4.1.7-26 +- Fixed build requirements (bug #123746). + +* Sun Mar 14 2004 Tim Waugh 4.1.7-25 +- Apply Jakub Jelinek's patch for xargs -E/-I/-L options. + +* Thu Mar 11 2004 Tim Waugh 4.1.7-24 +- Apply selinux patch last so that it can be turned off (bug #118025). + +* Tue Mar 9 2004 Tim Waugh +- Jakub Jelinek's d_type patch improvement. + +* Sun Mar 7 2004 Tim Waugh 4.1.7-23 +- Run 'make check'. +- Apply Ulrich Drepper's improvement on the d_type patch. + +* Fri Mar 5 2004 Tim Waugh 4.1.7-22 +- Apply Jakub Jelinek's d_type patch for improved efficiency with + many common expressions. + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Tue Jan 27 2004 Dan Walsh 4.1.7-20 +- fix call to is_selinux_enabled + +* Thu Oct 30 2003 Dan Walsh 4.1.7-19 +- Turn off SELinux + +* Thu Oct 30 2003 Dan Walsh 4.1.7-18.sel +- Turn on selinux + +* Sat Oct 25 2003 Tim Waugh 4.1.7-17 +- Rebuilt. + +* Fri Oct 10 2003 Dan Walsh 4.1.7-16 +- Turn off selinux + +* Fri Oct 10 2003 Dan Walsh 4.1.7-15.sel +- Turn on selinux + +* Fri Sep 5 2003 Dan Walsh 4.1.7-15 +- Turn off selinux + +* Thu Aug 28 2003 Dan Walsh 4.1.7-14.sel +- Turn on selinux + +* Fri Jul 18 2003 Dan Walsh 4.1.7-13 +- Add SELinux patch + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Wed Apr 23 2003 Elliot Lee 4.1.7-11 +- Remove config.{sub,guess} to make ppc64 work + +* Mon Mar 17 2003 Tim Waugh 4.1.7-10 +- Make 'xargs -i -n1' behave as expected (bug #86191). + +* Wed Jan 22 2003 Tim Powers 4.1.7-9 +- rebuilt + +* Tue Oct 22 2002 Tim Waugh 4.1.7-8 +- Ship translations. +- Don't install files not packaged. + +* Wed Jul 3 2002 Tim Waugh 4.1.7-7 +- Fix usage message (bug #67828). + +* Fri Jun 21 2002 Tim Powers 4.1.7-6 +- automated rebuild + +* Thu May 23 2002 Tim Powers 4.1.7-5 +- automated rebuild + +* Tue Feb 26 2002 Tim Waugh 4.1.7-4 +- Rebuild in new environment. + +* Tue Feb 12 2002 Tim Waugh 4.1.7-3 +- s/Copyright/License/. +- Fix documentation (bug #53857). + +* Wed Jan 09 2002 Tim Powers +- automated rebuild + +* Sun Jun 03 2001 Florian La Roche +- update to 4.1.7, no additional patch needed anymore + +* Thu Feb 8 2001 Preston Brown +- remove extraneous linking to librt/libpthreads. + +* Tue Oct 17 2000 Florian La Roche +- update to 4.1.6 + +* Wed Jul 12 2000 Prospector +- automatic rebuild + +* Wed Jun 28 2000 Preston Brown +- revert to 4.1.5 ( :) ) on the advice of HJ Lu +- patch to fix finding w/ -perm flag + +* Tue Jun 27 2000 Preston Brown +- revert to 4.1.4 +- reapply numblks patch +- generate new nolocate patch, we don't ship it. + +* Mon Jun 12 2000 Preston Brown +- 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 +- 4.1.4 +- remove some obsolete patches, adapt others +- fix build on alpha + +* Wed Feb 02 2000 Cristian Gafton +- fix summary +- ma pages are compressed + +* Wed Jan 12 2000 Preston Brown +- new description. + +* Fri Aug 27 1999 Preston Brown +- fixed block count bug (# 2141) + +* Mon Mar 29 1999 Preston Brown +- patch to fix xargs out of bounds overflow (bug # 1279) + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 30) + +* Fri Mar 19 1999 Jeff Johnson +- strip binaries. + +* Mon Feb 8 1999 Jeff Johnson +- remove further updatedb remnants (#1072). + +* Thu Dec 03 1998 Cristian Gafton +- added patch for glibc21 + +* Mon Nov 16 1998 Erik Troan +- removed locate stuff (as we now ship slocate) + +* Wed Jun 10 1998 Erik Troan +- 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 +- translations modified for de, fr, tr + +* Mon Mar 09 1998 Michael K. Johnson +- make updatedb.cron use mktemp correctly +- make updatedb use mktemp + +* Sun Nov 09 1997 Michael K. Johnson +- nobody should own tmpfile +- ignore /net + +* Wed Nov 05 1997 Michael K. Johnson +- made updatedb.cron do a better job of cleaning up after itself. + +* Tue Oct 28 1997 Donald Barnes +- fixed 64 bit-ism in getline.c, patch tacked on to end of glibc one + +* Thu Oct 23 1997 Erik Troan +- added patch for glibc 2.1 + +* Fri Oct 17 1997 Donnie Barnes +- added BuildRoot support + +* Tue Oct 14 1997 Michael K. Johnson +- made updatedb.cron work even if "nobody" can't read /root +- use mktemp in updatedb.cron + +* Sun Sep 14 1997 Erik Troan +- added missing info pages +- uses install-info + +* Mon Jun 02 1997 Erik Troan +- built with glibc + +* Mon Apr 21 1997 Michael K. Johnson +- fixed updatedb.cron diff --git a/sources b/sources new file mode 100644 index 0000000..17f916f --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (findutils-4.7.0.tar.xz) = 650a24507f8f4ebff83ad28dd27daa4785b4038dcaadc4fe00823b976e848527074cce3f9ec34065b7f037436d2aa6e9ec099bc05d7472c29864ac2c69de7f2e diff --git a/tests/smoke/Makefile b/tests/smoke/Makefile new file mode 100644 index 0000000..a68f70e --- /dev/null +++ b/tests/smoke/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/findutils/Sanity/smoke +# Description: Smoke test for find and xargs. +# Author: Branislav Nater +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 " > $(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) diff --git a/tests/smoke/PURPOSE b/tests/smoke/PURPOSE new file mode 100644 index 0000000..87a1ce1 --- /dev/null +++ b/tests/smoke/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/findutils/Sanity/smoke +Description: Smoke test for find and xargs. +Author: Branislav Nater diff --git a/tests/smoke/runtest.sh b/tests/smoke/runtest.sh new file mode 100755 index 0000000..438548d --- /dev/null +++ b/tests/smoke/runtest.sh @@ -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 +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..636db22 --- /dev/null +++ b/tests/tests.yml @@ -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 diff --git a/tests/xautofs/Makefile b/tests/xautofs/Makefile new file mode 100644 index 0000000..d273b6f --- /dev/null +++ b/tests/xautofs/Makefile @@ -0,0 +1,65 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/findutils/Sanity/options/xautofs +# Description: Check xautofs option +# Author: Petr Splichal +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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 " > $(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) diff --git a/tests/xautofs/PURPOSE b/tests/xautofs/PURPOSE new file mode 100644 index 0000000..e20bfd1 --- /dev/null +++ b/tests/xautofs/PURPOSE @@ -0,0 +1,8 @@ +PURPOSE of /CoreOS/findutils/Sanity/options/xautofs +Description: Check xautofs option +Author: Petr Splichal +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. diff --git a/tests/xautofs/runtest.sh b/tests/xautofs/runtest.sh new file mode 100755 index 0000000..a0a2cb1 --- /dev/null +++ b/tests/xautofs/runtest.sh @@ -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 +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# 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