rpms/policycoreutils/F-8 policycoreutils-rhat.patch, 1.336, 1.337 policycoreutils.spec, 1.482, 1.483
Daniel J Walsh (dwalsh)
fedora-extras-commits at redhat.com
Mon Dec 31 16:26:28 UTC 2007
- Previous message (by thread): rpms/policycoreutils/devel policycoreutils-rhat.patch, 1.340, 1.341 policycoreutils.spec, 1.488, 1.489
- Next message (by thread): rpms/qgit/devel .cvsignore, 1.14, 1.15 qgit.spec, 1.20, 1.21 sources, 1.14, 1.15
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: dwalsh
Update of /cvs/extras/rpms/policycoreutils/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24739
Modified Files:
policycoreutils-rhat.patch policycoreutils.spec
Log Message:
* Mon Dec 31 2007 Dan Walsh <dwalsh at redhat.com> 2.0.34-4
- Handle files with spaces in fixfiles
policycoreutils-rhat.patch:
Index: policycoreutils-rhat.patch
===================================================================
RCS file: /cvs/extras/rpms/policycoreutils/F-8/policycoreutils-rhat.patch,v
retrieving revision 1.336
retrieving revision 1.337
diff -u -r1.336 -r1.337
--- policycoreutils-rhat.patch 11 Dec 2007 02:59:48 -0000 1.336
+++ policycoreutils-rhat.patch 31 Dec 2007 16:26:24 -0000 1.337
@@ -1,16 +1,281 @@
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/audit2why/audit2why.c policycoreutils-2.0.32/audit2why/audit2why.c
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/audit2allow/audit2allow policycoreutils-2.0.34/audit2allow/audit2allow
+--- nsapolicycoreutils/audit2allow/audit2allow 2007-07-16 14:20:41.000000000 -0400
++++ policycoreutils-2.0.34/audit2allow/audit2allow 2007-12-21 01:59:57.000000000 -0500
+@@ -60,7 +60,9 @@
+ parser.add_option("-o", "--output", dest="output",
+ help="append output to <filename>, conflicts with -M")
+ parser.add_option("-R", "--reference", action="store_true", dest="refpolicy",
+- default=False, help="generate refpolicy style output")
++ default=True, help="generate refpolicy style output")
++ parser.add_option("-N", "--noreference", action="store_false", dest="refpolicy",
++ default=False, help="do not generate refpolicy style output")
+ parser.add_option("-v", "--verbose", action="store_true", dest="verbose",
+ default=False, help="explain generated output")
+ parser.add_option("-e", "--explain", action="store_true", dest="explain_long",
+@@ -149,9 +151,11 @@
+ if self.__options.type:
+ filter = audit.TypeFilter(self.__options.type)
+ self.__avs = self.__parser.to_access(filter)
++ self.__selinux_errs = self.__parser.to_role(filter)
+ else:
+ self.__avs = self.__parser.to_access()
+-
++ self.__selinux_errs = self.__parser.to_role()
++
+ def __load_interface_info(self):
+ # Load interface info file
+ if self.__options.interface_info:
+@@ -251,6 +255,12 @@
+ fd = sys.stdout
+ writer.write(g.get_module(), fd)
+
++ if len(self.__selinux_errs) > 0:
++ fd.write("\n=========== ROLES ===============\n")
++
++ for role in self.__selinux_errs:
++ fd.write(role.output())
++
+ def main(self):
+ try:
+ self.__parse_options()
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/audit2allow/audit2allow.1 policycoreutils-2.0.34/audit2allow/audit2allow.1
+--- nsapolicycoreutils/audit2allow/audit2allow.1 2007-07-16 14:20:41.000000000 -0400
++++ policycoreutils-2.0.34/audit2allow/audit2allow.1 2007-12-19 06:05:50.000000000 -0500
+@@ -65,8 +65,11 @@
+ .B "\-r" | "\-\-requires"
+ Generate require output syntax for loadable modules.
+ .TP
++.B "\-N" | "\-\-noreference"
++Do not generate reference policy, traditional style allow rules.
++.TP
+ .B "\-R" | "\-\-reference"
+-Generate reference policy using installed macros. Requires the selinux-policy-devel package.
++Generate reference policy using installed macros.Default
+ .TP
+ .B "\-t " | "\-\-tefile"
+ Indicates input file is a te (type enforcement) file. This can be used to translate old te format to new policy format.
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/audit2allow/sepolgen-ifgen policycoreutils-2.0.34/audit2allow/sepolgen-ifgen
+--- nsapolicycoreutils/audit2allow/sepolgen-ifgen 2007-07-16 14:20:41.000000000 -0400
++++ policycoreutils-2.0.34/audit2allow/sepolgen-ifgen 2007-12-20 14:19:50.000000000 -0500
+@@ -80,7 +80,10 @@
+ if_set.to_file(f)
+ f.close()
+
+- return 0
++ if refparser.success:
++ return 0
++ else:
++ return 1
+
+ if __name__ == "__main__":
+ sys.exit(main())
+Binary files nsapolicycoreutils/audit2why/audit2why and policycoreutils-2.0.34/audit2why/audit2why differ
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/audit2why/audit2why.c policycoreutils-2.0.34/audit2why/audit2why.c
--- nsapolicycoreutils/audit2why/audit2why.c 2007-07-16 14:20:41.000000000 -0400
-+++ policycoreutils-2.0.32/audit2why/audit2why.c 2007-12-02 20:29:15.000000000 -0500
-@@ -137,6 +137,8 @@
++++ policycoreutils-2.0.34/audit2why/audit2why.c 2007-12-31 11:12:23.000000000 -0500
+@@ -22,27 +22,146 @@
+ exit(rc);
+ }
+
++struct bool_t {
++ const sepol_bool_t * boolean;
++ char *name;
++ int active;
++};
++
++static struct bool_t **boollist = NULL;
++static int boolcnt = 0;
++
++struct access_t {
++ sepol_handle_t *handle;
++ sepol_policydb_t *policydb;
++ sepol_security_id_t ssid;
++ sepol_security_id_t tsid;
++ sepol_security_class_t tclass;
++ sepol_access_vector_t av;
++};
++
++static int load_booleans (const sepol_bool_t * boolean,
++ void *arg __attribute__ ((__unused__)) ) {
++ boollist[boolcnt] = (struct bool_t *) malloc(sizeof (struct bool_t));
++ boollist[boolcnt]->boolean = boolean;
++ boollist[boolcnt]->name = strdup(sepol_bool_get_name(boolean));
++ boollist[boolcnt]->active = sepol_bool_get_value(boolean);
++ boolcnt++;
++ return 0;
++}
++
++static int check_booleans (struct access_t *access) {
++ struct sepol_av_decision avd;
++ unsigned int reason;
++ int rc;
++ int i;
++ sepol_bool_key_t *key=NULL;
++ int fcnt = 0;
++ int *foundlist = calloc(boolcnt, sizeof(int));
++ if (!foundlist) {
++ fprintf(stderr,
++ "Out of memory.\n");
++ return fcnt;
++ }
++ for (i=0; i < boolcnt; i++) {
++ char *name = boollist[i]->name;
++ int active = boollist[i]->active;
++ sepol_bool_t * boolean = (sepol_bool_t *) boollist[i]->boolean;
++ rc = sepol_bool_key_create(access->handle,
++ name,
++ &key);
++ if (rc < 0) {
++ fprintf(stderr,
++ "Could not create boolean key.\n");
++ break;
++ }
++ sepol_bool_set_value(boolean, !active);
++
++ rc = sepol_bool_set(access->handle,
++ access->policydb,
++ key,
++ boolean);
++ if (rc < 0) {
++ fprintf(stderr,
++ "Could not set boolean data %s.\n", name);
++ break;
++ }
++
++ /* Reproduce the computation. */
++ rc = sepol_compute_av_reason(access->ssid, access->tsid, access->tclass, access->av, &avd, &reason);
++ if (rc < 0) {
++ fprintf(stderr,
++ "Error during access vector computation, skipping...\n");
++ break;
++ } else {
++ if (!reason) {
++ foundlist[fcnt] = i;
++ fcnt++;
++ }
++ sepol_bool_set_value((sepol_bool_t*)boolean, active);
++ rc = sepol_bool_set(access->handle,
++ access->policydb,
++ key,
++ (sepol_bool_t*) boolean);
++ if (rc < 0) {
++ fprintf(stderr,
++ "Could not set boolean data %s.\n", name);
++ break;
++ }
++ }
++ sepol_bool_key_free(key);
++ key=NULL;
++ }
++ if (key)
++ sepol_bool_key_free(key);
++
++ if (fcnt > 0) {
++ printf("\tA boolean being set incorrectly.\n");
++ for (i = 0; i < fcnt; i++) {
++ int ctr = foundlist[i];
++ char *name = boollist[ctr]->name;
++ int active = boollist[ctr]->active;
++ printf("\n\tBoolean %s is %d.\n\tExecute the following to allow access:\n", name, active);
++ printf("\t# setsebool -P %s %d\n", name, !active);
++ }
++ }
++
++ free(foundlist);
++ return fcnt;
++}
++
++
+ int main(int argc, char **argv)
+ {
+ char path[PATH_MAX];
+ char *buffer = NULL, *bufcopy = NULL;
+- unsigned int lineno = 0;
++ unsigned int lineno = 0, cnt;
+ size_t len = 0, bufcopy_len = 0;
+- FILE *fp;
++ FILE *fp, *avcp=stdin;
+ int opt, rc, set_path = 0;
+ char *p, *scon, *tcon, *tclassstr, *permstr;
+ sepol_security_id_t ssid, tsid;
+ sepol_security_class_t tclass;
+ sepol_access_vector_t perm, av;
++ struct access_t access;
+ struct sepol_av_decision avd;
+ unsigned int reason;
+ int vers = 0;
+ sidtab_t sidtab;
+ policydb_t policydb;
+ struct policy_file pf;
+-
+- while ((opt = getopt(argc, argv, "p:?h")) > 0) {
++
++ while ((opt = getopt(argc, argv, "i:p:?h")) > 0) {
+ switch (opt) {
++ case 'i':
++ avcp = fopen(optarg, "r");
++ if (!avcp) {
++ fprintf(stderr, "%s: unable to open %s: %s\n",
++ argv[0], path, strerror(errno));
++ exit(1);
++ }
++ break;
++
+ case 'p':
+ set_path = 1;
+ strncpy(path, optarg, PATH_MAX);
+@@ -110,7 +229,6 @@
+ }
+ fclose(fp);
+ sepol_set_policydb(&policydb);
+-
+ if (!set_path) {
+ /* If they didn't specify a full path of a binary policy file,
+ then also try loading any boolean settings and user
+@@ -125,6 +243,30 @@
+ (void)sepol_genusers_policydb(&policydb, selinux_users_path());
+ }
+
++ access.handle = sepol_handle_create();
++ access.policydb = (sepol_policydb_t *) &policydb,
++
++ rc = sepol_bool_count(access.handle,
++ access.policydb,
++ &cnt);
++ if (rc < 0) {
++ fprintf(stderr, "%s: unable to get bool count\n", argv[0]);
++ exit(1);
++ }
++
++ boollist = calloc(cnt, sizeof(struct bool_t));
++ if (!boollist) {
++ fprintf(stderr, "%s: Out of memory\n", argv[0]);
++ exit(1);
++ }
++
++
++ sepol_bool_iterate(access.handle,
++ (const sepol_policydb_t *) &policydb,
++ load_booleans,
++ (void *)NULL);
++
++
+ /* Initialize the sidtab for subsequent use by sepol_context_to_sid
+ and sepol_compute_av_reason. */
+ rc = sepol_sidtab_init(&sidtab);
+@@ -135,8 +277,10 @@
+ sepol_set_sidtab(&sidtab);
+
/* Process the audit messages. */
- while (getline(&buffer, &len, stdin) > 0) {
+- while (getline(&buffer, &len, stdin) > 0) {
++ while (getline(&buffer, &len, avcp) > 0) {
size_t len2 = strlen(buffer);
+ char *begin, *end, *search_buf;
+ int slen = 0;
if (buffer[len2 - 1] == '\n')
buffer[len2 - 1] = 0;
-@@ -179,6 +181,7 @@
+@@ -179,6 +323,7 @@
}
*p++ = 0;
@@ -18,7 +283,7 @@
/* Get scontext and convert to SID. */
while (*p && strncmp(p, SCONTEXT, sizeof(SCONTEXT) - 1))
p++;
-@@ -188,11 +191,14 @@
+@@ -188,11 +333,14 @@
continue;
}
p += sizeof(SCONTEXT) - 1;
@@ -36,7 +301,7 @@
rc = sepol_context_to_sid(scon, strlen(scon) + 1, &ssid);
if (rc < 0) {
fprintf(stderr,
-@@ -201,6 +207,10 @@
+@@ -201,6 +349,10 @@
continue;
}
@@ -47,7 +312,7 @@
/* Get tcontext and convert to SID. */
while (*p && strncmp(p, TCONTEXT, sizeof(TCONTEXT) - 1))
p++;
-@@ -210,11 +220,15 @@
+@@ -210,11 +362,15 @@
continue;
}
p += sizeof(TCONTEXT) - 1;
@@ -66,7 +331,7 @@
rc = sepol_context_to_sid(tcon, strlen(tcon) + 1, &tsid);
if (rc < 0) {
fprintf(stderr,
-@@ -222,6 +236,9 @@
+@@ -222,6 +378,9 @@
TCONTEXT, tcon, lineno);
continue;
}
@@ -76,7 +341,7 @@
/* Get tclass= and convert to value. */
while (*p && strncmp(p, TCLASS, sizeof(TCLASS) - 1))
-@@ -232,12 +249,17 @@
+@@ -232,12 +391,17 @@
continue;
}
p += sizeof(TCLASS) - 1;
@@ -97,18 +362,49 @@
if (!tclass) {
fprintf(stderr,
"Invalid %s%s on line %u, skipping...\n",
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/Makefile policycoreutils-2.0.32/Makefile
---- nsapolicycoreutils/Makefile 2007-07-16 14:20:43.000000000 -0400
-+++ policycoreutils-2.0.32/Makefile 2007-12-02 20:29:15.000000000 -0500
+@@ -286,11 +450,16 @@
+ }
+
+ if (reason & SEPOL_COMPUTEAV_TE) {
+- printf("\t\tMissing or disabled TE allow rule.\n");
+- printf
+- ("\t\tAllow rules may exist but be disabled by boolean settings; check boolean settings.\n");
+- printf
+- ("\t\tYou can see the necessary allow rules by running audit2allow with this audit message as input.\n");
++ access.ssid = ssid;
++ access.tsid = tsid;
++ access.tclass = tclass;
++ access.av = av;
++
++ if (check_booleans(&access) == 0) {
++ printf("\t\tMissing or disabled TE allow rule.\n");
++ printf
++ ("\t\tYou can see the necessary allow rules by running audit2allow with this audit message as input.\n");
++ }
+ }
+
+ if (reason & SEPOL_COMPUTEAV_CONS) {
+@@ -309,5 +478,8 @@
+ }
+ free(buffer);
+ free(bufcopy);
++ if (avcp != stdin)
++ fclose(avcp);
++
+ exit(0);
+ }
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/Makefile policycoreutils-2.0.34/Makefile
+--- nsapolicycoreutils/Makefile 2007-12-19 06:02:52.000000000 -0500
++++ policycoreutils-2.0.34/Makefile 2007-12-19 06:06:04.000000000 -0500
@@ -1,4 +1,4 @@
--SUBDIRS=setfiles semanage load_policy newrole run_init restorecond secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po
-+SUBDIRS=setfiles semanage load_policy newrole run_init restorecond secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po gui
+-SUBDIRS = setfiles semanage load_policy newrole run_init secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po
++SUBDIRS = setfiles semanage load_policy newrole run_init secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po gui
+
+ INOTIFYH = $(shell ls /usr/include/sys/inotify.h 2>/dev/null)
- all install relabel clean indent:
- @for subdir in $(SUBDIRS); do \
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.c policycoreutils-2.0.32/restorecond/restorecond.c
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/restorecond/restorecond.c policycoreutils-2.0.34/restorecond/restorecond.c
--- nsapolicycoreutils/restorecond/restorecond.c 2007-07-16 14:20:41.000000000 -0400
-+++ policycoreutils-2.0.32/restorecond/restorecond.c 2007-12-02 20:29:15.000000000 -0500
++++ policycoreutils-2.0.34/restorecond/restorecond.c 2007-12-19 06:05:50.000000000 -0500
@@ -210,9 +210,10 @@
}
@@ -135,9 +431,9 @@
}
free(scontext);
close(fd);
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/chcat policycoreutils-2.0.32/scripts/chcat
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/chcat policycoreutils-2.0.34/scripts/chcat
--- nsapolicycoreutils/scripts/chcat 2007-08-23 16:52:26.000000000 -0400
-+++ policycoreutils-2.0.32/scripts/chcat 2007-12-02 20:29:15.000000000 -0500
++++ policycoreutils-2.0.34/scripts/chcat 2007-12-19 06:05:50.000000000 -0500
@@ -25,10 +25,6 @@
import commands, sys, os, pwd, string, getopt, selinux
import seobject
@@ -149,9 +445,85 @@
try:
gettext.install('policycoreutils')
-diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-2.0.32/semanage/semanage
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/scripts/fixfiles policycoreutils-2.0.34/scripts/fixfiles
+--- nsapolicycoreutils/scripts/fixfiles 2007-12-10 21:42:28.000000000 -0500
++++ policycoreutils-2.0.34/scripts/fixfiles 2007-12-31 10:54:13.000000000 -0500
+@@ -126,17 +126,15 @@
+ done
+ exit $?
+ fi
+-if [ ! -z "$DIRS" ]; then
++if [ ! -z "$PATH" ]; then
+ if [ -x /usr/bin/find ]; then
+- for d in ${DIRS} ; do find $d \
++ /usr/bin/find "$PATH" \
+ ! \( -fstype ext2 -o -fstype ext3 -o -fstype jfs -o -fstype xfs \) -prune -o -print | \
+ ${RESTORECON} ${OUTFILES} ${FORCEFLAG} $* -f - 2>&1 >> $LOGFILE
+- done
+ else
+- ${RESTORECON} ${OUTFILES} ${FORCEFLAG} -R $* $DIRS 2>&1 >> $LOGFILE
++ ${RESTORECON} ${OUTFILES} ${FORCEFLAG} -R $* $PATH 2>&1 >> $LOGFILE
+ fi
+-
+- exit $?
++ return
+ fi
+ LogReadOnly
+ ${SETFILES} -q ${OUTFILES} ${SYSLOGFLAG} ${FORCEFLAG} $* ${FC} ${FILESYSTEMSRW} 2>&1 >> $LOGFILE
+@@ -173,6 +171,20 @@
+ fi
+ }
+
++process() {
++#
++# Make sure they specified one of the three valid commands
++#
++case "$1" in
++ restore) restore -p ;;
++ check) restore -n -v;;
++ verify) restore -n -o -;;
++ relabel) relabel;;
++ *)
++ usage
++ exit 1
++esac
++}
+ usage() {
+ echo $"Usage: $0 [-l logfile ] [-o outputfile ] { check | restore|[-F] relabel } [[dir] ... ] "
+ echo or
+@@ -229,22 +241,15 @@
+
+ shift 1
+ if [ ! -z "$RPMFILES" ]; then
++ process $command
+ if [ $# -gt 0 ]; then
+ usage
+ fi
+ else
+- DIRS=$*
++ while [ -n "$1" ]; do
++ PATH=$1
++ process $command
++ shift
++ done
+ fi
+-
+-#
+-# Make sure they specified one of the three valid commands
+-#
+-case "$command" in
+- restore) restore -p ;;
+- check) restore -n -v ;;
+- verify) restore -n -o -;;
+- relabel) relabel;;
+- *)
+- usage
+- exit 1
+-esac
++exit $?
+diff --exclude-from=exclude --exclude=sepolgen-1.0.10 --exclude=gui --exclude=po -N -u -r nsapolicycoreutils/semanage/semanage policycoreutils-2.0.34/semanage/semanage
--- nsapolicycoreutils/semanage/semanage 2007-10-05 13:09:53.000000000 -0400
-+++ policycoreutils-2.0.32/semanage/semanage 2007-12-02 20:29:15.000000000 -0500
++++ policycoreutils-2.0.34/semanage/semanage 2007-12-19 06:05:50.000000000 -0500
@@ -1,5 +1,5 @@
#! /usr/bin/python -E
-# Copyright (C) 2005 Red Hat
Index: policycoreutils.spec
===================================================================
RCS file: /cvs/extras/rpms/policycoreutils/F-8/policycoreutils.spec,v
retrieving revision 1.482
retrieving revision 1.483
diff -u -r1.482 -r1.483
--- policycoreutils.spec 19 Dec 2007 18:43:14 -0000 1.482
+++ policycoreutils.spec 31 Dec 2007 16:26:24 -0000 1.483
@@ -6,7 +6,7 @@
Summary: SELinux policy core utilities
Name: policycoreutils
Version: 2.0.34
-Release: 1%{?dist}
+Release: 4%{?dist}
License: GPLv2+
Group: System Environment/Base
Source: http://www.nsa.gov/selinux/archives/policycoreutils-%{version}.tgz
@@ -193,9 +193,20 @@
fi
%changelog
-* Tue Dec 19 2007 Dan Walsh <dwalsh at redhat.com> 2.0.34-1
+* Mon Dec 31 2007 Dan Walsh <dwalsh at redhat.com> 2.0.34-4
+- Handle files with spaces in fixfiles
+
+* Fri Dec 21 2007 Dan Walsh <dwalsh at redhat.com> 2.0.34-3
+- Catch SELINUX_ERR with audit2allow and generate policy
+
+* Thu Dec 20 2007 Dan Walsh <dwalsh at redhat.com> 2.0.34-2
+- Make sepolgen set error exit code when partial failure
+- audit2why now checks booleans for avc diagnosis
+
+* Wed Dec 19 2007 Dan Walsh <dwalsh at redhat.com> 2.0.34-1
- Update to upstream
-* Tue Dec 19 2007 Dan Walsh <dwalsh at redhat.com> 2.0.33-4
+
+* Wed Dec 19 2007 Dan Walsh <dwalsh at redhat.com> 2.0.33-4
- Fix sepolgen to be able to parse Fedora 9 policy
Handle ifelse statements
Handle refpolicywarn inside of define
- Previous message (by thread): rpms/policycoreutils/devel policycoreutils-rhat.patch, 1.340, 1.341 policycoreutils.spec, 1.488, 1.489
- Next message (by thread): rpms/qgit/devel .cvsignore, 1.14, 1.15 qgit.spec, 1.20, 1.21 sources, 1.14, 1.15
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list