[policycoreutils/f20] Random fixes for sepolicy gui
Daniel J Walsh
dwalsh at fedoraproject.org
Tue Sep 3 21:17:04 UTC 2013
commit a81f5f5513978018dcda0ba9604ad06ea90d6892
Author: Dan Walsh <dwalsh at redhat.com>
Date: Tue Sep 3 17:16:29 2013 -0400
Random fixes for sepolicy gui
- Update Translations
policycoreutils-rhat.patch | 2014 +++++++++++++++++++++++++-------------------
policycoreutils.spec | 14 +-
2 files changed, 1175 insertions(+), 853 deletions(-)
---
diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch
index 18215f3..b8990aa 100644
--- a/policycoreutils-rhat.patch
+++ b/policycoreutils-rhat.patch
@@ -226889,10 +226889,10 @@ index 0000000..585b33c
+msgid "Boolean %s Allow Rules"
+msgstr ""
diff --git a/policycoreutils/po/ja.po b/policycoreutils/po/ja.po
-index 72ae12d..7b8f1c3 100644
+index 72ae12d..efd7f7f 100644
--- a/policycoreutils/po/ja.po
+++ b/policycoreutils/po/ja.po
-@@ -3,20 +3,20 @@
+@@ -3,20 +3,24 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
@@ -226904,10 +226904,14 @@ index 72ae12d..7b8f1c3 100644
-# Takuro Nagamoto <tnagamot at redhat.com>, 2006.
-# Tomoyuki KATO <tomo at dream.daynight.jp>, 2012.
+# hyuugabaru <hyu_gabaru at yahoo.co.jp>, 2007
++# hyuugabaru <hyu_gabaru at yahoo.co.jp>, 2007
+# Kiyoto Hashida <khashida at redhat.com>, 2008-2010,2012
+# makoto <makoto at fedoraproject.org>, 2008
++# makoto <makoto at fedoraproject.org>, 2008
+# noriko <noriko at fedoraproject.org>, 2012
-+# Noriko Mizumoto <noriko at redhat.com>, 2006, 2008, 2009
++# Noriko Mizumoto <noriko at redhat.com>, 2006,2008-2009
++# noriko <noriko at fedoraproject.org>, 2012
++# tnagamot <tnagamot at redhat.com>, 2006
+# tnagamot <tnagamot at redhat.com>, 2006
+# Tomoyuki KATO <tomo at dream.daynight.jp>, 2012-2013
msgid ""
@@ -226918,12 +226922,12 @@ index 72ae12d..7b8f1c3 100644
-"PO-Revision-Date: 2013-01-04 17:02+0000\n"
-"Last-Translator: dwalsh <dwalsh at redhat.com>\n"
+"POT-Creation-Date: 2013-07-10 16:36-0400\n"
-+"PO-Revision-Date: 2013-07-16 03:47+0000\n"
++"PO-Revision-Date: 2013-09-03 03:26+0000\n"
+"Last-Translator: Tomoyuki KATO <tomo at dream.daynight.jp>\n"
"Language-Team: Japanese <trans-ja at lists.fedoraproject.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-@@ -31,7 +31,7 @@ msgid ""
+@@ -31,7 +35,7 @@ msgid ""
" <args ...> are the arguments to that script."
msgstr "使い方: run_init <script> <args ...>\n ここで、 <script> に実行する init スクリプトの名前、\n <args ...> にそのスクリプトに対する引数を指定します。"
@@ -226932,7 +226936,7 @@ index 72ae12d..7b8f1c3 100644
#, c-format
msgid "failed to initialize PAM\n"
msgstr "PAM の初期化に失敗しました\n"
-@@ -80,7 +80,7 @@ msgstr "残念ながら、 run_init は SELinux カーネル上でしか使用
+@@ -80,7 +84,7 @@ msgstr "残念ながら、 run_init は SELinux カーネル上でしか使用
msgid "authentication failed.\n"
msgstr "認証に失敗しました。\n"
@@ -226941,7 +226945,7 @@ index 72ae12d..7b8f1c3 100644
#, c-format
msgid "Could not set exec context to %s.\n"
msgstr "exec コンテキストを %s に設定できませんでした。\n"
-@@ -133,7 +133,7 @@ msgstr "semanage トランザクションをコミットできませんでした
+@@ -133,7 +137,7 @@ msgstr "semanage トランザクションをコミットできませんでした
msgid "Semanage transaction not in progress"
msgstr "Semanage トランザクションは進行していません"
@@ -226950,7 +226954,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Could not list SELinux modules"
msgstr "SELinux のモジュール一覧を表示できませんでした"
-@@ -149,815 +149,830 @@ msgstr "バージョン"
+@@ -149,815 +153,830 @@ msgstr "バージョン"
msgid "Disabled"
msgstr "無効"
@@ -227978,7 +227982,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Description"
msgstr "説明"
-@@ -996,206 +1011,226 @@ msgstr "エラーが発生しました。シェルが有効ではありません
+@@ -996,206 +1015,226 @@ msgstr "エラーが発生しました。シェルが有効ではありません
msgid "Unable to clear environment\n"
msgstr "環境を消去できません\n"
@@ -228246,7 +228250,7 @@ index 72ae12d..7b8f1c3 100644
msgid "failed to exec shell\n"
msgstr "シェルの実行に失敗しました\n"
-@@ -1422,7 +1457,7 @@ msgstr "<b>制約したいアプリケーション、又はユーザーロール
+@@ -1422,7 +1461,7 @@ msgstr "<b>制約したいアプリケーション、又はユーザーロール
msgid "<b>Applications</b>"
msgstr "<b>アプリケーション</b>"
@@ -228255,7 +228259,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Standard Init Daemon"
msgstr "標準的な Init デーモン"
-@@ -1432,7 +1467,7 @@ msgid ""
+@@ -1432,7 +1471,7 @@ msgid ""
"requires a script in /etc/rc.d/init.d"
msgstr "標準的な Init デーモンは起動時に init スクリプト経由で開始されるデーモンです。通常、/etc/rc.d/init.d にスクリプトが必要です。"
@@ -228264,7 +228268,7 @@ index 72ae12d..7b8f1c3 100644
msgid "DBUS System Daemon"
msgstr "DBUS システムデーモン"
-@@ -1444,7 +1479,7 @@ msgstr "インターネットサービスデーモン (inetd)"
+@@ -1444,7 +1483,7 @@ msgstr "インターネットサービスデーモン (inetd)"
msgid "Internet Services Daemon are daemons started by xinetd"
msgstr "インタネットサービスデーモンは、xinetd で開始されるデーモンです"
@@ -228273,7 +228277,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Web Application/Script (CGI)"
msgstr "ウェブアプリケーション/スクリプト (CGI)"
-@@ -1453,7 +1488,7 @@ msgid ""
+@@ -1453,7 +1492,7 @@ msgid ""
"Web Applications/Script (CGI) CGI scripts started by the web server (apache)"
msgstr "ウェブアプリケーション/スクリプト (CGI) は、ウェブサーバー (apache) で開始される CGI スクリプトです"
@@ -228282,7 +228286,7 @@ index 72ae12d..7b8f1c3 100644
msgid "User Application"
msgstr "ユーザーアプリケーション"
-@@ -1463,7 +1498,7 @@ msgid ""
+@@ -1463,7 +1502,7 @@ msgid ""
"started by a user"
msgstr "ユーザーアプリケーションとは、ユーザーが開始して制約したいいずれかのアプリケーションです"
@@ -228291,7 +228295,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Sandbox"
msgstr "Sandbox"
-@@ -1538,7 +1573,8 @@ msgstr "root として実行中にこのユーザーをマシン管理のため
+@@ -1538,7 +1577,8 @@ msgstr "root として実行中にこのユーザーをマシン管理のため
msgid "<b>Enter name of application or user role:</b>"
msgstr "<b>アプリケーションかユーザーロールの名前を記入:</b>"
@@ -228301,7 +228305,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Name"
msgstr "名前"
-@@ -1754,75 +1790,75 @@ msgstr "<b>どのディレクトリで %s ポリシーを生成しますか?</b>
+@@ -1754,75 +1794,75 @@ msgstr "<b>どのディレクトリで %s ポリシーを生成しますか?</b>
msgid "Policy Directory"
msgstr "ポリシーディレクトリ"
@@ -228393,7 +228397,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Configue SELinux"
msgstr "SELinux の設定"
-@@ -1837,6 +1873,8 @@ msgid ""
+@@ -1837,6 +1877,8 @@ msgid ""
msgstr "SELinux ポート\nタイプ"
#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363
@@ -228402,7 +228406,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Protocol"
msgstr "プロトコル"
-@@ -1846,7 +1884,8 @@ msgid ""
+@@ -1846,7 +1888,8 @@ msgid ""
"Level"
msgstr "MLS/MCS\nレベル"
@@ -228412,7 +228416,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Port"
msgstr "ポート"
-@@ -1976,6 +2015,9 @@ msgid "SELinux Administration"
+@@ -1976,6 +2019,9 @@ msgid "SELinux Administration"
msgstr "SELinux の管理"
#: ../gui/system-config-selinux.glade:1122
@@ -228422,7 +228426,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Add"
msgstr "追加"
-@@ -2045,6 +2087,10 @@ msgstr "カスタム化と全てのブーリアンの間で切り替え"
+@@ -2045,6 +2091,10 @@ msgstr "カスタム化と全てのブーリアンの間で切り替え"
#: ../gui/system-config-selinux.glade:2467
#: ../gui/system-config-selinux.glade:2692
#: ../gui/system-config-selinux.glade:2867
@@ -228433,7 +228437,7 @@ index 72ae12d..7b8f1c3 100644
msgid "Filter"
msgstr "フィルター"
-@@ -2168,264 +2214,6 @@ msgstr "label59"
+@@ -2168,291 +2218,33 @@ msgstr "label59"
msgid "SELinux user '%s' is required"
msgstr "SELinux ユーザー '%s' が必要です"
@@ -228698,14 +228702,20 @@ index 72ae12d..7b8f1c3 100644
#: booleans.py:1
msgid ""
"Allow ABRT to modify public files used for public file transfer services."
-@@ -2437,16 +2225,16 @@ msgid ""
- msgstr "ABRT が ABRT イベントスクリプトを処理するために abrt_handle_event_t domain ドメインにおいて実行することを許可します。"
+-msgstr "ABRT がパブリックなファイル転送サービスのために使用されるパブリックなファイルを変更することを許可します。"
++msgstr "ABRT がパブリックなファイル転送サービスに使用されるパブリックなファイルを変更することを許可します。"
+
+ #: booleans.py:2
+ msgid ""
+ "Allow ABRT to run in abrt_handle_event_t domain to handle ABRT event scripts"
+-msgstr "ABRT が ABRT イベントスクリプトを処理するために abrt_handle_event_t domain ドメインにおいて実行することを許可します。"
++msgstr "ABRT が ABRT イベントスクリプトを処理するために abrt_handle_event_t domain ドメインで実行することを許可します。"
#: booleans.py:3
-msgid "Allow amavis to use JIT compiler"
-msgstr "amavis に対して JIT コンパイラーの使用を許可"
+msgid "Allow antivirus programs to read non security files on a system"
-+msgstr "ウイルス対策ソフトウェアがシステムにある非セキュリティファイルを読み込むことを許可する"
++msgstr "ウイルス対策ソフトウェアがシステムにある非セキュリティファイルを読み込むことを許可する。"
#: booleans.py:4
-msgid "Allow antivirus programs to read non security files on a system"
@@ -228716,16 +228726,23 @@ index 72ae12d..7b8f1c3 100644
#: booleans.py:5
msgid "Allow auditadm to exec content"
-msgstr ""
-+msgstr "auditadm がコンテンツを実行することを許可する"
++msgstr "auditadm がコンテンツを実行することを許可します。"
#: booleans.py:6
msgid ""
-@@ -2460,54 +2248,58 @@ msgstr "ユーザーが RADIUS サーバーを使用してログインするこ
+ "Allow users to resolve user passwd entries directly from ldap rather then "
+ "using a sssd server"
+-msgstr "sssd サーバーを介さず、 ldap から直接 user passwd のエントリをユーザーが解決できるようにする"
++msgstr "ユーザーが SSSD サーバーを介さず、直接 LDAP からユーザー passwd エントリを解決することを許可します。"
+
+ #: booleans.py:7
+ msgid "Allow users to login using a radius server"
+@@ -2460,1029 +2252,1835 @@ msgstr "ユーザーが RADIUS サーバーを使用してログインするこ
#: booleans.py:8
msgid "Allow users to login using a yubikey server"
-msgstr ""
-+msgstr "ユーザーが yubikey サーバーを使用してログインすることを許可する"
++msgstr "ユーザーが yubikey サーバーを使用してログインすることを許可します。"
#: booleans.py:9
-msgid "Allow awstats to purge Apache logs"
@@ -228740,14 +228757,14 @@ index 72ae12d..7b8f1c3 100644
-msgstr "各種コンテンツ (nfs、samba、脱着可能デバイス、ユーザーの一時ファイル、信頼できないコンテンツファイルなど) の読み込みを cdrecord に許可する"
+"Determine whether cdrecord can read various content. nfs, samba, removable "
+"devices, user temp and untrusted content files"
-+msgstr "cdrecord がさまざまな内容を読み込みできるかどうかを指定します。NFS、Samba、リムーバブルデバイス、ユーザーの一時領域および信頼できない内容のファイル。"
++msgstr "cdrecord がさまざまな内容を読み取りできるかどうかを指定します。NFS、Samba、リムーバブルデバイス、ユーザーの一時領域および信頼されていない内容のファイル。"
#: booleans.py:11
-msgid "Allow clamd to use JIT compiler"
-msgstr "clamd が JIT コンパイラーを使用することを許可します。"
+msgid ""
+"Allow cluster administrative domains to connect to the network using TCP."
-+msgstr "クラスター管理ドメインが TCP を使用してネットワークに接続することを許可する。"
++msgstr "クラスター管理ドメインが TCP を使用してネットワークに接続することを許可します。"
#: booleans.py:12
-msgid "Allow clamscan to non security files on a system"
@@ -228761,7 +228778,7 @@ index 72ae12d..7b8f1c3 100644
+msgid ""
+"Allow cluster administrative cluster domains memcheck-amd64- to use "
+"executable memory"
-+msgstr "クラスター管理ドメインの memcheck-amd64- が実行可能なメモリーを使用することを許可する。"
++msgstr "クラスター管理ドメインの memcheck-amd64- が実行可能なメモリーを使用することを許可します。"
#: booleans.py:14
msgid ""
@@ -228803,8 +228820,9 @@ index 72ae12d..7b8f1c3 100644
#: booleans.py:20
msgid ""
-@@ -2515,8 +2307,8 @@ msgid ""
- msgstr "ファイルのコンテキスト復元のため、 システムの cron ジョブによるファイルシステムの再ラベル付けを許可します。"
+ "Allow system cron jobs to relabel filesystem for restoring file contexts."
+-msgstr "ファイルのコンテキスト復元のため、 システムの cron ジョブによるファイルシステムの再ラベル付けを許可します。"
++msgstr "システムの cron ジョブがファイルのコンテキスト復元のため、ファイルシステムを再ラベル付けすることを許可します。"
#: booleans.py:21
-msgid "Allow cvs daemon to read shadow"
@@ -228814,8 +228832,18 @@ index 72ae12d..7b8f1c3 100644
#: booleans.py:22
msgid "Allow all daemons to write corefiles to /"
-@@ -2531,958 +2323,1760 @@ msgid "Allow all daemons the ability to read/write terminals"
- msgstr "すべてのデーモンが端末を読み書きすることを許可します"
+-msgstr "/ へのコアファイルの書き込みを全てのデーモンに許可する"
++msgstr "すべてのデーモンが / にコアファイルを書き込むことを許可します。"
+
+ #: booleans.py:23
+ msgid "Allow all daemons to use tcp wrappers."
+-msgstr "すべてのデーモンが tcp wrappers を使用することを許可します"
++msgstr "すべてのデーモンが tcp wrappers を使用することを許可します。"
+
+ #: booleans.py:24
+ msgid "Allow all daemons the ability to read/write terminals"
+-msgstr "すべてのデーモンが端末を読み書きすることを許可します"
++msgstr "すべてのデーモンが端末を読み書きすることを許可します。"
#: booleans.py:25
-msgid "Allow dan to manage user files"
@@ -228889,7 +228917,7 @@ index 72ae12d..7b8f1c3 100644
+msgid ""
+"Determine whether exim can create, read, write, and delete generic user "
+"content files."
-+msgstr "exim が一般的な内容のユーザーファイルを作成、読み込み、書き込み、および削除できるかどうかを"
++msgstr "exim が一般的な内容のユーザーファイルを作成、読み取り、書き込み、および削除できるかどうかを指定します。"
#: booleans.py:36
-msgid "Allow exim to connect to databases (postgres, mysql)"
@@ -228919,7 +228947,7 @@ index 72ae12d..7b8f1c3 100644
-msgid "Allow fenced domain to connect to the network using TCP."
-msgstr "隔離ドメインに対して TCP を使用したネットワークへの接続を許可します。"
+msgid "Allow all domains to execute in fips_mode"
-+msgstr "すべてのドメインが fips_mode で実行することを許可する"
++msgstr "すべてのドメインが fips_mode で実行することを許可します。"
#: booleans.py:41
-msgid "Allow fenced domain to execute ssh."
@@ -229040,7 +229068,7 @@ index 72ae12d..7b8f1c3 100644
-msgstr "gitisis デーモンによるメールの送信を許可"
+#: booleans.py:58
+msgid "Determine whether Gitosis can send mail."
-+msgstr "Gitosis がメールを送信できるかどうかを"
++msgstr "Gitosis がメールを送信できるかどうかを指定します。"
-#: booleans.py:60
+#: booleans.py:59
@@ -229051,11 +229079,11 @@ index 72ae12d..7b8f1c3 100644
+msgid ""
+"Allow glusterfsd to modify public files used for public file transfer "
+"services. Files/Directories must be labeled public_content_rw_t."
-+msgstr "パブリックファイル転送サービスに使用するパブリックファイルの変更を glusterfsd に対して許可します。 ファイルおよびディレクトリのラベルは public_content_rw_t でなければなりません。"
++msgstr "glusterfsd がパブリックファイル転送サービスに使用するパブリックファイルを変更することを許可します。 ファイルおよびディレクトリのラベルは public_content_rw_t でなければなりません。"
+
#: booleans.py:61
+msgid "Allow glusterfsd to share any file/directory read only."
-+msgstr "glusterfsd がすべてのファイル・ディレクトリを読み込み専用で共有することを許可します。"
++msgstr "glusterfsd がすべてのファイル・ディレクトリを読み取り専用で共有することを許可します。"
+
+#: booleans.py:62
+msgid "Allow glusterfsd to share any file/directory read/write."
@@ -229065,25 +229093,28 @@ index 72ae12d..7b8f1c3 100644
msgid ""
"Allow usage of the gpg-agent --write-env-file option. This also allows gpg-"
"agent to manage user files."
- msgstr "gpg-agent --write-env-file オプションの使用を許可します。 これにより、 gpg-agent によるユーザーファイルの管理も許可することになります。"
+-msgstr "gpg-agent --write-env-file オプションの使用を許可します。 これにより、 gpg-agent によるユーザーファイルの管理も許可することになります。"
++msgstr "gpg-agent --write-env-file オプションの使用を許可します。これにより、 gpg-agent によるユーザーファイルの管理も許可することになります。"
-#: booleans.py:62
+#: booleans.py:64
msgid ""
"Allow gpg web domain to modify public files used for public file transfer "
"services."
- msgstr "パブリックファイル転送サービスに使用されるパブリックファイルの変更を gpg web ドメインに対して許可します。"
+-msgstr "パブリックファイル転送サービスに使用されるパブリックファイルの変更を gpg web ドメインに対して許可します。"
++msgstr "gpg web ドメインがパブリックファイル転送サービスに使用されるパブリックファイルを変更することを許可します。"
-#: booleans.py:63
+#: booleans.py:65
msgid "Allow gssd to read temp directory. For access to kerberos tgt."
- msgstr "kerberos tgt にアクセスできるよう、 一時ディレクトリの読み取りを gssd に許可します。 "
+-msgstr "kerberos tgt にアクセスできるよう、 一時ディレクトリの読み取りを gssd に許可します。 "
++msgstr "gssd が kerberos tgt にアクセスするために、一時ディレクトリを読み取ることを許可します。"
-#: booleans.py:64
+#: booleans.py:66
msgid "Allow guest to exec content"
-msgstr ""
-+msgstr "guest がコンテンツを実行することを許可する"
++msgstr "ゲストがコンテンツを実行することを許可します。"
-#: booleans.py:65
+#: booleans.py:67
@@ -229091,7 +229122,7 @@ index 72ae12d..7b8f1c3 100644
"Allow Apache to modify public files used for public file transfer services. "
"Directories/Files must be labeled public_content_rw_t."
-msgstr "パブリックファイル転送さービスに使用されるパブリックファイルの変更を Apache に対して許可します。 ディレクトリおよびファイルのラベルは labeled public_content_rw_t にしなければなりません。"
-+msgstr "パブリックファイル転送サービスに使用されるパブリックファイルの変更を Apache に対して許可します。 ディレクトリおよびファイルのラベルは public_content_rw_t にしなければなりません。"
++msgstr "Apache がパブリックファイル転送サービスに使用されるパブリックファイルを変更することを許可します。ディレクトリおよびファイルのラベルは public_content_rw_t にする必要があります。"
-#: booleans.py:66
+#: booleans.py:68
@@ -229118,120 +229149,141 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:70
+#: booleans.py:72
+msgid "Allow http daemon to connect to mythtv"
-+msgstr ""
++msgstr "HTTP デーモンが mythtv に接続することを許可します。"
+
+#: booleans.py:73
msgid "Allow http daemon to connect to zabbix"
- msgstr "httpd デーモンが ZABBIX に接続することを許可します。"
+-msgstr "httpd デーモンが ZABBIX に接続することを許可します。"
++msgstr "HTTP デーモンが Zabbix に接続することを許可します。"
-#: booleans.py:71
+#: booleans.py:74
msgid "Allow HTTPD scripts and modules to connect to the network using TCP."
- msgstr "httpd スクリプトとモジュールが TCP を使用するネットワークに接続することを許可します。"
+-msgstr "httpd スクリプトとモジュールが TCP を使用するネットワークに接続することを許可します。"
++msgstr "httpd のスクリプトとモジュールが TCP を使用するネットワークに接続することを許可します。"
-#: booleans.py:72
+#: booleans.py:75
msgid ""
"Allow HTTPD scripts and modules to connect to cobbler over the network."
- msgstr "HTTPD のスクリプトおよびもジュールにネットワーク経由での cobbler への接続を許可します。"
+-msgstr "HTTPD のスクリプトおよびもジュールにネットワーク経由での cobbler への接続を許可します。"
++msgstr "https のスクリプトとモジュールがネットワーク経由で cobbler に接続することを許可します。"
-#: booleans.py:73
+#: booleans.py:76
msgid ""
"Allow HTTPD scripts and modules to connect to databases over the network."
- msgstr "HTTPD のスクリプトおよびモジュールにネットワーク経由でのデータベースへの接続を許可します。"
+-msgstr "HTTPD のスクリプトおよびモジュールにネットワーク経由でのデータベースへの接続を許可します。"
++msgstr "httpd のスクリプトとモジュールがネットワーク経由でデータベースに接続することを許可します。"
-#: booleans.py:74
+#: booleans.py:77
msgid "Allow httpd to connect to memcache server"
- msgstr "httpd が memcache サーバーに接続することを許可します"
+-msgstr "httpd が memcache サーバーに接続することを許可します"
++msgstr "httpd が memcache サーバーに接続することを許可します。"
-#: booleans.py:75
+#: booleans.py:78
msgid "Allow httpd to act as a relay"
- msgstr "httpd がリレーとして動作することを許可します"
+-msgstr "httpd がリレーとして動作することを許可します"
++msgstr "httpd がリレーとして動作することを許可します。"
-#: booleans.py:76
+#: booleans.py:79
msgid "Allow http daemon to send mail"
- msgstr "http デーモンがメールを送信することを許可します"
+-msgstr "http デーモンがメールを送信することを許可します"
++msgstr "HTTP デーモンがメールを送信することを許可します。"
-#: booleans.py:77
+#: booleans.py:80
msgid "Allow Apache to communicate with avahi service via dbus"
- msgstr "dbus を使った avahi サービスとの通信を Apache に許可"
+-msgstr "dbus を使った avahi サービスとの通信を Apache に許可"
++msgstr "Apache が dbus 経由で avahi サービスと通信することを許可します。"
-#: booleans.py:78
+#: booleans.py:81
msgid "Allow httpd cgi support"
- msgstr "httpd cgi サポートを許可"
+-msgstr "httpd cgi サポートを許可"
++msgstr "httpd cgi のサポートを許可します"
-#: booleans.py:79
+#: booleans.py:82
msgid "Allow httpd to act as a FTP server by listening on the ftp port."
- msgstr "httpd に ftp ポートでのリスニングをさせることで FTP サーバーとして動作できるよう許可します。"
+-msgstr "httpd に ftp ポートでのリスニングをさせることで FTP サーバーとして動作できるよう許可します。"
++msgstr "httpd が FTP ポートをリッスンして FTP サーバーとして動作することを許可します。"
-#: booleans.py:80
+#: booleans.py:83
msgid "Allow httpd to read home directories"
- msgstr "ホームディレクトリの読み取りを httpd に許可"
+-msgstr "ホームディレクトリの読み取りを httpd に許可"
++msgstr "httpd がホームディレクトリを読み取ることを許可します。"
-#: booleans.py:81
+#: booleans.py:84
msgid "Allow httpd scripts and modules execmem/execstack"
- msgstr "httpd のスクリプトおよびモジュールによる execmem/execstack の実行を許可"
+-msgstr "httpd のスクリプトおよびモジュールによる execmem/execstack の実行を許可"
++msgstr "httpd のスクリプトとモジュールが execmem/execstack を実行することを許可します。"
-#: booleans.py:82
+#: booleans.py:85
msgid "Allow HTTPD to connect to port 80 for graceful shutdown"
- msgstr "正しくシャットダウンするようポート 80 への HTTPD の接続を許可"
+-msgstr "正しくシャットダウンするようポート 80 への HTTPD の接続を許可"
++msgstr "HTTPD が正しくシャットダウンするよう 80 番ポートに接続することを許可します。"
-#: booleans.py:83
+#: booleans.py:86
msgid "Allow httpd processes to manage IPA content"
- msgstr "IPA コンテンツの管理を httpd プロセスに許可"
+-msgstr "IPA コンテンツの管理を httpd プロセスに許可"
++msgstr "httpd プロセスが IPA コンテンツを管理することを許可します。"
-#: booleans.py:84
+#: booleans.py:87
msgid "Allow Apache to use mod_auth_ntlm_winbind"
- msgstr "Apache が mod_auth_ntlm_winbind を使用することを許可します"
+-msgstr "Apache が mod_auth_ntlm_winbind を使用することを許可します"
++msgstr "Apache が mod_auth_ntlm_winbind を使用することを許可します。"
-#: booleans.py:85
+#: booleans.py:88
msgid "Allow Apache to use mod_auth_pam"
- msgstr "Apache が mod_auth_pam を使用することを許可します"
+-msgstr "Apache が mod_auth_pam を使用することを許可します"
++msgstr "Apache が mod_auth_pam を使用することを許可します。"
-#: booleans.py:86
+#: booleans.py:89
msgid "Allow httpd to read user content"
- msgstr "httpd がユーザーのコンテンツを読み取ることを許可します"
+-msgstr "httpd がユーザーのコンテンツを読み取ることを許可します"
++msgstr "httpd がユーザーのコンテンツを読み取ることを許可します。"
-#: booleans.py:87
+#: booleans.py:90
msgid "Allow Apache to run in stickshift mode, not transition to passenger"
- msgstr "パッセンジャーに移行することなく、 Apache が stickshift モードで実行できるよう許可"
+-msgstr "パッセンジャーに移行することなく、 Apache が stickshift モードで実行できるよう許可"
++msgstr "Apache がパッセンジャーに移行することなく、stickshift モードで実行することを許可します。"
-#: booleans.py:88
+#: booleans.py:91
+msgid "Allow HTTPD scripts and modules to server cobbler files."
-+msgstr "HTTPD スクリプトおよびモジュールが cobbler ファイルを処理することを許可します。"
++msgstr "HTTPD のスクリプトとモジュールが cobbler ファイルを処理することを許可します。"
+
+#: booleans.py:92
msgid "Allow httpd daemon to change its resource limits"
- msgstr "httpd デーモンによるリソースの制限の変更を許可"
+-msgstr "httpd デーモンによるリソースの制限の変更を許可"
++msgstr "httpd デーモンがリソースの制限を変更することを許可します。"
-#: booleans.py:89
+#: booleans.py:93
msgid ""
"Allow HTTPD to run SSI executables in the same domain as system CGI scripts."
- msgstr "HTTPD にシステム CGI スクリプトと同じドメイン内での SSI 実行ファイルの実行を許可"
+-msgstr "HTTPD にシステム CGI スクリプトと同じドメイン内での SSI 実行ファイルの実行を許可"
++msgstr "HTTPD がシステム CGI スクリプトと同じドメイン内で SSI 実行ファイルを実行することを許可します。"
-#: booleans.py:90
+#: booleans.py:94
msgid ""
"Allow apache scripts to write to public content, directories/files must be "
"labeled public_rw_content_t."
- msgstr "パブリックコンテンツへの書き込みを apache スクリプトに許可します。 ディレクトリおよびファイルのラベルは public_rw_content_t にする必要があります。"
+-msgstr "パブリックコンテンツへの書き込みを apache スクリプトに許可します。 ディレクトリおよびファイルのラベルは public_rw_content_t にする必要があります。"
++msgstr "Apache スクリプトがパブリックコンテンツに書き込むことを許可します。ディレクトリとファイルのラベルは public_rw_content_t にする必要があります。"
-#: booleans.py:91
+#: booleans.py:95
@@ -229295,14 +229347,15 @@ index 72ae12d..7b8f1c3 100644
-
#: booleans.py:103
-msgid "Allow confined applications to run with kerberos."
+-msgstr ""
+msgid "Allow httpd to connect to sasl"
- msgstr ""
++msgstr "httpd が SASL に接続することを許可します。"
#: booleans.py:104
-msgid "Allow syslogd daemon to send mail"
-msgstr "syslogd デーモンがメールを送信することを許可します。"
+msgid "Allow Apache to query NS records"
-+msgstr "Apache が NS レコードを問い合わせることを許可する"
++msgstr "Apache が NS レコードを問い合わせることを許可します。"
#: booleans.py:105
-msgid "Allow syslogd the ability to read/write terminals"
@@ -229331,7 +229384,7 @@ index 72ae12d..7b8f1c3 100644
-msgid "Allow mock to read files in home directories."
-msgstr ""
+msgid "Allow confined applications to run with kerberos."
-+msgstr "制限されたアプリケーションが Kerberos とともに動作することを許可する"
++msgstr "制限されたアプリケーションが Kerberos とともに動作することを許可します。"
#: booleans.py:109
-msgid "Allow the mount command to mount any directory or file."
@@ -229356,13 +229409,13 @@ index 72ae12d..7b8f1c3 100644
-msgid "Allow confined web browsers to read home directory content"
-msgstr ""
+msgid "Allow syslogd the ability to read/write terminals"
-+msgstr "syslogd が端末を読み書きすることを許可する"
++msgstr "syslogd が端末を読み書きすることを許可します。"
#: booleans.py:113
-msgid "Allow mplayer executable stack"
-msgstr "mplayer の実行ファイルスタックを許可する"
+msgid "Allow logging in and using the system from /dev/console."
-+msgstr "/dev/console からログインしてシステムを使用することを許可する"
++msgstr "/dev/console からログインしてシステムを使用することを許可します。"
#: booleans.py:114
-msgid "Allow mysqld to connect to all ports"
@@ -229409,35 +229462,37 @@ index 72ae12d..7b8f1c3 100644
-msgid "Allow system to run with NIS"
-msgstr ""
+msgid "Allow mock to read files in home directories."
-+msgstr "mock がホームディレクトリにあるファイルを読み込むことを許可する。"
++msgstr "mock がホームディレクトリにあるファイルを読み込むことを許可します。"
#: booleans.py:121
-msgid "Allow confined applications to use nscd shared memory."
+-msgstr ""
+msgid "Allow the mount commands to mount any directory or file."
- msgstr ""
++msgstr "mount コマンドがあらゆるディレクトリとファイルをマウントすることを許可します。"
#: booleans.py:122
-msgid "Allow openshift to lockdown app"
-msgstr ""
+msgid "Allow mozilla plugin domain to connect to the network using TCP."
-+msgstr "mozilla プラグイン・ドメインが TCP を使用してネットワークに接続することを許可する。"
++msgstr "Mozilla プラグインが TCP を使用してネットワークに接続することを許可します。"
#: booleans.py:123
-msgid "Allow openvpn to read home directories"
-msgstr "OpenVPN がホームディレクトリーを読み込むことを許可する"
+msgid "Allow mozilla plugin to support GPS."
-+msgstr ""
++msgstr "Mozilla プラグインが GPS をサポートすることを許可します。"
#: booleans.py:124
-msgid "Allow piranha-lvs domain to connect to the network using TCP."
+-msgstr ""
+msgid "Allow mozilla plugin to support spice protocols."
- msgstr ""
++msgstr "Mozilla プラグインが SPICE プロトコルをサポートすることを許可します。"
#: booleans.py:125
-msgid "Allow polipo to connect to all ports > 1023"
-msgstr "polipo がすべてのポート > 1023 に接続することを許可する"
+msgid "Allow confined web browsers to read home directory content"
-+msgstr "制限された Web ブラウザーがホームディレクトリのコンテンツを読み取ることを許可する"
++msgstr "制限された Web ブラウザーがホームディレクトリのコンテンツを読み取ることを許可します。"
#: booleans.py:126
-msgid ""
@@ -229491,13 +229546,13 @@ index 72ae12d..7b8f1c3 100644
-msgid "Allow transmit client label to foreign database"
-msgstr "異種のデータベースへのクライアントラベルの移行を許可"
+msgid "Allow any files/directories to be exported read/only via NFS."
-+msgstr "あらゆるファイル/ディレクトリが NFS 経由で読み込み専用としてエクスポートされることを許可する"
++msgstr "あらゆるファイルとディレクトリが NFS 経由で読み取り専用としてエクスポートされることを許可します。"
#: booleans.py:134
-msgid "Allow database admins to execute DML statement"
-msgstr "データベース管理者が DML 文を実行することを許可します"
+msgid "Allow any files/directories to be exported read/write via NFS."
-+msgstr "あらゆるファイル/ディレクトリが NFS 経由で読み書き用としてエクスポートされることを許可する"
++msgstr "あらゆるファイルとディレクトリが NFS 経由で読み書き用としてエクスポートされることを許可します。"
#: booleans.py:135
-msgid "Allow unprivileged users to execute DDL statement"
@@ -229505,26 +229560,26 @@ index 72ae12d..7b8f1c3 100644
+msgid ""
+"Allow nfs servers to modify public files used for public file transfer "
+"services. Files/Directories must be labeled public_content_rw_t."
-+msgstr "NFS サーバーがパブリックなファイル転送サービス向けに使用されるパブリックなファイルを変更することを許可する。ファイル/ディレクトリは public_content_rw_t のラベルが付けられている必要があります。"
++msgstr "NFS サーバーがパブリックなファイル転送サービスに使用されるパブリックなファイルを変更することを許可します。ファイルとディレクトリは public_content_rw_t のラベルが付けられている必要があります。"
#: booleans.py:136
-msgid "Allow pppd to load kernel modules for certain modems"
-msgstr "特定モデム用にカーネルモジュールのロードを pppd に許可"
+msgid "Allow system to run with NIS"
-+msgstr "システムが NIS を使用することを許可する"
++msgstr "システムが NIS を使用することを許可します。"
#: booleans.py:137
-msgid "Allow pppd to be run for a regular user"
-msgstr "普通のユーザー用に pppd の稼働を許可する"
+msgid "Allow confined applications to use nscd shared memory."
-+msgstr "制限されたアプリケーションが NSCD 共有メモリーを使用することを許可する。"
++msgstr "制限されたアプリケーションが NSCD 共有メモリーを使用することを許可します。"
#: booleans.py:138
-msgid ""
-"Allow privoxy to connect to all ports, not just HTTP, FTP, and Gopher ports."
-msgstr "HTTP、 FTP、 Gopher などのポートだけでなくすべてのポートへの接続を privoxy に許可します。"
+msgid "Allow openshift to lockdown app"
-+msgstr "OpenShift がアプリケーションをロックダウンすることを許可する"
++msgstr "OpenShift がアプリケーションをロックダウンすることを許可します。"
#: booleans.py:139
-msgid "Allow Puppet client to manage all file types."
@@ -229536,13 +229591,13 @@ index 72ae12d..7b8f1c3 100644
-msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database"
-msgstr "MySQL および PostgreSQL データベースへの接続を Puppet マスターに許可"
+msgid "Allow piranha-lvs domain to connect to the network using TCP."
-+msgstr "piranha-lvs ドメインが TCP を使用してネットワークに接続することを許可する。"
++msgstr "piranha-lvs ドメインが TCP を使用してネットワークに接続することを許可します。"
#: booleans.py:141
-msgid "Allow racoon to read shadow"
-msgstr "racoon がシャドウを読み込むことを許可します。"
+msgid "Allow polipo to connect to all ports > 1023"
-+msgstr "polipo がすべてのポート > 1023 に接続することを許可する"
++msgstr "polipo がすべてのポート > 1023 に接続することを許可します。"
#: booleans.py:142
-msgid "Allow rgmanager domain to connect to the network using TCP."
@@ -229550,53 +229605,65 @@ index 72ae12d..7b8f1c3 100644
+msgid ""
+"Determine whether Polipo session daemon can bind tcp sockets to all "
+"unreserved ports."
-+msgstr "Polipo セッションデーモンが TCP ソケットをすべての非予約ポートにバインドできるかどうかを決める。"
++msgstr "Polipo セッションデーモンが TCP ソケットをすべての非予約ポートにバインドできるかどうかを指定します。"
#: booleans.py:143
msgid ""
+-"Allow rsync to modify public files used for public file transfer services. "
+-"Files/Directories must be labeled public_content_rw_t."
+-msgstr "パブリックファイル転送サービスに使用するパブリックファイルの変更を rsync に対して許可します。 ファイルおよびディレクトリのラベルはpublic_content_rw_t でなければなりません。"
+-
+"Determine whether calling user domains can execute Polipo daemon in the "
+"polipo_session_t domain."
-+msgstr "呼び出しているユーザードメインが polipo_session_t ドメインにおいて Polipo デーモンを実行できるかどうかを決める。"
++msgstr "呼び出しているユーザードメインが polipo_session_t ドメインにおいて Polipo デーモンを実行できるかどうかを指定します。"
+
-+#: booleans.py:144
+ #: booleans.py:144
+-msgid "Allow rsync to run as a client"
+-msgstr "rsync がクライアントとして実行することを許可します。"
+msgid "Determine whether polipo can access cifs file systems."
-+msgstr "Polipo が CIFS ファイルシステムにアクセスできるかどうかを決める。"
-+
-+#: booleans.py:145
++msgstr "Polipo が CIFS ファイルシステムにアクセスできるかどうかを指定します。"
+
+ #: booleans.py:145
+-msgid "Allow rsync to export any files/directories read only."
+-msgstr "rsync がすべてのファイル・ディレクトリーを読み込み専用でエクスポートすることを許可します。"
+msgid "Determine whether Polipo can access nfs file systems."
-+msgstr "Polipo が NFS ファイルシステムにアクセスできるかどうかを決める。"
-+
-+#: booleans.py:146
++msgstr "Polipo が NFS ファイルシステムにアクセスできるかどうかを指定します。"
+
+ #: booleans.py:146
+-msgid "Allow rsync servers to share cifs files systems"
+-msgstr "rsync サーバーが CIFS ファイルシステムを共有することを許可します。"
+msgid "Enable polyinstantiated directory support."
+msgstr "polyinstantiated ディレクトリーのサポートを有効化します。"
-+
-+#: booleans.py:147
+
+ #: booleans.py:147
+-msgid "Allow rsync servers to share nfs files systems"
+-msgstr "rsync サーバーが NFS ファイルシステムを共有することを許可します。"
+msgid "Allow postfix_local domain full write access to mail_spool directories"
-+msgstr "postfix_local ドメインが mail_spool ディレクトリーに完全なアクセス権を持つことを許可する"
-+
-+#: booleans.py:148
++msgstr "postfix_local ドメインが mail_spool ディレクトリーに完全なアクセス権を持つことを許可します。"
+
+ #: booleans.py:148
+msgid "Allow postgresql to use ssh and rsync for point-in-time recovery"
-+msgstr "point-in-time リカバリに ssh と rsync の使用を postgresql に許可"
++msgstr "PostgreSQL がポイントインタイムリカバリに ssh と rsync を使用することを許可します。"
+
+#: booleans.py:149
+msgid "Allow transmit client label to foreign database"
-+msgstr "異種のデータベースへのクライアントラベルの移行を許可"
++msgstr "異種のデータベースにクライアントラベルを移行することを許可します。"
+
+#: booleans.py:150
+msgid "Allow database admins to execute DML statement"
-+msgstr "データベース管理者が DML 文を実行することを許可します"
++msgstr "データベース管理者が DML 文を実行することを許可します。"
+
+#: booleans.py:151
+msgid "Allow unprivileged users to execute DDL statement"
-+msgstr "非特権ユーザーが DDL 文を実行することを許可します"
++msgstr "非特権ユーザーが DDL 文を実行することを許可します。"
+
+#: booleans.py:152
+msgid "Allow pppd to load kernel modules for certain modems"
-+msgstr "特定モデム用にカーネルモジュールのロードを pppd に許可"
++msgstr "pppd が特定モデム用にカーネルモジュールのロードを許可します。"
+
+#: booleans.py:153
+msgid "Allow pppd to be run for a regular user"
-+msgstr "普通のユーザー用に pppd の稼働を許可する"
++msgstr "pppd が通常のユーザー用に実行されることを許可します。"
+
+#: booleans.py:154
+msgid "Determine whether privoxy can connect to all tcp ports."
@@ -229605,7 +229672,7 @@ index 72ae12d..7b8f1c3 100644
+#: booleans.py:155
+msgid ""
+"Permit to prosody to bind apache port. Need to be activated to use BOSH."
-+msgstr ""
++msgstr "prosody が Apache のポートに接続することを許可します。BOSH の使用を有効化する必要があります。"
+
+#: booleans.py:156
+msgid "Allow Puppet client to manage all file types."
@@ -229613,40 +229680,30 @@ index 72ae12d..7b8f1c3 100644
+
+#: booleans.py:157
+msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database"
-+msgstr "MySQL および PostgreSQL データベースへの接続を Puppet マスターに許可"
++msgstr "Puppet マスターが MySQL および PostgreSQL データベースに接続することを許可します。"
+
+#: booleans.py:158
+msgid "Allow racoon to read shadow"
-+msgstr "racoon がシャドウを読み込むことを許可します。"
++msgstr "racoon が shadow を読み取ることを許可します。"
+
+#: booleans.py:159
+msgid ""
- "Allow rsync to modify public files used for public file transfer services. "
- "Files/Directories must be labeled public_content_rw_t."
- msgstr "パブリックファイル転送サービスに使用するパブリックファイルの変更を rsync に対して許可します。 ファイルおよびディレクトリのラベルはpublic_content_rw_t でなければなりません。"
-
--#: booleans.py:144
++"Allow rsync to modify public files used for public file transfer services. "
++"Files/Directories must be labeled public_content_rw_t."
++msgstr "rsync がパブリックファイル転送サービスに使用するパブリックファイルを変更することを許可します。ファイルとディレクトリのラベルは public_content_rw_t にする必要があります。"
++
+#: booleans.py:160
- msgid "Allow rsync to run as a client"
- msgstr "rsync がクライアントとして実行することを許可します。"
-
--#: booleans.py:145
++msgid "Allow rsync to run as a client"
++msgstr "rsync がクライアントとして動作することを許可します。"
++
+#: booleans.py:161
- msgid "Allow rsync to export any files/directories read only."
- msgstr "rsync がすべてのファイル・ディレクトリーを読み込み専用でエクスポートすることを許可します。"
-
--#: booleans.py:146
--msgid "Allow rsync servers to share cifs files systems"
--msgstr "rsync サーバーが CIFS ファイルシステムを共有することを許可します。"
--
--#: booleans.py:147
--msgid "Allow rsync servers to share nfs files systems"
--msgstr "rsync サーバーが NFS ファイルシステムを共有することを許可します。"
++msgid "Allow rsync to export any files/directories read only."
++msgstr "rsync がすべてのファイル・ディレクトリーを読み取り専用でエクスポートすることを許可します。"
++
+#: booleans.py:162
+msgid "Allow rsync server to manage all files/directories on the system."
+msgstr "rsync サーバーがシステムにあるすべてのファイルやディレクトリを管理することを許可します。"
-
--#: booleans.py:148
++
+#: booleans.py:163
msgid "Allow samba to create new home directories (e.g. via PAM)"
msgstr "Samba が新しいホームディレクトリーを作成すること (例: PAM 経由) を許可します。"
@@ -229666,12 +229723,14 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:151
+#: booleans.py:166
msgid "Allow samba to share any file/directory read only."
- msgstr "Samba がすべてのファイル・ディレクトリーを読み込み専用で共有することを許可します。"
+-msgstr "Samba がすべてのファイル・ディレクトリーを読み込み専用で共有することを許可します。"
++msgstr "Samba がすべてのファイルとディレクトリーを読み取り専用で共有することを許可します。"
-#: booleans.py:152
+#: booleans.py:167
msgid "Allow samba to share any file/directory read/write."
- msgstr "Samba がすべてのファイル・ディレクトリーを読み書き可能で共有することを許可します。"
+-msgstr "Samba がすべてのファイル・ディレクトリーを読み書き可能で共有することを許可します。"
++msgstr "Samba がすべてのファイルとディレクトリーを読み書き可能で共有することを許可します。"
-#: booleans.py:153
+#: booleans.py:168
@@ -229681,12 +229740,13 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:154
+#: booleans.py:169
msgid "Allow samba to run unconfined scripts"
- msgstr "制限のないスクリプトの実行を samba に許可"
-
+-msgstr "制限のないスクリプトの実行を samba に許可"
+-
-#: booleans.py:155
-msgid "Allow samba to export ntfs/fusefs volumes."
-msgstr "Samba が ntfs/fusefs ボリュームをエクスポートすることを許可します。"
--
++msgstr "Samba が制限のないスクリプトを実行することを許可します。"
+
-#: booleans.py:156
+#: booleans.py:171
msgid "Allow samba to export NFS volumes."
@@ -229695,7 +229755,8 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:157
+#: booleans.py:172
msgid "Allow sanlock to read/write fuse files"
- msgstr "fuse ファイルの読み取りと書き込みを sanlock に許可"
+-msgstr "fuse ファイルの読み取りと書き込みを sanlock に許可"
++msgstr "sanlock が fuse ファイルを読み書きすることを許可します。"
-#: booleans.py:158
+#: booleans.py:173
@@ -229710,25 +229771,28 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:160
+#: booleans.py:175
msgid "Allow sasl to read shadow"
- msgstr "シャドーの読み取りを sasl に許可"
+-msgstr "シャドーの読み取りを sasl に許可"
++msgstr "SASL が shadow を読み取ることを許可します。"
-#: booleans.py:161
+#: booleans.py:176
msgid "Allow secadm to exec content"
-msgstr ""
-+msgstr "secadm がコンテンツを実行することを許可する"
++msgstr "secadm がコンテンツを実行することを許可します。"
-#: booleans.py:162
+#: booleans.py:177
msgid ""
"disallow programs, such as newrole, from transitioning to administrative "
"user domains."
- msgstr "newrole などのプログラムの管理ユーザードメインへの移行を許可しない"
+-msgstr "newrole などのプログラムの管理ユーザードメインへの移行を許可しない"
++msgstr "newrole などのプログラムの管理ユーザードメインへの移行を許可しません。"
-#: booleans.py:163
+#: booleans.py:178
msgid "Disable kernel module loading."
- msgstr "カーネルモジュールの読み込みを無効化する。"
+-msgstr "カーネルモジュールの読み込みを無効化する。"
++msgstr "カーネルモジュールの読み取りを無効化します。"
-#: booleans.py:164
+#: booleans.py:179
@@ -229741,7 +229805,8 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:165
+#: booleans.py:180
msgid "Allow regular users direct dri device access"
- msgstr "普通のユーザーによる dri デバイスへの直接アクセスを許可"
+-msgstr "普通のユーザーによる dri デバイスへの直接アクセスを許可"
++msgstr "通常のユーザーが dri デバイスに直接アクセスすることを許可します。"
-#: booleans.py:166
+#: booleans.py:181
@@ -229749,14 +229814,16 @@ index 72ae12d..7b8f1c3 100644
"Allow unconfined executables to make their heap memory executable. Doing "
"this is a really bad idea. Probably indicates a badly coded executable, but "
"could indicate an attack. This executable should be reported in bugzilla"
- msgstr "heap メモリーを実行可能にするために制限の内実行ファイルを許可します。 この設定はお奨めできません。 おそらく、 不適切にコード化された実行ファイルを示しますが、 攻撃を示す場合もあります。 この実行ファイルは Bugzilla に報告してください。"
+-msgstr "heap メモリーを実行可能にするために制限の内実行ファイルを許可します。 この設定はお奨めできません。 おそらく、 不適切にコード化された実行ファイルを示しますが、 攻撃を示す場合もあります。 この実行ファイルは Bugzilla に報告してください。"
++msgstr "heap メモリーを実行可能にするために制限されない実行ファイルを許可します。 この設定はお奨めできません。 おそらく、 不適切にコード化された実行ファイルを示しますが、 攻撃を示す場合もあります。 この実行ファイルは Bugzilla に報告してください。"
-#: booleans.py:167
+#: booleans.py:182
msgid ""
"Allow all unconfined executables to use libraries requiring text relocation "
"that are not labeled textrel_shlib_t"
- msgstr "textrel_shlib_t のラベル付けがされていないテキストの移動に必要なライブラリを使用できるよう制限のない実行ファイルをすべて許可"
+-msgstr "textrel_shlib_t のラベル付けがされていないテキストの移動に必要なライブラリを使用できるよう制限のない実行ファイルをすべて許可"
++msgstr "textrel_shlib_t のラベル付けがされていないテキストの移動に必要なライブラリを使用できるよう制限のない実行ファイルをすべて許可します。"
-#: booleans.py:168
+#: booleans.py:183
@@ -229765,12 +229832,13 @@ index 72ae12d..7b8f1c3 100644
"never, ever be necessary. Probably indicates a badly coded executable, but "
"could indicate an attack. This executable should be reported in bugzilla"
-msgstr ""
-+msgstr "制限された実行ファイルがこれらのスタックを実行可能にすることを許可する。これは推奨できません。おそらく、不適切にコード化された実行ファイルを意味しますが、攻撃を意味する場合もあります。この実行ファイルは Bugzilla に報告してください。"
++msgstr "制限された実行ファイルがこれらのスタックを実行可能にすることを許可します。これは推奨できません。おそらく、不適切にコード化された実行ファイルを意味しますが、攻撃を意味する場合もあります。この実行ファイルは Bugzilla に報告してください。"
-#: booleans.py:169
+#: booleans.py:184
msgid "Allow users to connect to the local mysql server"
- msgstr "ユーザーがローカルの MySQL サーバーに接続することを許可する"
+-msgstr "ユーザーがローカルの MySQL サーバーに接続することを許可する"
++msgstr "ユーザーがローカルの MySQL サーバーに接続することを許可します。"
-#: booleans.py:170
+#: booleans.py:185
@@ -229778,12 +229846,13 @@ index 72ae12d..7b8f1c3 100644
"Allow confined users the ability to execute the ping and traceroute "
"commands."
-msgstr ""
-+msgstr "制限されたユーザーが ping および traceroute コマンドを実行することを許可する。"
++msgstr "制限されたユーザーが ping および traceroute コマンドを実行することを許可します。"
-#: booleans.py:171
+#: booleans.py:186
msgid "Allow users to connect to PostgreSQL"
- msgstr "ユーザーが PostgreSQL に接続することを許可する"
+-msgstr "ユーザーが PostgreSQL に接続することを許可する"
++msgstr "ユーザーが PostgreSQL に接続することを許可します。"
-#: booleans.py:172
+#: booleans.py:187
@@ -229791,12 +229860,12 @@ index 72ae12d..7b8f1c3 100644
"Allow user to r/w files on filesystems that do not have extended attributes "
"(FAT, CDROM, FLOPPY)"
-msgstr ""
-+msgstr "ユーザーが拡張属性 (FAT, CDROM, FLOPPY) を持たないファイルシステムにおいてファイルを読み書きすることを許可する。"
++msgstr "ユーザーが拡張属性 (FAT, CDROM, FLOPPY) を持たないファイルシステムにおいてファイルを読み書きすることを許可します。"
-#: booleans.py:173
+#: booleans.py:188
+msgid "Allow user music sharing"
-+msgstr "ユーザーがミュージックを共有することを許可する"
++msgstr "ユーザーがミュージックを共有することを許可します。"
+
+#: booleans.py:189
msgid ""
@@ -229804,7 +229873,7 @@ index 72ae12d..7b8f1c3 100644
" same domain and outside users) disabling this forces FTP passive mode and "
"may change other protocols."
-msgstr ""
-+msgstr "ユーザーが TCP サーバー (ポートをバインドし、同じドメインと外部のユーザーからの接続を受け付ける) を実行することを許可する。これは強制的に FTP パッシブモードに設定し、他のプロトコルを変更する可能性があります。"
++msgstr "ユーザーが TCP サーバー (ポートをバインドし、同じドメインと外部のユーザーからの接続を受け付ける) を実行することを許可します。これは強制的に FTP パッシブモードに設定し、他のプロトコルを変更する可能性があります。"
-#: booleans.py:174
+#: booleans.py:190
@@ -229814,7 +229883,7 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:175
-msgid "Allow user music sharing"
-msgstr "ユーザーがミュージックを共有することを許可する"
-+msgstr "ユーザーが SSH chroot 環境を使用することを許可する。"
++msgstr "ユーザーが SSH chroot 環境を使用することを許可します。"
-#: booleans.py:176
+#: booleans.py:191
@@ -229857,12 +229926,13 @@ index 72ae12d..7b8f1c3 100644
+#: booleans.py:195
msgid "Allow sge to connect to the network using any TCP port"
-msgstr ""
-+msgstr "sge がすべての TCP ポートを使用してネットワークに接続することを許可する"
++msgstr "sge がすべての TCP ポートを使用してネットワークに接続することを許可します。"
-#: booleans.py:181
+#: booleans.py:196
msgid "Allow sge to access nfs file systems."
- msgstr "sge が NFS ファイルシステムにアクセスすることを許可します"
+-msgstr "sge が NFS ファイルシステムにアクセスすることを許可します"
++msgstr "sge が NFS ファイルシステムにアクセスすることを許可します。"
-#: booleans.py:182
-msgid ""
@@ -229879,7 +229949,7 @@ index 72ae12d..7b8f1c3 100644
"Allow samba to modify public files used for public file transfer services. "
"Files/Directories must be labeled public_content_rw_t."
-msgstr ""
-+msgstr "Samba がパブリックなファイル転送サービス向けに使用されるパブリックなファイルを変更することを許可する。ファイル/ディレクトリが public_content_rw_t というラベルが付けられている必要があります。"
++msgstr "Samba がパブリックなファイル転送サービス向けに使用されるパブリックなファイルを変更することを許可します。ファイル/ディレクトリが public_content_rw_t というラベルが付けられている必要があります。"
-#: booleans.py:184
+#: booleans.py:199
@@ -229889,7 +229959,8 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:185
+#: booleans.py:200
msgid "Allow spamd to read/write user home directories."
- msgstr "spamd がユーザーのホームディレクトリーを読み書きすることを許可します"
+-msgstr "spamd がユーザーのホームディレクトリーを読み書きすることを許可します"
++msgstr "spamd がユーザーのホームディレクトリーを読み書きすることを許可します。"
-#: booleans.py:186
-msgid ""
@@ -229912,65 +229983,68 @@ index 72ae12d..7b8f1c3 100644
"Allow ssh with chroot env to read and write files in the user home "
"directories"
-msgstr ""
-+msgstr "chroot 環境の SSH がユーザーのホームディレクトリにあるファイルを読み書きすることを許可する。"
++msgstr "chroot 環境の SSH がユーザーのホームディレクトリにあるファイルを読み書きすることを許可します。"
-#: booleans.py:189
+#: booleans.py:204
msgid "allow host key based authentication"
- msgstr "ホスト鍵による認証を許可する"
+-msgstr "ホスト鍵による認証を許可する"
++msgstr "ホスト鍵による認証を許可します。"
-#: booleans.py:190
+#: booleans.py:205
msgid "Allow ssh logins as sysadm_r:sysadm_t"
- msgstr "sysadm_r:sysadm_t としての ssh ログインを許可する"
+-msgstr "sysadm_r:sysadm_t としての ssh ログインを許可する"
++msgstr "sysadm_r:sysadm_t としての ssh ログインを許可します。"
-#: booleans.py:191
+#: booleans.py:206
msgid "Allow staff to exec content"
-msgstr ""
-+msgstr "staff がコンテンツを実行することを許可する"
++msgstr "スタッフがコンテンツを実行することを許可します。"
-#: booleans.py:192
+#: booleans.py:207
msgid "allow staff user to create and transition to svirt domains."
-msgstr ""
-+msgstr "staff ユーザーが sVirt ドメインを作成、またはそれに変換することを許可する。"
++msgstr "staff ユーザーが sVirt ドメインを作成、またはそれに変換することを許可します。"
-#: booleans.py:193
+#: booleans.py:208
msgid "Allow sysadm to exec content"
-msgstr ""
-+msgstr "sysadm がコンテンツを実行することを許可する"
++msgstr "sysadm がコンテンツを実行することを許可します。"
-#: booleans.py:194
+#: booleans.py:209
msgid ""
"Allow the Telepathy connection managers to connect to any network port."
-msgstr ""
-+msgstr "Telepathy 接続マネージャーがすべてのネットワークポートに接続することを許可する。"
++msgstr "Telepathy 接続マネージャーがすべてのネットワークポートに接続することを許可します。"
-#: booleans.py:195
+#: booleans.py:210
msgid ""
"Allow the Telepathy connection managers to connect to any generic TCP port."
-+msgstr "Telepathy 接続マネージャーがすべての一般的な TCP ポートに接続することを許可する。"
-+
-+#: booleans.py:211
-+msgid "Allow testpolicy to exec content"
- msgstr ""
+-msgstr ""
++msgstr "Telepathy 接続マネージャーがすべての一般的な TCP ポートに接続することを許可します。"
-#: booleans.py:196
++#: booleans.py:211
++msgid "Allow testpolicy to exec content"
++msgstr "testpolicy がコンテンツを実行することを許可します。"
++
+#: booleans.py:212
msgid ""
"Allow tftp to modify public files used for public file transfer services."
-msgstr ""
-+msgstr "tftp がパブリックなファイル転送サービス向けにパブリックなファイルを変更することを許可する。"
++msgstr "tftp がパブリックなファイル転送サービス向けにパブリックなファイルを変更することを許可します。"
-#: booleans.py:197
+#: booleans.py:213
msgid "Allow tftp to read and write files in the user home directories"
-msgstr ""
-+msgstr "tftp がユーザーのホームディレクトリにあるファイルを読み書きすることを許可する"
++msgstr "tftp がユーザーのホームディレクトリにあるファイルを読み書きすることを許可します。"
-#: booleans.py:198
-msgid "Allow tor daemon to bind tcp sockets to all unreserved ports."
@@ -229983,7 +230057,7 @@ index 72ae12d..7b8f1c3 100644
+#: booleans.py:215
msgid "Allow tor to act as a relay"
-msgstr ""
-+msgstr "Tor がリレーとして動作することを許可する"
++msgstr "Tor がリレーとして動作することを許可します。"
-#: booleans.py:200
+#: booleans.py:216
@@ -229991,13 +230065,13 @@ index 72ae12d..7b8f1c3 100644
"allow unconfined users to transition to the chrome sandbox domains when "
"running chrome-sandbox"
-msgstr ""
-+msgstr "制限されていないユーザーが chrome-sandbox を実行しているとき chrome sandbox ドメインに移行することを許可する。"
++msgstr "制限されていないユーザーが chrome-sandbox を実行しているとき chrome sandbox ドメインに移行することを許可します。"
-#: booleans.py:201
+#: booleans.py:217
msgid "Allow a user to login as an unconfined domain"
-msgstr ""
-+msgstr "ユーザーが制限されたドメインとしてログインすることを許可する"
++msgstr "ユーザーが制限されたドメインとしてログインすることを許可します。"
-#: booleans.py:202
+#: booleans.py:218
@@ -230009,7 +230083,7 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:203
-msgid "Allow video playing tools to run unconfined"
-msgstr "ビデオ再生ツールが制限されずに実行することを許可します。"
-+msgstr "制限されたユーザーが running xulrunner plugin-container を実行するとき、Mozilla プラグインのドメインに移行することを許可する。"
++msgstr "制限されたユーザーが running xulrunner plugin-container を実行するとき、Mozilla プラグインのドメインに移行することを許可します。"
-#: booleans.py:204
+#: booleans.py:219
@@ -230019,12 +230093,14 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:205
+#: booleans.py:220
msgid "Support ecryptfs home directories"
- msgstr "ecryptfs ホームディレクトリーをサポートします"
+-msgstr "ecryptfs ホームディレクトリーをサポートします"
++msgstr "ecryptfs ホームディレクトリーをサポートします。"
-#: booleans.py:206
+#: booleans.py:221
msgid "Support fusefs home directories"
- msgstr "fusefs ホームディレクトリーをサポートします"
+-msgstr "fusefs ホームディレクトリーをサポートします"
++msgstr "fusefs ホームディレクトリーをサポートします。"
-#: booleans.py:207
-msgid "Use lpd server instead of cups"
@@ -230036,18 +230112,20 @@ index 72ae12d..7b8f1c3 100644
-#: booleans.py:208
+#: booleans.py:223
msgid "Support NFS home directories"
- msgstr "NFS ホームディレクトリーをサポートします"
+-msgstr "NFS ホームディレクトリーをサポートします"
++msgstr "NFS ホームディレクトリーをサポートします。"
-#: booleans.py:209
+#: booleans.py:224
msgid "Support SAMBA home directories"
- msgstr "Samba ホームディレクトリーをサポートします"
+-msgstr "Samba ホームディレクトリーをサポートします"
++msgstr "Samba ホームディレクトリーをサポートします。"
-#: booleans.py:210
+#: booleans.py:225
msgid "Allow user to exec content"
-msgstr ""
-+msgstr "user がコンテンツを実行することを許可する"
++msgstr "ユーザーがコンテンツを実行することを許可します。"
-#: booleans.py:211
-msgid "Allow varnishd to connect to all ports, not just HTTP."
@@ -230070,103 +230148,109 @@ index 72ae12d..7b8f1c3 100644
msgid ""
"Allow confined virtual guests to use serial/parallel communication ports"
-msgstr ""
-+msgstr "制限された仮想マシンがシリアル/パラレル通信ポートを使用することを許可する"
++msgstr "制限された仮想マシンがシリアル/パラレル通信ポートを使用することを許可します。"
-#: booleans.py:214
+#: booleans.py:229
msgid ""
"Allow confined virtual guests to use executable memory and executable stack"
-msgstr ""
-+msgstr "制限された仮想マシンが実行可能なメモリおよび実行可能なスタックを使用することを許可する"
++msgstr "制限された仮想マシンが実行可能なメモリおよび実行可能なスタックを使用することを許可します。"
-#: booleans.py:215
+#: booleans.py:230
msgid "Allow confined virtual guests to read fuse files"
-msgstr ""
-+msgstr "制限された仮想マシンが FUSE ファイルを読み込むことを許可する"
++msgstr "制限された仮想マシンが FUSE ファイルを読み込むことを許可します。"
-#: booleans.py:216
+#: booleans.py:231
msgid "Allow confined virtual guests to manage nfs files"
-msgstr ""
-+msgstr "制限された仮想マシンが NFS ファイルを管理することを許可する"
++msgstr "制限された仮想マシンが NFS ファイルを管理することを許可します。"
-#: booleans.py:217
+#: booleans.py:232
msgid "Allow confined virtual guests to interact with rawip sockets"
-msgstr ""
-+msgstr "制限された仮想マシンが rawip ソケットと通信することを許可する"
++msgstr "制限された仮想マシンが rawip ソケットと通信することを許可します。"
-#: booleans.py:218
+#: booleans.py:233
msgid "Allow confined virtual guests to manage cifs files"
-msgstr ""
-+msgstr "制限された仮想マシンが CIFS ファイルを管理することを許可する"
++msgstr "制限された仮想マシンが CIFS ファイルを管理することを許可します。"
-#: booleans.py:219
+#: booleans.py:234
msgid "Allow confined virtual guests to interact with the sanlock"
-msgstr ""
-+msgstr "制限された仮想マシンが sanlock と通信することを許可する"
-
+-
-#: booleans.py:220
-msgid "Allow confined virtual guests to manage device configuration, (pci)"
-msgstr ""
--
++msgstr "制限された仮想マシンが sanlock と通信することを許可します。"
+
-#: booleans.py:221
+#: booleans.py:235
msgid "Allow confined virtual guests to use usb devices"
- msgstr "仮想マシンが USB デバイスを使用することを許可する"
+-msgstr "仮想マシンが USB デバイスを使用することを許可する"
++msgstr "仮想マシンが USB デバイスを使用することを許可します。"
-#: booleans.py:222
+#: booleans.py:236
msgid "Allow confined virtual guests to interact with the xserver"
- msgstr "仮想マシンが X サーバーと通信することを許可する"
-
+-msgstr "仮想マシンが X サーバーと通信することを許可する"
+-
-#: booleans.py:223
-msgid "Allow webadm to manage files in users home directories"
-msgstr "Web 管理者がユーザーのホームディレクトリーにあるファイルを管理することを許可する"
-+#: booleans.py:237
-+msgid "Determine whether webadm can manage generic user files."
-+msgstr "webadm が一般的なユーザーファイルを管理できるかどうかを指定します。"
++msgstr "仮想マシンが X サーバーと通信することを許可します。"
-#: booleans.py:224
-msgid "Allow webadm to read files in users home directories"
-msgstr "Web 管理者がユーザーのホームディレクトリーにあるファイルを読み取るすることを許可する"
-+#: booleans.py:238
-+msgid "Determine whether webadm can read generic user files."
-+msgstr "webadm が一般的なユーザーファイルを読み込めるかどうかを指定します。"
++#: booleans.py:237
++msgid "Determine whether webadm can manage generic user files."
++msgstr "webadm が一般的なユーザーファイルを管理できるかどうかを指定します。"
-#: booleans.py:225
-msgid "Ignore wine mmap_zero errors."
-msgstr "Wine の mmap_zero エラーを無視する。"
++#: booleans.py:238
++msgid "Determine whether webadm can read generic user files."
++msgstr "webadm が一般的なユーザーファイルを読み込めるかどうかを指定します。"
+
+-#: booleans.py:226
+#: booleans.py:239
+msgid ""
+"Determine whether attempts by wine to mmap low regions should be silently "
+"blocked."
+msgstr "wine が低リージョンを mmap する試行が静かにブロックされるかどうかを指定します。"
-
--#: booleans.py:226
++
+#: booleans.py:240
msgid "Allow the graphical login program to execute bootloader"
- msgstr "グラフィカルログインプログラムがブートローダーを実行することを許可する"
+-msgstr "グラフィカルログインプログラムがブートローダーを実行することを許可する"
++msgstr "グラフィカルログインプログラムがブートローダーを実行することを許可します。"
-#: booleans.py:227
+#: booleans.py:241
msgid ""
"Allow the graphical login program to login directly as sysadm_r:sysadm_t"
- msgstr "グラフィカルログインプログラムが sysadm_r:sysadm_t として直接ログインすることを許可する"
+-msgstr "グラフィカルログインプログラムが sysadm_r:sysadm_t として直接ログインすることを許可する"
++msgstr "グラフィカルログインプログラムが sysadm_r:sysadm_t として直接ログインすることを許可します。"
-#: booleans.py:228
+#: booleans.py:242
+msgid ""
+"Allow the graphical login program to create files in HOME dirs as "
+"xdm_home_t."
-+msgstr ""
++msgstr "グラフィカルログインプログラムが xdm_home_t として HOME ディレクトリにファイルを作成することを許可します。"
+
+#: booleans.py:243
msgid "Allow xen to manage nfs files"
- msgstr "Xen が NFS ファイルを管理することを許可する"
+-msgstr "Xen が NFS ファイルを管理することを許可する"
++msgstr "Xen が NFS ファイルを管理することを許可します。"
-#: booleans.py:229
+#: booleans.py:244
@@ -230174,79 +230258,80 @@ index 72ae12d..7b8f1c3 100644
"Allow xend to run blktapctrl/tapdisk. Not required if using dedicated "
"logical volumes for disk images."
-msgstr ""
-+msgstr "xend が blktapctrl/tapdisk を実行することを許可する。ディスクイメージ用の専用論理ボリュームを使用していなければ、必要ありません。"
++msgstr "xend が blktapctrl/tapdisk を実行することを許可します。ディスクイメージ用の専用論理ボリュームを使用していなければ、必要ありません。"
-#: booleans.py:230
+#: booleans.py:245
msgid "Allow xend to run qemu-dm. Not required if using paravirt and no vfb."
-msgstr ""
-+msgstr "xend が qemu-dm を実行することを許可する。準仮想化を使用していて、vfb がなければ、必要ありません。"
++msgstr "xend が qemu-dm を実行することを許可します。準仮想化を使用していて、vfb がなければ、必要ありません。"
-#: booleans.py:231
+#: booleans.py:246
msgid ""
"Allow xguest users to configure Network Manager and connect to apache ports"
-msgstr ""
-+msgstr "xguest ユーザーが Network Manager を設定し、Apache ポートに接続することを許可する。"
++msgstr "xguest ユーザーが Network Manager を設定し、Apache ポートに接続することを許可します。"
-#: booleans.py:232
+#: booleans.py:247
msgid "Allow xguest to exec content"
-msgstr ""
-+msgstr "xguest がコンテンツを実行することを許可する"
++msgstr "xguest がコンテンツを実行することを許可します。"
-#: booleans.py:233
+#: booleans.py:248
msgid "Allow xguest users to mount removable media"
-msgstr ""
-+msgstr "xguest ユーザーがリムーバブルメディアをマウントすることを許可する"
++msgstr "xguest ユーザーがリムーバブルメディアをマウントすることを許可します。"
-#: booleans.py:234
+#: booleans.py:249
msgid "Allow xguest to use blue tooth devices"
-msgstr ""
-+msgstr "xguest が Bluetooth デバイスを使用することを許可する"
++msgstr "xguest が Bluetooth デバイスを使用することを許可します。"
-#: booleans.py:235
+#: booleans.py:250
msgid "Allows clients to write to the X server shared memory segments."
-msgstr ""
-+msgstr "クライアントが X サーバー共有メモリーセグメントに書き込むことを許可する。"
++msgstr "クライアントが X サーバー共有メモリーセグメントに書き込むことを許可します。"
-#: booleans.py:236
+#: booleans.py:251
msgid "Allows XServer to execute writable memory"
-msgstr ""
-+msgstr "XServer が書き込み可能メモリーを実行することを許可する"
++msgstr "XServer が書き込み可能メモリーを実行することを許可します。"
-#: booleans.py:237
+#: booleans.py:252
msgid "Support X userspace object manager"
-msgstr ""
-+msgstr "X userspace object manager をサポートする"
++msgstr "X userspace object manager をサポートします。"
-#: booleans.py:238
-msgid "Allow zabbix to connect to unreserved ports"
-msgstr "Zabbix が予約されていないポートに接続することを許可する"
+#: booleans.py:253
+msgid "Determine whether zabbix can connect to all TCP ports"
-+msgstr "zabbix がすべての TCP ポートに接続できるかどうかを指定します。"
++msgstr "Zabbix がすべての TCP ポートに接続できるかどうかを指定します。"
-#: booleans.py:239
+#: booleans.py:254
msgid "Allow zebra daemon to write it configuration files"
- msgstr "zebra デーモンが設定ファイルに書き込むことを許可する"
+-msgstr "zebra デーモンが設定ファイルに書き込むことを許可する"
++msgstr "zebra デーモンが設定ファイルに書き込むことを許可します。"
-#: booleans.py:240
+#: booleans.py:255
msgid ""
"Allow ZoneMinder to modify public files used for public file transfer "
"services."
-+msgstr "ZoneMinder がパブリックなファイル転送サービス向けに使用されるパブリックなファイルを変更することを許可する。"
++msgstr "ZoneMinder がパブリックなファイル転送サービスに使用されるパブリックなファイルを変更することを許可します。"
+
+#: booleans.py:256
+msgid "Allow ZoneMinder to run su/sudo."
-+msgstr ""
++msgstr "ZoneMinder が su/sudo を実行することを許可します。"
+
+#: ../sepolicy/sepolicy.py:194
+#, python-format
@@ -230255,7 +230340,7 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy.py:281
+msgid "Graphical User Interface for SELinux Policy"
-+msgstr ""
++msgstr "SELinux ポリシーのグラフィカルユーザーインターフェース"
+
+#: ../sepolicy/sepolicy.py:305
+msgid "Generate SELinux man pages"
@@ -230444,7 +230529,7 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy/__init__.py:168
+msgid "regular file"
-+msgstr ""
++msgstr "通常ファイル"
+
+#: ../sepolicy/sepolicy/__init__.py:169
+msgid "directory"
@@ -230452,23 +230537,23 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy/__init__.py:170
+msgid "character device"
-+msgstr ""
++msgstr "キャラクターデバイス"
+
+#: ../sepolicy/sepolicy/__init__.py:171
+msgid "block device"
-+msgstr ""
++msgstr "ブロックデバイス"
+
+#: ../sepolicy/sepolicy/__init__.py:172
+msgid "socket file"
-+msgstr ""
++msgstr "ソケットファイル"
+
+#: ../sepolicy/sepolicy/__init__.py:173
+msgid "symbolic link"
-+msgstr ""
++msgstr "シンボリックリンク"
+
+#: ../sepolicy/sepolicy/__init__.py:174
+msgid "named pipe"
-+msgstr ""
++msgstr "名前付きパイプ"
+
+#: ../sepolicy/sepolicy/__init__.py:306
+msgid "No SELinux Policy installed"
@@ -230476,7 +230561,7 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy/__init__.py:386
+msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
-+msgstr ""
++msgstr "/usr/bin/sepolgen-ifgen を実行し、インターフェース情報を再生成する必要があります"
+
+#: ../sepolicy/sepolicy/__init__.py:591
+#, python-format
@@ -230613,7 +230698,7 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy/sepolicy.glade:7
+msgid "SELinux Gui"
-+msgstr ""
++msgstr "SELinux GUI"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:33
+msgid "Type to search for a process"
@@ -230621,12 +230706,12 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy/sepolicy.glade:35
+msgid "Select domain"
-+msgstr ""
++msgstr "ドメインの選択"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:70
+#: ../sepolicy/sepolicy/sepolicy.glade:308
+msgid "Booleans"
-+msgstr ""
++msgstr "ブーリアン"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:74
+msgid ""
@@ -230637,7 +230722,7 @@ index 72ae12d..7b8f1c3 100644
+#: ../sepolicy/sepolicy/sepolicy.glade:85
+#: ../sepolicy/sepolicy/sepolicy.glade:710
+msgid "Files"
-+msgstr ""
++msgstr "ファイル"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:89
+msgid ""
@@ -230647,7 +230732,7 @@ index 72ae12d..7b8f1c3 100644
+#: ../sepolicy/sepolicy/sepolicy.glade:100
+#: ../sepolicy/sepolicy/sepolicy.glade:1062
+msgid "Network"
-+msgstr ""
++msgstr "ネットワーク"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:104
+msgid ""
@@ -230683,28 +230768,28 @@ index 72ae12d..7b8f1c3 100644
+#: ../sepolicy/sepolicy/sepolicy.glade:787
+#: ../sepolicy/sepolicy/sepolicy.glade:1128
+msgid "Modify"
-+msgstr ""
++msgstr "修正"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:377
+#: ../sepolicy/sepolicy/sepolicy.glade:791
+msgid "Modify an existing item"
-+msgstr ""
++msgstr "既存の項目の修正"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:389
+#: ../sepolicy/sepolicy/sepolicy.glade:803
+#: ../sepolicy/sepolicy/sepolicy.glade:1142
+msgid "Delete"
-+msgstr ""
++msgstr "削除"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:393
+#: ../sepolicy/sepolicy/sepolicy.glade:807
+msgid "Delete an existing item"
-+msgstr ""
++msgstr "既存の項目の削除"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:409
+#: ../sepolicy/sepolicy/sepolicy.glade:823
+msgid "Add a new item"
-+msgstr ""
++msgstr "新規項目の追加"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:442
+msgid "File path used to enter the above selected process domain."
@@ -230854,19 +230939,19 @@ index 72ae12d..7b8f1c3 100644
+#: ../sepolicy/sepolicy/sepolicy.glade:1541
+#: ../sepolicy/sepolicy/sepolicy.glade:1629
+msgid "Add a File"
-+msgstr ""
++msgstr "ファイルの追加"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:1504
+#: ../sepolicy/sepolicy/sepolicy.glade:1592
+#: ../sepolicy/sepolicy/sepolicy.glade:1680
+msgid "Save changes"
-+msgstr ""
++msgstr "変更の保存"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:1518
+#: ../sepolicy/sepolicy/sepolicy.glade:1606
+#: ../sepolicy/sepolicy/sepolicy.glade:1694
+msgid "Reset Changes"
-+msgstr ""
++msgstr "変更のリセット"
+
+#: ../sepolicy/sepolicy/sepolicy.glade:1780
+msgid "Applicaiton more detailed view"
@@ -230874,31 +230959,31 @@ index 72ae12d..7b8f1c3 100644
+
+#: ../sepolicy/sepolicy/sepolicy.glade:1874
+msgid "Analyzing Policy..."
-+msgstr ""
++msgstr "ポリシーの分析中..."
+
+#: ../sepolicy/sepolicy/gui.py:49
+msgid "No"
-+msgstr ""
++msgstr "いいえ"
+
+#: ../sepolicy/sepolicy/gui.py:49
+msgid "Yes"
-+msgstr ""
++msgstr "はい"
+
+#: ../sepolicy/sepolicy/gui.py:61
+msgid "GTK Not Available"
-+msgstr ""
++msgstr "GTK が利用できません"
+
+#: ../sepolicy/sepolicy/gui.py:195
+msgid "System Status: Enforcing"
-+msgstr ""
++msgstr "システム状態: 強制 (Enforcing)"
+
+#: ../sepolicy/sepolicy/gui.py:197
+msgid "System Status: Permissive"
-+msgstr ""
++msgstr "システム状態: 許容 (Permissive)"
+
+#: ../sepolicy/sepolicy/gui.py:199
+msgid "System Status: Disabled"
-+msgstr ""
++msgstr "システム状態: 無効 (Disabled)"
+
+#: ../sepolicy/sepolicy/gui.py:413
+#, python-format
@@ -514017,7 +514102,7 @@ index 0748ca9..6348287 100644
-selinux(8), sepolicy-booleans(8), sepolicy-communicate(8), sepolicy-generate(8), sepolicy-interface(8), sepolicy-network(8), sepolicy-manpage(8), sepolicy-transition(8)
+selinux(8), sepolicy-booleans(8), sepolicy-communicate(8), sepolicy-generate(8),sepolicy-gui(8), sepolicy-interface(8), sepolicy-network(8), sepolicy-manpage(8), sepolicy-transition(8)
diff --git a/policycoreutils/sepolicy/sepolicy.py b/policycoreutils/sepolicy/sepolicy.py
-index b25d3b2..cc3c3e6 100755
+index b25d3b2..43b3666 100755
--- a/policycoreutils/sepolicy/sepolicy.py
+++ b/policycoreutils/sepolicy/sepolicy.py
@@ -22,6 +22,8 @@
@@ -514097,7 +514182,7 @@ index b25d3b2..cc3c3e6 100755
newval = getattr(namespace, self.dest)
if not newval:
newval = []
-@@ -140,102 +165,171 @@ class CheckPolicyType(argparse.Action):
+@@ -140,102 +165,173 @@ class CheckPolicyType(argparse.Action):
class CheckUser(argparse.Action):
def __call__(self, parser, namespace, value, option_string=None):
@@ -514248,7 +514333,7 @@ index b25d3b2..cc3c3e6 100755
+def gui_run(args):
+ try:
+ import sepolicy.gui
-+ sepolicy.gui.SELinuxGui(args.domain)
++ sepolicy.gui.SELinuxGui(args.domain, args.test)
+ pass
+ except ImportError:
+ raise ValueError(_("You need to install policycoreutils-gui package to use the gui option"))
@@ -514259,6 +514344,8 @@ index b25d3b2..cc3c3e6 100755
+ gui.add_argument("-d", "--domain", default=None,
+ action=CheckDomain,
+ help=_("Domain name(s) of man pages to be created"))
++ gui.add_argument("-t", "--test", default=False, action="store_true",
++ help=argparse.SUPPRESS)
+ gui.set_defaults(func=gui_run)
def manpage(args):
@@ -514326,7 +514413,7 @@ index b25d3b2..cc3c3e6 100755
def gen_network_args(parser):
net = parser.add_parser("network",
-@@ -245,15 +339,18 @@ def gen_network_args(parser):
+@@ -245,15 +341,18 @@ def gen_network_args(parser):
group.add_argument("-l", "--list", dest="list_ports",
action="store_true",
help=_("list all SELinux port types"))
@@ -514348,7 +514435,7 @@ index b25d3b2..cc3c3e6 100755
net.set_defaults(func=network)
def communicate(args):
-@@ -283,7 +380,6 @@ def gen_communicate_args(parser):
+@@ -283,7 +382,6 @@ def gen_communicate_args(parser):
comm.set_defaults(func=communicate)
def booleans(args):
@@ -514356,7 +514443,7 @@ index b25d3b2..cc3c3e6 100755
from sepolicy import boolean_desc
if args.all:
rc, args.booleans = selinux.security_get_boolean_names()
-@@ -300,6 +396,7 @@ def gen_booleans_args(parser):
+@@ -300,6 +398,7 @@ def gen_booleans_args(parser):
action="store_true",
help=_("get all booleans descriptions"))
group.add_argument("-b", "--boolean", dest="booleans", nargs="+",
@@ -514364,7 +514451,7 @@ index b25d3b2..cc3c3e6 100755
help=_("boolean to get description"))
bools.set_defaults(func=booleans)
-@@ -319,22 +416,49 @@ def gen_transition_args(parser):
+@@ -319,22 +418,49 @@ def gen_transition_args(parser):
help=_("target process domain"))
trans.set_defaults(func=transition)
@@ -514423,7 +514510,7 @@ index b25d3b2..cc3c3e6 100755
if not args.command:
raise ValueError(_("Command required for this type of policy"))
cmd = os.path.realpath(args.command)
-@@ -346,8 +470,22 @@ def generate(args):
+@@ -346,8 +472,22 @@ def generate(args):
mypolicy.set_program(cmd)
if args.types:
@@ -514446,7 +514533,7 @@ index b25d3b2..cc3c3e6 100755
for p in args.writepaths:
if os.path.isdir(p):
mypolicy.add_dir(p)
-@@ -355,6 +493,7 @@ def generate(args):
+@@ -355,6 +495,7 @@ def generate(args):
mypolicy.add_file(p)
mypolicy.set_transition_users(args.user)
@@ -514454,7 +514541,7 @@ index b25d3b2..cc3c3e6 100755
mypolicy.set_admin_domains(args.admin_domain)
mypolicy.set_existing_domains(args.domain)
-@@ -366,20 +505,34 @@ def generate(args):
+@@ -366,20 +507,34 @@ def generate(args):
def gen_interface_args(parser):
itf = parser.add_parser("interface",
help=_('List SELinux Policy interfaces'))
@@ -514492,7 +514579,7 @@ index b25d3b2..cc3c3e6 100755
help=_('Generate SELinux Policy module template'))
pol.add_argument("-d", "--domain", dest="domain", default=[],
action=CheckDomain, nargs="*",
-@@ -387,9 +540,12 @@ def gen_generate_args(parser):
+@@ -387,9 +542,12 @@ def gen_generate_args(parser):
pol.add_argument("-u", "--user", dest="user", default=[],
action=CheckUser,
help=_("Enter SELinux user(s) which will transition to this domain"))
@@ -514506,7 +514593,7 @@ index b25d3b2..cc3c3e6 100755
pol.add_argument("-n", "--name", dest="name",
default=None,
help=_("name of policy to generate"))
-@@ -397,53 +553,57 @@ def gen_generate_args(parser):
+@@ -397,53 +555,57 @@ def gen_generate_args(parser):
help=argparse.SUPPRESS)
pol.add_argument("-t", "--type", dest="types", default=[], nargs="*",
action=CheckType,
@@ -514590,7 +514677,7 @@ index b25d3b2..cc3c3e6 100755
pol.set_defaults(func=generate)
if __name__ == '__main__':
-@@ -455,17 +615,25 @@ if __name__ == '__main__':
+@@ -455,17 +617,25 @@ if __name__ == '__main__':
gen_booleans_args(subparsers)
gen_communicate_args(subparsers)
gen_generate_args(subparsers)
@@ -515768,10 +515855,10 @@ index 26f8390..ba959ae 100644
return out
diff --git a/policycoreutils/sepolicy/sepolicy/gui.py b/policycoreutils/sepolicy/sepolicy/gui.py
new file mode 100644
-index 0000000..a8b3628
+index 0000000..6c24252
--- /dev/null
+++ b/policycoreutils/sepolicy/sepolicy/gui.py
-@@ -0,0 +1,2746 @@
+@@ -0,0 +1,2765 @@
+#!/usr/bin/python -Es
+#
+# Copyright (C) 2013 Red Hat
@@ -515806,6 +515893,7 @@ index 0000000..a8b3628
+import sys
+import sepolicy
+import selinux
++from selinux import DISABLED, PERMISSIVE, ENFORCING
+import sepolicy.network
+import sepolicy.manpage
+import dbus
@@ -515813,7 +515901,6 @@ index 0000000..a8b3628
+import os
+import gettext
+import unicodedata
-+import signal
+
+PROGNAME="policycoreutils"
+gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
@@ -515838,24 +515925,26 @@ index 0000000..a8b3628
+
+import distutils.sysconfig
+ADVANCED_LABEL = ( _("Advanced >>"), _("Advanced <<") )
++OUTBOUND = 0
++INBOUND = 1
+
+class SELinuxGui():
+ EXE_PAGE = 0
+ WRITABLE_PAGE = 1
+ APP_PAGE = 2
-+ OUTBOUND = 0
-+ INBOUND = 1
+
-+ def __init__( self , app = None):
++ def __init__( self , app = None, test = False):
++ self.finish_init = False
+ self.dbus = SELinuxDBus()
-+ #Dan
-+ #customized = ""
+ try:
-+ customized = self.dbus.customized()
++ if test:
++ customized = ""
++ else:
++ customized = self.dbus.customized()
+ except dbus.exceptions.DBusException, e:
+ print e
+ self.quit()
-+
++
+ sepolicy_domains = sepolicy.get_all_domains()
+ sepolicy_domains.sort(compare)
+ if app and app not in sepolicy_domains:
@@ -515909,7 +515998,8 @@ index 0000000..a8b3628
+ self.advanced_search = False
+ # System Items **************************************
+ self.app_system_button = builder.get_object("app_system_button")
-+ self.system_button = builder.get_object("System_button")
++ self.system_radio_button = builder.get_object("System_button")
++ self.lockdown_radio_button = builder.get_object("Lockdown_button")
+ self.systems_box = builder.get_object("Systems_box")
+ self.relabel_button = builder.get_object("Relabel_button")
+ self.relabel_button_no = builder.get_object("Relabel_button_no")
@@ -516085,6 +516175,7 @@ index 0000000..a8b3628
+ self.booleans_more_detail_treeview = builder.get_object("booleans_more_detail_treeview")
+ self.booleans_more_detail_tree_data_set = builder.get_object("booleans_more_detail_liststore")
+ self.booleans_radio_button = builder.get_object("Booleans_button")
++ self.active_button = self.booleans_radio_button
+ self.booleans_button_tooltip_txt = self.booleans_radio_button.get_tooltip_text()
+ self.booleans_treemodel_sort = builder.get_object("boolean_treemodelsort")
+ # boolean items ************************************
@@ -516140,6 +516231,7 @@ index 0000000..a8b3628
+ # Modify button *************************************
+
+ # status bar *****************************************
++ self.current_status_label = builder.get_object("Enforcing_label")
+ self.current_status_enforcing = builder.get_object("Enforcing_button")
+ self.current_status_permissive = builder.get_object("Permissive_button")
+ self.status_bar = builder.get_object("status_bar")
@@ -516194,13 +516286,15 @@ index 0000000..a8b3628
+ # Need to connect button on code because the tree view model is a treeviewsort
+ self.cell.connect("toggled", self.on_toggle, self.boolean_tree_data_set)
+
-+ length = len(sepolicy_domains)
+ self.loading = 1
-+ loading_gui.show()
+ path = None
-+ # Dan
-+ #for domain in [ "httpd_t", "abrt_t" ]:
-+ for domain in sepolicy_domains:
++ if test:
++ domains = [ "httpd_t", "abrt_t" ]
++ else:
++ domains = sepolicy_domains
++ loading_gui.show()
++ length = len(domains)
++ for domain in domains:
+ # After the user selects a path in the drop down menu call
+ # get_init_entrypoint_target(entrypoint) to get the transtype
+ # which will give you the application
@@ -516213,7 +516307,7 @@ index 0000000..a8b3628
+ self.idle_func()
+
+ entrypoint = sepolicy.get_init_entrypoint(domain)
-+ if entrypoint:
++ if entrypoint:
+ path = sepolicy.find_entrypoint_path(entrypoint)
+ if path:
+ self.combo_box_initialize(path, None)
@@ -516305,6 +516399,8 @@ index 0000000..a8b3628
+ "on_Files_button_toggled" : self.files_tab_change,
+ "on_Network_button_toggled" : self.network_tab_change,
+ "on_Transitions_button_toggled" : self.transitions_tab_change,
++ "on_System_button_toggled" : self.system_tab_change,
++ "on_Lockdown_button_toggled" : self.lockdown_tab_change,
+
+ "on_booleans_popup_window_delete_event" : self.closewindow,
+ "gtk_widget_hide": self.closewindow,
@@ -516318,30 +516414,36 @@ index 0000000..a8b3628
+
+ GLib.timeout_add_seconds(5,self.selinux_status)
+ self.selinux_status()
++ self.show_system_page(self.status == DISABLED)
++ self.finish_init = True
+ Gtk.main()
-+
++
+ def selinux_status(self):
-+ status = selinux.security_getenforce()
-+ if status == -1 :
++ try:
++ self.status = selinux.security_getenforce()
++ except OSError:
++ self.status = DISABLED
++ if self.status == DISABLED:
++ self.current_status_label.set_sensitive(False)
+ self.current_status_enforcing.set_sensitive(False)
+ self.current_status_permissive.set_sensitive(False)
++ self.enforcing_button_default.set_sensitive(False)
+ self.status_bar.push(self.context_id, _("System Status: Disabled"))
-+ self.system_interface(self.app_system_button)
+ else:
-+ self.set_enforce_text(status)
++ self.set_enforce_text(self.status)
+ if os.path.exists('/.autorelabel'):
+ self.relabel_button.set_active(True)
+ else:
+ self.relabel_button_no.set_active(True)
-+
-+ policytype = selinux.selinux_getpolicytype()[1]
++
++ policytype = selinux.selinux_getpolicytype()[1]
+
+ mode = selinux.selinux_getenforcemode()[1]
-+ if mode == 1:
++ if mode == ENFORCING:
+ self.enforcing_button_default.set_active(True)
-+ if mode == 0:
++ if mode == PERMISSIVE:
+ self.permissive_button_default.set_active(True)
-+ if mode == -1:
++ if mode == DISABLED:
+ self.disabled_button_default.set_active(True)
+
+ return True
@@ -516410,49 +516512,65 @@ index 0000000..a8b3628
+ def on_help_forward_clicked(self, *args):
+ self.help_page += 1
+ self.help_show_page()
-+
++
+ def on_help_button(self, *args):
+ self.help_page = 0
+ self.help_list = []
-+ if self.system_button.get_visible():
-+ self.help_list = [ "system"]
-+ return self.help_show_page()
+ opage = self.outer_notebook.get_current_page()
+ if opage == 0:
++ self.help_window.set_title(_("Help: Booleans Page"))
+ self.help_list = [ "booleans", "booleans_toggled", "booleans_more", "booleans_more_show"]
+ return self.help_show_page()
+
-+ elif opage == 1:
++ if opage == 1:
+ ipage = self.inner_notebook_files.get_current_page()
+ if ipage == 0:
++ self.help_window.set_title(_("Help: Executable Files Page"))
+ self.help_list = [ "files_exec" ]
+ return self.help_show_page()
+ if ipage == 1:
++ self.help_window.set_title(_("Help: Writable Files Page"))
+ self.help_list = [ "files_write" ]
+ return self.help_show_page()
+ if ipage == 2:
++ self.help_window.set_title(_("Help: Application Types Page"))
+ self.help_list = [ "files_app" ]
+ return self.help_show_page()
-+ elif opage == 2:
++ if opage == 2:
+ ipage = self.inner_notebook_network.get_current_page()
+ if ipage == 0:
++ self.help_window.set_title(_("Help: Outbound Network Connections Page"))
+ self.help_list = [ "ports_outbound" ]
+ return self.help_show_page()
+ if ipage == 1:
++ self.help_window.set_title(_("Help: Inbound Network Connections Page"))
+ self.help_list = [ "ports_inbound" ]
+ return self.help_show_page()
-+ elif opage == 3:
++
++ if opage == 3:
+ ipage = self.inner_notebook_transitions.get_current_page()
+ if ipage == 0:
++ self.help_window.set_title(_("Help: Transition from application Page"))
+ self.help_list = [ "transition_from" ]
+ return self.help_show_page()
+ if ipage == 1:
++ self.help_window.set_title(_("Help: Transition into application Page"))
+ self.help_list = [ "transition_to" ]
+ return self.help_show_page()
+ if ipage == 2:
++ self.help_window.set_title(_("Help: Transition application file Page"))
+ self.help_list = [ "transition_file" ]
+ return self.help_show_page()
+
++ if opage == 4:
++ self.help_window.set_title(_("Help: Systems Page"))
++ self.help_list = [ "system"]
++ return self.help_show_page()
++ if opage == 5:
++ self.help_window.set_title(_("Help: Lockdown Page"))
++ self.help_list = [ "lockdown"]
++ return self.help_show_page()
++
+ def open_combo_menu(self, *args):
+ if self.popup == 0:
+ self.popup = 1
@@ -516475,11 +516593,11 @@ index 0000000..a8b3628
+
+ def initialize_system_default_mode(self):
+ self.enforce_mode = selinux.selinux_getenforcemode()[1]
-+ if self.enforce_mode == 1:
++ if self.enforce_mode == ENFORCING:
+ self.enforce_button = self.enforcing_button_default
-+ if self.enforce_mode == 0:
++ if self.enforce_mode == PERMISSIVE:
+ self.enforce_button = self.permissive_button_default
-+ if self.enforce_mode == -1:
++ if self.enforce_mode == DISABLED:
+ self.enforce_button = self.disabled_button_default
+
+ def populate_system_policy(self):
@@ -516494,20 +516612,24 @@ index 0000000..a8b3628
+ self.typeHistory = ctr
+ ctr += 1
+ def filter_the_data(self, list, iter, *args):
-+ if self.filter_txt == "": # When there is no txt in the box show all items in the tree
++ # When there is no txt in the box show all items in the tree
++ if self.filter_txt == "":
+ return True
+ if isinstance(list, Gtk.TreeStore) and list.iter_depth(iter) > 0:
+ return True
+ try:
+ val = list.get_value(iter, 0)
-+ if val == True or val == False or val == None: # In the boolean tab in col 0 the val will return as a bool which will break the search
++ # In the boolean tab in col 0 the val will return as a bool which will break the search
++ if val == True or val == False or val == None:
+ pass
-+ elif(val.find(self.filter_txt) != -1 or val.find(self.filter_txt.upper()) != -1) : # Returns true if filter_txt exists within the val
++ # Returns true if filter_txt exists within the val
++ elif(val.find(self.filter_txt) != -1 or val.find(self.filter_txt.upper()) != -1) :
+ return True
+ for x in range(1,10):
+ try:
+ val = list.get_value(iter, x)
-+ if(val.find(self.filter_txt) != -1 or val.find(self.filter_txt.upper()) != -1) : # Returns true if filter_txt exists within the val
++ # Returns true if filter_txt exists within the val
++ if(val.find(self.filter_txt) != -1 or val.find(self.filter_txt.upper()) != -1) :
+ return True
+ except AttributeError, TypeError:
+ pass
@@ -516515,79 +516637,45 @@ index 0000000..a8b3628
+ pass
+ return False
+
-+ def network_initialize(self, application):
-+ sepolicy.reinit()
-+ netd = sepolicy.network.get_network_connect(application, "tcp", "name_connect")
-+ for k in netd.keys():
-+ for t,ports in netd[k]:
-+ try:
-+ if self.portdict[(application, 0, "Modify")][(", ".join(ports), "tcp")]["type"] == t:
-+ pass
-+ else:
-+ self.network_initial_data_insert(0,", ".join(ports), t, "tcp")
-+ except KeyError:
-+ self.network_initial_data_insert(0,", ".join(ports), t, "tcp")
-+ netd = sepolicy.network.get_network_connect(application, "tcp", "name_bind")
-+ for k in netd.keys():
-+ for t,ports in netd[k]:
-+ try:
-+ if self.portdict[(application, 1, "Modify")][(", ".join(ports), "tcp")]["type"] == t:
-+ pass
-+ else:
-+ self.network_initial_data_insert(1,", ".join(ports), t, "tcp")
-+ except KeyError:
-+ self.network_initial_data_insert(1,", ".join(ports), t, "tcp")
-+ netd = sepolicy.network.get_network_connect(application, "udp", "name_bind")
++ def net_update(self, app, netd, protocol, direction):
+ for k in netd.keys():
+ for t,ports in netd[k]:
+ try:
-+ if self.portdict[(application, 1, "Modify")][(", ".join(ports), "udp")]["type"] == t:
++ if self.portdict[(app, direction, "Modify")][(", ".join(ports), protocol)]["type"] == t:
+ pass
+ else:
-+ self.network_initial_data_insert(1,", ".join(ports), t, "udp")
++ self.network_initial_data_insert(direction, ", ".join(ports), t, protocol)
+ except KeyError:
-+ self.network_initial_data_insert(1,", ".join(ports), t, "udp") # 0 is outbound 1 is inbound
-+ try:
-+ for port, protocol in self.portdict[application, 0, "Add"]:
-+ type = self.portdict[application, 0, "Add"][port, protocol]["type"]
-+ if not self.portdict[application, 0, "Add"][port, protocol]["old"]:
-+ self.network_initial_data_insert(0, port, type, protocol)
-+ except KeyError:
-+ pass
-+ try:
-+ for port, protocol in self.portdict[application, 1, "Add"]:
-+ type = self.portdict[application, 1, "Add"][port, protocol]["type"]
-+ if not self.portdict[application, 1, "Add"][port, protocol]["old"]:
-+ self.network_initial_data_insert(1, port, type, protocol)
-+ except KeyError:
-+ pass
-+ try:
-+ for port, protocol in self.portdict[application, 0, "Modify"]:
-+ if not self.portdict[application, 0, "Modify"][port, protocol]["changed"]:
-+ type = self.portdict[application, 0, "Modify"][port, protocol]["type"]
-+ self.network_initial_data_insert(0, port, type, protocol)
-+ except KeyError:
-+ pass
++ self.network_initial_data_insert(direction, ", ".join(ports), t, protocol)
+ try:
-+ for port, protocol in self.portdict[application, 1, "Modify"]:
-+ if not self.portdict[application, 1, "Modify"][port, protocol]["changed"]:
-+ type = self.portdict[application, 1, "Modify"][port, protocol]["type"]
-+ self.network_initial_data_insert(1, port, type, protocol)
++ for action in ("Add", "Modify"):
++ for port, protocol in self.portdict[app, direction, action]:
++ type = self.portdict[app, direction, action][port, protocol]["type"]
++ if not self.portdict[app, direction, action][port, protocol]["old"]:
++ self.network_initial_data_insert(direction, port, type, protocol)
+ except KeyError:
+ pass
+
++
++ def network_initialize(self, app):
++ sepolicy.reinit()
++ netd = sepolicy.network.get_network_connect(app, "tcp", "name_connect")
++ self.net_update(app, netd, "tcp", OUTBOUND)
++ netd = sepolicy.network.get_network_connect(app, "tcp", "name_bind")
++ self.net_update(app, netd, "tcp", INBOUND)
++ netd = sepolicy.network.get_network_connect(app, "udp", "name_bind")
++ self.net_update(app, netd, "udp", INBOUND)
++
+ def network_initial_data_insert(self, bound, ports, portType, protocol):
-+ if bound == 0: # 0 is outbound
-+ out_iter = self.out_network_tree_data_set.append()
-+ self.out_network_tree_data_set.set_value(out_iter, 0, ports)
-+ self.out_network_tree_data_set.set_value(out_iter, 1, protocol)
-+ self.out_network_tree_data_set.set_value(out_iter, 2, portType)
-+
-+ elif bound == 1: # 1 is inbound
-+ in_iter = self.in_network_tree_data_set.append()
-+ self.in_network_tree_data_set.set_value(in_iter, 0, ports)
-+ self.in_network_tree_data_set.set_value(in_iter, 1, protocol)
-+ self.in_network_tree_data_set.set_value(in_iter, 2, portType)
++ if bound == OUTBOUND:
++ model = self.out_network_tree_data_set
++ else:
++ model = self.in_network_tree_data_set
++
++ iter = model.append()
++ model.set_value(iter, 0, ports)
++ model.set_value(iter, 1, protocol)
++ model.set_value(iter, 2, portType)
+
+ def combo_get_active_text(self, combobox):
+ liststore = combobox.get_model()
@@ -516617,8 +516705,8 @@ index 0000000..a8b3628
+
+ def advanced_item_button_push(self, *args):
+ app = self.advanced_search_treeview.get_selection()
-+ iter = app.get_selected()
-+ iter = self.advanced_search_treemodel_sort.convert_iter_to_child_iter(iter[1])
++ model, iter = app.get_selected()
++ iter = self.advanced_search_treemodel_sort.convert_iter_to_child_iter(iter)
+ iter = self.advanced_search_filter_data_set.convert_iter_to_child_iter(iter)
+ app = self.advanced_search_liststore.get_value(iter, 1)
+ if app == None:
@@ -516630,8 +516718,8 @@ index 0000000..a8b3628
+ self.application_selected()
+
+ def advanced_item_selected(self, treeview, path, *args):
-+ path = self.advanced_search_treemodel_sort.convert_path_to_child_path(path[0])
-+ iter = self.advanced_search_filter_data_set.get_iter(path[0])
++ path = self.advanced_search_treemodel_sort.convert_path_to_child_path(path)
++ iter = self.advanced_search_filter_data_set.get_iter(path)
+ iter = self.advanced_search_filter_data_set.convert_iter_to_child_iter(iter)
+ app = self.advanced_search_liststore.get_value(iter, 1)
+ self.advanced_filter_entry.set_text('')
@@ -516665,9 +516753,10 @@ index 0000000..a8b3628
+ self.delete_button_files.set_sensitive(True)
+ self.add_button_network.set_sensitive(True)
+ self.delete_button_network.set_sensitive(True)
-+
-+ self.executable_files_treestore.clear() # Clear the tree to prepare for a new selection otherwise
-+ self.in_network_tree_data_set.clear() # data will pile up everytime the user selects a new item from the drop down menu
++ # Clear the tree to prepare for a new selection otherwise
++ self.executable_files_treestore.clear()
++ # data will pile up everytime the user selects a new item from the drop down menu
++ self.in_network_tree_data_set.clear()
+ self.out_network_tree_data_set.clear()
+ self.boolean_tree_data_set.clear()
+ self.transitions_into_x_tree_data_set.clear()
@@ -516719,7 +516808,7 @@ index 0000000..a8b3628
+ self.transitions_file_tab.set_tooltip_text(self.transitions_file_tab_tooltip_txt)
+ self.transitions_radio_button.set_tooltip_text(self.transitions_radio_button_tooltip_txt)
+
-+ self.previously_modified_initialize(customized)
++ self.previously_modified_initialize(self.dbus.customized())
+ try:
+ if self.set_application_label:
+ self.applications_button_selection.set_label(self.application)
@@ -516745,37 +516834,30 @@ index 0000000..a8b3628
+ pass
+ self.ready_mouse()
+
-+ def previously_modified_initialize(self, cusomized):
++ def previously_modified_initialize(self, customized):
+ for items in customized.split("\n"):
-+ self.organize_dict(items[:-1])
++ self.organize_dict(items.encode('ascii'))
+
-+ def executable_files_initialize(self, application): #KeyError with abrt_watch_log_t
++ def executable_files_initialize(self, application):
+ sepolicy.reinit()
+ self.entrypoints = sepolicy.get_entrypoints(application)
-+ for exe in self.entrypoints.keys(): # From entry_point = 0 to the number of keys in the dic
-+ if len(self.entrypoints[exe]):
-+ file_class = self.entrypoints[exe][1]
-+ for path in self.entrypoints[exe][0]:
-+ try:
-+ if self.filedict[(application, 0, "Modify")][(path, file_class)]["type"] == exe:
-+ pass
-+ else:
-+ self.executable_files_initial_data_insert(path, exe, file_class)
-+ except KeyError:
-+ self.executable_files_initial_data_insert(path, exe, file_class) # file_path, seLinux_label, status
-+ try:
-+
-+ for path, file_class in self.filedict[application, 0, "Add"]:
-+ exe = self.filedict[application, 0, "Add"][path, file_class]["type"]
-+ if not self.filedict[(application, 0, "Add")][(path, file_class)]["old"]:
-+ self.executable_files_initial_data_insert(path, exe, file_class)
-+ except KeyError:
-+ pass
++ for exe in self.entrypoints.keys():
++ if len(self.entrypoints[exe]) == 0:
++ continue
++ file_class = self.entrypoints[exe][1]
++ for path in self.entrypoints[exe][0]:
++ try:
++ if self.filedict[(application, 0, "Modify")][(path, file_class)]["type"] == exe:
++ continue
++ except KeyError:
++ pass
++ self.executable_files_initial_data_insert(path, exe, file_class)
+ try:
-+ for path, file_class in self.filedict[application, 0, "Modify"]:
-+ if not self.filedict[application, 0, "Modify"][path, file_class]["changed"]:
-+ exe = self.filedict[application, 0, "Modify"][path, file_class]["type"]
-+ self.executable_files_initial_data_insert(path, exe, file_class)
++ for action, key in (("Add", "old"), ("Modify", "changed")):
++ for path, file_class in self.filedict[application, 0, action]:
++ if not self.filedict[(application, 0, action)][(path, file_class)][key]:
++ exe = self.filedict[application, 0, action][path, file_class]["type"]
++ self.executable_files_initial_data_insert(path, exe, file_class)
+ except KeyError:
+ pass
+
@@ -516795,8 +516877,10 @@ index 0000000..a8b3628
+ self.show_mislabeled_files_only.set_visible(True)
+ self.mislabeled_files_label.set_visible(True)
+ self.warning_files.set_visible(True)
-+ tree.set_value(niter, 3, True) # Set visibility of label
-+ tree.set_value(iter, 4, True) # Has a mislabel
++ # Set visibility of label
++ tree.set_value(niter, 3, True)
++ # Has a mislabel
++ tree.set_value(iter, 4, True)
+ tree.set_value(niter, 4, True)
+ tree.set_value(iter, 5, con.split(":")[2])
+ tree.set_value(iter, 6, cur.split(":")[2])
@@ -516813,33 +516897,27 @@ index 0000000..a8b3628
+
+ def writable_files_initialize(self, application):
+ sepolicy.reinit()
-+ self.writable_files = sepolicy.get_writable_files(application) # Traversing the dictionary data struct
++ # Traversing the dictionary data struct
++ self.writable_files = sepolicy.get_writable_files(application)
+ for write in self.writable_files.keys():
-+ if len(self.writable_files[write]):
-+ file_class = self.writable_files[write][1]
-+ for path in self.writable_files[write][0]:
-+ try:
-+ if self.filedict[(application, 1, "Modify")][(path, file_class)]["type"] == write:
-+ pass
-+ else:
-+ self.writable_files_initial_data_insert(path, write, file_class)
-+ except KeyError:
-+ self.writable_files_initial_data_insert(path, write, file_class)
-+ else:
++ if len(self.writable_files[write]) < 2:
+ self.writable_files_initial_data_insert(None, write, _("all files"))
++ continue
++ file_class = self.writable_files[write][1]
++ for path in self.writable_files[write][0]:
++ try:
++ if self.filedict[(application, 1, "Modify")][(path, file_class)]["type"] == write:
++ continue
++ except KeyError:
++ pass
++ self.writable_files_initial_data_insert(path, write, file_class)
+
+ try:
-+ for path, file_class in self.filedict[application, 1, "Add"]:
-+ write = self.filedict[application, 1, "Add"][path, file_class]["type"]
-+ if not self.filedict[(application, 1, "Add")][(path, file_class)]["old"]:
-+ self.writable_files_initial_data_insert(path, write, file_class)
-+ except KeyError:
-+ pass
-+ try:
-+ for path, file_class in self.filedict[application, 1, "Modify"]:
-+ if not self.filedict[application, 1, "Modify"][path, file_class]["changed"]:
-+ exe = self.filedict[application, 1, "Modify"][path, file_class]["type"]
-+ self.writable_files_initial_data_insert(path, write, file_class)
++ for action, key in (("Add", "old"), ("Modify", "changed")):
++ for path, file_class in self.filedict[application, 1, action]:
++ if not self.filedict[(application, 1, action)][(path, file_class)]["old"]:
++ write = self.filedict[application, 1, action][path, file_class][key]
++ self.writable_files_initial_data_insert(path, write, file_class)
+ except KeyError:
+ pass
+
@@ -516864,30 +516942,23 @@ index 0000000..a8b3628
+ sepolicy.reinit()
+ self.file_types = sepolicy.get_file_types(application)
+ for app in self.file_types.keys():
-+ if len(self.file_types[app]):
-+ file_class = self.file_types[app][1]
-+ for path in self.file_types[app][0]:
-+ desc = sepolicy.get_description(app, markup = self.markup)
-+ try:
-+ if self.filedict[(application, 2, "Modify")][(path, file_class)]["type"] == app:
-+ pass
-+ else:
-+ self.application_file_types_initial_data_insert(path, desc, file_class)
-+ except KeyError:
-+ self.application_file_types_initial_data_insert(path, desc, file_class) # file_path, seLinux_label, status
-+
-+ try:
-+ for path, file_class in self.filedict[application, 2, "Add"]:
-+ ftype = self.filedict[application, 2, "Add"][path, file_class]["type"]
-+ if not self.filedict[(application, 2, "Add")][(path, file_class)]["old"]:
-+ self.application_file_types_initial_data_insert(path, ftype, file_class)
-+ except KeyError:
-+ pass
++ if len(self.file_types[app]) == 0:
++ continue
++ file_class = self.file_types[app][1]
++ for path in self.file_types[app][0]:
++ desc = sepolicy.get_description(app, markup = self.markup)
++ try:
++ if self.filedict[(application, 2, "Modify")][(path, file_class)]["type"] == app:
++ continue
++ except KeyError:
++ pass
++ self.application_file_types_initial_data_insert(path, desc, file_class)
+ try:
-+ for path, file_class in self.filedict[application, 2, "Modify"]:
-+ if not self.filedict[application, 2, "Modify"][path, file_class]["changed"]:
-+ ftype = self.filedict[application, 2, "Modify"][path, file_class]["type"]
-+ self.application_file_types_initial_data_insert(path, ftype, file_class)
++ for action, key in (("Add", "old"), ("Modify", "changed")):
++ for path, file_class in self.filedict[application, 2, action]:
++ if not self.filedict[(application, 2, action)][(path, file_class)][key]:
++ ftype = self.filedict[application, 2, action][path, file_class]["type"]
++ self.application_file_types_initial_data_insert(path, ftype, file_class)
+ except KeyError:
+ pass
+
@@ -516910,10 +516981,11 @@ index 0000000..a8b3628
+ desc = sepolicy.boolean_desc(b)
+ self.boolean_initial_data_insert(b, desc , active)
+
-+ def boolean_initial_data_insert(self, val, desc, active): # Insert data from data source into tree
++ def boolean_initial_data_insert(self, val, desc, active):
++ # Insert data from data source into tree
+ iter = self.boolean_tree_data_set.append()
+ self.boolean_tree_data_set.set_value(iter, 0, active)
-+ self.boolean_tree_data_set.set_value(iter, 1, desc) # Inserts into application list (list is on left side of gui)
++ self.boolean_tree_data_set.set_value(iter, 1, desc)
+ self.boolean_tree_data_set.set_value(iter, 2, val)
+ self.boolean_tree_data_set.set_value(iter, 3, 'More...')
+
@@ -516965,14 +517037,16 @@ index 0000000..a8b3628
+ self.transitions_from_x_treestore.set_value(iter, 5, False)
+ else:
+ niter = self.transitions_from_x_treestore.append(iter)
-+ self.transitions_from_x_treestore.set_value(iter, 0, enabled[active[0][1]]) # active[0][1] is either T or F (enabled is all the way at the top)
++ # active[0][1] is either T or F (enabled is all the way at the top)
++ self.transitions_from_x_treestore.set_value(iter, 0, enabled[active[0][1]])
+ markup = '<span foreground="blue"><u>%s</u></span>'
+ if active[0][1]:
+ self.transitions_from_x_treestore.set_value(niter, 2, (_("To disable this transition, go to the " + markup % _("Boolean section."))))
+ else:
+ self.transitions_from_x_treestore.set_value(niter, 2, (_("To enable this transition, go to the " + markup % _("Boolean section."))))
+
-+ self.transitions_from_x_treestore.set_value(niter, 1, active[0][0]) # active[0][0] is the Bool Name
++ # active[0][0] is the Bool Name
++ self.transitions_from_x_treestore.set_value(niter, 1, active[0][0])
+ self.transitions_from_x_treestore.set_value(niter, 5, True)
+
+ self.transitions_from_x_treestore.set_value(iter, 2, executable)
@@ -517024,6 +517098,14 @@ index 0000000..a8b3628
+ self.outer_notebook.set_current_page(3)
+ self.clear_filters()
+
++ def system_tab_change(self, *args):
++ self.outer_notebook.set_current_page(4)
++ self.clear_filters()
++
++ def lockdown_tab_change(self, *args):
++ self.outer_notebook.set_current_page(5)
++ self.clear_filters()
++
+ def return_to_booleans_clicked(self, model, path):
+ self.booleans_radio_button.clicked()
+ path = self.transitions_from_x_treemodelsort.convert_path_to_child_path(path)
@@ -517082,7 +517164,8 @@ index 0000000..a8b3628
+ self.filedict[(self.application, ipage, operation)] = {}
+ if ipage == self.EXE_PAGE:
+ row = self.executable_files_treeview.get_selection()
-+ iter = row.get_selected() # iter[0] is tree model iter[1] is the iter
++ # iter[0] is tree model iter[1] is the iter
++ iter = row.get_selected()
+ if self.error_check_iter(iter[1]):
+ return
+ iter = self.executable_files_treemodel_sort.convert_iter_to_child_iter(iter[1])
@@ -517100,7 +517183,8 @@ index 0000000..a8b3628
+
+ elif ipage == self.WRITABLE_PAGE:
+ row = self.writable_files_treeview.get_selection()
-+ iter = row.get_selected() # iter[0] is tree model iter[1] is the iter
++ # iter[0] is tree model iter[1] is the iter
++ iter = row.get_selected()
+ if self.error_check_iter(iter[1]):
+ return
+ iter = self.writable_files_treemodel_sort.convert_iter_to_child_iter(iter[1])
@@ -517118,7 +517202,8 @@ index 0000000..a8b3628
+
+ elif ipage == self.APP_PAGE:
+ row = self.application_files_treeview.get_selection()
-+ iter = row.get_selected() # iter[0] is tree model iter[1] is the iter
++ # iter[0] is tree model iter[1] is the iter
++ iter = row.get_selected()
+ if self.error_check_iter(iter[1]):
+ return
+ iter = self.application_files_treemodel_sort.convert_iter_to_child_iter(iter[1])
@@ -517249,9 +517334,10 @@ index 0000000..a8b3628
+ ipage = self.inner_notebook_network.get_current_page()
+ if (self.application, ipage, operation) not in self.portdict:
+ self.portdict[(self.application, ipage, operation)] = {}
-+ if ipage == self.OUTBOUND:
++ if ipage == OUTBOUND:
+ row = self.out_network_treeview.get_selection()
-+ iter = row.get_selected() # iter[0] is tree model iter[1] is the iter
++ # iter[0] is tree model iter[1] is the iter
++ iter = row.get_selected()
+ if self.error_check_iter(iter[1]):
+ return
+ iter = self.out_network_treemodel_sort.convert_iter_to_child_iter(iter[1])
@@ -517265,16 +517351,15 @@ index 0000000..a8b3628
+ protocol = self.out_network_tree_data_set.get_value(iter, 1)
+ if protocol == "tcp":
+ self.network_tcp_button.set_active(True)
-+ #self.network_protocol_combobox.set_active(self.map_selected_items_into_combobox(self.network_protocol_combolist, protocol))
+ elif protocol == "udp":
+ self.network_udp_button.set_active(True)
+
-+ elif ipage == self.INBOUND:
++ elif ipage == INBOUND:
+ row = self.in_network_treeview.get_selection()
-+ iter = row.get_selected() # iter[0] is tree model iter[1] is the iter
-+ if self.error_check_iter(iter[1]):
++ model, iter = row.get_selected()
++ if self.error_check_iter(iter):
+ return
-+ iter = self.in_network_treemodel_sort.convert_iter_to_child_iter(iter[1])
++ iter = self.in_network_treemodel_sort.convert_iter_to_child_iter(iter)
+ iter = self.in_network_filter_data_set.convert_iter_to_child_iter(iter)
+ self.delete_old_item = iter
+ port = self.in_network_tree_data_set.get_value(iter, 0)
@@ -517308,7 +517393,7 @@ index 0000000..a8b3628
+ self.network_ports_entry.set_text("")
+
+ try:
-+ if ipage == self.OUTBOUND:
++ if ipage == OUTBOUND:
+ netd = sepolicy.network.get_network_connect(self.application, "tcp", "name_connect")
+ iter = self.network_protocol_combolist.append()
+ self.network_protocol_combolist.set_value(iter, 0, "tcp")
@@ -517316,7 +517401,7 @@ index 0000000..a8b3628
+ for t,ports in netd[k]:
+ iter = self.network_port_type_combolist.append()
+ self.network_port_type_combolist.set_value(iter, 0, t)
-+ elif ipage == self.INBOUND:
++ elif ipage == INBOUND:
+ netd = sepolicy.network.get_network_connect(self.application, "tcp", "name_bind")
+ iter = self.network_protocol_combolist.append()
+ self.network_protocol_combolist.set_value(iter, 0, "tcp")
@@ -517503,7 +517588,7 @@ index 0000000..a8b3628
+ inlist[j] = {'port': j[0], 'protocol': j[1], 'type': j[2]}
+ self.out_network_tree_data_set.clear()
+ self.in_network_tree_data_set.clear()
-+ if ipage == self.OUTBOUND:
++ if ipage == OUTBOUND:
+ try:
+ for port, protocol in self.portdict[self.application, ipage, "Add"]:
+ type = self.portdict[(self.application, ipage, "Add")][(port, protocol)]["type"]
@@ -517531,7 +517616,7 @@ index 0000000..a8b3628
+ self.out_network_tree_data_set.set_value(iter, 2, type)
+ except KeyError:
+ pass
-+ elif ipage == self.INBOUND:
++ elif ipage == INBOUND:
+ try:
+ for port, protocol in self.portdict[self.application, ipage, "Add"]:
+ type = self.portdict[(self.application, ipage, "Add")][(port, protocol)]["type"]
@@ -517560,10 +517645,10 @@ index 0000000..a8b3628
+ except KeyError:
+ pass
+ elif self.application != None:
-+ if ipage == self.OUTBOUND:
++ if ipage == OUTBOUND:
+ self.out_network_tree_data_set.clear()
+ self.network_initialize(self.application)
-+ elif ipage == self.INBOUND:
++ elif ipage == INBOUND:
+ self.in_network_tree_data_set.clear()
+ self.network_initialize(self.application)
+
@@ -517669,14 +517754,14 @@ index 0000000..a8b3628
+ ipage = self.inner_notebook_network.get_current_page()
+ if (self.application, ipage, operation) not in self.portdict:
+ self.portdict[(self.application, ipage, operation)] = {}
-+ if ipage == self.OUTBOUND:
++ if ipage == OUTBOUND:
+ iter = self.out_network_tree_data_set.append()
+ self.out_network_tree_data_set.set_value(iter, 0, ports)
+ self.out_network_tree_data_set.set_value(iter, 1, protocol)
+ self.out_network_tree_data_set.set_value(iter, 2, port_type)
+ if operation == "Modify":
+ self.out_network_tree_data_set.remove(self.delete_old_item)
-+ if ipage == self.INBOUND:
++ if ipage == INBOUND:
+ iter = self.in_network_tree_data_set.append()
+ self.in_network_tree_data_set.set_value(iter, 0, ports)
+ self.in_network_tree_data_set.set_value(iter, 1, protocol)
@@ -517796,11 +517881,13 @@ index 0000000..a8b3628
+
+ def get_boolean_filter_data(self, windows, *args):
+ #search for desired item
-+ self.filter_txt = windows.get_text() # The txt that the user inputs into the filter is stored in filter_txt
++ # The txt that the user inputs into the filter is stored in filter_txt
++ self.filter_txt = windows.get_text()
+ self.booleans_filter_data_set.refilter()
+
+ def get_file_filter_data(self, windows, *args):
-+ self.filter_txt = windows.get_text() # The txt that the user inputs into the filter is stored in filter_txt
++ # The txt that the user inputs into the filter is stored in filter_txt
++ self.filter_txt = windows.get_text()
+ self.inner_notebook_tab = self.inner_notebook_files.get_current_page()
+ if self.inner_notebook_tab == 0:
+ self.exe_files_filter_data_set.refilter()
@@ -517810,7 +517897,8 @@ index 0000000..a8b3628
+ self.application_files_filter_data_set.refilter()
+
+ def get_network_filter_data(self, windows, *args):
-+ self.filter_txt = windows.get_text() # The txt that the user inputs into the filter is stored in filter_txt
++ # The txt that the user inputs into the filter is stored in filter_txt
++ self.filter_txt = windows.get_text()
+ self.inner_notebook_tab = self.inner_notebook_network.get_current_page()
+
+ if self.inner_notebook_tab == 0:
@@ -517819,7 +517907,8 @@ index 0000000..a8b3628
+ self.in_network_filter_data_set.refilter()
+
+ def get_transitions_filter_data(self, windows, *args):
-+ self.filter_txt = windows.get_text() # The txt that the user inputs into the filter is stored in filter_txt
++ # The txt that the user inputs into the filter is stored in filter_txt
++ self.filter_txt = windows.get_text()
+ self.inner_notebook_tab = self.inner_notebook_transitions.get_current_page()
+
+ if self.inner_notebook_tab == 0:
@@ -517835,18 +517924,17 @@ index 0000000..a8b3628
+
+ def get_filter_data(self, windows, *args):
+ #search for desired item
-+ self.filter_txt = windows.get_text() # The txt that the user inputs into the filter is stored in filter_txt
++ # The txt that the user inputs into the filter is stored in filter_txt
++ self.filter_txt = windows.get_text()
+ self.filter_data_set.refilter()
+
+ def populate_booldict(self, model, iter):
+ name = model.get_value(iter, 2)
+ enabled = model.get_value(iter, 0)
-+ #if name not in self.booldict:
-+ # self.booldict[name] = {'active': enabled, 'old': False, 'oldvar': False}
+ if self.booldict.has_key(name):
+ #split up if fixes keyerror
+ if not self.booldict[name]['old']:
-+ # The case where an old bool is changed then changed back, keeps the old variables old
++ # The case where an old bool is changed then changed back, keeps the old variables old
+ if not self.booldict[name]['oldvar']:
+ self.booldict.pop(name)
+ else:
@@ -517927,35 +518015,37 @@ index 0000000..a8b3628
+ self.update_window.show()
+ self.window.set_sensitive(False)
+
-+ def system_interface(self, button, *args):
-+ if button.get_label() == "System":
++ def set_active_application_button(self):
++ if self.booleans_radio_button.get_active():
++ self.active_button = self.booleans_radio_button
++ if self.files_radio_button.get_active():
++ self.active_button = self.files_radio_button
++ if self.transitions_radio_button.get_active():
++ self.active_button = self.transitions_radio_button
++ if self.network_radio_button.get_active():
++ self.active_button = self.network_radio_button
++
++ def show_system_page(self, val):
++ self.main_selection_window.hide()
++ if val:
+ self.applications_button_selection.set_label("System")
+ self.app_system_button.set_label("Applications")
-+ self.main_selection_window.hide()
-+ self.outer_notebook.set_visible(False)
-+ self.booleans_radio_button.set_visible(False)
-+ self.files_radio_button.set_visible(False)
-+ self.network_radio_button.set_visible(False)
-+ self.transitions_radio_button.set_visible(False)
-+ self.systems_box.set_visible(True)
-+ self.system_button.set_visible(True)
-+ #self.window.set_resizable(False)
-+ #resize = self.window.get_default_size()
-+ #self.window.resize(resize[0], resize[1])
-+ self.idle_func()
-+
-+ elif button.get_label() == "Applications":
++ self.set_active_application_button()
++ self.system_radio_button.set_active(True)
++ else:
++ self.active_button.set_active(True)
+ self.applications_button_selection.set_label("Applications")
+ self.app_system_button.set_label("System")
-+ self.main_selection_window.hide()
-+ self.outer_notebook.set_visible(True)
-+ self.booleans_radio_button.set_visible(True)
-+ self.files_radio_button.set_visible(True)
-+ self.network_radio_button.set_visible(True)
-+ self.transitions_radio_button.set_visible(True)
-+ self.systems_box.set_visible(False)
-+ self.system_button.set_visible(False)
-+ self.window.set_resizable(True)
++ self.booleans_radio_button.set_visible(not val)
++ self.files_radio_button.set_visible(not val)
++ self.network_radio_button.set_visible(not val)
++ self.transitions_radio_button.set_visible(not val)
++ self.system_radio_button.set_visible(val)
++ self.lockdown_radio_button.set_visible(val)
++ self.idle_func()
++
++ def system_interface(self, button, *args):
++ self.show_system_page(button.get_label() == "System")
+
+ def show_mislabeled_files(self, checkbutton, *args):
+ iterlist = []
@@ -518143,10 +518233,7 @@ index 0000000..a8b3628
+ ctr += 1
+ if update == False:
+ self.update_window.hide()
-+ #self.window.hide()
-+ #self.application_selected()
+ self.window.set_sensitive(True)
-+ #self.window.show()
+
+ def reveal_advanced_system(self, label, *args):
+ if label.get_text() == ADVANCED_LABEL[0]:
@@ -518188,7 +518275,8 @@ index 0000000..a8b3628
+ return
+
+ entrypoints = sepolicy.get_entrypoints(domain)
-+ for exe in entrypoints: # From entry_point = 0 to the number of keys in the dic
++ # From entry_point = 0 to the number of keys in the dic
++ for exe in entrypoints:
+ if len(entrypoints[exe]):
+ file_class = entrypoints[exe][1]
+ for path in entrypoints[exe][0]:
@@ -518261,8 +518349,9 @@ index 0000000..a8b3628
+ if row == None:
+ self.modify_button_file.set_sensitive(True)
+ self.modify_button_network.set_sensitive(True)
-+ iter = row.get_selected() # iter[0] is tree model iter[1] is the iter
-+ if not self.error_check_iter(iter[1]): # Returns True if there is an error
++ model, iter = row.get_selected()
++ # Returns True if there is an error
++ if not self.error_check_iter(iter):
+ self.modify_button_file.set_sensitive(True)
+ self.modify_button_network.set_sensitive(True)
+
@@ -518308,6 +518397,8 @@ index 0000000..a8b3628
+ self.typeHistory = self.system_policy_type_combobox.get_active()
+
+ def change_default_mode(self, button):
++ if not self.finish_init:
++ return
+ self.enabled_changed(button)
+ if button.get_active():
+ self.dbus.change_default_mode(button.get_label().lower())
@@ -518349,32 +518440,47 @@ index 0000000..a8b3628
+ dic[app, ipage, operation] = {}
+ if (p, q) not in dic[app, ipage, operation]:
+ dic[app, ipage, operation][p, q] = {'type': ftype, 'mls': mls, 'changed': changed, 'old': old}
-+ def convert_unicode(self, unicodedata):
-+ return unicodedata.encode('ascii')
++
+ def organize_dict(self, d):
-+ if d.startswith('boolean') and d != 'boolean -D':
-+ boolname = self.convert_unicode(d.split()[3])
-+ value = d.split()[2]
++ argv = d.split()
++ if len(argv) == 0:
++ return
++ cmd = argv[0]
++ argv = argv[1:]
++
++ if "-D" in argv:
++ return
++
++ if cmd == 'boolean':
++ boolname = argv[2]
++ value = argv[1]
+ self.booldict[boolname] = {'active': self.translate_bool(value), 'old': True, 'oldvar': True}
++ return
+
-+ elif d.startswith('port') and d != 'port -D':
-+ port = self.convert_unicode(d.split()[-1])
-+ protocol = self.convert_unicode(d.split()[5])
-+ ptype = self.convert_unicode(d.split()[3])
++ if cmd == "port":
++ port = argv[-1]
++ protocol = argv[4]
++ ptype = argv[2]
+
+ for ipage in [0,1]:
+ self.init_dictionary(self.portdict, self.application, ipage, 'Add', port, protocol, ptype, 0, False, True)
+ self.portdict[self.application, ipage, 'Add'][port, protocol] = {'type': ptype, 'mls': 1, 'changed': False, 'old': True}
++ return
+
-+ elif d.startswith('fcontext') and d != 'fcontext -D':
-+ path = self.convert_unicode(d.split()[-1]).strip("'")
-+ label = self.convert_unicode(d.split()[5])
-+ fclass = self.convert_unicode(d.split()[3])
-+ fclass = sepolicy.file_type_str[fclass]
++ if cmd == "fcontext":
++ args = d[1:].split()
++ if "-e" in args:
++ path = argv[-1]
++ equiv = argv[1]
++ else:
++ path = argv[-1].strip("'")
++ label = argv[4]
++ fclass = argv[2]
++ fclass = sepolicy.file_type_str[fclass]
+
-+ for ipage in range(0,3):
-+ self.init_dictionary(self.filedict, self.application, ipage, 'Add', path, fclass, label, 0, False, True)
-+ self.filedict[self.application, ipage, 'Add'][path, fclass] = {'type': label, 'mls': 1, 'changed': False, 'old': True}
++ for ipage in range(0,3):
++ self.init_dictionary(self.filedict, self.application, ipage, 'Add', path, fclass, label, 0, False, True)
++ self.filedict[self.application, ipage, 'Add'][path, fclass] = {'type': label, 'mls': 1, 'changed': False, 'old': True}
+
+ def translate_bool(self, b):
+ b = b.split('-')[1]
@@ -518483,11 +518589,11 @@ index 0000000..a8b3628
+ if not radio.get_active():
+ return
+ label = radio.get_label()
-+ if label == 'Disabled' and self.enforce_mode != -1:
++ if label == 'Disabled' and self.enforce_mode != DISABLED:
+ if self.verify(_("Changing to SELinux disabled requires a reboot. It is not recommended. If you later decide to turn SELinux back on, the system will be required to relabel. If you just want to see if SELinux is causing a problem on your system, you can go to permissive mode which will only log errors and not enforce SELinux policy. Permissive mode does not require a reboot. Do you wish to continue?")) == Gtk.ResponseType.NO:
+ self.enforce_button.set_active(True)
-+
-+ if label != 'Disabled' and self.enforce_mode == -1:
++
++ if label != 'Disabled' and self.enforce_mode == DISABLED:
+ 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.ResponseType.NO:
+ self.enforce_button.set_active(True)
+ self.enforce_button = radio
@@ -518524,39 +518630,39 @@ index 0000000..a7b4206
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/booleans.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/files_apps.png b/policycoreutils/sepolicy/sepolicy/help/files_apps.png
new file mode 100644
-index 0000000..2c42632
+index 0000000..04dddf2
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/files_apps.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/files_exec.png b/policycoreutils/sepolicy/sepolicy/help/files_exec.png
new file mode 100644
-index 0000000..67d7805
+index 0000000..3de19cc
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/files_exec.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/files_write.png b/policycoreutils/sepolicy/sepolicy/help/files_write.png
new file mode 100644
-index 0000000..38b27fc
+index 0000000..908fd81
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/files_write.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/ports_inbound.png b/policycoreutils/sepolicy/sepolicy/help/ports_inbound.png
new file mode 100644
-index 0000000..5021022
+index 0000000..af2dd9f
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/ports_inbound.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/ports_outbound.png b/policycoreutils/sepolicy/sepolicy/help/ports_outbound.png
new file mode 100644
-index 0000000..a0bf7da
+index 0000000..da8633b
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/ports_outbound.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/system.png b/policycoreutils/sepolicy/sepolicy/help/system.png
new file mode 100644
-index 0000000..864696e
+index 0000000..6727874
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/system.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/transition_file.png b/policycoreutils/sepolicy/sepolicy/help/transition_file.png
new file mode 100644
-index 0000000..45f19ca
+index 0000000..1234e54
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/transition_file.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/transition_from.png b/policycoreutils/sepolicy/sepolicy/help/transition_from.png
new file mode 100644
-index 0000000..d49178f
+index 0000000..26a6d43
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/transition_from.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/help/transition_to.png b/policycoreutils/sepolicy/sepolicy/help/transition_to.png
new file mode 100644
-index 0000000..b474da7
+index 0000000..49558d9
Binary files /dev/null and b/policycoreutils/sepolicy/sepolicy/help/transition_to.png differ
diff --git a/policycoreutils/sepolicy/sepolicy/interface.py b/policycoreutils/sepolicy/sepolicy/interface.py
index 8b063ca..c7dac62 100644
@@ -519390,12 +519496,12 @@ index 0000000..7ad2af7
+ print e
diff --git a/policycoreutils/sepolicy/sepolicy/sepolicy.glade b/policycoreutils/sepolicy/sepolicy/sepolicy.glade
new file mode 100644
-index 0000000..ab14d7e
+index 0000000..6761ed2
--- /dev/null
+++ b/policycoreutils/sepolicy/sepolicy/sepolicy.glade
-@@ -0,0 +1,4114 @@
+@@ -0,0 +1,4322 @@
+<?xml version="1.0" encoding="UTF-8"?>
-+<!-- Generated with glade 3.15.2 on Fri Aug 30 15:18:54 2013 -->
++<!-- Generated with glade 3.15.2 on Tue Sep 3 16:37:00 2013 -->
+<interface>
+ <!-- interface-requires gtk+ 3.8 -->
+ <object class="GtkListStore" id="Advanced_search_liststore">
@@ -519942,18 +520048,16 @@ index 0000000..ab14d7e
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow14">
++ <property name="height_request">250</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
-+ <property name="height_request">200</property>
+ <child>
+ <object class="GtkLabel" id="help_text">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="xalign">0</property>
-+ <property name="xpad">10</property>
-+ <property name="label" translatable="yes"><operation> File Labeling for <selected domain>. File labels will be created when update is applied.</property>
-+ <property name="justify">fill</property>
++ <property name="label" translatable="yes"></property>
++ <property name="wrap_mode">word</property>
+ <property name="wrap">True</property>
+ </object>
+ <packing>
@@ -519963,7 +520067,6 @@ index 0000000..ab14d7e
+ </packing>
+ </child>
+ </object>
-+
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
@@ -520896,9 +520999,11 @@ index 0000000..ab14d7e
+ <property name="label" translatable="yes">System</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
++ <property name="tooltip_text" translatable="yes">Manage the SELinux configuration</property>
+ <property name="xalign">0.5</property>
-+ <property name="active">True</property>
+ <property name="draw_indicator">False</property>
++ <property name="group">Booleans_button</property>
++ <signal name="toggled" handler="on_System_button_toggled" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
@@ -520907,6 +521012,24 @@ index 0000000..ab14d7e
+ </packing>
+ </child>
+ <child>
++ <object class="GtkRadioButton" id="Lockdown_button">
++ <property name="label" translatable="yes">Lockdown</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="tooltip_text" translatable="yes">Lockdown the SELinux System.
++This screen can be used to turn up the SELinux Protections.</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">False</property>
++ <property name="group">Booleans_button</property>
++ <signal name="toggled" handler="on_Lockdown_button_toggled" swapped="no"/>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">6</property>
++ </packing>
++ </child>
++ <child>
+ <object class="GtkEventBox" id="eventbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
@@ -520924,7 +521047,7 @@ index 0000000..ab14d7e
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
-+ <property name="position">6</property>
++ <property name="position">7</property>
+ </packing>
+ </child>
+ </object>
@@ -522296,448 +522419,627 @@ index 0000000..ab14d7e
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
-+ </object>
-+ <packing>
-+ <property name="expand">True</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkVBox" id="Systems_box">
-+ <property name="can_focus">False</property>
-+ <property name="valign">start</property>
+ <child>
-+ <object class="GtkFrame" id="System_mode_frame">
++ <object class="GtkBox" id="system_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="valign">center</property>
-+ <property name="border_width">10</property>
-+ <property name="label_xalign">0</property>
-+ <property name="shadow_type">out</property>
++ <property name="halign">start</property>
++ <property name="hexpand">False</property>
++ <property name="vexpand">False</property>
++ <property name="orientation">vertical</property>
+ <child>
-+ <object class="GtkBox" id="box6">
++ <object class="GtkFrame" id="System_mode_frame">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="halign">start</property>
++ <property name="valign">center</property>
++ <property name="border_width">10</property>
++ <property name="label_xalign">0</property>
++ <property name="shadow_type">out</property>
+ <child>
-+ <object class="GtkTable" id="grid1">
++ <object class="GtkBox" id="box6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="halign">center</property>
-+ <property name="valign">center</property>
++ <property name="halign">start</property>
+ <child>
-+ <object class="GtkLabel" id="label18">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">0.05000000074505806</property>
-+ <property name="label" translatable="yes">Select the system mode when the system first boots up</property>
-+ </object>
-+ <packing>
-+ <property name="x_padding">15</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkHBox" id="box7">
++ <object class="GtkTable" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="halign">center</property>
++ <property name="valign">center</property>
+ <child>
-+ <object class="GtkRadioButton" id="Enforcing_button_default">
-+ <property name="label" translatable="yes">Enforcing</property>
++ <object class="GtkLabel" id="label18">
+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="margin_left">50</property>
-+ <property name="xalign">0</property>
-+ <property name="yalign">0.50999999046325684</property>
-+ <property name="active">True</property>
-+ <property name="draw_indicator">True</property>
-+ <signal name="group-changed" handler="gtk_main_quit" swapped="no"/>
-+ <signal name="toggled" handler="on_Enforcing_button_default_toggled" swapped="no"/>
++ <property name="can_focus">False</property>
++ <property name="xalign">0.05000000074505806</property>
++ <property name="label" translatable="yes">Select the system mode when the system first boots up</property>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">False</property>
-+ <property name="position">0</property>
++ <property name="x_padding">15</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkRadioButton" id="Permissive_button_default">
-+ <property name="label" translatable="yes">Permissive</property>
++ <object class="GtkHBox" id="box7">
+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="xalign">0</property>
-+ <property name="draw_indicator">True</property>
-+ <property name="group">Enforcing_button_default</property>
-+ <signal name="toggled" handler="on_Permissive_button_default_toggled" swapped="no"/>
++ <property name="can_focus">False</property>
++ <child>
++ <object class="GtkRadioButton" id="Enforcing_button_default">
++ <property name="label" translatable="yes">Enforcing</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="margin_left">50</property>
++ <property name="xalign">0</property>
++ <property name="active">True</property>
++ <property name="draw_indicator">True</property>
++ <signal name="group-changed" handler="gtk_main_quit" swapped="no"/>
++ <signal name="toggled" handler="on_Enforcing_button_default_toggled" swapped="no"/>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRadioButton" id="Permissive_button_default">
++ <property name="label" translatable="yes">Permissive</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">Enforcing_button_default</property>
++ <signal name="toggled" handler="on_Permissive_button_default_toggled" swapped="no"/>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRadioButton" id="Disabled_button_default">
++ <property name="label" translatable="yes">Disabled</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">Enforcing_button_default</property>
++ <signal name="toggled" handler="on_Disabled_button_default_toggled" swapped="no"/>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">False</property>
-+ <property name="position">1</property>
++ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkRadioButton" id="Disabled_button_default">
-+ <property name="label" translatable="yes">Disabled</property>
++ <object class="GtkLabel" id="Enforcing_label">
+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0.0099999997764825821</property>
++ <property name="label" translatable="yes">Select the system mode for the current session</property>
++ </object>
++ <packing>
++ <property name="top_attach">2</property>
++ <property name="x_padding">15</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkHBox" id="box8">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <child>
++ <object class="GtkRadioButton" id="Enforcing_button">
++ <property name="label" translatable="yes">Enforcing</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="margin_left">50</property>
++ <property name="xalign">0</property>
++ <property name="active">True</property>
++ <property name="draw_indicator">True</property>
++ <signal name="toggled" handler="on_Enforcing_button_toggled" swapped="no"/>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRadioButton" id="Permissive_button">
++ <property name="label" translatable="yes">Permissive</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">Enforcing_button</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">3</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="advanced_system">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
-+ <property name="draw_indicator">True</property>
-+ <property name="group">Enforcing_button_default</property>
-+ <signal name="toggled" handler="on_Disabled_button_default_toggled" swapped="no"/>
++ <property name="label" translatable="yes">Advanced >></property>
++ <property name="selectable">True</property>
++ <property name="ellipsize">end</property>
++ <attributes>
++ <attribute name="foreground" value="#00004e4e9999"/>
++ </attributes>
++ <signal name="button-press-event" handler="on_advanced_system_button_press_event" swapped="no"/>
++ </object>
++ <packing>
++ <property name="top_attach">4</property>
++ <property name="x_padding">15</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkHBox" id="box10">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <child>
++ <object class="GtkLabel" id="system_policy_type_label">
++ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">System Policy Type:</property>
++ <property name="width_chars">15</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkComboBox" id="system_policy_type_combobox">
++ <property name="width_request">200</property>
++ <property name="can_focus">False</property>
++ <property name="margin_left">10</property>
++ <property name="model">system_policy_type_liststore</property>
++ <signal name="changed" handler="on_system_policy_type_combobox_changed" swapped="no"/>
++ <child>
++ <object class="GtkCellRendererText" id="cellrenderertext20"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">False</property>
-+ <property name="position">2</property>
++ <property name="top_attach">5</property>
++ <property name="x_padding">15</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
-+ <property name="top_attach">1</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkLabel" id="label16">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="xalign">0.0099999997764825821</property>
-+ <property name="label" translatable="yes">Select the system mode for the current session</property>
-+ </object>
-+ <packing>
-+ <property name="top_attach">2</property>
-+ <property name="x_padding">15</property>
-+ </packing>
++ <placeholder/>
+ </child>
++ </object>
++ </child>
++ <child type="label">
++ <object class="GtkLabel" id="label12">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes"><b>System Mode</b></property>
++ <property name="use_markup">True</property>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="padding">10</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkFrame" id="System_configuration_frame">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="valign">center</property>
++ <property name="border_width">10</property>
++ <property name="label_xalign">0</property>
++ <property name="shadow_type">out</property>
++ <child>
++ <object class="GtkBox" id="box13">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="halign">start</property>
+ <child>
-+ <object class="GtkHBox" id="box8">
++ <object class="GtkTable" id="grid2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="halign">center</property>
++ <property name="valign">center</property>
++ <property name="n_rows">4</property>
++ <property name="n_columns">2</property>
+ <child>
-+ <object class="GtkRadioButton" id="Enforcing_button">
-+ <property name="label" translatable="yes">Enforcing</property>
++ <object class="GtkLabel" id="label10">
+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="margin_left">50</property>
++ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
-+ <property name="active">True</property>
-+ <property name="draw_indicator">True</property>
-+ <signal name="toggled" handler="on_Enforcing_button_toggled" swapped="no"/>
++ <property name="label" translatable="yes">Import system settings from another machine</property>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
++ <property name="x_padding">15</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkRadioButton" id="Permissive_button">
-+ <property name="label" translatable="yes">Permissive</property>
++ <object class="GtkButton" id="Import_button">
++ <property name="label" translatable="yes">Import</property>
++ <property name="width_request">65</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="xalign">0</property>
-+ <property name="draw_indicator">True</property>
-+ <property name="group">Enforcing_button</property>
++ <property name="receives_default">True</property>
++ <signal name="clicked" handler="on_Import_button_clicked" swapped="no"/>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
++ <property name="left_attach">1</property>
++ <property name="x_options"/>
++ <property name="y_options"/>
++ <property name="x_padding">10</property>
+ </packing>
+ </child>
-+ </object>
-+ <packing>
-+ <property name="top_attach">3</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkLabel" id="advanced_system">
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="xalign">0</property>
-+ <property name="label" translatable="yes">Advanced >></property>
-+ <property name="selectable">True</property>
-+ <property name="ellipsize">end</property>
-+ <attributes>
-+ <attribute name="foreground" value="#00004e4e9999"/>
-+ </attributes>
-+ <signal name="button-press-event" handler="on_advanced_system_button_press_event" swapped="no"/>
-+ </object>
-+ <packing>
-+ <property name="top_attach">4</property>
-+ <property name="x_padding">15</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkHBox" id="box10">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
+ <child>
-+ <object class="GtkLabel" id="system_policy_type_label">
++ <object class="GtkLabel" id="label11">
++ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
-+ <property name="label" translatable="yes">System Policy Type:</property>
-+ <property name="width_chars">15</property>
++ <property name="label" translatable="yes">Export system settings to a file</property>
++ <property name="ellipsize">middle</property>
++ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="x_padding">15</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkButton" id="Export_button">
++ <property name="label" translatable="yes">Export</property>
++ <property name="width_request">65</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">True</property>
++ <signal name="clicked" handler="on_Export_button_clicked" swapped="no"/>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">1</property>
++ <property name="x_options"/>
++ <property name="y_options"/>
++ <property name="x_padding">10</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="label13">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Relabel all files back to system defaults on reboot</property>
++ </object>
++ <packing>
++ <property name="top_attach">3</property>
++ <property name="x_padding">15</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSeparator" id="separator1">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">False</property>
-+ <property name="position">0</property>
++ <property name="top_attach">2</property>
++ <property name="bottom_attach">3</property>
++ <property name="y_padding">5</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkComboBox" id="system_policy_type_combobox">
-+ <property name="width_request">200</property>
++ <object class="GtkSeparator" id="separator2">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="right_attach">2</property>
++ <property name="top_attach">2</property>
++ <property name="bottom_attach">3</property>
++ <property name="y_padding">5</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox" id="box5">
++ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="margin_left">10</property>
-+ <property name="model">system_policy_type_liststore</property>
-+ <signal name="changed" handler="on_system_policy_type_combobox_changed" swapped="no"/>
+ <child>
-+ <object class="GtkCellRendererText" id="cellrenderertext20"/>
-+ <attributes>
-+ <attribute name="text">0</attribute>
-+ </attributes>
++ <object class="GtkRadioButton" id="Relabel_button">
++ <property name="label" translatable="yes">Yes</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="active">True</property>
++ <property name="draw_indicator">True</property>
++ <signal name="toggled" handler="on_Relabel_button_toggled_cb" swapped="no"/>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkRadioButton" id="Relabel_button_no">
++ <property name="label" translatable="yes">No</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">Relabel_button</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
+ </child>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
++ <property name="left_attach">1</property>
++ <property name="right_attach">2</property>
++ <property name="top_attach">3</property>
++ <property name="bottom_attach">4</property>
++ <property name="x_options"/>
++ <property name="y_options"/>
++ <property name="x_padding">10</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
-+ <property name="top_attach">5</property>
-+ <property name="x_padding">15</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
++ <child>
++ <placeholder/>
++ </child>
+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
+ </child>
-+ <child>
-+ <placeholder/>
++ <child type="label">
++ <object class="GtkLabel" id="label9">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes"><b>System Configuration</b></property>
++ <property name="use_markup">True</property>
++ </object>
+ </child>
+ </object>
-+ </child>
-+ <child type="label">
-+ <object class="GtkLabel" id="label12">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="label" translatable="yes"><b>System Mode</b></property>
-+ <property name="use_markup">True</property>
-+ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">1</property>
++ </packing>
+ </child>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="padding">10</property>
-+ <property name="position">0</property>
++ <property name="position">4</property>
++ </packing>
++ </child>
++ <child type="tab">
++ <object class="GtkLabel" id="label15">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">System</property>
++ </object>
++ <packing>
++ <property name="position">4</property>
++ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkFrame" id="System_configuration_frame">
++ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="valign">center</property>
-+ <property name="border_width">10</property>
-+ <property name="label_xalign">0</property>
-+ <property name="shadow_type">out</property>
+ <child>
-+ <object class="GtkBox" id="box13">
++ <object class="GtkFrame" id="frame1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="halign">start</property>
++ <property name="label_xalign">0</property>
++ <property name="shadow_type">none</property>
+ <child>
-+ <object class="GtkTable" id="grid2">
++ <object class="GtkBox" id="box16">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
-+ <property name="halign">center</property>
-+ <property name="valign">center</property>
+ <child>
-+ <object class="GtkLabel" id="label10">
++ <object class="GtkRadioButton" id="enable_unconfined">
++ <property name="label" translatable="yes">Enable</property>
+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
-+ <property name="label" translatable="yes">Import system settings from another machine</property>
++ <property name="active">True</property>
++ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
-+ <property name="x_padding">15</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkButton" id="Import_button">
-+ <property name="label" translatable="yes">Import</property>
-+ <property name="width_request">65</property>
++ <object class="GtkRadioButton" id="disable_unconfined">
++ <property name="label" translatable="yes">Disable</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <signal name="clicked" handler="on_Import_button_clicked" swapped="no"/>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="x_options"/>
-+ <property name="y_options"/>
-+ <property name="x_padding">10</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkLabel" id="label11">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
++ <property name="receives_default">False</property>
+ <property name="xalign">0</property>
-+ <property name="label" translatable="yes">Export system settings to a file</property>
-+ <property name="ellipsize">middle</property>
++ <property name="active">True</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">enable_unconfined</property>
+ </object>
+ <packing>
-+ <property name="top_attach">1</property>
-+ <property name="x_padding">15</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
++ </object>
++ </child>
++ <child type="label">
++ <object class="GtkLabel" id="label19">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes"><b>Unconfined Module</b></property>
++ <property name="use_markup">True</property>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">0</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkTreeView" id="unconfined_treeview">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hscroll_policy">natural</property>
++ <property name="vscroll_policy">natural</property>
++ <property name="enable_search">False</property>
++ <property name="show_expanders">False</property>
++ <child internal-child="selection">
++ <object class="GtkTreeSelection" id="treeview-selection17"/>
++ </child>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">0</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkFrame" id="frame2">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label_xalign">0</property>
++ <property name="shadow_type">none</property>
++ <child>
++ <object class="GtkBox" id="box17">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
+ <child>
-+ <object class="GtkButton" id="Export_button">
-+ <property name="label" translatable="yes">Export</property>
-+ <property name="width_request">65</property>
++ <object class="GtkRadioButton" id="enable_permissive">
++ <property name="label" translatable="yes">Enable</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
-+ <property name="receives_default">True</property>
-+ <signal name="clicked" handler="on_Export_button_clicked" swapped="no"/>
-+ </object>
-+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="top_attach">1</property>
-+ <property name="x_options"/>
-+ <property name="y_options"/>
-+ <property name="x_padding">10</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkLabel" id="label13">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="label" translatable="yes">Relabel all files back to system defaults on reboot</property>
-+ </object>
-+ <packing>
-+ <property name="top_attach">3</property>
-+ <property name="x_padding">15</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkSeparator" id="separator1">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ </object>
-+ <packing>
-+ <property name="top_attach">2</property>
-+ <property name="bottom_attach">3</property>
-+ <property name="y_padding">5</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkSeparator" id="separator2">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="active">True</property>
++ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="right_attach">2</property>
-+ <property name="top_attach">2</property>
-+ <property name="bottom_attach">3</property>
-+ <property name="y_padding">5</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
-+ <object class="GtkBox" id="box5">
++ <object class="GtkRadioButton" id="disable_permissive">
++ <property name="label" translatable="yes">Disable</property>
+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <child>
-+ <object class="GtkRadioButton" id="Relabel_button">
-+ <property name="label" translatable="yes">Yes</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="xalign">0</property>
-+ <property name="active">True</property>
-+ <property name="draw_indicator">True</property>
-+ <signal name="toggled" handler="on_Relabel_button_toggled_cb" swapped="no"/>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
-+ </child>
-+ <child>
-+ <object class="GtkRadioButton" id="Relabel_button_no">
-+ <property name="label" translatable="yes">No</property>
-+ <property name="visible">True</property>
-+ <property name="can_focus">True</property>
-+ <property name="receives_default">False</property>
-+ <property name="xalign">0</property>
-+ <property name="active">True</property>
-+ <property name="draw_indicator">True</property>
-+ <property name="group">Relabel_button</property>
-+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
-+ </packing>
-+ </child>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">True</property>
++ <property name="group">enable_permissive</property>
+ </object>
+ <packing>
-+ <property name="left_attach">1</property>
-+ <property name="right_attach">2</property>
-+ <property name="top_attach">3</property>
-+ <property name="bottom_attach">4</property>
-+ <property name="x_options"/>
-+ <property name="y_options"/>
-+ <property name="x_padding">10</property>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
-+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">0</property>
-+ </packing>
+ </child>
-+ <child>
-+ <placeholder/>
++ <child type="label">
++ <object class="GtkLabel" id="label22">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes"><b>Permissive Domains</b></property>
++ <property name="use_markup">True</property>
++ </object>
+ </child>
+ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">1</property>
++ <property name="width">1</property>
++ <property name="height">1</property>
++ </packing>
+ </child>
-+ <child type="label">
-+ <object class="GtkLabel" id="label9">
-+ <property name="visible">True</property>
-+ <property name="can_focus">False</property>
-+ <property name="label" translatable="yes"><b>System Configuration</b></property>
-+ <property name="use_markup">True</property>
-+ </object>
++ <child>
++ <placeholder/>
+ </child>
+ </object>
+ <packing>
-+ <property name="expand">False</property>
-+ <property name="fill">True</property>
-+ <property name="position">1</property>
++ <property name="position">5</property>
++ </packing>
++ </child>
++ <child type="tab">
++ <object class="GtkLabel" id="label17">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Lockdown</property>
++ </object>
++ <packing>
++ <property name="position">5</property>
++ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
-+ <property name="position">2</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
++ <child>
++ <placeholder/>
++ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
@@ -522746,6 +523048,18 @@ index 0000000..ab14d7e
+ </packing>
+ </child>
+ <child>
++ <object class="GtkSeparator" id="separator3">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="padding">4</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ <child>
+ <object class="GtkHBox" id="lower_box_applications">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
@@ -522787,7 +523101,7 @@ index 0000000..ab14d7e
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
-+ <property name="position">2</property>
++ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
diff --git a/policycoreutils.spec b/policycoreutils.spec
index f884a5c..52b1be4 100644
--- a/policycoreutils.spec
+++ b/policycoreutils.spec
@@ -7,7 +7,7 @@
Summary: SELinux policy core utilities
Name: policycoreutils
Version: 2.1.14
-Release: 77%{?dist}
+Release: 78%{?dist}
License: GPLv2
Group: System Environment/Base
# Based on git repository with tag 20101221
@@ -119,8 +119,8 @@ an SELinux environment.
%{python_sitearch}/sepolgen
%dir %{python_sitearch}/sepolicy
%{python_sitearch}/sepolicy/*so
-%{python_sitearch}/sepolicy/templates
-%{python_sitearch}/sepolicy/help
+%dir %{python_sitearch}/sepolicy/templates
+%dir %{python_sitearch}/sepolicy/help
%{python_sitearch}/sepolicy/help/*
%{python_sitearch}/sepolicy/__init__.py*
%{python_sitearch}/sepolicy/booleans.py*
@@ -336,6 +336,14 @@ The policycoreutils-restorecond package contains the restorecond service.
%systemd_postun_with_restart restorecond.service
%changelog
+* Tue Sep 3 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-78
+- Random fixes for sepolicy gui
+- Update Translations
+
+* Fri Aug 30 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-77
+- Add help screens for each page
+- Fixes for system page
+
* Mon Aug 26 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-76
- Add Miroslav Grepl Patch to handle semanage -i and semanage -o better
- Update Translations
More information about the scm-commits
mailing list