diff --git a/.cvsignore b/.cvsignore index 390cd99..57b583b 100644 --- a/.cvsignore +++ b/.cvsignore @@ -115,3 +115,4 @@ policycoreutils-1.30.28.tgz policycoreutils-1.30.29.tgz policycoreutils-1.30.30.tgz policycoreutils-1.32.tgz +policycoreutils-1.33.1.tgz diff --git a/policycoreutils-po.patch b/policycoreutils-po.patch index 62acf9a..c075e6f 100644 --- a/policycoreutils-po.patch +++ b/policycoreutils-po.patch @@ -1,6 +1,6 @@ -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/af.po policycoreutils-1.32/po/af.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/af.po policycoreutils-1.33.1/po/af.po --- nsapolicycoreutils/po/af.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/af.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/af.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -1140,9 +1140,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/af.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/am.po policycoreutils-1.32/po/am.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/am.po policycoreutils-1.33.1/po/am.po --- nsapolicycoreutils/po/am.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/am.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/am.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -2282,9 +2282,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/am.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ar.po policycoreutils-1.32/po/ar.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ar.po policycoreutils-1.33.1/po/ar.po --- nsapolicycoreutils/po/ar.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ar.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ar.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -3424,9 +3424,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ar.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/as.po policycoreutils-1.32/po/as.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/as.po policycoreutils-1.33.1/po/as.po --- nsapolicycoreutils/po/as.po 1969-12-31 19:00:00.000000000 -0500 -+++ policycoreutils-1.32/po/as.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/as.po 2006-11-14 09:54:05.000000000 -0500 @@ -0,0 +1,973 @@ +# translation of as.po to Assamese +# This file is distributed under the same license as the PACKAGE package. @@ -4401,9 +4401,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/as.po policycoreutils +#, c-format +msgid "Options Error: %s " +msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/be.po policycoreutils-1.32/po/be.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/be.po policycoreutils-1.33.1/po/be.po --- nsapolicycoreutils/po/be.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/be.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/be.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -5543,9 +5543,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/be.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bg.po policycoreutils-1.32/po/bg.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bg.po policycoreutils-1.33.1/po/bg.po --- nsapolicycoreutils/po/bg.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/bg.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/bg.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -6685,9 +6685,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bg.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bn_IN.po policycoreutils-1.32/po/bn_IN.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bn_IN.po policycoreutils-1.33.1/po/bn_IN.po --- nsapolicycoreutils/po/bn_IN.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/bn_IN.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/bn_IN.po 2006-11-14 09:54:05.000000000 -0500 @@ -36,7 +36,7 @@ msgstr "" "Project-Id-Version: bn_IN\n" @@ -7853,9 +7853,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bn_IN.po policycoreut msgid "Options Error: %s " msgstr "বিকল্প সংক্রান্ত ত্রুটি: %s" - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bn.po policycoreutils-1.32/po/bn.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bn.po policycoreutils-1.33.1/po/bn.po --- nsapolicycoreutils/po/bn.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/bn.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/bn.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -8995,9 +8995,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/bn.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ca.po policycoreutils-1.32/po/ca.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ca.po policycoreutils-1.33.1/po/ca.po --- nsapolicycoreutils/po/ca.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/ca.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ca.po 2006-11-14 09:54:05.000000000 -0500 @@ -22,7 +22,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -10162,9 +10162,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ca.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Error en les opcions: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/cs.po policycoreutils-1.32/po/cs.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/cs.po policycoreutils-1.33.1/po/cs.po --- nsapolicycoreutils/po/cs.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/cs.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/cs.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -11304,9 +11304,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/cs.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/cy.po policycoreutils-1.32/po/cy.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/cy.po policycoreutils-1.33.1/po/cy.po --- nsapolicycoreutils/po/cy.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/cy.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/cy.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -12446,9 +12446,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/cy.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/da.po policycoreutils-1.32/po/da.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/da.po policycoreutils-1.33.1/po/da.po --- nsapolicycoreutils/po/da.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/da.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/da.po 2006-11-14 09:54:05.000000000 -0500 @@ -1,230 +1,254 @@ +# Danish messages for policycoreutils. +# Copyright (C) 2006 Christian Rose. @@ -13832,9 +13832,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/da.po policycoreutils msgid "Options Error: %s " -msgstr "" +msgstr "Flagfejl: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/de.po policycoreutils-1.32/po/de.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/de.po policycoreutils-1.33.1/po/de.po --- nsapolicycoreutils/po/de.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/de.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/de.po 2006-11-14 09:54:05.000000000 -0500 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: de\n" @@ -15006,9 +15006,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/de.po policycoreutils msgid "Options Error: %s " msgstr "Options Fehler: %s" - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/el.po policycoreutils-1.32/po/el.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/el.po policycoreutils-1.33.1/po/el.po --- nsapolicycoreutils/po/el.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/el.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/el.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: el\n" @@ -16194,9 +16194,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/el.po policycoreutils msgid "Options Error: %s " msgstr "Σφάλμα πιστοποίησης: %s" - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/en_GB.po policycoreutils-1.32/po/en_GB.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/en_GB.po policycoreutils-1.33.1/po/en_GB.po --- nsapolicycoreutils/po/en_GB.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/en_GB.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/en_GB.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -17336,9 +17336,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/en_GB.po policycoreut #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/es.po policycoreutils-1.32/po/es.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/es.po policycoreutils-1.33.1/po/es.po --- nsapolicycoreutils/po/es.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/es.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/es.po 2006-11-14 09:54:05.000000000 -0500 @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: \n" @@ -18491,9 +18491,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/es.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Error Opciones:�%s�" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/et.po policycoreutils-1.32/po/et.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/et.po policycoreutils-1.33.1/po/et.po --- nsapolicycoreutils/po/et.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/et.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/et.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,221 +8,226 @@ msgid "%s: Can't load policy: %s\n" msgstr "" @@ -19624,9 +19624,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/et.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/eu_ES.po policycoreutils-1.32/po/eu_ES.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/eu_ES.po policycoreutils-1.33.1/po/eu_ES.po --- nsapolicycoreutils/po/eu_ES.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/eu_ES.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/eu_ES.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -20766,9 +20766,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/eu_ES.po policycoreut #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fa.po policycoreutils-1.32/po/fa.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fa.po policycoreutils-1.33.1/po/fa.po --- nsapolicycoreutils/po/fa.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/fa.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/fa.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -21908,9 +21908,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fa.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fi.po policycoreutils-1.32/po/fi.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fi.po policycoreutils-1.33.1/po/fi.po --- nsapolicycoreutils/po/fi.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/fi.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/fi.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -23050,9 +23050,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fi.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fr.po policycoreutils-1.32/po/fr.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fr.po policycoreutils-1.33.1/po/fr.po --- nsapolicycoreutils/po/fr.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/fr.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/fr.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Policy Core Utils 1.0\n" @@ -24215,9 +24215,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/fr.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Options invalides: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/gl.po policycoreutils-1.32/po/gl.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/gl.po policycoreutils-1.33.1/po/gl.po --- nsapolicycoreutils/po/gl.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/gl.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/gl.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,221 +8,226 @@ msgid "%s: Can't load policy: %s\n" msgstr "" @@ -25348,9 +25348,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/gl.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/gu.po policycoreutils-1.32/po/gu.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/gu.po policycoreutils-1.33.1/po/gu.po --- nsapolicycoreutils/po/gu.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/gu.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/gu.po 2006-11-14 09:54:05.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gu\n" @@ -26495,9 +26495,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/gu.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "વિકલ્પો ભૂલ: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/he.po policycoreutils-1.32/po/he.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/he.po policycoreutils-1.33.1/po/he.po --- nsapolicycoreutils/po/he.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/he.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/he.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -27637,9 +27637,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/he.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hi.po policycoreutils-1.32/po/hi.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hi.po policycoreutils-1.33.1/po/hi.po --- nsapolicycoreutils/po/hi.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/hi.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/hi.po 2006-11-14 09:54:05.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: hi\n" @@ -28784,9 +28784,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hi.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "विकल्प त्रुटि: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hr.po policycoreutils-1.32/po/hr.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hr.po policycoreutils-1.33.1/po/hr.po --- nsapolicycoreutils/po/hr.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/hr.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/hr.po 2006-11-14 09:54:05.000000000 -0500 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -29935,9 +29935,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hr.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Pogreška opcija: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hu.po policycoreutils-1.32/po/hu.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hu.po policycoreutils-1.33.1/po/hu.po --- nsapolicycoreutils/po/hu.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/hu.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/hu.po 2006-11-14 09:54:05.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: hu\n" @@ -31103,9 +31103,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hu.po policycoreutils msgid "Options Error: %s " msgstr "Hiba az opciókban: %s " - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hy.po policycoreutils-1.32/po/hy.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hy.po policycoreutils-1.33.1/po/hy.po --- nsapolicycoreutils/po/hy.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/hy.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/hy.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -32245,9 +32245,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/hy.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/id.po policycoreutils-1.32/po/id.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/id.po policycoreutils-1.33.1/po/id.po --- nsapolicycoreutils/po/id.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/id.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/id.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,221 +8,226 @@ msgid "%s: Can't load policy: %s\n" msgstr "" @@ -33378,9 +33378,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/id.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/is.po policycoreutils-1.32/po/is.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/is.po policycoreutils-1.33.1/po/is.po --- nsapolicycoreutils/po/is.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/is.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/is.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -34520,9 +34520,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/is.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/it.po policycoreutils-1.32/po/it.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/it.po policycoreutils-1.33.1/po/it.po --- nsapolicycoreutils/po/it.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/it.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/it.po 2006-11-14 09:54:05.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: it\n" @@ -35673,9 +35673,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/it.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Errore opzioni: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ja.po policycoreutils-1.32/po/ja.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ja.po policycoreutils-1.33.1/po/ja.po --- nsapolicycoreutils/po/ja.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ja.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ja.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -36815,9 +36815,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ja.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ka.po policycoreutils-1.32/po/ka.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ka.po policycoreutils-1.33.1/po/ka.po --- nsapolicycoreutils/po/ka.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ka.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ka.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -37957,9 +37957,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ka.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/kn.po policycoreutils-1.32/po/kn.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/kn.po policycoreutils-1.33.1/po/kn.po --- nsapolicycoreutils/po/kn.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/kn.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/kn.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,12 +8,12 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -39105,9 +39105,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/kn.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ko.po policycoreutils-1.32/po/ko.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ko.po policycoreutils-1.33.1/po/ko.po --- nsapolicycoreutils/po/ko.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/ko.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ko.po 2006-11-14 09:54:05.000000000 -0500 @@ -17,7 +17,7 @@ msgstr "" "Project-Id-Version: ko\n" @@ -40257,9 +40257,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ko.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "옵션 오류: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ku.po policycoreutils-1.32/po/ku.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ku.po policycoreutils-1.33.1/po/ku.po --- nsapolicycoreutils/po/ku.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ku.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ku.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -41399,9 +41399,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ku.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lo.po policycoreutils-1.32/po/lo.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lo.po policycoreutils-1.33.1/po/lo.po --- nsapolicycoreutils/po/lo.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/lo.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/lo.po 2006-11-14 09:54:05.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -42541,9 +42541,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lo.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lt.po policycoreutils-1.32/po/lt.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lt.po policycoreutils-1.33.1/po/lt.po --- nsapolicycoreutils/po/lt.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/lt.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/lt.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -43683,9 +43683,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lt.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lv.po policycoreutils-1.32/po/lv.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lv.po policycoreutils-1.33.1/po/lv.po --- nsapolicycoreutils/po/lv.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/lv.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/lv.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -44825,9 +44825,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/lv.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/mk.po policycoreutils-1.32/po/mk.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/mk.po policycoreutils-1.33.1/po/mk.po --- nsapolicycoreutils/po/mk.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/mk.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/mk.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -45967,9 +45967,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/mk.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ml.po policycoreutils-1.32/po/ml.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ml.po policycoreutils-1.33.1/po/ml.po --- nsapolicycoreutils/po/ml.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ml.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ml.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ml\n" @@ -47114,9 +47114,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ml.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "ഉപാധിയില്‍ പിഴവ്: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/mr.po policycoreutils-1.32/po/mr.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/mr.po policycoreutils-1.33.1/po/mr.po --- nsapolicycoreutils/po/mr.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/mr.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/mr.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: mr\n" @@ -48261,9 +48261,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/mr.po policycoreutils #, fuzzy, c-format msgid "Options Error: %s " msgstr "चूक " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ms.po policycoreutils-1.32/po/ms.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ms.po policycoreutils-1.33.1/po/ms.po --- nsapolicycoreutils/po/ms.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/ms.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ms.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -49516,9 +49516,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ms.po policycoreutils msgid "Options Error: %s " msgstr "Ralat Pilihan: %s" - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/my.po policycoreutils-1.32/po/my.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/my.po policycoreutils-1.33.1/po/my.po --- nsapolicycoreutils/po/my.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/my.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/my.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -50658,9 +50658,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/my.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nb.po policycoreutils-1.32/po/nb.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nb.po policycoreutils-1.33.1/po/nb.po --- nsapolicycoreutils/po/nb.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/nb.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/nb.po 2006-11-14 09:54:06.000000000 -0500 @@ -1,17 +1,16 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER @@ -51825,9 +51825,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nb.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nl.po policycoreutils-1.32/po/nl.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nl.po policycoreutils-1.33.1/po/nl.po --- nsapolicycoreutils/po/nl.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/nl.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/nl.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -52982,9 +52982,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nl.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Fout in opties: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nn.po policycoreutils-1.32/po/nn.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nn.po policycoreutils-1.33.1/po/nn.po --- nsapolicycoreutils/po/nn.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/nn.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/nn.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -54124,9 +54124,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nn.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/no.po policycoreutils-1.32/po/no.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/no.po policycoreutils-1.33.1/po/no.po --- nsapolicycoreutils/po/no.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/no.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/no.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -55266,9 +55266,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/no.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nso.po policycoreutils-1.32/po/nso.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nso.po policycoreutils-1.33.1/po/nso.po --- nsapolicycoreutils/po/nso.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/nso.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/nso.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -56408,9 +56408,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/nso.po policycoreutil #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/or.po policycoreutils-1.32/po/or.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/or.po policycoreutils-1.33.1/po/or.po --- nsapolicycoreutils/po/or.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/or.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/or.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: or\n" @@ -57555,9 +57555,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/or.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "ପସନ୍ଦ ମାନଙ୍କ ର ତ୍ରୁଟି: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pa.po policycoreutils-1.32/po/pa.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pa.po policycoreutils-1.33.1/po/pa.po --- nsapolicycoreutils/po/pa.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/pa.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/pa.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -58700,9 +58700,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pa.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "ਚੋਣ ਗਲਤੀ:%s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pl.po policycoreutils-1.32/po/pl.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pl.po policycoreutils-1.33.1/po/pl.po --- nsapolicycoreutils/po/pl.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/pl.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/pl.po 2006-11-14 09:54:06.000000000 -0500 @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: pl\n" @@ -59861,9 +59861,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pl.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Błąd opcji: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/policycoreutils.pot policycoreutils-1.32/po/policycoreutils.pot +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/policycoreutils.pot policycoreutils-1.33.1/po/policycoreutils.pot --- nsapolicycoreutils/po/policycoreutils.pot 2006-08-28 16:58:21.000000000 -0400 -+++ policycoreutils-1.32/po/policycoreutils.pot 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/policycoreutils.pot 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -61003,9 +61003,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/policycoreutils.pot p #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pt_BR.po policycoreutils-1.32/po/pt_BR.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pt_BR.po policycoreutils-1.33.1/po/pt_BR.po --- nsapolicycoreutils/po/pt_BR.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/pt_BR.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/pt_BR.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: pt_BR\n" @@ -62152,9 +62152,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pt_BR.po policycoreut #, c-format msgid "Options Error: %s " msgstr "Erro de Opções: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pt.po policycoreutils-1.32/po/pt.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pt.po policycoreutils-1.33.1/po/pt.po --- nsapolicycoreutils/po/pt.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/pt.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/pt.po 2006-11-14 09:54:06.000000000 -0500 @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -63313,9 +63313,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/pt.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Erro nas Opções: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ro.po policycoreutils-1.32/po/ro.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ro.po policycoreutils-1.33.1/po/ro.po --- nsapolicycoreutils/po/ro.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ro.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ro.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -64455,497 +64455,154 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ro.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ru.po policycoreutils-1.32/po/ru.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ru.po policycoreutils-1.33.1/po/ru.po --- nsapolicycoreutils/po/ru.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/ru.po 2006-11-07 11:47:21.000000000 -0500 -@@ -5,7 +5,7 @@ - msgstr "" ++++ policycoreutils-1.33.1/po/ru.po 2006-11-14 09:57:32.000000000 -0500 +@@ -6,8 +6,8 @@ "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" --"POT-Creation-Date: 2006-06-29 15:53-0400\n" -+"POT-Creation-Date: 2006-10-20 09:14-0400\n" - "PO-Revision-Date: 2006-09-16 01:36+0400\n" - "Last-Translator: Andrew Martynov \n" + "POT-Creation-Date: 2006-06-29 15:53-0400\n" +-"PO-Revision-Date: 2006-09-16 01:36+0400\n" +-"Last-Translator: Andrew Martynov \n" ++"PO-Revision-Date: 2006-11-07 22:36+0300\n" ++"Last-Translator: Gregory R. Sapunkov \n" "Language-Team: Russian \n" -@@ -24,223 +24,228 @@ - msgid "%s: Can't load policy: %s\n" - msgstr "%s: Невозможно загрузить политику: %s\n" - --#: ../newrole/newrole.c:97 -+#: ../newrole/newrole.c:98 - #, c-format + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" +@@ -29,7 +29,8 @@ msgid "Out of memory!\n" msgstr "Недостаточно памяти!\n" -#: ../newrole/newrole.c:199 ../run_init/run_init.c:126 -+#: ../newrole/newrole.c:200 ../run_init/run_init.c:126 ++#: ../newrole/newrole.c:199 ++#: ../run_init/run_init.c:126 #, c-format msgid "failed to initialize PAM\n" msgstr "сбой инициализации PAM\n" - --#: ../newrole/newrole.c:210 -+#: ../newrole/newrole.c:211 - #, c-format +@@ -39,16 +40,19 @@ msgid "failed to set PAM_TTY\n" msgstr "сбой установки PAM_TTY\n" -#: ../newrole/newrole.c:246 ../run_init/run_init.c:154 -+#: ../newrole/newrole.c:247 ../run_init/run_init.c:154 ++#: ../newrole/newrole.c:246 ++#: ../run_init/run_init.c:154 msgid "Password:" msgstr "Пароль:" -#: ../newrole/newrole.c:281 ../run_init/run_init.c:189 -+#: ../newrole/newrole.c:282 ../run_init/run_init.c:189 ++#: ../newrole/newrole.c:281 ++#: ../run_init/run_init.c:189 #, c-format msgid "Cannot find your entry in the shadow passwd file.\n" msgstr "Невозможно найти вашу запись в теневом файле паролей.\n" -#: ../newrole/newrole.c:287 ../run_init/run_init.c:195 -+#: ../newrole/newrole.c:288 ../run_init/run_init.c:195 ++#: ../newrole/newrole.c:287 ++#: ../run_init/run_init.c:195 #, c-format msgid "getpass cannot open /dev/tty\n" msgstr "getpass не может открыть /dev/tty\n" - --#: ../newrole/newrole.c:354 -+#: ../newrole/newrole.c:355 - #, fuzzy, c-format - msgid "Error initing capabilities, aborting.\n" - msgstr "Ошибка смены uid, аварийное завершение.\n" - --#: ../newrole/newrole.c:368 -+#: ../newrole/newrole.c:369 - #, fuzzy, c-format - msgid "Error dropping capabilities, aborting\n" - msgstr "Ошибка сброса capabilities, аварийное завершение.\n" - --#: ../newrole/newrole.c:375 -+#: ../newrole/newrole.c:376 - #, c-format - msgid "Error changing uid, aborting.\n" - msgstr "Ошибка смены uid, аварийное завершение.\n" - --#: ../newrole/newrole.c:382 -+#: ../newrole/newrole.c:383 - #, c-format - msgid "Error resetting KEEPCAPS, aborting\n" - msgstr "Ошибка сброса KEEPCAPS, аварийное завершение.\n" - --#: ../newrole/newrole.c:390 -+#: ../newrole/newrole.c:391 - #, fuzzy, c-format - msgid "Error dropping SETUID capability, aborting\n" - msgstr "Ошибка сброса SETUID capability, аварийное завершение.\n" - --#: ../newrole/newrole.c:463 -+#: ../newrole/newrole.c:410 -+#, c-format -+msgid "Error connecting to audit system.\n" -+msgstr "Ошибка соединения с системой аудита.\n" -+ -+#: ../newrole/newrole.c:416 -+#, c-format -+msgid "Error allocating memory.\n" -+msgstr "Ошибка выделения памяти.\n" -+ -+#: ../newrole/newrole.c:423 -+#, c-format -+msgid "Error sending audit message.\n" -+msgstr "Ошибка отправки сообщения аудита.\n" -+ -+#: ../newrole/newrole.c:511 - #, c-format - msgid "Sorry, newrole may be used only on a SELinux kernel.\n" - msgstr "Извините. newrole может быть использована только для ядра с SELinux.\n" - --#: ../newrole/newrole.c:468 -+#: ../newrole/newrole.c:516 - #, c-format - msgid "Could not determine enforcing mode.\n" - msgstr "Невозможно определить режим блокировок (enforcing).\n" - --#: ../newrole/newrole.c:488 -+#: ../newrole/newrole.c:536 - #, c-format - msgid "Error: multiple roles specified\n" - msgstr "Ошибка: указано несколько ролей\n" - --#: ../newrole/newrole.c:498 -+#: ../newrole/newrole.c:546 - #, c-format - msgid "Error: multiple types specified\n" - msgstr "Ошибка: указано несколько типов\n" - --#: ../newrole/newrole.c:508 -+#: ../newrole/newrole.c:556 - #, c-format - msgid "Sorry, -l may be used with SELinux MLS support.\n" - msgstr "Извините, -l может быть использована с поддержкой SELinux MLS.\n" - --#: ../newrole/newrole.c:515 -+#: ../newrole/newrole.c:563 - #, c-format - msgid "Error: multiple levels specified\n" - msgstr "Ошибка: указано несколько уровней\n" - --#: ../newrole/newrole.c:537 -+#: ../newrole/newrole.c:585 - #, c-format - msgid "Couldn't get default type.\n" - msgstr "Невозможно получить тип по умолчанию.\n" - --#: ../newrole/newrole.c:559 -+#: ../newrole/newrole.c:608 - #, c-format - msgid "failed to get old_context.\n" - msgstr "сбой получения старого_контекста.\n" - --#: ../newrole/newrole.c:572 -+#: ../newrole/newrole.c:621 - #, c-format - msgid "failed to get new context.\n" - msgstr "сбой получения нового контекста.\n" - --#: ../newrole/newrole.c:596 -+#: ../newrole/newrole.c:645 - #, c-format - msgid "cannot find your entry in the passwd file.\n" - msgstr "невозможно найти вашу запись в файле passwd.\n" - --#: ../newrole/newrole.c:606 -+#: ../newrole/newrole.c:655 - #, c-format - msgid "Error! Shell is not valid.\n" - msgstr "Ошибка! Оболочка не верна.\n" - --#: ../newrole/newrole.c:614 -+#: ../newrole/newrole.c:663 - #, c-format - msgid "Error! Could not retrieve tty information.\n" - msgstr "Ошибка! Невозможно получить информацию о tty.\n" - --#: ../newrole/newrole.c:618 -+#: ../newrole/newrole.c:667 - #, c-format - msgid "Authenticating %s.\n" - msgstr "Проверка подлинности %s.\n" - --#: ../newrole/newrole.c:632 -+#: ../newrole/newrole.c:681 - #, c-format - msgid "newrole: incorrect password for %s\n" - msgstr "newrole: неверный пароль %s\n" - --#: ../newrole/newrole.c:657 -+#: ../newrole/newrole.c:707 - #, c-format - msgid "failed to set new role %s\n" - msgstr "сбой задания новой роли %s\n" - --#: ../newrole/newrole.c:671 -+#: ../newrole/newrole.c:721 - #, c-format - msgid "failed to set new type %s\n" - msgstr "сбой задания нового типа %s\n" - --#: ../newrole/newrole.c:688 -+#: ../newrole/newrole.c:738 - #, c-format - msgid "failed to build new range with level %s\n" - msgstr "сбой построения нового диапазона с уровнем %s\n" - --#: ../newrole/newrole.c:693 -+#: ../newrole/newrole.c:743 - #, c-format - msgid "failed to set new range %s\n" - msgstr "сбой задания нового диапазона %s\n" - --#: ../newrole/newrole.c:708 -+#: ../newrole/newrole.c:758 - #, c-format - msgid "failed to convert new context to string\n" - msgstr "сбой преобразования нового контекста в строку\n" - --#: ../newrole/newrole.c:717 -+#: ../newrole/newrole.c:766 - #, c-format - msgid "%s is not a valid context\n" - msgstr "%s не является верным контекстом\n" - --#: ../newrole/newrole.c:730 -+#: ../newrole/newrole.c:780 - #, c-format - msgid "Error! Could not open %s.\n" - msgstr "Ошибка! Невозможно открыть %s.\n" - --#: ../newrole/newrole.c:738 -+#: ../newrole/newrole.c:788 +@@ -186,14 +190,12 @@ + #: ../newrole/newrole.c:738 #, c-format msgid "%s! Could not get current context for %s, not relabeling tty.\n" - msgstr "" - "%s! Невозможно получить текущий контекст для %s, метка tty не изменяется.\n" +-msgstr "" +-"%s! Невозможно получить текущий контекст для %s, метка tty не изменяется.\n" ++msgstr "%s! Невозможно получить текущий контекст для %s, метка tty не изменяется.\n" --#: ../newrole/newrole.c:757 -+#: ../newrole/newrole.c:807 + #: ../newrole/newrole.c:757 #, c-format msgid "%s! Could not get new context for %s, not relabeling tty.\n" - msgstr "" - "%s! Невозможно получить новый контекст для %s, метка tty не изменяется.\n" - --#: ../newrole/newrole.c:771 -+#: ../newrole/newrole.c:821 - #, c-format - msgid "%s! Could not set new context for %s\n" - msgstr "%s! Невозможно задать новый контекст для %s\n" - --#: ../newrole/newrole.c:784 -+#: ../newrole/newrole.c:834 - #, c-format - msgid "newrole: failure forking: %s" - msgstr "newrole: сбой выполнения fork: %s" - --#: ../newrole/newrole.c:789 -+#: ../newrole/newrole.c:839 - #, c-format - msgid "Warning! Could not restore context for %s\n" - msgstr "Предупреждение! Невозможно восстановить контекст для %s\n" - --#: ../newrole/newrole.c:810 -+#: ../newrole/newrole.c:860 - #, fuzzy, c-format - msgid "%s changed labels.\n" - msgstr "%s изменило метки.\n" +-msgstr "" +-"%s! Невозможно получить новый контекст для %s, метка tty не изменяется.\n" ++msgstr "%s! Невозможно получить новый контекст для %s, метка tty не изменяется.\n" --#: ../newrole/newrole.c:834 -+#: ../newrole/newrole.c:884 + #: ../newrole/newrole.c:771 #, c-format +@@ -220,7 +222,8 @@ msgid "Could not close descriptors.\n" msgstr "Невозможно закрыть дескрипторы.\n" -#: ../newrole/newrole.c:869 ../run_init/run_init.c:397 --#, c-format --msgid "Could not set exec context to %s.\n" --msgstr "Невозможно задать контекст исполнения для %s.\n" -- --#: ../newrole/newrole.c:881 --#, c-format --msgid "Error connecting to audit system.\n" --msgstr "Ошибка соединения с системой аудита.\n" -- --#: ../newrole/newrole.c:886 --#, c-format --msgid "Error allocating memory.\n" -+#: ../newrole/newrole.c:909 -+#, fuzzy, c-format -+msgid "Error allocating shell.\n" - msgstr "Ошибка выделения памяти.\n" - --#: ../newrole/newrole.c:892 -+#: ../newrole/newrole.c:922 ../run_init/run_init.c:397 ++#: ../newrole/newrole.c:869 ++#: ../run_init/run_init.c:397 #, c-format --msgid "Error sending audit message.\n" --msgstr "Ошибка отправки сообщения аудита.\n" -+msgid "Could not set exec context to %s.\n" -+msgstr "Невозможно задать контекст исполнения для %s.\n" - --#: ../newrole/newrole.c:903 -+#: ../newrole/newrole.c:932 - msgid "failed to exec shell\n" - msgstr "сбой запуска оболочки\n" + msgid "Could not set exec context to %s.\n" + msgstr "Невозможно задать контекст исполнения для %s.\n" +@@ -272,40 +275,44 @@ + #: ../run_init/run_init.c:353 + #, c-format + msgid "Sorry, run_init may be used only on a SELinux kernel.\n" +-msgstr "" +-"Извините, run_init может быть использовано только для ядра с SELinux.\n" ++msgstr "Извините, run_init может быть использовано только для ядра с SELinux.\n" -@@ -280,672 +285,682 @@ + #: ../run_init/run_init.c:372 + #, c-format msgid "authentication failed.\n" msgstr "сбой проверки подлинности.\n" -#: ../scripts/chcat:70 ../scripts/chcat:140 -+#: ../scripts/chcat:75 ../scripts/chcat:145 ++#: ../scripts/chcat:70 ++#: ../scripts/chcat:140 msgid "Requires at least one category" msgstr "Требуется как минимум одна категория" -#: ../scripts/chcat:84 ../scripts/chcat:154 -+#: ../scripts/chcat:89 ../scripts/chcat:159 ++#: ../scripts/chcat:84 ++#: ../scripts/chcat:154 #, c-format msgid "Can not modify sensitivity levels using '+' on %s" - msgstr "" +-msgstr "" ++msgstr "Нельзя изменить уровень чувствительности используя '+' на %s" --#: ../scripts/chcat:88 -+#: ../scripts/chcat:93 + #: ../scripts/chcat:88 #, c-format msgid "%s is already in %s" msgstr "%s уже в %s" -#: ../scripts/chcat:159 ../scripts/chcat:169 -+#: ../scripts/chcat:164 ../scripts/chcat:174 ++#: ../scripts/chcat:159 ++#: ../scripts/chcat:169 #, c-format msgid "%s is not in %s" msgstr "%s не в %s" -#: ../scripts/chcat:232 ../scripts/chcat:237 -+#: ../scripts/chcat:237 ../scripts/chcat:242 ++#: ../scripts/chcat:232 ++#: ../scripts/chcat:237 msgid "Can not combine +/- with other types of categories" msgstr "Невозможно объединить +/- с другими типами категорий" --#: ../scripts/chcat:282 -+#: ../scripts/chcat:287 + #: ../scripts/chcat:282 ++#, fuzzy msgid "Can not have multiple sensitivities" - msgstr "" - --#: ../scripts/chcat:288 -+#: ../scripts/chcat:293 - #, c-format - msgid "Usage %s CATEGORY File ..." - msgstr "Использование %s КАТЕГОРИЯ Файл ..." - --#: ../scripts/chcat:289 -+#: ../scripts/chcat:294 - #, c-format - msgid "Usage %s -l CATEGORY user ..." - msgstr "Использование %s -l КАТЕГОРИЯ пользователь ..." - --#: ../scripts/chcat:290 -+#: ../scripts/chcat:295 - #, c-format - msgid "Usage %s [[+|-]CATEGORY],...]q File ..." - msgstr "Использование %s [[+|-]КАТЕГОРИЯ],...]q Файл ..." - --#: ../scripts/chcat:291 -+#: ../scripts/chcat:296 - #, c-format - msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..." - msgstr "Использование %s -l [[+|-]КАТЕГОРИЯ],...]q пользователь ..." - --#: ../scripts/chcat:292 -+#: ../scripts/chcat:297 - #, c-format - msgid "Usage %s -d File ..." - msgstr "Использование %s -d Файл ..." - --#: ../scripts/chcat:293 -+#: ../scripts/chcat:298 - #, c-format - msgid "Usage %s -l -d user ..." - msgstr "Использование %s -l -d пользователь ..." - --#: ../scripts/chcat:294 -+#: ../scripts/chcat:299 - #, c-format - msgid "Usage %s -L" - msgstr "Использование %s -L" - --#: ../scripts/chcat:295 -+#: ../scripts/chcat:300 - #, c-format - msgid "Usage %s -L -l user" - msgstr "Использование %s -L -l пользователь" - --#: ../scripts/chcat:296 -+#: ../scripts/chcat:301 - msgid "Use -- to end option list. For example" - msgstr "Используйте -- чтобы указать завершение списка параметров. На пример" - --#: ../scripts/chcat:297 -+#: ../scripts/chcat:302 - msgid "chcat -- -CompanyConfidential /docs/businessplan.odt" - msgstr "chcat -- -CompanyConfidential /docs/businessplan.odt" - --#: ../scripts/chcat:298 -+#: ../scripts/chcat:303 - msgid "chcat -l +CompanyConfidential juser" - msgstr "chcat -l +CompanyConfidential juser" - --#: ../semanage/semanage:122 -+#: ../semanage/semanage:127 - msgid "Requires 2 or more arguments" - msgstr "Требуетсе 2 или более аргумента" +-msgstr "" ++msgstr "Нельзя иметь несколько уровней чувствительности" --#: ../semanage/semanage:127 -+#: ../semanage/semanage:132 + #: ../scripts/chcat:288 #, c-format - msgid "%s not defined" - msgstr "%s не определен" - --#: ../semanage/semanage:151 -+#: ../semanage/semanage:156 - #, fuzzy, c-format +@@ -373,7 +380,8 @@ msgid "%s not valid for %s objects\n" msgstr "%s не является допустимой для объектов %s\n" -#: ../semanage/semanage:178 ../semanage/semanage:186 -+#: ../semanage/semanage:183 ../semanage/semanage:191 ++#: ../semanage/semanage:178 ++#: ../semanage/semanage:186 msgid "range not supported on Non MLS machines" msgstr "диапазоны не поддерживаются на машинах без MLS" --#: ../semanage/semanage:244 -+#: ../semanage/semanage:249 - msgid "You must specify a role" - msgstr "Необходимо указать роль" - --#: ../semanage/semanage:246 -+#: ../semanage/semanage:251 - msgid "You must specify a prefix" - msgstr "Необходимо указать префикс" - --#: ../semanage/semanage:295 -+#: ../semanage/semanage:300 - #, c-format - msgid "Options Error %s " - msgstr "Ошибка параметров %s " - --#: ../semanage/semanage:299 -+#: ../semanage/semanage:304 - #, c-format - msgid "Invalid value %s" - msgstr "Недопустимое значение %s" - --#: ../semanage/seobject.py:124 -+#: ../semanage/seobject.py:130 - #, fuzzy - msgid "translations not supported on non-MLS machines" - msgstr "переводы не поддерживаются для машин без MLS" - --#: ../semanage/seobject.py:131 -+#: ../semanage/seobject.py:137 - #, fuzzy, python-format +@@ -405,7 +413,8 @@ msgid "Unable to open %s: translations not supported on non-MLS machines" msgstr "Невозможно открыть %s: переводы не поддерживаются на машинах без MLS" -#: ../semanage/seobject.py:171 ../semanage/seobject.py:185 -+#: ../semanage/seobject.py:177 ../semanage/seobject.py:191 ++#: ../semanage/seobject.py:171 ++#: ../semanage/seobject.py:185 #, fuzzy, python-format msgid "Translations can not contain spaces '%s' " msgstr "Переводы не могут включать пробелы '%s' " - --#: ../semanage/seobject.py:174 -+#: ../semanage/seobject.py:180 - #, python-format - msgid "Invalid Level '%s' " - msgstr "Недопустимый уровень '%s' " - --#: ../semanage/seobject.py:177 -+#: ../semanage/seobject.py:183 - #, fuzzy, python-format - msgid "%s already defined in translations" - msgstr "%s уже определен в переводе" - --#: ../semanage/seobject.py:189 -+#: ../semanage/seobject.py:195 - #, fuzzy, python-format - msgid "%s not defined in translations" - msgstr "%s не определено в переводе" - --#: ../semanage/seobject.py:209 -+#: ../semanage/seobject.py:215 - #, fuzzy - msgid "SELinux policy is not managed or store cannot be accessed." - msgstr "Политика SELinux не поддерживает управление или хранилище недоступно." - --#: ../semanage/seobject.py:214 -+#: ../semanage/seobject.py:220 - msgid "Cannot read policy store." - msgstr "Невозможно прочитать хранилище политики." - --#: ../semanage/seobject.py:219 -+#: ../semanage/seobject.py:225 - #, fuzzy +@@ -439,17 +448,24 @@ msgid "Could not establish semanage connection" msgstr "Невозможно установить semanage соединение" @@ -64954,56 +64611,47 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ru.po policycoreutils -#: ../semanage/seobject.py:493 ../semanage/seobject.py:549 -#: ../semanage/seobject.py:1080 ../semanage/seobject.py:1119 -#: ../semanage/seobject.py:1188 ../semanage/seobject.py:1222 -+#: ../semanage/seobject.py:244 ../semanage/seobject.py:302 -+#: ../semanage/seobject.py:349 ../semanage/seobject.py:430 -+#: ../semanage/seobject.py:501 ../semanage/seobject.py:559 -+#: ../semanage/seobject.py:1090 ../semanage/seobject.py:1129 -+#: ../semanage/seobject.py:1204 ../semanage/seobject.py:1238 ++#: ../semanage/seobject.py:238 ++#: ../semanage/seobject.py:296 ++#: ../semanage/seobject.py:343 ++#: ../semanage/seobject.py:424 ++#: ../semanage/seobject.py:493 ++#: ../semanage/seobject.py:549 ++#: ../semanage/seobject.py:1080 ++#: ../semanage/seobject.py:1119 ++#: ../semanage/seobject.py:1188 ++#: ../semanage/seobject.py:1222 #, python-format msgid "Could not create a key for %s" msgstr "Невозможно создать ключ для %s" -#: ../semanage/seobject.py:242 ../semanage/seobject.py:300 -#: ../semanage/seobject.py:347 ../semanage/seobject.py:353 -+#: ../semanage/seobject.py:248 ../semanage/seobject.py:306 -+#: ../semanage/seobject.py:353 ../semanage/seobject.py:359 ++#: ../semanage/seobject.py:242 ++#: ../semanage/seobject.py:300 ++#: ../semanage/seobject.py:347 ++#: ../semanage/seobject.py:353 #, python-format msgid "Could not check if login mapping for %s is defined" msgstr "Невозможно проверить, определено ли сопоставление входа для %s" - --#: ../semanage/seobject.py:244 -+#: ../semanage/seobject.py:250 - #, python-format - msgid "Login mapping for %s is already defined" - msgstr "Сопоставление входа для %s уже определено" - --#: ../semanage/seobject.py:248 -+#: ../semanage/seobject.py:254 - #, python-format - msgid "Linux User %s does not exist" - msgstr "Linux пользователь %s не существует" - --#: ../semanage/seobject.py:252 -+#: ../semanage/seobject.py:258 - #, python-format +@@ -469,12 +485,14 @@ msgid "Could not create login mapping for %s" msgstr "Невозможно создать сопоставление входа для %s" -#: ../semanage/seobject.py:256 ../semanage/seobject.py:438 -+#: ../semanage/seobject.py:262 ../semanage/seobject.py:444 ++#: ../semanage/seobject.py:256 ++#: ../semanage/seobject.py:438 #, python-format msgid "Could not set name for %s" msgstr "Невозможно задать имя для %s" -#: ../semanage/seobject.py:261 ../semanage/seobject.py:448 -+#: ../semanage/seobject.py:267 ../semanage/seobject.py:454 ++#: ../semanage/seobject.py:261 ++#: ../semanage/seobject.py:448 #, python-format msgid "Could not set MLS range for %s" msgstr "Невозможно задать диапазон MLS для %s" - --#: ../semanage/seobject.py:265 -+#: ../semanage/seobject.py:271 - #, python-format +@@ -484,19 +502,28 @@ msgid "Could not set SELinux user for %s" msgstr "Невозможно задать пользователя SELinux для %s" @@ -65015,602 +64663,357 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ru.po policycoreutils -#: ../semanage/seobject.py:931 ../semanage/seobject.py:963 -#: ../semanage/seobject.py:1060 ../semanage/seobject.py:1103 -#: ../semanage/seobject.py:1135 ../semanage/seobject.py:1206 --#: ../semanage/seobject.py:1238 -+#: ../semanage/seobject.py:275 ../semanage/seobject.py:327 -+#: ../semanage/seobject.py:365 ../semanage/seobject.py:470 -+#: ../semanage/seobject.py:536 ../semanage/seobject.py:575 -+#: ../semanage/seobject.py:702 ../semanage/seobject.py:744 -+#: ../semanage/seobject.py:773 ../semanage/seobject.py:900 -+#: ../semanage/seobject.py:941 ../semanage/seobject.py:973 -+#: ../semanage/seobject.py:1070 ../semanage/seobject.py:1113 -+#: ../semanage/seobject.py:1145 ../semanage/seobject.py:1222 -+#: ../semanage/seobject.py:1254 ++#: ../semanage/seobject.py:269 ++#: ../semanage/seobject.py:321 ++#: ../semanage/seobject.py:359 ++#: ../semanage/seobject.py:463 ++#: ../semanage/seobject.py:526 ++#: ../semanage/seobject.py:565 ++#: ../semanage/seobject.py:692 ++#: ../semanage/seobject.py:734 ++#: ../semanage/seobject.py:763 ++#: ../semanage/seobject.py:890 ++#: ../semanage/seobject.py:931 ++#: ../semanage/seobject.py:963 ++#: ../semanage/seobject.py:1060 ++#: ../semanage/seobject.py:1103 ++#: ../semanage/seobject.py:1135 ++#: ../semanage/seobject.py:1206 + #: ../semanage/seobject.py:1238 msgid "Could not start semanage transaction" msgstr "Невозможно начать semanage транзакцию" -#: ../semanage/seobject.py:273 ../semanage/seobject.py:277 -+#: ../semanage/seobject.py:279 ../semanage/seobject.py:283 ++#: ../semanage/seobject.py:273 ++#: ../semanage/seobject.py:277 #, python-format msgid "Could not add login mapping for %s" msgstr "Невозможно добавить сопоставление входа для %s" - --#: ../semanage/seobject.py:292 -+#: ../semanage/seobject.py:298 +@@ -505,7 +532,8 @@ msgid "Requires seuser or serange" msgstr "Необходим seuser или serange" -#: ../semanage/seobject.py:302 ../semanage/seobject.py:349 -+#: ../semanage/seobject.py:308 ../semanage/seobject.py:355 ++#: ../semanage/seobject.py:302 ++#: ../semanage/seobject.py:349 #, python-format msgid "Login mapping for %s is not defined" msgstr "Сопоставление входа для %s не определено" - --#: ../semanage/seobject.py:306 -+#: ../semanage/seobject.py:312 - #, python-format +@@ -515,7 +543,8 @@ msgid "Could not query seuser for %s" msgstr "Невозможно запросить seuser для %s" -#: ../semanage/seobject.py:325 ../semanage/seobject.py:329 -+#: ../semanage/seobject.py:331 ../semanage/seobject.py:335 ++#: ../semanage/seobject.py:325 ++#: ../semanage/seobject.py:329 #, python-format msgid "Could not modify login mapping for %s" msgstr "Невозможно изменить сопоставление входа для %s" - --#: ../semanage/seobject.py:355 -+#: ../semanage/seobject.py:361 +@@ -523,10 +552,10 @@ + #: ../semanage/seobject.py:355 #, python-format msgid "Login mapping for %s is defined in policy, cannot be deleted" - msgstr "" - "Сопоставление входа для %s определено в политике и не может быть удалено" +-msgstr "" +-"Сопоставление входа для %s определено в политике и не может быть удалено" ++msgstr "Сопоставление входа для %s определено в политике и не может быть удалено" -#: ../semanage/seobject.py:364 ../semanage/seobject.py:368 -+#: ../semanage/seobject.py:370 ../semanage/seobject.py:374 ++#: ../semanage/seobject.py:364 ++#: ../semanage/seobject.py:368 #, python-format msgid "Could not delete login mapping for %s" msgstr "Невозможно удалить сопоставление входа для %s" - --#: ../semanage/seobject.py:382 -+#: ../semanage/seobject.py:388 +@@ -535,8 +564,10 @@ msgid "Could not list login mappings" msgstr "Невозможно выполнить перечисление сопоставлений входа" -#: ../semanage/seobject.py:428 ../semanage/seobject.py:497 -#: ../semanage/seobject.py:553 ../semanage/seobject.py:559 -+#: ../semanage/seobject.py:434 ../semanage/seobject.py:505 -+#: ../semanage/seobject.py:563 ../semanage/seobject.py:569 ++#: ../semanage/seobject.py:428 ++#: ../semanage/seobject.py:497 ++#: ../semanage/seobject.py:553 ++#: ../semanage/seobject.py:559 #, python-format msgid "Could not check if SELinux user %s is defined" msgstr "Невозможно проверить, определен ли пользователь SELinux %s" - --#: ../semanage/seobject.py:430 -+#: ../semanage/seobject.py:436 - #, python-format - msgid "SELinux user %s is already defined" - msgstr "SELinux пользователь %s уже определен" - --#: ../semanage/seobject.py:434 -+#: ../semanage/seobject.py:440 - #, python-format - msgid "Could not create SELinux user for %s" - msgstr "Невозможно создать пользователя SELinux для %s" - --#: ../semanage/seobject.py:443 -+#: ../semanage/seobject.py:449 - #, python-format - msgid "Could not add role %s for %s" - msgstr "Невозможно добавить роль %s для %s" - --#: ../semanage/seobject.py:452 -+#: ../semanage/seobject.py:458 - #, python-format - msgid "Could not set MLS level for %s" - msgstr "Невозможно задать уровень MLS для %s" - --#: ../semanage/seobject.py:456 -+#: ../semanage/seobject.py:460 ../semanage/seobject.py:527 -+#, fuzzy, python-format -+msgid "Invalid prefix %s" -+msgstr "Недопустимое значение %s" -+ -+#: ../semanage/seobject.py:463 - #, python-format - msgid "Could not add prefix %s for %s" - msgstr "Невозможно добавить префикс %s для %s" - --#: ../semanage/seobject.py:459 -+#: ../semanage/seobject.py:466 - #, python-format +@@ -571,7 +602,8 @@ msgid "Could not extract key for %s" msgstr "Невозможно извлечь ключ для %s" -#: ../semanage/seobject.py:467 ../semanage/seobject.py:471 -+#: ../semanage/seobject.py:474 ../semanage/seobject.py:478 ++#: ../semanage/seobject.py:467 ++#: ../semanage/seobject.py:471 #, python-format msgid "Could not add SELinux user %s" msgstr "Невозможно добавить пользователя SELinux %s" - --#: ../semanage/seobject.py:487 -+#: ../semanage/seobject.py:495 - msgid "Requires prefix, roles, level or range" - msgstr "Необходим префикс, роль, уровень или диапазон" - --#: ../semanage/seobject.py:489 -+#: ../semanage/seobject.py:497 +@@ -584,7 +616,8 @@ msgid "Requires prefix or roles" msgstr "Необходим префикс или роль" -#: ../semanage/seobject.py:499 ../semanage/seobject.py:555 -+#: ../semanage/seobject.py:507 ../semanage/seobject.py:565 ++#: ../semanage/seobject.py:499 ++#: ../semanage/seobject.py:555 #, python-format msgid "SELinux user %s is not defined" msgstr "SELinux пользователь %s не определен" - --#: ../semanage/seobject.py:503 -+#: ../semanage/seobject.py:511 - #, python-format +@@ -594,7 +627,8 @@ msgid "Could not query user for %s" msgstr "Невозможно запросить пользователя %s" -#: ../semanage/seobject.py:530 ../semanage/seobject.py:534 -+#: ../semanage/seobject.py:540 ../semanage/seobject.py:544 ++#: ../semanage/seobject.py:530 ++#: ../semanage/seobject.py:534 #, python-format msgid "Could not modify SELinux user %s" msgstr "Невозможно изменить SELinux пользователя %s" - --#: ../semanage/seobject.py:561 -+#: ../semanage/seobject.py:571 - #, python-format +@@ -604,7 +638,8 @@ msgid "SELinux user %s is defined in policy, cannot be deleted" msgstr "SELinux пользователь %s определен в политике и не может быть удален" -#: ../semanage/seobject.py:569 ../semanage/seobject.py:573 -+#: ../semanage/seobject.py:579 ../semanage/seobject.py:583 ++#: ../semanage/seobject.py:569 ++#: ../semanage/seobject.py:573 #, python-format msgid "Could not delete SELinux user %s" msgstr "Невозможно удалить пользователя SELinux %s" - --#: ../semanage/seobject.py:585 -+#: ../semanage/seobject.py:595 - msgid "Could not list SELinux users" - msgstr "Невозможно выполнить перечисление пользователей SELinux" - --#: ../semanage/seobject.py:591 -+#: ../semanage/seobject.py:601 - #, python-format - msgid "Could not list roles for user %s" - msgstr "Невозможно выполнить перечисление ролей пользователя %s" - --#: ../semanage/seobject.py:625 -+#: ../semanage/seobject.py:635 - msgid "Protocol udp or tcp is required" - msgstr "Необходимо задание tcp или udp протокола" - --#: ../semanage/seobject.py:627 -+#: ../semanage/seobject.py:637 - msgid "Port is required" - msgstr "Необходимо значение порта" - --#: ../semanage/seobject.py:638 -+#: ../semanage/seobject.py:648 - #, python-format - msgid "Could not create a key for %s/%s" - msgstr "Невозможно создать ключ для %s/%s" - --#: ../semanage/seobject.py:649 -+#: ../semanage/seobject.py:659 +@@ -635,8 +670,10 @@ msgid "Type is required" msgstr "Требуется задание типа" -#: ../semanage/seobject.py:655 ../semanage/seobject.py:717 -#: ../semanage/seobject.py:751 ../semanage/seobject.py:757 -+#: ../semanage/seobject.py:665 ../semanage/seobject.py:727 -+#: ../semanage/seobject.py:761 ../semanage/seobject.py:767 ++#: ../semanage/seobject.py:655 ++#: ../semanage/seobject.py:717 ++#: ../semanage/seobject.py:751 ++#: ../semanage/seobject.py:757 #, python-format msgid "Could not check if port %s/%s is defined" msgstr "Невозможно проверить, определен ли порт %s/%s" - --#: ../semanage/seobject.py:657 -+#: ../semanage/seobject.py:667 - #, python-format - msgid "Port %s/%s already defined" - msgstr "Порт %s/%s уже определен" - --#: ../semanage/seobject.py:661 -+#: ../semanage/seobject.py:671 - #, python-format - msgid "Could not create port for %s/%s" - msgstr "Невозможно создать порт для %s/%s" - --#: ../semanage/seobject.py:667 -+#: ../semanage/seobject.py:677 - #, python-format - msgid "Could not create context for %s/%s" - msgstr "Невозможно создать контекст %s/%s" - --#: ../semanage/seobject.py:671 -+#: ../semanage/seobject.py:681 - #, fuzzy, python-format - msgid "Could not set user in port context for %s/%s" - msgstr "Невозможно задать пользователя в контексте порта для %s" - --#: ../semanage/seobject.py:675 -+#: ../semanage/seobject.py:685 - #, python-format - msgid "Could not set role in port context for %s/%s" - msgstr "Невозможно задать роль в контексте порта для %s/%s" - --#: ../semanage/seobject.py:679 -+#: ../semanage/seobject.py:689 - #, python-format - msgid "Could not set type in port context for %s/%s" - msgstr "Невозможно задать тип в контексте порта для %s/%s" - --#: ../semanage/seobject.py:684 -+#: ../semanage/seobject.py:694 - #, fuzzy, python-format - msgid "Could not set mls fields in port context for %s/%s" - msgstr "Невозможно задать поля mls в контексте порта для %s" - --#: ../semanage/seobject.py:688 -+#: ../semanage/seobject.py:698 - #, python-format +@@ -681,12 +718,14 @@ msgid "Could not set port context for %s/%s" msgstr "Невозможно задать контекст порта для %s/%s" -#: ../semanage/seobject.py:696 ../semanage/seobject.py:700 -+#: ../semanage/seobject.py:706 ../semanage/seobject.py:710 ++#: ../semanage/seobject.py:696 ++#: ../semanage/seobject.py:700 #, python-format msgid "Could not add port %s/%s" msgstr "Невозможно добавить порт %s/%s" -#: ../semanage/seobject.py:709 ../semanage/seobject.py:906 -+#: ../semanage/seobject.py:719 ../semanage/seobject.py:916 ++#: ../semanage/seobject.py:709 ++#: ../semanage/seobject.py:906 msgid "Requires setype or serange" msgstr "Необходим setype или serange" --#: ../semanage/seobject.py:711 -+#: ../semanage/seobject.py:721 +@@ -694,7 +733,8 @@ msgid "Requires setype" msgstr "Необходим setype" -#: ../semanage/seobject.py:719 ../semanage/seobject.py:753 -+#: ../semanage/seobject.py:729 ../semanage/seobject.py:763 ++#: ../semanage/seobject.py:719 ++#: ../semanage/seobject.py:753 #, python-format msgid "Port %s/%s is not defined" msgstr "Порт %s/%s не определен" - --#: ../semanage/seobject.py:723 -+#: ../semanage/seobject.py:733 - #, python-format +@@ -704,7 +744,8 @@ msgid "Could not query port %s/%s" msgstr "Невозможно запросить порт %s/%s" -#: ../semanage/seobject.py:738 ../semanage/seobject.py:742 -+#: ../semanage/seobject.py:748 ../semanage/seobject.py:752 ++#: ../semanage/seobject.py:738 ++#: ../semanage/seobject.py:742 #, python-format msgid "Could not modify port %s/%s" msgstr "Невозможно изменить порт %s/%s" - --#: ../semanage/seobject.py:759 -+#: ../semanage/seobject.py:769 - #, python-format +@@ -714,27 +755,34 @@ msgid "Port %s/%s is defined in policy, cannot be deleted" msgstr "Порт %s/%s определен в политике и не может быть удален" -#: ../semanage/seobject.py:767 ../semanage/seobject.py:771 -+#: ../semanage/seobject.py:777 ../semanage/seobject.py:781 ++#: ../semanage/seobject.py:767 ++#: ../semanage/seobject.py:771 #, fuzzy, python-format msgid "Could not delete port %s/%s" msgstr "Невозможно удалить порт %s" -#: ../semanage/seobject.py:779 ../semanage/seobject.py:798 -+#: ../semanage/seobject.py:789 ../semanage/seobject.py:808 ++#: ../semanage/seobject.py:779 ++#: ../semanage/seobject.py:798 msgid "Could not list ports" msgstr "Невозможно выполнить перечисление портов" -#: ../semanage/seobject.py:842 ../semanage/seobject.py:1014 -+#: ../semanage/seobject.py:852 ../semanage/seobject.py:1024 ++#: ../semanage/seobject.py:842 ++#: ../semanage/seobject.py:1014 msgid "SELinux Type is required" msgstr "Требуется SELinux Type" -#: ../semanage/seobject.py:846 ../semanage/seobject.py:910 -#: ../semanage/seobject.py:947 ../semanage/seobject.py:1018 -+#: ../semanage/seobject.py:856 ../semanage/seobject.py:920 -+#: ../semanage/seobject.py:957 ../semanage/seobject.py:1028 ++#: ../semanage/seobject.py:846 ++#: ../semanage/seobject.py:910 ++#: ../semanage/seobject.py:947 ++#: ../semanage/seobject.py:1018 #, python-format msgid "Could not create key for %s" msgstr "Невозможно создать ключ для %s" -#: ../semanage/seobject.py:850 ../semanage/seobject.py:914 -#: ../semanage/seobject.py:951 ../semanage/seobject.py:957 -+#: ../semanage/seobject.py:860 ../semanage/seobject.py:924 -+#: ../semanage/seobject.py:961 ../semanage/seobject.py:967 ++#: ../semanage/seobject.py:850 ++#: ../semanage/seobject.py:914 ++#: ../semanage/seobject.py:951 ++#: ../semanage/seobject.py:957 #, python-format msgid "Could not check if interface %s is defined" msgstr "Невозможно проверить, определен ли интерфейс %s" - --#: ../semanage/seobject.py:852 -+#: ../semanage/seobject.py:862 - #, python-format - msgid "Interface %s already defined" - msgstr "Интерфейс %s уже определен" - --#: ../semanage/seobject.py:856 -+#: ../semanage/seobject.py:866 - #, python-format +@@ -749,7 +797,8 @@ msgid "Could not create interface for %s" msgstr "Невозможно создать интерфес для %s" -#: ../semanage/seobject.py:861 ../semanage/seobject.py:1033 -+#: ../semanage/seobject.py:871 ../semanage/seobject.py:1043 ++#: ../semanage/seobject.py:861 ++#: ../semanage/seobject.py:1033 #, python-format msgid "Could not create context for %s" msgstr "Невозможно создать контекст для %s" - --#: ../semanage/seobject.py:865 -+#: ../semanage/seobject.py:875 - #, python-format - msgid "Could not set user in interface context for %s" - msgstr "Невозможно задать пользователя в контексте интерфейса для %s" - --#: ../semanage/seobject.py:869 -+#: ../semanage/seobject.py:879 - #, python-format - msgid "Could not set role in interface context for %s" - msgstr "Невозможно задать роль в контексте интерфейса для %s" - --#: ../semanage/seobject.py:873 -+#: ../semanage/seobject.py:883 - #, python-format - msgid "Could not set type in interface context for %s" - msgstr "Невозможно задать тип в контексте интерфейса для %s." - --#: ../semanage/seobject.py:878 -+#: ../semanage/seobject.py:888 - #, python-format - msgid "Could not set mls fields in interface context for %s" - msgstr "Невозможно задать поля mls в контексте интерфейса для %s" - --#: ../semanage/seobject.py:882 -+#: ../semanage/seobject.py:892 - #, python-format - msgid "Could not set interface context for %s" - msgstr "Невозможно задать контекст интерфейса для %s" - --#: ../semanage/seobject.py:886 -+#: ../semanage/seobject.py:896 - #, python-format +@@ -784,12 +833,14 @@ msgid "Could not set message context for %s" msgstr "Невозможно задать контекст сообщения для %s" -#: ../semanage/seobject.py:894 ../semanage/seobject.py:898 -+#: ../semanage/seobject.py:904 ../semanage/seobject.py:908 ++#: ../semanage/seobject.py:894 ++#: ../semanage/seobject.py:898 #, python-format msgid "Could not add interface %s" msgstr "Невозможно добавить интерфейс %s" -#: ../semanage/seobject.py:916 ../semanage/seobject.py:953 -+#: ../semanage/seobject.py:926 ../semanage/seobject.py:963 ++#: ../semanage/seobject.py:916 ++#: ../semanage/seobject.py:953 #, python-format msgid "Interface %s is not defined" msgstr "Интерфейс %s yt определен" - --#: ../semanage/seobject.py:920 -+#: ../semanage/seobject.py:930 - #, python-format +@@ -799,7 +850,8 @@ msgid "Could not query interface %s" msgstr "Невозможно запросить интерфейс %s" -#: ../semanage/seobject.py:935 ../semanage/seobject.py:939 -+#: ../semanage/seobject.py:945 ../semanage/seobject.py:949 ++#: ../semanage/seobject.py:935 ++#: ../semanage/seobject.py:939 #, python-format msgid "Could not modify interface %s" msgstr "Невозможно изменить интерфейс %s" - --#: ../semanage/seobject.py:959 -+#: ../semanage/seobject.py:969 - #, python-format +@@ -809,7 +861,8 @@ msgid "Interface %s is defined in policy, cannot be deleted" msgstr "Интерфейс %s определен в политике и не может быть удален" -#: ../semanage/seobject.py:967 ../semanage/seobject.py:971 -+#: ../semanage/seobject.py:977 ../semanage/seobject.py:981 ++#: ../semanage/seobject.py:967 ++#: ../semanage/seobject.py:971 #, python-format msgid "Could not delete interface %s" msgstr "Невозможно удалить интерфейс %s" - --#: ../semanage/seobject.py:979 -+#: ../semanage/seobject.py:989 +@@ -818,8 +871,10 @@ msgid "Could not list interfaces" msgstr "Невозможно выполнить перечисление интерфейсов" -#: ../semanage/seobject.py:1022 ../semanage/seobject.py:1084 -#: ../semanage/seobject.py:1123 ../semanage/seobject.py:1129 -+#: ../semanage/seobject.py:1032 ../semanage/seobject.py:1094 -+#: ../semanage/seobject.py:1133 ../semanage/seobject.py:1137 ++#: ../semanage/seobject.py:1022 ++#: ../semanage/seobject.py:1084 ++#: ../semanage/seobject.py:1123 ++#: ../semanage/seobject.py:1129 #, python-format msgid "Could not check if file context for %s is defined" msgstr "Невозможно проверить, определен ли контекст файла для %s" - --#: ../semanage/seobject.py:1024 -+#: ../semanage/seobject.py:1034 - #, python-format - msgid "File context for %s already defined" - msgstr "Контекст файла для %s уже определен" - --#: ../semanage/seobject.py:1028 -+#: ../semanage/seobject.py:1038 - #, python-format - msgid "Could not create file context for %s" - msgstr "Невозможно создать контекст файла для %s" - --#: ../semanage/seobject.py:1037 -+#: ../semanage/seobject.py:1047 - #, python-format - msgid "Could not set user in file context for %s" - msgstr "Невозможно задать пользователя в контексте файла для %s" - --#: ../semanage/seobject.py:1041 -+#: ../semanage/seobject.py:1051 - #, python-format - msgid "Could not set role in file context for %s" - msgstr "Невозможно задать роль в контексте файла для %s" - --#: ../semanage/seobject.py:1045 -+#: ../semanage/seobject.py:1055 - #, python-format - msgid "Could not set type in file context for %s" - msgstr "Невозможно задать тип в контексте файла для %s" - --#: ../semanage/seobject.py:1050 -+#: ../semanage/seobject.py:1060 - #, python-format - msgid "Could not set mls fields in file context for %s" - msgstr "Невозможно задать поля msl в контексте файла для %s" - --#: ../semanage/seobject.py:1056 -+#: ../semanage/seobject.py:1066 - #, python-format +@@ -859,7 +914,8 @@ msgid "Could not set file context for %s" msgstr "Невозможно задать контекст файла для %s" -#: ../semanage/seobject.py:1064 ../semanage/seobject.py:1068 -+#: ../semanage/seobject.py:1074 ../semanage/seobject.py:1078 ++#: ../semanage/seobject.py:1064 ++#: ../semanage/seobject.py:1068 #, python-format msgid "Could not add file context for %s" msgstr "Невозможно добавить контекст файла для %s" - --#: ../semanage/seobject.py:1076 -+#: ../semanage/seobject.py:1086 +@@ -868,7 +924,8 @@ msgid "Requires setype, serange or seuser" msgstr "Необходим setyp, serange или seuser" -#: ../semanage/seobject.py:1086 ../semanage/seobject.py:1125 -+#: ../semanage/seobject.py:1096 ../semanage/seobject.py:1141 ++#: ../semanage/seobject.py:1086 ++#: ../semanage/seobject.py:1125 #, python-format msgid "File context for %s is not defined" msgstr "Контекст файла для %s не определен" - --#: ../semanage/seobject.py:1090 -+#: ../semanage/seobject.py:1100 - #, python-format +@@ -878,7 +935,8 @@ msgid "Could not query file context for %s" msgstr "Невозможно запросить контекст файла для %s" -#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1111 -+#: ../semanage/seobject.py:1117 ../semanage/seobject.py:1121 ++#: ../semanage/seobject.py:1107 ++#: ../semanage/seobject.py:1111 #, python-format msgid "Could not modify file context for %s" msgstr "Невозможно изменить контекст файла для %s" - --#: ../semanage/seobject.py:1131 -+#: ../semanage/seobject.py:1139 - #, python-format +@@ -888,7 +946,8 @@ msgid "File context for %s is defined in policy, cannot be deleted" msgstr "Контекст файла для %s определен в политике и не может быть удален" -#: ../semanage/seobject.py:1139 ../semanage/seobject.py:1143 -+#: ../semanage/seobject.py:1149 ../semanage/seobject.py:1153 ++#: ../semanage/seobject.py:1139 ++#: ../semanage/seobject.py:1143 #, python-format msgid "Could not delete file context for %s" msgstr "Невозможно удалить контекст файла для %s" - --#: ../semanage/seobject.py:1151 -+#: ../semanage/seobject.py:1161 - msgid "Could not list file contexts" - msgstr "Невозможно выполнить перечисление контекстов файлов" - --#: ../semanage/seobject.py:1184 -+#: ../semanage/seobject.py:1165 -+#, fuzzy -+msgid "Could not list local file contexts" -+msgstr "Невозможно выполнить перечисление контекстов файлов" -+ -+#: ../semanage/seobject.py:1200 +@@ -901,13 +960,15 @@ msgid "Requires value" msgstr "Требуется значение" -#: ../semanage/seobject.py:1192 ../semanage/seobject.py:1226 --#: ../semanage/seobject.py:1232 -+#: ../semanage/seobject.py:1208 ../semanage/seobject.py:1242 -+#: ../semanage/seobject.py:1248 ++#: ../semanage/seobject.py:1192 ++#: ../semanage/seobject.py:1226 + #: ../semanage/seobject.py:1232 #, python-format msgid "Could not check if boolean %s is defined" msgstr "Невозможно проверить, определен ли переключатель %s" -#: ../semanage/seobject.py:1194 ../semanage/seobject.py:1228 -+#: ../semanage/seobject.py:1210 ../semanage/seobject.py:1244 ++#: ../semanage/seobject.py:1194 ++#: ../semanage/seobject.py:1228 #, python-format msgid "Boolean %s is not defined" msgstr "Переключатель %s не определен" - --#: ../semanage/seobject.py:1198 -+#: ../semanage/seobject.py:1214 - #, python-format +@@ -917,7 +978,8 @@ msgid "Could not query file context %s" msgstr "Невозможно запросить контекст файла %s" -#: ../semanage/seobject.py:1210 ../semanage/seobject.py:1214 -+#: ../semanage/seobject.py:1226 ../semanage/seobject.py:1230 ++#: ../semanage/seobject.py:1210 ++#: ../semanage/seobject.py:1214 #, python-format msgid "Could not modify boolean %s" msgstr "Невозможно изменить переключатель %s" - --#: ../semanage/seobject.py:1234 -+#: ../semanage/seobject.py:1250 - #, python-format +@@ -927,7 +989,8 @@ msgid "Boolean %s is defined in policy, cannot be deleted" msgstr "Переключатель %s не определен в политике и не может быть удален" -#: ../semanage/seobject.py:1242 ../semanage/seobject.py:1246 -+#: ../semanage/seobject.py:1258 ../semanage/seobject.py:1262 ++#: ../semanage/seobject.py:1242 ++#: ../semanage/seobject.py:1246 #, python-format msgid "Could not delete boolean %s" msgstr "Невозможно удалить переключатель %s" - --#: ../semanage/seobject.py:1254 -+#: ../semanage/seobject.py:1270 - msgid "Could not list booleans" - msgstr "Невозможно выполнить перечисление переключателей" - --#: ../audit2allow/audit2allow:179 -+#: ../audit2allow/audit2allow:183 - #, fuzzy, c-format - msgid "Generating type enforcment file: %s.te" - msgstr "Создается новый type enforcment файл: %s.te " - --#: ../audit2allow/audit2allow:184 -+#: ../audit2allow/audit2allow:188 - msgid "Compiling policy" - msgstr "Компиляция политики" - --#: ../audit2allow/audit2allow:195 -+#: ../audit2allow/audit2allow:199 - msgid "" - "\n" - "******************** IMPORTANT ***********************\n" -@@ -953,7 +968,7 @@ - "\n" - "******************** В А Ж Н О ***********************\n" - --#: ../audit2allow/audit2allow:196 -+#: ../audit2allow/audit2allow:200 - #, c-format - msgid "" - "In order to load this newly created policy package into the kernel,\n" -@@ -968,7 +983,7 @@ - "semodule -i %s.pp\n" - "\n" - --#: ../audit2allow/audit2allow:203 -+#: ../audit2allow/audit2allow:207 +@@ -972,3 +1035,4 @@ #, c-format msgid "Options Error: %s " msgstr "Ошибка параметров: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/si.po policycoreutils-1.32/po/si.po ++ +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/si.po policycoreutils-1.33.1/po/si.po --- nsapolicycoreutils/po/si.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/si.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/si.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -66750,9 +66153,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/si.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sk.po policycoreutils-1.32/po/sk.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sk.po policycoreutils-1.33.1/po/sk.po --- nsapolicycoreutils/po/sk.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/sk.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/sk.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -67968,9 +67371,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sk.po policycoreutils msgid "Options Error: %s " msgstr "Chyba volieb: %s" - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sl.po policycoreutils-1.32/po/sl.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sl.po policycoreutils-1.33.1/po/sl.po --- nsapolicycoreutils/po/sl.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/sl.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/sl.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -69110,9 +68513,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sl.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sq.po policycoreutils-1.32/po/sq.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sq.po policycoreutils-1.33.1/po/sq.po --- nsapolicycoreutils/po/sq.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/sq.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/sq.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -70252,9 +69655,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sq.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sr@Latn.po policycoreutils-1.32/po/sr@Latn.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sr@Latn.po policycoreutils-1.33.1/po/sr@Latn.po --- nsapolicycoreutils/po/sr@Latn.po 2006-09-01 22:32:12.000000000 -0400 -+++ policycoreutils-1.32/po/sr@Latn.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/sr@Latn.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -71401,9 +70804,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sr@Latn.po policycore #, c-format msgid "Options Error: %s " msgstr "Greška opcija: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sr.po policycoreutils-1.32/po/sr.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sr.po policycoreutils-1.33.1/po/sr.po --- nsapolicycoreutils/po/sr.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/sr.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/sr.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -72550,9 +71953,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sr.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Грешка опција: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sv.po policycoreutils-1.32/po/sv.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sv.po policycoreutils-1.33.1/po/sv.po --- nsapolicycoreutils/po/sv.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/sv.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/sv.po 2006-11-14 09:54:06.000000000 -0500 @@ -2,19 +2,19 @@ # Copyright (C) 2006 Christian Rose. # Christian Rose , 2006. @@ -73714,9 +73117,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/sv.po policycoreutils msgid "Options Error: %s " msgstr "Flaggfel: %s " - -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ta.po policycoreutils-1.32/po/ta.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ta.po policycoreutils-1.33.1/po/ta.po --- nsapolicycoreutils/po/ta.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ta.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ta.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: ta\n" @@ -74862,9 +74265,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ta.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "விருப்பங்கள் பிழை: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/te.po policycoreutils-1.32/po/te.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/te.po policycoreutils-1.33.1/po/te.po --- nsapolicycoreutils/po/te.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/te.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/te.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,12 +8,12 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -76010,9 +75413,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/te.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/th.po policycoreutils-1.32/po/th.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/th.po policycoreutils-1.33.1/po/th.po --- nsapolicycoreutils/po/th.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/th.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/th.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -77152,9 +76555,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/th.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/tr.po policycoreutils-1.32/po/tr.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/tr.po policycoreutils-1.33.1/po/tr.po --- nsapolicycoreutils/po/tr.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/tr.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/tr.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -78294,9 +77697,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/tr.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/uk.po policycoreutils-1.32/po/uk.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/uk.po policycoreutils-1.33.1/po/uk.po --- nsapolicycoreutils/po/uk.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/uk.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/uk.po 2006-11-14 09:54:06.000000000 -0500 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: policycoreutils\n" @@ -79446,9 +78849,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/uk.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "Помилка у аргументах: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ur.po policycoreutils-1.32/po/ur.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ur.po policycoreutils-1.33.1/po/ur.po --- nsapolicycoreutils/po/ur.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/ur.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/ur.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -80588,9 +79991,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/ur.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/vi.po policycoreutils-1.32/po/vi.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/vi.po policycoreutils-1.33.1/po/vi.po --- nsapolicycoreutils/po/vi.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/vi.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/vi.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -81730,9 +81133,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/vi.po policycoreutils #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zh_CN.po policycoreutils-1.32/po/zh_CN.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zh_CN.po policycoreutils-1.33.1/po/zh_CN.po --- nsapolicycoreutils/po/zh_CN.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/zh_CN.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/zh_CN.po 2006-11-14 09:54:06.000000000 -0500 @@ -12,7 +12,7 @@ msgstr "" "Project-Id-Version: zh_CN\n" @@ -82877,9 +82280,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zh_CN.po policycoreut #, c-format msgid "Options Error: %s " msgstr "选项错误: %s " -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zh_TW.po policycoreutils-1.32/po/zh_TW.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zh_TW.po policycoreutils-1.33.1/po/zh_TW.po --- nsapolicycoreutils/po/zh_TW.po 2006-10-17 12:04:56.000000000 -0400 -+++ policycoreutils-1.32/po/zh_TW.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/zh_TW.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: zh_TW\n" @@ -84020,9 +83423,9 @@ diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zh_TW.po policycoreut #, c-format msgid "Options Error: %s " msgstr "" -diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zu.po policycoreutils-1.32/po/zu.po +diff --exclude-from=exclude -N -u -r nsapolicycoreutils/po/zu.po policycoreutils-1.33.1/po/zu.po --- nsapolicycoreutils/po/zu.po 2006-09-01 22:32:13.000000000 -0400 -+++ policycoreutils-1.32/po/zu.po 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/po/zu.po 2006-11-14 09:54:06.000000000 -0500 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch index 4fe8d84..324808b 100644 --- a/policycoreutils-rhat.patch +++ b/policycoreutils-rhat.patch @@ -1,17 +1,4405 @@ -diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/newrole/newrole.c policycoreutils-1.32/newrole/newrole.c ---- nsapolicycoreutils/newrole/newrole.c 2006-09-29 11:50:09.000000000 -0400 -+++ policycoreutils-1.32/newrole/newrole.c 2006-11-07 11:47:21.000000000 -0500 -@@ -680,6 +680,7 @@ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/booleansPage.py policycoreutils-1.33.1/gui/booleansPage.py +--- nsapolicycoreutils/gui/booleansPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/booleansPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,247 @@ ++# ++# booleansPage.py - GUI for Booleans page in system-config-securitylevel ++# ++# Brent Fox ++# Dan Walsh ++# ++# Copyright 2006 Red Hat, Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++# ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import tempfile ++ ++INSTALLPATH='/usr/share/system-config-securitylevel' ++sys.path.append(INSTALLPATH) ++ ++from Conf import * ++import commands ++ENFORCING=0 ++PERMISSIVE=1 ++DISABLED=2 ++SELINUXDIR="/etc/selinux/" ++ ++## ++## I18N ++## ++PROGNAME="system-config-selinux" ++ ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class Translation: ++ def __init__(self): ++ self.translation={} ++ fd=open(INSTALLPATH + "/selinux.tbl","r") ++ lines=fd.readlines() ++ fd.close() ++ for i in lines: ++ try: ++ line=i.strip().split("_(\"") ++ key=line[0].strip() ++ category=line[1].split("\"")[0] ++ value=line[2].split("\"")[0] ++ self.translation[key]=(category,value) ++ except: ++ continue ++ ++ def get_category(self,key): ++ try: ++ return _(self.translation[key][0]) ++ except: ++ return _("Other") ++ ++ def get_value(self,key): ++ try: ++ return _(self.translation[key][1]) ++ except: ++ return key ++ ++class Modifier: ++ def __init__(self,name, on, save): ++ self.on=on ++ self.name=name ++ self.save=save ++ ++ def set(self,value): ++ self.on=value ++ self.save=True ++ ++ def isOn(self): ++ return self.on ++ ++class Boolean(Modifier): ++ def __init__(self,name, val, save=False): ++ Modifier.__init__(self,name, val, save) ++ ++class Modifiers: ++ def __init__(self,store): ++ self.modifiers={} ++ self.translation=Translation() ++ self.store=store ++ self.store.clear() ++ ++ def add(self,name,val): ++ if name == "targeted_policy": ++ return ++ category=self.translation.get_category(name) ++ if not self.modifiers.has_key(category): ++ self.modifiers[category]={} ++ iter=self.store.append(None) ++ self.modifiers[category]["iter"] = iter ++ self.store.set_value(iter, 1, category) ++ self.store.set_value(iter, 3, False) ++ ++ self.modifiers[category][name]=val; ++ iter=self.store.append(self.modifiers[category]["iter"]) ++ self.store.set_value(iter, 0, val.isOn()) ++ self.store.set_value(iter, 1, self.translation.get_value(name)) ++ self.store.set_value(iter, 2, name) ++ self.store.set_value(iter, 3, True) ++ ++ def set(self,name,val): ++ category=self.translation.get_category(name) ++ self.modifiers[category][name].set(val) ++ if self.isBoolean(name): ++ self.booleanDirty=True ++ ++ def isBoolean(self,name): ++ c=self.translation.get_category(name) ++ return isinstance(self.modifiers[c][name], Boolean) ++ ++ def get_booleans(self): ++ booleans={} ++ for c in self.modifiers.keys(): ++ for n in self.modifiers[c].keys(): ++ if isinstance(self.modifiers[c][n], Boolean): ++ booleans[n]=self.modifiers[c][n] ++ return booleans ++ ++ def save(self, boolconf): ++ if self.booleanDirty == True: ++ booleans=self.get_booleans() ++ setseboolS="/usr/sbin/setsebool -P " ++ for b in booleans.keys(): ++ if booleans[b].save==1: ++ setseboolS += "%s=%d " % (b, booleans[b].isOn()) ++ boolconf[b]=str(booleans[b].isOn()) ++ commands.getstatusoutput(setseboolS) ++ ++class booleansPage: ++ def __init__(self, xml, doDebug=None): ++ self.xml = xml ++ self.types=[] ++ self.selinuxsupport = True ++ self.translation = Translation() ++ self.typechanged = False ++ self.doDebug = doDebug ++ ++ # Bring in widgets from glade file. ++ self.typeHBox = xml.get_widget("typeHBox") ++ self.booleanSW = xml.get_widget("booleanSW") ++ self.booleansView = xml.get_widget("booleansView") ++ self.typeLabel = xml.get_widget("typeLabel") ++ self.modifySeparator = xml.get_widget("modifySeparator") ++ ++ listStore = gtk.ListStore(gobject.TYPE_STRING) ++ cell = gtk.CellRendererText() ++ ++ self.booleansStore = gtk.TreeStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gobject.TYPE_BOOLEAN) ++ self.booleansStore.set_sort_column_id(1, gtk.SORT_ASCENDING) ++ self.booleansView.set_model(self.booleansStore) ++ ++ checkbox = gtk.CellRendererToggle() ++ checkbox.connect("toggled", self.boolean_toggled) ++ col = gtk.TreeViewColumn('', checkbox, active = 0,visible=3) ++ col.set_fixed_width(20) ++ col.set_clickable(True) ++ self.booleansView.append_column(col) ++ ++ col = gtk.TreeViewColumn("", gtk.CellRendererText(), text=1) ++ self.booleansView.append_column(col) ++ self.refreshBooleans() ++ ++ def verify(self, message): ++ dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, ++ gtk.BUTTONS_YES_NO, ++ message) ++ dlg.set_position(gtk.WIN_POS_MOUSE) ++ dlg.show_all() ++ rc = dlg.run() ++ dlg.destroy() ++ return rc ++ ++ def loadBooleans(self): ++ booleansList=commands.getoutput("/usr/sbin/getsebool -a").split("\n") ++ for i in booleansList: ++ rec=i.split() ++ name=rec[0] ++ if rec[2]=="on" or rec[2]=="active": ++ on=1 ++ else: ++ on=0 ++ self.modifiers.add(name,Boolean(name,on)) ++ ++ def refreshBooleans(self): ++ self.modifiers=Modifiers(self.booleansStore) ++ self.loadBooleans() ++ ++ def boolean_toggled(self, widget, row): ++ if len(row) == 1: ++ return ++ iter = self.booleansStore.get_iter(row) ++ val = self.booleansStore.get_value(iter, 0) ++ key = self.booleansStore.get_value(iter, 2) ++ self.booleansStore.set_value(iter, 0 , not val) ++ self.modifiers.set(key, not val) ++ ++ def apply(self): ++ retval = 0 ++ ++ if self.selinuxsupport==False: ++ return retval ++ ++ type=self.getType() ++ ++ return retval ++ ++ def reloadPolicy(self): ++ dialog = gtk.MessageDialog (None, ++ gtk.DIALOG_DESTROY_WITH_PARENT | gtk.DIALOG_MODAL, ++ gtk.MESSAGE_WARNING, ++ gtk.BUTTONS_OK, ++ _("Reloading Policy. This may take a minute.")) ++ dialog.set_position(gtk.WIN_POS_MOUSE) ++ dialog.show () ++ dialog.get_toplevel().window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH)) ++ ++ while gtk.events_pending(): ++ gtk.main_iteration() ++ ++ command= "make -C %s/%s/src/policy reload" % (SELINUXDIR , self.getType()) ++ status=commands.getstatusoutput(command)[0] ++ dialog.destroy () ++ return status +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/fcontextPage.py policycoreutils-1.33.1/gui/fcontextPage.py +--- nsapolicycoreutils/gui/fcontextPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/fcontextPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,158 @@ ++## fcontextPage.py - show selinux mappings ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import seobject ++from semanagePage import *; ++from avc import context ++ ++## ++## I18N ++## ++PROGNAME="system-config-selinux" ++ ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class fcontextPage(semanagePage): ++ def __init__(self, xml): ++ semanagePage.__init__(self, xml, "fcontext", "File Context") ++ self.view = xml.get_widget("fcontextView") ++ self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) ++ self.view.set_model(self.store) ++# self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ ++ col = gtk.TreeViewColumn(_("File\nSpecification"), gtk.CellRendererText(), text=0) ++ col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) ++ col.set_fixed_width(250) ++ ++ col.set_sort_column_id(0) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("Selinux\nFile Context"), gtk.CellRendererText(), text=1) ++ ++ col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) ++ col.set_fixed_width(250) ++ col.set_sort_column_id(1) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("File\nType"), gtk.CellRendererText(), text=2) ++ col.set_sort_column_id(2) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ self.load() ++ self.fcontextEntry = xml.get_widget("fcontextEntry") ++ self.fcontextFileTypeCombo = xml.get_widget("fcontextFileTypeCombo") ++ liststore=self.fcontextFileTypeCombo.get_model() ++ for k in seobject.file_types: ++ if len(k) > 0 and k[0] != '-': ++ iter=liststore.append() ++ liststore.set_value(iter, 0, k) ++ iter = liststore.get_iter_first() ++ self.fcontextFileTypeCombo.set_active_iter(iter) ++ self.fcontextTypeEntry = xml.get_widget("fcontextTypeEntry") ++ self.fcontextMLSEntry = xml.get_widget("fcontextMLSEntry") ++ ++ def load(self): ++ self.fcontext=seobject.fcontextRecords() ++ fcon_list=self.fcontext.get_all() ++ self.store.clear() ++ for fcon in fcon_list: ++ iter=self.store.append() ++ self.store.set_value(iter, 0, fcon[0]) ++ self.store.set_value(iter, 2, fcon[1]) ++ if len(fcon) > 3: ++ rec="%s:%s:%s:%s " % (fcon[2], fcon[3],fcon[4], seobject.translate(fcon[5],False)) ++ else: ++ rec="<>" ++ self.store.set_value(iter, 1, rec) ++ self.view.get_selection().select_path ((0,)) ++ ++ def dialogInit(self): ++ store, iter = self.view.get_selection().get_selected() ++ self.fcontextEntry.set_text(store.get_value(iter, 0)) ++ self.fcontextEntry.set_sensitive(False) ++ scontext = store.get_value(iter, 1) ++ scon=context(scontext) ++ self.fcontextTypeEntry.set_text(scon.type) ++ self.fcontextMLSEntry.set_text(scon.mls) ++ type=store.get_value(iter, 2) ++ liststore=self.fcontextFileTypeCombo.get_model() ++ iter = liststore.get_iter_first() ++ while iter != None and liststore.get_value(iter,0) != type: ++ iter = liststore.iter_next(iter) ++ if iter != None: ++ self.fcontextFileTypeCombo.set_active_iter(iter) ++ self.fcontextFileTypeCombo.set_sensitive(False) ++ ++ def dialogClear(self): ++ self.fcontextEntry.set_text("") ++ self.fcontextEntry.set_sensitive(True) ++ self.fcontextFileTypeCombo.set_sensitive(True) ++ self.fcontextTypeEntry.set_text("") ++ self.fcontextMLSEntry.set_text("s0") ++ ++ def delete(self): ++ store, iter = self.view.get_selection().get_selected() ++ try: ++ fspec=store.get_value(iter, 0) ++ type=store.get_value(iter, 1) ++ self.fcontext.delete(fspec, type) ++ store.remove(iter) ++ self.view.get_selection().select_path ((0,)) ++ except ValueError, e: ++ self.error(e.args[0]) ++ ++ def add(self): ++ fspec=self.fcontextEntry.get_text().strip() ++ type=self.fcontextTypeEntry.get_text().strip() ++ mls=self.fcontextMLSEntry.get_text().strip() ++ list_model=self.fcontextFileTypeCombo.get_model() ++ iter = self.fcontextFileTypeCombo.get_active_iter() ++ ftype=list_model.get_value(iter,0) ++ ++ self.fcontext.add(fspec, type, ftype, mls) ++ ++ iter=self.store.append() ++ self.store.set_value(iter, 0, fspec) ++ self.store.set_value(iter, 2, ftype) ++ self.store.set_value(iter, 1, "system_u:object_r:%s:%s" % (type, mls)) ++ ++ def modify(self): ++ fspec=self.fcontextEntry.get_text().strip() ++ type=self.fcontextTypeEntry.get_text().strip() ++ mls=self.fcontextMLSEntry.get_text().strip() ++ list_model=self.fcontextFileTypeCombo.get_model() ++ iter = self.fcontextFileTypeCombo.get_active_iter() ++ ftype=list_model.get_value(iter,0) ++ self.fcontext.modify(fspec, type, ftype, mls, "") ++ ++ store, iter = self.view.get_selection().get_selected() ++ self.store.set_value(iter, 0, fspec) ++ self.store.set_value(iter, 2, ftype) ++ self.store.set_value(iter, 1, "system_u:object_r:%s:%s" % (type, mls)) +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/loginsPage.py policycoreutils-1.33.1/gui/loginsPage.py +--- nsapolicycoreutils/gui/loginsPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/loginsPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,161 @@ ++## loginsPage.py - show selinux mappings ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import seobject ++from semanagePage import *; ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class loginsPage(semanagePage): ++ def __init__(self, xml): ++ self.firstTime = False ++ semanagePage.__init__(self, xml, "logins", _("SELinux User Mapping")) ++ self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) ++ self.view.set_model(self.store) ++ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ col = gtk.TreeViewColumn(_("Login\nName"), gtk.CellRendererText(), text = 0) ++ col.set_sort_column_id(0) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("SELinux\nUser"), gtk.CellRendererText(), text = 1) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 2) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ self.load() ++ self.loginsNameEntry = xml.get_widget("loginsNameEntry") ++ self.loginsSelinuxUserCombo = xml.get_widget("loginsSelinuxUserCombo") ++ self.loginsMLSEntry = xml.get_widget("loginsMLSEntry") ++ ++ def load(self): ++ self.login = seobject.loginRecords() ++ dict = self.login.get_all() ++ keys = dict.keys() ++ keys.sort() ++ self.store.clear() ++ for k in keys: ++ iter = self.store.append() ++ self.store.set_value(iter, 0, k) ++ self.store.set_value(iter, 1, dict[k][0]) ++ self.store.set_value(iter, 2, seobject.translate(dict[k][1])) ++ self.view.get_selection().select_path ((0,)) ++ ++ def __dialogSetup(self): ++ if self.firstTime == True: ++ return ++ self.firstTime = True ++ liststore = gtk.ListStore(gobject.TYPE_STRING) ++ self.loginsSelinuxUserCombo.set_model(liststore) ++ cell = gtk.CellRendererText() ++ self.loginsSelinuxUserCombo.pack_start(cell, True) ++ self.loginsSelinuxUserCombo.add_attribute(cell, 'text', 0) ++ ++ selusers = seobject.seluserRecords().get_all() ++ keys = selusers.keys() ++ keys.sort() ++ for k in keys: ++ if k != "system_u": ++ self.loginsSelinuxUserCombo.append_text(k) ++ ++ iter = liststore.get_iter_first() ++ while liststore.get_value(iter,0) != "user_u": ++ iter = liststore.iter_next(iter) ++ self.loginsSelinuxUserCombo.set_active_iter(iter) ++ ++ def dialogInit(self): ++ self.__dialogSetup() ++ store, iter = self.view.get_selection().get_selected() ++ self.loginsNameEntry.set_text(store.get_value(iter, 0)) ++ self.loginsNameEntry.set_sensitive(False) ++ ++ self.loginsMLSEntry.set_text(store.get_value(iter, 2)) ++ seuser = store.get_value(iter, 1) ++ liststore = self.loginsSelinuxUserCombo.get_model() ++ iter = liststore.get_iter_first() ++ while iter != None and liststore.get_value(iter,0) != seuser: ++ iter = liststore.iter_next(iter) ++ if iter != None: ++ self.loginsSelinuxUserCombo.set_active_iter(iter) ++ ++ ++ def dialogClear(self): ++ self.__dialogSetup() ++ self.loginsNameEntry.set_text("") ++ self.loginsNameEntry.set_sensitive(True) ++ self.loginsMLSEntry.set_text("s0") ++ ++ def delete(self): ++ store, iter = self.view.get_selection().get_selected() ++ try: ++ login=store.get_value(iter, 0) ++ if login == "root" or login == "__default__": ++ raise ValueError(_("Login '%s' is required") % login) ++ ++ self.login.delete(login) ++ store.remove(iter) ++ self.view.get_selection().select_path ((0,)) ++ except ValueError, e: ++ self.error(e.args[0]) ++ ++ def add(self): ++ target=self.loginsNameEntry.get_text().strip() ++ serange=self.loginsMLSEntry.get_text().strip() ++ if serange == "": ++ serange="s0" ++ list_model=self.loginsSelinuxUserCombo.get_model() ++ iter = self.loginsSelinuxUserCombo.get_active_iter() ++ seuser = list_model.get_value(iter,0) ++ self.login.add(target, seuser, serange) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, target) ++ self.store.set_value(iter, 1, seuser) ++ self.store.set_value(iter, 2, seobject.translate(serange)) ++ ++ def modify(self): ++ target=self.loginsNameEntry.get_text().strip() ++ serange=self.loginsMLSEntry.get_text().strip() ++ if serange == "": ++ serange = "s0" ++ list_model = self.loginsSelinuxUserCombo.get_model() ++ iter = self.loginsSelinuxUserCombo.get_active_iter() ++ seuser=list_model.get_value(iter,0) ++ self.login.modify(target, seuser, serange) ++ store, iter = self.view.get_selection().get_selected() ++ self.store.set_value(iter, 0, target) ++ self.store.set_value(iter, 1, seuser) ++ self.store.set_value(iter, 2, seobject.translate(serange)) ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/Makefile policycoreutils-1.33.1/gui/Makefile +--- nsapolicycoreutils/gui/Makefile 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/Makefile 2006-11-14 10:27:04.000000000 -0500 +@@ -0,0 +1,20 @@ ++# Installation directories. ++PREFIX ?= ${DESTDIR}/usr ++SHAREDIR ?= $(PREFIX)/share/system-config-selinux ++ ++TARGETS= booleansPage.py portsPage.py fcontextPage.py loginsPage.py \ ++statusPage.py translationsPage.py semanagePage.py usersPage.py \ ++mappingsPage.py system-config-selinux.glade ++ ++all: $(TARGETS) system-config-selinux.py ++ ++install: all ++ -mkdir -p $(SHAREDIR) ++ install -m 755 system-config-selinux.py $(SHAREDIR) ++ install -m 644 $(TARGETS) $(SHAREDIR) ++ ++clean: ++ ++indent: ++ ++relabel: +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/mappingsPage.py policycoreutils-1.33.1/gui/mappingsPage.py +--- nsapolicycoreutils/gui/mappingsPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/mappingsPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,54 @@ ++## mappingsPage.py - show selinux mappings ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import seobject ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class loginsPage: ++ def __init__(self, xml): ++ self.xml = xml ++ self.view = xml.get_widget("mappingsView") ++ self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) ++ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ self.view.set_model(self.store) ++ self.login = loginRecords() ++ dict = self.login.get_all() ++ keys = dict.keys() ++ keys.sort() ++ for k in keys: ++ print "%-25s %-25s %-25s" % (k, dict[k][0], translate(dict[k][1])) ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/portsPage.py policycoreutils-1.33.1/gui/portsPage.py +--- nsapolicycoreutils/gui/portsPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/portsPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,170 @@ ++## portsPage.py - show selinux mappings ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import seobject ++from semanagePage import *; ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class portsPage(semanagePage): ++ def __init__(self, xml): ++ semanagePage.__init__(self, xml, "ports", "Network Port") ++ self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING , gobject.TYPE_STRING) ++ self.view.set_model(self.store) ++ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ col = gtk.TreeViewColumn(_("SELinux Port\nType"), gtk.CellRendererText(), text = 0) ++ col.set_sort_column_id(0) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ col = gtk.TreeViewColumn(_("Port"), gtk.CellRendererText(), text = 1) ++ col.set_sort_column_id(1) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ self.store.set_sort_func(1,self.sort_int, "") ++ ++ col = gtk.TreeViewColumn(_("Protocol"), gtk.CellRendererText(), text = 2) ++ col.set_sort_column_id(2) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ ++ col = gtk.TreeViewColumn(_("MLS/MCS\nLevel"), gtk.CellRendererText(), text = 3) ++ col.set_resizable(True) ++ col.set_sort_column_id(3) ++ self.view.append_column(col) ++ ++ self.load() ++ self.portsNameEntry = xml.get_widget("portsNameEntry") ++ self.portsProtocolCombo = xml.get_widget("portsProtocolCombo") ++ self.portsNumberEntry = xml.get_widget("portsNumberEntry") ++ self.portsMLSEntry = xml.get_widget("portsMLSEntry") ++ liststore = self.portsProtocolCombo.get_model() ++ iter = liststore.get_iter_first() ++ self.portsProtocolCombo.set_active_iter(iter) ++ ++ def sort_int(self, treemodel, iter1, iter2, user_data): ++ try: ++ p1 = int(treemodel.get_value(iter1,1)) ++ p2 = int(treemodel.get_value(iter1,1)) ++ if p1 > p2: ++ return 1 ++ if p1 == p2: ++ return 0 ++ return -1 ++ except: ++ return 0 ++ ++ def load(self): ++ self.port = seobject.portRecords() ++ dict = self.port.get_all() ++ keys = dict.keys() ++ keys.sort() ++ self.store.clear() ++ for k in keys: ++ iter = self.store.append() ++ if k[0] == k[1]: ++ self.store.set_value(iter, 1, k[0]) ++ else: ++ rec = "%s-%s" % k ++ self.store.set_value(iter, 1, rec) ++ self.store.set_value(iter, 0, dict[k][0]) ++ self.store.set_value(iter, 2, dict[k][1]) ++ self.store.set_value(iter, 3, dict[k][2]) ++ self.view.get_selection().select_path ((0,)) ++ ++ def dialogInit(self): ++ store, iter = self.view.get_selection().get_selected() ++ self.portsNumberEntry.set_text(store.get_value(iter, 1)) ++ self.portsNumberEntry.set_sensitive(False) ++ self.portsProtocolCombo.set_sensitive(False) ++ self.portsNameEntry.set_text(store.get_value(iter, 0)) ++ self.portsMLSEntry.set_text(store.get_value(iter, 3)) ++ protocol=store.get_value(iter, 2) ++ liststore=self.portsProtocolCombo.get_model() ++ iter = liststore.get_iter_first() ++ while iter != None and liststore.get_value(iter,0) != protocol: ++ iter = liststore.iter_next(iter) ++ if iter != None: ++ self.portsProtocolCombo.set_active_iter(iter) ++ ++ def dialogClear(self): ++ self.portsNumberEntry.set_text("") ++ self.portsNumberEntry.set_sensitive(True) ++ self.portsProtocolCombo.set_sensitive(True) ++ self.portsNameEntry.set_text("") ++ self.portsMLSEntry.set_text("s0") ++ ++ def delete(self): ++ store, iter = self.view.get_selection().get_selected() ++ port = store.get_value(iter, 1) ++ protocol = store.get_value(iter, 2) ++ try: ++ self.port.delete(port, protocol) ++ store.remove(iter) ++ self.view.get_selection().select_path ((0,)) ++ except ValueError, e: ++ self.error(e.args[0]) ++ ++ def add(self): ++ target = self.portsNameEntry.get_text().strip() ++ mls = self.portsMLSEntry.get_text().strip() ++ port_number = self.portsNumberEntry.get_text().strip() ++ if port_number == "": ++ port_number = "1" ++ list_model = self.portsProtocolCombo.get_model() ++ iter = self.portsProtocolCombo.get_active_iter() ++ protocol = list_model.get_value(iter,0) ++ self.port.add(port_number, protocol, mls, target) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, target) ++ self.store.set_value(iter, 1, port_number) ++ self.store.set_value(iter, 2, protocol) ++ self.store.set_value(iter, 3, mls) ++ ++ def modify(self): ++ target = self.portsNameEntry.get_text().strip() ++ mls = self.portsMLSEntry.get_text().strip() ++ port_number = self.portsNumberEntry.get_text().strip() ++ list_model = self.portsProtocolCombo.get_model() ++ iter = self.portsProtocolCombo.get_active_iter() ++ protocol = list_model.get_value(iter,0) ++ self.port.modify(port_number, protocol, mls, target) ++ store, iter = self.view.get_selection().get_selected() ++ self.store.set_value(iter, 0, target) ++ self.store.set_value(iter, 1, port_number) ++ self.store.set_value(iter, 2, protocol) ++ self.store.set_value(iter, 3, mls) ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/semanagePage.py policycoreutils-1.33.1/gui/semanagePage.py +--- nsapolicycoreutils/gui/semanagePage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/semanagePage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,103 @@ ++## semanagePage.py - show selinux mappings ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import seobject ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class semanagePage: ++ def __init__(self, xml, name, description): ++ self.xml = xml ++ self.view = xml.get_widget("%sView" % name) ++ self.dialog = xml.get_widget("%sDialog" % name) ++ self.view.connect("row_activated", self.rowActivated) ++ self.view.get_selection().connect("changed", self.itemSelected) ++ self.description = description; ++ ++ def itemSelected(self, args): ++ return ++ ++ def rowActivated(self, view, row, Column): ++ self.propertiesDialog() ++ ++ def verify(self, message): ++ dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, ++ gtk.BUTTONS_YES_NO, ++ message) ++ dlg.set_position(gtk.WIN_POS_MOUSE) ++ dlg.show_all() ++ rc = dlg.run() ++ dlg.destroy() ++ return rc ++ ++ def error(self, message): ++ dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR, ++ gtk.BUTTONS_CLOSE, ++ message) ++ dlg.set_position(gtk.WIN_POS_MOUSE) ++ dlg.show_all() ++ dlg.run() ++ dlg.destroy() ++ ++ def deleteDialog(self): ++ store, iter = self.view.get_selection().get_selected() ++ if self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(iter, 0)))) == gtk.RESPONSE_YES: ++ self.delete() ++ ++ def addDialog(self): ++ self.dialogClear() ++ self.dialog.set_title(_("Add SELinux %s" % self.description)) ++ ++ while self.dialog.run() == gtk.RESPONSE_OK: ++ try: ++ self.add() ++ break; ++ except ValueError, e: ++ self.error(e.args[0]) ++ self.dialog.hide() ++ ++ def propertiesDialog(self): ++ self.dialogInit() ++ self.dialog.set_title(_("Modify SELinux %s" % self.description)) ++ while self.dialog.run() == gtk.RESPONSE_OK: ++ try: ++ self.modify() ++ break; ++ except ValueError, e: ++ self.error(e.args[0]) ++ self.dialog.hide() ++ ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/statusPage.py policycoreutils-1.33.1/gui/statusPage.py +--- nsapolicycoreutils/gui/statusPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/statusPage.py 2006-11-14 10:46:46.000000000 -0500 +@@ -0,0 +1,231 @@ ++## statusPage.py - show selinux status ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import selinux ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import tempfile ++ ++INSTALLPATH = '/usr/share/system-config-selinux' ++sys.path.append(INSTALLPATH) ++ ++rhplPath = "/usr/lib/python%d.%d/site-packages/rhpl" % (sys.version_info[0], sys.version_info[1]) ++if not rhplPath in sys.path: ++ sys.path.append(rhplPath) ++ ++rhplPath = "/usr/lib64/python%d.%d/site-packages/rhpl" % (sys.version_info[0], sys.version_info[1]) ++if not rhplPath in sys.path: ++ sys.path.append(rhplPath) ++ ++from Conf import * ++import commands ++ENFORCING = 0 ++PERMISSIVE = 1 ++DISABLED = 2 ++modearray = ( "enforcing", "permissive", "disabled" ) ++ ++SELINUXDIR = "/etc/selinux/" ++RELABELFILE = "/.autorelabel" ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class statusPage: ++ def __init__(self, xml): ++ self.xml = xml ++ self.typechanged = False ++ self.needRelabel = False ++ ++ # Bring in widgets from glade file. ++ self.typeHBox = xml.get_widget("typeHBox") ++ self.selinuxTypeOptionMenu = xml.get_widget("selinuxTypeOptionMenu") ++ self.typeLabel = xml.get_widget("typeLabel") ++ self.modifySeparator = xml.get_widget("modifySeparator") ++ self.enabledOptionMenu = xml.get_widget("enabledOptionMenu") ++ self.currentOptionMenu = xml.get_widget("currentOptionMenu") ++ self.currentOptionMenu.set_active(self.get_current_mode()) ++ ++ if self.read_selinux_config() == None: ++ self.selinuxsupport = False ++ else: ++ self.enabledOptionMenu.connect("changed", self.enabled_changed) ++ # ++ # This line must come after read_selinux_config ++ # ++ self.selinuxTypeOptionMenu.connect("changed", self.typemenu_changed) ++ ++ self.typeLabel.set_mnemonic_widget(self.selinuxTypeOptionMenu) ++ # This line should always go last ++ self.dirty = False ++ ++ def setup_relabel(self): ++ fd = open(RELABELFILE,"w") ++ fd.close() ++ ++ def get_current_mode(self): ++ if selinux.is_selinux_enabled(): ++ if selinux.security_getenforce() > 0: ++ return ENFORCING ++ else: ++ return PERMISSIVE ++ else: ++ return DISABLED ++ ++ def set_current_mode(self,value): ++ if selinux.is_selinux_enabled(): ++ selinux.security_setenforce(value) ++ ++ def verify(self, message): ++ dlg = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, ++ gtk.BUTTONS_YES_NO, ++ message) ++ dlg.set_position(gtk.WIN_POS_MOUSE) ++ dlg.show_all() ++ rc = dlg.run() ++ dlg.destroy() ++ return rc ++ ++ def typemenu_changed(self, menu): ++ print "type changed" ++ self.dirty = True ++ type = self.getType() ++ if self.initialtype != type: ++ if self.inFirstboot == False and self.verify(_("Changing the policy type will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system. Do you wish to continue?")) == gtk.RESPONSE_NO: ++ menu.set_active(self.typeHistory) ++ return None ++ ++ self.needRelabel = True ++ ++ def enabled_changed(self, combo): ++ self.dirty = True ++ setting = combo.get_active() ++ ++ if setting < 2: ++ enabled = True ++ else: ++ enabled = False ++ ++ if self.initEnabled == DISABLED and enabled: ++ if self.verify(_("Changing to SELinux enabled will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system. Do you wish to continue?")) == gtk.RESPONSE_NO: ++ return None ++ ++ self.needRelabel = True ++ elif not enabled: ++ self.needRelabel = False ++ ++ self.typeLabel.set_sensitive(enabled) ++ self.selinuxTypeOptionMenu.set_sensitive(enabled) ++ ++ def read_selinux_config(self): ++ self.initialtype = "targeted" ++ self.initEnabled = DISABLED ++ self.types = [] ++ if os.access(SELINUXDIR, os.F_OK) == 0: ++ #File doesn't exist. return ++ return None ++ ++ self.conf = ConfShellVar(SELINUXDIR+"config") ++ self.conf.rcs = 1 ++ if self.conf.has_key("SELINUX"): ++ value = self.conf.vars["SELINUX"].upper().strip() ++ else: ++ value = "ENFORCING" ++ self.conf.vars["SELINUX"] = value ++ ++ if value == "ENFORCING": ++ self.initEnabled = ENFORCING ++ self.enabledOptionMenu.set_active(ENFORCING) ++ elif value == "PERMISSIVE": ++ self.initEnabled = PERMISSIVE ++ self.enabledOptionMenu.set_active(PERMISSIVE) ++ elif value == "DISABLED": ++ self.initEnabled = DISABLED ++ self.enabledOptionMenu.set_active(DISABLED) ++ ++ self.enabled_changed(self.enabledOptionMenu) ++ ++ if self.conf.has_key("SELINUXTYPE"): ++ self.initialtype = self.conf.vars["SELINUXTYPE"].strip() ++ else: ++ self.conf.vars["SELINUXTYPE"] = self.initialtype ++ ++ n = 0 ++ current = n ++ ++ for i in os.listdir(SELINUXDIR): ++ if os.path.isdir(SELINUXDIR+i) and os.path.isdir(SELINUXDIR+i+"/policy"): ++ self.types.append(i) ++ self.selinuxTypeOptionMenu.append_text(i) ++ if i == self.initialtype: ++ current = n ++ n = n+1 ++ self.selinuxTypeOptionMenu.set_active(current) ++ ++ return 0 ++ ++ def getType(self): ++ return self.types[self.selinuxTypeOptionMenu.get_active()] ++ ++ def apply(self): ++ retval = 0 ++ ++ if self.selinuxsupport == False: ++ return retval ++ ++ type = self.getType() ++ ++ if self.dirty == True: ++ enabled = self.enabledOptionMenu.get_active() ++ ++ self.conf["SELINUX"] = modearray[enabled] ++ if enabled == ENFORCING: ++ self.set_current_mode(1) ++ elif enabled == PERMISSIVE: ++ self.set_current_mode(0) ++ ++ self.conf["SELINUXTYPE"]=type ++ ++ if self.doDebug == False: ++ self.conf.write() ++ ++ if self.needRelabel: ++ if self.doDebug == False: ++ self.setup_relabel() ++ retval = 1 ++ else: ++ if os.access(RELABELFILE, os.F_OK) != 0 and self.doDebug == False: ++ os.unlink(RELABELFILE) ++ ++ return retval ++ ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/system-config-selinux.glade policycoreutils-1.33.1/gui/system-config-selinux.glade +--- nsapolicycoreutils/gui/system-config-selinux.glade 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/system-config-selinux.glade 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,2760 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ False ++ system-config-selinux ++ Copyright (c)2006 Red Hat, Inc. ++Copyright (c) 2006 Dan Walsh <dwalsh@redhat.com> ++ False ++ Daniel Walsh <dwalsh@redhat.com> ++ ++ translator-credits ++ system-config-selinux.png ++ ++ ++ ++ Add SELinux Login Mapping ++ GTK_WINDOW_TOPLEVEL ++ GTK_WIN_POS_NONE ++ False ++ True ++ False ++ True ++ False ++ False ++ GDK_WINDOW_TYPE_HINT_DIALOG ++ GDK_GRAVITY_NORTH_WEST ++ True ++ False ++ True ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_BUTTONBOX_END ++ ++ ++ ++ True ++ True ++ True ++ gtk-cancel ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -6 ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ gtk-ok ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -5 ++ ++ ++ ++ ++ 0 ++ False ++ True ++ GTK_PACK_END ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ 3 ++ 2 ++ False ++ 4 ++ 6 ++ ++ ++ ++ True ++ Login Name ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 0 ++ 1 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ SELinux User ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 1 ++ 2 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ MLS/MCS Range ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ True ++ False ++ True ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ fill ++ fill ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ ++ ++ 5 ++ True ++ True ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ Add SELinux Network Ports ++ GTK_WINDOW_TOPLEVEL ++ GTK_WIN_POS_NONE ++ False ++ True ++ False ++ True ++ False ++ False ++ GDK_WINDOW_TYPE_HINT_DIALOG ++ GDK_GRAVITY_NORTH_WEST ++ True ++ False ++ True ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_BUTTONBOX_END ++ ++ ++ ++ True ++ True ++ True ++ gtk-cancel ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -6 ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ gtk-ok ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -5 ++ ++ ++ ++ ++ 0 ++ False ++ True ++ GTK_PACK_END ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ 4 ++ 2 ++ False ++ 4 ++ 6 ++ ++ ++ ++ True ++ Port Number ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 0 ++ 1 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ Protocol ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 1 ++ 2 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ SELinux Type ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ True ++ tcp ++udp ++ False ++ True ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ fill ++ fill ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ ++ ++ ++ True ++ MLS/MCS ++Level ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 3 ++ 4 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ ++ ++ 5 ++ True ++ True ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ Add SELinux Login Mapping ++ GTK_WINDOW_TOPLEVEL ++ GTK_WIN_POS_NONE ++ False ++ True ++ False ++ True ++ False ++ False ++ GDK_WINDOW_TYPE_HINT_DIALOG ++ GDK_GRAVITY_NORTH_WEST ++ True ++ False ++ True ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_BUTTONBOX_END ++ ++ ++ ++ True ++ True ++ True ++ gtk-cancel ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -6 ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ gtk-ok ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -5 ++ ++ ++ ++ ++ 0 ++ False ++ True ++ GTK_PACK_END ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ 2 ++ 2 ++ False ++ 4 ++ 6 ++ ++ ++ ++ True ++ SELinux MLS/MCS ++Level ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 0 ++ 1 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ Translation ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 1 ++ 2 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ 5 ++ True ++ True ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ Add SELinux Login Mapping ++ GTK_WINDOW_TOPLEVEL ++ GTK_WIN_POS_NONE ++ False ++ True ++ False ++ True ++ False ++ False ++ GDK_WINDOW_TYPE_HINT_DIALOG ++ GDK_GRAVITY_NORTH_WEST ++ True ++ False ++ True ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_BUTTONBOX_END ++ ++ ++ ++ True ++ True ++ True ++ gtk-cancel ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -6 ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ gtk-ok ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -5 ++ ++ ++ ++ ++ 0 ++ False ++ True ++ GTK_PACK_END ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ 4 ++ 2 ++ False ++ 4 ++ 6 ++ ++ ++ ++ True ++ File Specification ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 0 ++ 1 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ File Type ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 1 ++ 2 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ SELinux Type ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ True ++ all files ++regular file ++directory ++character device ++block device ++socket ++symbolic link ++named pipe ++ ++ False ++ True ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ fill ++ fill ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ ++ ++ ++ True ++ MLS ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 3 ++ 4 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ ++ ++ 5 ++ True ++ True ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ Add SELinux User ++ GTK_WINDOW_TOPLEVEL ++ GTK_WIN_POS_NONE ++ False ++ True ++ False ++ True ++ False ++ False ++ GDK_WINDOW_TYPE_HINT_DIALOG ++ GDK_GRAVITY_NORTH_WEST ++ True ++ False ++ True ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_BUTTONBOX_END ++ ++ ++ ++ True ++ True ++ True ++ gtk-cancel ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -6 ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ gtk-ok ++ True ++ GTK_RELIEF_NORMAL ++ True ++ -5 ++ ++ ++ ++ ++ 0 ++ False ++ True ++ GTK_PACK_END ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ 5 ++ 2 ++ False ++ 4 ++ 6 ++ ++ ++ ++ True ++ SELinux User ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 0 ++ 1 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ Label Prefix ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 1 ++ 2 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ MLS/MCS Range ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 3 ++ 4 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 3 ++ 4 ++ ++ ++ ++ ++ ++ ++ True ++ MLS/MCS Level ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 2 ++ 3 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 2 ++ 3 ++ ++ ++ ++ ++ ++ ++ True ++ SELinux Roles ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ 1 ++ 4 ++ 5 ++ fill ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 4 ++ 5 ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 0 ++ 1 ++ ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ True ++ 0 ++ ++ True ++ * ++ False ++ ++ ++ 1 ++ 2 ++ 1 ++ 2 ++ ++ ++ ++ ++ ++ 5 ++ True ++ True ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ 800 ++ 500 ++ GTK_WINDOW_TOPLEVEL ++ GTK_WIN_POS_NONE ++ False ++ True ++ False ++ system-config-selinux.png ++ True ++ False ++ False ++ GDK_WINDOW_TYPE_HINT_NORMAL ++ GDK_GRAVITY_NORTH_WEST ++ True ++ False ++ True ++ ++ ++ ++ True ++ True ++ ++ ++ ++ True ++ GTK_SHADOW_NONE ++ ++ ++ ++ True ++ GTK_PACK_DIRECTION_LTR ++ GTK_PACK_DIRECTION_LTR ++ ++ ++ ++ True ++ GNOMEUIINFO_MENU_FILE_TREE ++ ++ ++ ++ ++ ++ ++ True ++ GNOMEUIINFO_MENU_EXIT_ITEM ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ GNOMEUIINFO_MENU_HELP_TREE ++ ++ ++ ++ ++ ++ ++ True ++ GNOMEUIINFO_MENU_ABOUT_ITEM ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ BONOBO_DOCK_TOP ++ 0 ++ 0 ++ 0 ++ BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED ++ ++ ++ ++ ++ ++ True ++ True ++ ++ ++ ++ True ++ 0 ++ 0.5 ++ GTK_SHADOW_NONE ++ ++ ++ ++ True ++ 0.5 ++ 0.5 ++ 1 ++ 1 ++ 0 ++ 0 ++ 12 ++ 0 ++ ++ ++ ++ True ++ True ++ False ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Select:</b> ++ False ++ True ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ label_item ++ ++ ++ ++ ++ True ++ False ++ ++ ++ ++ ++ ++ True ++ False ++ False ++ GTK_POS_TOP ++ False ++ False ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ 0 ++ 0.5 ++ GTK_SHADOW_NONE ++ ++ ++ ++ True ++ 0.5 ++ 0.5 ++ 1 ++ 1 ++ 0 ++ 0 ++ 12 ++ 0 ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ Current ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 3 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ Enforcing ++Permissive ++Disabled ++ ++ False ++ True ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ True ++ System Default ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 6 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ Enforcing ++Permissive ++Disabled ++ ++ False ++ True ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Enforcement Mode</b> ++ False ++ True ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ label_item ++ ++ ++ ++ ++ 5 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ Policy Type: ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ 0 ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ ++ False ++ True ++ ++ ++ 0 ++ True ++ True ++ GTK_PACK_END ++ ++ ++ ++ ++ 9 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ 0 ++ 0.5 ++ GTK_SHADOW_NONE ++ ++ ++ ++ True ++ 0.5 ++ 0.5 ++ 1 ++ 1 ++ 0 ++ 0 ++ 12 ++ 0 ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ False ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ True ++ <b>Booleans</b> ++ False ++ True ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 5 ++ 3 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ label_item ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label37 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label38 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label39 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label41 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label40 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label42 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label43 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ ++ True ++ False ++ 0 ++ ++ ++ ++ True ++ GTK_ORIENTATION_HORIZONTAL ++ GTK_TOOLBAR_BOTH ++ True ++ True ++ ++ ++ ++ True ++ New File ++ gtk-add ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Open File ++ gtk-properties ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ Save File ++ gtk-delete ++ True ++ True ++ False ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ 0 ++ False ++ False ++ ++ ++ ++ ++ ++ True ++ True ++ GTK_POLICY_ALWAYS ++ GTK_POLICY_ALWAYS ++ GTK_SHADOW_NONE ++ GTK_CORNER_TOP_LEFT ++ ++ ++ ++ True ++ True ++ True ++ False ++ False ++ True ++ False ++ False ++ False ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ False ++ True ++ ++ ++ ++ ++ ++ True ++ label44 ++ False ++ False ++ GTK_JUSTIFY_LEFT ++ False ++ False ++ 0.5 ++ 0.5 ++ 0 ++ 0 ++ PANGO_ELLIPSIZE_NONE ++ -1 ++ False ++ 0 ++ ++ ++ tab ++ ++ ++ ++ ++ True ++ True ++ ++ ++ ++ ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ ++ True ++ True ++ True ++ ++ ++ 0 ++ True ++ True ++ ++ ++ ++ ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/system-config-selinux.py policycoreutils-1.33.1/gui/system-config-selinux.py +--- nsapolicycoreutils/gui/system-config-selinux.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/system-config-selinux.py 2006-11-14 11:02:17.000000000 -0500 +@@ -0,0 +1,163 @@ ++#!/usr/bin/python ++# ++# system-config-selinux.py - GUI for SELinux Config tool in system-config-selinux ++# ++# Dan Walsh ++# ++# Copyright 2006 Red Hat, Inc. ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++# ++import signal ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import gnome ++import sys ++import statusPage ++import booleansPage ++import loginsPage ++import usersPage ++import portsPage ++import fcontextPage ++import translationsPage ++## ++## I18N ++## ++PROGNAME="system-config-selinux" ++ ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++gnome.program_init("SELinux Management Tool", "5") ++ ++version = "1.0" ++ ++sys.path.append('/usr/share/system-config-selinux') ++ ++ ++ ++## ++## Pull in the Glade file ++## ++if os.access("system-config-selinux.glade", os.F_OK): ++ xml = gtk.glade.XML ("system-config-selinux.glade", domain=PROGNAME) ++else: ++ xml = gtk.glade.XML ("/usr/share/system-config-selinux/system-config-selinux.glade", domain=PROGNAME) ++ ++class childWindow: ++ def __init__(self): ++ self.tabs=[] ++ self.xml = xml ++ xml.signal_connect("on_quit_activate", self.destroy) ++ xml.signal_connect("on_delete_clicked", self.delete) ++ xml.signal_connect("on_add_clicked", self.add) ++ xml.signal_connect("on_properties_clicked", self.properties) ++ self.status_page=statusPage.statusPage(xml) ++ self.boolean_page=booleansPage.booleansPage(xml) ++ self.tabs.append(fcontextPage.fcontextPage(xml)) ++ self.tabs.append(loginsPage.loginsPage(xml)) ++ self.tabs.append(translationsPage.translationsPage(xml)) ++ self.tabs.append(usersPage.usersPage(xml)) ++ self.tabs.append(portsPage.portsPage(xml)) ++ self.tabs.append(None) # modules ++ self.tabs.append(None) # interfaces ++ ++ xml.signal_connect("on_quit_activate", self.destroy) ++ xml.signal_connect("on_policy_activate", self.policy) ++ xml.signal_connect("on_logging_activate", self.logging) ++ xml.signal_connect("on_about_activate", self.on_about_activate) ++ ++ def policy(self, args): ++ os.spawnl(os.P_NOWAIT, "/usr/share/system-config-selinux/semanagegui.py") ++ def logging(self, args): ++ os.spawnl(os.P_NOWAIT, "/usr/bin/seaudit") ++ ++ def delete(self, args): ++ self.tabs[self.notebook.get_current_page()].deleteDialog() ++ ++ def add(self, args): ++ self.tabs[self.notebook.get_current_page()].addDialog() ++ ++ def properties(self, args): ++ self.tabs[self.notebook.get_current_page()].propertiesDialog() ++ ++ def on_about_activate(self, args): ++ dlg = xml.get_widget ("aboutWindow") ++ dlg.run () ++ dlg.hide () ++ ++ def destroy(self, args): ++ gtk.main_quit() ++ ++ def itemSelected(self, selection): ++ store, rows = selection.get_selected_rows() ++ if store != None and len(rows) > 0: ++ self.notebook.set_current_page(rows[0][0]) ++ else: ++ self.notebook.set_current_page(0) ++ ++ ++ def setupScreen(self): ++ # Bring in widgets from glade file. ++ self.mainWindow = self.xml.get_widget("mainWindow") ++ self.notebook = self.xml.get_widget("notebook") ++ self.view = self.xml.get_widget("selectView") ++ self.view.get_selection().connect("changed", self.itemSelected) ++ self.store = gtk.ListStore(gobject.TYPE_STRING) ++ self.view.set_model(self.store) ++ col = gtk.TreeViewColumn("", gtk.CellRendererText(), text = 0) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("Setup")) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("File Contexts")) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("Linux to SELinux User Mappings")) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("Translations")) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("SELinux Users")) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("Network Ports")) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, _("Loaded Policy Modules")) ++ self.view.get_selection().select_path ((0,)) ++ ++ def stand_alone(self): ++ desktopName = _("Configue SELinux") ++ ++ self.setupScreen() ++ ++ self.mainWindow.connect("destroy", self.destroy) ++ ++ self.mainWindow.show_all() ++ gtk.main() ++ ++if __name__ == "__main__": ++ signal.signal (signal.SIGINT, signal.SIG_DFL) ++ ++ app = childWindow() ++ app.stand_alone() +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/translationsPage.py policycoreutils-1.33.1/gui/translationsPage.py +--- nsapolicycoreutils/gui/translationsPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/translationsPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,109 @@ ++## translationsPage.py - show selinux translations ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import seobject ++from semanagePage import *; ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class translationsPage(semanagePage): ++ def __init__(self, xml): ++ self.firstTime = False ++ semanagePage.__init__(self, xml, "translations", _("SELinux Level Translation")) ++ self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) ++ self.view.set_model(self.store) ++ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ col = gtk.TreeViewColumn(_("Sensitvity Level"), gtk.CellRendererText(), text = 0) ++ col.set_sort_column_id(0) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("Translation"), gtk.CellRendererText(), text = 1) ++ col.set_sort_column_id(1) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ ++ self.load() ++ self.translationsLevelEntry = xml.get_widget("translationsLevelEntry") ++ self.translationsEntry = xml.get_widget("translationsEntry") ++ ++ def load(self): ++ self.translation = seobject.setransRecords() ++ dict = self.translation.get_all() ++ keys = dict.keys() ++ keys.sort() ++ self.store.clear() ++ for k in keys: ++ iter = self.store.append() ++ self.store.set_value(iter, 0, k) ++ self.store.set_value(iter, 1, dict[k]) ++ self.view.get_selection().select_path ((0,)) ++ ++ def dialogInit(self): ++ store, iter = self.view.get_selection().get_selected() ++ self.translationsLevelEntry.set_text(store.get_value(iter, 0)) ++ self.translationsLevelEntry.set_sensitive(False) ++ self.translationsEntry.set_text(store.get_value(iter, 1)) ++ ++ def dialogClear(self): ++ self.translationsLevelEntry.set_text("") ++ self.translationsLevelEntry.set_sensitive(True) ++ self.translationsEntry.set_text("") ++ ++ def delete(self): ++ store, iter = self.view.get_selection().get_selected() ++ try: ++ level = store.get_value(iter, 0) ++ self.translation.delete(level) ++ store.remove(iter) ++ self.view.get_selection().select_path ((0,)) ++ except ValueError, e: ++ self.error(e.args[0]) ++ ++ def add(self): ++ level = self.translationsLevelEntry.get_text().strip() ++ translation = self.translationsEntry.get_text().strip() ++ self.translation.add(level, translation) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, level) ++ self.store.set_value(iter, 1, translation) ++ ++ def modify(self): ++ level = self.translationsLevelEntry.get_text().strip() ++ translation = self.translationsEntry.get_text().strip() ++ self.translation.modify(level, translation) ++ store, iter = self.view.get_selection().get_selected() ++ self.store.set_value(iter, 0, level) ++ self.store.set_value(iter, 1, translation) +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/gui/usersPage.py policycoreutils-1.33.1/gui/usersPage.py +--- nsapolicycoreutils/gui/usersPage.py 1969-12-31 19:00:00.000000000 -0500 ++++ policycoreutils-1.33.1/gui/usersPage.py 2006-11-14 09:54:05.000000000 -0500 +@@ -0,0 +1,155 @@ ++## usersPage.py - show selinux mappings ++## Copyright (C) 2006 Red Hat, Inc. ++ ++## This program is free software; you can redistribute it and/or modify ++## it under the terms of the GNU General Public License as published by ++## the Free Software Foundation; either version 2 of the License, or ++## (at your option) any later version. ++ ++## This program is distributed in the hope that it will be useful, ++## but WITHOUT ANY WARRANTY; without even the implied warranty of ++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++## GNU General Public License for more details. ++ ++## You should have received a copy of the GNU General Public License ++## along with this program; if not, write to the Free Software ++## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++## Author: Dan Walsh ++import string ++import gtk ++import gtk.glade ++import os ++import libxml2 ++import gobject ++import sys ++import seobject ++from semanagePage import *; ++ ++## ++## I18N ++## ++PROGNAME="policycoreutils" ++import gettext ++gettext.bindtextdomain(PROGNAME, "/usr/share/locale") ++gettext.textdomain(PROGNAME) ++try: ++ gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) ++except IOError: ++ import __builtin__ ++ __builtin__.__dict__['_'] = unicode ++ ++class usersPage(semanagePage): ++ def __init__(self, xml): ++ semanagePage.__init__(self, xml, "users", "User") ++ self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) ++ self.view.set_model(self.store) ++ self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) ++ ++ col = gtk.TreeViewColumn(_("SELinux\nUser"), gtk.CellRendererText(), text = 0) ++ col.set_sort_column_id(0) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ ++ col = gtk.TreeViewColumn(_("Labeling\nPrefix"), gtk.CellRendererText(), text = 1) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("MLS/\nMCS Level"), gtk.CellRendererText(), text = 2) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ col = gtk.TreeViewColumn(_("MLS/\nMCS Range"), gtk.CellRendererText(), text = 3) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ ++ col = gtk.TreeViewColumn(_("SELinux Roles"), gtk.CellRendererText(), text = 4) ++ col.set_resizable(True) ++ self.view.append_column(col) ++ ++ self.load() ++ self.selinuxUserEntry = xml.get_widget("selinuxUserEntry") ++ self.labelPrefixEntry = xml.get_widget("labelPrefixEntry") ++ self.mlsLevelEntry = xml.get_widget("mlsLevelEntry") ++ self.mlsRangeEntry = xml.get_widget("mlsRangeEntry") ++ self.selinuxRolesEntry = xml.get_widget("selinuxRolesEntry") ++ ++ def load(self): ++ self.user = seobject.seluserRecords() ++ dict = self.user.get_all() ++ keys = dict.keys() ++ keys.sort() ++ self.store.clear() ++ for k in keys: ++ iter = self.store.append() ++ self.store.set_value(iter, 0, k) ++ self.store.set_value(iter, 1, dict[k][0]) ++ self.store.set_value(iter, 2, seobject.translate(dict[k][1])) ++ self.store.set_value(iter, 3, seobject.translate(dict[k][2])) ++ self.store.set_value(iter, 4, dict[k][3]) ++ self.view.get_selection().select_path ((0,)) ++ ++ def delete(self): ++ if semanagePage.delete(self) == gtk.RESPONSE_NO: ++ return None ++ ++ def dialogInit(self): ++ store, iter = self.view.get_selection().get_selected() ++ self.selinuxUserEntry.set_text(store.get_value(iter, 0)) ++ self.selinuxUserEntry.set_sensitive(False) ++ self.labelPrefixEntry.set_text(store.get_value(iter, 1)) ++ self.mlsLevelEntry.set_text(store.get_value(iter, 2)) ++ self.mlsRangeEntry.set_text(store.get_value(iter, 3)) ++ self.selinuxRolesEntry.set_text(store.get_value(iter, 4)) ++ protocol=store.get_value(iter, 2) ++ ++ def dialogClear(self): ++ self.selinuxUserEntry.set_text("") ++ self.selinuxUserEntry.set_sensitive(True) ++ self.labelPrefixEntry.set_text("") ++ self.mlsLevelEntry.set_text("s0") ++ self.mlsRangeEntry.set_text("s0") ++ self.selinuxRolesEntry.set_text("") ++ ++ def add(self): ++ user = self.selinuxUserEntry.get_text() ++ prefix = self.labelPrefixEntry.get_text() ++ level = self.mlsLevelEntry.get_text() ++ range = self.mlsRangeEntry.get_text() ++ roles = self.selinuxRolesEntry.get_text() ++ ++ self.user.add(user, roles.split(), level, range, prefix) ++ iter = self.store.append() ++ self.store.set_value(iter, 0, user) ++ self.store.set_value(iter, 1, prefix) ++ self.store.set_value(iter, 2, level) ++ self.store.set_value(iter, 3, range) ++ self.store.set_value(iter, 4, roles) ++ ++ def modify(self): ++ user = self.selinuxUserEntry.get_text() ++ prefix = self.labelPrefixEntry.get_text() ++ level = self.mlsLevelEntry.get_text() ++ range = self.mlsRangeEntry.get_text() ++ roles = self.selinuxRolesEntry.get_text() ++ ++ self.user.modify(user, roles.split(), level, range, prefix) ++ store, iter = self.view.get_selection().get_selected() ++ iter = self.store.append() ++ self.store.set_value(iter, 0, user) ++ self.store.set_value(iter, 1, prefix) ++ self.store.set_value(iter, 2, level) ++ self.store.set_value(iter, 3, range) ++ self.store.set_value(iter, 4, roles) ++ ++ def delete(self): ++ store, iter = self.view.get_selection().get_selected() ++ try: ++ user=store.get_value(iter, 0) ++ if user == "root" or user == "user_u": ++ raise ValueError(_("SELinux user '%s' is required") % user) ++ ++ self.user.delete(user) ++ store.remove(iter) ++ self.view.get_selection().select_path ((0,)) ++ except ValueError, e: ++ self.error(e.args[0]) ++ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/Makefile policycoreutils-1.33.1/Makefile +--- nsapolicycoreutils/Makefile 2006-08-28 16:58:22.000000000 -0400 ++++ policycoreutils-1.33.1/Makefile 2006-11-14 09:54:05.000000000 -0500 +@@ -1,4 +1,4 @@ +-SUBDIRS=setfiles semanage load_policy newrole run_init restorecon 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 restorecon restorecond secon audit2allow audit2why scripts sestatus semodule_package semodule semodule_link semodule_expand semodule_deps setsebool po gui + + all install relabel clean indent: + @for subdir in $(SUBDIRS); do \ +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/newrole/newrole.c policycoreutils-1.33.1/newrole/newrole.c +--- nsapolicycoreutils/newrole/newrole.c 2006-11-14 09:46:12.000000000 -0500 ++++ policycoreutils-1.33.1/newrole/newrole.c 2006-11-14 09:55:30.000000000 -0500 +@@ -1028,6 +1028,7 @@ { fprintf(stderr, _("newrole: incorrect password for %s\n"), - pw->pw_name); + pw.pw_name); + send_audit_message(0, old_context, new_context, ttyn); - return (-1); + goto err_close_pam; } - /* If we reach here, then we have authenticated the user. */ -diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/restorecond/Makefile policycoreutils-1.32/restorecond/Makefile + +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/restorecond/Makefile policycoreutils-1.33.1/restorecond/Makefile --- nsapolicycoreutils/restorecond/Makefile 2006-08-28 16:58:19.000000000 -0400 -+++ policycoreutils-1.32/restorecond/Makefile 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/restorecond/Makefile 2006-11-14 09:54:05.000000000 -0500 @@ -5,8 +5,9 @@ INITDIR = $(DESTDIR)/etc/rc.d/init.d SELINUXDIR = $(DESTDIR)/etc/selinux @@ -24,9 +4412,9 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic LDLIBS += -lselinux -lsepol -L$(PREFIX)/lib all: restorecond -diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/restorecond/restorecond.conf policycoreutils-1.32/restorecond/restorecond.conf +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/restorecond/restorecond.conf policycoreutils-1.33.1/restorecond/restorecond.conf --- nsapolicycoreutils/restorecond/restorecond.conf 2006-08-28 16:58:19.000000000 -0400 -+++ policycoreutils-1.32/restorecond/restorecond.conf 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/restorecond/restorecond.conf 2006-11-14 09:54:05.000000000 -0500 @@ -2,5 +2,6 @@ /etc/samba/secrets.tdb /etc/mtab @@ -34,9 +4422,9 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic +/var/log/wtmp ~/public_html ~/.mozilla/plugins/libflashplayer.so -diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/scripts/genhomedircon.8 policycoreutils-1.32/scripts/genhomedircon.8 +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/scripts/genhomedircon.8 policycoreutils-1.33.1/scripts/genhomedircon.8 --- nsapolicycoreutils/scripts/genhomedircon.8 2006-08-28 16:58:19.000000000 -0400 -+++ policycoreutils-1.32/scripts/genhomedircon.8 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/scripts/genhomedircon.8 2006-11-14 09:54:05.000000000 -0500 @@ -45,35 +45,30 @@ .SH DESCRIPTION .PP @@ -90,9 +4478,9 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic .SH AUTHOR This manual page was originally written by .I Manoj Srivastava , -diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/semanage/semanage.8 policycoreutils-1.32/semanage/semanage.8 +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/semanage/semanage.8 policycoreutils-1.33.1/semanage/semanage.8 --- nsapolicycoreutils/semanage/semanage.8 2006-09-14 08:07:24.000000000 -0400 -+++ policycoreutils-1.32/semanage/semanage.8 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/semanage/semanage.8 2006-11-14 09:54:05.000000000 -0500 @@ -7,7 +7,7 @@ .br .B semanage login \-{a|d|m} [\-sr] login_name @@ -112,9 +4500,9 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic .I \-s, \-\-seuser SELinux user name .TP -diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-1.32/semanage/seobject.py +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/semanage/seobject.py policycoreutils-1.33.1/semanage/seobject.py --- nsapolicycoreutils/semanage/seobject.py 2006-10-17 12:04:55.000000000 -0400 -+++ policycoreutils-1.32/semanage/seobject.py 2006-11-07 11:47:21.000000000 -0500 ++++ policycoreutils-1.33.1/semanage/seobject.py 2006-11-14 09:54:05.000000000 -0500 @@ -456,7 +456,8 @@ rc = semanage_user_set_mlslevel(self.sh, u, selevel) if rc < 0: @@ -136,3 +4524,15 @@ diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolic if len(roles) != 0: for r in roles: +diff --exclude-from=exclude --exclude='*.po' --exclude='*.pot' -N -u -r nsapolicycoreutils/semodule_expand/semodule_expand.8 policycoreutils-1.33.1/semodule_expand/semodule_expand.8 +--- nsapolicycoreutils/semodule_expand/semodule_expand.8 2006-08-28 16:58:20.000000000 -0400 ++++ policycoreutils-1.33.1/semodule_expand/semodule_expand.8 2006-11-14 09:54:05.000000000 -0500 +@@ -18,7 +18,7 @@ + .SH "OPTIONS" + .TP + .B \-V +-verbose mode ++show version + .TP + .B \-c [version] + policy version to create diff --git a/policycoreutils.spec b/policycoreutils.spec index cc33aa9..e524bf7 100644 --- a/policycoreutils.spec +++ b/policycoreutils.spec @@ -4,11 +4,15 @@ %define libselinuxver 1.30.29-2 Summary: SELinux policy core utilities. Name: policycoreutils -Version: 1.32 -Release: 3 +Version: 1.33.1 +Release: 1 License: GPL Group: System Environment/Base Source: http://www.nsa.gov/selinux/archives/policycoreutils-%{version}.tgz +Source1: system-config-selinux.png +Source2: system-config-selinux.desktop +Source3: system-config-selinux.pam +Source4: system-config-selinux.console Patch: policycoreutils-rhat.patch Patch1: policycoreutils-po.patch @@ -52,16 +56,23 @@ mkdir -p %{buildroot}/sbin mkdir -p %{buildroot}%{_mandir}/man1 mkdir -p %{buildroot}%{_mandir}/man8 mkdir -p %{buildroot}%{_sysconfdir}/pam.d -make LOG_AUDIT_PRIV=y DESTDIR="%{buildroot}" LIBDIR="%{buildroot}%{_libdir}" install +mkdir -p %{buildroot}%{_sysconfdir}/security/console.apps +make LOG_AUDIT_PRIV=y DESTDIR="%{buildroot}" LIBDIR="%{buildroot}%{_libdir}" install +install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/system-config-selinux/ +install -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/pam.d/system-config-selinux +install -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/security/console.apps/system-config-selinux +ln -sf consolehelper %{buildroot}%{_bindir}/system-config-selinux + +desktop-file-install --vendor fedora \ + --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \ + --add-category X-Fedora \ + %{SOURCE2} %find_lang %{name} -%clean -rm -rf %{buildroot} - %package newrole Summary: newrole application for RBAC/MLS -Group: Development/Libraries +Group: System Environment/Base Requires: policycoreutils = %{version}-%{release} %description newrole @@ -72,6 +83,29 @@ or level of a logged in user. %{_bindir}/newrole %{_mandir}/man1/newrole.1.gz +%package gui +Summary: SELinux configuration GUI +Group: System Environment/Base +Requires: policycoreutils = %{version}-%{release} +Requires: gnome-python2, pygtk2, pygtk2-libglade, gnome-python2-canvas +Requires: usermode, rhpl +Requires: python >= 2.4 +BuildRequires: desktop-file-utils +Obsoletes: system-config-selinux + +%description gui +system-config-selinux is a utility for managing the SELinux environment + +%files gui +%{_bindir}/system-config-selinux +%{_datadir}/applications/fedora-system-config-selinux.desktop +%{_datadir}/system-config-selinux/ +%config(noreplace) %{_sysconfdir}/pam.d/system-config-selinux +%config(noreplace) %{_sysconfdir}/security/console.apps/system-config-selinux + +%clean +rm -rf %{buildroot} + %files -f %{name}.lang %defattr(-,root,root) /sbin/restorecon @@ -122,6 +156,7 @@ or level of a logged in user. %attr(755,root,root) /etc/rc.d/init.d/restorecond %config(noreplace) /etc/selinux/restorecond.conf + %preun if [ $1 -eq 0 ]; then /sbin/service restorecond stop > /dev/null 2>&1 @@ -133,6 +168,11 @@ fi [ -x /sbin/service ] && /sbin/service restorecond condrestart %changelog +* Tue Nov 14 2006 Dan Walsh 1.33.1-3 +- Update to upstream + * Merged newrole patch set from Michael Thompson. +- Add policycoreutils-gui + * Thu Nov 9 2006 Dan Walsh 1.32-3 - No longer requires rhpl diff --git a/sources b/sources index d579504..113ab7a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ebc0633aab2735c27a78e6c3f478143e policycoreutils-1.32.tgz +f1f63d519c9d1c80999790999a997020 policycoreutils-1.33.1.tgz diff --git a/system-config-selinux.console b/system-config-selinux.console new file mode 100644 index 0000000..42b48a3 --- /dev/null +++ b/system-config-selinux.console @@ -0,0 +1,3 @@ +USER=root +PROGRAM=/usr/share/system-config-selinux/system-config-selinux.py +SESSION=true diff --git a/system-config-selinux.desktop b/system-config-selinux.desktop new file mode 100644 index 0000000..6e224e7 --- /dev/null +++ b/system-config-selinux.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=SELinux Management +GenericName=SELinux +Comment=Configure SELinux in a graphical setting +StartupNotify=true +Icon=/usr/share/system-config-selinux/system-config-selinux.png +Exec=/usr/bin/system-config-selinux +Type=Application +Terminal=false +Encoding=UTF-8 +Categories=Application;SystemSetup;X-Red-Hat-Base; +X-Desktop-File-Install-Version=0.2 diff --git a/system-config-selinux.pam b/system-config-selinux.pam new file mode 100644 index 0000000..6a8c230 --- /dev/null +++ b/system-config-selinux.pam @@ -0,0 +1,8 @@ +#%PAM-1.0 +auth sufficient pam_rootok.so +auth sufficient pam_timestamp.so +auth include system-auth +session required pam_permit.so +session optional pam_xauth.so +session optional pam_timestamp.so +account required pam_permit.so diff --git a/system-config-selinux.png b/system-config-selinux.png new file mode 100644 index 0000000..68ffcb7 Binary files /dev/null and b/system-config-selinux.png differ