fix up selinux patches
authorChris PeBenito <pebenito@gentoo.org>
Mon, 10 Oct 2005 23:50:01 +0000 (23:50 +0000)
committerChris PeBenito <pebenito@gentoo.org>
Mon, 10 Oct 2005 23:50:01 +0000 (23:50 +0000)
Package-Manager: portage-2.0.53_rc4

sys-apps/findutils/ChangeLog
sys-apps/findutils/Manifest
sys-apps/findutils/files/findutils-4.2.18-selinux.diff [deleted file]
sys-apps/findutils/files/findutils-4.2.20-selinux.diff [deleted file]
sys-apps/findutils/files/findutils-4.2.24-selinux.diff [moved from sys-apps/findutils/files/findutils-4.2.23-selinux.patch with 71% similarity]
sys-apps/findutils/findutils-4.2.24.ebuild
sys-apps/findutils/findutils-4.2.25.ebuild

index 01f2d7490ce33f47912bd16af046b5006e29521f..cd9db1c2d2f4fe5f72a3387b859e4e6df89df89c 100644 (file)
@@ -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)
 
index 2429437839b3c6547b2dc85e32dd398c555b8e95..1d453050a4e2a56f01e6ddc5e755f109be6728f1 100644 (file)
@@ -1,25 +1,23 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 e196745fd1050cc5282cda155b86d4e4 ChangeLog 7922
+MD5 44384c8ec5ca0dff7c53d71073eca75d ChangeLog 8217
 MD5 be3f6e925d8c5774cc1ea631677e7401 files/digest-findutils-4.1.20-r1 68
 MD5 2b5e0b42a11ea009340805d461a6ecc5 files/digest-findutils-4.2.24 69
 MD5 20f929ed7c70bcf734d389a7dd03b6d5 files/digest-findutils-4.2.25 69
 MD5 43e3e3c15b66b30de4be62db3b7674ea files/findutils-4.1.20-selinux.diff 10392
 MD5 df65fc9a616feac9570c654f02b2edcc files/findutils-4.2.18-gcc295.patch 457
-MD5 62f86a597482354916befe2e1f084b8d files/findutils-4.2.18-selinux.diff 15327
 MD5 6d52de5b305608054e88b17c5b282048 files/findutils-4.2.20-man.patch 331
-MD5 ed25af7dabe43ac10d2383db9bf30ba5 files/findutils-4.2.20-selinux.diff 14398
-MD5 278b03652ed2957f8f57b04880474e10 files/findutils-4.2.23-selinux.patch 14406
+MD5 0b8c5e1bc2e54e46c292ad6a90729f75 files/findutils-4.2.24-selinux.diff 14356
 MD5 0315b5033cf65d15f24b1c252070db45 files/findutils-env-size.patch 672
 MD5 054571cd32e981304231461745b82e07 findutils-4.1.20-r1.ebuild 2070
-MD5 b6a7d70d17ac0b2f629de8655eea5224 findutils-4.2.24.ebuild 1710
-MD5 b5a994338066527e073bb0ffb49cc953 findutils-4.2.25.ebuild 1699
+MD5 7ad72dd1133e9c5896ee04cdb7a85d38 findutils-4.2.24.ebuild 1706
+MD5 240147c28e4d781199df8a3df44763e8 findutils-4.2.25.ebuild 1695
 MD5 1f7197b778d47c773d19430261c84f49 metadata.xml 261
 -----BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.1 (GNU/Linux)
+Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFDRuQWLLFUmVNQ7rkRAv6XAKCCQKiDtHYIzG0JHWZ9iJs5y2RwMwCfdKsg
-S3wYk/WzbeP3lMnaVw+K7aw=
-=iDYp
+iD8DBQFDSv43J+ChZlpDtAoRAtM5AJ927BdEIcDr1g/SOk322Fq5aNniWgCdGsn/
+00kbnS70cv/zZ7KRPDr0AFQ=
+=PPNq
 -----END PGP SIGNATURE-----
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 (file)
index 9d08f7c..0000000
+++ /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
-+\f
-+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;        
-+    }
-+}
-+
-+\f
-+/* 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);
-+    }
-+}
-+\f
-+/* 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);
-+}
-+\f
-+/* 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 */
- \f
- #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}
- };
- \f
-@@ -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*/
-+
- \f
- /*  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 (file)
index 371b5d4..0000000
+++ /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
-+\f
-+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;        
-+    }
-+}
-+
-+\f
-+/* 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);
-+    }
-+}
-+\f
-+/* 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);
-+}
-+\f
-+/* 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 */
- \f
- #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}
- };
- \f
-@@ -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*/
-+
- \f
- /*  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;
similarity index 71%
rename from sys-apps/findutils/files/findutils-4.2.23-selinux.patch
rename to sys-apps/findutils/files/findutils-4.2.24-selinux.diff
index 2f765a9a09fa8cdd5dc3be343164a74dc4ab1d81..ebe7a1a35727550d09ddaef232d6c6c5cf8f4e8e 100644 (file)
@@ -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
  \f
  #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}
- };
- \f
-@@ -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
  \f
  /*  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;
index 387167dde5a554eb548d77eb9b67ce312fa9972d..a3a93cc4eb39d670c1ecc710f87298e7dd4fc880 100644 (file)
@@ -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() {
index 8af1625d2458457e1e4aee78f4d8cb610caac0c1..a2801909036453197cde0e21c966c51554d8934c 100644 (file)
@@ -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() {