diff options
author | Chris PeBenito <pebenito@gentoo.org> | 2005-10-10 23:50:01 +0000 |
---|---|---|
committer | Chris PeBenito <pebenito@gentoo.org> | 2005-10-10 23:50:01 +0000 |
commit | 4a6af787763f7f156ae4818cb0b27b46f5515632 (patch) | |
tree | 1ef346a2c40c1e3f8d38d893c5009e29cd9ea410 | |
parent | removed old ebuilds (diff) | |
download | gentoo-2-4a6af787763f7f156ae4818cb0b27b46f5515632.tar.gz gentoo-2-4a6af787763f7f156ae4818cb0b27b46f5515632.tar.bz2 gentoo-2-4a6af787763f7f156ae4818cb0b27b46f5515632.zip |
fix up selinux patches
(Portage version: 2.0.53_rc4)
-rw-r--r-- | sys-apps/findutils/ChangeLog | 10 | ||||
-rw-r--r-- | sys-apps/findutils/files/findutils-4.2.18-selinux.diff | 479 | ||||
-rw-r--r-- | sys-apps/findutils/files/findutils-4.2.20-selinux.diff | 455 | ||||
-rw-r--r-- | sys-apps/findutils/files/findutils-4.2.24-selinux.diff (renamed from sys-apps/findutils/files/findutils-4.2.23-selinux.patch) | 220 | ||||
-rw-r--r-- | sys-apps/findutils/findutils-4.2.24.ebuild | 6 | ||||
-rw-r--r-- | sys-apps/findutils/findutils-4.2.25.ebuild | 6 |
6 files changed, 120 insertions, 1056 deletions
diff --git a/sys-apps/findutils/ChangeLog b/sys-apps/findutils/ChangeLog index 01f2d7490ce3..cd9db1c2d2f4 100644 --- a/sys-apps/findutils/ChangeLog +++ b/sys-apps/findutils/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for sys-apps/findutils # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/ChangeLog,v 1.51 2005/10/07 21:09:30 ciaranm Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/ChangeLog,v 1.52 2005/10/10 23:50:01 pebenito Exp $ + + 10 Oct 2005; Chris PeBenito <pebenito@gentoo.org> + -files/findutils-4.2.18-selinux.diff, + -files/findutils-4.2.20-selinux.diff, + -files/findutils-4.2.23-selinux.patch, + +files/findutils-4.2.24-selinux.diff, findutils-4.2.24.ebuild, + findutils-4.2.25.ebuild: + Clean up SELinux patches. *findutils-4.2.25 (07 Oct 2005) diff --git a/sys-apps/findutils/files/findutils-4.2.18-selinux.diff b/sys-apps/findutils/files/findutils-4.2.18-selinux.diff deleted file mode 100644 index 9d08f7c09ed0..000000000000 --- a/sys-apps/findutils/files/findutils-4.2.18-selinux.diff +++ /dev/null @@ -1,479 +0,0 @@ -diff -ur findutils-4.2.18/find/defs.h findutils-4.2.18-new/find/defs.h ---- findutils-4.2.18/find/defs.h 2005-02-12 10:36:03.000000000 +0000 -+++ findutils-4.2.18-new/find/defs.h 2005-02-19 16:04:41.011994928 +0000 -@@ -130,6 +130,10 @@ - #define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW) - #define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX) - -+#ifdef WITH_SELINUX -+#include <selinux/selinux.h> -+#endif /*WITH_SELINUX*/ -+ - #if 1 - #include <stdbool.h> - typedef bool boolean; -@@ -314,6 +318,9 @@ - struct dir_id fileid; /* samefile */ - mode_t type; /* type */ - FILE *stream; /* fprint fprint0 */ -+#ifdef WITH_SELINUX -+ security_context_t scontext; /* scontext */ -+#endif /*WITH_SELINUX*/ - struct format_val printf_vec; /* printf fprintf */ - } args; - -@@ -444,6 +451,9 @@ - boolean pred_used PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); - boolean pred_user PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); - boolean pred_xtype PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); -+#ifdef WITH_SELINUX -+boolean pred_scontext PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); -+#endif /* WITH_SELINUX */ - - int launch PARAMS((const struct buildcmd_control *ctl, - struct buildcmd_state *buildstate)); -@@ -519,6 +529,9 @@ - /* Pointer to the function used to stat files. */ - int (*xstat) (const char *name, struct stat *statbuf); - -+#ifdef WITH_SELINUX -+ int (*x_getfilecon) (); -+#endif /* WITH_SELINUX */ - - /* Indicate if we can implement safely_chdir() using the O_NOFOLLOW - * flag to open(2). -diff -ur findutils-4.2.18/find/find.1 findutils-4.2.18-new/find/find.1 ---- findutils-4.2.18/find/find.1 2005-02-15 09:32:24.000000000 +0000 -+++ findutils-4.2.18-new/find/find.1 2005-02-19 16:04:01.926936760 +0000 -@@ -441,6 +441,9 @@ - link to a file of type \fIc\fR; if the \-L option has been given, true - if \fIc\fR is `l'. In other words, for symbolic links, \-xtype checks - the type of the file that \-type does not check. -+.IP "\-context \fIscontext\fR" -+.IP "\--context \fIscontext\fR" -+(SELinux only) File has the security context \fIscontext\fR. - - .SS ACTIONS - .IP "\-delete\fR" -@@ -711,6 +714,8 @@ - File's type (like in ls \-l), 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). -diff -ur findutils-4.2.18/find/find.c findutils-4.2.18-new/find/find.c ---- findutils-4.2.18/find/find.c 2005-02-16 09:51:08.000000000 +0000 -+++ findutils-4.2.18-new/find/find.c 2005-02-19 16:04:01.924937064 +0000 -@@ -228,6 +228,93 @@ - { - return lstat(name, p); - } -+#ifdef WITH_SELINUX -+ -+static int -+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv) -+{ -+ /* Our original getfilecon() call failed. Perhaps we can't follow a -+ * symbolic link. If that might be the problem, lgetfilecon() the link. -+ * Otherwise, admit defeat. -+ */ -+ switch (errno) -+ { -+ case ENOENT: -+ case ENOTDIR: -+#ifdef DEBUG_STAT -+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name); -+#endif -+ return lgetfilecon(name, p); -+ -+ case EACCES: -+ case EIO: -+ case ELOOP: -+ case ENAMETOOLONG: -+#ifdef EOVERFLOW -+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */ -+#endif -+ default: -+ return prev_rv; -+ } -+} -+ -+ -+/* optionh_getfilecon() implements the getfilecon operation when the -+ * -H option is in effect. -+ * -+ * If the item to be examined is a command-line argument, we follow -+ * symbolic links. If the getfilecon() call fails on the command-line -+ * item, we fall back on the properties of the symbolic link. -+ * -+ * If the item to be examined is not a command-line argument, we -+ * examine the link itself. -+ */ -+int -+optionh_getfilecon(const char *name, security_context_t *p) -+{ -+ if (0 == state.curdepth) -+ { -+ /* This file is from the command line; deference the link (if it -+ * is a link). -+ */ -+ int rv = getfilecon(name, p); -+ if (0 == rv) -+ return 0; /* success */ -+ else -+ return fallback_getfilecon(name, p, rv); -+ } -+ else -+ { -+ /* Not a file on the command line; do not derefernce the link. -+ */ -+ return lgetfilecon(name, p); -+ } -+} -+ -+/* optionl_getfilecon() implements the getfilecon operation when the -+ * -L option is in effect. That option makes us examine the thing the -+ * symbolic link points to, not the symbolic link itself. -+ */ -+int -+optionl_getfilecon(const char *name, security_context_t *p) -+{ -+ int rv = getfilecon(name, p); -+ if (0 == rv) -+ return 0; /* normal case. */ -+ else -+ return fallback_getfilecon(name, p, rv); -+} -+ -+/* optionp_getfilecon() implements the stat operation when the -P -+ * option is in effect (this is also the default). That option makes -+ * us examine the symbolic link itself, not the thing it points to. -+ */ -+int -+optionp_getfilecon(const char *name, security_context_t *p) -+{ -+ return lgetfilecon(name, p); -+} -+#endif /* WITH_SELINUX */ - - #ifdef DEBUG_STAT - static uintmax_t stat_count = 0u; -@@ -256,11 +343,17 @@ - { - case SYMLINK_ALWAYS_DEREF: /* -L */ - options.xstat = optionl_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionl_getfilecon; -+#endif /* WITH_SELINUX */ - options.no_leaf_check = true; - break; - - case SYMLINK_NEVER_DEREF: /* -P (default) */ - options.xstat = optionp_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionp_getfilecon; -+#endif /* WITH_SELINUX */ - /* Can't turn no_leaf_check off because the user might have specified - * -noleaf anyway - */ -@@ -268,6 +361,9 @@ - - case SYMLINK_DEREF_ARGSONLY: /* -H */ - options.xstat = optionh_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionh_getfilecon; -+#endif /* WITH_SELINUX */ - options.no_leaf_check = true; - } - -@@ -373,6 +469,9 @@ - int - main (int argc, char **argv) - { -+#ifdef WITH_SELINUX -+ int is_selinux_enabled_flag = is_selinux_enabled()>0; -+#endif /* WITH_SELINUX */ - int i; - PFB parse_function; /* Pointer to the function which parses. */ - struct predicate *cur_pred; -@@ -509,6 +608,14 @@ - if (strchr ("-!(),", argv[i][0]) == NULL) - usage (_("paths must precede expression")); - predicate_name = argv[i]; -+#ifdef WITH_SELINUX -+ if (! is_selinux_enabled_flag) { -+ if ((strncmp(predicate_name,"-context",strlen("-context"))==0) || -+ (strncmp(predicate_name,"--context",strlen("--context"))==0)) { -+ error (1, 0,_("Error: invalid predicate %s: the kernel is not selinux-enabled.\n"),predicate_name); -+ } -+ } -+#endif - parse_function = find_parser (predicate_name); - if (parse_function == NULL) - /* Command line option not recognized */ -diff -ur findutils-4.2.18/find/Makefile.am findutils-4.2.18-new/find/Makefile.am ---- findutils-4.2.18/find/Makefile.am 2004-11-21 13:37:47.000000000 +0000 -+++ findutils-4.2.18-new/find/Makefile.am 2005-02-19 16:04:01.936935240 +0000 -@@ -3,8 +3,9 @@ - bin_PROGRAMS = find - find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c - EXTRA_DIST = defs.h $(man_MANS) -+DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX - INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\" --LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -+LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux - man_MANS = find.1 - SUBDIRS = testsuite - -diff -ur findutils-4.2.18/find/Makefile.in findutils-4.2.18-new/find/Makefile.in ---- findutils-4.2.18/find/Makefile.in 2005-02-16 10:26:56.000000000 +0000 -+++ findutils-4.2.18-new/find/Makefile.in 2005-02-19 16:04:01.927936608 +0000 -@@ -1,4 +1,4 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. -+# Makefile.in generated by automake 1.9.3 from Makefile.am. - # @configure_input@ - - # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -@@ -174,7 +174,7 @@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ - CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ -+DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX - DEPDIR = @DEPDIR@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ -@@ -266,7 +266,7 @@ - localedir = $(datadir)/locale - find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c - EXTRA_DIST = defs.h $(man_MANS) --LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -+LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux - man_MANS = find.1 - SUBDIRS = testsuite - all: all-recursive -@@ -282,9 +282,9 @@ - exit 1;; \ - esac; \ - done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits find/Makefile'; \ -+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu find/Makefile'; \ - cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnits find/Makefile -+ $(AUTOMAKE) --gnu find/Makefile - .PRECIOUS: Makefile - Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ -@@ -334,8 +334,7 @@ - f=`echo "$$p" | \ - sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - for opt in --help --version; do \ -- if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \ -- 2>c$${pid}_.err </dev/null \ -+ if "$(DESTDIR)$(bindir)/$$f" $$opt > c$${pid}_.out 2> c$${pid}_.err \ - && test -n "`cat c$${pid}_.out`" \ - && test -z "`cat c$${pid}_.err`"; then :; \ - else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \ -diff -ur findutils-4.2.18/find/parser.c findutils-4.2.18-new/find/parser.c ---- findutils-4.2.18/find/parser.c 2005-02-12 20:49:25.000000000 +0000 -+++ findutils-4.2.18-new/find/parser.c 2005-02-19 16:04:01.942934328 +0000 -@@ -36,6 +36,10 @@ - #include <sys/file.h> - #endif - -+#ifdef WITH_SELINUX -+#include <selinux/selinux.h> -+#endif /*WITH_SELINUX*/ -+ - #if ENABLE_NLS - # include <libintl.h> - # define _(Text) gettext (Text) -@@ -139,6 +143,9 @@ - static boolean parse_warn PARAMS((char *argv[], int *arg_ptr)); - static boolean parse_xtype PARAMS((char *argv[], int *arg_ptr)); - static boolean parse_quit PARAMS((char *argv[], int *arg_ptr)); -+#ifdef WITH_SELINUX -+static boolean parse_scontext PARAMS((char *argv[], int *arg_ptr)); -+#endif /*WITH_SELINUX*/ - - static boolean insert_regex PARAMS((char *argv[], int *arg_ptr, boolean ignore_case)); - static boolean insert_type PARAMS((char *argv[], int *arg_ptr, boolean (*which_pred )())); -@@ -266,6 +273,8 @@ - {ARG_TEST, "wholename", parse_wholename}, /* GNU, replaces -path */ - {ARG_OPTION, "xdev", parse_xdev}, - {ARG_TEST, "xtype", parse_xtype}, /* GNU */ -+ {ARG_TEST, "context", parse_scontext}, /* SELinux */ -+ {ARG_TEST, "-context", parse_scontext}, /* SELinux */ - {0, 0, 0} - }; - -@@ -744,6 +753,10 @@ - -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN\n\ - -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n\ - -used N -user NAME -xtype [bcdpfls]\n")); -+#ifdef WITH_SELINUX -+ puts (_("\ -+ -context CONTEXT\n")); -+#endif /*WITH_SELINUX*/ - puts (_("\ - actions: -exec COMMAND ; -fprint FILE -fprint0 FILE -fprintf FILE FORMAT\n\ - -fls FILE -ok COMMAND ; -print -print0 -printf FORMAT -prune -ls -delete\n\ -@@ -1601,6 +1614,32 @@ - return true; - } - -+#ifdef WITH_SELINUX -+ -+static boolean -+parse_scontext ( argv, arg_ptr ) -+ char *argv[]; -+ int *arg_ptr; -+{ -+ struct predicate *our_pred; -+ -+ if ( (argv == NULL) || (argv[*arg_ptr] == NULL) ) -+ return( false ); -+ -+ our_pred = insert_primary(pred_scontext); -+ our_pred->need_stat = 0; -+#ifdef DEBUG -+ our_pred->p_name = find_pred_name (pred_scontext); -+#endif /*DEBUG*/ -+ -+ our_pred->args.scontext = argv[*arg_ptr];; -+ -+ (*arg_ptr)++; -+ return( true ); -+} -+ -+#endif /*WITH_SELINUX*/ -+ - static boolean - parse_xtype (char **argv, int *arg_ptr) - { -@@ -1776,7 +1815,11 @@ - if (*scan2 == '.') - for (scan2++; ISDIGIT (*scan2); scan2++) - /* Do nothing. */ ; -+#ifdef WITH_SELINUX -+ if (strchr ("abcdDfFgGhHiklmMnpPstuUyYZ", *scan2)) -+#else /* WITH_SELINUX */ - if (strchr ("abcdDfFgGhHiklmMnpPstuUyY", *scan2)) -+#endif /* WITH_SELINUX */ - { - segmentp = make_segment (segmentp, format, scan2 - format, - (int) *scan2); -diff -ur findutils-4.2.18/find/pred.c findutils-4.2.18-new/find/pred.c ---- findutils-4.2.18/find/pred.c 2005-02-07 23:49:45.000000000 +0000 -+++ findutils-4.2.18-new/find/pred.c 2005-02-19 16:04:01.944934024 +0000 -@@ -35,6 +35,14 @@ - #include "wait.h" - #include "buildcmd.h" - -+#ifdef WITH_SELINUX -+#include <selinux/selinux.h> -+#endif /*WITH_SELINUX*/ -+ -+#ifndef FNM_CASEFOLD -+#define FNM_CASEFOLD (1<<4) -+#endif /*FNM_CASEFOLD*/ -+ - #if ENABLE_NLS - # include <libintl.h> - # define _(Text) gettext (Text) -@@ -78,7 +86,6 @@ - - extern int yesno (); - -- - /* Get or fake the disk device blocksize. - Usually defined by sys/param.h (if at all). */ - #ifndef DEV_BSIZE -@@ -209,6 +216,9 @@ - {pred_used, "used "}, - {pred_user, "user "}, - {pred_xtype, "xtype "}, -+#ifdef WITH_SELINUX -+ {pred_scontext, "context"}, -+#endif /*WITH_SELINUX*/ - {0, "none "} - }; - -@@ -828,6 +838,26 @@ - - } - break; -+#ifdef WITH_SELINUX -+ case 'Z': /* SELinux security context */ -+ { -+ security_context_t scontext; -+ int rv; -+ rv = (*options.x_getfilecon)(state.rel_pathname, &scontext); -+ -+ if ( rv < 0 ) { -+ (void) fprintf(stderr, "getfileconf(%s): %s", -+ pathname, strerror(errno)); -+ (void) fflush(stderr); -+ } -+ else { -+ segment->text[segment->text_len] = 's'; -+ (void) fprintf (fp, segment->text, scontext); -+ freecon(scontext); -+ } -+ } -+ break ; -+#endif /* WITH_SELINUX */ - } - } - return (true); -@@ -1398,6 +1428,34 @@ - */ - return (pred_type (pathname, &sbuf, pred_ptr)); - } -+ -+ -+#ifdef WITH_SELINUX -+ -+boolean -+pred_scontext ( pathname, stat_buf, pred_ptr ) -+ char *pathname; -+ struct stat *stat_buf; -+ struct predicate *pred_ptr; -+{ -+ int rv; -+ security_context_t scontext; -+ -+ rv = (* options.x_getfilecon)(state.rel_pathname, &scontext); -+ -+ if ( rv < 0 ) { -+ (void) fprintf(stderr, "getfilecon(%s): %s\n", pathname, strerror(errno)); -+ (void) fflush(stderr); -+ return ( false ); -+ } -+ -+ rv = (fnmatch(pred_ptr->args.scontext, scontext,0)==0); -+ freecon(scontext); -+ return rv; -+} -+ -+#endif /*WITH_SELINUX*/ -+ - - /* 1) fork to get a child; parent remembers the child pid - 2) child execs the command requested -diff -ur findutils-4.2.18/find/util.c findutils-4.2.18-new/find/util.c ---- findutils-4.2.18/find/util.c 2005-01-23 18:04:45.000000000 +0000 -+++ findutils-4.2.18-new/find/util.c 2005-02-19 16:04:01.920937672 +0000 -@@ -70,6 +70,9 @@ - last_pred->need_stat = true; - last_pred->need_type = true; - last_pred->args.str = NULL; -+#ifdef WITH_SELINUX -+ last_pred->args.scontext = NULL; -+#endif - last_pred->pred_next = NULL; - last_pred->pred_left = NULL; - last_pred->pred_right = NULL; diff --git a/sys-apps/findutils/files/findutils-4.2.20-selinux.diff b/sys-apps/findutils/files/findutils-4.2.20-selinux.diff deleted file mode 100644 index 371b5d4a9acc..000000000000 --- a/sys-apps/findutils/files/findutils-4.2.20-selinux.diff +++ /dev/null @@ -1,455 +0,0 @@ -diff -ur findutils-4.2.20-orig/find/defs.h findutils-4.2.20/find/defs.h ---- findutils-4.2.20-orig/find/defs.h 2005-03-04 09:58:29.000000000 +0000 -+++ findutils-4.2.20/find/defs.h 2005-03-17 21:51:32.871758376 +0000 -@@ -130,6 +130,10 @@ - #define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW) - #define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX) - -+#ifdef WITH_SELINUX -+#include <selinux/selinux.h> -+#endif /*WITH_SELINUX*/ -+ - #if 1 - #include <stdbool.h> - typedef bool boolean; -@@ -314,6 +318,9 @@ - struct dir_id fileid; /* samefile */ - mode_t type; /* type */ - FILE *stream; /* fprint fprint0 */ -+#ifdef WITH_SELINUX -+ security_context_t scontext; /* scontext */ -+#endif /*WITH_SELINUX*/ - struct format_val printf_vec; /* printf fprintf */ - } args; - -@@ -444,6 +451,9 @@ - boolean pred_used PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); - boolean pred_user PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); - boolean pred_xtype PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); -+#ifdef WITH_SELINUX -+boolean pred_scontext PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); -+#endif /* WITH_SELINUX */ - - int launch PARAMS((const struct buildcmd_control *ctl, - struct buildcmd_state *buildstate)); -@@ -519,6 +529,9 @@ - /* Pointer to the function used to stat files. */ - int (*xstat) (const char *name, struct stat *statbuf); - -+#ifdef WITH_SELINUX -+ int (*x_getfilecon) (); -+#endif /* WITH_SELINUX */ - - /* Indicate if we can implement safely_chdir() using the O_NOFOLLOW - * flag to open(2). -diff -ur findutils-4.2.20-orig/find/find.1 findutils-4.2.20/find/find.1 ---- findutils-4.2.20-orig/find/find.1 2005-03-02 22:36:20.000000000 +0000 -+++ findutils-4.2.20/find/find.1 2005-03-17 21:51:32.873758072 +0000 -@@ -441,6 +441,9 @@ - link to a file of type \fIc\fR; if the \-L option has been given, true - if \fIc\fR is `l'. In other words, for symbolic links, \-xtype checks - the type of the file that \-type does not check. -+.IP "\-context \fIscontext\fR" -+.IP "\--context \fIscontext\fR" -+(SELinux only) File has the security context \fIscontext\fR. - - .SS ACTIONS - .IP "\-delete\fR" -@@ -713,6 +716,8 @@ - File's type (like in ls \-l), 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). -Only in findutils-4.2.20/find: find.1.orig -diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c ---- findutils-4.2.20-orig/find/find.c 2005-03-03 22:30:10.000000000 +0000 -+++ findutils-4.2.20/find/find.c 2005-03-17 21:51:32.877757464 +0000 -@@ -239,6 +239,93 @@ - { - return lstat(name, p); - } -+#ifdef WITH_SELINUX -+ -+static int -+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv) -+{ -+ /* Our original getfilecon() call failed. Perhaps we can't follow a -+ * symbolic link. If that might be the problem, lgetfilecon() the link. -+ * Otherwise, admit defeat. -+ */ -+ switch (errno) -+ { -+ case ENOENT: -+ case ENOTDIR: -+#ifdef DEBUG_STAT -+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name); -+#endif -+ return lgetfilecon(name, p); -+ -+ case EACCES: -+ case EIO: -+ case ELOOP: -+ case ENAMETOOLONG: -+#ifdef EOVERFLOW -+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */ -+#endif -+ default: -+ return prev_rv; -+ } -+} -+ -+ -+/* optionh_getfilecon() implements the getfilecon operation when the -+ * -H option is in effect. -+ * -+ * If the item to be examined is a command-line argument, we follow -+ * symbolic links. If the getfilecon() call fails on the command-line -+ * item, we fall back on the properties of the symbolic link. -+ * -+ * If the item to be examined is not a command-line argument, we -+ * examine the link itself. -+ */ -+int -+optionh_getfilecon(const char *name, security_context_t *p) -+{ -+ if (0 == state.curdepth) -+ { -+ /* This file is from the command line; deference the link (if it -+ * is a link). -+ */ -+ int rv = getfilecon(name, p); -+ if (0 == rv) -+ return 0; /* success */ -+ else -+ return fallback_getfilecon(name, p, rv); -+ } -+ else -+ { -+ /* Not a file on the command line; do not derefernce the link. -+ */ -+ return lgetfilecon(name, p); -+ } -+} -+ -+/* optionl_getfilecon() implements the getfilecon operation when the -+ * -L option is in effect. That option makes us examine the thing the -+ * symbolic link points to, not the symbolic link itself. -+ */ -+int -+optionl_getfilecon(const char *name, security_context_t *p) -+{ -+ int rv = getfilecon(name, p); -+ if (0 == rv) -+ return 0; /* normal case. */ -+ else -+ return fallback_getfilecon(name, p, rv); -+} -+ -+/* optionp_getfilecon() implements the stat operation when the -P -+ * option is in effect (this is also the default). That option makes -+ * us examine the symbolic link itself, not the thing it points to. -+ */ -+int -+optionp_getfilecon(const char *name, security_context_t *p) -+{ -+ return lgetfilecon(name, p); -+} -+#endif /* WITH_SELINUX */ - - #ifdef DEBUG_STAT - static uintmax_t stat_count = 0u; -@@ -267,11 +354,17 @@ - { - case SYMLINK_ALWAYS_DEREF: /* -L */ - options.xstat = optionl_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionl_getfilecon; -+#endif /* WITH_SELINUX */ - options.no_leaf_check = true; - break; - - case SYMLINK_NEVER_DEREF: /* -P (default) */ - options.xstat = optionp_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionp_getfilecon; -+#endif /* WITH_SELINUX */ - /* Can't turn no_leaf_check off because the user might have specified - * -noleaf anyway - */ -@@ -279,6 +372,9 @@ - - case SYMLINK_DEREF_ARGSONLY: /* -H */ - options.xstat = optionh_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionh_getfilecon; -+#endif /* WITH_SELINUX */ - options.no_leaf_check = true; - } - -@@ -384,6 +480,9 @@ - int - main (int argc, char **argv) - { -+#ifdef WITH_SELINUX -+ int is_selinux_enabled_flag = is_selinux_enabled()>0; -+#endif /* WITH_SELINUX */ - int i; - PFB parse_function; /* Pointer to the function which parses. */ - struct predicate *cur_pred; -@@ -512,6 +611,14 @@ - if (strchr ("-!(),", argv[i][0]) == NULL) - usage (_("paths must precede expression")); - predicate_name = argv[i]; -+#ifdef WITH_SELINUX -+ if (! is_selinux_enabled_flag) { -+ if ((strncmp(predicate_name,"-context",strlen("-context"))==0) || -+ (strncmp(predicate_name,"--context",strlen("--context"))==0)) { -+ error (1, 0,_("Error: invalid predicate %s: the kernel is not selinux-enabled.\n"),predicate_name); -+ } -+ } -+#endif - parse_function = find_parser (predicate_name); - if (parse_function == NULL) - /* Command line option not recognized */ -Only in findutils-4.2.20/find: find.c.orig -diff -ur findutils-4.2.20-orig/find/Makefile.am findutils-4.2.20/find/Makefile.am ---- findutils-4.2.20-orig/find/Makefile.am 2004-11-23 00:10:40.000000000 +0000 -+++ findutils-4.2.20/find/Makefile.am 2005-03-17 21:51:32.877757464 +0000 -@@ -3,8 +3,9 @@ - bin_PROGRAMS = find - find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c - EXTRA_DIST = defs.h $(man_MANS) -+DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX - INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\" --LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -+LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux - man_MANS = find.1 - SUBDIRS = testsuite - -diff -ur findutils-4.2.20-orig/find/Makefile.in findutils-4.2.20/find/Makefile.in ---- findutils-4.2.20-orig/find/Makefile.in 2005-03-17 12:11:50.000000000 +0000 -+++ findutils-4.2.20/find/Makefile.in 2005-03-17 21:51:32.880757008 +0000 -@@ -52,7 +52,7 @@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ - CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ -+DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX - DEPDIR = @DEPDIR@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ -@@ -142,7 +142,7 @@ - bin_PROGRAMS = find - find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c - EXTRA_DIST = defs.h $(man_MANS) --LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -+LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux - man_MANS = find.1 - SUBDIRS = testsuite - subdir = find -Only in findutils-4.2.20/find: Makefile.in.orig -diff -ur findutils-4.2.20-orig/find/parser.c findutils-4.2.20/find/parser.c ---- findutils-4.2.20-orig/find/parser.c 2005-03-07 22:39:05.000000000 +0000 -+++ findutils-4.2.20/find/parser.c 2005-03-17 21:51:32.882756704 +0000 -@@ -36,6 +36,10 @@ - #include <sys/file.h> - #endif - -+#ifdef WITH_SELINUX -+#include <selinux/selinux.h> -+#endif /*WITH_SELINUX*/ -+ - #if ENABLE_NLS - # include <libintl.h> - # define _(Text) gettext (Text) -@@ -139,6 +143,9 @@ - static boolean parse_warn PARAMS((char *argv[], int *arg_ptr)); - static boolean parse_xtype PARAMS((char *argv[], int *arg_ptr)); - static boolean parse_quit PARAMS((char *argv[], int *arg_ptr)); -+#ifdef WITH_SELINUX -+static boolean parse_scontext PARAMS((char *argv[], int *arg_ptr)); -+#endif /*WITH_SELINUX*/ - - static boolean insert_regex PARAMS((char *argv[], int *arg_ptr, boolean ignore_case)); - static boolean insert_type PARAMS((char *argv[], int *arg_ptr, boolean (*which_pred )())); -@@ -266,6 +273,8 @@ - {ARG_TEST, "wholename", parse_wholename}, /* GNU, replaces -path */ - {ARG_OPTION, "xdev", parse_xdev}, - {ARG_TEST, "xtype", parse_xtype}, /* GNU */ -+ {ARG_TEST, "context", parse_scontext}, /* SELinux */ -+ {ARG_TEST, "-context", parse_scontext}, /* SELinux */ - {0, 0, 0} - }; - -@@ -744,6 +753,10 @@ - -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN\n\ - -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n\ - -used N -user NAME -xtype [bcdpfls]\n")); -+#ifdef WITH_SELINUX -+ puts (_("\ -+ -context CONTEXT\n")); -+#endif /*WITH_SELINUX*/ - puts (_("\ - actions: -exec COMMAND ; -fprint FILE -fprint0 FILE -fprintf FILE FORMAT\n\ - -fls FILE -ok COMMAND ; -print -print0 -printf FORMAT -prune -ls -delete\n\ -@@ -1601,6 +1614,32 @@ - return true; - } - -+#ifdef WITH_SELINUX -+ -+static boolean -+parse_scontext ( argv, arg_ptr ) -+ char *argv[]; -+ int *arg_ptr; -+{ -+ struct predicate *our_pred; -+ -+ if ( (argv == NULL) || (argv[*arg_ptr] == NULL) ) -+ return( false ); -+ -+ our_pred = insert_primary(pred_scontext); -+ our_pred->need_stat = 0; -+#ifdef DEBUG -+ our_pred->p_name = find_pred_name (pred_scontext); -+#endif /*DEBUG*/ -+ -+ our_pred->args.scontext = argv[*arg_ptr];; -+ -+ (*arg_ptr)++; -+ return( true ); -+} -+ -+#endif /*WITH_SELINUX*/ -+ - static boolean - parse_xtype (char **argv, int *arg_ptr) - { -@@ -1776,7 +1815,11 @@ - if (*scan2 == '.') - for (scan2++; ISDIGIT (*scan2); scan2++) - /* Do nothing. */ ; -+#ifdef WITH_SELINUX -+ if (strchr ("abcdDfFgGhHiklmMnpPstuUyYZ", *scan2)) -+#else /* WITH_SELINUX */ - if (strchr ("abcdDfFgGhHiklmMnpPstuUyY", *scan2)) -+#endif /* WITH_SELINUX */ - { - segmentp = make_segment (segmentp, format, scan2 - format, - (int) *scan2); -diff -ur findutils-4.2.20-orig/find/pred.c findutils-4.2.20/find/pred.c ---- findutils-4.2.20-orig/find/pred.c 2005-03-04 10:33:39.000000000 +0000 -+++ findutils-4.2.20/find/pred.c 2005-03-17 21:51:32.884756400 +0000 -@@ -35,6 +35,14 @@ - #include "wait.h" - #include "buildcmd.h" - -+#ifdef WITH_SELINUX -+#include <selinux/selinux.h> -+#endif /*WITH_SELINUX*/ -+ -+#ifndef FNM_CASEFOLD -+#define FNM_CASEFOLD (1<<4) -+#endif /*FNM_CASEFOLD*/ -+ - #if ENABLE_NLS - # include <libintl.h> - # define _(Text) gettext (Text) -@@ -78,7 +86,6 @@ - - extern int yesno (); - -- - /* Get or fake the disk device blocksize. - Usually defined by sys/param.h (if at all). */ - #ifndef DEV_BSIZE -@@ -209,6 +216,9 @@ - {pred_used, "used "}, - {pred_user, "user "}, - {pred_xtype, "xtype "}, -+#ifdef WITH_SELINUX -+ {pred_scontext, "context"}, -+#endif /*WITH_SELINUX*/ - {0, "none "} - }; - -@@ -839,6 +849,26 @@ - - } - break; -+#ifdef WITH_SELINUX -+ case 'Z': /* SELinux security context */ -+ { -+ security_context_t scontext; -+ int rv; -+ rv = (*options.x_getfilecon)(state.rel_pathname, &scontext); -+ -+ if ( rv < 0 ) { -+ (void) fprintf(stderr, "getfileconf(%s): %s", -+ pathname, strerror(errno)); -+ (void) fflush(stderr); -+ } -+ else { -+ segment->text[segment->text_len] = 's'; -+ (void) fprintf (fp, segment->text, scontext); -+ freecon(scontext); -+ } -+ } -+ break ; -+#endif /* WITH_SELINUX */ - } - } - return (true); -@@ -1411,6 +1441,34 @@ - */ - return (pred_type (pathname, &sbuf, pred_ptr)); - } -+ -+ -+#ifdef WITH_SELINUX -+ -+boolean -+pred_scontext ( pathname, stat_buf, pred_ptr ) -+ char *pathname; -+ struct stat *stat_buf; -+ struct predicate *pred_ptr; -+{ -+ int rv; -+ security_context_t scontext; -+ -+ rv = (* options.x_getfilecon)(state.rel_pathname, &scontext); -+ -+ if ( rv < 0 ) { -+ (void) fprintf(stderr, "getfilecon(%s): %s\n", pathname, strerror(errno)); -+ (void) fflush(stderr); -+ return ( false ); -+ } -+ -+ rv = (fnmatch(pred_ptr->args.scontext, scontext,0)==0); -+ freecon(scontext); -+ return rv; -+} -+ -+#endif /*WITH_SELINUX*/ -+ - - /* 1) fork to get a child; parent remembers the child pid - 2) child execs the command requested -Only in findutils-4.2.20/find: pred.c.orig -diff -ur findutils-4.2.20-orig/find/util.c findutils-4.2.20/find/util.c ---- findutils-4.2.20-orig/find/util.c 2005-01-24 16:12:31.000000000 +0000 -+++ findutils-4.2.20/find/util.c 2005-03-17 21:51:32.885756248 +0000 -@@ -70,6 +70,9 @@ - last_pred->need_stat = true; - last_pred->need_type = true; - last_pred->args.str = NULL; -+#ifdef WITH_SELINUX -+ last_pred->args.scontext = NULL; -+#endif - last_pred->pred_next = NULL; - last_pred->pred_left = NULL; - last_pred->pred_right = NULL; diff --git a/sys-apps/findutils/files/findutils-4.2.23-selinux.patch b/sys-apps/findutils/files/findutils-4.2.24-selinux.diff index 2f765a9a09fa..ebe7a1a35727 100644 --- a/sys-apps/findutils/files/findutils-4.2.23-selinux.patch +++ b/sys-apps/findutils/files/findutils-4.2.24-selinux.diff @@ -1,7 +1,42 @@ -diff -ur findutils-4.2.20-orig/find/defs.h findutils-4.2.20/find/defs.h ---- findutils-4.2.20-orig/find/defs.h 2005-03-04 09:58:29.000000000 +0000 -+++ findutils-4.2.20/find/defs.h 2005-03-17 21:51:32.871758376 +0000 -@@ -130,6 +130,10 @@ +diff -urN findutils-4.2.24.orig/find/Makefile.am findutils-4.2.24/find/Makefile.am +--- findutils-4.2.24.orig/find/Makefile.am 2005-07-03 12:07:16.000000000 -0400 ++++ findutils-4.2.24/find/Makefile.am 2005-09-28 23:46:09.953863889 -0400 +@@ -5,8 +5,9 @@ + # regexprops_SOURCES = regexprops.c + find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c + EXTRA_DIST = defs.h $(man_MANS) ++DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX + INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\" +-LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ ++LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux + man_MANS = find.1 + SUBDIRS = testsuite + +diff -urN findutils-4.2.24.orig/find/Makefile.in findutils-4.2.24/find/Makefile.in +--- findutils-4.2.24.orig/find/Makefile.in 2005-07-29 18:13:56.000000000 -0400 ++++ findutils-4.2.24/find/Makefile.in 2005-09-28 23:46:09.972862142 -0400 +@@ -177,7 +177,7 @@ + CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ + CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ + CYGPATH_W = @CYGPATH_W@ +-DEFS = @DEFS@ ++DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX + DEPDIR = @DEPDIR@ + ECHO_C = @ECHO_C@ + ECHO_N = @ECHO_N@ +@@ -272,7 +272,7 @@ + # regexprops_SOURCES = regexprops.c + find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c + EXTRA_DIST = defs.h $(man_MANS) +-LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ ++LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux + man_MANS = find.1 + SUBDIRS = testsuite + all: all-recursive +diff -urN findutils-4.2.24.orig/find/defs.h findutils-4.2.24/find/defs.h +--- findutils-4.2.24.orig/find/defs.h 2005-07-27 06:30:36.000000000 -0400 ++++ findutils-4.2.24/find/defs.h 2005-09-28 23:46:09.850873361 -0400 +@@ -131,6 +131,10 @@ #define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW) #define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX) @@ -12,7 +47,7 @@ diff -ur findutils-4.2.20-orig/find/defs.h findutils-4.2.20/find/defs.h #if 1 #include <stdbool.h> typedef bool boolean; -@@ -322,6 +322,9 @@ +@@ -320,6 +324,9 @@ struct dir_id fileid; /* samefile */ mode_t type; /* type */ FILE *stream; /* ls fls fprint0 */ @@ -22,7 +57,7 @@ diff -ur findutils-4.2.20-orig/find/defs.h findutils-4.2.20/find/defs.h struct format_val printf_vec; /* printf fprintf fprint */ } args; -@@ -444,6 +451,9 @@ +@@ -479,6 +486,9 @@ boolean pred_used PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); boolean pred_user PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); boolean pred_xtype PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); @@ -30,9 +65,9 @@ diff -ur findutils-4.2.20-orig/find/defs.h findutils-4.2.20/find/defs.h +boolean pred_scontext PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); +#endif /* WITH_SELINUX */ - int launch PARAMS((const struct buildcmd_control *ctl, - struct buildcmd_state *buildstate)); -@@ -519,6 +529,9 @@ + + +@@ -557,6 +567,9 @@ /* Pointer to the function used to stat files. */ int (*xstat) (const char *name, struct stat *statbuf); @@ -42,10 +77,10 @@ diff -ur findutils-4.2.20-orig/find/defs.h findutils-4.2.20/find/defs.h /* Indicate if we can implement safely_chdir() using the O_NOFOLLOW * flag to open(2). -diff -ur findutils-4.2.20-orig/find/find.1 findutils-4.2.20/find/find.1 ---- findutils-4.2.20-orig/find/find.1 2005-03-02 22:36:20.000000000 +0000 -+++ findutils-4.2.20/find/find.1 2005-03-17 21:51:32.873758072 +0000 -@@ -441,6 +441,9 @@ +diff -urN findutils-4.2.24.orig/find/find.1 findutils-4.2.24/find/find.1 +--- findutils-4.2.24.orig/find/find.1 2005-07-29 18:04:53.000000000 -0400 ++++ findutils-4.2.24/find/find.1 2005-09-28 23:46:09.883870326 -0400 +@@ -452,6 +452,9 @@ link to a file of type \fIc\fR; if the \-L option has been given, true if \fIc\fR is `l'. In other words, for symbolic links, \-xtype checks the type of the file that \-type does not check. @@ -55,7 +90,7 @@ diff -ur findutils-4.2.20-orig/find/find.1 findutils-4.2.20/find/find.1 .SS ACTIONS .IP "\-delete\fR" -@@ -713,6 +716,8 @@ +@@ -749,6 +752,8 @@ File's type (like in ls \-l), U=unknown type (shouldn't happen) .IP %Y File's type (like %y), plus follow symlinks: L=loop, N=nonexistent @@ -64,11 +99,10 @@ diff -ur findutils-4.2.20-orig/find/find.1 findutils-4.2.20/find/find.1 .PP A `%' character followed by any other character is discarded (but the other character is printed). -Only in findutils-4.2.20/find: find.1.orig -diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c ---- findutils-4.2.20-orig/find/find.c 2005-03-03 22:30:10.000000000 +0000 -+++ findutils-4.2.20/find/find.c 2005-03-17 21:51:32.877757464 +0000 -@@ -239,6 +239,93 @@ +diff -urN findutils-4.2.24.orig/find/find.c findutils-4.2.24/find/find.c +--- findutils-4.2.24.orig/find/find.c 2005-07-27 06:52:22.000000000 -0400 ++++ findutils-4.2.24/find/find.c 2005-09-28 23:49:17.625591032 -0400 +@@ -244,6 +244,93 @@ { return lstat(name, p); } @@ -162,7 +196,7 @@ diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c #ifdef DEBUG_STAT static uintmax_t stat_count = 0u; -@@ -267,11 +354,17 @@ +@@ -272,11 +359,17 @@ { case SYMLINK_ALWAYS_DEREF: /* -L */ options.xstat = optionl_stat; @@ -180,7 +214,7 @@ diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c /* Can't turn no_leaf_check off because the user might have specified * -noleaf anyway */ -@@ -279,6 +372,9 @@ +@@ -284,6 +377,9 @@ case SYMLINK_DEREF_ARGSONLY: /* -H */ options.xstat = optionh_stat; @@ -190,7 +224,7 @@ diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c options.no_leaf_check = true; } -@@ -384,6 +480,9 @@ +@@ -389,6 +485,9 @@ int main (int argc, char **argv) { @@ -198,9 +232,9 @@ diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c + int is_selinux_enabled_flag = is_selinux_enabled()>0; +#endif /* WITH_SELINUX */ int i; - PFB parse_function; /* Pointer to the function which parses. */ + const struct parser_table *parse_entry; /* Pointer to the parsing table entry for this expression. */ struct predicate *cur_pred; -@@ -512,6 +611,14 @@ +@@ -537,6 +636,14 @@ if (strchr ("-!(),", argv[i][0]) == NULL) usage (_("paths must precede expression")); predicate_name = argv[i]; @@ -212,52 +246,15 @@ diff -ur findutils-4.2.20-orig/find/find.c findutils-4.2.20/find/find.c + } + } +#endif - parse_function = find_parser (predicate_name); - if (parse_function == NULL) - /* Command line option not recognized */ -Only in findutils-4.2.20/find: find.c.orig -diff -ur findutils-4.2.20-orig/find/Makefile.am findutils-4.2.20/find/Makefile.am ---- findutils-4.2.20-orig/find/Makefile.am 2004-11-23 00:10:40.000000000 +0000 -+++ findutils-4.2.20/find/Makefile.am 2005-03-17 21:51:32.877757464 +0000 -@@ -3,8 +3,9 @@ - bin_PROGRAMS = find - find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c - EXTRA_DIST = defs.h $(man_MANS) -+DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX - INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\" --LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -+LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux - man_MANS = find.1 - SUBDIRS = testsuite - -diff -ur findutils-4.2.20-orig/find/Makefile.in findutils-4.2.20/find/Makefile.in ---- findutils-4.2.20-orig/find/Makefile.in 2005-03-17 12:11:50.000000000 +0000 -+++ findutils-4.2.20/find/Makefile.in 2005-03-17 21:51:32.880757008 +0000 -@@ -52,7 +52,7 @@ - CPP = @CPP@ - CPPFLAGS = @CPPFLAGS@ - CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ -+DEFS = @DEFS@ -I. -I$(srcdir) -I.. -DWITH_SELINUX - DEPDIR = @DEPDIR@ - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ -@@ -142,7 +142,7 @@ - bin_PROGRAMS = find - find_SOURCES = find.c fstype.c parser.c pred.c tree.c util.c version.c - EXTRA_DIST = defs.h $(man_MANS) --LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -+LDADD = ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ -lselinux - man_MANS = find.1 - SUBDIRS = testsuite - subdir = find -Only in findutils-4.2.20/find: Makefile.in.orig -diff -ur findutils-4.2.20-orig/find/parser.c findutils-4.2.20/find/parser.c ---- findutils-4.2.20-orig/find/parser.c 2005-03-07 22:39:05.000000000 +0000 -+++ findutils-4.2.20/find/parser.c 2005-03-17 21:51:32.882756704 +0000 -@@ -36,6 +36,10 @@ - #include <sys/file.h> - #endif + parse_entry = find_parser (predicate_name); + if (parse_entry == NULL) + { +diff -urN findutils-4.2.24.orig/find/parser.c findutils-4.2.24/find/parser.c +--- findutils-4.2.24.orig/find/parser.c 2005-07-27 06:28:15.000000000 -0400 ++++ findutils-4.2.24/find/parser.c 2005-10-10 19:28:59.297008465 -0400 +@@ -47,6 +47,10 @@ + /* We need <unistd.h> for isatty(). */ + #include <unistd.h> +#ifdef WITH_SELINUX +#include <selinux/selinux.h> @@ -266,26 +263,28 @@ diff -ur findutils-4.2.20-orig/find/parser.c findutils-4.2.20/find/parser.c #if ENABLE_NLS # include <libintl.h> # define _(Text) gettext (Text) -@@ -139,6 +143,9 @@ - static boolean parse_warn PARAMS((char *argv[], int *arg_ptr)); - static boolean parse_xtype PARAMS((char *argv[], int *arg_ptr)); - static boolean parse_quit PARAMS((char *argv[], int *arg_ptr)); +@@ -147,8 +151,9 @@ + static boolean parse_warn PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); + static boolean parse_xtype PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); + static boolean parse_quit PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); +- +- +#ifdef WITH_SELINUX -+static boolean parse_scontext PARAMS((char *argv[], int *arg_ptr)); ++static boolean parse_scontext PARAMS((char *argv[], int *arg_ptr)); +#endif /*WITH_SELINUX*/ - static boolean insert_regex PARAMS((char *argv[], int *arg_ptr, boolean ignore_case)); - static boolean insert_type PARAMS((char *argv[], int *arg_ptr, boolean (*which_pred )())); -@@ -266,6 +273,8 @@ - {ARG_TEST, "wholename", parse_wholename}, /* GNU, replaces -path */ - {ARG_OPTION, "xdev", parse_xdev}, - {ARG_TEST, "xtype", parse_xtype}, /* GNU */ -+ {ARG_TEST, "context", parse_scontext}, /* SELinux */ -+ {ARG_TEST, "-context", parse_scontext}, /* SELinux */ - {0, 0, 0} - }; - -@@ -744,6 +753,10 @@ + boolean parse_print PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); + boolean parse_open PARAMS((const struct parser_table* entry, char *argv[], int *arg_ptr)); +@@ -280,6 +285,8 @@ + PARSE_TEST_NP ("wholename", wholename), /* GNU, replaces -path */ + PARSE_OPTION ("xdev", xdev), + PARSE_TEST ("xtype", xtype), /* GNU */ ++ PARSE_TEST ("context", scontext), ++ PARSE_TEST ("-context", scontext), + #ifdef UNIMPLEMENTED_UNIX + /* It's pretty ugly for find to know about archive formats. + Plus what it could do with cpio archives is very limited. +@@ -803,6 +810,10 @@ -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN\n\ -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n\ -used N -user NAME -xtype [bcdpfls]\n")); @@ -294,9 +293,9 @@ diff -ur findutils-4.2.20-orig/find/parser.c findutils-4.2.20/find/parser.c + -context CONTEXT\n")); +#endif /*WITH_SELINUX*/ puts (_("\ - actions: -exec COMMAND ; -fprint FILE -fprint0 FILE -fprintf FILE FORMAT\n\ - -fls FILE -ok COMMAND ; -print -print0 -printf FORMAT -prune -ls -delete\n\ -@@ -1601,6 +1614,32 @@ + actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n\ + -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit\n\ +@@ -1650,6 +1661,32 @@ return true; } @@ -327,9 +326,9 @@ diff -ur findutils-4.2.20-orig/find/parser.c findutils-4.2.20/find/parser.c +#endif /*WITH_SELINUX*/ + static boolean - parse_xtype (char **argv, int *arg_ptr) + parse_version (const struct parser_table* entry, char **argv, int *arg_ptr) { -@@ -1776,7 +1815,11 @@ +@@ -1937,7 +1974,11 @@ if (*scan2 == '.') for (scan2++; ISDIGIT (*scan2); scan2++) /* Do nothing. */ ; @@ -341,12 +340,12 @@ diff -ur findutils-4.2.20-orig/find/parser.c findutils-4.2.20/find/parser.c { segmentp = make_segment (segmentp, format, scan2 - format, (int) *scan2); -diff -ur findutils-4.2.20-orig/find/pred.c findutils-4.2.20/find/pred.c ---- findutils-4.2.20-orig/find/pred.c 2005-03-04 10:33:39.000000000 +0000 -+++ findutils-4.2.20/find/pred.c 2005-03-17 21:51:32.884756400 +0000 -@@ -35,6 +35,14 @@ - #include "wait.h" +diff -urN findutils-4.2.24.orig/find/pred.c findutils-4.2.24/find/pred.c +--- findutils-4.2.24.orig/find/pred.c 2005-07-29 17:49:05.000000000 -0400 ++++ findutils-4.2.24/find/pred.c 2005-09-28 23:56:47.192112653 -0400 +@@ -38,6 +38,14 @@ #include "buildcmd.h" + #include "yesno.h" +#ifdef WITH_SELINUX +#include <selinux/selinux.h> @@ -359,15 +358,7 @@ diff -ur findutils-4.2.20-orig/find/pred.c findutils-4.2.20/find/pred.c #if ENABLE_NLS # include <libintl.h> # define _(Text) gettext (Text) -@@ -78,7 +86,6 @@ - - extern int yesno (); - -- - /* Get or fake the disk device blocksize. - Usually defined by sys/param.h (if at all). */ - #ifndef DEV_BSIZE -@@ -209,6 +216,9 @@ +@@ -215,6 +223,9 @@ {pred_used, "used "}, {pred_user, "user "}, {pred_xtype, "xtype "}, @@ -377,8 +368,8 @@ diff -ur findutils-4.2.20-orig/find/pred.c findutils-4.2.20/find/pred.c {0, "none "} }; -@@ -839,6 +849,26 @@ - +@@ -903,6 +914,26 @@ + mode_to_filetype(stat_buf->st_mode & S_IFMT)); } break; +#ifdef WITH_SELINUX @@ -403,8 +394,8 @@ diff -ur findutils-4.2.20-orig/find/pred.c findutils-4.2.20/find/pred.c +#endif /* WITH_SELINUX */ } } - return (true); -@@ -1411,6 +1441,34 @@ + return true; +@@ -1480,6 +1511,34 @@ */ return (pred_type (pathname, &sbuf, pred_ptr)); } @@ -439,11 +430,10 @@ diff -ur findutils-4.2.20-orig/find/pred.c findutils-4.2.20/find/pred.c /* 1) fork to get a child; parent remembers the child pid 2) child execs the command requested -Only in findutils-4.2.20/find: pred.c.orig -diff -ur findutils-4.2.20-orig/find/util.c findutils-4.2.20/find/util.c ---- findutils-4.2.20-orig/find/util.c 2005-01-24 16:12:31.000000000 +0000 -+++ findutils-4.2.20/find/util.c 2005-03-17 21:51:32.885756248 +0000 -@@ -70,6 +70,9 @@ +diff -urN findutils-4.2.24.orig/find/util.c findutils-4.2.24/find/util.c +--- findutils-4.2.24.orig/find/util.c 2005-06-19 16:01:58.000000000 -0400 ++++ findutils-4.2.24/find/util.c 2005-09-28 23:46:10.144846325 -0400 +@@ -78,6 +78,9 @@ last_pred->need_stat = true; last_pred->need_type = true; last_pred->args.str = NULL; diff --git a/sys-apps/findutils/findutils-4.2.24.ebuild b/sys-apps/findutils/findutils-4.2.24.ebuild index 387167dde5a5..a3a93cc4eb39 100644 --- a/sys-apps/findutils/findutils-4.2.24.ebuild +++ b/sys-apps/findutils/findutils-4.2.24.ebuild @@ -1,10 +1,10 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/findutils-4.2.24.ebuild,v 1.4 2005/10/01 22:04:55 ciaranm Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/findutils-4.2.24.ebuild,v 1.5 2005/10/10 23:50:01 pebenito Exp $ inherit eutils flag-o-matic toolchain-funcs -# SELINUX_PATCH="findutils-4.2.23-selinux.patch" +SELINUX_PATCH="findutils-4.2.24-selinux.diff" DESCRIPTION="GNU utilities for finding files" HOMEPAGE="http://www.gnu.org/software/findutils/findutils.html" @@ -29,7 +29,7 @@ src_unpack() { sed -i '/^SUBDIRS/s/locate//' Makefile.in # Patches for selinux - # use selinux && epatch "${FILESDIR}/${SELINUX_PATCH}" + use selinux && epatch "${FILESDIR}/${SELINUX_PATCH}" } src_compile() { diff --git a/sys-apps/findutils/findutils-4.2.25.ebuild b/sys-apps/findutils/findutils-4.2.25.ebuild index 8af1625d2458..a28019090364 100644 --- a/sys-apps/findutils/findutils-4.2.25.ebuild +++ b/sys-apps/findutils/findutils-4.2.25.ebuild @@ -1,10 +1,10 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/findutils-4.2.25.ebuild,v 1.1 2005/10/07 21:09:30 ciaranm Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-apps/findutils/findutils-4.2.25.ebuild,v 1.2 2005/10/10 23:50:01 pebenito Exp $ inherit eutils flag-o-matic toolchain-funcs -# SELINUX_PATCH="findutils-4.2.23-selinux.patch" +SELINUX_PATCH="findutils-4.2.24-selinux.diff" DESCRIPTION="GNU utilities for finding files" HOMEPAGE="http://www.gnu.org/software/findutils/findutils.html" @@ -29,7 +29,7 @@ src_unpack() { sed -i '/^SUBDIRS/s/locate//' Makefile.in # Patches for selinux - # use selinux && epatch "${FILESDIR}/${SELINUX_PATCH}" + use selinux && epatch "${FILESDIR}/${SELINUX_PATCH}" } src_compile() { |