forked from pool/findutils
Accepting request 100464 from home:tabraham1:branches:Base:System
update to 4.5.10 OBS-URL: https://build.opensuse.org/request/show/100464 OBS-URL: https://build.opensuse.org/package/show/Base:System/findutils?expand=0&rev=25
This commit is contained in:
parent
05c9d5f433
commit
e8d8ebfa75
@ -1,27 +0,0 @@
|
|||||||
This patch is already applied on gnulib upstream git.
|
|
||||||
|
|
||||||
Index: findutils-4.4.2/gnulib/lib/fts.c
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/gnulib/lib/fts.c
|
|
||||||
+++ findutils-4.4.2/gnulib/lib/fts.c
|
|
||||||
@@ -974,6 +974,20 @@ fts_build (register FTS *sp, int type)
|
|
||||||
opening it. */
|
|
||||||
if (cur->fts_info == FTS_NSOK)
|
|
||||||
cur->fts_info = fts_stat(sp, cur, false);
|
|
||||||
+ else if (sp->fts_options & FTS_TIGHT_CYCLE_CHECK) {
|
|
||||||
+ /* Now read the stat info again after opening a directory to
|
|
||||||
+ * reveal eventual changes caused by a submount triggered by
|
|
||||||
+ * the traverse. But do it only for utilities which use
|
|
||||||
+ * FTS_TIGHT_CYCLE_CHECK. Therefore only find and du can
|
|
||||||
+ * benefit from this feature for now.
|
|
||||||
+ */
|
|
||||||
+ LEAVE_DIR (sp, cur, "4");
|
|
||||||
+ fts_stat (sp, cur, false);
|
|
||||||
+ if (! enter_dir (sp, cur)) {
|
|
||||||
+ __set_errno (ENOMEM);
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Nlinks is the number of possible entries of type directory in the
|
|
File diff suppressed because it is too large
Load Diff
@ -1,445 +0,0 @@
|
|||||||
Index: findutils-4.4.2/NEWS
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/NEWS
|
|
||||||
+++ findutils-4.4.2/NEWS
|
|
||||||
@@ -1,5 +1,11 @@
|
|
||||||
GNU findutils NEWS - User visible changes. -*- outline -*- (allout)
|
|
||||||
|
|
||||||
+* Major changes in release 4.4.2, 2009-11-26
|
|
||||||
+
|
|
||||||
+** Functional Enhancements to find
|
|
||||||
+
|
|
||||||
+patch #4848: Patch - Support for SELinux
|
|
||||||
+
|
|
||||||
* Major changes in release 4.4.2, 2009-05-16
|
|
||||||
|
|
||||||
** Bug Fixes
|
|
||||||
Index: findutils-4.4.2/doc/find.texi
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/doc/find.texi
|
|
||||||
+++ findutils-4.4.2/doc/find.texi
|
|
||||||
@@ -1242,6 +1242,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
|
|
||||||
|
|
||||||
@@ -1737,6 +1745,7 @@ from the novel you are reading.
|
|
||||||
* Size Directives::
|
|
||||||
* Location Directives::
|
|
||||||
* Time Directives::
|
|
||||||
+* Other Directives::
|
|
||||||
* Formatting Flags::
|
|
||||||
@end menu
|
|
||||||
|
|
||||||
@@ -1894,6 +1903,14 @@ File's last modification time in the for
|
|
||||||
(@pxref{Time Formats}).
|
|
||||||
@end table
|
|
||||||
|
|
||||||
+@node Other Directives
|
|
||||||
+@subsubsection Other Directives
|
|
||||||
+
|
|
||||||
+@table @code
|
|
||||||
+@item %Z
|
|
||||||
+File's SELinux context, or empty string if the file has no SELinux context.
|
|
||||||
+@end table
|
|
||||||
+
|
|
||||||
@node Time Formats
|
|
||||||
@subsection Time Formats
|
|
||||||
|
|
||||||
Index: findutils-4.4.2/find/Makefile.am
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/find/Makefile.am
|
|
||||||
+++ findutils-4.4.2/find/Makefile.am
|
|
||||||
@@ -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@ @LIB_SELINUX@
|
|
||||||
man_MANS = find.1
|
|
||||||
SUBDIRS = . testsuite
|
|
||||||
|
|
||||||
Index: findutils-4.4.2/find/defs.h
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/find/defs.h
|
|
||||||
+++ findutils-4.4.2/find/defs.h
|
|
||||||
@@ -48,6 +48,7 @@ Please stop compiling the program now
|
|
||||||
#include <stdbool.h> /* for bool/boolean */
|
|
||||||
#include <stdint.h> /* for uintmax_t */
|
|
||||||
#include <sys/stat.h> /* S_ISUID etc. */
|
|
||||||
+#include <selinux/selinux.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -315,6 +316,7 @@ 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 */
|
|
||||||
+ security_context_t scontext; /* security context */
|
|
||||||
} args;
|
|
||||||
|
|
||||||
/* The next predicate in the user input sequence,
|
|
||||||
@@ -459,6 +461,7 @@ PREDICATEFUNCTION pred_used;
|
|
||||||
PREDICATEFUNCTION pred_user;
|
|
||||||
PREDICATEFUNCTION pred_writable;
|
|
||||||
PREDICATEFUNCTION pred_xtype;
|
|
||||||
+PREDICATEFUNCTION pred_context;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -604,6 +607,9 @@ struct options
|
|
||||||
*/
|
|
||||||
int regex_options;
|
|
||||||
|
|
||||||
+ /* function used to get file context */
|
|
||||||
+ int (*x_getfilecon) (int, const char *, security_context_t *);
|
|
||||||
+
|
|
||||||
/* Optimisation level. One is the default.
|
|
||||||
*/
|
|
||||||
unsigned short optimisation_level;
|
|
||||||
Index: findutils-4.4.2/find/find.1
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/find/find.1
|
|
||||||
+++ findutils-4.4.2/find/find.1
|
|
||||||
@@ -936,6 +936,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"
|
|
||||||
@@ -1357,6 +1359,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
|
|
||||||
Index: findutils-4.4.2/find/parser.c
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/find/parser.c
|
|
||||||
+++ findutils-4.4.2/find/parser.c
|
|
||||||
@@ -53,6 +53,8 @@
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
+#include "selinux-at.h"
|
|
||||||
+
|
|
||||||
#if ENABLE_NLS
|
|
||||||
# include <libintl.h>
|
|
||||||
# define _(Text) gettext (Text)
|
|
||||||
@@ -156,6 +158,7 @@ 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));
|
|
||||||
+static boolean parse_context PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
|
||||||
|
|
||||||
boolean parse_print PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
|
||||||
|
|
||||||
@@ -252,6 +255,7 @@ 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 */
|
|
||||||
+ PARSE_TEST ("context", context), /* GNU */
|
|
||||||
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 */
|
|
||||||
@@ -349,6 +353,86 @@ static struct parser_table const parse_t
|
|
||||||
static const char *first_nonoption_arg = NULL;
|
|
||||||
static const struct parser_table *noop = NULL;
|
|
||||||
|
|
||||||
+static int
|
|
||||||
+fallback_getfilecon (int fd, 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 lgetfileconat (fd, 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 (int fd, const char *name, security_context_t *p)
|
|
||||||
+{
|
|
||||||
+ int rv;
|
|
||||||
+ if (0 == state.curdepth)
|
|
||||||
+ {
|
|
||||||
+ /* This file is from the command line; dereference the link (if it is
|
|
||||||
+ a link). */
|
|
||||||
+ rv = getfileconat (fd, name, p);
|
|
||||||
+ if (0 == rv)
|
|
||||||
+ return 0; /* success */
|
|
||||||
+ else
|
|
||||||
+ return fallback_getfilecon (fd, name, p, rv);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ /* Not a file on the command line; do not dereference the link. */
|
|
||||||
+ return lgetfileconat (fd, 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 (int fd, const char *name, security_context_t *p)
|
|
||||||
+{
|
|
||||||
+ int rv = getfileconat (fd, name, p);
|
|
||||||
+ if (0 == rv)
|
|
||||||
+ return 0; /* normal case. */
|
|
||||||
+ else
|
|
||||||
+ return fallback_getfilecon (fd, 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 (int fd, const char *name, security_context_t *p)
|
|
||||||
+{
|
|
||||||
+ return lgetfileconat (fd, name, p);
|
|
||||||
+}
|
|
||||||
|
|
||||||
void
|
|
||||||
check_option_combinations(const struct predicate *p)
|
|
||||||
@@ -452,11 +536,13 @@ set_follow_state(enum SymlinkOption opt)
|
|
||||||
{
|
|
||||||
case SYMLINK_ALWAYS_DEREF: /* -L */
|
|
||||||
options.xstat = optionl_stat;
|
|
||||||
+ options.x_getfilecon = optionl_getfilecon;
|
|
||||||
options.no_leaf_check = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SYMLINK_NEVER_DEREF: /* -P (default) */
|
|
||||||
options.xstat = optionp_stat;
|
|
||||||
+ options.x_getfilecon = optionp_getfilecon;
|
|
||||||
/* Can't turn no_leaf_check off because the user might have specified
|
|
||||||
* -noleaf anyway
|
|
||||||
*/
|
|
||||||
@@ -464,6 +550,7 @@ set_follow_state(enum SymlinkOption opt)
|
|
||||||
|
|
||||||
case SYMLINK_DEREF_ARGSONLY: /* -H */
|
|
||||||
options.xstat = optionh_stat;
|
|
||||||
+ options.x_getfilecon = optionh_getfilecon;
|
|
||||||
options.no_leaf_check = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1129,8 +1216,10 @@ 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]"));
|
|
||||||
puts (_("\
|
|
||||||
+ -context CONTEXT\n"));
|
|
||||||
+ 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\
|
|
||||||
@@ -2520,6 +2609,11 @@ parse_version (const struct parser_table
|
|
||||||
printf("LEAF_OPTIMISATION ");
|
|
||||||
++features;
|
|
||||||
#endif
|
|
||||||
+ if (0 < is_selinux_enabled ())
|
|
||||||
+ {
|
|
||||||
+ printf ("SELINUX ");
|
|
||||||
+ ++features;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
flags = 0;
|
|
||||||
if (is_fts_enabled(&flags))
|
|
||||||
@@ -2555,6 +2649,31 @@ parse_version (const struct parser_table
|
|
||||||
}
|
|
||||||
|
|
||||||
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->est_success_rate = 0.01f;
|
|
||||||
+ 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;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static boolean
|
|
||||||
parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr)
|
|
||||||
{
|
|
||||||
options.stay_on_filesystem = true;
|
|
||||||
@@ -2815,7 +2934,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,
|
|
||||||
@@ -2945,6 +3064,11 @@ make_segment (struct segment **segment,
|
|
||||||
*fmt++ = 's';
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ case 'Z': /* SELinux security context */
|
|
||||||
+ mycost = NeedsAccessInfo;
|
|
||||||
+ *fmt++ = 's';
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
case 'H': /* ARGV element file was found under */
|
|
||||||
*fmt++ = 's';
|
|
||||||
break;
|
|
||||||
Index: findutils-4.4.2/find/pred.c
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/find/pred.c
|
|
||||||
+++ findutils-4.4.2/find/pred.c
|
|
||||||
@@ -48,6 +48,8 @@
|
|
||||||
#include "error.h"
|
|
||||||
#include "verify.h"
|
|
||||||
|
|
||||||
+#include <selinux/selinux.h>
|
|
||||||
+
|
|
||||||
#if ENABLE_NLS
|
|
||||||
# include <libintl.h>
|
|
||||||
# define _(Text) gettext (Text)
|
|
||||||
@@ -230,6 +232,7 @@ struct pred_assoc pred_table[] =
|
|
||||||
{pred_user, "user "},
|
|
||||||
{pred_writable, "writable "},
|
|
||||||
{pred_xtype, "xtype "},
|
|
||||||
+ {pred_context, "context"},
|
|
||||||
{0, "none "}
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
@@ -1054,6 +1057,30 @@ do_fprintf(struct format_val *dest,
|
|
||||||
mode_to_filetype(stat_buf->st_mode & S_IFMT));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
+
|
|
||||||
+ case 'Z': /* SELinux security context */
|
|
||||||
+ {
|
|
||||||
+ security_context_t scontext;
|
|
||||||
+ int rv = (*options.x_getfilecon) (state.cwd_dir_fd, state.rel_pathname,
|
|
||||||
+ &scontext);
|
|
||||||
+ if (rv < 0)
|
|
||||||
+ {
|
|
||||||
+ /* If getfilecon fails, there will in the general case
|
|
||||||
+ still be some text to print. We just make %Z expand
|
|
||||||
+ to an empty string. */
|
|
||||||
+ checked_fprintf (dest, segment->text, "");
|
|
||||||
+
|
|
||||||
+ error (0, errno, "getfilecon: %s",
|
|
||||||
+ safely_quote_err_filename (0, pathname));
|
|
||||||
+ state.exit_status = 1;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ checked_fprintf (dest, segment->text, scontext);
|
|
||||||
+ freecon (scontext);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
}
|
|
||||||
/* end of KIND_FORMAT case */
|
|
||||||
break;
|
|
||||||
@@ -1844,6 +1871,26 @@ pred_xtype (const char *pathname, struct
|
|
||||||
*/
|
|
||||||
return (pred_type (pathname, &sbuf, pred_ptr));
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+boolean
|
|
||||||
+pred_context (const char *pathname, struct stat *stat_buf,
|
|
||||||
+ struct predicate *pred_ptr)
|
|
||||||
+{
|
|
||||||
+ security_context_t scontext;
|
|
||||||
+ int rv = (*options.x_getfilecon) (state.cwd_dir_fd, state.rel_pathname,
|
|
||||||
+ &scontext);
|
|
||||||
+ if (rv < 0)
|
|
||||||
+ {
|
|
||||||
+ error (0, errno, "getfilecon: %s", safely_quote_err_filename (0, pathname));
|
|
||||||
+ return false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ rv = (fnmatch (pred_ptr->args.scontext, scontext, 0) == 0);
|
|
||||||
+ freecon (scontext);
|
|
||||||
+ return rv;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
|
|
||||||
/* 1) fork to get a child; parent remembers the child pid
|
|
||||||
2) child execs the command requested
|
|
||||||
Index: findutils-4.4.2/find/tree.c
|
|
||||||
===================================================================
|
|
||||||
--- findutils-4.4.2.orig/find/tree.c
|
|
||||||
+++ findutils-4.4.2/find/tree.c
|
|
||||||
@@ -904,6 +904,7 @@ static struct pred_cost_lookup costlooku
|
|
||||||
{ pred_cmin , NeedsStatInfo, },
|
|
||||||
{ pred_cnewer , NeedsStatInfo, },
|
|
||||||
{ pred_comma , NeedsNothing, },
|
|
||||||
+ { pred_context , NeedsAccessInfo },
|
|
||||||
{ pred_ctime , NeedsStatInfo, },
|
|
||||||
{ pred_delete , NeedsSyncDiskHit },
|
|
||||||
{ pred_empty , NeedsStatInfo },
|
|
||||||
@@ -1434,6 +1435,7 @@ get_new_pred (const struct parser_table
|
|
||||||
last_pred->need_stat = true;
|
|
||||||
last_pred->need_type = true;
|
|
||||||
last_pred->args.str = NULL;
|
|
||||||
+ last_pred->args.scontext = NULL;
|
|
||||||
last_pred->pred_next = NULL;
|
|
||||||
last_pred->pred_left = NULL;
|
|
||||||
last_pred->pred_right = NULL;
|
|
@ -1,8 +1,7 @@
|
|||||||
Index: doc/find.texi
|
diff -aur findutils-4.5.10.orig/doc/find.texi findutils-4.5.10/doc/find.texi
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/doc/find.texi 2012-01-16 15:29:59.649039029 -0500
|
||||||
--- doc/find.texi.orig
|
+++ findutils-4.5.10/doc/find.texi 2012-01-16 15:45:10.098656840 -0500
|
||||||
+++ doc/find.texi
|
@@ -3482,7 +3482,7 @@
|
||||||
@@ -3364,7 +3364,7 @@ Default is none.
|
|
||||||
@item --prunepaths='@var{path}@dots{}'
|
@item --prunepaths='@var{path}@dots{}'
|
||||||
Directories to omit from the database, which would otherwise be
|
Directories to omit from the database, which would otherwise be
|
||||||
included. The environment variable @code{PRUNEPATHS} also sets this
|
included. The environment variable @code{PRUNEPATHS} also sets this
|
||||||
@ -11,11 +10,10 @@ Index: doc/find.texi
|
|||||||
used as regular expressions (with @code{find ... -regex}, so you need
|
used as regular expressions (with @code{find ... -regex}, so you need
|
||||||
to specify these paths in the same way that @code{find} will encounter
|
to specify these paths in the same way that @code{find} will encounter
|
||||||
them. This means for example that the paths must not include trailing
|
them. This means for example that the paths must not include trailing
|
||||||
Index: locate/updatedb.1
|
diff -aur findutils-4.5.10.orig/locate/updatedb.1 findutils-4.5.10/locate/updatedb.1
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/locate/updatedb.1 2012-01-16 15:31:03.240244029 -0500
|
||||||
--- locate/updatedb.1.orig
|
+++ findutils-4.5.10/locate/updatedb.1 2012-01-16 15:45:37.745311211 -0500
|
||||||
+++ locate/updatedb.1
|
@@ -75,8 +75,7 @@
|
||||||
@@ -75,8 +75,7 @@ Default is \fInfs NFS proc\fP.
|
|
||||||
.TP
|
.TP
|
||||||
.B \-\-output=\fIdbfile\fP
|
.B \-\-output=\fIdbfile\fP
|
||||||
The database file to build.
|
The database file to build.
|
||||||
@ -25,7 +23,7 @@ Index: locate/updatedb.1
|
|||||||
.TP
|
.TP
|
||||||
.B \-\-localuser=\fIuser\fP
|
.B \-\-localuser=\fIuser\fP
|
||||||
The user to search non-network directories as, using \fBsu\fP(1).
|
The user to search non-network directories as, using \fBsu\fP(1).
|
||||||
@@ -85,7 +84,7 @@ You can also use the environment variabl
|
@@ -85,7 +84,7 @@
|
||||||
.TP
|
.TP
|
||||||
.B \-\-netuser=\fIuser\fP
|
.B \-\-netuser=\fIuser\fP
|
||||||
The user to search network directories as, using \fBsu\fP(1).
|
The user to search network directories as, using \fBsu\fP(1).
|
||||||
@ -34,11 +32,10 @@ Index: locate/updatedb.1
|
|||||||
You can also use the environment variable \fBNETUSER\fP to set this user.
|
You can also use the environment variable \fBNETUSER\fP to set this user.
|
||||||
.TP
|
.TP
|
||||||
.B \-\-old\-format
|
.B \-\-old\-format
|
||||||
Index: locate/updatedb.sh
|
diff -aur findutils-4.5.10.orig/locate/updatedb.sh findutils-4.5.10/locate/updatedb.sh
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/locate/updatedb.sh 2012-01-16 15:32:52.071883446 -0500
|
||||||
--- locate/updatedb.sh.orig
|
+++ findutils-4.5.10/locate/updatedb.sh 2012-01-16 15:45:56.037082532 -0500
|
||||||
+++ locate/updatedb.sh
|
@@ -158,7 +158,7 @@
|
||||||
@@ -158,7 +158,7 @@ select_shell() {
|
|
||||||
: ${NETPATHS=}
|
: ${NETPATHS=}
|
||||||
|
|
||||||
# Directories to not put in the database, which would otherwise be.
|
# Directories to not put in the database, which would otherwise be.
|
||||||
@ -47,7 +44,7 @@ Index: locate/updatedb.sh
|
|||||||
|
|
||||||
# Trailing slashes result in regex items that are never matched, which
|
# Trailing slashes result in regex items that are never matched, which
|
||||||
# is not what the user will expect. Therefore we now reject such
|
# is not what the user will expect. Therefore we now reject such
|
||||||
@@ -188,7 +188,7 @@ fi
|
@@ -188,7 +188,7 @@
|
||||||
export TMPDIR
|
export TMPDIR
|
||||||
|
|
||||||
# The user to search network directories as.
|
# The user to search network directories as.
|
||||||
@ -56,7 +53,7 @@ Index: locate/updatedb.sh
|
|||||||
|
|
||||||
# The directory containing the subprograms.
|
# The directory containing the subprograms.
|
||||||
if test -n "$LIBEXECDIR" ; then
|
if test -n "$LIBEXECDIR" ; then
|
||||||
@@ -228,11 +228,10 @@ done
|
@@ -228,10 +228,10 @@
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
||||||
|
|
||||||
@ -65,40 +62,37 @@ Index: locate/updatedb.sh
|
|||||||
|
|
||||||
if test -n "$PRUNEFS"; then
|
if test -n "$PRUNEFS"; then
|
||||||
-prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-o -fstype \1/g' \
|
-prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-o -fstype \1/g' \
|
||||||
- -e 's/-o //' -e 's/$/ -o/'`
|
+prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-fstype \1 -o/g' \
|
||||||
+prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-fstype \1 -o/g'`
|
-e 's/-o //' -e 's/$/ -o/'`
|
||||||
else
|
else
|
||||||
prunefs_exp=''
|
prunefs_exp=''
|
||||||
fi
|
@@ -253,12 +253,13 @@
|
||||||
@@ -252,13 +251,12 @@ if test -n "$SEARCHPATHS"; then
|
|
||||||
# : A1
|
|
||||||
su $LOCALUSER `select_shell $LOCALUSER` -c \
|
su $LOCALUSER `select_shell $LOCALUSER` -c \
|
||||||
"$find $SEARCHPATHS $FINDOPTIONS \
|
"$find $SEARCHPATHS $FINDOPTIONS \
|
||||||
- \\( $prunefs_exp \
|
\\( $prunefs_exp \
|
||||||
- -type d -regex '$PRUNEREGEX' \\) -prune -o $print_option"
|
- -type d -regex '$PRUNEREGEX' \\) -prune -o $print_option"
|
||||||
+ -type d \\( $prunefs_exp -regex '$PRUNEREGEX' \\) -prune \
|
+ -type d \\( $prunefs_exp -regex '$PRUNEREGEX' \\) -prune \
|
||||||
+ -o $print_option"
|
+ -o $print_option"
|
||||||
else
|
else
|
||||||
# : A2
|
# : A2
|
||||||
$find $SEARCHPATHS $FINDOPTIONS \
|
$find $SEARCHPATHS $FINDOPTIONS \
|
||||||
- \( $prunefs_exp \
|
\( $prunefs_exp \
|
||||||
- -type d -regex "$PRUNEREGEX" \) -prune -o $print_option
|
- -type d -regex "$PRUNEREGEX" \) -prune -o $print_option
|
||||||
+ -type d \( $prunefs_exp -regex "$PRUNEREGEX" \) -prune -o $print_option
|
+ -type d \( $prunefs_exp -regex "$PRUNEREGEX" \) -prune -o $print_option
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -321,13 +319,13 @@ if test -n "$SEARCHPATHS"; then
|
@@ -322,12 +323,14 @@
|
||||||
# : A5
|
|
||||||
su $LOCALUSER `select_shell $LOCALUSER` -c \
|
su $LOCALUSER `select_shell $LOCALUSER` -c \
|
||||||
"$find $SEARCHPATHS $FINDOPTIONS \
|
"$find $SEARCHPATHS $FINDOPTIONS \
|
||||||
- \( $prunefs_exp \
|
\( $prunefs_exp \
|
||||||
- -type d -regex '$PRUNEREGEX' \) -prune -o $print_option" || exit $?
|
- -type d -regex '$PRUNEREGEX' \) -prune -o $print_option" || exit $?
|
||||||
+ -type d \( $prunefs_exp -regex '$PRUNEREGEX' \) -prune \
|
+ -type d \( $prunefs_exp -regex '$PRUNEREGEX' \) -prune \
|
||||||
+ -o $print_option" || exit $?
|
+ -o $print_option" || exit $?
|
||||||
else
|
else
|
||||||
# : A6
|
# : A6
|
||||||
$find $SEARCHPATHS $FINDOPTIONS \
|
$find $SEARCHPATHS $FINDOPTIONS \
|
||||||
- \( $prunefs_exp \
|
\( $prunefs_exp \
|
||||||
- -type d -regex "$PRUNEREGEX" \) -prune -o $print_option || exit $?
|
- -type d -regex "$PRUNEREGEX" \) -prune -o $print_option || exit $?
|
||||||
+ -type d \( $prunefs_exp -regex "$PRUNEREGEX" \) -prune \
|
+ -type d \( $prunefs_exp -regex "$PRUNEREGEX" \) -prune \
|
||||||
+ -o $print_option || exit $?
|
+ -o $print_option || exit $?
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
Index: findutils-4.4.2/doc/find.texi
|
diff -aur findutils-4.5.10.orig/doc/find.texi findutils-4.5.10/doc/find.texi
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/doc/find.texi 2012-01-16 15:29:59.649039029 -0500
|
||||||
--- findutils-4.4.2.orig/doc/find.texi
|
+++ findutils-4.5.10/doc/find.texi 2012-01-16 15:54:30.683648566 -0500
|
||||||
+++ findutils-4.4.2/doc/find.texi
|
@@ -1440,6 +1440,10 @@
|
||||||
@@ -1413,6 +1413,10 @@ them.
|
|
||||||
There are two ways to avoid searching certain filesystems. One way is
|
There are two ways to avoid searching certain filesystems. One way is
|
||||||
to tell @code{find} to only search one filesystem:
|
to tell @code{find} to only search one filesystem:
|
||||||
|
|
||||||
@ -13,25 +12,23 @@ Index: findutils-4.4.2/doc/find.texi
|
|||||||
@deffn Option -xdev
|
@deffn Option -xdev
|
||||||
@deffnx Option -mount
|
@deffnx Option -mount
|
||||||
Don't descend directories on other filesystems. These options are
|
Don't descend directories on other filesystems. These options are
|
||||||
Index: findutils-4.4.2/find/defs.h
|
diff -aur findutils-4.5.10.orig/find/defs.h findutils-4.5.10/find/defs.h
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/find/defs.h 2011-04-03 18:53:11.000000000 -0400
|
||||||
--- findutils-4.4.2.orig/find/defs.h
|
+++ findutils-4.5.10/find/defs.h 2012-01-16 15:56:13.473363517 -0500
|
||||||
+++ findutils-4.4.2/find/defs.h
|
@@ -561,6 +561,9 @@
|
||||||
@@ -550,6 +550,9 @@ struct options
|
|
||||||
/* If true, don't cross filesystem boundaries. */
|
/* If true, don't cross filesystem boundaries. */
|
||||||
boolean stay_on_filesystem;
|
bool stay_on_filesystem;
|
||||||
|
|
||||||
+ /* If true, don't descend directories on autofs filesystems. */
|
+ /* If true, don't descend directores on autofs filesystems */
|
||||||
+ boolean bypass_autofs;
|
+ bool bypass_autofs;
|
||||||
+
|
+
|
||||||
/* If true, we ignore the problem where we find that a directory entry
|
/* 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.
|
* no longer exists by the time we get around to processing it.
|
||||||
*/
|
*/
|
||||||
Index: findutils-4.4.2/find/find.1
|
diff -aur findutils-4.5.10.orig/find/find.1 findutils-4.5.10/find/find.1
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/find/find.1 2011-04-03 18:53:11.000000000 -0400
|
||||||
--- findutils-4.4.2.orig/find/find.1
|
+++ findutils-4.5.10/find/find.1 2012-01-16 15:57:07.003694295 -0500
|
||||||
+++ findutils-4.4.2/find/find.1
|
@@ -460,6 +460,9 @@
|
||||||
@@ -451,6 +451,9 @@ if standard input is a tty, and to
|
|
||||||
.B \-nowarn
|
.B \-nowarn
|
||||||
otherwise.
|
otherwise.
|
||||||
|
|
||||||
@ -41,11 +38,10 @@ Index: findutils-4.4.2/find/find.1
|
|||||||
.IP \-xdev
|
.IP \-xdev
|
||||||
Don't descend directories on other filesystems.
|
Don't descend directories on other filesystems.
|
||||||
|
|
||||||
Index: findutils-4.4.2/find/ftsfind.c
|
diff -aur findutils-4.5.10.orig/find/ftsfind.c findutils-4.5.10/find/ftsfind.c
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/find/ftsfind.c 2011-04-03 18:53:11.000000000 -0400
|
||||||
--- findutils-4.4.2.orig/find/ftsfind.c
|
+++ findutils-4.5.10/find/ftsfind.c 2012-01-16 16:00:05.103467741 -0500
|
||||||
+++ findutils-4.4.2/find/ftsfind.c
|
@@ -485,6 +485,12 @@
|
||||||
@@ -525,6 +525,12 @@ consider_visiting(FTS *p, FTSENT *ent)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,19 +54,18 @@ Index: findutils-4.4.2/find/ftsfind.c
|
|||||||
if ( (ent->fts_info == FTS_D) && !options.do_dir_first )
|
if ( (ent->fts_info == FTS_D) && !options.do_dir_first )
|
||||||
{
|
{
|
||||||
/* this is the preorder visit, but user said -depth */
|
/* this is the preorder visit, but user said -depth */
|
||||||
Index: findutils-4.4.2/find/parser.c
|
diff -aur findutils-4.5.10.orig/find/parser.c findutils-4.5.10/find/parser.c
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/find/parser.c 2011-04-03 18:53:11.000000000 -0400
|
||||||
--- findutils-4.4.2.orig/find/parser.c
|
+++ findutils-4.5.10/find/parser.c 2012-01-16 16:05:32.208378367 -0500
|
||||||
+++ findutils-4.4.2/find/parser.c
|
@@ -151,6 +151,7 @@
|
||||||
@@ -150,6 +150,7 @@ static boolean parse_user PARAM
|
static bool parse_version (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
static boolean parse_version PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
static bool parse_wholename (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
static boolean parse_wholename PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
static bool parse_xdev (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
static boolean parse_xdev PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
+static bool parse_xautofs (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
+static boolean parse_xautofs PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
static bool parse_ignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
static boolean parse_ignore_race PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
static bool parse_noignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
static boolean parse_noignore_race PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
static bool parse_warn (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||||
static boolean parse_warn PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
@@ -325,6 +326,7 @@
|
||||||
@@ -320,6 +321,7 @@ static struct parser_table const parse_t
|
|
||||||
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but anyway -path will soon be in POSIX */
|
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but anyway -path will soon be in POSIX */
|
||||||
{ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */
|
{ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */
|
||||||
PARSE_OPTION ("xdev", xdev), /* POSIX */
|
PARSE_OPTION ("xdev", xdev), /* POSIX */
|
||||||
@ -78,10 +73,10 @@ Index: findutils-4.4.2/find/parser.c
|
|||||||
PARSE_TEST ("xtype", xtype), /* GNU */
|
PARSE_TEST ("xtype", xtype), /* GNU */
|
||||||
#ifdef UNIMPLEMENTED_UNIX
|
#ifdef UNIMPLEMENTED_UNIX
|
||||||
/* It's pretty ugly for find to know about archive formats.
|
/* It's pretty ugly for find to know about archive formats.
|
||||||
@@ -2560,6 +2562,16 @@ parse_xdev (const struct parser_table* e
|
@@ -2800,6 +2802,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean
|
static bool
|
||||||
+parse_xautofs(const struct parser_table* entry, char **argv, int *arg_ptr)
|
+parse_xautofs(const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||||
+{
|
+{
|
||||||
+ (void) argv;
|
+ (void) argv;
|
||||||
@ -91,15 +86,14 @@ Index: findutils-4.4.2/find/parser.c
|
|||||||
+ return true;
|
+ return true;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static boolean
|
+static bool
|
||||||
parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr)
|
parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||||
{
|
{
|
||||||
options.ignore_readdir_race = true;
|
options.ignore_readdir_race = true;
|
||||||
Index: findutils-4.4.2/find/util.c
|
diff -aur findutils-4.5.10.orig/find/util.c findutils-4.5.10/find/util.c
|
||||||
===================================================================
|
--- findutils-4.5.10.orig/find/util.c 2011-04-03 18:53:11.000000000 -0400
|
||||||
--- findutils-4.4.2.orig/find/util.c
|
+++ findutils-4.5.10/find/util.c 2012-01-16 16:06:17.309814520 -0500
|
||||||
+++ findutils-4.4.2/find/util.c
|
@@ -1006,6 +1006,7 @@
|
||||||
@@ -933,6 +933,7 @@ set_option_defaults(struct options *p)
|
|
||||||
|
|
||||||
p->full_days = false;
|
p->full_days = false;
|
||||||
p->stay_on_filesystem = false;
|
p->stay_on_filesystem = false;
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:62ff724e2de32788fa527df69c631ad34c6dfbbd5430b6b6dc410662a6d206d6
|
|
||||||
size 1506634
|
|
@ -1,8 +1,6 @@
|
|||||||
Index: locate/updatedb.sh
|
--- locate/updatedb.sh.orig 2012-01-16 19:04:21.074917128 -0500
|
||||||
===================================================================
|
+++ locate/updatedb.sh 2012-01-16 19:05:02.438400012 -0500
|
||||||
--- locate/updatedb.sh.orig 2010-04-01 12:46:24.000000000 +0200
|
@@ -228,7 +228,7 @@
|
||||||
+++ locate/updatedb.sh 2010-04-01 12:47:09.919511262 +0200
|
|
||||||
@@ -228,7 +228,7 @@ done
|
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
||||||
|
|
||||||
@ -10,4 +8,4 @@ Index: locate/updatedb.sh
|
|||||||
+: ${PRUNEFS="nfs NFS proc afs smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs cifs 9P unknown"}
|
+: ${PRUNEFS="nfs NFS proc afs smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs cifs 9P unknown"}
|
||||||
|
|
||||||
if test -n "$PRUNEFS"; then
|
if test -n "$PRUNEFS"; then
|
||||||
prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-fstype \1 -o/g'`
|
prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-fstype \1 -o/g' \
|
@ -1,8 +1,6 @@
|
|||||||
Index: locate/updatedb.sh
|
--- locate/updatedb.sh.orig 2012-01-16 19:06:44.632122416 -0500
|
||||||
===================================================================
|
+++ locate/updatedb.sh 2012-01-16 19:07:19.338688523 -0500
|
||||||
--- locate/updatedb.sh.orig 2010-08-23 12:27:24.000000000 +0200
|
@@ -228,7 +228,7 @@
|
||||||
+++ locate/updatedb.sh 2010-08-23 12:29:20.495699371 +0200
|
|
||||||
@@ -228,7 +228,7 @@ done
|
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
||||||
|
|
||||||
@ -10,4 +8,4 @@ Index: locate/updatedb.sh
|
|||||||
+: ${PRUNEFS="nfs nfs4 NFS proc afs smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs cifs 9P unknown"}
|
+: ${PRUNEFS="nfs nfs4 NFS proc afs smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs cifs 9P unknown"}
|
||||||
|
|
||||||
if test -n "$PRUNEFS"; then
|
if test -n "$PRUNEFS"; then
|
||||||
prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-fstype \1 -o/g'`
|
prunefs_exp=`echo $PRUNEFS |sed -e 's/\([^ ][^ ]*\)/-fstype \1 -o/g' \
|
14
findutils-4.5.10-use_proc_mounts.patch
Normal file
14
findutils-4.5.10-use_proc_mounts.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- gnulib/lib/mountlist.c.orig 2012-01-16 15:24:39.982035415 -0500
|
||||||
|
+++ gnulib/lib/mountlist.c 2012-01-16 15:26:14.587852681 -0500
|
||||||
|
@@ -71,6 +71,11 @@
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if defined __linux__
|
||||||
|
+# undef MOUNTED
|
||||||
|
+# define MOUNTED "/proc/mounts"
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#ifdef MOUNTED_GETMNTINFO /* 4.4BSD. */
|
||||||
|
# include <sys/mount.h>
|
||||||
|
#endif
|
3
findutils-4.5.10.tar.bz2
Normal file
3
findutils-4.5.10.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:1032d93042aee8eed7e8cd33b4043b7eede3c308985730ea8f704b63e6f73c37
|
||||||
|
size 1917284
|
@ -1,25 +0,0 @@
|
|||||||
Index: gnulib/lib/mountlist.c
|
|
||||||
===================================================================
|
|
||||||
--- gnulib/lib/mountlist.c.orig 2007-12-02 12:57:51.000000000 +0100
|
|
||||||
+++ gnulib/lib/mountlist.c 2010-11-17 13:08:32.133380836 +0100
|
|
||||||
@@ -60,7 +60,7 @@
|
|
||||||
# include <mntent.h>
|
|
||||||
# if !defined MOUNTED
|
|
||||||
# if defined _PATH_MOUNTED /* GNU libc */
|
|
||||||
-# define MOUNTED _PATH_MOUNTED
|
|
||||||
+# define MOUNTED _PATH_MOUNTED
|
|
||||||
# endif
|
|
||||||
# if defined MNT_MNTTAB /* HP-UX. */
|
|
||||||
# define MOUNTED MNT_MNTTAB
|
|
||||||
@@ -71,6 +71,11 @@
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#if defined __linux__
|
|
||||||
+# undef MOUNTED
|
|
||||||
+# define MOUNTED "/proc/mounts"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#ifdef MOUNTED_GETMNTINFO /* 4.4BSD. */
|
|
||||||
# include <sys/mount.h>
|
|
||||||
#endif
|
|
@ -1,3 +1,184 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 17 02:40:55 UTC 2012 - tabraham@novell.com
|
||||||
|
|
||||||
|
- removed patches deprecated by this release
|
||||||
|
- findutils-4.4.2-selinux.patch
|
||||||
|
- findutils-4.4.2-selinux-gnulib.patch
|
||||||
|
- findutils-4.4.2-fts-remount.patch
|
||||||
|
- refreshed other patches as required
|
||||||
|
|
||||||
|
- Update to 4.5.10
|
||||||
|
+ doc: The manual now includes a small number of references to
|
||||||
|
further reading on security.
|
||||||
|
+ fixed bug #30608: Automagic dependency on selinux. The configure
|
||||||
|
script now provides a --without-selinux option.
|
||||||
|
+ fixed bug #29949: find -execdir does not change working directory
|
||||||
|
+ fixed bug #31359: test-strstr unit test fails on alpha.
|
||||||
|
+ fixed bug #30777: find -exec echo TURNIP{} \+ is accepted but
|
||||||
|
TURNIP is eaten
|
||||||
|
+ fixed bug #30180: error message from incorrect -size option is off
|
||||||
|
+ fixed bug #29828: test suite deadlock on FreeBSD
|
||||||
|
+ updated translations - Finnish, Italian, Danish, Slovenian,
|
||||||
|
German, Estonian, French, Japanese and Danish
|
||||||
|
|
||||||
|
- Update to 4.5.9
|
||||||
|
+ fixed bug #29593: Make import-gnulib.sh work under a POSIX shell.
|
||||||
|
+ fixed bug #29511: fails to build on kfreebsd-*
|
||||||
|
+ fixed bug #27563: -L breaks -execdir
|
||||||
|
+ fixed bug #19593: -execdir .... {} + has suboptimal performance
|
||||||
|
(see below)
|
||||||
|
+ updated translation - Chinese (simplified)
|
||||||
|
+ The find program will once again build argument lists longer
|
||||||
|
than 1 with "-execdir ...+". The upper limit of 1 argument for
|
||||||
|
execdir was introduced as a workaround in findutils-4.3.4. The
|
||||||
|
limit is now removed, but find still does not issue the maximum
|
||||||
|
possible number of arguments, since an exec will occur each time
|
||||||
|
find encounters a subdirectory (if at least one argument is
|
||||||
|
pending).
|
||||||
|
+ You can now increase the parallelism of xargs in mid-run by
|
||||||
|
sending it SIGUSR1, and decrease the parallelism with SIGUSR2.
|
||||||
|
|
||||||
|
- Update to 4.5.8
|
||||||
|
+ fixed bug #29460: -printf %Y fails in $CWD-dependent way
|
||||||
|
+ fixed bug #27974: Use gnulib's xreadlinkat support
|
||||||
|
+ fixed bug #29435: fd_is_cloexec does not work on Fedora buildhosts
|
||||||
|
+ fixed bug #27221: symlink_loop check broken by FTS_CWDFD
|
||||||
|
+ fixed bug #27213: avoid failed assertions for non-executable
|
||||||
|
directories.
|
||||||
|
+ updated translations - Vietnamese, Czech, Dutch, Polish, Russian
|
||||||
|
|
||||||
|
- Update to 4.5.7
|
||||||
|
+ If you use the -fstype FOO predicate and specify a filsystem
|
||||||
|
type FOO which is not known (e.g. present in /etc/mtab) at the
|
||||||
|
time find starts, that predicate is now equivalent to -false.
|
||||||
|
This substitution currently occurs at optimisation level 2 and
|
||||||
|
above.
|
||||||
|
|
||||||
|
- Update to 4.5.6
|
||||||
|
+ patch #4848 - support for SELinux
|
||||||
|
+ fixed bug #29089 - SELinux --context and %Z options
|
||||||
|
+ fixed bug #28872: Mistake in "#safer" example in "Problems with
|
||||||
|
-exec and filenames" section of the Texinfo manual.
|
||||||
|
+ fixed bug #28824: Corrected error message for "-ctime x".
|
||||||
|
Likewise for -gid, -inum, -links, -mmin, -cmin, -amin,
|
||||||
|
-uid, -used, -atime, -mtime, -ctime.
|
||||||
|
+ fixed bug #27975: Infinite loop for -exec [..] {} +.
|
||||||
|
+ fixed bug #27846: Assertion failure in xargs.c on AIX.
|
||||||
|
+ fixed bug #27375: Open file descriptors leak into child processes.
|
||||||
|
+ fixed bug #27017: find -D opt / -fstype ext3 -print , -quit coredumps
|
||||||
|
+ fixed bug #27328: segfault if the initial exec for "find -exec" fails.
|
||||||
|
+ fixed bug #26868: compilation error in pred.c on Solaris x86_64
|
||||||
|
+ fixed bug #24873: Duplicate fprint option corrupts output
|
||||||
|
+ fixed bug #23920: warn about un-matchable -path arguments ending in /.
|
||||||
|
+ fixed bug #19120: Patch to fix single quotes in man page find(1)
|
||||||
|
+ fixed bug #26327: xargs man page is vague about the number of times
|
||||||
|
command is executed.
|
||||||
|
|
||||||
|
- Update to 4.5.5
|
||||||
|
+ xargs now handles the case where the system's actual exec limits
|
||||||
|
are smaller than the value of ARG_MAX at compile time. Very few
|
||||||
|
platforms normally have this property, but it is possible to
|
||||||
|
configure sume Unix systems this way.
|
||||||
|
+ fixed bug #25359 - files/testsuite/find.gnu/posix-h.exp test fail
|
||||||
|
+ fixed bug #26587 - fix a typo in -execdir documentation (it says
|
||||||
|
-exec by mistake in the text)
|
||||||
|
+ fixed bug #26537 - find -prune now makes sure it has valid stat()
|
||||||
|
information
|
||||||
|
+ fixed bug #22708 - exit status 126 and 127 from the utility invoked
|
||||||
|
from xargs now makes xargs return 123, meaning that exit status
|
||||||
|
values 126 and 127 not unambiguously mean that the utility could
|
||||||
|
not be run or could not be found, respectively.
|
||||||
|
+ doc: the -wholename option to find is no longer preferred over
|
||||||
|
-ipath
|
||||||
|
|
||||||
|
- Update to 4.5.4
|
||||||
|
+ The ftsfind executable (which is built by default as "find") now
|
||||||
|
calls fts() in such a way that it avoids calling stat() on directory
|
||||||
|
entries, if it doesn't need the information. This can produce a
|
||||||
|
significant speedup on filesystems which don't populate the d_type
|
||||||
|
element of struct dirent, for example reiserfs. Anecdotal evidence
|
||||||
|
suggests this can speed updatedb up from about 30 minutes to 3-4
|
||||||
|
minutes.
|
||||||
|
+ The ftsfind executable also now avoids calling stat() functions to
|
||||||
|
discover the inode number of a file, if we already read this
|
||||||
|
information from the directory. This does provide a speed-up, but
|
||||||
|
only for a restricted set of commands such as "find . -inum 4001".
|
||||||
|
This fix is listed below as bug #24342
|
||||||
|
+ fixed bug #25764 - remove duplicate entry for 'proc' in updatedb's
|
||||||
|
$PRUNEFS
|
||||||
|
+ fixed bug #25359 - find -H wrongly behaves like -L sometimes; this
|
||||||
|
bug affects only filesystems which populate d_type and affects
|
||||||
|
-type and -printf %y. This does not affect the default behavior of
|
||||||
|
find or find -P
|
||||||
|
+ fixed bug #25144 - misleading error message when argument to
|
||||||
|
find -user is an unknown user or is missing
|
||||||
|
+ fixed bug #25154 - allow compilation with C compilers that don't
|
||||||
|
allow declarations to follow statements
|
||||||
|
+ fixed bug #24342 - -inum predicate should use dirent.d_ino instead
|
||||||
|
of stat.st_ino (this is a performance bug)
|
||||||
|
+ updated translations - Bulgarian, German, Irish, Hungarian,
|
||||||
|
Lithuanian, Dutch, Polish, Slovenian, Swedish, Turkish, Ukranian,
|
||||||
|
Vietnamese
|
||||||
|
|
||||||
|
- Update to 4.5.3
|
||||||
|
+ fixed bug #24283 - find -printf %TY causes NULL pointer dereference
|
||||||
|
+ changes to gnulib's fts code should provide performance improvements
|
||||||
|
in find when processing very large directories (for example
|
||||||
|
directories containing significantly more than 10000 filenames).
|
||||||
|
Performance improvements may only exist for some find command
|
||||||
|
lines (performance testing was done for the fts implementation
|
||||||
|
itself but we haven't done the analogous performance tests in find).
|
||||||
|
+ file type information is also passed back from fts to find,
|
||||||
|
saving calls to the stat system call for find command lines
|
||||||
|
which don't need the stat information. This provides a performance
|
||||||
|
improvement for common cases like find "find . -type d".
|
||||||
|
|
||||||
|
- Update to 4.5.2
|
||||||
|
+ fixed bug #24169 - find would segfault if the -newerXY test was
|
||||||
|
not followed by any argument
|
||||||
|
+ fixed bug #23996 - integer overflow on some platforms when
|
||||||
|
parsing "-used 3"
|
||||||
|
+ New translation - Czech
|
||||||
|
+ Updated translations - French, Indonesian
|
||||||
|
+ doc: bug #23070 - corrected manpage description of find -perm /000
|
||||||
|
(the change was already made by the manpage indicated the change
|
||||||
|
would happen "soon")
|
||||||
|
|
||||||
|
- Update to 4.5.1
|
||||||
|
+ New translation - Lithuanian
|
||||||
|
+ Updated translation - Chinese (simplified)
|
||||||
|
+ doc: added a working example describing how to find the
|
||||||
|
shallowest instances of a given directoty name (or names) in a
|
||||||
|
directory hierarchy
|
||||||
|
+ fixed bug #22662 - find -printf %AX appends nanoseconds in the
|
||||||
|
right place now
|
||||||
|
+ fixed bug #23663 - crash in some locales for -print %AX (this
|
||||||
|
problem seems to have affected only the CVS code, and not any
|
||||||
|
public releases)
|
||||||
|
|
||||||
|
- Update to 4.5.0
|
||||||
|
+ If POSIXLY_CORRECT environment variable is set, the system's
|
||||||
|
definition of "yes" and "no" responses are used to interpret
|
||||||
|
the response to questions from -ok and -okdir. The default is
|
||||||
|
still to use information from the findutils message translations.
|
||||||
|
+ If xargs find that exec fails because the argument size limit it
|
||||||
|
calculated is larger than the system's actual maximum, it now
|
||||||
|
adapts by passing fewer arguments (as opposed to failing)
|
||||||
|
+ The default optimization level for find is now -O2 instead of
|
||||||
|
-O0 meaning that a number of additional optimizations are
|
||||||
|
performed by default. Current optimizations at each level are:
|
||||||
|
|
||||||
|
0: Perform -name, -path, -iname, -ipath before other checks
|
||||||
|
1: Expressions containing only cost-free tests are evaluated
|
||||||
|
before expressions which contain more costly tests
|
||||||
|
2: Bring forward all tests that need to know the type of a file
|
||||||
|
but don't need to stat it
|
||||||
|
3: All tests are ordered by their estimated cost
|
||||||
|
|
||||||
|
Cost here is simply an estimate of how time consuming the I/O
|
||||||
|
operations needed to make a test are
|
||||||
|
+ Various bug fixes (See NEWS)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Dec 1 15:47:34 UTC 2011 - coolo@suse.com
|
Thu Dec 1 15:47:34 UTC 2011 - coolo@suse.com
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package findutils
|
# spec file for package findutils
|
||||||
#
|
#
|
||||||
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -15,33 +15,27 @@
|
|||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Name: findutils
|
Name: findutils
|
||||||
Url: http://www.gnu.org/software/findutils/
|
Url: http://www.gnu.org/software/findutils/
|
||||||
License: GPL-3.0+
|
License: GPL-3.0+
|
||||||
Group: Productivity/File utilities
|
Group: Productivity/File utilities
|
||||||
Version: 4.4.2
|
Version: 4.5.10
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: The GNU versions of find utilities (find and xargs)
|
Summary: The GNU versions of find utilities (find and xargs)
|
||||||
# retreived from http://ftp.gnu.org/pub/gnu/findutils/findutils-4.4.2.tar.gz
|
# retrieved from http://alpha.gnu.org/pub/gnu/findutils/findutils-4.5.10.tar.gz
|
||||||
Source: findutils-%{version}.tar.bz2
|
Source: findutils-%{version}.tar.bz2
|
||||||
Source1: sysconfig.locate
|
Source1: sysconfig.locate
|
||||||
Source2: cron.daily.updatedb
|
Source2: cron.daily.updatedb
|
||||||
# Use /proc/mounts instead of /etc/mtab as autofs entries are only
|
# Use /proc/mounts instead of /etc/mtab as autofs entries are only
|
||||||
# listed in the kernels >= 2.6.32
|
# listed in the kernels >= 2.6.32
|
||||||
Patch0: findutils-use_proc_mounts.patch
|
Patch0: findutils-4.5.10-use_proc_mounts.patch
|
||||||
# adds a new option -xautofs to find to not descend into directories on autofs file systems
|
# adds a new option -xautofs to find to not descend into directories on autofs file systems
|
||||||
Patch1: findutils-4.4.2-xautofs.patch
|
Patch1: findutils-4.4.2-xautofs.patch
|
||||||
# patch accepted by gnulib upstream - rhbz#538536
|
Patch2: findutils-4.4.2-updatedb.patch
|
||||||
Patch2: findutils-4.4.2-fts-remount.patch
|
Patch3: findutils-4.5.10-prune_unknown.patch
|
||||||
# gnulib based SELinux patch adding a new search predicate -context and
|
Patch4: findutils-4.5.10-updatedb_ignore_nfsv4.patch
|
||||||
# a new -printf conversion %Z
|
|
||||||
Patch3: findutils-4.4.2-selinux.patch
|
|
||||||
# once the selinux-at module appears on the list within import-gnulib.config
|
|
||||||
# the following patch will be no longer needed
|
|
||||||
Patch4: findutils-4.4.2-selinux-gnulib.patch
|
|
||||||
Patch5: findutils-4.4.2-updatedb.patch
|
|
||||||
Patch6: findutils-prune_unknown.patch
|
|
||||||
Patch7: findutils-updatedb_ignore_nfsv4.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
%if 0%{?suse_version} > 1100
|
%if 0%{?suse_version} > 1100
|
||||||
@ -85,11 +79,8 @@ switching on the computer.
|
|||||||
%patch0
|
%patch0
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3
|
||||||
%patch4 -p1
|
%patch4
|
||||||
%patch5
|
|
||||||
%patch6
|
|
||||||
%patch7
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf
|
autoreconf
|
||||||
|
Loading…
Reference in New Issue
Block a user