From 1a1e058db157b70c13c26a84a01e0aed17ab75bc Mon Sep 17 00:00:00 2001 From: Daniel J Walsh Date: Oct 11 2005 21:41:28 +0000 Subject: - Fix selinux patch --- diff --git a/findutils-selinux.patch b/findutils-selinux.patch index 2a8ea27..43252d8 100644 --- a/findutils-selinux.patch +++ b/findutils-selinux.patch @@ -1,17 +1,156 @@ ---- findutils-4.2.25/find/util.c.selinux 2005-06-19 20:01:58.000000000 +0000 -+++ findutils-4.2.25/find/util.c 2005-09-05 10:15:31.000000000 +0000 -@@ -78,6 +78,9 @@ - last_pred->need_stat = true; - last_pred->need_type = true; - last_pred->args.str = NULL; +--- findutils-4.2.25/find/Makefile.am.selinux 2005-07-03 12:07:16.000000000 -0400 ++++ findutils-4.2.25/find/Makefile.am 2005-10-11 17:03:51.000000000 -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 + +--- findutils-4.2.25/find/parser.c.selinux 2005-07-31 17:01:54.000000000 -0400 ++++ findutils-4.2.25/find/parser.c 2005-10-11 17:38:06.000000000 -0400 +@@ -47,6 +47,10 @@ + /* We need for isatty(). */ + #include + +#ifdef WITH_SELINUX -+ last_pred->args.scontext = NULL; -+#endif - last_pred->pred_next = NULL; - last_pred->pred_left = NULL; - last_pred->pred_right = NULL; ---- findutils-4.2.25/find/find.c.selinux 2005-08-30 07:40:03.000000000 +0000 -+++ findutils-4.2.25/find/find.c 2005-09-05 10:16:37.000000000 +0000 ++#include ++#endif /*WITH_SELINUX*/ ++ + #if ENABLE_NLS + # include + # define _(Text) gettext (Text) +@@ -147,6 +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((const struct parser_table*, char *argv[], int *arg_ptr)); ++#endif /*WITH_SELINUX*/ + + + +@@ -298,6 +305,8 @@ + {ARG_TEST, "-help", parse_help, NULL}, /* GNU */ + {ARG_TEST, "version", parse_version, NULL}, /* GNU */ + {ARG_TEST, "-version", parse_version, NULL}, /* GNU */ ++ {ARG_TEST, "context", parse_scontext, pred_scontext}, /* SELinux */ ++ {ARG_TEST, "-context", parse_scontext, pred_scontext}, /* SELinux */ + {0, 0, 0, 0} + }; + +@@ -803,6 +812,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: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n\ + -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit\n\ +@@ -1712,6 +1725,29 @@ + exit (0); + } + ++#ifdef WITH_SELINUX ++ ++static boolean ++parse_scontext ( const struct parser_table* entry, char **argv, int *arg_ptr) ++{ ++ struct predicate *our_pred; ++ ++ if ( (argv == NULL) || (argv[*arg_ptr] == NULL) ) ++ return( false ); ++ ++ our_pred = insert_primary(entry); ++ our_pred->need_stat = false; ++#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_xdev (const struct parser_table* entry, char **argv, int *arg_ptr) + { +@@ -1949,7 +1985,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); +--- findutils-4.2.25/find/Makefile.in.selinux 2005-09-03 07:17:59.000000000 -0400 ++++ findutils-4.2.25/find/Makefile.in 2005-10-11 17:04:12.000000000 -0400 +@@ -175,7 +175,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@ +@@ -270,7 +270,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 +@@ -286,9 +286,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 \ +--- findutils-4.2.25/find/find.1.selinux 2005-09-02 16:46:48.000000000 -0400 ++++ findutils-4.2.25/find/find.1 2005-10-11 17:03:51.000000000 -0400 +@@ -455,6 +455,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" +@@ -753,6 +756,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). +--- findutils-4.2.25/find/find.c.selinux 2005-08-30 03:40:03.000000000 -0400 ++++ findutils-4.2.25/find/find.c 2005-10-11 17:14:28.000000000 -0400 @@ -244,6 +244,93 @@ { return lstat(name, p); @@ -159,194 +298,17 @@ parse_entry = find_parser (predicate_name); if (parse_entry == NULL) { ---- findutils-4.2.25/find/find.1.selinux 2005-09-02 20:46:48.000000000 +0000 -+++ findutils-4.2.25/find/find.1 2005-09-05 10:15:31.000000000 +0000 -@@ -455,6 +455,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" -@@ -753,6 +756,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). ---- findutils-4.2.25/find/Makefile.in.selinux 2005-09-03 11:17:59.000000000 +0000 -+++ findutils-4.2.25/find/Makefile.in 2005-09-05 10:15:31.000000000 +0000 -@@ -175,7 +175,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@ -@@ -270,7 +270,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 ---- findutils-4.2.25/find/defs.h.selinux 2005-08-30 07:36:24.000000000 +0000 -+++ findutils-4.2.25/find/defs.h 2005-09-05 10:17:20.000000000 +0000 -@@ -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) - -+#ifdef WITH_SELINUX -+#include -+#endif /*WITH_SELINUX*/ -+ - #if 1 - #include - typedef bool boolean; -@@ -320,6 +324,9 @@ - struct dir_id fileid; /* samefile */ - mode_t type; /* type */ - FILE *stream; /* ls fls fprint0 */ -+#ifdef WITH_SELINUX -+ security_context_t scontext; /* scontext */ -+#endif /*WITH_SELINUX*/ - struct format_val printf_vec; /* printf fprintf fprint */ - } args; - -@@ -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)); -+#ifdef WITH_SELINUX -+boolean pred_scontext PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); -+#endif /* WITH_SELINUX */ - - - -@@ -568,6 +578,10 @@ - * can be changed with the positional option, -regextype. - */ - int regex_options; -+ -+#ifdef WITH_SELINUX -+ int (*x_getfilecon) (); -+#endif /* WITH_SELINUX */ - }; - extern struct options options; - ---- findutils-4.2.25/find/Makefile.am.selinux 2005-07-03 16:07:16.000000000 +0000 -+++ findutils-4.2.25/find/Makefile.am 2005-09-05 10:15:31.000000000 +0000 -@@ -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 - ---- findutils-4.2.25/find/parser.c.selinux 2005-07-31 21:01:54.000000000 +0000 -+++ findutils-4.2.25/find/parser.c 2005-09-05 10:20:44.000000000 +0000 -@@ -47,6 +47,10 @@ - /* We need for isatty(). */ - #include - -+#ifdef WITH_SELINUX -+#include -+#endif /*WITH_SELINUX*/ -+ - #if ENABLE_NLS - # include - # define _(Text) gettext (Text) -@@ -147,6 +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)); -+#endif /*WITH_SELINUX*/ - - - -@@ -298,6 +305,8 @@ - {ARG_TEST, "-help", parse_help, NULL}, /* GNU */ - {ARG_TEST, "version", parse_version, NULL}, /* GNU */ - {ARG_TEST, "-version", parse_version, NULL}, /* GNU */ -+ {ARG_TEST, "context", parse_scontext, NULL}, /* SELinux */ -+ {ARG_TEST, "-context", parse_scontext, NULL}, /* SELinux */ - {0, 0, 0, 0} - }; - -@@ -803,6 +812,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: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n\ - -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit\n\ -@@ -1712,6 +1725,32 @@ - exit (0); - } - -+#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_xdev (const struct parser_table* entry, char **argv, int *arg_ptr) +@@ -1802,7 +1909,7 @@ + static void + process_dir (char *pathname, char *name, int pathlen, struct stat *statp, char *parent) { -@@ -1949,7 +1988,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); ---- findutils-4.2.25/find/pred.c.selinux 2005-09-01 20:57:49.000000000 +0000 -+++ findutils-4.2.25/find/pred.c 2005-09-05 10:15:31.000000000 +0000 +- int subdirs_left; /* Number of unexamined subdirs in PATHNAME. */ ++ int subdirs_left=0; /* Number of unexamined subdirs in PATHNAME. */ + boolean subdirs_unreliable; /* if true, cannot use dir link count as subdir limif (if false, it may STILL be unreliable) */ + int idx; /* Which entry are we on? */ + struct stat stat_buf; +--- findutils-4.2.25/find/pred.c.selinux 2005-09-01 16:57:49.000000000 -0400 ++++ findutils-4.2.25/find/pred.c 2005-10-11 17:03:51.000000000 -0400 @@ -38,6 +38,14 @@ #include "buildcmd.h" #include "yesno.h" @@ -442,3 +404,59 @@ /* 1) fork to get a child; parent remembers the child pid 2) child execs the command requested +--- findutils-4.2.25/find/util.c.selinux 2005-06-19 16:01:58.000000000 -0400 ++++ findutils-4.2.25/find/util.c 2005-10-11 17:03:51.000000000 -0400 +@@ -78,6 +78,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; +--- findutils-4.2.25/find/defs.h.selinux 2005-08-30 03:36:24.000000000 -0400 ++++ findutils-4.2.25/find/defs.h 2005-10-11 17:03:51.000000000 -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) + ++#ifdef WITH_SELINUX ++#include ++#endif /*WITH_SELINUX*/ ++ + #if 1 + #include + typedef bool boolean; +@@ -320,6 +324,9 @@ + struct dir_id fileid; /* samefile */ + mode_t type; /* type */ + FILE *stream; /* ls fls fprint0 */ ++#ifdef WITH_SELINUX ++ security_context_t scontext; /* scontext */ ++#endif /*WITH_SELINUX*/ + struct format_val printf_vec; /* printf fprintf fprint */ + } args; + +@@ -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)); ++#ifdef WITH_SELINUX ++boolean pred_scontext PARAMS((char *pathname, struct stat *stat_buf, struct predicate *pred_ptr)); ++#endif /* WITH_SELINUX */ + + + +@@ -568,6 +578,10 @@ + * can be changed with the positional option, -regextype. + */ + int regex_options; ++ ++#ifdef WITH_SELINUX ++ int (*x_getfilecon) (); ++#endif /* WITH_SELINUX */ + }; + extern struct options options; + diff --git a/findutils.spec b/findutils.spec index 882f9d0..a441fe4 100644 --- a/findutils.spec +++ b/findutils.spec @@ -1,10 +1,8 @@ -%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 -%endif Summary: The GNU versions of find utilities (find and xargs). Name: findutils Version: 4.2.25 -Release: 2 +Release: 3 Epoch: 1 License: GPL Group: Applications/File @@ -16,9 +14,7 @@ Prereq: /sbin/install-info Buildroot: %{_tmppath}/%{name}-%{version}-root BuildRequires: libtool, automake, autoconf BuildRequires: dejagnu, gettext-devel, texinfo -%if %{WITH_SELINUX} BuildRequires: libselinux-devel -%endif %description The findutils package contains programs which will help you locate @@ -34,10 +30,7 @@ useful for finding things on your system. %prep %setup -q %patch1 -p1 -b .no-locate -%if %{WITH_SELINUX} -#SELinux %patch2 -p1 -b .selinux -%endif autoreconf @@ -91,6 +84,9 @@ rm -rf %{buildroot} %{_infodir}/find.info* %changelog +* Tue Oct 11 2005 Dan Walsh 1:4.2.25-3 +- Fix selinux patch + * Mon Sep 5 2005 Tim Waugh 1:4.2.25-2 - 4.2.25.