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
|
||||
===================================================================
|
||||
--- doc/find.texi.orig
|
||||
+++ doc/find.texi
|
||||
@@ -3364,7 +3364,7 @@ Default is none.
|
||||
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.5.10/doc/find.texi 2012-01-16 15:45:10.098656840 -0500
|
||||
@@ -3482,7 +3482,7 @@
|
||||
@item --prunepaths='@var{path}@dots{}'
|
||||
Directories to omit from the database, which would otherwise be
|
||||
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
|
||||
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
|
||||
Index: locate/updatedb.1
|
||||
===================================================================
|
||||
--- locate/updatedb.1.orig
|
||||
+++ locate/updatedb.1
|
||||
@@ -75,8 +75,7 @@ Default is \fInfs NFS proc\fP.
|
||||
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
|
||||
+++ findutils-4.5.10/locate/updatedb.1 2012-01-16 15:45:37.745311211 -0500
|
||||
@@ -75,8 +75,7 @@
|
||||
.TP
|
||||
.B \-\-output=\fIdbfile\fP
|
||||
The database file to build.
|
||||
@ -25,7 +23,7 @@ Index: locate/updatedb.1
|
||||
.TP
|
||||
.B \-\-localuser=\fIuser\fP
|
||||
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
|
||||
.B \-\-netuser=\fIuser\fP
|
||||
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.
|
||||
.TP
|
||||
.B \-\-old\-format
|
||||
Index: locate/updatedb.sh
|
||||
===================================================================
|
||||
--- locate/updatedb.sh.orig
|
||||
+++ locate/updatedb.sh
|
||||
@@ -158,7 +158,7 @@ select_shell() {
|
||||
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
|
||||
+++ findutils-4.5.10/locate/updatedb.sh 2012-01-16 15:45:56.037082532 -0500
|
||||
@@ -158,7 +158,7 @@
|
||||
: ${NETPATHS=}
|
||||
|
||||
# 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
|
||||
# is not what the user will expect. Therefore we now reject such
|
||||
@@ -188,7 +188,7 @@ fi
|
||||
@@ -188,7 +188,7 @@
|
||||
export TMPDIR
|
||||
|
||||
# The user to search network directories as.
|
||||
@ -56,7 +53,7 @@ Index: locate/updatedb.sh
|
||||
|
||||
# The directory containing the subprograms.
|
||||
if test -n "$LIBEXECDIR" ; then
|
||||
@@ -228,11 +228,10 @@ done
|
||||
@@ -228,10 +228,10 @@
|
||||
|
||||
PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
||||
|
||||
@ -65,40 +62,37 @@ Index: locate/updatedb.sh
|
||||
|
||||
if test -n "$PRUNEFS"; then
|
||||
-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
|
||||
prunefs_exp=''
|
||||
fi
|
||||
@@ -252,13 +251,12 @@ if test -n "$SEARCHPATHS"; then
|
||||
# : A1
|
||||
@@ -253,12 +253,13 @@
|
||||
su $LOCALUSER `select_shell $LOCALUSER` -c \
|
||||
"$find $SEARCHPATHS $FINDOPTIONS \
|
||||
- \\( $prunefs_exp \
|
||||
\\( $prunefs_exp \
|
||||
- -type d -regex '$PRUNEREGEX' \\) -prune -o $print_option"
|
||||
+ -type d \\( $prunefs_exp -regex '$PRUNEREGEX' \\) -prune \
|
||||
+ -o $print_option"
|
||||
else
|
||||
# : A2
|
||||
$find $SEARCHPATHS $FINDOPTIONS \
|
||||
- \( $prunefs_exp \
|
||||
\( $prunefs_exp \
|
||||
- -type d -regex "$PRUNEREGEX" \) -prune -o $print_option
|
||||
+ -type d \( $prunefs_exp -regex "$PRUNEREGEX" \) -prune -o $print_option
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -321,13 +319,13 @@ if test -n "$SEARCHPATHS"; then
|
||||
# : A5
|
||||
@@ -322,12 +323,14 @@
|
||||
su $LOCALUSER `select_shell $LOCALUSER` -c \
|
||||
"$find $SEARCHPATHS $FINDOPTIONS \
|
||||
- \( $prunefs_exp \
|
||||
\( $prunefs_exp \
|
||||
- -type d -regex '$PRUNEREGEX' \) -prune -o $print_option" || exit $?
|
||||
+ -type d \( $prunefs_exp -regex '$PRUNEREGEX' \) -prune \
|
||||
+ -o $print_option" || exit $?
|
||||
else
|
||||
# : A6
|
||||
$find $SEARCHPATHS $FINDOPTIONS \
|
||||
- \( $prunefs_exp \
|
||||
\( $prunefs_exp \
|
||||
- -type d -regex "$PRUNEREGEX" \) -prune -o $print_option || exit $?
|
||||
+ -type d \( $prunefs_exp -regex "$PRUNEREGEX" \) -prune \
|
||||
+ -o $print_option || exit $?
|
||||
|
@ -1,8 +1,7 @@
|
||||
Index: findutils-4.4.2/doc/find.texi
|
||||
===================================================================
|
||||
--- findutils-4.4.2.orig/doc/find.texi
|
||||
+++ findutils-4.4.2/doc/find.texi
|
||||
@@ -1413,6 +1413,10 @@ them.
|
||||
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.5.10/doc/find.texi 2012-01-16 15:54:30.683648566 -0500
|
||||
@@ -1440,6 +1440,10 @@
|
||||
There are two ways to avoid searching certain filesystems. One way is
|
||||
to tell @code{find} to only search one filesystem:
|
||||
|
||||
@ -13,25 +12,23 @@ Index: findutils-4.4.2/doc/find.texi
|
||||
@deffn Option -xdev
|
||||
@deffnx Option -mount
|
||||
Don't descend directories on other filesystems. These options are
|
||||
Index: findutils-4.4.2/find/defs.h
|
||||
===================================================================
|
||||
--- findutils-4.4.2.orig/find/defs.h
|
||||
+++ findutils-4.4.2/find/defs.h
|
||||
@@ -550,6 +550,9 @@ struct options
|
||||
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.5.10/find/defs.h 2012-01-16 15:56:13.473363517 -0500
|
||||
@@ -561,6 +561,9 @@
|
||||
/* If true, don't cross filesystem boundaries. */
|
||||
boolean stay_on_filesystem;
|
||||
bool stay_on_filesystem;
|
||||
|
||||
+ /* If true, don't descend directories on autofs filesystems. */
|
||||
+ boolean bypass_autofs;
|
||||
+ /* If true, don't descend directores 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.
|
||||
*/
|
||||
Index: findutils-4.4.2/find/find.1
|
||||
===================================================================
|
||||
--- findutils-4.4.2.orig/find/find.1
|
||||
+++ findutils-4.4.2/find/find.1
|
||||
@@ -451,6 +451,9 @@ if standard input is a tty, and to
|
||||
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.5.10/find/find.1 2012-01-16 15:57:07.003694295 -0500
|
||||
@@ -460,6 +460,9 @@
|
||||
.B \-nowarn
|
||||
otherwise.
|
||||
|
||||
@ -41,11 +38,10 @@ Index: findutils-4.4.2/find/find.1
|
||||
.IP \-xdev
|
||||
Don't descend directories on other filesystems.
|
||||
|
||||
Index: findutils-4.4.2/find/ftsfind.c
|
||||
===================================================================
|
||||
--- findutils-4.4.2.orig/find/ftsfind.c
|
||||
+++ findutils-4.4.2/find/ftsfind.c
|
||||
@@ -525,6 +525,12 @@ consider_visiting(FTS *p, FTSENT *ent)
|
||||
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.5.10/find/ftsfind.c 2012-01-16 16:00:05.103467741 -0500
|
||||
@@ -485,6 +485,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,19 +54,18 @@ Index: findutils-4.4.2/find/ftsfind.c
|
||||
if ( (ent->fts_info == FTS_D) && !options.do_dir_first )
|
||||
{
|
||||
/* this is the preorder visit, but user said -depth */
|
||||
Index: findutils-4.4.2/find/parser.c
|
||||
===================================================================
|
||||
--- findutils-4.4.2.orig/find/parser.c
|
||||
+++ findutils-4.4.2/find/parser.c
|
||||
@@ -150,6 +150,7 @@ static boolean parse_user PARAM
|
||||
static boolean parse_version PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||
static boolean parse_wholename PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||
static boolean parse_xdev PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||
+static boolean parse_xautofs PARAMS((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 boolean parse_noignore_race PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||
static boolean parse_warn PARAMS((const struct parser_table*, char *argv[], int *arg_ptr));
|
||||
@@ -320,6 +321,7 @@ static struct parser_table const parse_t
|
||||
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.5.10/find/parser.c 2012-01-16 16:05:32.208378367 -0500
|
||||
@@ -151,6 +151,7 @@
|
||||
static bool parse_version (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_wholename (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_xdev (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
+static bool parse_xautofs (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_ignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_noignore_race (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
static bool parse_warn (const struct parser_table*, char *argv[], int *arg_ptr);
|
||||
@@ -325,6 +326,7 @@
|
||||
PARSE_TEST_NP ("wholename", wholename), /* GNU, replaced -path, but anyway -path will soon be in POSIX */
|
||||
{ARG_TEST, "writable", parse_accesscheck, pred_writable}, /* GNU, 4.3.0+ */
|
||||
PARSE_OPTION ("xdev", xdev), /* POSIX */
|
||||
@ -78,10 +73,10 @@ Index: findutils-4.4.2/find/parser.c
|
||||
PARSE_TEST ("xtype", xtype), /* GNU */
|
||||
#ifdef UNIMPLEMENTED_UNIX
|
||||
/* 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)
|
||||
+{
|
||||
+ (void) argv;
|
||||
@ -91,15 +86,14 @@ Index: findutils-4.4.2/find/parser.c
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+static boolean
|
||||
+static bool
|
||||
parse_ignore_race (const struct parser_table* entry, char **argv, int *arg_ptr)
|
||||
{
|
||||
options.ignore_readdir_race = true;
|
||||
Index: findutils-4.4.2/find/util.c
|
||||
===================================================================
|
||||
--- findutils-4.4.2.orig/find/util.c
|
||||
+++ findutils-4.4.2/find/util.c
|
||||
@@ -933,6 +933,7 @@ set_option_defaults(struct options *p)
|
||||
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.5.10/find/util.c 2012-01-16 16:06:17.309814520 -0500
|
||||
@@ -1006,6 +1006,7 @@
|
||||
|
||||
p->full_days = 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 2010-04-01 12:46:24.000000000 +0200
|
||||
+++ locate/updatedb.sh 2010-04-01 12:47:09.919511262 +0200
|
||||
@@ -228,7 +228,7 @@ done
|
||||
--- locate/updatedb.sh.orig 2012-01-16 19:04:21.074917128 -0500
|
||||
+++ locate/updatedb.sh 2012-01-16 19:05:02.438400012 -0500
|
||||
@@ -228,7 +228,7 @@
|
||||
|
||||
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"}
|
||||
|
||||
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 2010-08-23 12:27:24.000000000 +0200
|
||||
+++ locate/updatedb.sh 2010-08-23 12:29:20.495699371 +0200
|
||||
@@ -228,7 +228,7 @@ done
|
||||
--- locate/updatedb.sh.orig 2012-01-16 19:06:44.632122416 -0500
|
||||
+++ locate/updatedb.sh 2012-01-16 19:07:19.338688523 -0500
|
||||
@@ -228,7 +228,7 @@
|
||||
|
||||
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"}
|
||||
|
||||
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
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# 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
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -15,33 +15,27 @@
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
|
||||
Name: findutils
|
||||
Url: http://www.gnu.org/software/findutils/
|
||||
License: GPL-3.0+
|
||||
Group: Productivity/File utilities
|
||||
Version: 4.4.2
|
||||
Version: 4.5.10
|
||||
Release: 0
|
||||
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
|
||||
Source1: sysconfig.locate
|
||||
Source2: cron.daily.updatedb
|
||||
# Use /proc/mounts instead of /etc/mtab as autofs entries are only
|
||||
# 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
|
||||
Patch1: findutils-4.4.2-xautofs.patch
|
||||
# patch accepted by gnulib upstream - rhbz#538536
|
||||
Patch2: findutils-4.4.2-fts-remount.patch
|
||||
# gnulib based SELinux patch adding a new search predicate -context and
|
||||
# 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
|
||||
Patch2: findutils-4.4.2-updatedb.patch
|
||||
Patch3: findutils-4.5.10-prune_unknown.patch
|
||||
Patch4: findutils-4.5.10-updatedb_ignore_nfsv4.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: automake
|
||||
%if 0%{?suse_version} > 1100
|
||||
@ -85,11 +79,8 @@ switching on the computer.
|
||||
%patch0
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5
|
||||
%patch6
|
||||
%patch7
|
||||
%patch3
|
||||
%patch4
|
||||
|
||||
%build
|
||||
autoreconf
|
||||
|
Loading…
Reference in New Issue
Block a user