diff --git a/.cvsignore b/.cvsignore index eaabb9c..cd2646a 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -policycoreutils-1.13.2.tgz +policycoreutils-1.13.3.tgz diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch new file mode 100644 index 0000000..cd42fc2 --- /dev/null +++ b/policycoreutils-rhat.patch @@ -0,0 +1,213 @@ +--- policycoreutils-1.13.3/setfiles/setfiles.c.rhat 2004-06-23 09:21:44.000000000 -0400 ++++ policycoreutils-1.13.3/setfiles/setfiles.c 2004-06-23 09:49:12.009189088 -0400 +@@ -12,7 +12,7 @@ + * the user. The program does not cross file system boundaries. + * + * USAGE: +- * setfiles [-dnpqsvW] spec_file pathname... ++ * setfiles [-dnpqsvW] [-o filename ] spec_file pathname... + * + * -d Show what specification matched each file. + * -n Do not change any file labels. +@@ -21,6 +21,7 @@ + * -s Use stdin for a list of files instead of searching a partition. + * -v Show changes in file labels. + * -W Warn about entries that have no matching file. ++ * -o filename write out file names with wrong context. + * + * spec_file The specification file. + * pathname... The file systems to label (omit if using -s). +@@ -68,6 +69,7 @@ + #include + + static int add_assoc = 1; ++static FILE *outfile=NULL; + + /* + * Command-line options. +@@ -480,8 +482,8 @@ + void usage(const char * const name) + { + fprintf(stderr, +- "usage: %s [-dnqvW] spec_file pathname...\n" +- "usage: %s -s [-dnqvW] spec_file\n", name, name); ++ "usage: %s [-dnqvW] [-o filename] spec_file pathname...\n" ++ "usage: %s -s [-dnqvW] [-o filename ] spec_file\n", name, name); + exit(1); + } + +@@ -652,6 +654,9 @@ + + freecon(context); + ++ if (outfile) ++ fprintf(outfile, "%s\n", my_file); ++ + /* + * Do not relabel the file if -n was used. + */ +@@ -705,7 +710,7 @@ + spec_t *spec_copy; + + /* Process any options. */ +- while ((opt = getopt(argc, argv, "dnqrsvW")) > 0) { ++ while ((opt = getopt(argc, argv, "dnqrsvWo:")) > 0) { + switch (opt) { + case 'd': + debug = 1; +@@ -713,6 +718,15 @@ + case 'n': + change = 0; + break; ++ case 'o': ++ outfile = fopen(optarg,"w"); ++ if (!outfile) { ++ fprintf(stderr, "Error opening %s: %s\n", ++ optarg, strerror(errno)); ++ ++ usage(argv[0]); ++ } ++ break; + case 'q': + quiet = 1; + break; +@@ -1039,6 +1053,8 @@ + } + } + } ++ if (outfile) ++ fclose(outfile); + + QPRINTF("%s: Done.\n", argv[0]); + +--- policycoreutils-1.13.3/setfiles/setfiles.8.rhat 2004-06-23 09:21:44.000000000 -0400 ++++ policycoreutils-1.13.3/setfiles/setfiles.8 2004-06-23 09:46:15.975950208 -0400 +@@ -4,8 +4,7 @@ + + .SH "SYNOPSIS" + .B setfiles +-.I [\-d] [\-n] [\-q] [\-s] [\-v] [\-vv] [\-W] spec_file pathname... +- ++.I [\-d] [\-n] [\-o filename ] [\-q] [\-s] [\-v] [\-vv] [\-W] spec_file pathname... + .SH "DESCRIPTION" + This manual page describes the + .BR setfiles +@@ -30,6 +29,9 @@ + .B \-q + suppress non-error output. + .TP ++.B \-o filename ++save list of files with incorrect context in filename. ++.TP + .B \-s + take a list of files from standard input instead of using a pathname on the + command line. +--- policycoreutils-1.13.3/restorecon/restorecon.8.rhat 2004-06-23 09:21:44.000000000 -0400 ++++ policycoreutils-1.13.3/restorecon/restorecon.8 2004-06-23 09:46:48.081069488 -0400 +@@ -4,7 +4,10 @@ + + .SH "SYNOPSIS" + .B restorecon +-.I [\-n] [\-v] pathname... ++.I [\-o outfilename ] [\-n] [\-v] pathname... ++.P ++.B restorecon ++.I \-f infilename [\-o outfilename ] [\-n] [\-v] + + .SH "DESCRIPTION" + This manual page describes the +@@ -20,9 +23,15 @@ + + .SH "OPTIONS" + .TP ++.B \-f infilename ++infilename contains a list of files to be processed by application. Use \- for stdin. ++.TP + .B \-n + don't change any file labels. + .TP ++.B \-o outfilename ++save list of files with incorrect context in outfilename. ++.TP + .B \-v + show changes in file labels. + .TP +--- policycoreutils-1.13.3/restorecon/restorecon.c.rhat 2004-06-23 09:21:44.000000000 -0400 ++++ policycoreutils-1.13.3/restorecon/restorecon.c 2004-06-23 09:48:44.411384592 -0400 +@@ -12,6 +12,7 @@ + * + * -n Do not change any file labels. + * -v Show changes in file labels. ++ * -o filename save list of files with incorrect context + * + * pathname... The file(s) to label + * +@@ -41,7 +42,7 @@ + "usage: %s [-nv] [-f filename | pathname... ]\n", name); + exit(1); + } +-int restore(char *filename, int change, int verbose) { ++int restore(char *filename, int change, int verbose, FILE *outfile) { + int retcontext=0; + int retval=0; + int errors=0; +@@ -72,6 +73,9 @@ + + if (retcontext >= 0 || errno == ENODATA) { + if (retcontext < 0 || strcmp(prev_context,scontext) != 0) { ++ if (outfile) { ++ fprintf(outfile, "%s\n", filename); ++ } + if (change) { + retval=lsetfilecon(filename,scontext); + } +@@ -106,6 +110,7 @@ + int verbose=0; + int file=0; + char opt; ++ FILE *outfile=NULL; + char buf[PATH_MAX]; + + progname=argv[0]; +@@ -114,11 +119,19 @@ + + memset(buf,0, sizeof(buf)); + +- while ((opt = getopt(argc, argv, "nvf:")) > 0) { ++ while ((opt = getopt(argc, argv, "nvf:o:")) > 0) { + switch (opt) { + case 'n': + change = 0; + break; ++ case 'o': ++ outfile = fopen(optarg,"w"); ++ if (!outfile) { ++ fprintf(stderr, "Error opening %s: %s\n", ++ optarg, strerror(errno)); ++ usage(argv[0]); ++ } ++ break; + case 'v': + verbose = 1; + break; +@@ -141,15 +154,18 @@ + } + while(fgets(buf,PATH_MAX,f)) { + buf[strlen(buf)-1]=0; +- errors=errors+restore(buf,change, verbose); ++ errors=errors+restore(buf, change, verbose, outfile); + } + if (strcmp(file_name,"-")!=0) + fclose(f); + } + else { + for (i=optind; i< argc; i++) { +- errors=errors+restore(argv[i],change, verbose); ++ errors=errors+restore(argv[i], change, verbose, outfile); + } + } ++ if (outfile) ++ fclose(outfile); ++ + return errors; + } diff --git a/policycoreutils.spec b/policycoreutils.spec index 4ba3b83..4dcd9cd 100644 --- a/policycoreutils.spec +++ b/policycoreutils.spec @@ -1,6 +1,6 @@ Summary: SELinux policy core utilities. Name: policycoreutils -Version: 1.13.2 +Version: 1.13.3 Release: 1 License: GPL Group: System Environment/Base @@ -8,6 +8,7 @@ Source: http://www.nsa.gov/selinux/archives/policycoreutils-%{version}.tgz Prefix: %{_prefix} BuildRequires: libselinux-devel pam-devel +Patch: policycoreutils-rhat.patch BuildRoot: %{_tmppath}/%{name}-buildroot @@ -30,6 +31,7 @@ context. %prep %setup -q +%patch -p1 -b .rhat %build make all @@ -71,6 +73,14 @@ rm -rf ${RPM_BUILD_ROOT} %config(noreplace) %{_sysconfdir}/sestatus.conf %changelog +* Wed Jun 23 2004 Dan Walsh 1.13.3-1 +- Update latest from NSA +- Add -o option to setfiles to save output of any files with incorrect context. + +* Tue Jun 22 2004 Dan Walsh 1.13.2-2 +- Add rpm support to fixfiles +- Update restorecon to add file input support + * Fri Jun 18 2004 Dan Walsh 1.13.2-1 - Update with NSA Latest diff --git a/sources b/sources index c6d579f..25ed1a8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -c668394d0022d476e090de632a26928c policycoreutils-1.13.2.tgz +1a6794d323aed0b2277e88fdcdd0bd4b policycoreutils-1.13.3.tgz