[policycoreutils] Fix bugs introduced by previous patch. semanage port

Daniel J Walsh dwalsh at fedoraproject.org
Tue Jul 23 21:00:18 UTC 2013


commit d21896c450b1f86c49a0dd32ce63599793b87617
Author: Dan Walsh <dwalsh at redhat.com>
Date:   Tue Jul 23 16:59:48 2013 -0400

    Fix bugs introduced by previous patch.  semanage port
    
    - Update Translations
    - Add test suite for sepolicy command lines

 policycoreutils-rhat.patch |  759 ++++++++++++++++++++++++++++----------------
 policycoreutils.spec       |    7 +-
 2 files changed, 498 insertions(+), 268 deletions(-)
---
diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch
index 54019a2..bec4a48 100644
--- a/policycoreutils-rhat.patch
+++ b/policycoreutils-rhat.patch
@@ -190334,10 +190334,10 @@ index e7b146f..b45469a 100644
 +msgid "Boolean %s Allow Rules"
 +msgstr ""
 diff --git a/policycoreutils/po/mr.po b/policycoreutils/po/mr.po
-index 855f08a..1a8ebe5 100644
+index 855f08a..f3892ba 100644
 --- a/policycoreutils/po/mr.po
 +++ b/policycoreutils/po/mr.po
-@@ -3,17 +3,19 @@
+@@ -3,18 +3,20 @@
  # This file is distributed under the same license as the PACKAGE package.
  # 
  # Translators:
@@ -190359,11 +190359,13 @@ index 855f08a..1a8ebe5 100644
  "Report-Msgid-Bugs-To: \n"
 -"POT-Creation-Date: 2013-01-04 12:01-0500\n"
 -"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-10 20:43+0000\n"
- "Last-Translator: dwalsh <dwalsh at redhat.com>\n"
++"PO-Revision-Date: 2013-07-23 08:52+0000\n"
++"Last-Translator: sandeeps <sshedmak at redhat.com>\n"
  "Language-Team: Marathi (http://www.transifex.com/projects/p/fedora/language/mr/)\n"
  "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
 @@ -29,7 +31,7 @@ msgid ""
  "         <args ...> are the arguments to that script."
  msgstr "वापर: run_init <script> <args ...>\n जेथे: <script> हे चालवण्याजोगी init स्क्रिप्टचे नाव आहे,\n        <args ...> हे स्क्रिप्टच्या बाबी आहेत."
@@ -190399,7 +190401,7 @@ index 855f08a..1a8ebe5 100644
 +#: ../semanage/seobject.py:288
 +#, python-format
 +msgid "Module does not exists %s "
-+msgstr ""
++msgstr "मॉड्युल %s अस्तित्वात नाही "
 +
 +#: ../semanage/seobject.py:298
  #, python-format
@@ -190440,7 +190442,7 @@ index 855f08a..1a8ebe5 100644
 +"In some distributions it is included in the policycoreutils-devel patckage.\n"
 +"# yum install policycoreutils-devel\n"
 +"Or similar for your distro."
-+msgstr ""
++msgstr "परमिसिव्ह डोमेन्सच्या मांडणीकरीता sepolgen पायथन मॉड्युल आवश्यक आहे.\nकाही वितरणांमध्ये त्यास policycoreutils-devel संकुलमध्ये समाविष्ट केले आहे.\n# yum install policycoreutils-devel\nकिंवा वितरणकरीता समान."
 +
 +#: ../semanage/seobject.py:418
  #, python-format
@@ -192558,7 +192560,7 @@ index 855f08a..1a8ebe5 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"
@@ -192720,23 +192722,23 @@ index 855f08a..1a8ebe5 100644
  msgstr "httpd ला openstack पोर्टसकरीता प्रवेश द्या"
  
 -#: booleans.py:100
--msgid "Allow Apache to query NS records"
 +#: booleans.py:103
 +msgid "Allow httpd to connect to  sasl"
- msgstr ""
++msgstr "httpdला saslसह जोडणीकरिता परवानगी द्या"
++
++#: booleans.py:104
+ msgid "Allow Apache to query NS records"
+-msgstr ""
++msgstr "अपॅचीला NS रेकॉर्ड्सची चौकशीकरीता परवानगी द्या"
  
 -#: booleans.py:101
 -msgid "Allow icecast to connect to all ports, not just sound ports."
 -msgstr "icecast ला सर्व पोर्टस्सह, फक्त साऊंड पोर्टस्चं नाही जोडणीकरीता परवानगी द्या."
-+#: booleans.py:104
-+msgid "Allow Apache to query NS records"
-+msgstr "अपॅचीला NS रेकॉर्ड्सची चौकशीकरीता परवानगी द्या"
- 
--#: booleans.py:102
 +#: booleans.py:105
 +msgid "Determine whether icecast can listen on and connect to any TCP port."
 +msgstr "icecast क्लाएंट्स कोणत्याही TCP पोर्ट्सकरीता ऐकू व जोडणी करू शकतो किंवा नाही, हे ओळखा."
-+
+ 
+-#: booleans.py:102
 +#: booleans.py:106
 +msgid ""
 +"Determine whether irc clients can listen on and connect to any unreserved "
@@ -192814,7 +192816,7 @@ index 855f08a..1a8ebe5 100644
 -msgstr "mount आदेशला कोणतिहि डिरेक्ट्री किंवा फाइल माउंट करण्यास परवानगी द्या."
 +#: booleans.py:121
 +msgid "Allow the mount commands to mount any directory or file."
-+msgstr ""
++msgstr "माऊंट आदेशांना कोणतिही डिरेक्ट्री किंवा फाइल माऊंट करण्यासाठी परवानगी द्या."
  
 -#: booleans.py:110
 +#: booleans.py:122
@@ -192827,12 +192829,12 @@ index 855f08a..1a8ebe5 100644
 -msgstr "वापरकर्त्याच्या होम डिरेक्ट्रीमध्ये mozilla_plugins ला विनाक्रम अंतर्भुत माहिती निर्माण करायची परवानगी द्या"
 +#: booleans.py:123
 +msgid "Allow mozilla plugin to support GPS."
-+msgstr ""
++msgstr "mozilla प्लगइनला GPS समर्थनकरिता परवानगी द्या."
  
 -#: booleans.py:112
 +#: booleans.py:124
 +msgid "Allow mozilla plugin to support spice protocols."
-+msgstr ""
++msgstr "mozilla प्लगइनला spice प्रोटोकॉल्सकरिता समर्थनसाठी परवानगी द्या."
 +
 +#: booleans.py:125
  msgid "Allow confined web browsers to read home directory content"
@@ -193003,7 +193005,7 @@ index 855f08a..1a8ebe5 100644
 -"Allow privoxy to connect to all ports, not just HTTP, FTP, and Gopher ports."
 -msgstr "squid ला सर्व पोर्टस्, HTTP, FTP, व गोफर पोर्टस् वगळता यासह जोडणीकरीता परवानगी द्या."
 +"Permit to prosody to bind apache port. Need to be activated to use BOSH."
-+msgstr ""
++msgstr "prosodyला अपॅची पोर्टसह बाइंडकरिता परवानगी द्या. BOSHचा वापर करण्यासाठी सक्रिय करणे आवश्यक आहे."
  
 -#: booleans.py:139
 +#: booleans.py:156
@@ -193212,12 +193214,12 @@ index 855f08a..1a8ebe5 100644
 +#: booleans.py:190
  msgid "Allow user  to use ssh chroot environment."
 -msgstr ""
--
++msgstr "वापरकर्त्याला ssh chroot वातावरण वापरण्यासाठी परवानगी द्या."
+ 
 -#: booleans.py:175
 -msgid "Allow user music sharing"
 -msgstr "युजर म्युजिक शेअरिंगकरीता परवानगी द्या"
-+msgstr "वापरकर्त्याला ssh chroot वातावरण वापरण्यासाठी परवानगी द्या."
- 
+-
 -#: booleans.py:176
 +#: booleans.py:191
  msgid ""
@@ -193355,7 +193357,7 @@ index 855f08a..1a8ebe5 100644
 -#: booleans.py:196
 +#: booleans.py:211
 +msgid "Allow testpolicy to exec content"
-+msgstr ""
++msgstr "testpolicyला अंतर्भुत माहिती चालवण्यास परवानगी द्या"
 +
 +#: booleans.py:212
  msgid ""
@@ -193549,7 +193551,7 @@ index 855f08a..1a8ebe5 100644
 +msgid ""
 +"Allow the graphical login program to create files in HOME dirs as "
 +"xdm_home_t."
-+msgstr ""
++msgstr "ग्राफिकल प्रवेश प्रोग्रामला HOME डिरेक्ट्रीमध्ये xdm_home_t म्हणून फाइल्स निर्माण करण्यासाठी परवानगी द्या."
 +
 +#: booleans.py:243
  msgid "Allow xen to manage nfs files"
@@ -193625,7 +193627,7 @@ index 855f08a..1a8ebe5 100644
 +
 +#: booleans.py:256
 +msgid "Allow ZoneMinder to run su/sudo."
-+msgstr ""
++msgstr "su/sudo चालवण्याकरिता ZoneMinderला परवानगी द्या."
 +
 +#: ../sepolicy/sepolicy.py:194
 +#, python-format
@@ -193634,7 +193636,7 @@ index 855f08a..1a8ebe5 100644
 +
 +#: ../sepolicy/sepolicy.py:281
 +msgid "Graphical User Interface for SELinux Policy"
-+msgstr ""
++msgstr "SELinux धोरणकरिता ग्राफिकल युजर इंटरफेस"
 +
 +#: ../sepolicy/sepolicy.py:305
 +msgid "Generate SELinux man pages"
@@ -193768,11 +193770,11 @@ index 855f08a..1a8ebe5 100644
 +
 +#: ../sepolicy/sepolicy.py:528
 +msgid "Enter SELinux role(s) to which the administror domain will transition"
-+msgstr ""
++msgstr "ॲडमिनिस्ट्रेटर डोमेन जेथे स्थानांतरित होईल ती SELinux भूमिका द्या"
 +
 +#: ../sepolicy/sepolicy.py:531
 +msgid "Enter domain(s) which this confined admin will administrate"
-+msgstr ""
++msgstr "प्रशासकातर्फे प्रशासनजोगी डोमेन्स द्या"
 +
 +#: ../sepolicy/sepolicy.py:534
 +msgid "name of policy to generate"
@@ -193819,35 +193821,35 @@ index 855f08a..1a8ebe5 100644
 +
 +#: ../sepolicy/sepolicy/__init__.py:167 ../sepolicy/sepolicy/gui.py:479
 +msgid "all files"
-+msgstr ""
++msgstr "सर्व फाइल्स"
 +
 +#: ../sepolicy/sepolicy/__init__.py:168
 +msgid "regular file"
-+msgstr ""
++msgstr "रेग्युलर फाइल"
 +
 +#: ../sepolicy/sepolicy/__init__.py:169
 +msgid "directory"
-+msgstr ""
++msgstr "डिरेक्ट्री"
 +
 +#: ../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"
@@ -193855,7 +193857,7 @@ index 855f08a..1a8ebe5 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
@@ -193992,368 +193994,368 @@ index 855f08a..1a8ebe5 100644
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:7
 +msgid "SELinux Gui"
-+msgstr ""
++msgstr "SELinux गुई"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:33
 +msgid "Type to search for a process"
-+msgstr ""
++msgstr "प्रोसेस शोधण्याकरिता टाइप करा"
 +
 +#: ../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 ""
 +"Display boolean information that can be used to modify the policy for the "
 +"'selected domain'."
-+msgstr ""
++msgstr "'selected domain' करिता धोरण संपादित करण्यासाठी वापरण्याजोगी बूलियन माहिती दाखवा."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:85
 +#: ../sepolicy/sepolicy/sepolicy.glade:710
 +msgid "Files"
-+msgstr ""
++msgstr "फाइल्स्"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:89
 +msgid ""
 +"Display file type information that can be used by the 'selected domain'."
-+msgstr ""
++msgstr "'selected domain' करिता वापरण्याजोगी फाइल प्रकार माहिती दाखवा."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:100
 +#: ../sepolicy/sepolicy/sepolicy.glade:1062
 +msgid "Network"
-+msgstr ""
++msgstr "नेटवर्क"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:104
 +msgid ""
 +"Display network ports to which the 'selected domain' can connect or listen "
 +"to."
-+msgstr ""
++msgstr "'selected domain' जेथे जोडणी किंवा ऐकू शकतो असे नेटवर्क पोर्ट्स दाखवा"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:115
 +#: ../sepolicy/sepolicy/sepolicy.glade:1361
 +msgid "Transitions"
-+msgstr ""
++msgstr "ट्रांजिशन्स्"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:119
 +msgid ""
 +"Display applications that can transition into or out of the 'selected "
 +"domain'."
-+msgstr ""
++msgstr "'selected domain' करिता ट्रांजिशन शक्य किंवा अशक्य ॲप्लिकेशन्स दाखवा."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:188
 +#: ../sepolicy/sepolicy/sepolicy.glade:358
 +#: ../sepolicy/sepolicy/sepolicy.glade:765
 +#: ../sepolicy/sepolicy/sepolicy.glade:1113
 +msgid "Show Modified Only"
-+msgstr ""
++msgstr "फक्त संपादित दाखवा"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:219
 +msgid ""
 +"If-Then-Else rules written in policy that can \n"
 +"allow alternative access control."
-+msgstr ""
++msgstr "धोरणात लिहलेले If-Then-Else रूल्स जे \nवैकल्पिक ॲक्सेस कंट्रोल स्वीकारतात."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:373
 +#: ../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."
-+msgstr ""
++msgstr "वरील निवडलेले प्रोसेस डोमेनकरिता वापरण्याजोगी फाइल मार्ग."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:450
 +#: ../sepolicy/sepolicy/sepolicy.glade:531
 +msgid "File Path"
-+msgstr ""
++msgstr "फाइल मार्ग"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:468
 +#: ../sepolicy/sepolicy/sepolicy.glade:549
 +msgid "SELinux File Label"
-+msgstr ""
++msgstr "SELinux फाइल लेबल"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:485
 +#: ../sepolicy/sepolicy/sepolicy.glade:567
 +#: ../sepolicy/sepolicy/sepolicy.glade:660
 +msgid "Class"
-+msgstr ""
++msgstr "वर्ग"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:505
 +msgid "File path used to enter the 'selected domain'."
-+msgstr ""
++msgstr "'selected domain' देण्याकरिता वापरण्याजोगी फाइल मार्ग."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:506
 +msgid "Executable Files"
-+msgstr ""
++msgstr "एक्जिक्युटेबल फाइल्स्"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:523
 +msgid "Files to which the above selected process domain can write."
-+msgstr ""
++msgstr "फाइल्स, जेथे वरील निवडलेल्या प्रोसेस डोमेन लिहू शकतात."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:591
 +msgid "Files to which the 'selected domain' can write."
-+msgstr ""
++msgstr "फाइल्स, जेथे 'निवडलेले डोमेन' लिहू शकतात."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:592
 +msgid "Writable Files"
-+msgstr ""
++msgstr "लेखनजोगी फाइल्स"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:610
 +msgid "File Types defined for the selected domain"
-+msgstr ""
++msgstr "निवडलेल्या डोमेनकरिता ठरवलेले फाइल प्रकार"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:618
 +msgid "File path"
-+msgstr ""
++msgstr "फाइल मार्ग"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:686
 +msgid "File Types defined for the 'selected domain'."
-+msgstr ""
++msgstr "'निवडलेल्या डोमेन'करिता ठरवलेले फाइल प्रकार."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:687
 +msgid "Application File Types"
-+msgstr ""
++msgstr "ॲप्लिकेशन फाइल प्रकार"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:856
 +msgid "Network Ports to which the selected domain is allowed to connect."
-+msgstr ""
++msgstr "निवडलेले डोमेन ज्यासह जोडणी करते, ते नेटवर्क पोर्टस्"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:898
 +#: ../sepolicy/sepolicy/sepolicy.glade:997
 +msgid "Modified"
-+msgstr ""
++msgstr "संपादित केले"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:937
 +msgid "Network Ports to which the 'selected domain' is allowed to connect."
-+msgstr ""
++msgstr "निवडलेले डोमेन ज्यासह जोडणी करते, ते नेटवर्क पोर्टस्"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:938
 +msgid "Outbound"
-+msgstr ""
++msgstr "आऊटबाऊंड"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:955
 +msgid "Network Ports to which the selected domain is allowed to listen."
-+msgstr ""
++msgstr "नेटवर्क पोर्ट ज्यासह निवडलेले डोमेन ऐकण्यास सहमती दिली जाते."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1038
 +msgid "Network Ports to which the 'selected domain' is allowed to listen."
-+msgstr ""
++msgstr "नेटवर्क पोर्ट ज्यासह निवडलेले डोमेन ऐकण्यास सहमती दिली जाते."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1039
 +msgid "Inbound"
-+msgstr ""
++msgstr "इंबाऊंड"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1189
 +#: ../sepolicy/sepolicy/sepolicy.glade:1260
 +msgid ""
 +"Executables which will transition to a different domain, when the 'selected "
 +"domain' executes them."
-+msgstr ""
++msgstr "वेगळ्या डोमेनकरिता स्थानांतरनजोगी एक्जिक्युटेबल्स, जेव्हा 'निवडलेले डोमेन' त्यास चालवते."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1194
 +#: ../sepolicy/sepolicy/sepolicy.glade:1285
 +msgid "Enabled"
-+msgstr ""
++msgstr "सुरू केले"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1223
 +msgid "Executable File Type"
-+msgstr ""
++msgstr "चालवण्याजोगी फाइल प्रकरा"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1239
 +msgid "Transtype"
-+msgstr ""
++msgstr "ट्रांसटाइप"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1263
 +msgid "Transitions From 'select domain'"
-+msgstr ""
++msgstr "'निवडलेल्या डोमेन' पासून स्थानांतरन"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1280
 +#: ../sepolicy/sepolicy/sepolicy.glade:1337
 +msgid ""
 +"Executables which will transition to the 'selected domain', when executing a"
 +" selected domains entrypoint."
-+msgstr ""
++msgstr "निवडलेली डोमेन्स एंट्रिपॉइंट चालवतेवेळी, 'निवडलेले डोमेन' करिता स्थानांतरनजोगी एक्जिक्युटेबल्स."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1299
 +msgid "Calling Process Domain"
-+msgstr ""
++msgstr "प्रोसेस डोमनकरिता कॉल करत आहे"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1313
 +msgid "Executable File"
-+msgstr ""
++msgstr "चालवण्याजोगी फाइल"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1338
 +msgid "Transitions Into 'select domain'"
-+msgstr ""
++msgstr "'डोमेन निवडा' मधील ट्रांजिशन्स"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1388
 +msgid "Reset"
-+msgstr ""
++msgstr "पूर्ववत् करा"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1392
 +msgid "Reset to system default"
-+msgstr ""
++msgstr "पूर्वनिर्धारित प्रणालीकरिता मूळस्थिती या"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1403
 +msgid "Update"
-+msgstr ""
++msgstr "सुधारणा"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1407
 +msgid "Save your changes"
-+msgstr ""
++msgstr "बदल साठवा"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1454
 +#: ../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"
-+msgstr ""
++msgstr "ॲप्लिकेशन अधिक तपशील दृष्य"
 +
 +#: ../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 "प्रणाली स्थिती: एंफोर्सिंग"
 +
 +#: ../sepolicy/sepolicy/gui.py:197
 +msgid "System Status: Permissive"
-+msgstr ""
++msgstr "प्रणाली स्थिती: पर्मिसिव्ह"
 +
 +#: ../sepolicy/sepolicy/gui.py:199
 +msgid "System Status: Disabled"
-+msgstr ""
++msgstr "प्रणाली स्थिती: डिसेबल्ड"
 +
 +#: ../sepolicy/sepolicy/gui.py:413
 +#, python-format
 +msgid "File path used to enter the '%s' domain."
-+msgstr ""
++msgstr "'%s' डोमेनकरिता वापरण्याजोगी फाइल मार्ग."
 +
 +#: ../sepolicy/sepolicy/gui.py:414
 +#, python-format
 +msgid "Files to which the '%s' domain can write."
-+msgstr ""
++msgstr "फाइल्स ज्याकरिता '%s' डोमेन लिहेल."
 +
 +#: ../sepolicy/sepolicy/gui.py:415
 +#, python-format
 +msgid "Network Ports to which the '%s' is allowed to connect."
-+msgstr ""
++msgstr "'%s' ज्यासह नेटवर्क पोर्ट्स जोडणी करेल."
 +
 +#: ../sepolicy/sepolicy/gui.py:416
 +#, python-format
 +msgid "Network Ports to which the '%s' is allowed to listen."
-+msgstr ""
++msgstr "नेटवर्क पोर्ट्स ज्याकरिता '%s' ऐकतील."
 +
 +#: ../sepolicy/sepolicy/gui.py:417
 +#, python-format
 +msgid "File Types defined for the '%s'."
-+msgstr ""
++msgstr "'%s' करिता ठरवलेले फाइल प्रकार."
 +
 +#: ../sepolicy/sepolicy/gui.py:418
 +#, python-format
 +msgid ""
 +"Display boolean information that can be used to modify the policy for the "
 +"'%s'."
-+msgstr ""
++msgstr "'%s' करिता धोरण संपादित करण्यासाठी वापरण्याजोगी बूलियन माहिती दाखवा"
 +
 +#: ../sepolicy/sepolicy/gui.py:419
 +#, python-format
 +msgid "Display file type information that can be used by the '%s'."
-+msgstr ""
++msgstr "'%s' करिता वापरण्याजोगी फाइल प्रकार माहिती दाखवा"
 +
 +#: ../sepolicy/sepolicy/gui.py:420
 +#, python-format
 +msgid "Display network ports to which the '%s' can connect or listen to."
-+msgstr ""
++msgstr "'%s' जेथे जोडणी किंवा ऐकू शकतो असे नेटवर्क पोर्ट्स दाखवा."
 +
 +#: ../sepolicy/sepolicy/gui.py:421
 +#, python-format
 +msgid "Transitions Into '%s'"
-+msgstr ""
++msgstr "'%s' करिता ट्रांजिशन्स"
 +
 +#: ../sepolicy/sepolicy/gui.py:422
 +#, python-format
 +msgid "Transitions From '%s'"
-+msgstr ""
++msgstr "'%s' पासून ट्रांजिशन्स"
 +
 +#: ../sepolicy/sepolicy/gui.py:423
 +#, python-format
 +msgid ""
 +"Executables which will transition to the '%s', when executing a selected "
 +"domains entrypoint."
-+msgstr ""
++msgstr "निवडलेली डोमेन्स एंट्रिपॉइंट चालवतेवेळी, '%s'करिता स्थानांतरनजोगी एक्जिक्युटेबल्स."
 +
 +#: ../sepolicy/sepolicy/gui.py:424
 +#, python-format
 +msgid ""
 +"Executables which will transition to a different domain, when the '%s' "
 +"executes them."
-+msgstr ""
++msgstr "वेगळ्या डोमेनकरिता स्थानांतरनजोगी एक्जिक्युटेबल्स, जेव्हा '%s' त्यास चालवते."
 +
 +#: ../sepolicy/sepolicy/gui.py:425
 +#, python-format
 +msgid "Display applications that can transition into or out of the '%s'."
-+msgstr ""
++msgstr "'%s' करिता ट्रांजिशन शक्य किंवा अशक्य ॲप्लिकेशन्स दाखवा"
 +
 +#: ../sepolicy/sepolicy/gui.py:604
 +#, python-format
 +msgid "Boolean %s Allow Rules"
-+msgstr ""
++msgstr "बूलिअन %s अलाव रूल्स"
 diff --git a/policycoreutils/po/ms.po b/policycoreutils/po/ms.po
 index faac0bb..b252bcd 100644
 --- a/policycoreutils/po/ms.po
@@ -280340,10 +280342,10 @@ index b78aead..f2769e7 100644
 +msgid "Boolean %s Allow Rules"
 +msgstr ""
 diff --git a/policycoreutils/po/ta.po b/policycoreutils/po/ta.po
-index a8593c5..b7a3a40 100644
+index a8593c5..0a4a9c3 100644
 --- a/policycoreutils/po/ta.po
 +++ b/policycoreutils/po/ta.po
-@@ -3,17 +3,17 @@
+@@ -3,18 +3,18 @@
  # This file is distributed under the same license as the PACKAGE package.
  # 
  # Translators:
@@ -280363,11 +280365,13 @@ index a8593c5..b7a3a40 100644
  "Report-Msgid-Bugs-To: \n"
 -"POT-Creation-Date: 2013-01-04 12:01-0500\n"
 -"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-10 20:44+0000\n"
- "Last-Translator: dwalsh <dwalsh at redhat.com>\n"
++"PO-Revision-Date: 2013-07-23 10:52+0000\n"
++"Last-Translator: shkumar <shkumar at redhat.com>\n"
  "Language-Team: Tamil <tamil-users at lists.fedoraproject.org>\n"
  "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
 @@ -29,7 +29,7 @@ msgid ""
  "         <args ...> are the arguments to that script."
  msgstr "பயன்பாடு: run_init <script> <args ...>\n  எங்கு: <script> ஆரம்ப உரையின் பெயரை இயக்க வேண்டும்,\n         <args ...> இவை அந்த உரையின் மதிப்புகள் ஆகும்."
@@ -280403,7 +280407,7 @@ index a8593c5..b7a3a40 100644
 +#: ../semanage/seobject.py:288
 +#, python-format
 +msgid "Module does not exists %s "
-+msgstr ""
++msgstr "தொகுதிக்கூறு இல்லை %s "
 +
 +#: ../semanage/seobject.py:298
  #, python-format
@@ -280444,7 +280448,7 @@ index a8593c5..b7a3a40 100644
 +"In some distributions it is included in the policycoreutils-devel patckage.\n"
 +"# yum install policycoreutils-devel\n"
 +"Or similar for your distro."
-+msgstr ""
++msgstr "அனுமதிக்கும் டொமைன்களை அமைக்க sepolgen python தொகுதிக்கூறு தேவை.\nசில விநியோகத் தொகுப்புகளில் policycoreutils-devel தொகுப்பில் இது சேர்க்கப்பட்டிருக்கும்.\n# yum install policycoreutils-devel\nஅல்லது உங்கள் விநியோகத் தொகுப்புக்கு ஏற்ற ஒத்த கட்டளையைப் பயன்படுத்தவும்."
 +
 +#: ../semanage/seobject.py:418
  #, python-format
@@ -282562,7 +282566,7 @@ index a8593c5..b7a3a40 100644
 -#: booleans.py:70
 +#: booleans.py:72
 +msgid "Allow http daemon to connect to mythtv"
-+msgstr ""
++msgstr "mythtv க்கு இணைக்க http டெமானை அனுமதிக்கவும்"
 +
 +#: booleans.py:73
  msgid "Allow http daemon to connect to zabbix"
@@ -282724,23 +282728,23 @@ index a8593c5..b7a3a40 100644
  msgstr "httpd ஆனது openstack முனையங்களை அணுகுவதை அனுமதிக்கவும்"
  
 -#: booleans.py:100
--msgid "Allow Apache to query NS records"
 +#: booleans.py:103
 +msgid "Allow httpd to connect to  sasl"
- msgstr ""
++msgstr "sasl க்கு இணைக்க httpd ஐ அனுமதிக்கவும்"
++
++#: booleans.py:104
+ msgid "Allow Apache to query NS records"
+-msgstr ""
++msgstr "NS பதிவுகளை வினவ Apache ஐ அனுமதிக்கவும்"
  
 -#: booleans.py:101
 -msgid "Allow icecast to connect to all ports, not just sound ports."
 -msgstr "ஒலி துறைகள் இல்லாமல், அனைத்து துறைகளை இணைக்க icecast-ஐ அனுமதிக்கவும்"
-+#: booleans.py:104
-+msgid "Allow Apache to query NS records"
-+msgstr "NS பதிவுகளை வினவ Apache ஐ அனுமதிக்கவும்"
- 
--#: booleans.py:102
 +#: booleans.py:105
 +msgid "Determine whether icecast can listen on and connect to any TCP port."
 +msgstr "icecast ஆல் எந்த ஓரு TCP முனையத்திலும் கவனிக்கவும் இணைக்கவும் முடிய வேண்டுமா எனத் தீர்மானிக்கவும்."
-+
+ 
+-#: booleans.py:102
 +#: booleans.py:106
 +msgid ""
 +"Determine whether irc clients can listen on and connect to any unreserved "
@@ -282818,7 +282822,7 @@ index a8593c5..b7a3a40 100644
 -msgstr "ஏற்றுதல் கட்டளை ஏதாவது அடைவு அல்லது கோப்பில் ஏற்றுவதற்கு அனுமதிக்கவும்."
 +#: booleans.py:121
 +msgid "Allow the mount commands to mount any directory or file."
-+msgstr ""
++msgstr "ஏற்றுதல் கட்டளைகள் எந்த கோப்பகம் அல்லது கோப்பையும் ஏற்ற அனுமதிக்கவும்."
  
 -#: booleans.py:110
 +#: booleans.py:122
@@ -282831,12 +282835,12 @@ index a8593c5..b7a3a40 100644
 -msgstr "mozilla_plugins பயனர் இல்லக் கோப்பகத்தில் எழுந்தமானமான உள்ளடக்கத்தை உருவாக்க அனுமதிக்கவும்."
 +#: booleans.py:123
 +msgid "Allow mozilla plugin to support GPS."
-+msgstr ""
++msgstr "mozilla செருகுநிரல் GPS ஐ ஆதரிக்க அனுமதிக்கவும்."
  
 -#: booleans.py:112
 +#: booleans.py:124
 +msgid "Allow mozilla plugin to support spice protocols."
-+msgstr ""
++msgstr "mozilla செருகுநிரல் spice நெறிமுறைகளை ஆதரிக்க அனுமதிக்கவும்."
 +
 +#: booleans.py:125
  msgid "Allow confined web browsers to read home directory content"
@@ -283007,7 +283011,7 @@ index a8593c5..b7a3a40 100644
 -"Allow privoxy to connect to all ports, not just HTTP, FTP, and Gopher ports."
 -msgstr "அனைத்து துறைகள், HTTP இல்லாத, FTP, மற்றும் Gopher துறைகளுக்கு இணைப்பதற்கு ப்ரிவோக்ஸியை அனுமதிக்கவும்."
 +"Permit to prosody to bind apache port. Need to be activated to use BOSH."
-+msgstr ""
++msgstr "apache முனையத்தில் பிணைக்க prosody ஐ அனுமதிக்கவும். BOSH ஐப் பயன்படுத்த இதை செயல்படுத்த வேண்டும்."
  
 -#: booleans.py:139
 +#: booleans.py:156
@@ -283216,12 +283220,12 @@ index a8593c5..b7a3a40 100644
 +#: booleans.py:190
  msgid "Allow user  to use ssh chroot environment."
 -msgstr ""
--
++msgstr "ssh chroot சூழலைப் பயன்படுத்த பயனரை அனுமதிக்கவும்."
+ 
 -#: booleans.py:175
 -msgid "Allow user music sharing"
 -msgstr "பயனர் இசை பகிர்தலை அனுமதிக்கவும்"
-+msgstr "ssh chroot சூழலைப் பயன்படுத்த பயனரை அனுமதிக்கவும்."
- 
+-
 -#: booleans.py:176
 +#: booleans.py:191
  msgid ""
@@ -283359,7 +283363,7 @@ index a8593c5..b7a3a40 100644
 -#: booleans.py:196
 +#: booleans.py:211
 +msgid "Allow testpolicy to exec content"
-+msgstr ""
++msgstr "உள்ளடக்கத்தை exec செய்ய testpolicy ஐ அனுமதிக்கவும்"
 +
 +#: booleans.py:212
  msgid ""
@@ -283553,7 +283557,7 @@ index a8593c5..b7a3a40 100644
 +msgid ""
 +"Allow the graphical login program to create files in HOME dirs as "
 +"xdm_home_t."
-+msgstr ""
++msgstr "HOME dirs இல் xdm_home_t ஆக கோப்புகளை உருவாக்க வரைவியல் புகுபதிவு நிரலை அனுமதிக்கவும்."
 +
 +#: booleans.py:243
  msgid "Allow xen to manage nfs files"
@@ -283629,7 +283633,7 @@ index a8593c5..b7a3a40 100644
 +
 +#: booleans.py:256
 +msgid "Allow ZoneMinder to run su/sudo."
-+msgstr ""
++msgstr "su/sudo ஐ இயக்க ZoneMinder ஐ அனுமதிக்கவும்."
 +
 +#: ../sepolicy/sepolicy.py:194
 +#, python-format
@@ -283638,7 +283642,7 @@ index a8593c5..b7a3a40 100644
 +
 +#: ../sepolicy/sepolicy.py:281
 +msgid "Graphical User Interface for SELinux Policy"
-+msgstr ""
++msgstr "SELinux கொள்கைக்கான வரைகலை பயனர் இடைமுகம்"
 +
 +#: ../sepolicy/sepolicy.py:305
 +msgid "Generate SELinux man pages"
@@ -283772,11 +283776,11 @@ index a8593c5..b7a3a40 100644
 +
 +#: ../sepolicy/sepolicy.py:528
 +msgid "Enter SELinux role(s) to which the administror domain will transition"
-+msgstr ""
++msgstr "நிர்வாகி டொமைன் மாறக்கூடிய SELinux பங்குகளை உள்ளிடவும்"
 +
 +#: ../sepolicy/sepolicy.py:531
 +msgid "Enter domain(s) which this confined admin will administrate"
-+msgstr ""
++msgstr "இந்த கட்டுப்படுத்தப்பட்ட நிர்வாகி நிர்வகிக்கும் டொமைன்களை உள்ளிடவும்"
 +
 +#: ../sepolicy/sepolicy.py:534
 +msgid "name of policy to generate"
@@ -283823,35 +283827,35 @@ index a8593c5..b7a3a40 100644
 +
 +#: ../sepolicy/sepolicy/__init__.py:167 ../sepolicy/sepolicy/gui.py:479
 +msgid "all files"
-+msgstr ""
++msgstr "அனைத்து கோப்புகள்"
 +
 +#: ../sepolicy/sepolicy/__init__.py:168
 +msgid "regular file"
-+msgstr ""
++msgstr "வழக்கமான கோப்பு"
 +
 +#: ../sepolicy/sepolicy/__init__.py:169
 +msgid "directory"
-+msgstr ""
++msgstr "கோப்பகம்"
 +
 +#: ../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"
@@ -283859,7 +283863,7 @@ index a8593c5..b7a3a40 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
@@ -283996,368 +284000,368 @@ index a8593c5..b7a3a40 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"
-+msgstr ""
++msgstr "ஒரு செயலாக்கத்தைத் தேட இங்கு தட்டச்சு செய்யவும்"
 +
 +#: ../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 ""
 +"Display boolean information that can be used to modify the policy for the "
 +"'selected domain'."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைனுக்கான' கொள்கையில் மாற்றம் செய்ய பயன்படுத்தக்கூடிய பூலியன் தகவலைக் காண்பி."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:85
 +#: ../sepolicy/sepolicy/sepolicy.glade:710
 +msgid "Files"
-+msgstr ""
++msgstr "கோப்புகள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:89
 +msgid ""
 +"Display file type information that can be used by the 'selected domain'."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைன்' பயன்படுத்தக்கூடிய கோப்பு வகைத் தகவலைக் காண்பி."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:100
 +#: ../sepolicy/sepolicy/sepolicy.glade:1062
 +msgid "Network"
-+msgstr ""
++msgstr "பிணையம்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:104
 +msgid ""
 +"Display network ports to which the 'selected domain' can connect or listen "
 +"to."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைன்' இணைக்கக்கூடிய அல்லது கவனிக்கக்கூடிய பிணைய முனையங்களைக் காண்பி."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:115
 +#: ../sepolicy/sepolicy/sepolicy.glade:1361
 +msgid "Transitions"
-+msgstr ""
++msgstr "நிலைமாற்றங்கள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:119
 +msgid ""
 +"Display applications that can transition into or out of the 'selected "
 +"domain'."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைனுக்கு' அல்லது அதிலிருந்து நிலைமாற்றம் அடையக்கூடிய பயன்பாடுகளைக் காண்பி."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:188
 +#: ../sepolicy/sepolicy/sepolicy.glade:358
 +#: ../sepolicy/sepolicy/sepolicy.glade:765
 +#: ../sepolicy/sepolicy/sepolicy.glade:1113
 +msgid "Show Modified Only"
-+msgstr ""
++msgstr "மாற்றம் செய்யப்பட்டவை மட்டும் காண்பி"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:219
 +msgid ""
 +"If-Then-Else rules written in policy that can \n"
 +"allow alternative access control."
-+msgstr ""
++msgstr "கொள்கையில் எழுதப்பட்டுள்ள, மாற்று அணுகல் கட்டுப்பாட்டை அனுமதிக்கக்கூடிய If-Then-Else \nவிதிகள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:373
 +#: ../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."
-+msgstr ""
++msgstr "மேலே தேர்ந்தெடுத்த செயலாக்க டொமைனை உள்ளிடப் பயன்படுத்திய கோப்புப் பாதை."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:450
 +#: ../sepolicy/sepolicy/sepolicy.glade:531
 +msgid "File Path"
-+msgstr ""
++msgstr "கோப்புப் பாதை"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:468
 +#: ../sepolicy/sepolicy/sepolicy.glade:549
 +msgid "SELinux File Label"
-+msgstr ""
++msgstr "SELinux கோப்பு லேபிள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:485
 +#: ../sepolicy/sepolicy/sepolicy.glade:567
 +#: ../sepolicy/sepolicy/sepolicy.glade:660
 +msgid "Class"
-+msgstr ""
++msgstr "வகுப்பு"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:505
 +msgid "File path used to enter the 'selected domain'."
-+msgstr ""
++msgstr "'தேர்ந்தெடுத்த டொமைனை' உள்ளிடப் பயன்படுத்திய கோப்புப் பாதை."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:506
 +msgid "Executable Files"
-+msgstr ""
++msgstr "செயல்படுத்தக்கூடிய கோப்புகள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:523
 +msgid "Files to which the above selected process domain can write."
-+msgstr ""
++msgstr "மேலே தேர்ந்தெடுத்த செயலாக்க டொமைன் எழுதக்கூடிய கோப்புகள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:591
 +msgid "Files to which the 'selected domain' can write."
-+msgstr ""
++msgstr "'தேர்ந்தெடுத்த டொமைன்' எழுதக்கூடிய கோப்புகள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:592
 +msgid "Writable Files"
-+msgstr ""
++msgstr "எழுதக்கூடிய கோப்புகள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:610
 +msgid "File Types defined for the selected domain"
-+msgstr ""
++msgstr "தேர்ந்தெடுத்த டொமைனுக்கான வரையறுக்கப்பட்ட கோப்பு வகைகள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:618
 +msgid "File path"
-+msgstr ""
++msgstr "கோப்புப் பாதை"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:686
 +msgid "File Types defined for the 'selected domain'."
-+msgstr ""
++msgstr "'தேர்ந்தெடுத்த டொமைனுக்கான' வரையறுக்கப்பட்ட கோப்பு வகைகள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:687
 +msgid "Application File Types"
-+msgstr ""
++msgstr "பயன்பாடு கோப்பு வகைகள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:856
 +msgid "Network Ports to which the selected domain is allowed to connect."
-+msgstr ""
++msgstr "தேர்ந்தெடுக்கப்பட்ட டொமைன் இணைக்க அனுமதிக்கப்பட்ட பிணைய முனையங்கள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:898
 +#: ../sepolicy/sepolicy/sepolicy.glade:997
 +msgid "Modified"
-+msgstr ""
++msgstr "மாற்ற‌ப்பட்டது"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:937
 +msgid "Network Ports to which the 'selected domain' is allowed to connect."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைன்' இணைக்க அனுமதிக்கப்பட்ட பிணைய முனையங்கள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:938
 +msgid "Outbound"
-+msgstr ""
++msgstr "வெளிவகை"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:955
 +msgid "Network Ports to which the selected domain is allowed to listen."
-+msgstr ""
++msgstr "தேர்ந்தெடுக்கப்பட்ட டொமைன் கவனிக்க அனுமதிக்கப்பட்ட பிணைய முனையங்கள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1038
 +msgid "Network Ports to which the 'selected domain' is allowed to listen."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைன்' கவனிக்க அனுமதிக்கப்பட்ட பிணைய முனையங்கள்."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1039
 +msgid "Inbound"
-+msgstr ""
++msgstr "உள்வகை"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1189
 +#: ../sepolicy/sepolicy/sepolicy.glade:1260
 +msgid ""
 +"Executables which will transition to a different domain, when the 'selected "
 +"domain' executes them."
-+msgstr ""
++msgstr "'தேர்ந்தெடுக்கப்பட்ட டொமைன்' செயல்படுத்தக்கூடியவற்றை இயக்கும் போது, வேறு டொமைனுக்கு நிலைமாறும் செயல்படுத்தக்கூடியவை."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1194
 +#: ../sepolicy/sepolicy/sepolicy.glade:1285
 +msgid "Enabled"
-+msgstr ""
++msgstr "செயல்படுத்தப்பட்டது"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1223
 +msgid "Executable File Type"
-+msgstr ""
++msgstr "செயல்படுத்தக்கூடிய கோப்பு வகை"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1239
 +msgid "Transtype"
-+msgstr ""
++msgstr "Transtype"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1263
 +msgid "Transitions From 'select domain'"
-+msgstr ""
++msgstr "'தேர்ந்தெடுத்த டொமைனிலிருந்து' நிலைமாற்றம்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1280
 +#: ../sepolicy/sepolicy/sepolicy.glade:1337
 +msgid ""
 +"Executables which will transition to the 'selected domain', when executing a"
 +" selected domains entrypoint."
-+msgstr ""
++msgstr "தேர்ந்தெடுக்கப்பட்ட டொமைன்கள் நுழைவுப்புள்ளியை செயல்படுத்தும் போது, 'தேர்ந்தெடுக்கப்பட்ட டொமைனுக்கு' நிலைமாறும் செயல்படுத்தக்கூடியவை."
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1299
 +msgid "Calling Process Domain"
-+msgstr ""
++msgstr "செயலாக்க டொமைனை அழைக்கிறது"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1313
 +msgid "Executable File"
-+msgstr ""
++msgstr "செயல்படுத்தக்கூடிய கோப்பு"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1338
 +msgid "Transitions Into 'select domain'"
-+msgstr ""
++msgstr "'தேர்ந்தெடுத்த டொமைனுக்கான' நிலைமாற்றங்கள்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1388
 +msgid "Reset"
-+msgstr ""
++msgstr "மீட்டமை"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1392
 +msgid "Reset to system default"
-+msgstr ""
++msgstr "கணினி முன்னிருப்புக்கு மீட்டமைக்கவும்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1403
 +msgid "Update"
-+msgstr ""
++msgstr "புதுப்பி"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1407
 +msgid "Save your changes"
-+msgstr ""
++msgstr "உங்கள் மாற்றங்களை சேமிக்கவும்"
 +
 +#: ../sepolicy/sepolicy/sepolicy.glade:1454
 +#: ../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"
-+msgstr ""
++msgstr "பயன்பாடு மேலும் விவரமான காட்சி"
 +
 +#: ../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 "கணினி நிலை: செயல்படுத்துகிறது"
 +
 +#: ../sepolicy/sepolicy/gui.py:197
 +msgid "System Status: Permissive"
-+msgstr ""
++msgstr "கணினி நிலை: அனுமதிக்கிறது"
 +
 +#: ../sepolicy/sepolicy/gui.py:199
 +msgid "System Status: Disabled"
-+msgstr ""
++msgstr "கணினி நிலை: முடக்கப்பட்டுள்ளது"
 +
 +#: ../sepolicy/sepolicy/gui.py:413
 +#, python-format
 +msgid "File path used to enter the '%s' domain."
-+msgstr ""
++msgstr "'%s' டொமைனை உள்ளிடப் பயன்படுத்திய கோப்புப் பாதை."
 +
 +#: ../sepolicy/sepolicy/gui.py:414
 +#, python-format
 +msgid "Files to which the '%s' domain can write."
-+msgstr ""
++msgstr "'%s' டொமைன் எழுதக்கூடிய கோப்புகள்."
 +
 +#: ../sepolicy/sepolicy/gui.py:415
 +#, python-format
 +msgid "Network Ports to which the '%s' is allowed to connect."
-+msgstr ""
++msgstr "'%s' இணைக்க அனுமதிக்கப்பட்ட பிணைய முனையங்கள்."
 +
 +#: ../sepolicy/sepolicy/gui.py:416
 +#, python-format
 +msgid "Network Ports to which the '%s' is allowed to listen."
-+msgstr ""
++msgstr "'%s' கவனிக்க அனுமதிக்கப்பட்ட பிணைய முனையங்கள்."
 +
 +#: ../sepolicy/sepolicy/gui.py:417
 +#, python-format
 +msgid "File Types defined for the '%s'."
-+msgstr ""
++msgstr "'%s' க்கான வரையறுக்கப்பட்ட கோப்பு வகைகள்."
 +
 +#: ../sepolicy/sepolicy/gui.py:418
 +#, python-format
 +msgid ""
 +"Display boolean information that can be used to modify the policy for the "
 +"'%s'."
-+msgstr ""
++msgstr "'%s' க்கான கொள்கையில் மாற்றம் செய்ய பயன்படுத்தக்கூடிய பூலியன் தகவலைக் காண்பி."
 +
 +#: ../sepolicy/sepolicy/gui.py:419
 +#, python-format
 +msgid "Display file type information that can be used by the '%s'."
-+msgstr ""
++msgstr "'%s' பயன்படுத்தக்கூடிய கோப்பு வகைத் தகவலைக் காண்பி"
 +
 +#: ../sepolicy/sepolicy/gui.py:420
 +#, python-format
 +msgid "Display network ports to which the '%s' can connect or listen to."
-+msgstr ""
++msgstr "'%s' இணைக்கக்கூடிய அல்லது கவனிக்கக்கூடிய பிணைய முனையங்களைக் காண்பி."
 +
 +#: ../sepolicy/sepolicy/gui.py:421
 +#, python-format
 +msgid "Transitions Into '%s'"
-+msgstr ""
++msgstr "'%s' க்கான நிலைமாற்றங்கள்"
 +
 +#: ../sepolicy/sepolicy/gui.py:422
 +#, python-format
 +msgid "Transitions From '%s'"
-+msgstr ""
++msgstr "'%s' இலிருந்தான நிலைமாற்றங்கள்"
 +
 +#: ../sepolicy/sepolicy/gui.py:423
 +#, python-format
 +msgid ""
 +"Executables which will transition to the '%s', when executing a selected "
 +"domains entrypoint."
-+msgstr ""
++msgstr "தேர்ந்தெடுக்கப்பட்ட டொமைன்கள் நுழைவுப்புள்ளியை செயல்படுத்தும் போது, '%s' க்கு நிலைமாறும் செயல்படுத்தக்கூடியவை."
 +
 +#: ../sepolicy/sepolicy/gui.py:424
 +#, python-format
 +msgid ""
 +"Executables which will transition to a different domain, when the '%s' "
 +"executes them."
-+msgstr ""
++msgstr "'%s' செயல்படுத்தக்கூடியவற்றை இயக்கும் போது, வேறு டொமைனுக்கு நிலைமாறும் செயல்படுத்தக்கூடியவை."
 +
 +#: ../sepolicy/sepolicy/gui.py:425
 +#, python-format
 +msgid "Display applications that can transition into or out of the '%s'."
-+msgstr ""
++msgstr "'%s' க்கு அல்லது அதிலிருந்து நிலைமாற்றம் அடையக்கூடிய பயன்பாடுகளைக் காண்பி"
 +
 +#: ../sepolicy/sepolicy/gui.py:604
 +#, python-format
 +msgid "Boolean %s Allow Rules"
-+msgstr ""
++msgstr "பூலியன் %s விதிகளை அனுமதி"
 diff --git a/policycoreutils/po/te.po b/policycoreutils/po/te.po
 index 044ce97..7373dee 100644
 --- a/policycoreutils/po/te.po
@@ -318089,7 +318093,7 @@ index 0000000..e2befdb
 +      packages=["policycoreutils"],
 +)
 diff --git a/policycoreutils/semanage/semanage b/policycoreutils/semanage/semanage
-index 6e33c85..ce4e23d 100644
+index 6e33c85..aa8d46b 100644
 --- a/policycoreutils/semanage/semanage
 +++ b/policycoreutils/semanage/semanage
 @@ -1,5 +1,7 @@
@@ -318326,7 +318330,7 @@ index 6e33c85..ce4e23d 100644
 +def parser_add_type(parser, name):
 +    parser.add_argument('-t', '--type', help=_('SELinux Type for the object'))
 +def parser_add_level(parser, name):
-+    parser.add_argument('-L', '--level', default="s0", help=_('Default SELinux Level for SELinux user, s0 Default. (MLS/MCS Systems only)'))
++    parser.add_argument('-L', '--level', default="", help=_('Default SELinux Level for SELinux user, s0 Default. (MLS/MCS Systems only)'))
 +def parser_add_range(parser, name):
 +    parser.add_argument('-r', '--range', default="", 
 +                             help=_('''
@@ -320879,7 +320883,7 @@ index 62dd53e..d6e1be0 100644
  .SH SYNOPSIS
  .B semodule_unpackage <module> [<file contexts>]
 diff --git a/policycoreutils/sepolicy/Makefile b/policycoreutils/sepolicy/Makefile
-index 11b534f..1724490 100644
+index 11b534f..c797ab8 100644
 --- a/policycoreutils/sepolicy/Makefile
 +++ b/policycoreutils/sepolicy/Makefile
 @@ -7,9 +7,9 @@ SBINDIR ?= $(PREFIX)/sbin
@@ -320894,13 +320898,16 @@ index 11b534f..1724490 100644
  
  BASHCOMPLETIONS=sepolicy-bash-completion.sh 
  
-@@ -22,11 +22,15 @@ clean:
+@@ -22,11 +22,18 @@ clean:
  	$(PYTHON) setup.py clean
  	-rm -rf build *~ \#* *pyc .#*
  
 +sepolgen:
 +	ln -sf sepolicy sepolgen
 +
++test:
++	@python test_sepolicy.py -v
++
  install:
  	$(PYTHON) setup.py install `test -n "$(DESTDIR)" && echo --root $(DESTDIR)`
  	[ -d $(BINDIR) ] || mkdir -p $(BINDIR)
@@ -321346,7 +321353,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..f621227 100755
+index b25d3b2..086766e 100755
 --- a/policycoreutils/sepolicy/sepolicy.py
 +++ b/policycoreutils/sepolicy/sepolicy.py
 @@ -22,6 +22,8 @@
@@ -321362,8 +321369,8 @@ index b25d3b2..f621227 100755
      import __builtin__
      __builtin__.__dict__['_'] = unicode
  
-+usage = "sepolicy generate [-h] [-n NAME] [-p PATH] [-w [WRITEPATHS [WRITEPATHS ...]]] ["
-+usage_dict = {' --newtype':('-t [TYPES [TYPES ...]]',),' --customize':('-d DOMAIN','-a  ADMIN_DOMAIN',), ' --admin_user':('[-r TRANSITION_ROLE ]',), ' --application':('COMMAND',), ' --cgi':('COMMAND',), ' --confined_admin':('-a  ADMIN_DOMAIN',), ' --dbus':('COMMAND',), ' --desktop_user':('',),' --inetd':('COMMAND',),' --init':('COMMAND',), ' --sandbox':('',), ' --term_user':('',), ' --x_user':('',)}
++usage = "sepolicy generate [-h] [-n NAME] [-p PATH] ["
++usage_dict = {' --newtype':('-t [TYPES [TYPES ...]]',),' --customize':('-d DOMAIN','-a  ADMIN_DOMAIN',"[ -w WRITEPATHS ]",), ' --admin_user':('[-r TRANSITION_ROLE ]',"[ -w WRITEPATHS ]",), ' --application':('COMMAND',"[ -w WRITEPATHS ]",), ' --cgi':('COMMAND',"[ -w WRITEPATHS ]",), ' --confined_admin':('-a  ADMIN_DOMAIN',"[ -w WRITEPATHS ]",), ' --dbus':('COMMAND',"[ -w WRITEPATHS ]",), ' --desktop_user':('',"[ -w WRITEPATHS ]",),' --inetd':('COMMAND',"[ -w WRITEPATHS ]",),' --init':('COMMAND',"[ -w WRITEPATHS ]",), ' --sandbox':("[ -w WRITEPATHS ]",), ' --term_user':("[ -w WRITEPATHS ]",), ' --x_user':("[ -w WRITEPATHS ]",)}
 +
  class CheckPath(argparse.Action):
      def __call__(self, parser, namespace, values, option_string=None):
@@ -321667,26 +321674,30 @@ index b25d3b2..f621227 100755
          if not args.command:
              raise ValueError(_("Command required for this type of policy"))
          cmd = os.path.realpath(args.command)
-@@ -346,8 +460,18 @@ def generate(args):
+@@ -346,8 +460,22 @@ def generate(args):
          mypolicy.set_program(cmd)
  
      if args.types:
 +        if args.policytype not in conflict_args['TYPES']:
-+            raise ValueError(_("-t option can not be used with this option. Read usage for more details."))
++            raise ValueError(_("-t option can not be used with '%s' domains. Read usage for more details.") % sepolicy.generate.poltype[args.policytype])
          mypolicy.set_types(args.types)
  
 +    if args.domain:
 +        if args.policytype not in conflict_args['DOMAIN']:
-+            raise ValueError(_("-d option can not be used with this option. Read usage for more details."))
++            raise ValueError(_("-d option can not be used with '%s' domains. Read usage for more details.") % sepolicy.generate.poltype[args.policytype])
 +
 +    if args.admin_domain:
 +        if args.policytype not in conflict_args['ADMIN_DOMAIN']:
-+            raise ValueError(_("-a option can not be used with this option. Read usage for more details."))
++            raise ValueError(_("-a option can not be used with '%s' domains. Read usage for more details.") % sepolicy.generate.poltype[args.policytype])
 +
++    if len(args.writepaths) > 0 and args.policytype == NEWTYPE:
++
++            raise ValueError(_("-w option can not be used with the --newtype option"))
++        
      for p in args.writepaths:
          if os.path.isdir(p):
              mypolicy.add_dir(p)
-@@ -355,6 +479,7 @@ def generate(args):
+@@ -355,6 +483,7 @@ def generate(args):
              mypolicy.add_file(p)
  
      mypolicy.set_transition_users(args.user)
@@ -321694,7 +321705,7 @@ index b25d3b2..f621227 100755
      mypolicy.set_admin_domains(args.admin_domain)
      mypolicy.set_existing_domains(args.domain)
  
-@@ -366,20 +491,34 @@ def generate(args):
+@@ -366,20 +495,34 @@ def generate(args):
  def gen_interface_args(parser):
      itf = parser.add_parser("interface",
                              help=_('List SELinux Policy interfaces'))
@@ -321732,7 +321743,7 @@ index b25d3b2..f621227 100755
                              help=_('Generate SELinux Policy module template'))
      pol.add_argument("-d", "--domain", dest="domain", default=[],
                       action=CheckDomain, nargs="*",
-@@ -387,9 +526,12 @@ def gen_generate_args(parser):
+@@ -387,9 +530,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"))
@@ -321746,7 +321757,7 @@ index b25d3b2..f621227 100755
      pol.add_argument("-n", "--name", dest="name",
                       default=None,
                       help=_("name of policy to generate"))
-@@ -397,53 +539,57 @@ def gen_generate_args(parser):
+@@ -397,53 +543,57 @@ def gen_generate_args(parser):
                       help=argparse.SUPPRESS)
      pol.add_argument("-t", "--type", dest="types", default=[], nargs="*",
                       action=CheckType, 
@@ -321768,17 +321779,17 @@ index b25d3b2..f621227 100755
 -    group.add_argument("--admin_user", dest="policytype", const=AUSER,
 +                       help=_("Generate '%s' policy") % poltype[USER])
 +    cmdgroup.add_argument("--cgi", dest="policytype", const=CGI,
++                       action="store_const",
++                       help=_("Generate '%s' policy") % poltype[CGI])
++    cmdgroup.add_argument("--dbus", dest="policytype", const=DBUS, 
                         action="store_const",
 -                       help=_("Generate Policy for %s") % poltype[AUSER])
 -    group.add_argument("--application", dest="policytype", const=USER,
-+                       help=_("Generate '%s' policy") % poltype[CGI])
-+    cmdgroup.add_argument("--dbus", dest="policytype", const=DBUS, 
++                       help=_("Generate '%s' policy") % poltype[DBUS])
++    cmdgroup.add_argument("--inetd", dest="policytype", const=INETD,
                         action="store_const",
 -                       help=_("Generate Policy for %s") % poltype[USER])
 -    group.add_argument("--cgi", dest="policytype", const=CGI,
-+                       help=_("Generate '%s' policy") % poltype[DBUS])
-+    cmdgroup.add_argument("--inetd", dest="policytype", const=INETD,
-+                       action="store_const",
 +                       help=_("Generate '%s' policy") % poltype[INETD])
 +    cmdgroup.add_argument("--init", dest="policytype", const=DAEMON, 
 +                       action="store_const", default=DAEMON, 
@@ -321830,7 +321841,7 @@ index b25d3b2..f621227 100755
      pol.set_defaults(func=generate)
  
  if __name__ == '__main__':
-@@ -455,17 +601,25 @@ if __name__ == '__main__':
+@@ -455,17 +605,25 @@ if __name__ == '__main__':
      gen_booleans_args(subparsers)
      gen_communicate_args(subparsers)
      gen_generate_args(subparsers)
@@ -322660,7 +322671,7 @@ index a179d95..9b9a09a 100755
      tlist = []
      for l in map(lambda y: y[sepolicy.TARGET], filter(lambda x: set(perm).issubset(x[sepolicy.PERMS]), allows)):
 diff --git a/policycoreutils/sepolicy/sepolicy/generate.py b/policycoreutils/sepolicy/sepolicy/generate.py
-index 26f8390..4aac488 100644
+index 26f8390..e27bc88 100644
 --- a/policycoreutils/sepolicy/sepolicy/generate.py
 +++ b/policycoreutils/sepolicy/sepolicy/generate.py
 @@ -63,20 +63,6 @@ except IOError:
@@ -322693,6 +322704,24 @@ index 26f8390..4aac488 100644
  
  def verify_ports(ports):
      if ports == "":
+@@ -206,7 +192,7 @@ class policy:
+                     raise ValueError(_("You must enter a valid policy type"))
+ 
+ 		if not name:
+-                    raise ValueError(_("You must enter a name for your policy module for your %s.") % poltype[type])
++                    raise ValueError(_("You must enter a name for your policy module for your '%s'.") % poltype[type])
+                 try:
+                     self.ports = get_all_ports()
+                 except ValueError, e:
+@@ -319,7 +305,7 @@ class policy:
+ 		self.DEFAULT_EXT["_var_log_t"] = var_log;
+ 		self.DEFAULT_EXT["_var_run_t"] = var_run;
+ 		self.DEFAULT_EXT["_var_spool_t"] = var_spool;
+-		self.DEFAULT_EXT["port_t"] = network;
++		self.DEFAULT_EXT["_port_t"] = network;
+ 
+                 self.DEFAULT_KEYS=["/etc", "/var/cache", "/var/log", "/tmp", "rw", "/var/lib", "/var/run", "/var/spool", "/etc/systemd/system", "/usr/lib/systemd/system", "/lib/systemd/system" ]
+ 
 @@ -587,7 +573,7 @@ class policy:
          def generate_network_action(self, protocol, action, port_name):
              line = ""
@@ -322702,21 +322731,45 @@ index 26f8390..4aac488 100644
                  line = "%s(%s_t)\n" % (method, self.name)
              else:
                  line = """
-@@ -875,6 +861,13 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -843,7 +829,7 @@ allow %s_t %s_t:%s_socket name_%s;
+ 
+ 	def generate_existing_user_types(self):
+                 if len(self.existing_domains) == 0:
+-                    raise ValueError(_("%s policy modules require existing domains") % poltype[self.type])
++                    raise ValueError(_("'%s' policy modules require existing domains") % poltype[self.type])
+                 newte = re.sub("TEMPLATETYPE", self.name, user.te_existing_user_types)
+                 newte += """gen_require(`"""
+ 
+@@ -873,19 +859,21 @@ allow %s_t %s_t:%s_socket name_%s;
+                 for t in self.types:
+                     for i in self.DEFAULT_EXT:
                          if t.endswith(i):
++                            print t, t[:-len(i)]
                              newte += re.sub("TEMPLATETYPE", t[:-len(i)], self.DEFAULT_EXT[i].te_types)
                              break
-+
+-                return newte
+ 
+-	def generate_new_rules(self):
+-                newte = ""
+-                for t in self.types:
 +                if NEWTYPE and newte == "":
 +                    default_ext = []
-+                    for i in self.DEFAULT_EXT:
+                     for i in self.DEFAULT_EXT:
+-                        if t.endswith(i):
+-                            newte += re.sub("TEMPLATETYPE", t[:-len(i)], self.DEFAULT_EXT[i].te_rules)
+-                            break
 +                        default_ext.append(i)
 +                    raise ValueError(_("You need to define a new type which ends with: \n %s") % "\n ".join(default_ext)) 
 +
                  return newte
  
- 	def generate_new_rules(self):
-@@ -1014,7 +1007,7 @@ allow %s_t %s_t:%s_socket name_%s;
++	def generate_new_rules(self):
++                return ""
++
+ 	def generate_daemon_types(self):
+                 newte = re.sub("TEMPLATETYPE", self.name, executable.te_daemon_types)
+                 if self.initscript != "":
+@@ -1014,7 +1002,7 @@ allow %s_t %s_t:%s_socket name_%s;
  
  	def generate_roles_rules(self):
              newte = ""
@@ -322725,7 +322778,7 @@ index 26f8390..4aac488 100644
                  roles = ""
                  if len(self.roles) > 0:
                      newte += re.sub("TEMPLATETYPE", self.name, user.te_sudo_rules)
-@@ -1030,14 +1023,15 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1030,14 +1018,15 @@ allow %s_t %s_t:%s_socket name_%s;
  			if len(self.DEFAULT_DIRS[d][1]) > 0:
  				# CGI scripts already have a rw_t
  				if self.type != CGI or d != "rw":
@@ -322743,7 +322796,7 @@ index 26f8390..4aac488 100644
                  newte += self.generate_capabilities()
                  newte += self.generate_process()
  		newte += self.generate_network_types()
-@@ -1048,11 +1042,22 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1048,11 +1037,22 @@ allow %s_t %s_t:%s_socket name_%s;
  
                  for d in self.DEFAULT_KEYS:
  			if len(self.DEFAULT_DIRS[d][1]) > 0:
@@ -322771,16 +322824,48 @@ index 26f8390..4aac488 100644
  
  		newte += self.generate_tmp_rules()
  		newte += self.generate_network_rules()
-@@ -1079,7 +1084,7 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1077,19 +1077,6 @@ allow %s_t %s_t:%s_socket name_%s;
+ 	def generate_fc(self):
+ 		newfc = ""
                  fclist = []
-                 if self.type in USERS +  [ SANDBOX ]:
-                     return executable.fc_user
+-                if self.type in USERS +  [ SANDBOX ]:
+-                    return executable.fc_user
 -                if self.type != NEWTYPE and not self.program:
-+                if self.type not in [ EUSER,  NEWTYPE ] and not self.program:
-                     raise ValueError(_("You must enter the executable path for your confined process"))
+-                    raise ValueError(_("You must enter the executable path for your confined process"))
+-
+-                if self.program:
+-                    t1 = re.sub("EXECUTABLE", self.program, executable.fc_program)
+-                    fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
+-
+-                if self.initscript != "":
+-                    t1 = re.sub("EXECUTABLE", self.initscript, executable.fc_initscript)
+-                    fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
+-
+ 		for i in self.files.keys():
+                         if os.path.exists(i) and stat.S_ISSOCK(os.stat(i)[stat.ST_MODE]):
+                             t1 = re.sub("TEMPLATETYPE", self.name, self.files[i][2].fc_sock_file)
+@@ -1103,13 +1090,28 @@ allow %s_t %s_t:%s_socket name_%s;
+ 			t2 = re.sub("FILENAME", i, t1)
+                         fclist.append(re.sub("FILETYPE", self.dirs[i][0], t2))
  
-                 if self.program:
-@@ -1109,7 +1114,7 @@ allow %s_t %s_t:%s_socket name_%s;
++                if self.type in USERS +  [ SANDBOX ]:
++                    if len(fclist) == 0:
++                        return executable.fc_user
++
++                if self.type not in USERS + [ SANDBOX, EUSER,  NEWTYPE ] and not self.program:
++                    raise ValueError(_("You must enter the executable path for your confined process"))
++
++                if self.program:
++                    t1 = re.sub("EXECUTABLE", self.program, executable.fc_program)
++                    fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
++
++                if self.initscript != "":
++                    t1 = re.sub("EXECUTABLE", self.initscript, executable.fc_initscript)
++                    fclist.append(re.sub("TEMPLATETYPE", self.name, t1))
++
+                 fclist.sort()
+                 newfc="\n".join(fclist)
+ 		return newfc
  
  	def generate_user_sh(self):
              newsh = ""
@@ -322789,7 +322874,7 @@ index 26f8390..4aac488 100644
                  return newsh
  
              roles = ""
-@@ -1117,13 +1122,10 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1117,13 +1119,10 @@ allow %s_t %s_t:%s_socket name_%s;
                  roles += " %s_r" % role
              if roles != "":
                  roles += " system_r"
@@ -322805,7 +322890,7 @@ index 26f8390..4aac488 100644
                  for u in self.transition_users:
                      tmp =  re.sub("TEMPLATETYPE", self.name, script.admin_trans)
                      newsh += re.sub("USER", u, tmp)
-@@ -1143,6 +1145,8 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1143,6 +1142,8 @@ allow %s_t %s_t:%s_socket name_%s;
                      newsh  = re.sub("TEMPLATEFILE", "%s" % self.file_name, temp)
                  else:
                      newsh  = re.sub("TEMPLATEFILE", self.file_name, temp)
@@ -322814,7 +322899,7 @@ index 26f8390..4aac488 100644
                  if self.program:
                      newsh += re.sub("FILENAME", self.program, script.restorecon)
                  if self.initscript != "":
-@@ -1165,6 +1169,7 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1165,6 +1166,7 @@ allow %s_t %s_t:%s_socket name_%s;
  			newsh += re.sub("TEMPLATETYPE", self.name, t1)
  
                  newsh += self.generate_user_sh()
@@ -322822,7 +322907,7 @@ index 26f8390..4aac488 100644
  
  		return newsh
  
-@@ -1198,7 +1203,13 @@ allow %s_t %s_t:%s_socket name_%s;
+@@ -1198,7 +1200,13 @@ allow %s_t %s_t:%s_socket name_%s;
  		if self.type not in APPLICATIONS:
                      newspec = re.sub("%relabel_files", "", newspec) 
                      
@@ -322837,7 +322922,7 @@ index 26f8390..4aac488 100644
  
  	def write_spec(self, out_dir):
  		specfile = "%s/%s_selinux.spec" % (out_dir, self.file_name)
-@@ -1349,6 +1360,7 @@ Warning %s does not exist
+@@ -1349,6 +1357,7 @@ Warning %s does not exist
              out += "%s # %s\n" % (self.write_te(out_dir), _("Type Enforcement file"))
              out += "%s # %s\n" % (self.write_if(out_dir), _("Interface file"))
              out += "%s # %s\n" % (self.write_fc(out_dir), _("File Contexts file"))
@@ -326346,6 +326431,17 @@ index 0000000..360aa41
 +    <property name="model">writable_files_treemodelfilter</property>
 +  </object>
 +</interface>
+diff --git a/policycoreutils/sepolicy/sepolicy/templates/network.py b/policycoreutils/sepolicy/sepolicy/templates/network.py
+index 4499440..43feee4 100644
+--- a/policycoreutils/sepolicy/sepolicy/templates/network.py
++++ b/policycoreutils/sepolicy/sepolicy/templates/network.py
+@@ -578,3 +578,6 @@ interface(`corenet_relabelto_TEMPLATETYPE_server_packets',`
+ 	allow $1 TEMPLATETYPE_server_packet_t:packet relabelto;
+ ')
+ """
++
++te_rules="""
++"""
 diff --git a/policycoreutils/sepolicy/sepolicy/templates/script.py b/policycoreutils/sepolicy/sepolicy/templates/script.py
 index c139070..c79738b 100644
 --- a/policycoreutils/sepolicy/sepolicy/templates/script.py
@@ -326642,6 +326738,135 @@ index 1edb4fd..1edd6b2 100644
  
 -setup(name = "sepolicy", version="1.1", description="Python SELinux Policy Analyses bindings", author="Daniel Walsh", author_email="dwalsh at redhat.com", ext_modules=[policy], packages=["sepolicy", "sepolicy.templates"])
 +setup(name = "sepolicy", version="1.1", description="Python SELinux Policy Analyses bindings", author="Daniel Walsh", author_email="dwalsh at redhat.com", ext_modules=[policy], packages=["sepolicy", "sepolicy.templates"], package_data={'sepolicy':['*.glade']})
+diff --git a/policycoreutils/sepolicy/test_sepolicy.py b/policycoreutils/sepolicy/test_sepolicy.py
+new file mode 100644
+index 0000000..3e3725d
+--- /dev/null
++++ b/policycoreutils/sepolicy/test_sepolicy.py
+@@ -0,0 +1,123 @@
++import unittest, os, shutil 
++from tempfile import mkdtemp
++from subprocess import Popen, PIPE
++
++class SepolicyTests(unittest.TestCase):
++    def assertDenied(self, err):
++        self.assert_('Permission denied' in err,
++                     '"Permission denied" not found in %r' % err)
++    def assertNotFound(self, err):
++        self.assert_('not found' in err,
++                     '"not found" not found in %r' % err)
++
++    def assertFailure(self, status):
++        self.assert_(status != 0,
++                     '"Succeeded when it should have failed')
++
++    def assertSuccess(self, status, err):
++        self.assert_(status == 0,
++                     '"sepolicy should have succeeded for this test %r' %  err)
++
++    def test_man_domain(self):
++        "Verify sepolicy manpage -d works"
++        p = Popen(['sepolicy', 'manpage', '-d', 'httpd_t'], stdout = PIPE)
++        out, err = p.communicate()
++        print out, err
++        self.assertSuccess(p.returncode, err)
++
++    def test_man_all(self):
++        "Verify sepolicy manpage -a works"
++        p = Popen(['sepolicy', 'manpage', '-a'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_network_l(self):
++        "Verify sepolicy network -l works"
++        p = Popen(['sepolicy', 'network', '-l'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_network_t(self):
++        "Verify sepolicy network -t works"
++        p = Popen(['sepolicy', 'network', '-t', 'http_port_t'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_network_p(self):
++        "Verify sepolicy network -p works"
++        p = Popen(['sepolicy', 'network', '-p', '80'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_network_d(self):
++        "Verify sepolicy network -d works"
++        p = Popen(['sepolicy', 'network', '-d', 'httpd_t'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_transition_s(self):
++        "Verify sepolicy transition -l works"
++        p = Popen(['sepolicy', 'transition', '-s', 'httpd_t'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_transition_t(self):
++        "Verify sepolicy transition -t works"
++        p = Popen(['sepolicy', 'transition', '-s', 'httpd_t', '-t', 'sendmail_t'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_booleans_l(self):
++        "Verify sepolicy booleans -l fails"
++        p = Popen(['sepolicy', 'booleans', '-l'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertFailure(p.returncode)
++
++    def test_booleans_a(self):
++        "Verify sepolicy booleans -a works"
++        p = Popen(['sepolicy', 'booleans', '-a'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_booleans_b_alias(self):
++        "Verify sepolicy booleans -b works"
++        p = Popen(['sepolicy', 'booleans', '-b', 'allow_ypbind'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_booleans_b(self):
++        "Verify sepolicy booleans -b works"
++        p = Popen(['sepolicy', 'booleans', '-b', 'nis_enabled'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_interface_l(self):
++        "Verify sepolicy interface -l works"
++        p = Popen(['sepolicy', 'interface', '-l'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_interface_a(self):
++        "Verify sepolicy interface -a works"
++        p = Popen(['sepolicy', 'interface', '-a'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_interface_p(self):
++        "Verify sepolicy interface -u works"
++        p = Popen(['sepolicy', 'interface', '-u'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++    def test_interface_ci(self):
++        "Verify sepolicy interface -c -i works"
++        p = Popen(['sepolicy', 'interface', '-c', '-i', 'apache_admin'], stdout = PIPE)
++        out, err = p.communicate()
++        self.assertSuccess(p.returncode, err)
++
++if __name__ == "__main__":
++    import selinux
++    if selinux.security_getenforce() == 1:
++        unittest.main()
++    else:
++        print "SELinux must be in enforcing mode for this test"
 diff --git a/policycoreutils/sestatus/Makefile b/policycoreutils/sestatus/Makefile
 index c5db7a3..c04ff00 100644
 --- a/policycoreutils/sestatus/Makefile
diff --git a/policycoreutils.spec b/policycoreutils.spec
index 8b1abe3..b93a5f9 100644
--- a/policycoreutils.spec
+++ b/policycoreutils.spec
@@ -7,7 +7,7 @@
 Summary: SELinux policy core utilities
 Name:	 policycoreutils
 Version: 2.1.14
-Release: 67%{?dist}
+Release: 68%{?dist}
 License: GPLv2
 Group:	 System Environment/Base
 # Based on git repository with tag 20101221
@@ -330,6 +330,11 @@ The policycoreutils-restorecond package contains the restorecond service.
 %systemd_postun_with_restart restorecond.service
 
 %changelog
+* Tue Jul 23 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-68
+- Fix bugs introduced by previous patch.  semanage port
+- Update Translations
+- Add test suite for sepolicy command lines
+
 * Fri Jul 19 2013 Dan Walsh <dwalsh at redhat.com> - 2.1.14-67
 - Fix bugs introduced by previous patch.  semanage port
 - Update Translations


More information about the scm-commits mailing list