Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
07fe076610 | ||
|
8e6e2f2f86 | ||
|
c2e4abd72f |
8
.gitignore
vendored
8
.gitignore
vendored
@ -1 +1,7 @@
|
|||||||
/findutils-4.*.*.tar.?z
|
findutils-4.2.29.tar.gz
|
||||||
|
findutils-4.2.29.tar.gz.sig
|
||||||
|
findutils-4.2.31.tar.gz
|
||||||
|
findutils-4.2.32.tar.gz
|
||||||
|
findutils-4.2.33.tar.gz
|
||||||
|
findutils-4.4.0.tar.gz
|
||||||
|
findutils-4.4.0.tar.gz.sig
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
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}
|
|
24
findutils-4.4.0-no-locate.patch
Normal file
24
findutils-4.4.0-no-locate.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff -up findutils-4.4.0/Makefile.in_old findutils-4.4.0/Makefile.in
|
||||||
|
--- findutils-4.4.0/Makefile.in_old 2008-04-21 13:32:59.000000000 +0200
|
||||||
|
+++ findutils-4.4.0/Makefile.in 2008-04-21 13:33:20.000000000 +0200
|
||||||
|
@@ -572,7 +572,7 @@ EXTRA_DIST = COPYING ChangeLog TODO conf
|
||||||
|
THANKS import-gnulib.sh import-gnulib.config
|
||||||
|
|
||||||
|
# "tests" is the gnulib unit test dir.
|
||||||
|
-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4
|
||||||
|
+SUBDIRS = gnulib tests build-aux lib find xargs doc po m4
|
||||||
|
ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
|
||||||
|
TESTFILE_SUFFIXES = .exp .xo .xe .xi
|
||||||
|
all: config.h
|
||||||
|
diff -up findutils-4.4.0/Makefile.am_old findutils-4.4.0/Makefile.am
|
||||||
|
--- findutils-4.4.0/Makefile.am_old 2007-11-29 11:50:16.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/Makefile.am 2008-04-21 13:32:51.000000000 +0200
|
||||||
|
@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS=gnits
|
||||||
|
EXTRA_DIST = COPYING ChangeLog TODO config.h.in stamp-h.in \
|
||||||
|
THANKS import-gnulib.sh import-gnulib.config
|
||||||
|
# "tests" is the gnulib unit test dir.
|
||||||
|
-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4
|
||||||
|
+SUBDIRS = gnulib tests build-aux lib find xargs doc po m4
|
||||||
|
|
||||||
|
ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
|
||||||
|
|
518
findutils-4.4.0-selinux.patch
Normal file
518
findutils-4.4.0-selinux.patch
Normal file
@ -0,0 +1,518 @@
|
|||||||
|
diff -up findutils-4.4.0/configure.ac.selinux findutils-4.4.0/configure.ac
|
||||||
|
--- findutils-4.4.0/configure.ac.selinux 2008-03-15 12:45:00.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/configure.ac 2008-04-25 16:52:54.000000000 +0200
|
||||||
|
@@ -114,6 +114,16 @@ AC_CHECK_LIB([m],[fabs],[FINDLIBS="-lm $
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_FABS_IN_LIBM,1,[fabs is defined in -lm]))
|
||||||
|
AC_SUBST([FINDLIBS])
|
||||||
|
|
||||||
|
+AC_ARG_WITH([selinux],
|
||||||
|
+ AS_HELP_STRING([--without-selinux], [disable SELinux support]),
|
||||||
|
+ [:],
|
||||||
|
+[AC_CHECK_LIB([selinux], [is_selinux_enabled],
|
||||||
|
+ [with_selinux=yes], [with_selinux=no])])
|
||||||
|
+if test x$with_selinux != xno; then
|
||||||
|
+ AC_DEFINE([WITH_SELINUX], [1], [Define to support SELinux])
|
||||||
|
+ AC_SUBST([LIBSELINUX], [-lselinux])
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
dnl Checks for header files.
|
||||||
|
AC_HEADER_STDC
|
||||||
|
dnl Assume unistd.h is present - coreutils does too.
|
||||||
|
diff -up findutils-4.4.0/doc/find.texi.selinux findutils-4.4.0/doc/find.texi
|
||||||
|
--- findutils-4.4.0/doc/find.texi.selinux 2008-03-10 21:31:16.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/doc/find.texi 2008-04-29 14:57:42.000000000 +0200
|
||||||
|
@@ -7,7 +7,6 @@
|
||||||
|
@c %**end of header
|
||||||
|
|
||||||
|
@include version.texi
|
||||||
|
-@include ../locate/dblocation.texi
|
||||||
|
|
||||||
|
@iftex
|
||||||
|
@finalout
|
||||||
|
@@ -1242,6 +1241,14 @@ situation.
|
||||||
|
|
||||||
|
@end deffn
|
||||||
|
|
||||||
|
+@deffn Test -context pattern
|
||||||
|
+True if file's SELinux context matches the pattern @var{pattern}.
|
||||||
|
+The pattern uses shell glob matching.
|
||||||
|
+
|
||||||
|
+This predicate is supported only on @code{find} versions compiled with
|
||||||
|
+SELinux support and only when SELinux is enabled.
|
||||||
|
+@end deffn
|
||||||
|
+
|
||||||
|
@node Contents
|
||||||
|
@section Contents
|
||||||
|
|
||||||
|
@@ -1826,6 +1833,9 @@ value used for BLOCKSIZE is system-depen
|
||||||
|
bytes. If the file size is zero, the value printed is undefined. On
|
||||||
|
systems which lack support for st_blocks, a file's sparseness is
|
||||||
|
assumed to be 1.0.
|
||||||
|
+@item %Z
|
||||||
|
+File's SELinux context, or empty string if the file has no SELinux context
|
||||||
|
+or this version of find does not support SELinux.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@node Location Directives
|
||||||
|
diff -up findutils-4.4.0/find/find.c.selinux findutils-4.4.0/find/find.c
|
||||||
|
--- findutils-4.4.0/find/find.c.selinux 2008-03-10 21:26:34.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/find/find.c 2008-04-28 17:19:26.000000000 +0200
|
||||||
|
@@ -120,6 +120,36 @@ int get_current_dirfd(void)
|
||||||
|
return AT_FDCWD;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+static int
|
||||||
|
+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv)
|
||||||
|
+{
|
||||||
|
+ /* Our original getfilecon() call failed. Perhaps we can't follow a
|
||||||
|
+ * symbolic link. If that might be the problem, lgetfilecon() the link.
|
||||||
|
+ * Otherwise, admit defeat.
|
||||||
|
+ */
|
||||||
|
+ switch (errno)
|
||||||
|
+ {
|
||||||
|
+ case ENOENT:
|
||||||
|
+ case ENOTDIR:
|
||||||
|
+#ifdef DEBUG_STAT
|
||||||
|
+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name);
|
||||||
|
+#endif
|
||||||
|
+ return lgetfilecon(name, p);
|
||||||
|
+
|
||||||
|
+ case EACCES:
|
||||||
|
+ case EIO:
|
||||||
|
+ case ELOOP:
|
||||||
|
+ case ENAMETOOLONG:
|
||||||
|
+#ifdef EOVERFLOW
|
||||||
|
+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */
|
||||||
|
+#endif
|
||||||
|
+ default:
|
||||||
|
+ return prev_rv;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+#endif /* WITH_SELINUX */
|
||||||
|
+
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char **argv)
|
||||||
|
@@ -1270,7 +1300,7 @@ process_path (char *pathname, char *name
|
||||||
|
static void
|
||||||
|
process_dir (char *pathname, char *name, int pathlen, const struct stat *statp, char *parent)
|
||||||
|
{
|
||||||
|
- int subdirs_left; /* Number of unexamined subdirs in PATHNAME. */
|
||||||
|
+ int subdirs_left = 0; /* Number of unexamined subdirs in PATHNAME. */
|
||||||
|
boolean subdirs_unreliable; /* if true, cannot use dir link count as subdir limif (if false, it may STILL be unreliable) */
|
||||||
|
unsigned int idx; /* Which entry are we on? */
|
||||||
|
struct stat stat_buf;
|
||||||
|
diff -up findutils-4.4.0/find/find.1.selinux findutils-4.4.0/find/find.1
|
||||||
|
--- findutils-4.4.0/find/find.1.selinux 2007-12-19 20:53:14.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/find/find.1 2008-04-25 16:52:54.000000000 +0200
|
||||||
|
@@ -934,6 +934,8 @@ if \fIc\fR is `l'. In other words, for
|
||||||
|
checks the type of the file that
|
||||||
|
.B \-type
|
||||||
|
does not check.
|
||||||
|
+.IP "\-context \fIpattern\fR"
|
||||||
|
+(SELinux only) Security context of the file matches glob \fIpattern\fR.
|
||||||
|
|
||||||
|
.SS ACTIONS
|
||||||
|
.IP "\-delete\fR"
|
||||||
|
@@ -1340,6 +1342,8 @@ File's type (like in
|
||||||
|
U=unknown type (shouldn't happen)
|
||||||
|
.IP %Y
|
||||||
|
File's type (like %y), plus follow symlinks: L=loop, N=nonexistent
|
||||||
|
+.IP %Z
|
||||||
|
+(SELinux only) file's security context.
|
||||||
|
.PP
|
||||||
|
A `%' character followed by any other character is discarded, but the
|
||||||
|
other character is printed (don't rely on this, as further format
|
||||||
|
diff -up findutils-4.4.0/find/pred.c.selinux findutils-4.4.0/find/pred.c
|
||||||
|
--- findutils-4.4.0/find/pred.c.selinux 2008-03-10 10:37:22.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/find/pred.c 2008-04-28 17:09:17.000000000 +0200
|
||||||
|
@@ -47,6 +47,10 @@
|
||||||
|
#include "error.h"
|
||||||
|
#include "verify.h"
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+#include <selinux/selinux.h>
|
||||||
|
+#endif /*WITH_SELINUX*/
|
||||||
|
+
|
||||||
|
#if ENABLE_NLS
|
||||||
|
# include <libintl.h>
|
||||||
|
# define _(Text) gettext (Text)
|
||||||
|
@@ -229,6 +233,9 @@ struct pred_assoc pred_table[] =
|
||||||
|
{pred_user, "user "},
|
||||||
|
{pred_writable, "writable "},
|
||||||
|
{pred_xtype, "xtype "},
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ {pred_context, "context"},
|
||||||
|
+#endif /*WITH_SELINUX*/
|
||||||
|
{0, "none "}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
@@ -1053,6 +1060,27 @@ do_fprintf(struct format_val *dest,
|
||||||
|
mode_to_filetype(stat_buf->st_mode & S_IFMT));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
+ case 'Z': /* SELinux security context */
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ {
|
||||||
|
+ security_context_t scontext;
|
||||||
|
+ int rv;
|
||||||
|
+ rv = (*options.x_getfilecon) (state.rel_pathname, &scontext);
|
||||||
|
+
|
||||||
|
+ if (rv < 0)
|
||||||
|
+ {
|
||||||
|
+ fprintf (stderr, "getfilecon(%s): %s", pathname,
|
||||||
|
+ strerror(errno));
|
||||||
|
+ fflush (stderr);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ checked_fprintf (dest, segment->text, scontext);
|
||||||
|
+ freecon (scontext);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+#endif /* WITH_SELINUX */
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
/* end of KIND_FORMAT case */
|
||||||
|
break;
|
||||||
|
@@ -1841,6 +1869,33 @@ pred_xtype (const char *pathname, struct
|
||||||
|
*/
|
||||||
|
return (pred_type (pathname, &sbuf, pred_ptr));
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+
|
||||||
|
+boolean
|
||||||
|
+pred_context (const char *pathname, struct stat *stat_buf,
|
||||||
|
+ struct predicate *pred_ptr)
|
||||||
|
+{
|
||||||
|
+ int rv;
|
||||||
|
+ security_context_t scontext;
|
||||||
|
+
|
||||||
|
+ rv = (*options.x_getfilecon) (state.rel_pathname, &scontext);
|
||||||
|
+
|
||||||
|
+ if (rv < 0)
|
||||||
|
+ {
|
||||||
|
+ fprintf (stderr, "getfilecon(%s): %s\n", pathname, strerror(errno));
|
||||||
|
+ fflush (stderr);
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ rv = (fnmatch (pred_ptr->args.scontext, scontext, 0) == 0);
|
||||||
|
+ freecon (scontext);
|
||||||
|
+ return rv;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#endif /*WITH_SELINUX*/
|
||||||
|
+
|
||||||
|
|
||||||
|
/* 1) fork to get a child; parent remembers the child pid
|
||||||
|
2) child execs the command requested
|
||||||
|
diff -up findutils-4.4.0/find/tree.c.selinux findutils-4.4.0/find/tree.c
|
||||||
|
--- findutils-4.4.0/find/tree.c.selinux 2007-12-20 22:40:35.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/find/tree.c 2008-04-30 11:12:46.000000000 +0200
|
||||||
|
@@ -953,7 +953,8 @@ static struct pred_cost_lookup costlooku
|
||||||
|
{ pred_used , NeedsStatInfo },
|
||||||
|
{ pred_user , NeedsStatInfo },
|
||||||
|
{ pred_writable , NeedsAccessInfo },
|
||||||
|
- { pred_xtype , NeedsType } /* roughly correct unless most files are symlinks */
|
||||||
|
+ { pred_xtype , NeedsType }, /* roughly correct unless most files are symlinks */
|
||||||
|
+ { pred_context , NeedsNothing } /* remove warning only:) */
|
||||||
|
};
|
||||||
|
static int pred_table_sorted = 0;
|
||||||
|
|
||||||
|
@@ -1434,6 +1435,9 @@ get_new_pred (const struct parser_table
|
||||||
|
last_pred->need_stat = true;
|
||||||
|
last_pred->need_type = true;
|
||||||
|
last_pred->args.str = NULL;
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ last_pred->args.scontext = NULL;
|
||||||
|
+#endif
|
||||||
|
last_pred->pred_next = NULL;
|
||||||
|
last_pred->pred_left = NULL;
|
||||||
|
last_pred->pred_right = NULL;
|
||||||
|
diff -up findutils-4.4.0/find/Makefile.am.selinux findutils-4.4.0/find/Makefile.am
|
||||||
|
--- findutils-4.4.0/find/Makefile.am.selinux 2007-07-22 14:29:31.000000000 +0200
|
||||||
|
+++ findutils-4.4.0/find/Makefile.am 2008-04-25 16:52:54.000000000 +0200
|
||||||
|
@@ -26,7 +26,7 @@ endif
|
||||||
|
|
||||||
|
EXTRA_DIST = defs.h $(man_MANS)
|
||||||
|
INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\"
|
||||||
|
-LDADD = ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ @LIB_CLOCK_GETTIME@ @FINDLIBS@
|
||||||
|
+LDADD = ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ @LIB_CLOCK_GETTIME@ @FINDLIBS@ @LIBSELINUX@
|
||||||
|
man_MANS = find.1
|
||||||
|
SUBDIRS = . testsuite
|
||||||
|
|
||||||
|
diff -up findutils-4.4.0/find/parser.c.selinux findutils-4.4.0/find/parser.c
|
||||||
|
--- findutils-4.4.0/find/parser.c.selinux 2008-03-10 10:37:21.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/find/parser.c 2008-04-28 15:34:45.000000000 +0200
|
||||||
|
@@ -53,6 +53,10 @@
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+#include <selinux/selinux.h>
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#if ENABLE_NLS
|
||||||
|
# include <libintl.h>
|
||||||
|
# define _(Text) gettext (Text)
|
||||||
|
@@ -156,6 +160,9 @@ static boolean parse_noignore_race PARAM
|
||||||
|
static boolean parse_warn PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||||
|
static boolean parse_xtype PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||||
|
static boolean parse_quit PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+static boolean parse_context PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
boolean parse_print PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||||
|
|
||||||
|
@@ -252,6 +259,9 @@ static struct parser_table const parse_t
|
||||||
|
PARSE_TEST ("cmin", cmin), /* GNU */
|
||||||
|
PARSE_TEST ("cnewer", cnewer), /* GNU */
|
||||||
|
{ARG_TEST, "ctime", parse_time, pred_ctime}, /* POSIX */
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ PARSE_TEST ("context", context), /* GNU */
|
||||||
|
+#endif
|
||||||
|
PARSE_POSOPT ("daystart", daystart), /* GNU */
|
||||||
|
PARSE_ACTION ("delete", delete), /* GNU, Mac OS, FreeBSD */
|
||||||
|
PARSE_OPTION ("d", d), /* Mac OS X, FreeBSD, NetBSD, OpenBSD, but deprecated in favour of -depth */
|
||||||
|
@@ -348,6 +358,89 @@ static struct parser_table const parse_t
|
||||||
|
static const char *first_nonoption_arg = NULL;
|
||||||
|
static const struct parser_table *noop = NULL;
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+static int
|
||||||
|
+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv)
|
||||||
|
+{
|
||||||
|
+ /* Our original getfilecon() call failed. Perhaps we can't follow a
|
||||||
|
+ * symbolic link. If that might be the problem, lgetfilecon() the link.
|
||||||
|
+ * Otherwise, admit defeat.
|
||||||
|
+ */
|
||||||
|
+ switch (errno)
|
||||||
|
+ {
|
||||||
|
+ case ENOENT:
|
||||||
|
+ case ENOTDIR:
|
||||||
|
+#ifdef DEBUG_STAT
|
||||||
|
+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name);
|
||||||
|
+#endif
|
||||||
|
+ return lgetfilecon(name, p);
|
||||||
|
+
|
||||||
|
+ case EACCES:
|
||||||
|
+ case EIO:
|
||||||
|
+ case ELOOP:
|
||||||
|
+ case ENAMETOOLONG:
|
||||||
|
+#ifdef EOVERFLOW
|
||||||
|
+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */
|
||||||
|
+#endif
|
||||||
|
+ default:
|
||||||
|
+ return prev_rv;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* optionh_getfilecon() implements the getfilecon operation when the
|
||||||
|
+ * -H option is in effect.
|
||||||
|
+ *
|
||||||
|
+ * If the item to be examined is a command-line argument, we follow
|
||||||
|
+ * symbolic links. If the getfilecon() call fails on the command-line
|
||||||
|
+ * item, we fall back on the properties of the symbolic link.
|
||||||
|
+ *
|
||||||
|
+ * If the item to be examined is not a command-line argument, we
|
||||||
|
+ * examine the link itself.
|
||||||
|
+ */
|
||||||
|
+int
|
||||||
|
+optionh_getfilecon(const char *name, security_context_t *p)
|
||||||
|
+{
|
||||||
|
+ if (0 == state.curdepth)
|
||||||
|
+ {
|
||||||
|
+ /* This file is from the command line; deference the link (if it
|
||||||
|
+ * is a link).
|
||||||
|
+ */
|
||||||
|
+ int rv = getfilecon(name, p);
|
||||||
|
+ if (0 == rv)
|
||||||
|
+ return 0; /* success */
|
||||||
|
+ else
|
||||||
|
+ return fallback_getfilecon(name, p, rv);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ /* Not a file on the command line; do not derefernce the link.
|
||||||
|
+ */
|
||||||
|
+ return lgetfilecon(name, p);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+/* optionl_getfilecon() implements the getfilecon operation when the
|
||||||
|
+ * -L option is in effect. That option makes us examine the thing the
|
||||||
|
+ * symbolic link points to, not the symbolic link itself.
|
||||||
|
+ */
|
||||||
|
+int
|
||||||
|
+optionl_getfilecon(const char *name, security_context_t *p)
|
||||||
|
+{
|
||||||
|
+ int rv = getfilecon(name, p);
|
||||||
|
+ if (0 == rv)
|
||||||
|
+ return 0; /* normal case. */
|
||||||
|
+ else
|
||||||
|
+ return fallback_getfilecon(name, p, rv);
|
||||||
|
+}
|
||||||
|
+/* optionp_getfilecon() implements the stat operation when the -P
|
||||||
|
+ * option is in effect (this is also the default). That option makes
|
||||||
|
+ * us examine the symbolic link itself, not the thing it points to.
|
||||||
|
+ */
|
||||||
|
+int
|
||||||
|
+optionp_getfilecon(const char *name, security_context_t *p)
|
||||||
|
+{
|
||||||
|
+ return lgetfilecon(name, p);
|
||||||
|
+}
|
||||||
|
+#endif /* WITH_SELINUX */
|
||||||
|
|
||||||
|
void
|
||||||
|
check_option_combinations(const struct predicate *p)
|
||||||
|
@@ -451,11 +544,17 @@ set_follow_state(enum SymlinkOption opt)
|
||||||
|
{
|
||||||
|
case SYMLINK_ALWAYS_DEREF: /* -L */
|
||||||
|
options.xstat = optionl_stat;
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ options.x_getfilecon = optionl_getfilecon;
|
||||||
|
+#endif
|
||||||
|
options.no_leaf_check = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SYMLINK_NEVER_DEREF: /* -P (default) */
|
||||||
|
options.xstat = optionp_stat;
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ options.x_getfilecon = optionp_getfilecon;
|
||||||
|
+#endif
|
||||||
|
/* Can't turn no_leaf_check off because the user might have specified
|
||||||
|
* -noleaf anyway
|
||||||
|
*/
|
||||||
|
@@ -463,6 +562,9 @@ set_follow_state(enum SymlinkOption opt)
|
||||||
|
|
||||||
|
case SYMLINK_DEREF_ARGSONLY: /* -H */
|
||||||
|
options.xstat = optionh_stat;
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ options.x_getfilecon = optionh_getfilecon;
|
||||||
|
+#endif
|
||||||
|
options.no_leaf_check = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1128,8 +1230,12 @@ tests (N can be +N or -N or N): -amin N
|
||||||
|
-nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN\n\
|
||||||
|
-readable -writable -executable\n\
|
||||||
|
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n\
|
||||||
|
- -used N -user NAME -xtype [bcdpfls]\n"));
|
||||||
|
+ -used N -user NAME -xtype [bcdpfls]"));
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
puts (_("\
|
||||||
|
+ -context CONTEXT\n"));
|
||||||
|
+#endif
|
||||||
|
+ puts (_("\n\
|
||||||
|
actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n\
|
||||||
|
-fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit\n\
|
||||||
|
-exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;\n\
|
||||||
|
@@ -2492,6 +2598,10 @@ parse_version (const struct parser_table
|
||||||
|
printf("LEAF_OPTIMISATION ");
|
||||||
|
++features;
|
||||||
|
#endif
|
||||||
|
+#if defined(WITH_SELINUX)
|
||||||
|
+ printf("SELINUX ");
|
||||||
|
+ ++features;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
flags = 0;
|
||||||
|
if (is_fts_enabled(&flags))
|
||||||
|
@@ -2526,6 +2636,32 @@ parse_version (const struct parser_table
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+static boolean
|
||||||
|
+parse_context (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||||
|
+{
|
||||||
|
+ struct predicate *our_pred;
|
||||||
|
+
|
||||||
|
+ if ((argv == NULL) || (argv[*arg_ptr] == NULL))
|
||||||
|
+ return false;
|
||||||
|
+
|
||||||
|
+ if (is_selinux_enabled() <= 0)
|
||||||
|
+ {
|
||||||
|
+ error (1, 0, _("invalid predicate -context: SELinux is not enabled."));
|
||||||
|
+ return false;
|
||||||
|
+ }
|
||||||
|
+ our_pred = insert_primary (entry);
|
||||||
|
+ our_pred->need_stat = false;
|
||||||
|
+#ifdef DEBUG
|
||||||
|
+ our_pred->p_name = find_pred_name (pred_context);
|
||||||
|
+#endif /*DEBUG*/
|
||||||
|
+ our_pred->args.scontext = argv[*arg_ptr];
|
||||||
|
+
|
||||||
|
+ (*arg_ptr)++;
|
||||||
|
+ return true;
|
||||||
|
+}
|
||||||
|
+#endif /* WITH_SELINUX */
|
||||||
|
+
|
||||||
|
static boolean
|
||||||
|
parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||||
|
{
|
||||||
|
@@ -2777,7 +2913,7 @@ insert_fprintf (struct format_val *vec,
|
||||||
|
if (*scan2 == '.')
|
||||||
|
for (scan2++; ISDIGIT (*scan2); scan2++)
|
||||||
|
/* Do nothing. */ ;
|
||||||
|
- if (strchr ("abcdDfFgGhHiklmMnpPsStuUyY", *scan2))
|
||||||
|
+ if (strchr ("abcdDfFgGhHiklmMnpPsStuUyYZ", *scan2))
|
||||||
|
{
|
||||||
|
segmentp = make_segment (segmentp, format, scan2 - format,
|
||||||
|
KIND_FORMAT, *scan2, 0,
|
||||||
|
@@ -2904,6 +3040,7 @@ make_segment (struct segment **segment,
|
||||||
|
case 'h': /* leading directories part of path */
|
||||||
|
case 'p': /* pathname */
|
||||||
|
case 'P': /* pathname with ARGV element stripped */
|
||||||
|
+ case 'Z': /* SELinux security context */
|
||||||
|
*fmt++ = 's';
|
||||||
|
break;
|
||||||
|
|
||||||
|
diff -up findutils-4.4.0/find/defs.h.selinux findutils-4.4.0/find/defs.h
|
||||||
|
--- findutils-4.4.0/find/defs.h.selinux 2008-03-10 10:37:21.000000000 +0100
|
||||||
|
+++ findutils-4.4.0/find/defs.h 2008-04-25 16:52:54.000000000 +0200
|
||||||
|
@@ -91,6 +91,9 @@ int get_statinfo PARAMS((const char *pat
|
||||||
|
#define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW)
|
||||||
|
#define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX)
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+#include <selinux/selinux.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
struct predicate;
|
||||||
|
struct options;
|
||||||
|
@@ -315,6 +318,9 @@ struct predicate
|
||||||
|
struct samefile_file_id samefileid; /* samefile */
|
||||||
|
mode_t type; /* type */
|
||||||
|
struct format_val printf_vec; /* printf fprintf fprint ls fls print0 fprint0 print */
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ security_context_t scontext; /* scontext */
|
||||||
|
+#endif
|
||||||
|
} args;
|
||||||
|
|
||||||
|
/* The next predicate in the user input sequence,
|
||||||
|
@@ -459,6 +465,9 @@ PREDICATEFUNCTION pred_used;
|
||||||
|
PREDICATEFUNCTION pred_user;
|
||||||
|
PREDICATEFUNCTION pred_writable;
|
||||||
|
PREDICATEFUNCTION pred_xtype;
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+PREDICATEFUNCTION pred_context;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -601,6 +610,10 @@ struct options
|
||||||
|
*/
|
||||||
|
int regex_options;
|
||||||
|
|
||||||
|
+#ifdef WITH_SELINUX
|
||||||
|
+ int (*x_getfilecon) ();
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* Optimisation level. One is the default.
|
||||||
|
*/
|
||||||
|
unsigned short optimisation_level;
|
@ -1,132 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1606,6 +1606,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
|
|
||||||
@@ -562,6 +562,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
|
|
||||||
@@ -638,6 +638,9 @@ to stat them; this gives a significant increase in search speed.
|
|
||||||
.IP "\-version, \-\-version"
|
|
||||||
Print the \fBfind\fR version number and exit.
|
|
||||||
|
|
||||||
+.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
|
|
||||||
@@ -435,6 +435,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
|
|
||||||
@@ -139,6 +139,7 @@ static bool parse_used (const struct parser_table*, char *argv[], int *
|
|
||||||
static bool parse_user (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
static bool parse_wholename (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
static bool parse_xdev (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
+static bool parse_xautofs (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
static bool parse_ignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
static bool parse_noignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
static bool parse_warn (const struct parser_table*, char *argv[], int *arg_ptr);
|
|
||||||
@@ -304,6 +305,7 @@ static struct parser_table const parse_table[] =
|
|
||||||
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but now -path is standardized since POSIX 2008 */
|
|
||||||
{ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */
|
|
||||||
PARSE_OPTION ("xdev", xdev), /* POSIX */
|
|
||||||
+ PARSE_OPTION ("xautofs", xautofs),
|
|
||||||
PARSE_TEST ("xtype", xtype), /* GNU */
|
|
||||||
#ifdef UNIMPLEMENTED_UNIX
|
|
||||||
/* It's pretty ugly for find to know about archive formats.
|
|
||||||
@@ -2607,6 +2609,13 @@ parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
|
|
||||||
return parse_noop (entry, argv, arg_ptr);
|
|
||||||
}
|
|
||||||
|
|
||||||
+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
|
|
||||||
@@ -183,7 +183,7 @@ Positional options (always true):\n\
|
|
||||||
HTL (_("\n\
|
|
||||||
Normal options (always true, specified before other expressions):\n\
|
|
||||||
-depth -files0-from FILE -maxdepth LEVELS -mindepth LEVELS\n\
|
|
||||||
- -mount -noleaf -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
|
||||||
+ -mount -noleaf -xautofs -xdev -ignore_readdir_race -noignore_readdir_race\n"));
|
|
||||||
HTL (_("\n\
|
|
||||||
Tests (N can be +N or -N or N):\n\
|
|
||||||
-amin N -anewer FILE -atime N -cmin N -cnewer FILE -context CONTEXT\n\
|
|
||||||
@@ -1028,6 +1028,7 @@ set_option_defaults (struct options *p)
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -1346,7 +1346,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
|
|
||||||
|
|
@ -1,173 +0,0 @@
|
|||||||
From 3e5e311d23ac0a5bd5930ddb4094f7555b886329 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
Date: Sat, 19 Dec 2015 22:56:40 +0100
|
|
||||||
Subject: [PATCH 1/2] Revert "Don't include dblocation.texi from original spot,
|
|
||||||
symlink it."
|
|
||||||
|
|
||||||
This reverts commit f59d88e456553dfe0b5185caf75e4041285fd595.
|
|
||||||
---
|
|
||||||
doc/Makefile.am | 7 +------
|
|
||||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
|
||||||
index f6f7443..6fbf57b 100644
|
|
||||||
--- a/doc/Makefile.am
|
|
||||||
+++ b/doc/Makefile.am
|
|
||||||
@@ -16,11 +16,9 @@ AM_CFLAGS = $(WARN_CFLAGS)
|
|
||||||
|
|
||||||
info_TEXINFOS = find.texi find-maint.texi
|
|
||||||
find_TEXINFOS = perm.texi parse-datetime.texi regexprops.texi fdl.texi
|
|
||||||
-BUILT_SOURCES = dblocation.texi
|
|
||||||
-nodist_find_TEXINFOS = dblocation.texi
|
|
||||||
find_maint_TEXINFOS = fdl.texi
|
|
||||||
MOSTLYCLEANFILES = find.cps
|
|
||||||
-CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz dblocation.texi \
|
|
||||||
+CLEANFILES = find.txt find_mono.html findutils.texi_html_node.tar.gz \
|
|
||||||
find_mono.html findutils.texi_html_node.tar.gz \
|
|
||||||
find-info.tar.gz find.texi.tar.gz \
|
|
||||||
find.txt tmp-doc-install find_mono.html.gz
|
|
||||||
@@ -73,9 +71,6 @@ findutils.texi_html_node.tar.gz: find.html
|
|
||||||
tar zcf $@ find.html
|
|
||||||
|
|
||||||
|
|
||||||
-dblocation.texi: ../locate/dblocation.texi
|
|
||||||
- $(LN_S) ../locate/dblocation.texi $@
|
|
||||||
-
|
|
||||||
find-info.tar.gz:
|
|
||||||
$(MKDIR_P) tmp-doc-install/info
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) \
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
||||||
From d5473caa86f689ebcadacc593f5a71781c99e829 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
Date: Wed, 11 May 2011 16:46:13 +0200
|
|
||||||
Subject: [PATCH 2/2] findutils-4.4.0-no-locate.patch
|
|
||||||
|
|
||||||
---
|
|
||||||
Makefile.am | 2 +-
|
|
||||||
configure.ac | 2 --
|
|
||||||
doc/find.texi | 24 ++++++++----------------
|
|
||||||
tests/local.mk | 2 +-
|
|
||||||
4 files changed, 10 insertions(+), 20 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile.am b/Makefile.am
|
|
||||||
index af82d54..6ad453b 100644
|
|
||||||
--- a/Makefile.am
|
|
||||||
+++ b/Makefile.am
|
|
||||||
@@ -35,7 +35,7 @@ DISTCLEANFILES = tool-versions.txt
|
|
||||||
|
|
||||||
|
|
||||||
# "gnulib-tests" is the gnulib unit test dir.
|
|
||||||
-SUBDIRS = gl build-aux lib find xargs locate doc po m4 gnulib-tests
|
|
||||||
+SUBDIRS = gl build-aux lib find xargs doc po m4 gnulib-tests
|
|
||||||
|
|
||||||
ALL_RECURSIVE_TARGETS =
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index ce0e768..521e665 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -309,8 +309,6 @@ find/testsuite/Makefile
|
|
||||||
gl/Makefile
|
|
||||||
gl/lib/Makefile
|
|
||||||
lib/Makefile
|
|
||||||
-locate/Makefile
|
|
||||||
-locate/testsuite/Makefile
|
|
||||||
m4/Makefile
|
|
||||||
po/Makefile.in
|
|
||||||
po/Makefile
|
|
||||||
diff --git a/doc/find.texi b/doc/find.texi
|
|
||||||
index c2714dd..01367a4 100644
|
|
||||||
--- a/doc/find.texi
|
|
||||||
+++ b/doc/find.texi
|
|
||||||
@@ -7,7 +7,6 @@
|
|
||||||
@c @setchapternewpage odd
|
|
||||||
@c %**end of header
|
|
||||||
|
|
||||||
-@include dblocation.texi
|
|
||||||
|
|
||||||
@iftex
|
|
||||||
@finalout
|
|
||||||
@@ -661,8 +660,7 @@ the databases are updated, and the directories for which they contain
|
|
||||||
entries.
|
|
||||||
|
|
||||||
Here is how to select which file name databases @code{locate}
|
|
||||||
-searches. The default is system-dependent. At the time this document
|
|
||||||
-was generated, the default was @file{@value{LOCATE_DB}}.
|
|
||||||
+searches. The default is system-dependent.
|
|
||||||
|
|
||||||
@table @code
|
|
||||||
@item --database=@var{path}
|
|
||||||
@@ -3112,13 +3110,9 @@ thrashing the network.
|
|
||||||
directories are indexed by each database file.
|
|
||||||
|
|
||||||
The default location for the locate database depends on how findutils
|
|
||||||
-is built, but the findutils installation accompanying this manual uses
|
|
||||||
-the default location @file{@value{LOCATE_DB}}.
|
|
||||||
-
|
|
||||||
-If no database exists at @file{@value{LOCATE_DB}} but the user did not
|
|
||||||
-specify where to look (by using @samp{-d} or setting
|
|
||||||
-@env{LOCATE_PATH}), then @code{locate} will also check for a
|
|
||||||
-``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
|
||||||
+is built. If user did not specify where to look (by using @samp{-d}
|
|
||||||
+or setting @code{LOCATE_PATH}), then @code{locate} will also check for
|
|
||||||
+a ``secure'' database in @file{/var/lib/slocate/slocate.db}.
|
|
||||||
|
|
||||||
@node Database Formats
|
|
||||||
@section Database Formats
|
|
||||||
@@ -3627,8 +3621,7 @@ present.
|
|
||||||
|
|
||||||
@item --database=@var{path}
|
|
||||||
@itemx -d @var{path}
|
|
||||||
-Instead of searching the default @code{locate} database
|
|
||||||
-@file{@value{LOCATE_DB}}, @code{locate} searches the file
|
|
||||||
+@code{locate} searches the file
|
|
||||||
name databases in @var{path}, which is a colon-separated list of
|
|
||||||
database file names. You can also use the environment variable
|
|
||||||
@env{LOCATE_PATH} to set the list of database files to search. The
|
|
||||||
@@ -3803,8 +3796,7 @@ The environment variable @env{PRUNEFS} also sets this value. Default
|
|
||||||
is @file{nfs NFS proc}.
|
|
||||||
|
|
||||||
@item --output=@var{dbfile}
|
|
||||||
-The database file to build. The default is system-dependent, but
|
|
||||||
-when this document was formatted it was @file{@value{LOCATE_DB}}.
|
|
||||||
+The database file to build.
|
|
||||||
|
|
||||||
@item --localuser=@var{user}
|
|
||||||
The user to search the non-network directories as, using @code{su}.
|
|
||||||
@@ -5828,7 +5820,7 @@ See the manual of the system call @code{dup2(2)}.
|
|
||||||
@section Error Messages From @code{locate}
|
|
||||||
|
|
||||||
@table @samp
|
|
||||||
-@item warning: database @file{@value{LOCATE_DB}} is more than 8 days old
|
|
||||||
+@item warning: database @file{LOCATE_DB} is more than 8 days old
|
|
||||||
The @code{locate} program relies on a database which is periodically
|
|
||||||
built by the @code{updatedb} program. That hasn't happened in a long
|
|
||||||
time. To fix this problem, run @code{updatedb} manually. This can
|
|
||||||
@@ -5836,7 +5828,7 @@ often happen on systems that are generally not left on, so the
|
|
||||||
periodic ``cron'' task which normally does this doesn't get a chance
|
|
||||||
to run.
|
|
||||||
|
|
||||||
-@item locate database @file{@value{LOCATE_DB}} is corrupt or invalid
|
|
||||||
+@item locate database @file{LOCATE_DB} is corrupt or invalid
|
|
||||||
This should not happen. Re-run @code{updatedb}. If that works, but
|
|
||||||
@code{locate} still produces this error, run @code{locate --version}
|
|
||||||
and @code{updatedb --version}. These should produce the same output.
|
|
||||||
diff --git a/tests/local.mk b/tests/local.mk
|
|
||||||
index 7e52a04..ae08a56 100644
|
|
||||||
--- a/tests/local.mk
|
|
||||||
+++ b/tests/local.mk
|
|
||||||
@@ -15,7 +15,7 @@
|
|
||||||
## You should have received a copy of the GNU General Public License
|
|
||||||
## along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
-built_programs = find xargs frcode locate updatedb
|
|
||||||
+built_programs = find xargs
|
|
||||||
|
|
||||||
# Indirections required so that we'll still be able to know the
|
|
||||||
# complete list of our tests even if the user overrides TESTS
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
@ -1,122 +0,0 @@
|
|||||||
From 547e7145f335dc07144f35eaacc520475068852e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
Date: Fri, 30 Aug 2019 10:22:22 +0200
|
|
||||||
Subject: [PATCH 1/3] Revert "fts: cleanup after FTS_NOATIME removal"
|
|
||||||
|
|
||||||
This reverts commit dce8759f0f0236a860a3e68b63c5e99cc6f168f9.
|
|
||||||
---
|
|
||||||
gl/lib/fts_.h | 10 ++++++----
|
|
||||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
|
||||||
index fb5558f..0122262 100644
|
|
||||||
--- a/gl/lib/fts_.h
|
|
||||||
+++ b/gl/lib/fts_.h
|
|
||||||
@@ -149,14 +149,16 @@ typedef struct {
|
|
||||||
dirent.d_type data. */
|
|
||||||
# define FTS_DEFER_STAT 0x0400
|
|
||||||
|
|
||||||
+/* 0x0800 unused, was non-working FTS_NOATIME */
|
|
||||||
+
|
|
||||||
/* Use this flag to disable stripping of trailing slashes
|
|
||||||
from input path names during fts_open initialization. */
|
|
||||||
-# define FTS_VERBATIM 0x0800
|
|
||||||
+# define FTS_VERBATIM 0x1000
|
|
||||||
|
|
||||||
-# define FTS_OPTIONMASK 0x0fff /* valid user option mask */
|
|
||||||
+# define FTS_OPTIONMASK 0x1fff /* valid user option mask */
|
|
||||||
|
|
||||||
-# define FTS_NAMEONLY 0x1000 /* (private) child names only */
|
|
||||||
-# define FTS_STOP 0x2000 /* (private) unrecoverable error */
|
|
||||||
+# define FTS_NAMEONLY 0x2000 /* (private) child names only */
|
|
||||||
+# define FTS_STOP 0x4000 /* (private) unrecoverable error */
|
|
||||||
int fts_options; /* fts_open options, global flags */
|
|
||||||
|
|
||||||
/* Map a directory's device number to a boolean. The boolean is
|
|
||||||
--
|
|
||||||
2.20.1
|
|
||||||
|
|
||||||
|
|
||||||
From 1328926a705fdb4728c1f255dd368de928736d39 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
Date: Fri, 25 Sep 2015 16:09:39 +0200
|
|
||||||
Subject: [PATCH 2/3] fts: introduce the FTS_NOLEAF flag
|
|
||||||
|
|
||||||
The flag is needed to implement the -noleaf option of find.
|
|
||||||
* lib/fts.c (link_count_optimize_ok): Implement the FTS_NOLEAF flag.
|
|
||||||
* lib/fts_.h (FTS_NOLEAF): New macro, shifted conflicting constants.
|
|
||||||
---
|
|
||||||
gl/lib/fts.c | 4 ++++
|
|
||||||
gl/lib/fts_.h | 12 +++++++++---
|
|
||||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gl/lib/fts.c b/gl/lib/fts.c
|
|
||||||
index d2d404f..808466f 100644
|
|
||||||
--- a/gl/lib/fts.c
|
|
||||||
+++ b/gl/lib/fts.c
|
|
||||||
@@ -706,6 +706,10 @@ filesystem_type (FTSENT const *p, int fd)
|
|
||||||
struct dev_type *ent;
|
|
||||||
struct statfs fs_buf;
|
|
||||||
|
|
||||||
+ if (ISSET(FTS_NOLEAF))
|
|
||||||
+ /* leaf optimization explicitly disabled by the FTS_NOLEAF flag */
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
/* If we're not in CWDFD mode, don't bother with this optimization,
|
|
||||||
since the caller is not serious about performance. */
|
|
||||||
if (!ISSET (FTS_CWDFD))
|
|
||||||
diff --git a/gl/lib/fts_.h b/gl/lib/fts_.h
|
|
||||||
index 63d4b74..f1d519b 100644
|
|
||||||
--- a/gl/lib/fts_.h
|
|
||||||
+++ b/gl/lib/fts_.h
|
|
||||||
@@ -155,10 +155,16 @@ typedef struct {
|
|
||||||
from input path names during fts_open initialization. */
|
|
||||||
# define FTS_VERBATIM 0x1000
|
|
||||||
|
|
||||||
-# define FTS_OPTIONMASK 0x1fff /* valid user option mask */
|
|
||||||
+ /* Disable leaf optimization (which eliminates stat() calls during traversal,
|
|
||||||
+ based on the count of nested directories stored in stat.st_nlink of each
|
|
||||||
+ directory). Note that the optimization is by default enabled only for
|
|
||||||
+ selected file systems, and only if the FTS_CWDFD flag is set. */
|
|
||||||
+# define FTS_NOLEAF 0x2000
|
|
||||||
|
|
||||||
-# define FTS_NAMEONLY 0x2000 /* (private) child names only */
|
|
||||||
-# define FTS_STOP 0x4000 /* (private) unrecoverable error */
|
|
||||||
+# define FTS_OPTIONMASK 0x3fff /* valid user option mask */
|
|
||||||
+
|
|
||||||
+# define FTS_NAMEONLY 0x4000 /* (private) child names only */
|
|
||||||
+# define FTS_STOP 0x8000 /* (private) unrecoverable error */
|
|
||||||
int fts_options; /* fts_open options, global flags */
|
|
||||||
|
|
||||||
/* Map a directory's device number to a boolean. The boolean is
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
||||||
|
|
||||||
From c186934e6e37ddadf7511abb9b1045192757618e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kamil Dudka <kdudka@redhat.com>
|
|
||||||
Date: Fri, 25 Sep 2015 19:13:15 +0200
|
|
||||||
Subject: [PATCH 3/3] ftsfind: propagate the -noleaf option to FTS
|
|
||||||
|
|
||||||
* find/ftsfind.c (find): Propagate the -noleaf option to FTS.
|
|
||||||
---
|
|
||||||
find/ftsfind.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/find/ftsfind.c b/find/ftsfind.c
|
|
||||||
index 5159470..e34b672 100644
|
|
||||||
--- a/find/ftsfind.c
|
|
||||||
+++ b/find/ftsfind.c
|
|
||||||
@@ -509,6 +509,9 @@ find (char *arg)
|
|
||||||
if (options.stay_on_filesystem)
|
|
||||||
ftsoptions |= FTS_XDEV;
|
|
||||||
|
|
||||||
+ if (options.no_leaf_check)
|
|
||||||
+ ftsoptions |= FTS_NOLEAF;
|
|
||||||
+
|
|
||||||
p = fts_open (arglist, ftsoptions, NULL);
|
|
||||||
if (NULL == p)
|
|
||||||
{
|
|
||||||
--
|
|
||||||
2.5.0
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From 129f23ce758620fade812baab811379ce8454048 Mon Sep 17 00:00:00 2001
|
|
||||||
From: rpm-build <rpm-build>
|
|
||||||
Date: Fri, 27 Jan 2017 11:44:41 +0100
|
|
||||||
Subject: [PATCH] test-lock: disable the rwlock test
|
|
||||||
|
|
||||||
It hangs indefinitely if the system rwlock implementation does not
|
|
||||||
prevent writer starvation (and glibc does not implement it).
|
|
||||||
|
|
||||||
Bug: http://www.mail-archive.com/bug-gnulib@gnu.org/msg33017.html
|
|
||||||
---
|
|
||||||
gnulib-tests/test-lock.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gnulib-tests/test-lock.c b/gnulib-tests/test-lock.c
|
|
||||||
index a992f64..fd9c014 100644
|
|
||||||
--- a/gnulib-tests/test-lock.c
|
|
||||||
+++ b/gnulib-tests/test-lock.c
|
|
||||||
@@ -42,7 +42,7 @@
|
|
||||||
Uncomment some of these, to verify that all tests crash if no locking
|
|
||||||
is enabled. */
|
|
||||||
#define DO_TEST_LOCK 1
|
|
||||||
-#define DO_TEST_RWLOCK 1
|
|
||||||
+#define DO_TEST_RWLOCK 0
|
|
||||||
#define DO_TEST_RECURSIVE_LOCK 1
|
|
||||||
#define DO_TEST_ONCE 1
|
|
||||||
|
|
||||||
--
|
|
||||||
2.7.4
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQEzBAABCAAdFiEEpRidtpwRZNMwApNmRlAu95aRcZUFAmH50AcACgkQRlAu95aR
|
|
||||||
cZU/DQgAjt38b5+7CREWR7rk9y/NRvc+xAg7wMfwjt90cAycjRZ7hMVviB7R+MhO
|
|
||||||
1rrV+4UkKCYzBzks5FIhN00IwmXoe0VPeH17ATtSB6c70rBNwHE7CWcGz2cnqHBQ
|
|
||||||
CzPBy3hXEq7YY1kq7bfZCkTTEnxve9eKrgoczj/NpxvxoRkLmXzzKd0ChvHLlYJl
|
|
||||||
m0GrPAl81eUF2vYIo5/9F28AR2mfCv1cwzsb1Ch3WEXqZB2tcIKsocrO4AVVpkmD
|
|
||||||
o1pmPZa1FTKPI4YdBOlOuWUYkf6rD7WEKTcFmXrafkPlzhY4HJyN35XslAllJg6w
|
|
||||||
81EbRarQvxrVDuxoS0jnx0oMvV7jxg==
|
|
||||||
=hp30
|
|
||||||
-----END PGP SIGNATURE-----
|
|
378
findutils.spec
378
findutils.spec
@ -1,39 +1,21 @@
|
|||||||
Summary: The GNU versions of find utilities (find and xargs)
|
Summary: The GNU versions of find utilities (find and xargs)
|
||||||
Name: findutils
|
Name: findutils
|
||||||
Version: 4.9.0
|
Version: 4.4.0
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://www.gnu.org/software/findutils/
|
Group: Applications/File
|
||||||
Source0: https://ftp.gnu.org/pub/gnu/%{name}/%{name}-%{version}.tar.xz
|
URL: http://www.gnu.org/software/findutils/
|
||||||
|
Source0: ftp://ftp.gnu.org/gnu/findutils/%{name}-%{version}.tar.gz
|
||||||
# do not build locate
|
Source1: ftp://ftp.gnu.org/gnu/findutils/%{name}-%{version}.tar.gz.sig
|
||||||
Patch1: findutils-4.5.15-no-locate.patch
|
Patch1: findutils-4.4.0-no-locate.patch
|
||||||
|
Patch2: findutils-4.4.0-selinux.patch
|
||||||
# add -xautofs option to not descend into directories on autofs file systems
|
Requires(post): /sbin/install-info
|
||||||
Patch2: findutils-4.4.2-xautofs.patch
|
Requires(preun): /sbin/install-info
|
||||||
|
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
# eliminate compile-time warnings
|
BuildRequires: libtool, automake, autoconf
|
||||||
Patch3: findutils-4.5.13-warnings.patch
|
BuildRequires: dejagnu, gettext-devel, texinfo
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
Conflicts: filesystem < 3
|
|
||||||
Provides: /bin/find
|
|
||||||
Provides: bundled(gnulib)
|
|
||||||
|
|
||||||
BuildRequires: automake
|
|
||||||
BuildRequires: dejagnu
|
|
||||||
BuildRequires: gettext-devel
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: git
|
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: make
|
|
||||||
BuildRequires: texinfo
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
The findutils package contains programs which will help you locate
|
The findutils package contains programs which will help you locate
|
||||||
@ -47,327 +29,61 @@ You should install findutils because it includes tools that are very
|
|||||||
useful for finding things on your system.
|
useful for finding things on your system.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -N -S git
|
%setup -q
|
||||||
|
%patch1 -p1 -b .no-locate
|
||||||
|
%patch2 -p1 -b .selinux
|
||||||
|
|
||||||
# drop the source code of locate
|
autoreconf
|
||||||
git rm -q -r locate
|
|
||||||
git commit -q -m "drop the source code of locate"
|
|
||||||
|
|
||||||
# remove ignored files from git and mark them as ignored
|
|
||||||
tee -a .gitignore << EOF
|
|
||||||
*~
|
|
||||||
Makefile.in
|
|
||||||
/aclocal.m4
|
|
||||||
/autom4te.cache
|
|
||||||
/build
|
|
||||||
/configure
|
|
||||||
/doc/find.info*
|
|
||||||
/doc/stamp-vti
|
|
||||||
/doc/version.texi
|
|
||||||
EOF
|
|
||||||
git rm -q -r --cached .
|
|
||||||
git add --all .
|
|
||||||
git commit -m "remove ignored files from git"
|
|
||||||
|
|
||||||
# apply all patches
|
|
||||||
%autopatch
|
|
||||||
|
|
||||||
# needed because of findutils-4.5.15-no-locate.patch
|
|
||||||
autoreconf -fiv
|
|
||||||
git add --all .
|
|
||||||
git commit -q -m "after invocation of autoreconf"
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# disable -flto on ppc64le to make test-float pass (#1789115)
|
%define optflags $RPM_OPT_FLAGS -D_GNU_SOURCE
|
||||||
%ifarch ppc64le
|
|
||||||
export CFLAGS="$RPM_OPT_FLAGS -fno-lto"
|
|
||||||
%endif
|
|
||||||
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
%global _configure ../configure
|
|
||||||
%configure
|
%configure
|
||||||
|
%undefine optflags
|
||||||
|
|
||||||
%make_build
|
make
|
||||||
|
|
||||||
%check
|
%check
|
||||||
make %{?_smp_mflags} check -C build V=1
|
make check
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install -C build
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
|
||||||
rm -f %{buildroot}%{_infodir}/dir
|
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
||||||
|
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
|
# move find to /bin/find
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/bin
|
||||||
|
mv $RPM_BUILD_ROOT{%_bindir,/bin}/find
|
||||||
|
|
||||||
|
# create /usr/bin/find -> /bin/find symlink
|
||||||
|
ln -sf ../../bin/find $RPM_BUILD_ROOT/usr/bin
|
||||||
|
|
||||||
|
%post
|
||||||
|
/sbin/install-info %{_infodir}/find.info.gz %{_infodir}/dir || :
|
||||||
|
|
||||||
|
%preun
|
||||||
|
if [ $1 = 0 ]; then
|
||||||
|
/sbin/install-info --delete %{_infodir}/find.info.gz %{_infodir}/dir || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
%files -f %{name}.lang
|
%files -f %{name}.lang
|
||||||
%license COPYING
|
%defattr(-,root,root)
|
||||||
%doc AUTHORS NEWS README THANKS TODO
|
%doc AUTHORS COPYING NEWS README THANKS TODO
|
||||||
|
/bin/find
|
||||||
%{_bindir}/find
|
%{_bindir}/find
|
||||||
|
%{_bindir}/oldfind
|
||||||
%{_bindir}/xargs
|
%{_bindir}/xargs
|
||||||
%{_mandir}/man1/find.1*
|
%{_mandir}/man1/find.1*
|
||||||
%{_mandir}/man1/xargs.1*
|
%{_mandir}/man1/xargs.1*
|
||||||
%{_infodir}/find.info*
|
%{_infodir}/find.info*
|
||||||
%{_infodir}/find-maint.info.*
|
%{_infodir}/find-maint.info.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.9.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Feb 02 2022 Kamil Dudka <kdudka@redhat.com> - 1:4.9.0-1
|
|
||||||
- new upstream release
|
|
||||||
|
|
||||||
* Mon Jan 24 2022 Kamil Dudka <kdudka@redhat.com> - 1:4.8.0-6
|
|
||||||
- make findutils build on 32bit x86
|
|
||||||
|
|
||||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue May 25 2021 Florian Weimer <fweimer@redhat.com> - 1:4.8.0-3
|
|
||||||
- Rebuild with new binutils to fix ppc64le corruption (#1960730)
|
|
||||||
|
|
||||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.8.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Sat Jan 09 2021 Kamil Dudka <kdudka@redhat.com> - 1:4.8.0-1
|
|
||||||
- new upstream release
|
|
||||||
|
|
||||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.7.0-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jul 24 2020 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-6
|
|
||||||
- disable -flto on ppc64le to make test-float pass (#1789115)
|
|
||||||
- do not compile with -D__SUPPORT_SNAN__ (#1294016)
|
|
||||||
|
|
||||||
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 1:4.7.0-5
|
|
||||||
- Use make macros
|
|
||||||
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
|
||||||
|
|
||||||
* Fri Apr 17 2020 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-4
|
|
||||||
- simplify leaf optimization for XFS (#1823247)
|
|
||||||
|
|
||||||
* Tue Feb 11 2020 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-3
|
|
||||||
- make upstream test-suite work with root privileges (#1799064)
|
|
||||||
|
|
||||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.7.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Aug 30 2019 Kamil Dudka <kdudka@redhat.com> - 1:4.7.0-1
|
|
||||||
- new upstream release
|
|
||||||
|
|
||||||
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-24
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Apr 24 2019 Björn Esser <besser82@fedoraproject.org> - 1:4.6.0-23
|
|
||||||
- Remove hardcoded gzip suffix from GNU info pages
|
|
||||||
|
|
||||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-22
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Nov 05 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-21
|
|
||||||
- fix programming mistakes detected by static analysis
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-20
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Apr 20 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-19
|
|
||||||
- fix crash caused by mistakenly enabled leaf optimization (#1558249)
|
|
||||||
|
|
||||||
* Tue Mar 06 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-18
|
|
||||||
- fix build failure with glibc-2.28
|
|
||||||
|
|
||||||
* Mon Feb 19 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-17
|
|
||||||
- add explicit BR for the gcc compiler
|
|
||||||
|
|
||||||
* Mon Feb 12 2018 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-16
|
|
||||||
- import gnulib's FTS module from upstream commit 281b825e (#1544429)
|
|
||||||
|
|
||||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-15
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-14
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-13
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Mar 02 2017 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-12
|
|
||||||
- drop ppc64le workaround no longer needed (#1417753)
|
|
||||||
|
|
||||||
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.6.0-11
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Jan 30 2017 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-10
|
|
||||||
- avoid using broken memcmp() code that gcc generates on ppc64le (#1417753)
|
|
||||||
|
|
||||||
* Fri Jan 27 2017 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-9
|
|
||||||
- add explicit BR for git as we use it in %%prep
|
|
||||||
|
|
||||||
* Fri Sep 16 2016 Kamil Dudka <kdudka@redhat.com> - 1:4.6.0-8
|
|
||||||
- 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
|
* Wed Apr 30 2008 Vitezslav Crhonek <vcrhonek@redhat.com> - 1:4.4.0-1
|
||||||
- Update to findutils-4.4.0
|
- Update to findutils-4.4.0
|
||||||
Resolves: #437733
|
Resolves: #437733
|
||||||
|
3
sources
3
sources
@ -1 +1,2 @@
|
|||||||
SHA512 (findutils-4.9.0.tar.xz) = ba4844f4403de0148ad14b46a3dbefd5a721f6257c864bf41a6789b11705408524751c627420b15a52af95564d8e5b52f0978474f640a62ab86a41d20cf14be9
|
49e769ac4382fae6f104f99d54d0a112 findutils-4.4.0.tar.gz
|
||||||
|
04a7d2fcf851b770e586d8a01c1f14f1 findutils-4.4.0.tar.gz.sig
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /CoreOS/findutils/Sanity/smoke
|
|
||||||
# Description: Smoke test for find and xargs.
|
|
||||||
# Author: Branislav Nater <bnater@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/CoreOS/findutils/Sanity/smoke
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Branislav Nater <bnater@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Smoke test for find and xargs." >> $(METADATA)
|
|
||||||
@echo "Type: Sanity" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: findutils" >> $(METADATA)
|
|
||||||
@echo "Requires: findutils" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
@ -1,3 +0,0 @@
|
|||||||
PURPOSE of /CoreOS/findutils/Sanity/smoke
|
|
||||||
Description: Smoke test for find and xargs.
|
|
||||||
Author: Branislav Nater <bnater@redhat.com>
|
|
@ -1,64 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /CoreOS/findutils/Sanity/smoke
|
|
||||||
# Description: Smoke test for find and xargs.
|
|
||||||
# Author: Branislav Nater <bnater@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/bin/rhts-environment.sh || exit 1
|
|
||||||
. /usr/lib/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="findutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlRun "touch \"file with spaces\"" 0
|
|
||||||
rlRun "mkdir dir" 0
|
|
||||||
rlRun "touch dir/file1" 0
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlGetTestState && {
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "find . -name \"file*\" -type f | tee output | wc -l > wcout" 0
|
|
||||||
cat output
|
|
||||||
rlAssertGrep 2 wcout
|
|
||||||
rlRun "find $TmpDir -mindepth 1 -type d | tee output | wc -l > wcout" 0
|
|
||||||
cat output
|
|
||||||
rlAssertGrep 1 wcout
|
|
||||||
rlRun "find $TmpDir -name \"file*\" -print0 | xargs -0 ls -l | tee output | wc -l > wcout" 0
|
|
||||||
cat output
|
|
||||||
rlAssertGrep 2 wcout
|
|
||||||
rlPhaseEnd
|
|
||||||
}
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalEnd
|
|
||||||
rlJournalPrintText
|
|
@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
# Tests which will run in all contexts
|
|
||||||
- hosts: localhost
|
|
||||||
roles:
|
|
||||||
- role: standard-test-beakerlib
|
|
||||||
tags:
|
|
||||||
- classic
|
|
||||||
- container
|
|
||||||
- atomic
|
|
||||||
tests:
|
|
||||||
- smoke
|
|
||||||
- xautofs
|
|
||||||
required_packages:
|
|
||||||
- autofs # autofs required for xautofs test
|
|
@ -1,65 +0,0 @@
|
|||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /CoreOS/findutils/Sanity/options/xautofs
|
|
||||||
# Description: Check xautofs option
|
|
||||||
# Author: Petr Splichal <psplicha@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/CoreOS/findutils/Sanity/options/xautofs
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Branislav Nater <bnater@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Check xautofs option" >> $(METADATA)
|
|
||||||
@echo "Type: Sanity" >> $(METADATA)
|
|
||||||
@echo "TestTime: 10m" >> $(METADATA)
|
|
||||||
@echo "RunFor: findutils" >> $(METADATA)
|
|
||||||
@echo "Requires: autofs findutils" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 485672 529391" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL3 -RHEL4" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
@ -1,8 +0,0 @@
|
|||||||
PURPOSE of /CoreOS/findutils/Sanity/options/xautofs
|
|
||||||
Description: Check xautofs option
|
|
||||||
Author: Petr Splichal <psplicha@redhat.com>
|
|
||||||
Bug summary: [RFE] Modify find to be able to skip direct mapped autofs mounts
|
|
||||||
Bugzilla link: None
|
|
||||||
|
|
||||||
Check that the new -xautofs option works as expected: make sure
|
|
||||||
find does not descend into directories on autofs filesystems.
|
|
@ -1,90 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /CoreOS/findutils/Sanity/options/xautofs
|
|
||||||
# Description: Check xautofs option
|
|
||||||
# Author: Petr Splichal <psplicha@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/bin/rhts-environment.sh
|
|
||||||
. /usr/share/rhts-library/rhtslib.sh
|
|
||||||
|
|
||||||
PACKAGE="findutils"
|
|
||||||
|
|
||||||
MasterConf="/etc/auto.master"
|
|
||||||
DirectConf="/etc/auto.direct"
|
|
||||||
|
|
||||||
MountDir="/mnt/findutils"
|
|
||||||
AutomountDir="$MountDir/etc"
|
|
||||||
RegularDir="$MountDir/regular/directory/master"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlAssertRpm "autofs"
|
|
||||||
rlRun "set -o pipefail"
|
|
||||||
|
|
||||||
# create dirs & back up
|
|
||||||
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
|
|
||||||
rlRun "mkdir -p $RegularDir" 0 "Creating regular directory"
|
|
||||||
rlRun "rlFileBackup $MasterConf"
|
|
||||||
|
|
||||||
# set up autofs
|
|
||||||
rlRun "echo '/- /etc/auto.direct' > $MasterConf" \
|
|
||||||
0 "Setting up autofs master map"
|
|
||||||
rlRun "echo '$AutomountDir localhost:/etc' > $DirectConf" \
|
|
||||||
0 "Setting up autofs direct map"
|
|
||||||
|
|
||||||
# RHEL-7 is using xfs
|
|
||||||
rlIsRHEL 4 5 6 && fs="ext[34]" || fs="xfs"
|
|
||||||
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "Without -xautofs option"
|
|
||||||
rlRun "rlServiceStart autofs" 0 "Starting autofs"
|
|
||||||
rlAssertNotGrep "$AutomountDir.*$fs" "/proc/mounts"
|
|
||||||
rlRun "find $MountDir -noleaf -name '*master*' | tee filelist"
|
|
||||||
rlAssertGrep "$RegularDir" "filelist"
|
|
||||||
rlAssertGrep "$MountDir$MasterConf" "filelist"
|
|
||||||
rlAssertGrep "$AutomountDir.*$fs" "/proc/mounts"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "With -xautofs option"
|
|
||||||
rlRun "rlServiceStart autofs" 0 "Starting autofs"
|
|
||||||
rlAssertNotGrep "$AutomountDir.*$fs" "/proc/mounts"
|
|
||||||
rlRun "find $MountDir -xautofs -noleaf -name '*master*' | tee filelist"
|
|
||||||
rlAssertGrep "$RegularDir" "filelist"
|
|
||||||
rlAssertNotGrep "$MountDir$MasterConf" "filelist"
|
|
||||||
rlAssertNotGrep "$AutomountDir.*$fs" "/proc/mounts"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rlFileRestore"
|
|
||||||
rlRun "rlServiceRestore autofs"
|
|
||||||
rlRun "rm -r $TmpDir $DirectConf $MountDir" 0 "Removing tmp files"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
Loading…
Reference in New Issue
Block a user