From d60939fccd82a84011179206478db964dfb66164 Mon Sep 17 00:00:00 2001 From: Dan Walsh Date: Tue, 6 May 2014 14:58:32 -0400 Subject: [PATCH] Update to upstream * Add -P semodule option to man page from Dan Walsh. * selinux_current_policy_path will return none on a disabled SELinux system from Dan Walsh. * Add new icons for sepolicy gui from Dan Walsh. * Only return writeable files that are enabled from Dan Walsh. * Add domain to short list of domains, when -t and -d from Dan Walsh. * Fix up desktop files to match current standards from Dan Walsh. * Add support to return sensitivities and categories for python from Dan Walsh. * Cleanup whitespace from Dan Walsh. * Add message to tell user to install sandbox policy from Dan Walsh. * Add systemd unit file for mcstrans from Laurent Bigonville. * Improve restorecond systemd unit file from Laurent Bigonville. * Minor man pages improvements from Laurent Bigonville. --- policycoreutils-rhat.patch | 650901 ++++++++++++++++++++++++++++++++-- policycoreutils.spec | 30 +- 2 files changed, 630164 insertions(+), 20767 deletions(-) diff --git a/policycoreutils-rhat.patch b/policycoreutils-rhat.patch index 32b7d85..60d661a 100644 --- a/policycoreutils-rhat.patch +++ b/policycoreutils-rhat.patch @@ -1,3 +1,2152 @@ +diff --git a/policycoreutils/Makefile b/policycoreutils/Makefile +index 83ebd45..bea9814 100644 +--- a/policycoreutils/Makefile ++++ b/policycoreutils/Makefile +@@ -1,4 +1,4 @@ +-SUBDIRS = sepolicy setfiles semanage load_policy newrole run_init sandbox secon audit2allow sestatus semodule_package semodule semodule_link semodule_expand semodule_deps sepolgen-ifgen setsebool scripts po man gui ++SUBDIRS = sepolicy setfiles semanage load_policy newrole run_init sandbox secon audit2allow sestatus semodule_package semodule semodule_link semodule_expand semodule_deps sepolgen-ifgen setsebool scripts po man gui semanage/default_encoding + + INOTIFYH = $(shell ls /usr/include/sys/inotify.h 2>/dev/null) + +diff --git a/policycoreutils/audit2allow/sepolgen-ifgen b/policycoreutils/audit2allow/sepolgen-ifgen +index 83c7ecf..7f8caaf 100644 +--- a/policycoreutils/audit2allow/sepolgen-ifgen ++++ b/policycoreutils/audit2allow/sepolgen-ifgen +@@ -82,7 +82,7 @@ def get_attrs(policy_path): + sys.stderr.write("No installed policy to check\n") + return None + outfile = tempfile.NamedTemporaryFile() +- except IOError, e: ++ except IOError as e: + sys.stderr.write("could not open attribute output file\n") + return None + except OSError: +@@ -100,7 +100,7 @@ def get_attrs(policy_path): + try: + attrs.from_file(outfile) + except: +- print "error parsing attribute info" ++ print("error parsing attribute info") + return None + + return attrs +@@ -111,7 +111,7 @@ def main(): + # Open the output first to generate errors before parsing + try: + f = open(options.output, "w") +- except IOError, e: ++ except IOError as e: + sys.stderr.write("could not open output file [%s]\n" % options.output) + return 1 + +@@ -130,9 +130,9 @@ def main(): + # Parse the headers + try: + headers = refparser.parse_headers(options.headers, output=log, debug=options.debug) +- except ValueError, e: +- print "error parsing headers" +- print str(e) ++ except ValueError as e: ++ print("error parsing headers") ++ print(str(e)) + return 1 + + if_set = interfaces.InterfaceSet(output=log) +diff --git a/policycoreutils/gui/Makefile b/policycoreutils/gui/Makefile +index 9d9f820..0c2b390 100644 +--- a/policycoreutils/gui/Makefile ++++ b/policycoreutils/gui/Makefile +@@ -12,7 +12,6 @@ domainsPage.py \ + fcontextPage.py \ + html_util.py \ + loginsPage.py \ +-mappingsPage.py \ + modulesPage.py \ + polgen.glade \ + portsPage.py \ +diff --git a/policycoreutils/gui/booleansPage.py b/policycoreutils/gui/booleansPage.py +index eee954d..0c4b14b 100644 +--- a/policycoreutils/gui/booleansPage.py ++++ b/policycoreutils/gui/booleansPage.py +@@ -18,20 +18,17 @@ + # You should have received a copy of the GNU General Public License + # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + # +-import string + import gtk + import gtk.glade +-import os + import gobject + import sys +-import tempfile + import seobject + import semanagePage + + INSTALLPATH='/usr/share/system-config-selinux' + sys.path.append(INSTALLPATH) + +-import commands ++import subprocess + ENFORCING=0 + PERMISSIVE=1 + DISABLED=2 +@@ -50,10 +47,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode +- +-from glob import fnmatch ++ import builtins ++ builtins.__dict__['_'] = str + + class Modifier: + def __init__(self,name, on, save): +@@ -103,8 +98,6 @@ class booleansPage: + self.revertButton = xml.get_widget("booleanRevertButton") + self.revertButton.set_sensitive(self.local) + self.revertButton.connect("clicked", self.on_revert_clicked) +- listStore = gtk.ListStore(gobject.TYPE_STRING) +- cell = gtk.CellRendererText() + + self.store = gtk.ListStore(gobject.TYPE_BOOLEAN, gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) + self.store.set_sort_column_id(1, gtk.SORT_ASCENDING) +@@ -123,7 +116,7 @@ class booleansPage: + self.booleansView.append_column(col) + + col = gtk.TreeViewColumn("Description", gtk.CellRendererText(), text=DESC) +- col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) ++ col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) + col.set_fixed_width(400) + col.set_sort_column_id(DESC) + col.set_resizable(True) +@@ -170,16 +163,15 @@ class booleansPage: + # change cursor + if boolean == None: + return ++ self.wait() + try: +- self.wait() +- (rc, out) = commands.getstatusoutput("semanage boolean -d %s" % boolean) +- +- self.ready() +- if rc != 0: +- return self.error(out) ++ subprocess.check_output("semanage boolean -d %s" % boolean, ++ stderr=subprocess.STDOUT, ++ shell=True) + self.load(self.filter) +- except ValueError, e: +- self.error(e.args[0]) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def filter_changed(self, *arg): + filter = arg[0].get_text() +@@ -224,17 +216,25 @@ class booleansPage: + self.store.set_value(iter, ACTIVE , not val) + self.wait() + setsebool="/usr/sbin/setsebool -P %s %d" % (key, not val) +- rc,out = commands.getstatusoutput(setsebool) +- if rc != 0: +- self.error(out) +- self.load(self.filter) ++ try: ++ subprocess.check_output(setsebool, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.load(self.filter) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) + self.ready() + + def on_revert_clicked(self, button): + self.wait() + setsebool="semanage boolean --deleteall" +- commands.getstatusoutput(setsebool) +- self.load(self.filter) ++ try: ++ subprocess.check_output(setsebool, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.load(self.filter) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) + self.ready() + + def on_local_clicked(self, button): +diff --git a/policycoreutils/gui/domainsPage.py b/policycoreutils/gui/domainsPage.py +index 6af1e9a..39a4574 100644 +--- a/policycoreutils/gui/domainsPage.py ++++ b/policycoreutils/gui/domainsPage.py +@@ -20,7 +20,7 @@ import string + import gtk + import gtk.glade + import os +-import commands ++import subprocess + import gobject + import sys + import seobject +@@ -41,8 +41,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + class domainsPage(semanagePage): + def __init__(self, xml): +@@ -115,18 +115,17 @@ class domainsPage(semanagePage): + selection = self.view.get_selection() + store, iter = selection.get_selected() + domain = store.get_value(iter, 0) ++ self.wait() ++ cmd = "semanage permissive -d %s_t" % domain + try: +- self.wait() +- status, output = commands.getstatusoutput("semanage permissive -d %s_t" % domain) +- self.ready() +- if status != 0: +- self.error(output) +- else: +- domain = store.set_value(iter, 1, "") +- self.itemSelected(selection) +- +- except ValueError, e: +- self.error(e.args[0]) ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ domain = store.set_value(iter, 1, "") ++ self.itemSelected(selection) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def propertiesDialog(self): + # Do nothing +@@ -140,15 +139,14 @@ class domainsPage(semanagePage): + selection = self.view.get_selection() + store, iter = selection.get_selected() + domain = store.get_value(iter, 0) ++ self.wait() ++ cmd = "semanage permissive -a %s_t" % domain + try: +- self.wait() +- status, output = commands.getstatusoutput("semanage permissive -a %s_t" % domain) +- self.ready() +- if status != 0: +- self.error(output) +- else: +- domain = store.set_value(iter, 1, _("Permissive")) +- self.itemSelected(selection) +- +- except ValueError, e: +- self.error(e.args[0]) ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ domain = store.set_value(iter, 1, _("Permissive")) ++ self.itemSelected(selection) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() +diff --git a/policycoreutils/gui/fcontextPage.py b/policycoreutils/gui/fcontextPage.py +index 131f1c2..9a34143 100644 +--- a/policycoreutils/gui/fcontextPage.py ++++ b/policycoreutils/gui/fcontextPage.py +@@ -18,10 +18,9 @@ + ## Author: Dan Walsh + import gtk + import gtk.glade +-import os + import gobject + import seobject +-import commands ++import subprocess + from semanagePage import *; + + SPEC_COL = 0 +@@ -55,8 +54,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + + class fcontextPage(semanagePage): +@@ -72,16 +71,16 @@ class fcontextPage(semanagePage): + self.view.set_search_equal_func(self.search) + + col = gtk.TreeViewColumn(_("File\nSpecification"), gtk.CellRendererText(), text=SPEC_COL) +- col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) +- col.set_fixed_width(250) ++ col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) ++ col.set_fixed_width(250) + + col.set_sort_column_id(SPEC_COL) + col.set_resizable(True) + self.view.append_column(col) + col = gtk.TreeViewColumn(_("Selinux\nFile Type"), gtk.CellRendererText(), text=TYPE_COL) + +- col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) +- col.set_fixed_width(250) ++ col.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED) ++ col.set_fixed_width(250) + col.set_sort_column_id(TYPE_COL) + col.set_resizable(True) + self.view.append_column(col) +@@ -97,16 +96,16 @@ class fcontextPage(semanagePage): + liststore=self.fcontextFileTypeCombo.get_model() + for k in seobject.file_types: + if len(k) > 0 and k[0] != '-': +- iter=liststore.append() +- liststore.set_value(iter, 0, k) +- iter = liststore.get_iter_first() +- self.fcontextFileTypeCombo.set_active_iter(iter) ++ it=liststore.append() ++ liststore.set_value(it, 0, k) ++ it = liststore.get_iter_first() ++ self.fcontextFileTypeCombo.set_active_iter(it) + self.fcontextTypeEntry = xml.get_widget("fcontextTypeEntry") + self.fcontextMLSEntry = xml.get_widget("fcontextMLSEntry") + +- def match(self, fcon_dict, k, filter): ++ def match(self, fcon_dict, k, filt): + try: +- f=filter.lower() ++ f=filt.lower() + for con in k: + k=con.lower() + if k.find(f) >= 0: +@@ -119,46 +118,46 @@ class fcontextPage(semanagePage): + pass + return False + +- def load(self, filter=""): +- self.filter=filter ++ def load(self, filt=""): ++ self.filter=filt + self.fcontext=seobject.fcontextRecords() + self.store.clear() + fcon_dict=self.fcontext.get_all(self.local) +- keys = fcon_dict.keys() ++ keys = list(fcon_dict.keys()) + keys.sort() + for k in keys: +- if not self.match(fcon_dict, k, filter): ++ if not self.match(fcon_dict, k, filt): + continue +- iter=self.store.append() +- self.store.set_value(iter, SPEC_COL, k[0]) +- self.store.set_value(iter, FTYPE_COL, k[1]) ++ it=self.store.append() ++ self.store.set_value(it, SPEC_COL, k[0]) ++ self.store.set_value(it, FTYPE_COL, k[1]) + if fcon_dict[k]: + rec="%s:%s" % (fcon_dict[k][2], seobject.translate(fcon_dict[k][3],False)) + else: + rec="<>" +- self.store.set_value(iter, TYPE_COL, rec) ++ self.store.set_value(it, TYPE_COL, rec) + self.view.get_selection().select_path ((0,)) + + def filter_changed(self, *arg): +- filter = arg[0].get_text() +- if filter != self.filter: +- self.load(filter) ++ filt = arg[0].get_text() ++ if filt != self.filter: ++ self.load(filt) + + def dialogInit(self): +- store, iter = self.view.get_selection().get_selected() +- self.fcontextEntry.set_text(store.get_value(iter, SPEC_COL)) ++ store, it = self.view.get_selection().get_selected() ++ self.fcontextEntry.set_text(store.get_value(it, SPEC_COL)) + self.fcontextEntry.set_sensitive(False) +- scontext = store.get_value(iter, TYPE_COL) ++ scontext = store.get_value(it, TYPE_COL) + scon=context(scontext) + self.fcontextTypeEntry.set_text(scon.type) + self.fcontextMLSEntry.set_text(scon.mls) +- type=store.get_value(iter, FTYPE_COL) ++ setype=store.get_value(it, FTYPE_COL) + liststore=self.fcontextFileTypeCombo.get_model() +- iter = liststore.get_iter_first() +- while iter != None and liststore.get_value(iter,0) != type: +- iter = liststore.iter_next(iter) +- if iter != None: +- self.fcontextFileTypeCombo.set_active_iter(iter) ++ it = liststore.get_iter_first() ++ while it != None and liststore.get_value(it,0) != setype: ++ it = liststore.iter_next(it) ++ if it != None: ++ self.fcontextFileTypeCombo.set_active_iter(it) + self.fcontextFileTypeCombo.set_sensitive(False) + + def dialogClear(self): +@@ -169,55 +168,60 @@ class fcontextPage(semanagePage): + self.fcontextMLSEntry.set_text("s0") + + def delete(self): +- store, iter = self.view.get_selection().get_selected() ++ store, it = self.view.get_selection().get_selected() ++ fspec=store.get_value(it, SPEC_COL) ++ ftype=store.get_value(it, FTYPE_COL) ++ self.wait() + try: +- fspec=store.get_value(iter, SPEC_COL) +- ftype=store.get_value(iter, FTYPE_COL) +- self.wait() +- (rc, out) = commands.getstatusoutput("semanage fcontext -d -f '%s' '%s'" % (ftype, fspec)) +- self.ready() +- +- if rc != 0: +- return self.error(out) +- store.remove(iter) ++ subprocess.check_output("semanage fcontext -d -f '%s' '%s'" % (ftype, fspec), ++ stderr=subprocess.STDOUT, ++ shell=True) ++ store.remove(it) + self.view.get_selection().select_path ((0,)) +- except ValueError, e: +- self.error(e.args[0]) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def add(self): + ftype=["", "--", "-d", "-c", "-b", "-s", "-l", "-p" ] + fspec=self.fcontextEntry.get_text().strip() +- type=self.fcontextTypeEntry.get_text().strip() ++ setype=self.fcontextTypeEntry.get_text().strip() + mls=self.fcontextMLSEntry.get_text().strip() + list_model=self.fcontextFileTypeCombo.get_model() + active = self.fcontextFileTypeCombo.get_active() + self.wait() +- (rc, out) = commands.getstatusoutput("semanage fcontext -a -t %s -r %s -f '%s' '%s'" % (type, mls, ftype[active], fspec)) +- self.ready() +- if rc != 0: +- self.error(out) ++ try: ++ subprocess.check_output("semanage fcontext -a -t %s -r %s -f '%s' '%s'" % (setype, mls, ftype[active], fspec), ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ it=self.store.append() ++ self.store.set_value(it, SPEC_COL, fspec) ++ self.store.set_value(it, FTYPE_COL, ftype) ++ self.store.set_value(it, TYPE_COL, "%s:%s" % (setype, mls)) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False + +- iter=self.store.append() +- self.store.set_value(iter, SPEC_COL, fspec) +- self.store.set_value(iter, FTYPE_COL, ftype) +- self.store.set_value(iter, TYPE_COL, "%s:%s" % (type, mls)) +- + def modify(self): + fspec=self.fcontextEntry.get_text().strip() +- type=self.fcontextTypeEntry.get_text().strip() ++ setype=self.fcontextTypeEntry.get_text().strip() + mls=self.fcontextMLSEntry.get_text().strip() + list_model=self.fcontextFileTypeCombo.get_model() +- iter = self.fcontextFileTypeCombo.get_active_iter() +- ftype=list_model.get_value(iter,0) ++ it = self.fcontextFileTypeCombo.get_active_iter() ++ ftype=list_model.get_value(it,0) + self.wait() +- (rc, out) = commands.getstatusoutput("semanage fcontext -m -t %s -r %s -f '%s' '%s'" % (type, mls, ftype, fspec)) +- self.ready() +- if rc != 0: +- self.error(out) ++ try: ++ subprocess.check_output("semanage fcontext -m -t %s -r %s -f '%s' '%s'" % (setype, mls, ftype, fspec), ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ store, it = self.view.get_selection().get_selected() ++ self.store.set_value(it, SPEC_COL, fspec) ++ self.store.set_value(it, FTYPE_COL, ftype) ++ self.store.set_value(it, TYPE_COL, "%s:%s" % (setype, mls)) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False +- +- store, iter = self.view.get_selection().get_selected() +- self.store.set_value(iter, SPEC_COL, fspec) +- self.store.set_value(iter, FTYPE_COL, ftype) +- self.store.set_value(iter, TYPE_COL, "%s:%s" % (type, mls)) +diff --git a/policycoreutils/gui/html_util.py b/policycoreutils/gui/html_util.py +index 68eed76..32de37a 100644 +--- a/policycoreutils/gui/html_util.py ++++ b/policycoreutils/gui/html_util.py +@@ -30,7 +30,8 @@ import htmllib + import formatter as Formatter + import string + from types import * +-import StringIO ++import io ++import collections + + #------------------------------------------------------------------------------ + +@@ -119,7 +120,7 @@ def unescape_html(s): + + def html_to_text(html, maxcol=80): + try: +- buffer = StringIO.StringIO() ++ buffer = io.StringIO() + formatter = Formatter.AbstractFormatter(TextWriter(buffer, maxcol)) + parser = HTMLParserAnchor(formatter) + parser.feed(html) +@@ -127,7 +128,7 @@ def html_to_text(html, maxcol=80): + text = buffer.getvalue() + buffer.close() + return text +- except Exception, e: ++ except Exception as e: + log_program.error('cannot convert html to text: %s' % e) + return None + +@@ -149,7 +150,7 @@ def html_document(*body_components): + elif type(body_component) in [TupleType, ListType]: + for item in body_component: + doc += item +- elif callable(body_component): ++ elif isinstance(body_component, collections.Callable): + result = body_component() + if type(result) in [TupleType, ListType]: + for item in result: +diff --git a/policycoreutils/gui/loginsPage.py b/policycoreutils/gui/loginsPage.py +index ec29fd9..8a1c0b7 100644 +--- a/policycoreutils/gui/loginsPage.py ++++ b/policycoreutils/gui/loginsPage.py +@@ -16,13 +16,10 @@ + ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ## Author: Dan Walsh +-import string + import gtk + import gtk.glade +-import os + import gobject +-import sys +-import commands ++import subprocess + import seobject + from semanagePage import *; + +@@ -39,8 +36,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + class loginsPage(semanagePage): + def __init__(self, xml): +@@ -68,21 +65,21 @@ class loginsPage(semanagePage): + self.filter=filter + self.login = seobject.loginRecords() + dict = self.login.get_all(0) +- keys = dict.keys() ++ keys = list(dict.keys()) + keys.sort() + self.store.clear() + for k in keys: + range = seobject.translate(dict[k][1]) + if not (self.match(k, filter) or self.match(dict[k][0], filter) or self.match(range, filter)): + continue +- iter = self.store.append() +- self.store.set_value(iter, 0, k) +- self.store.set_value(iter, 1, dict[k][0]) +- self.store.set_value(iter, 2, range) ++ it = self.store.append() ++ self.store.set_value(it, 0, k) ++ self.store.set_value(it, 1, dict[k][0]) ++ self.store.set_value(it, 2, range) + self.view.get_selection().select_path ((0,)) + + def __dialogSetup(self): +- if self.firstTime == True: ++ if self.firstTime: + return + self.firstTime = True + liststore = gtk.ListStore(gobject.TYPE_STRING) +@@ -92,31 +89,31 @@ class loginsPage(semanagePage): + self.loginsSelinuxUserCombo.add_attribute(cell, 'text', 0) + + selusers = seobject.seluserRecords().get_all(0) +- keys = selusers.keys() ++ keys = list(selusers.keys()) + keys.sort() + for k in keys: + if k != "system_u": + self.loginsSelinuxUserCombo.append_text(k) + +- iter = liststore.get_iter_first() +- while liststore.get_value(iter,0) != "user_u": +- iter = liststore.iter_next(iter) +- self.loginsSelinuxUserCombo.set_active_iter(iter) ++ it = liststore.get_iter_first() ++ while liststore.get_value(it,0) != "user_u": ++ it = liststore.iter_next(it) ++ self.loginsSelinuxUserCombo.set_active_iter(it) + + def dialogInit(self): + self.__dialogSetup() +- store, iter = self.view.get_selection().get_selected() +- self.loginsNameEntry.set_text(store.get_value(iter, 0)) ++ store, it = self.view.get_selection().get_selected() ++ self.loginsNameEntry.set_text(store.get_value(it, 0)) + self.loginsNameEntry.set_sensitive(False) + +- self.loginsMLSEntry.set_text(store.get_value(iter, 2)) +- seuser = store.get_value(iter, 1) ++ self.loginsMLSEntry.set_text(store.get_value(it, 2)) ++ seuser = store.get_value(it, 1) + liststore = self.loginsSelinuxUserCombo.get_model() +- iter = liststore.get_iter_first() +- while iter != None and liststore.get_value(iter,0) != seuser: +- iter = liststore.iter_next(iter) +- if iter != None: +- self.loginsSelinuxUserCombo.set_active_iter(iter) ++ it = liststore.get_iter_first() ++ while it != None and liststore.get_value(it,0) != seuser: ++ it = liststore.iter_next(it) ++ if it != None: ++ self.loginsSelinuxUserCombo.set_active_iter(it) + + + def dialogClear(self): +@@ -126,21 +123,25 @@ class loginsPage(semanagePage): + self.loginsMLSEntry.set_text("s0") + + def delete(self): +- store, iter = self.view.get_selection().get_selected() ++ store, it = self.view.get_selection().get_selected() + try: +- login=store.get_value(iter, 0) ++ login=store.get_value(it, 0) + if login == "root" or login == "__default__": + raise ValueError(_("Login '%s' is required") % login) + + self.wait() +- (rc, out) = commands.getstatusoutput("semanage login -d %s" % login) +- self.ready() +- if rc != 0: +- self.error(out) ++ try: ++ subprocess.check_output("semanage login -d %s" % login, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ store.remove(it) ++ self.view.get_selection().select_path ((0,)) ++ except subprocess.CalledProcessError as e: ++ self.ready() ++ self.error(e.output) + return False +- store.remove(iter) +- self.view.get_selection().select_path ((0,)) +- except ValueError, e: ++ except ValueError as e: + self.error(e.args[0]) + + def add(self): +@@ -149,36 +150,42 @@ class loginsPage(semanagePage): + if serange == "": + serange="s0" + list_model=self.loginsSelinuxUserCombo.get_model() +- iter = self.loginsSelinuxUserCombo.get_active_iter() +- seuser = list_model.get_value(iter,0) ++ it = self.loginsSelinuxUserCombo.get_active_iter() ++ seuser = list_model.get_value(it,0) + self.wait() +- (rc, out) = commands.getstatusoutput("semanage login -a -s %s -r %s %s" % (seuser, serange, target)) +- self.ready() +- if rc != 0: +- self.error(out) ++ try: ++ subprocess.check_output("semanage login -a -s %s -r %s %s" % (seuser, serange, target), ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ it = self.store.append() ++ self.store.set_value(it, 0, target) ++ self.store.set_value(it, 1, seuser) ++ self.store.set_value(it, 2, seobject.translate(serange)) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False + +- iter = self.store.append() +- self.store.set_value(iter, 0, target) +- self.store.set_value(iter, 1, seuser) +- self.store.set_value(iter, 2, seobject.translate(serange)) +- + def modify(self): + target=self.loginsNameEntry.get_text().strip() + serange=self.loginsMLSEntry.get_text().strip() + if serange == "": + serange = "s0" + list_model = self.loginsSelinuxUserCombo.get_model() +- iter = self.loginsSelinuxUserCombo.get_active_iter() +- seuser=list_model.get_value(iter,0) ++ it = self.loginsSelinuxUserCombo.get_active_iter() ++ seuser=list_model.get_value(it,0) + self.wait() +- (rc, out) = commands.getstatusoutput("semanage login -m -s %s -r %s %s" % (seuser, serange, target)) +- self.ready() +- if rc != 0: +- self.error(out) ++ try: ++ subprocess.check_output("semanage login -m -s %s -r %s %s" % (seuser, serange, target), ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ store, it = self.view.get_selection().get_selected() ++ self.store.set_value(it, 0, target) ++ self.store.set_value(it, 1, seuser) ++ self.store.set_value(it, 2, seobject.translate(serange)) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False +- +- store, iter = self.view.get_selection().get_selected() +- self.store.set_value(iter, 0, target) +- self.store.set_value(iter, 1, seuser) +- self.store.set_value(iter, 2, seobject.translate(serange)) +diff --git a/policycoreutils/gui/mappingsPage.py b/policycoreutils/gui/mappingsPage.py +deleted file mode 100644 +index fd0ea75..0000000 +--- a/policycoreutils/gui/mappingsPage.py ++++ /dev/null +@@ -1,55 +0,0 @@ +-## mappingsPage.py - show selinux mappings +-## Copyright (C) 2006 Red Hat, Inc. +- +-## This program is free software; you can redistribute it and/or modify +-## it under the terms of the GNU General Public License as published by +-## the Free Software Foundation; either version 2 of the License, or +-## (at your option) any later version. +- +-## This program is distributed in the hope that it will be useful, +-## but WITHOUT ANY WARRANTY; without even the implied warranty of +-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-## GNU General Public License for more details. +- +-## You should have received a copy of the GNU General Public License +-## along with this program; if not, write to the Free Software +-## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +- +-## Author: Dan Walsh +-import string +-import gtk +-import gtk.glade +-import os +-import gobject +-import sys +-import seobject +- +-## +-## I18N +-## +-PROGNAME="policycoreutils" +-import gettext +-gettext.bindtextdomain(PROGNAME, "/usr/share/locale") +-gettext.textdomain(PROGNAME) +-try: +- gettext.install(PROGNAME, +- localedir="/usr/share/locale", +- unicode=False, +- codeset = 'utf-8') +-except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode +- +-class loginsPage: +- def __init__(self, xml): +- self.xml = xml +- self.view = xml.get_widget("mappingsView") +- self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING) +- self.store.set_sort_column_id(0, gtk.SORT_ASCENDING) +- self.view.set_model(self.store) +- self.login = loginRecords() +- dict = self.login.get_all(0) +- keys = dict.keys() +- keys.sort() +- for k in keys: +- print "%-25s %-25s %-25s" % (k, dict[k][0], translate(dict[k][1])) +diff --git a/policycoreutils/gui/modulesPage.py b/policycoreutils/gui/modulesPage.py +index 9ff0766..a52863e 100644 +--- a/policycoreutils/gui/modulesPage.py ++++ b/policycoreutils/gui/modulesPage.py +@@ -20,7 +20,7 @@ import string + import gtk + import gtk.glade + import os +-import commands ++import subprocess + import gobject + import sys + import seobject +@@ -41,8 +41,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + class modulesPage(semanagePage): + def __init__(self, xml): +@@ -85,8 +85,8 @@ class modulesPage(semanagePage): + except: + return 0 + +- def load(self, filter=""): +- self.filter=filter ++ def load(self, filt=""): ++ self.filter=filt + self.store.clear() + try: + fd = Popen("semodule -l", shell=True, stdout=PIPE).stdout +@@ -94,11 +94,11 @@ class modulesPage(semanagePage): + fd.close() + for i in l: + module, ver, newline = i.split('\t') +- if not (self.match(module, filter) or self.match(ver, filter)): ++ if not (self.match(module, filt) or self.match(ver, filt)): + continue +- iter = self.store.append() +- self.store.set_value(iter, 0, module.strip()) +- self.store.set_value(iter, 1, ver.strip()) ++ it = self.store.append() ++ self.store.set_value(it, 0, module.strip()) ++ self.store.set_value(it, 1, ver.strip()) + except: + pass + self.view.get_selection().select_path ((0,)) +@@ -107,53 +107,51 @@ class modulesPage(semanagePage): + def new_module(self, args): + try: + Popen(["/usr/share/system-config-selinux/polgengui.py"]) +- except ValueError, e: ++ except ValueError as e: + self.error(e.args[0]) + + def delete(self): +- store, iter = self.view.get_selection().get_selected() +- module = store.get_value(iter, 0) ++ store, it = self.view.get_selection().get_selected() ++ module = store.get_value(it, 0) ++ self.wait() + try: +- self.wait() +- status, output = commands.getstatusoutput("semodule -r %s" % module) +- self.ready() +- if status != 0: +- self.error(output) +- else: +- store.remove(iter) +- self.view.get_selection().select_path ((0,)) +- +- except ValueError, e: +- self.error(e.args[0]) ++ subprocess.check_output("semodule -r %s" % module, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ store.remove(it) ++ self.view.get_selection().select_path ((0,)) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def enable_audit(self, button): + self.audit_enabled = not self.audit_enabled ++ if self.audit_enabled: ++ cmd = "semodule -DB" ++ label = _("Disable Audit") ++ else: ++ cmd = "semodule -B" ++ label = _("Enable Audit") ++ self.wait() + try: +- self.wait() +- if self.audit_enabled: +- status, output =commands.getstatusoutput("semodule -DB") +- button.set_label(_("Disable Audit")) +- else: +- status, output =commands.getstatusoutput("semodule -B") +- button.set_label(_("Enable Audit")) +- self.ready() +- +- if status != 0: +- self.error(output) +- +- except ValueError, e: +- self.error(e.args[0]) ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ button.set_label(label) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def disable_audit(self, button): ++ self.wait() ++ cmd = "semodule -B" + try: +- self.wait() +- status, output =commands.getstatusoutput("semodule -B") +- self.ready() +- if status != 0: +- self.error(output) +- +- except ValueError, e: +- self.error(e.args[0]) ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def propertiesDialog(self): + # Do nothing +@@ -167,10 +165,10 @@ class modulesPage(semanagePage): + gtk.STOCK_OPEN, gtk.RESPONSE_OK)) + dialog.set_default_response(gtk.RESPONSE_OK) + +- filter = gtk.FileFilter() +- filter.set_name("Policy Files") +- filter.add_pattern("*.pp") +- dialog.add_filter(filter) ++ filt = gtk.FileFilter() ++ filt.set_name("Policy Files") ++ filt.add_pattern("*.pp") ++ dialog.add_filter(filt) + + response = dialog.run() + if response == gtk.RESPONSE_OK: +@@ -178,14 +176,13 @@ class modulesPage(semanagePage): + dialog.destroy() + + def add(self, file): ++ self.wait() ++ cmd = "semodule -i %s" % file + try: +- self.wait() +- status, output =commands.getstatusoutput("semodule -i %s" % file) +- self.ready() +- if status != 0: +- self.error(output) +- else: +- self.load() +- +- except ValueError, e: +- self.error(e.args[0]) ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.load() ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() +diff --git a/policycoreutils/gui/polgen.glade b/policycoreutils/gui/polgen.glade +index 37c1472..9854fb2 100644 +--- a/policycoreutils/gui/polgen.glade ++++ b/policycoreutils/gui/polgen.glade +@@ -758,7 +758,7 @@ + True + False + True +- ++ + + + 2 +@@ -840,7 +840,7 @@ + True + False + True +- ++ + + + 2 +@@ -1983,7 +1983,7 @@ Tab + True + True + False +- ++ + + + True +@@ -2036,7 +2036,7 @@ Tab + True + True + False +- ++ + + + True +@@ -2091,7 +2091,7 @@ Tab + True + False + True +- ++ + + + +@@ -2188,7 +2188,7 @@ Tab + True + True + False +- ++ + + + True +@@ -2243,7 +2243,7 @@ Tab + True + False + True +- ++ + + + +@@ -2414,7 +2414,7 @@ Tab + True + False + True +- ++ + + + False +@@ -2430,7 +2430,7 @@ Tab + True + False + True +- ++ + + + False +@@ -2446,7 +2446,7 @@ Tab + True + False + True +- ++ + + + False +diff --git a/policycoreutils/gui/polgengui.py b/policycoreutils/gui/polgengui.py +index 0f0e564..1b88c47 100644 +--- a/policycoreutils/gui/polgengui.py ++++ b/policycoreutils/gui/polgengui.py +@@ -30,29 +30,15 @@ import gnome + import sys + try: + from sepolicy import generate +-except ValueError,e: ++except ValueError as e: + sys.stderr.write("%s: %s\n" % (e.__class__.__name__, str(e))) + sys.exit(1) +- ++ + import sepolicy.interface +-import commands ++import subprocess + + import re + +-def get_all_modules(): +- try: +- all_modules = [] +- rc, output=commands.getstatusoutput("semodule -l 2>/dev/null") +- if rc == 0: +- l = output.split("\n") +- for i in l: +- all_modules.append(i.split()[0]) +- except: +- pass +- +- return all_modules +- +- + ## + ## I18N + ## +@@ -67,8 +53,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + gnome.program_init("SELinux Policy Generation Tool", "5") + +@@ -191,10 +177,10 @@ class childWindow: + + try: + self.all_types = generate.get_all_types() +- self.all_modules = get_all_modules() ++ self.all_modules = sepolicy.get_all_modules() + self.all_roles = generate.get_all_roles() + self.all_users = generate.get_all_users() +- except RuntimeError, e: ++ except RuntimeError as e: + self.all_types = [] + self.all_modules = [] + self.all_roles = [] +@@ -262,7 +248,7 @@ class childWindow: + self.out_udp_entry = self.xml.get_widget("out_udp_entry") + self.network_buttons[self.out_udp_all_checkbutton] = [ self.out_udp_entry ] + +- for b in self.network_buttons.keys(): ++ for b in list(self.network_buttons.keys()): + b.connect("clicked",self.network_all_clicked) + + self.boolean_treeview = self.xml.get_widget("boolean_treeview") +@@ -333,7 +319,7 @@ class childWindow: + for a in sepolicy.interface.get_admin(): + iter = self.admin_store.append() + self.admin_store.set_value(iter, 0, a) +- except ValueError,e: ++ except ValueError as e: + self.error(e.message) + + def confine_application(self): +@@ -519,7 +505,7 @@ class childWindow: + + self.info(my_policy.generate(outputdir)) + return False +- except ValueError, e: ++ except ValueError as e: + self.error(e.message) + + def delete(self, args): +@@ -687,7 +673,7 @@ class childWindow: + try: + generate.verify_ports(self.in_tcp_entry.get_text()) + generate.verify_ports(self.in_udp_entry.get_text()) +- except ValueError, e: ++ except ValueError as e: + self.error(e.message) + return True + +@@ -695,7 +681,7 @@ class childWindow: + try: + generate.verify_ports(self.out_tcp_entry.get_text()) + generate.verify_ports(self.out_udp_entry.get_text()) +- except ValueError, e: ++ except ValueError as e: + self.error(e.message) + return True + +@@ -734,12 +720,12 @@ class childWindow: + policy.set_program(exe) + policy.gen_writeable() + policy.gen_symbols() +- for f in policy.files.keys(): ++ for f in list(policy.files.keys()): + iter = self.store.append() + self.store.set_value(iter, 0, f) + self.store.set_value(iter, 1, FILE) + +- for f in policy.dirs.keys(): ++ for f in list(policy.dirs.keys()): + iter = self.store.append() + self.store.set_value(iter, 0, f) + self.store.set_value(iter, 1, DIR) +diff --git a/policycoreutils/gui/portsPage.py b/policycoreutils/gui/portsPage.py +index bfb4e36..e6c87c5 100644 +--- a/policycoreutils/gui/portsPage.py ++++ b/policycoreutils/gui/portsPage.py +@@ -16,14 +16,11 @@ + ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ## Author: Dan Walsh +-import string + import gtk + import gtk.glade +-import os + import gobject +-import sys + import seobject +-import commands ++import subprocess + from semanagePage import *; + + ## +@@ -43,8 +40,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + class portsPage(semanagePage): + def __init__(self, xml): +@@ -62,19 +59,19 @@ class portsPage(semanagePage): + self.ports_properties_button = xml.get_widget("portsPropertiesButton") + self.ports_delete_button = xml.get_widget("portsDeleteButton") + liststore = self.ports_protocol_combo.get_model() +- iter = liststore.get_iter_first() +- self.ports_protocol_combo.set_active_iter(iter) ++ it = liststore.get_iter_first() ++ self.ports_protocol_combo.set_active_iter(it) + self.init_store() + self.edit = True + self.load() + + def filter_changed(self, *arg): +- filter = arg[0].get_text() +- if filter != self.filter: ++ filt = arg[0].get_text() ++ if filt != self.filter: + if self.edit: +- self.load(filter) ++ self.load(filt) + else: +- self.group_load(filter) ++ self.group_load(filt) + + def init_store(self): + self.store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_STRING , gobject.TYPE_STRING) +@@ -116,43 +113,43 @@ class portsPage(semanagePage): + except: + return 0 + +- def load(self,filter = ""): +- self.filter=filter ++ def load(self,filt = ""): ++ self.filter=filt + self.port = seobject.portRecords() +- dict = self.port.get_all(self.local) +- keys = dict.keys() ++ pdict = self.port.get_all(self.local) ++ keys = list(pdict.keys()) + keys.sort() + self.store.clear() + for k in keys: +- if not (self.match(str(k[0]), filter) or self.match(dict[k][0], filter) or self.match(k[2], filter) or self.match(dict[k][1], filter) or self.match(dict[k][1], filter)): ++ if not (self.match(str(k[0]), filt) or self.match(pdict[k][0], filt) or self.match(k[2], filt) or self.match(pdict[k][1], filt) or self.match(pdict[k][1], filt)): + continue +- iter = self.store.append() ++ it = self.store.append() + if k[0] == k[1]: +- self.store.set_value(iter, PORT_COL, k[0]) ++ self.store.set_value(it, PORT_COL, k[0]) + else: + rec = "%s-%s" % k[:2] +- self.store.set_value(iter, PORT_COL, rec) +- self.store.set_value(iter, TYPE_COL, dict[k][0]) +- self.store.set_value(iter, PROTOCOL_COL, k[2]) +- self.store.set_value(iter, MLS_COL, dict[k][1]) ++ self.store.set_value(it, PORT_COL, rec) ++ self.store.set_value(it, TYPE_COL, pdict[k][0]) ++ self.store.set_value(it, PROTOCOL_COL, k[2]) ++ self.store.set_value(it, MLS_COL, pdict[k][1]) + self.view.get_selection().select_path ((0,)) + +- def group_load(self, filter = ""): +- self.filter=filter ++ def group_load(self, filt = ""): ++ self.filter=filt + self.port = seobject.portRecords() +- dict = self.port.get_all_by_type(self.local) +- keys = dict.keys() ++ pdict = self.port.get_all_by_type(self.local) ++ keys = list(pdict.keys()) + keys.sort() + self.store.clear() + for k in keys: +- ports_string = ", ".join(dict[k]) +- if not (self.match(ports_string, filter) or self.match(k[0], filter) or self.match(k[1], filter) ): ++ ports_string = ", ".join(pdict[k]) ++ if not (self.match(ports_string, filt) or self.match(k[0], filt) or self.match(k[1], filt) ): + continue +- iter = self.store.append() +- self.store.set_value(iter, TYPE_COL, k[0]) +- self.store.set_value(iter, PROTOCOL_COL, k[1]) +- self.store.set_value(iter, PORT_COL, ports_string) +- self.store.set_value(iter, MLS_COL, "") ++ it = self.store.append() ++ self.store.set_value(it, TYPE_COL, k[0]) ++ self.store.set_value(it, PROTOCOL_COL, k[1]) ++ self.store.set_value(it, PORT_COL, ports_string) ++ self.store.set_value(it, MLS_COL, "") + self.view.get_selection().select_path ((0,)) + + def propertiesDialog(self): +@@ -160,19 +157,19 @@ class portsPage(semanagePage): + semanagePage.propertiesDialog(self) + + def dialogInit(self): +- store, iter = self.view.get_selection().get_selected() +- self.ports_number_entry.set_text(store.get_value(iter, PORT_COL)) ++ store, it = self.view.get_selection().get_selected() ++ self.ports_number_entry.set_text(store.get_value(it, PORT_COL)) + self.ports_number_entry.set_sensitive(False) + self.ports_protocol_combo.set_sensitive(False) +- self.ports_name_entry.set_text(store.get_value(iter, TYPE_COL)) +- self.ports_mls_entry.set_text(store.get_value(iter, MLS_COL)) +- protocol = store.get_value(iter, PROTOCOL_COL) ++ self.ports_name_entry.set_text(store.get_value(it, TYPE_COL)) ++ self.ports_mls_entry.set_text(store.get_value(it, MLS_COL)) ++ protocol = store.get_value(it, PROTOCOL_COL) + liststore = self.ports_protocol_combo.get_model() +- iter = liststore.get_iter_first() +- while iter != None and liststore.get_value(iter,0) != protocol: +- iter = liststore.iter_next(iter) +- if iter != None: +- self.ports_protocol_combo.set_active_iter(iter) ++ it = liststore.get_iter_first() ++ while it != None and liststore.get_value(it,0) != protocol: ++ it = liststore.iter_next(it) ++ if it != None: ++ self.ports_protocol_combo.set_active_iter(it) + + def dialogClear(self): + self.ports_number_entry.set_text("") +@@ -182,19 +179,20 @@ class portsPage(semanagePage): + self.ports_mls_entry.set_text("s0") + + def delete(self): +- store, iter = self.view.get_selection().get_selected() +- port = store.get_value(iter, PORT_COL) +- protocol = store.get_value(iter, 1) ++ store, it = self.view.get_selection().get_selected() ++ port = store.get_value(it, PORT_COL) ++ protocol = store.get_value(it, 1) ++ self.wait() ++ cmd = "semanage port -d -p %s %s" % (protocol, port) + try: +- self.wait() +- (rc, out) = commands.getstatusoutput("semanage port -d -p %s %s" % (protocol, port)) +- self.ready() +- if rc != 0: +- return self.error(out) +- store.remove(iter) ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ store.remove(it) + self.view.get_selection().select_path ((0,)) +- except ValueError, e: +- self.error(e.args[0]) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + + def add(self): + target = self.ports_name_entry.get_text().strip() +@@ -207,39 +205,47 @@ class portsPage(semanagePage): + self.error(_("Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 ") % port_number ) + return False + list_model = self.ports_protocol_combo.get_model() +- iter = self.ports_protocol_combo.get_active_iter() +- protocol = list_model.get_value(iter,0) ++ it = self.ports_protocol_combo.get_active_iter() ++ protocol = list_model.get_value(it,0) + self.wait() +- (rc, out) = commands.getstatusoutput("semanage port -a -p %s -r %s -t %s %s" % (protocol, mls, target, port_number)) ++ cmd = "semanage port -a -p %s -r %s -t %s %s" % (protocol, mls, target, port_number) ++ try: ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ it = self.store.append() ++ self.store.set_value(it, TYPE_COL, target) ++ self.store.set_value(it, PORT_COL, port_number) ++ self.store.set_value(it, PROTOCOL_COL, protocol) ++ self.store.set_value(it, MLS_COL, mls) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) + self.ready() +- if rc != 0: +- self.error(out) +- return False +- iter = self.store.append() +- +- self.store.set_value(iter, TYPE_COL, target) +- self.store.set_value(iter, PORT_COL, port_number) +- self.store.set_value(iter, PROTOCOL_COL, protocol) +- self.store.set_value(iter, MLS_COL, mls) + + def modify(self): + target = self.ports_name_entry.get_text().strip() + mls = self.ports_mls_entry.get_text().strip() + port_number = self.ports_number_entry.get_text().strip() + list_model = self.ports_protocol_combo.get_model() +- iter = self.ports_protocol_combo.get_active_iter() +- protocol = list_model.get_value(iter,0) ++ it = self.ports_protocol_combo.get_active_iter() ++ protocol = list_model.get_value(it,0) + self.wait() +- (rc, out) = commands.getstatusoutput("semanage port -m -p %s -r %s -t %s %s" % (protocol, mls, target, port_number)) +- self.ready() +- if rc != 0: +- self.error(out) ++ cmd = "semanage port -m -p %s -r %s -t %s %s" % (protocol, mls, target, port_number) ++ try: ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ store, it = self.view.get_selection().get_selected() ++ self.store.set_value(it, TYPE_COL, target) ++ self.store.set_value(it, PORT_COL, port_number) ++ self.store.set_value(it, PROTOCOL_COL, protocol) ++ self.store.set_value(it, MLS_COL, mls) ++ self.ready() ++ return True ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False +- store, iter = self.view.get_selection().get_selected() +- self.store.set_value(iter, TYPE_COL, target) +- self.store.set_value(iter, PORT_COL, port_number) +- self.store.set_value(iter, PROTOCOL_COL, protocol) +- self.store.set_value(iter, MLS_COL, mls) + + def on_group_clicked(self, button): + self.ports_add_button.set_sensitive(self.group) +diff --git a/policycoreutils/gui/semanagePage.py b/policycoreutils/gui/semanagePage.py +index 3a0e478..040a4f8 100644 +--- a/policycoreutils/gui/semanagePage.py ++++ b/policycoreutils/gui/semanagePage.py +@@ -37,8 +37,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + def idle_func(): + while gtk.events_pending(): +@@ -77,9 +77,9 @@ class semanagePage: + return + + def filter_changed(self, *arg): +- filter = arg[0].get_text() +- if filter != self.filter: +- self.load(filter) ++ filt = arg[0].get_text() ++ if filt != self.filter: ++ self.load(filt) + + def search(self, model, col, key, i): + sort_col = self.store.get_sort_column_id()[0] +@@ -122,13 +122,37 @@ class semanagePage: + dlg.destroy() + + def deleteDialog(self): +- store, iter = self.view.get_selection().get_selected() +- if self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(iter, 0))), _("Delete %s" % self.description)) == gtk.RESPONSE_YES: ++ store, it = self.view.get_selection().get_selected() ++ if self.verify(_("Are you sure you want to delete %s '%s'?" % (self.description, store.get_value(it, 0))), _("Delete %s" % self.description)) == gtk.RESPONSE_YES: + self.delete() + + def use_menus(self): + return True + ++ def load(self, filt): ++ raise RuntimeError("load method not implemented in parent class"); ++ ++ def filter(self): ++ raise RuntimeError("filter method not implemented in parent class"); ++ ++ def store(self): ++ raise RuntimeError("store method not implemented in parent class"); ++ ++ def add(self): ++ raise RuntimeError("add method not implemented"); ++ ++ def modify(self): ++ raise RuntimeError("modify method not implemented"); ++ ++ def delete(self): ++ raise RuntimeError("delete method not implemented"); ++ ++ def dialogInit(self): ++ raise RuntimeError("dialogInit method not implemented"); ++ ++ def dialogClear(self): ++ raise RuntimeError("dialogClear method not implemented"); ++ + def addDialog(self): + self.dialogClear() + self.dialog.set_title(_("Add %s" % self.description)) +@@ -136,10 +160,10 @@ class semanagePage: + + while self.dialog.run() == gtk.RESPONSE_OK: + try: +- if self.add() == False: ++ if not self.add(): + continue + break; +- except ValueError, e: ++ except ValueError as e: + self.error(e.args[0]) + self.dialog.hide() + +@@ -149,10 +173,10 @@ class semanagePage: + self.dialog.set_position(gtk.WIN_POS_MOUSE) + while self.dialog.run() == gtk.RESPONSE_OK: + try: +- if self.modify() == False: ++ if not self.modify(): + continue + break; +- except ValueError, e: ++ except ValueError as e: + self.error(e.args[0]) + self.dialog.hide() + +diff --git a/policycoreutils/gui/statusPage.py b/policycoreutils/gui/statusPage.py +index 02685f2..6510d2a 100644 +--- a/policycoreutils/gui/statusPage.py ++++ b/policycoreutils/gui/statusPage.py +@@ -16,18 +16,14 @@ + ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ## Author: Dan Walsh +-import string + import gtk + import gtk.glade + import os +-import gobject + import sys +-import tempfile + + INSTALLPATH = '/usr/share/system-config-selinux' + sys.path.append(INSTALLPATH) + +-import commands + ENFORCING = 1 + PERMISSIVE = 0 + DISABLED = -1 +@@ -47,8 +43,8 @@ import selinux + try: + gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = unicode + + class statusPage: + def __init__(self, xml): +@@ -127,21 +123,21 @@ class statusPage: + return rc + + def typemenu_changed(self, menu): +- type = self.get_type() ++ setype = self.get_type() + enabled = self.enabledOptionMenu.get_active() +- if self.initialtype != type: ++ if self.initialtype != setype: + if self.verify(_("Changing the policy type will cause a relabel of the entire file system on the next boot. Relabeling takes a long time depending on the size of the file system. Do you wish to continue?")) == gtk.RESPONSE_NO: + menu.set_active(self.typeHistory) + return None + + self.relabel_checkbutton.set_active(True) + +- self.write_selinux_config(modearray[enabled], type ) ++ self.write_selinux_config(modearray[enabled], setype ) + self.typeHistory = menu.get_active() + + def enabled_changed(self, combo): + enabled = combo.get_active() +- type = self.get_type() ++ setype = self.get_type() + + if self.initEnabled != DISABLED and enabled == 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.RESPONSE_NO: +@@ -154,11 +150,11 @@ class statusPage: + return None + self.relabel_checkbutton.set_active(True) + +- self.write_selinux_config(modearray[enabled], type ) ++ self.write_selinux_config(modearray[enabled], setype ) + self.enabled = enabled + +- def write_selinux_config(self, enforcing, type): +- path = selinux.selinux_path() + "config" ++ def write_selinux_config(self, enforcing, setype): ++ path = selinux.selinux_path() + "config" + backup_path = path + ".bck" + fd = open(path) + lines = fd.readlines() +@@ -169,7 +165,7 @@ class statusPage: + fd.write("SELINUX=%s\n" % enforcing) + continue + if l.startswith("SELINUXTYPE="): +- fd.write("SELINUXTYPE=%s\n" % type) ++ fd.write("SELINUXTYPE=%s\n" % setype) + continue + fd.write(l) + fd.close() +diff --git a/policycoreutils/gui/system-config-selinux.py b/policycoreutils/gui/system-config-selinux.py +index bc3027e..9482fa5 100644 +--- a/policycoreutils/gui/system-config-selinux.py ++++ b/policycoreutils/gui/system-config-selinux.py +@@ -25,9 +25,9 @@ import string + import sys + try: + import gtk +-except RuntimeError, e: +- print "system-config-selinux:", e +- print "This is a graphical application and requires DISPLAY to be set." ++except RuntimeError as e: ++ print("system-config-selinux:", e) ++ print("This is a graphical application and requires DISPLAY to be set.") + sys.exit (1) + + import gtk.glade +@@ -57,8 +57,8 @@ try: + unicode=False, + codeset = 'utf-8') + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = str + + gnome.program_init("SELinux Management Tool", "5") + +@@ -95,7 +95,7 @@ class childWindow: + self.add_page(portsPage.portsPage(xml)) + self.add_page(modulesPage.modulesPage(xml)) # modules + self.add_page(domainsPage.domainsPage(xml)) # domains +- except ValueError, e: ++ except ValueError as e: + self.error(e.message) + + xml.signal_connect("on_quit_activate", self.destroy) +diff --git a/policycoreutils/gui/usersPage.py b/policycoreutils/gui/usersPage.py +index 93804ac..1451903 100644 +--- a/policycoreutils/gui/usersPage.py ++++ b/policycoreutils/gui/usersPage.py +@@ -16,13 +16,10 @@ + ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + ## Author: Dan Walsh +-import string + import gtk + import gtk.glade +-import os + import gobject +-import sys +-import commands ++import subprocess + import seobject + from semanagePage import *; + +@@ -36,8 +33,8 @@ gettext.textdomain(PROGNAME) + try: + gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1) + except IOError: +- import __builtin__ +- __builtin__.__dict__['_'] = unicode ++ import builtins ++ builtins.__dict__['_'] = unicode + + class usersPage(semanagePage): + def __init__(self, xml): +@@ -65,34 +62,30 @@ class usersPage(semanagePage): + self.mlsRangeEntry = xml.get_widget("mlsRangeEntry") + self.selinuxRolesEntry = xml.get_widget("selinuxRolesEntry") + +- def load(self, filter = ""): +- self.filter=filter ++ def load(self, filt = ""): ++ self.filter=filt + self.user = seobject.seluserRecords() +- dict = self.user.get_all() +- keys = dict.keys() ++ udict = self.user.get_all() ++ keys = list(udict.keys()) + keys.sort() + self.store.clear() + for k in keys: +- range = seobject.translate(dict[k][2]) +- if not (self.match(k, filter) or self.match(dict[k][0], filter) or self.match(range, filter) or self.match(dict[k][3], filter)): ++ serange = seobject.translate(udict[k][2]) ++ if not (self.match(k, filt) or self.match(udict[k][0], filter) or self.match(serange, filt) or self.match(udict[k][3], filt)): + continue + +- iter = self.store.append() +- self.store.set_value(iter, 0, k) +- self.store.set_value(iter, 1, range) +- self.store.set_value(iter, 2, dict[k][3]) ++ it = self.store.append() ++ self.store.set_value(it, 0, k) ++ self.store.set_value(it, 1, serange) ++ self.store.set_value(it, 2, udict[k][3]) + self.view.get_selection().select_path ((0,)) + +- def delete(self): +- if semanagePage.delete(self) == gtk.RESPONSE_NO: +- return None +- + def dialogInit(self): +- store, iter = self.view.get_selection().get_selected() +- self.selinuxUserEntry.set_text(store.get_value(iter, 0)) ++ store, it = self.view.get_selection().get_selected() ++ self.selinuxUserEntry.set_text(store.get_value(it, 0)) + self.selinuxUserEntry.set_sensitive(False) +- self.mlsRangeEntry.set_text(store.get_value(iter, 1)) +- self.selinuxRolesEntry.set_text(store.get_value(iter, 2)) ++ self.mlsRangeEntry.set_text(store.get_value(it, 1)) ++ self.selinuxRolesEntry.set_text(store.get_value(it, 2)) + + def dialogClear(self): + self.selinuxUserEntry.set_text("") +@@ -102,48 +95,62 @@ class usersPage(semanagePage): + + def add(self): + user = self.selinuxUserEntry.get_text() +- range = self.mlsRangeEntry.get_text() ++ serange = self.mlsRangeEntry.get_text() + roles = self.selinuxRolesEntry.get_text() + + self.wait() +- (rc, out) = commands.getstatusoutput("semanage user -a -R '%s' -r %s %s" % (roles, range, user)) +- self.ready() +- if rc != 0: +- self.error(out) ++ try: ++ subprocess.check_output("semanage user -a -R '%s' -r %s %s" % (roles, serange, user), ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ it = self.store.append() ++ self.store.set_value(it, 0, user) ++ self.store.set_value(it, 1, serange) ++ self.store.set_value(it, 2, roles) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False +- iter = self.store.append() +- self.store.set_value(iter, 0, user) +- self.store.set_value(iter, 1, range) +- self.store.set_value(iter, 2, roles) + + def modify(self): + user = self.selinuxUserEntry.get_text() +- range = self.mlsRangeEntry.get_text() ++ serange = self.mlsRangeEntry.get_text() + roles = self.selinuxRolesEntry.get_text() + + self.wait() +- (rc, out) = commands.getstatusoutput("semanage user -m -R '%s' -r %s %s" % (roles, range, user)) +- self.ready() +- +- if rc != 0: +- self.error(out) ++ cmd = "semanage user -m -R '%s' -r %s %s" % (roles, serange, user) ++ try: ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ self.load(self.filter) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False +- self.load(self.filter) ++ return True + + def delete(self): +- store, iter = self.view.get_selection().get_selected() ++ store, it = self.view.get_selection().get_selected() + try: +- user=store.get_value(iter, 0) ++ user=store.get_value(it, 0) + if user == "root" or user == "user_u": + raise ValueError(_("SELinux user '%s' is required") % user) + + self.wait() +- (rc, out) = commands.getstatusoutput("semanage user -d %s" % user) +- self.ready() +- if rc != 0: +- self.error(out) ++ cmd = "semanage user -d %s" % user ++ try: ++ subprocess.check_output(cmd, ++ stderr=subprocess.STDOUT, ++ shell=True) ++ self.ready() ++ store.remove(it) ++ self.view.get_selection().select_path ((0,)) ++ except subprocess.CalledProcessError as e: ++ self.error(e.output) ++ self.ready() + return False +- store.remove(iter) +- self.view.get_selection().select_path ((0,)) +- except ValueError, e: ++ except ValueError as e: + self.error(e.args[0]) +diff --git a/policycoreutils/newrole/newrole.c b/policycoreutils/newrole/newrole.c +index dfb8c7f..4e59a06 100644 +--- a/policycoreutils/newrole/newrole.c ++++ b/policycoreutils/newrole/newrole.c +@@ -547,9 +547,7 @@ static int drop_capabilities(int full) + if (!uid) return 0; + + capng_setpid(getpid()); +- capng_clear(CAPNG_SELECT_BOTH); +- if (capng_lock() < 0) +- return -1; ++ capng_clear(CAPNG_SELECT_CAPS); + + /* Change uid */ + if (setresuid(uid, uid, uid)) { +@@ -558,7 +556,7 @@ static int drop_capabilities(int full) + } + if (! full) + capng_update(CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, CAP_AUDIT_WRITE); +- return capng_apply(CAPNG_SELECT_BOTH); ++ return capng_apply(CAPNG_SELECT_CAPS); + } + #elif defined(NAMESPACE_PRIV) + /** +@@ -576,20 +574,21 @@ static int drop_capabilities(int full) + */ + static int drop_capabilities(int full) + { ++ uid_t uid = getuid(); ++ if (!uid) return 0; ++ + capng_setpid(getpid()); +- capng_clear(CAPNG_SELECT_BOTH); +- if (capng_lock() < 0) +- return -1; ++ capng_clear(CAPNG_SELECT_CAPS); + +- uid_t uid = getuid(); + /* Change uid */ + if (setresuid(uid, uid, uid)) { + fprintf(stderr, _("Error changing uid, aborting.\n")); + return -1; + } + if (! full) +- capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, CAP_SYS_ADMIN , CAP_FOWNER , CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_SETPCAP, -1); +- return capng_apply(CAPNG_SELECT_BOTH); ++ capng_updatev(CAPNG_ADD, CAPNG_EFFECTIVE | CAPNG_PERMITTED, CAP_SYS_ADMIN , CAP_FOWNER , CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_AUDIT_WRITE, -1); ++ ++ return capng_apply(CAPNG_SELECT_CAPS); + } + + #else +@@ -680,7 +679,7 @@ static int relabel_tty(const char *ttyn, security_context_t new_context, + security_context_t * tty_context, + security_context_t * new_tty_context) + { +- int fd; ++ int fd, rc; + int enforcing = security_getenforce(); + security_context_t tty_con = NULL; + security_context_t new_tty_con = NULL; +@@ -699,7 +698,13 @@ static int relabel_tty(const char *ttyn, security_context_t new_context, + fprintf(stderr, _("Error! Could not open %s.\n"), ttyn); + return fd; + } +- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ /* this craziness is to make sure we cann't block on open and deadlock */ ++ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ if (rc) { ++ fprintf(stderr, _("Error! Could not clear O_NONBLOCK on %s\n"), ttyn); ++ close(fd); ++ return rc; ++ } + + if (fgetfilecon(fd, &tty_con) < 0) { + fprintf(stderr, _("%s! Could not get current context " +@@ -1010,9 +1015,9 @@ int main(int argc, char *argv[]) + int fd; + pid_t childPid = 0; + char *shell_argv0 = NULL; ++ int rc; + + #ifdef USE_PAM +- int rc; + int pam_status; /* pam return code */ + pam_handle_t *pam_handle; /* opaque handle used by all PAM functions */ + +@@ -1223,18 +1228,26 @@ int main(int argc, char *argv[]) + fprintf(stderr, _("Could not close descriptors.\n")); + goto err_close_pam; + } +- fd = open(ttyn, O_RDWR | O_NONBLOCK); ++ fd = open(ttyn, O_RDONLY | O_NONBLOCK); + if (fd != 0) + goto err_close_pam; +- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ if (rc) ++ goto err_close_pam; ++ + fd = open(ttyn, O_RDWR | O_NONBLOCK); + if (fd != 1) + goto err_close_pam; +- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ if (rc) ++ goto err_close_pam; ++ + fd = open(ttyn, O_RDWR | O_NONBLOCK); + if (fd != 2) + goto err_close_pam; +- fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ rc = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); ++ if (rc) ++ goto err_close_pam; + + } + /* +@@ -1268,19 +1281,24 @@ int main(int argc, char *argv[]) + } + #endif + +- if (send_audit_message(1, old_context, new_context, ttyn)) ++ if (send_audit_message(1, old_context, new_context, ttyn)) { ++ fprintf(stderr, _("Failed to send audit message")); + goto err_close_pam_session; ++ } + freecon(old_context); old_context=NULL; + freecon(new_context); new_context=NULL; + + #ifdef NAMESPACE_PRIV +- if (transition_to_caller_uid()) ++ if (transition_to_caller_uid()) { ++ fprintf(stderr, _("Failed to transition to namespace\n")); + goto err_close_pam_session; ++ } + #endif + +- if (drop_capabilities(TRUE)) ++ if (drop_capabilities(TRUE)) { ++ fprintf(stderr, _("Failed to drop capabilities %m\n")); + goto err_close_pam_session; +- ++ } + /* Handle environment changes */ + if (restore_environment(preserve_environment, old_environ, &pw)) { + fprintf(stderr, _("Unable to restore the environment, " +diff --git a/policycoreutils/po/Makefile b/policycoreutils/po/Makefile +index a693823..555f381 100644 +--- a/policycoreutils/po/Makefile ++++ b/policycoreutils/po/Makefile +@@ -28,7 +28,7 @@ POTFILES = \ + ../run_init/run_init.c \ + ../semodule_link/semodule_link.c \ + ../audit2allow/audit2allow \ +- ../semanage/seobject.py \ ++ ../semanage/seobject/__init__.py \ + ../setsebool/setsebool.c \ + ../newrole/newrole.c \ + ../load_policy/load_policy.c \ +@@ -49,7 +49,6 @@ POTFILES = \ + ../gui/booleansPage.py \ + ../gui/fcontextPage.py \ + ../gui/loginsPage.py \ +- ../gui/mappingsPage.py \ + ../gui/modulesPage.py \ + ../gui/polgen.glade \ + ../gui/polgengui.py \ +@@ -61,6 +60,36 @@ POTFILES = \ + ../gui/usersPage.py \ + ../secon/secon.c \ + booleans.py \ ++ ../sepolicy/sepolicy/help/booleans_more_show.txt \ ++ ../sepolicy/sepolicy/help/booleans_more.txt \ ++ ../sepolicy/sepolicy/help/booleans_toggled.txt \ ++ ../sepolicy/sepolicy/help/booleans.txt \ ++ ../sepolicy/sepolicy/help/file_equiv.txt \ ++ ../sepolicy/sepolicy/help/files_apps.txt \ ++ ../sepolicy/sepolicy/help/files_exec.txt \ ++ ../sepolicy/sepolicy/help/files_write.txt \ ++ ../sepolicy/sepolicy/help/lockdown_permissive.txt \ ++ ../sepolicy/sepolicy/help/lockdown_ptrace.txt \ ++ ../sepolicy/sepolicy/help/lockdown.txt \ ++ ../sepolicy/sepolicy/help/lockdown_unconfined.txt \ ++ ../sepolicy/sepolicy/help/login_default.txt \ ++ ../sepolicy/sepolicy/help/login.txt \ ++ ../sepolicy/sepolicy/help/ports_inbound.txt \ ++ ../sepolicy/sepolicy/help/ports_outbound.txt \ ++ ../sepolicy/sepolicy/help/start.txt \ ++ ../sepolicy/sepolicy/help/system_boot_mode.txt \ ++ ../sepolicy/sepolicy/help/system_current_mode.txt \ ++ ../sepolicy/sepolicy/help/system_export.txt \ ++ ../sepolicy/sepolicy/help/system_policy_type.txt \ ++ ../sepolicy/sepolicy/help/system_relabel.txt \ ++ ../sepolicy/sepolicy/help/system.txt \ ++ ../sepolicy/sepolicy/help/transition_file.txt \ ++ ../sepolicy/sepolicy/help/transition_from_boolean_1.txt \ ++ ../sepolicy/sepolicy/help/transition_from_boolean_2.txt \ ++ ../sepolicy/sepolicy/help/transition_from_boolean.txt \ ++ ../sepolicy/sepolicy/help/transition_from.txt \ ++ ../sepolicy/sepolicy/help/transition_to.txt \ ++ ../sepolicy/sepolicy/help/users.txt \ + ../sepolicy/info.c \ + ../sepolicy/search.c \ + ../sepolicy/sepolicy.py \ +diff --git a/policycoreutils/po/POTFILES b/policycoreutils/po/POTFILES +index bcb9e99..ae25133 100644 +--- a/policycoreutils/po/POTFILES ++++ b/policycoreutils/po/POTFILES +@@ -2,7 +2,7 @@ + ../run_init/run_init.c + ../semodule_link/semodule_link.c + ../audit2allow/audit2allow +- ../semanage/seobject.py ++ ../semanage/seobject/__init__.py + ../setsebool/setsebool.c + ../newrole/newrole.c + ../load_policy/load_policy.c +@@ -23,7 +23,6 @@ + ../gui/booleansPage.py + ../gui/fcontextPage.py + ../gui/loginsPage.py +- ../gui/mappingsPage.py + ../gui/modulesPage.py + ../gui/polgen.glade + ../gui/polgengui.py +@@ -47,6 +46,36 @@ + ../gui/templates/var_log.py + ../gui/templates/var_run.py + ../gui/templates/var_spool.py ++ ../sepolicy/sepolicy/help/booleans_more_show.txt ++ ../sepolicy/sepolicy/help/booleans_more.txt ++ ../sepolicy/sepolicy/help/booleans_toggled.txt ++ ../sepolicy/sepolicy/help/booleans.txt ++ ../sepolicy/sepolicy/help/file_equiv.txt ++ ../sepolicy/sepolicy/help/files_apps.txt ++ ../sepolicy/sepolicy/help/files_exec.txt ++ ../sepolicy/sepolicy/help/files_write.txt ++ ../sepolicy/sepolicy/help/lockdown_permissive.txt ++ ../sepolicy/sepolicy/help/lockdown_ptrace.txt ++ ../sepolicy/sepolicy/help/lockdown.txt ++ ../sepolicy/sepolicy/help/lockdown_unconfined.txt ++ ../sepolicy/sepolicy/help/login_default.txt ++ ../sepolicy/sepolicy/help/login.txt ++ ../sepolicy/sepolicy/help/ports_inbound.txt ++ ../sepolicy/sepolicy/help/ports_outbound.txt ++ ../sepolicy/sepolicy/help/start.txt ++ ../sepolicy/sepolicy/help/system_boot_mode.txt ++ ../sepolicy/sepolicy/help/system_current_mode.txt ++ ../sepolicy/sepolicy/help/system_export.txt ++ ../sepolicy/sepolicy/help/system_policy_type.txt ++ ../sepolicy/sepolicy/help/system_relabel.txt ++ ../sepolicy/sepolicy/help/system.txt ++ ../sepolicy/sepolicy/help/transition_file.txt ++ ../sepolicy/sepolicy/help/transition_from_boolean_1.txt ++ ../sepolicy/sepolicy/help/transition_from_boolean_2.txt ++ ../sepolicy/sepolicy/help/transition_from_boolean.txt ++ ../sepolicy/sepolicy/help/transition_from.txt ++ ../sepolicy/sepolicy/help/transition_to.txt ++ ../sepolicy/sepolicy/help/users.txt + ../sepolicy/info.c + ../sepolicy/search.c + ../sepolicy/sepolicy.py +diff --git a/policycoreutils/po/POTFILES.in b/policycoreutils/po/POTFILES.in +index aca0474..0ccb542 100644 +--- a/policycoreutils/po/POTFILES.in ++++ b/policycoreutils/po/POTFILES.in +@@ -2,7 +2,7 @@ run_init/open_init_pty.c + run_init/run_init.c + semodule_link/semodule_link.c + audit2allow/audit2allow +-semanage/seobject.py ++semanage/seobject/__init__.py + setsebool/setsebool.c + newrole/newrole.c + load_policy/load_policy.c +@@ -23,7 +23,6 @@ restorecond/utmpwatcher.c + gui/booleansPage.py + gui/fcontextPage.py + gui/loginsPage.py +-gui/mappingsPage.py + gui/modulesPage.py + gui/polgen.glade + gui/polgengui.py +@@ -45,6 +44,36 @@ sepolicy/sepolicy/generate.py + sepolicy/sepolicy/sepolicy.glade + sepolicy/sepolicy/gui.py + sepolicy/sepolicy/manpage.py ++sepolicy/sepolicy/help/booleans_more_show.txt ++sepolicy/sepolicy/help/booleans_more.txt ++sepolicy/sepolicy/help/booleans_toggled.txt ++sepolicy/sepolicy/help/booleans.txt ++sepolicy/sepolicy/help/file_equiv.txt ++sepolicy/sepolicy/help/files_apps.txt ++sepolicy/sepolicy/help/files_exec.txt ++sepolicy/sepolicy/help/files_write.txt ++sepolicy/sepolicy/help/lockdown_permissive.txt ++sepolicy/sepolicy/help/lockdown_ptrace.txt ++sepolicy/sepolicy/help/lockdown.txt ++sepolicy/sepolicy/help/lockdown_unconfined.txt ++sepolicy/sepolicy/help/login_default.txt ++sepolicy/sepolicy/help/login.txt ++sepolicy/sepolicy/help/ports_inbound.txt ++sepolicy/sepolicy/help/ports_outbound.txt ++sepolicy/sepolicy/help/start.txt ++sepolicy/sepolicy/help/system_boot_mode.txt ++sepolicy/sepolicy/help/system_current_mode.txt ++sepolicy/sepolicy/help/system_export.txt ++sepolicy/sepolicy/help/system_policy_type.txt ++sepolicy/sepolicy/help/system_relabel.txt ++sepolicy/sepolicy/help/system.txt ++sepolicy/sepolicy/help/transition_file.txt ++sepolicy/sepolicy/help/transition_from_boolean_1.txt ++sepolicy/sepolicy/help/transition_from_boolean_2.txt ++sepolicy/sepolicy/help/transition_from_boolean.txt ++sepolicy/sepolicy/help/transition_from.txt ++sepolicy/sepolicy/help/transition_to.txt ++sepolicy/sepolicy/help/users.txt + sepolicy/sepolicy/transition.py + sepolicy/sepolicy/templates/executable.py + sepolicy/sepolicy/templates/__init__.py diff --git a/policycoreutils/po/ach.po b/policycoreutils/po/ach.po new file mode 100644 index 0000000..0d84e13 @@ -5203,7 +7352,7 @@ index 0000000..0d84e13 +msgid "Loss of data Dialog" +msgstr "" diff --git a/policycoreutils/po/af.po b/policycoreutils/po/af.po -index c565e50..e3cd32f 100644 +index e4a6e09..e3cd32f 100644 --- a/policycoreutils/po/af.po +++ b/policycoreutils/po/af.po @@ -1,21 +1,20 @@ @@ -5217,13 +7366,15 @@ index c565e50..e3cd32f 100644 msgstr "" "Project-Id-Version: Policycoreutils\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2014-01-03 16:04-0500\n" --"PO-Revision-Date: 2013-12-20 13:58+0000\n" -+"PO-Revision-Date: 2014-01-03 21:04+0000\n" - "Last-Translator: dwalsh \n" +-"POT-Creation-Date: 2013-10-10 16:04-0400\n" +-"PO-Revision-Date: 2012-03-30 18:14+0000\n" +-"Last-Translator: FULL NAME \n" -"Language-Team: Afrikaans (http://www.transifex.com/projects/p/fedora/" -"language/af/)\n" -"Language: af\n" ++"POT-Creation-Date: 2014-01-03 16:04-0500\n" ++"PO-Revision-Date: 2014-01-03 21:04+0000\n" ++"Last-Translator: dwalsh \n" +"Language-Team: Afrikaans (http://www.transifex.com/projects/p/fedora/language/af/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5232,7 +7383,1327 @@ index c565e50..e3cd32f 100644 "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../run_init/run_init.c:67 -@@ -1585,8 +1584,8 @@ msgstr "" +@@ -87,96 +86,101 @@ msgstr "" + msgid "To make this policy package active, execute:" + msgstr "" + +-#: ../semanage/seobject.py:210 ++#: ../semanage/seobject/__init__.py:220 + msgid "Could not create semanage handle" + msgstr "" + +-#: ../semanage/seobject.py:218 ++#: ../semanage/seobject/__init__.py:228 + msgid "SELinux policy is not managed or store cannot be accessed." + msgstr "" + +-#: ../semanage/seobject.py:223 ++#: ../semanage/seobject/__init__.py:233 + msgid "Cannot read policy store." + msgstr "" + +-#: ../semanage/seobject.py:228 ++#: ../semanage/seobject/__init__.py:238 + msgid "Could not establish semanage connection" + msgstr "" + +-#: ../semanage/seobject.py:233 ++#: ../semanage/seobject/__init__.py:243 + msgid "Could not test MLS enabled status" + msgstr "" + +-#: ../semanage/seobject.py:239 ../semanage/seobject.py:254 ++#: ../semanage/seobject/__init__.py:249 ../semanage/seobject/__init__.py:264 + msgid "Not yet implemented" + msgstr "" + +-#: ../semanage/seobject.py:243 ++#: ../semanage/seobject/__init__.py:253 + msgid "Semanage transaction already in progress" + msgstr "" + +-#: ../semanage/seobject.py:252 ++#: ../semanage/seobject/__init__.py:262 + msgid "Could not start semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:264 ++#: ../semanage/seobject/__init__.py:274 + msgid "Could not commit semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:269 ++#: ../semanage/seobject/__init__.py:279 + msgid "Semanage transaction not in progress" + msgstr "" + +-#: ../semanage/seobject.py:281 ../semanage/seobject.py:376 ++#: ../semanage/seobject/__init__.py:291 ../semanage/seobject/__init__.py:386 + msgid "Could not list SELinux modules" + msgstr "" + +-#: ../semanage/seobject.py:300 ++#: ../semanage/seobject/__init__.py:310 + msgid "Modules Name" + msgstr "" + +-#: ../semanage/seobject.py:300 ../gui/modulesPage.py:63 ++#: ../semanage/seobject/__init__.py:310 ../gui/modulesPage.py:63 + msgid "Version" + msgstr "" + +-#: ../semanage/seobject.py:303 ../gui/statusPage.py:75 +-#: ../sepolicy/sepolicy/sepolicy.glade:3430 ++#: ../semanage/seobject/__init__.py:313 ../gui/statusPage.py:71 ++#: ../sepolicy/sepolicy/sepolicy.glade:3431 + msgid "Disabled" + msgstr "" + +-#: ../semanage/seobject.py:312 ++#: ../semanage/seobject/__init__.py:322 + #, python-format + msgid "Module does not exists %s " + msgstr "" + +-#: ../semanage/seobject.py:322 ++#: ../semanage/seobject/__init__.py:332 + #, python-format + msgid "Could not disable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:333 ++#: ../semanage/seobject/__init__.py:343 + #, python-format + msgid "Could not enable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:348 ++#: ../semanage/seobject/__init__.py:358 + #, python-format + msgid "Could not remove module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:363 ++#: ../semanage/seobject/__init__.py:373 + msgid "dontaudit requires either 'on' or 'off'" + msgstr "" + +-#: ../semanage/seobject.py:391 ++#: ../semanage/seobject/__init__.py:402 ++msgid "Customized Permissive Types" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:410 + msgid "Builtin Permissive Types" + msgstr "" + +-#: ../semanage/seobject.py:401 +-msgid "Customized Permissive Types" ++#: ../semanage/seobject/__init__.py:419 ++#, python-format ++msgid "%s is not a domain type" + msgstr "" + +-#: ../semanage/seobject.py:410 ++#: ../semanage/seobject/__init__.py:424 + msgid "" + "The sepolgen python module is required to setup permissive domains.\n" + "In some distributions it is included in the policycoreutils-devel patckage.\n" +@@ -184,810 +188,825 @@ msgid "" + "Or similar for your distro." + msgstr "" + +-#: ../semanage/seobject.py:447 ++#: ../semanage/seobject/__init__.py:461 + #, python-format + msgid "Could not set permissive domain %s (module installation failed)" + msgstr "" + +-#: ../semanage/seobject.py:453 ++#: ../semanage/seobject/__init__.py:467 + #, python-format + msgid "Could not remove permissive domain %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:488 ../semanage/seobject.py:562 +-#: ../semanage/seobject.py:608 ../semanage/seobject.py:730 +-#: ../semanage/seobject.py:760 ../semanage/seobject.py:827 +-#: ../semanage/seobject.py:884 ../semanage/seobject.py:1144 +-#: ../semanage/seobject.py:1879 ../semanage/seobject.py:1942 +-#: ../semanage/seobject.py:1961 ../semanage/seobject.py:2084 +-#: ../semanage/seobject.py:2135 ++#: ../semanage/seobject/__init__.py:501 ../semanage/seobject/__init__.py:575 ++#: ../semanage/seobject/__init__.py:621 ../semanage/seobject/__init__.py:743 ++#: ../semanage/seobject/__init__.py:773 ../semanage/seobject/__init__.py:839 ++#: ../semanage/seobject/__init__.py:896 ../semanage/seobject/__init__.py:1156 ++#: ../semanage/seobject/__init__.py:1891 ../semanage/seobject/__init__.py:1954 ++#: ../semanage/seobject/__init__.py:1973 ../semanage/seobject/__init__.py:2096 ++#: ../semanage/seobject/__init__.py:2147 + #, python-format + msgid "Could not create a key for %s" + msgstr "" + +-#: ../semanage/seobject.py:492 ../semanage/seobject.py:566 +-#: ../semanage/seobject.py:612 ../semanage/seobject.py:618 ++#: ../semanage/seobject/__init__.py:505 ../semanage/seobject/__init__.py:579 ++#: ../semanage/seobject/__init__.py:625 ../semanage/seobject/__init__.py:631 + #, python-format + msgid "Could not check if login mapping for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:501 ++#: ../semanage/seobject/__init__.py:514 + #, python-format + msgid "Linux Group %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:506 ++#: ../semanage/seobject/__init__.py:519 + #, python-format + msgid "Linux User %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:510 ++#: ../semanage/seobject/__init__.py:523 + #, python-format + msgid "Could not create login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:514 ../semanage/seobject.py:775 ++#: ../semanage/seobject/__init__.py:527 ../semanage/seobject/__init__.py:788 + #, python-format + msgid "Could not set name for %s" + msgstr "" + +-#: ../semanage/seobject.py:519 ../semanage/seobject.py:785 ++#: ../semanage/seobject/__init__.py:532 ../semanage/seobject/__init__.py:798 + #, python-format + msgid "Could not set MLS range for %s" + msgstr "" + +-#: ../semanage/seobject.py:523 ++#: ../semanage/seobject/__init__.py:536 + #, python-format + msgid "Could not set SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:527 ++#: ../semanage/seobject/__init__.py:540 + #, python-format + msgid "Could not add login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:545 ++#: ../semanage/seobject/__init__.py:558 + msgid "Requires seuser or serange" + msgstr "" + +-#: ../semanage/seobject.py:568 ../semanage/seobject.py:614 ++#: ../semanage/seobject/__init__.py:581 ../semanage/seobject/__init__.py:627 + #, python-format + msgid "Login mapping for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:572 ++#: ../semanage/seobject/__init__.py:585 + #, python-format + msgid "Could not query seuser for %s" + msgstr "" + +-#: ../semanage/seobject.py:586 ++#: ../semanage/seobject/__init__.py:599 + #, python-format + msgid "Could not modify login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:620 ++#: ../semanage/seobject/__init__.py:633 + #, python-format + msgid "Login mapping for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:624 ++#: ../semanage/seobject/__init__.py:637 + #, python-format + msgid "Could not delete login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:646 ../semanage/seobject.py:679 +-#: ../semanage/seobject.py:927 ++#: ../semanage/seobject/__init__.py:659 ../semanage/seobject/__init__.py:692 ++#: ../semanage/seobject/__init__.py:939 + msgid "Could not list login mappings" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 + #: ../gui/system-config-selinux.glade:100 +-#: ../sepolicy/sepolicy/sepolicy.glade:1166 +-#: ../sepolicy/sepolicy/sepolicy.glade:3155 ++#: ../sepolicy/sepolicy/sepolicy.glade:1162 ++#: ../sepolicy/sepolicy/sepolicy.glade:3156 + msgid "Login Name" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 + #: ../gui/system-config-selinux.glade:128 + #: ../gui/system-config-selinux.glade:915 +-#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:44 +-#: ../sepolicy/sepolicy/sepolicy.glade:1192 +-#: ../sepolicy/sepolicy/sepolicy.glade:3173 +-#: ../sepolicy/sepolicy/sepolicy.glade:3259 ++#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:41 ++#: ../sepolicy/sepolicy/sepolicy.glade:1188 ++#: ../sepolicy/sepolicy/sepolicy.glade:3174 ++#: ../sepolicy/sepolicy/sepolicy.glade:3260 ++#: ../sepolicy/sepolicy/sepolicy.glade:4915 + msgid "SELinux User" + msgstr "" + +-#: ../semanage/seobject.py:707 ../gui/system-config-selinux.glade:156 ++#: ../semanage/seobject/__init__.py:720 ../gui/system-config-selinux.glade:156 + #: ../gui/system-config-selinux.glade:943 + msgid "MLS/MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:707 ++#: ../semanage/seobject/__init__.py:720 + msgid "Service" + msgstr "" + +-#: ../semanage/seobject.py:733 ../semanage/seobject.py:764 +-#: ../semanage/seobject.py:831 ../semanage/seobject.py:888 +-#: ../semanage/seobject.py:894 ++#: ../semanage/seobject/__init__.py:746 ../semanage/seobject/__init__.py:777 ++#: ../semanage/seobject/__init__.py:843 ../semanage/seobject/__init__.py:900 ++#: ../semanage/seobject/__init__.py:906 + #, python-format + msgid "Could not check if SELinux user %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:736 ../semanage/seobject.py:837 +-#: ../semanage/seobject.py:900 ++#: ../semanage/seobject/__init__.py:749 ../semanage/seobject/__init__.py:849 ++#: ../semanage/seobject/__init__.py:912 + #, python-format + msgid "Could not query user for %s" + msgstr "" + +-#: ../semanage/seobject.py:756 ++#: ../semanage/seobject/__init__.py:769 + #, python-format + msgid "You must add at least one role for %s" + msgstr "" + +-#: ../semanage/seobject.py:771 ++#: ../semanage/seobject/__init__.py:784 + #, python-format + msgid "Could not create SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:780 ++#: ../semanage/seobject/__init__.py:793 + #, python-format +-msgid "Could not add role %s for %s" ++msgid "Could not add role %(ROLE)s for %(NAME)s" + msgstr "" + +-#: ../semanage/seobject.py:789 ++#: ../semanage/seobject/__init__.py:802 + #, python-format + msgid "Could not set MLS level for %s" + msgstr "" + +-#: ../semanage/seobject.py:792 ++#: ../semanage/seobject/__init__.py:805 + #, python-format +-msgid "Could not add prefix %s for %s" ++msgid "Could not add prefix %(PREFIX)s for %(ROLE)s" + msgstr "" + +-#: ../semanage/seobject.py:795 ++#: ../semanage/seobject/__init__.py:808 + #, python-format + msgid "Could not extract key for %s" + msgstr "" + +-#: ../semanage/seobject.py:799 ++#: ../semanage/seobject/__init__.py:812 + #, python-format + msgid "Could not add SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:821 ++#: ../semanage/seobject/__init__.py:833 + msgid "Requires prefix, roles, level or range" + msgstr "" + +-#: ../semanage/seobject.py:823 ++#: ../semanage/seobject/__init__.py:835 + msgid "Requires prefix or roles" + msgstr "" + +-#: ../semanage/seobject.py:833 ../semanage/seobject.py:890 ++#: ../semanage/seobject/__init__.py:845 ../semanage/seobject/__init__.py:902 + #, python-format + msgid "SELinux user %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:862 ++#: ../semanage/seobject/__init__.py:874 + #, python-format + msgid "Could not modify SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:896 ++#: ../semanage/seobject/__init__.py:908 + #, python-format + msgid "SELinux user %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:907 ++#: ../semanage/seobject/__init__.py:919 + #, python-format + msgid "Could not delete SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:945 ++#: ../semanage/seobject/__init__.py:957 + msgid "Could not list SELinux users" + msgstr "" + +-#: ../semanage/seobject.py:951 ++#: ../semanage/seobject/__init__.py:963 + #, python-format + msgid "Could not list roles for user %s" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "Labeling" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "MLS/" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "Prefix" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Level" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 +-#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59 +-#: ../sepolicy/sepolicy/sepolicy.glade:3279 +-#: ../sepolicy/sepolicy/sepolicy.glade:5170 +-#: ../sepolicy/sepolicy/sepolicy.glade:5411 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 ++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:56 ++#: ../sepolicy/sepolicy/sepolicy.glade:3280 ++#: ../sepolicy/sepolicy/sepolicy.glade:5251 ++#: ../sepolicy/sepolicy/sepolicy.glade:5400 + msgid "SELinux Roles" + msgstr "" + +-#: ../semanage/seobject.py:1002 ++#: ../semanage/seobject/__init__.py:1014 + msgid "Protocol udp or tcp is required" + msgstr "" + +-#: ../semanage/seobject.py:1004 ++#: ../semanage/seobject/__init__.py:1016 + msgid "Port is required" + msgstr "" + +-#: ../semanage/seobject.py:1014 ++#: ../semanage/seobject/__init__.py:1026 + msgid "Invalid Port" + msgstr "" + +-#: ../semanage/seobject.py:1018 ++#: ../semanage/seobject/__init__.py:1030 + #, python-format +-msgid "Could not create a key for %s/%s" ++msgid "Could not create a key for %(PROTOTYPE)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1029 ++#: ../semanage/seobject/__init__.py:1041 + msgid "Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1032 ../semanage/seobject.py:1096 +-#: ../semanage/seobject.py:1873 ++#: ../semanage/seobject/__init__.py:1044 ../semanage/seobject/__init__.py:1108 ++#: ../semanage/seobject/__init__.py:1885 + #, python-format + msgid "Type %s is invalid, must be a port type" + msgstr "" + +-#: ../semanage/seobject.py:1040 ../semanage/seobject.py:1102 +-#: ../semanage/seobject.py:1157 ../semanage/seobject.py:1163 ++#: ../semanage/seobject/__init__.py:1052 ../semanage/seobject/__init__.py:1169 ++#: ../semanage/seobject/__init__.py:1175 + #, python-format +-msgid "Could not check if port %s/%s is defined" ++msgid "Could not check if port %(PROTOCOL)s/%(PORT)s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1042 ++#: ../semanage/seobject/__init__.py:1054 + #, python-format +-msgid "Port %s/%s already defined" ++msgid "Port %(PROTOCOL)s/%(PORT)s already defined" + msgstr "" + +-#: ../semanage/seobject.py:1046 ++#: ../semanage/seobject/__init__.py:1058 + #, python-format +-msgid "Could not create port for %s/%s" ++msgid "Could not create port for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1052 ++#: ../semanage/seobject/__init__.py:1064 + #, python-format +-msgid "Could not create context for %s/%s" ++msgid "Could not create context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1056 ++#: ../semanage/seobject/__init__.py:1068 + #, python-format +-msgid "Could not set user in port context for %s/%s" ++msgid "Could not set user in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1060 ++#: ../semanage/seobject/__init__.py:1072 + #, python-format +-msgid "Could not set role in port context for %s/%s" ++msgid "Could not set role in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1064 ++#: ../semanage/seobject/__init__.py:1076 + #, python-format +-msgid "Could not set type in port context for %s/%s" ++msgid "Could not set type in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1069 ++#: ../semanage/seobject/__init__.py:1081 + #, python-format +-msgid "Could not set mls fields in port context for %s/%s" ++msgid "Could not set mls fields in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1073 ++#: ../semanage/seobject/__init__.py:1085 + #, python-format +-msgid "Could not set port context for %s/%s" ++msgid "Could not set port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1077 ++#: ../semanage/seobject/__init__.py:1089 + #, python-format +-msgid "Could not add port %s/%s" ++msgid "Could not add port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1367 +-#: ../semanage/seobject.py:1566 ++#: ../semanage/seobject/__init__.py:1103 ../semanage/seobject/__init__.py:1379 ++#: ../semanage/seobject/__init__.py:1578 + msgid "Requires setype or serange" + msgstr "" + +-#: ../semanage/seobject.py:1093 ++#: ../semanage/seobject/__init__.py:1105 + msgid "Requires setype" + msgstr "" + +-#: ../semanage/seobject.py:1104 ../semanage/seobject.py:1159 ++#: ../semanage/seobject/__init__.py:1114 ++#, python-format ++msgid "Could not check if port @%(PROTOCOL)s/%(PORT)s is defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1116 + #, python-format +-msgid "Port %s/%s is not defined" ++msgid "Port @%(PROTOCOL)s/%(PORT)s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1108 ++#: ../semanage/seobject/__init__.py:1120 + #, python-format +-msgid "Could not query port %s/%s" ++msgid "Could not query port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1119 ++#: ../semanage/seobject/__init__.py:1131 + #, python-format +-msgid "Could not modify port %s/%s" ++msgid "Could not modify port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1132 ++#: ../semanage/seobject/__init__.py:1144 + msgid "Could not list the ports" + msgstr "" + +-#: ../semanage/seobject.py:1148 ++#: ../semanage/seobject/__init__.py:1160 + #, python-format + msgid "Could not delete the port %s" + msgstr "" + +-#: ../semanage/seobject.py:1165 ++#: ../semanage/seobject/__init__.py:1171 ++#, python-format ++msgid "Port %(PROTOCOL)s/%(PORT)s is not defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1177 + #, python-format +-msgid "Port %s/%s is defined in policy, cannot be deleted" ++msgid "Port %(PROTOCOL)s/%(PORT)s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1169 ++#: ../semanage/seobject/__init__.py:1181 + #, python-format +-msgid "Could not delete port %s/%s" ++msgid "Could not delete port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1185 ../semanage/seobject.py:1207 ++#: ../semanage/seobject/__init__.py:1197 ../semanage/seobject/__init__.py:1219 + msgid "Could not list ports" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../sepolicy/sepolicy/sepolicy.glade:2675 +-#: ../sepolicy/sepolicy/sepolicy.glade:2773 +-#: ../sepolicy/sepolicy/sepolicy.glade:4687 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2676 ++#: ../sepolicy/sepolicy/sepolicy.glade:2774 ++#: ../sepolicy/sepolicy/sepolicy.glade:4648 + msgid "SELinux Port Type" + msgstr "" + +-#: ../semanage/seobject.py:1246 ++#: ../semanage/seobject/__init__.py:1258 + msgid "Proto" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../gui/system-config-selinux.glade:335 +-#: ../sepolicy/sepolicy/sepolicy.glade:1417 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../gui/system-config-selinux.glade:335 ++#: ../sepolicy/sepolicy/sepolicy.glade:1413 + msgid "Port Number" + msgstr "" + +-#: ../semanage/seobject.py:1270 ++#: ../semanage/seobject/__init__.py:1282 + msgid "Node Address is required" + msgstr "" + +-#: ../semanage/seobject.py:1285 ++#: ../semanage/seobject/__init__.py:1297 + msgid "Unknown or missing protocol" + msgstr "" + +-#: ../semanage/seobject.py:1299 ++#: ../semanage/seobject/__init__.py:1311 + msgid "SELinux node type is required" + msgstr "" + +-#: ../semanage/seobject.py:1302 ../semanage/seobject.py:1370 ++#: ../semanage/seobject/__init__.py:1314 ../semanage/seobject/__init__.py:1382 + #, python-format + msgid "Type %s is invalid, must be a node type" + msgstr "" + +-#: ../semanage/seobject.py:1306 ../semanage/seobject.py:1374 +-#: ../semanage/seobject.py:1410 ../semanage/seobject.py:1508 +-#: ../semanage/seobject.py:1570 ../semanage/seobject.py:1604 +-#: ../semanage/seobject.py:1818 ++#: ../semanage/seobject/__init__.py:1318 ../semanage/seobject/__init__.py:1386 ++#: ../semanage/seobject/__init__.py:1422 ../semanage/seobject/__init__.py:1520 ++#: ../semanage/seobject/__init__.py:1582 ../semanage/seobject/__init__.py:1616 ++#: ../semanage/seobject/__init__.py:1830 + #, python-format + msgid "Could not create key for %s" + msgstr "" + +-#: ../semanage/seobject.py:1308 ../semanage/seobject.py:1378 +-#: ../semanage/seobject.py:1414 ../semanage/seobject.py:1420 ++#: ../semanage/seobject/__init__.py:1320 ../semanage/seobject/__init__.py:1390 ++#: ../semanage/seobject/__init__.py:1426 ../semanage/seobject/__init__.py:1432 + #, python-format + msgid "Could not check if addr %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1317 ++#: ../semanage/seobject/__init__.py:1329 + #, python-format + msgid "Could not create addr for %s" + msgstr "" + +-#: ../semanage/seobject.py:1323 ../semanage/seobject.py:1524 +-#: ../semanage/seobject.py:1767 ++#: ../semanage/seobject/__init__.py:1335 ../semanage/seobject/__init__.py:1536 ++#: ../semanage/seobject/__init__.py:1779 + #, python-format + msgid "Could not create context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1327 ++#: ../semanage/seobject/__init__.py:1339 + #, python-format + msgid "Could not set mask for %s" + msgstr "" + +-#: ../semanage/seobject.py:1331 ++#: ../semanage/seobject/__init__.py:1343 + #, python-format + msgid "Could not set user in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1335 ++#: ../semanage/seobject/__init__.py:1347 + #, python-format + msgid "Could not set role in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1339 ++#: ../semanage/seobject/__init__.py:1351 + #, python-format + msgid "Could not set type in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1344 ++#: ../semanage/seobject/__init__.py:1356 + #, python-format + msgid "Could not set mls fields in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1348 ++#: ../semanage/seobject/__init__.py:1360 + #, python-format + msgid "Could not set addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1352 ++#: ../semanage/seobject/__init__.py:1364 + #, python-format + msgid "Could not add addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1380 ../semanage/seobject.py:1416 ++#: ../semanage/seobject/__init__.py:1392 ../semanage/seobject/__init__.py:1428 + #, python-format + msgid "Addr %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1384 ++#: ../semanage/seobject/__init__.py:1396 + #, python-format + msgid "Could not query addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1394 ++#: ../semanage/seobject/__init__.py:1406 + #, python-format + msgid "Could not modify addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1422 ++#: ../semanage/seobject/__init__.py:1434 + #, python-format + msgid "Addr %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1426 ++#: ../semanage/seobject/__init__.py:1438 + #, python-format + msgid "Could not delete addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1438 ++#: ../semanage/seobject/__init__.py:1450 + msgid "Could not deleteall node mappings" + msgstr "" + +-#: ../semanage/seobject.py:1452 ++#: ../semanage/seobject/__init__.py:1464 + msgid "Could not list addrs" + msgstr "" + +-#: ../semanage/seobject.py:1504 ../semanage/seobject.py:1811 ++#: ../semanage/seobject/__init__.py:1516 ../semanage/seobject/__init__.py:1823 + msgid "SELinux Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1574 +-#: ../semanage/seobject.py:1608 ../semanage/seobject.py:1614 ++#: ../semanage/seobject/__init__.py:1524 ../semanage/seobject/__init__.py:1586 ++#: ../semanage/seobject/__init__.py:1620 ../semanage/seobject/__init__.py:1626 + #, python-format + msgid "Could not check if interface %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1519 ++#: ../semanage/seobject/__init__.py:1531 + #, python-format + msgid "Could not create interface for %s" + msgstr "" + +-#: ../semanage/seobject.py:1528 ++#: ../semanage/seobject/__init__.py:1540 + #, python-format + msgid "Could not set user in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1532 ++#: ../semanage/seobject/__init__.py:1544 + #, python-format + msgid "Could not set role in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1536 ++#: ../semanage/seobject/__init__.py:1548 + #, python-format + msgid "Could not set type in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1541 ++#: ../semanage/seobject/__init__.py:1553 + #, python-format + msgid "Could not set mls fields in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1545 ++#: ../semanage/seobject/__init__.py:1557 + #, python-format + msgid "Could not set interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1549 ++#: ../semanage/seobject/__init__.py:1561 + #, python-format + msgid "Could not set message context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1553 ++#: ../semanage/seobject/__init__.py:1565 + #, python-format + msgid "Could not add interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1576 ../semanage/seobject.py:1610 ++#: ../semanage/seobject/__init__.py:1588 ../semanage/seobject/__init__.py:1622 + #, python-format + msgid "Interface %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1580 ++#: ../semanage/seobject/__init__.py:1592 + #, python-format + msgid "Could not query interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1591 ++#: ../semanage/seobject/__init__.py:1603 + #, python-format + msgid "Could not modify interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1616 ++#: ../semanage/seobject/__init__.py:1628 + #, python-format + msgid "Interface %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1620 ++#: ../semanage/seobject/__init__.py:1632 + #, python-format + msgid "Could not delete interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1632 ++#: ../semanage/seobject/__init__.py:1644 + msgid "Could not delete all interface mappings" + msgstr "" + +-#: ../semanage/seobject.py:1646 ++#: ../semanage/seobject/__init__.py:1658 + msgid "Could not list interfaces" + msgstr "" + +-#: ../semanage/seobject.py:1671 ++#: ../semanage/seobject/__init__.py:1683 + msgid "SELinux Interface" + msgstr "" + +-#: ../semanage/seobject.py:1671 ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:1683 ../semanage/seobject/__init__.py:2045 + msgid "Context" + msgstr "" + +-#: ../semanage/seobject.py:1738 ++#: ../semanage/seobject/__init__.py:1750 + #, python-format + msgid "Target %s is not valid. Target is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1741 ++#: ../semanage/seobject/__init__.py:1753 + #, python-format +-msgid "Substiture %s is not valid. Substitute is not allowed to end with '/'" ++msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1744 ++#: ../semanage/seobject/__init__.py:1756 + #, python-format + msgid "Equivalence class for %s already exists" + msgstr "" + +-#: ../semanage/seobject.py:1750 ++#: ../semanage/seobject/__init__.py:1762 + #, python-format +-msgid "File spec %s conflicts with equivalency rule '%s %s'" ++msgid "" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'" + msgstr "" + +-#: ../semanage/seobject.py:1759 ++#: ../semanage/seobject/__init__.py:1771 + #, python-format + msgid "Equivalence class for %s does not exists" + msgstr "" + +-#: ../semanage/seobject.py:1773 ++#: ../semanage/seobject/__init__.py:1785 + #, python-format + msgid "Could not set user in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1777 ++#: ../semanage/seobject/__init__.py:1789 + #, python-format + msgid "Could not set role in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1782 ../semanage/seobject.py:1848 ++#: ../semanage/seobject/__init__.py:1794 ../semanage/seobject/__init__.py:1860 + #, python-format + msgid "Could not set mls fields in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1788 ++#: ../semanage/seobject/__init__.py:1800 + msgid "Invalid file specification" + msgstr "" + +-#: ../semanage/seobject.py:1790 ++#: ../semanage/seobject/__init__.py:1802 + msgid "File specification can not include spaces" + msgstr "" + +-#: ../semanage/seobject.py:1795 ++#: ../semanage/seobject/__init__.py:1807 + #, python-format + msgid "" +-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'; " ++"Try adding '%(DEST1)s' instead" + msgstr "" + +-#: ../semanage/seobject.py:1814 ++#: ../semanage/seobject/__init__.py:1826 + #, python-format + msgid "Type %s is invalid, must be a file or device type" + msgstr "" + +-#: ../semanage/seobject.py:1822 ../semanage/seobject.py:1827 +-#: ../semanage/seobject.py:1883 ../semanage/seobject.py:1965 +-#: ../semanage/seobject.py:1969 ++#: ../semanage/seobject/__init__.py:1834 ../semanage/seobject/__init__.py:1839 ++#: ../semanage/seobject/__init__.py:1895 ../semanage/seobject/__init__.py:1977 ++#: ../semanage/seobject/__init__.py:1981 + #, python-format + msgid "Could not check if file context for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1835 ++#: ../semanage/seobject/__init__.py:1847 + #, python-format + msgid "Could not create file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1843 ++#: ../semanage/seobject/__init__.py:1855 + #, python-format + msgid "Could not set type in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1851 ../semanage/seobject.py:1911 +-#: ../semanage/seobject.py:1915 ++#: ../semanage/seobject/__init__.py:1863 ../semanage/seobject/__init__.py:1923 ++#: ../semanage/seobject/__init__.py:1927 + #, python-format + msgid "Could not set file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1857 ++#: ../semanage/seobject/__init__.py:1869 + #, python-format + msgid "Could not add file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1871 ++#: ../semanage/seobject/__init__.py:1883 + msgid "Requires setype, serange or seuser" + msgstr "" + +-#: ../semanage/seobject.py:1887 ../semanage/seobject.py:1973 ++#: ../semanage/seobject/__init__.py:1899 ../semanage/seobject/__init__.py:1985 + #, python-format + msgid "File context for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1893 ++#: ../semanage/seobject/__init__.py:1905 + #, python-format + msgid "Could not query file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1919 ++#: ../semanage/seobject/__init__.py:1931 + #, python-format + msgid "Could not modify file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1932 ++#: ../semanage/seobject/__init__.py:1944 + msgid "Could not list the file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1946 ++#: ../semanage/seobject/__init__.py:1958 + #, python-format + msgid "Could not delete the file context %s" + msgstr "" + +-#: ../semanage/seobject.py:1971 ++#: ../semanage/seobject/__init__.py:1983 + #, python-format + msgid "File context for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1977 ++#: ../semanage/seobject/__init__.py:1989 + #, python-format + msgid "Could not delete file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1992 ++#: ../semanage/seobject/__init__.py:2004 + msgid "Could not list file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1996 ++#: ../semanage/seobject/__init__.py:2008 + msgid "Could not list local file contexts" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "SELinux fcontext" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "type" + msgstr "" + +-#: ../semanage/seobject.py:2046 ++#: ../semanage/seobject/__init__.py:2058 + msgid "" + "\n" + "SELinux Distribution fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2051 ++#: ../semanage/seobject/__init__.py:2063 + msgid "" + "\n" + "SELinux Local fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2087 ../semanage/seobject.py:2138 +-#: ../semanage/seobject.py:2144 ++#: ../semanage/seobject/__init__.py:2099 ../semanage/seobject/__init__.py:2150 ++#: ../semanage/seobject/__init__.py:2156 + #, python-format + msgid "Could not check if boolean %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:2089 ../semanage/seobject.py:2140 ++#: ../semanage/seobject/__init__.py:2101 ../semanage/seobject/__init__.py:2152 + #, python-format + msgid "Boolean %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:2093 ++#: ../semanage/seobject/__init__.py:2105 + #, python-format + msgid "Could not query file context %s" + msgstr "" + +-#: ../semanage/seobject.py:2098 ++#: ../semanage/seobject/__init__.py:2110 + #, python-format + msgid "You must specify one of the following values: %s" + msgstr "" + +-#: ../semanage/seobject.py:2103 ++#: ../semanage/seobject/__init__.py:2115 + #, python-format + msgid "Could not set active value of boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2106 ++#: ../semanage/seobject/__init__.py:2118 + #, python-format + msgid "Could not modify boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2122 ++#: ../semanage/seobject/__init__.py:2134 + #, python-format +-msgid "Bad format %s: Record %s" ++msgid "Bad format %(BOOLNAME)s: Record %(VALUE)s" + msgstr "" + +-#: ../semanage/seobject.py:2146 ++#: ../semanage/seobject/__init__.py:2158 + #, python-format + msgid "Boolean %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:2150 ++#: ../semanage/seobject/__init__.py:2162 + #, python-format + msgid "Could not delete boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2162 ../semanage/seobject.py:2179 ++#: ../semanage/seobject/__init__.py:2174 ../semanage/seobject/__init__.py:2191 + msgid "Could not list booleans" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "off" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "on" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "SELinux boolean" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "State" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "Default" + msgstr "" + +-#: ../semanage/seobject.py:2228 ../gui/polgen.glade:113 +-#: ../gui/polgengui.py:274 ../sepolicy/sepolicy/sepolicy.glade:2147 +-#: ../sepolicy/sepolicy/sepolicy.glade:2517 +-#: ../sepolicy/sepolicy/sepolicy.glade:5021 ++#: ../semanage/seobject/__init__.py:2240 ../gui/polgen.glade:113 ++#: ../gui/polgengui.py:260 ../sepolicy/sepolicy/sepolicy.glade:2148 ++#: ../sepolicy/sepolicy/sepolicy.glade:2518 ++#: ../sepolicy/sepolicy/sepolicy.glade:5117 + msgid "Description" + msgstr "" + +@@ -1353,66 +1372,66 @@ msgstr "" + msgid "Options Error %s " + msgstr "" + +-#: ../gui/booleansPage.py:194 ../gui/system-config-selinux.glade:1706 ++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1706 + msgid "Boolean" + msgstr "" + +-#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:162 ++#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:186 + msgid "all" + msgstr "" + +-#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:164 ++#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:188 + #: ../gui/system-config-selinux.glade:1615 + #: ../gui/system-config-selinux.glade:1820 + #: ../gui/system-config-selinux.glade:2437 + msgid "Customized" + msgstr "" + +-#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1911 ++#: ../gui/fcontextPage.py:63 ../gui/system-config-selinux.glade:1911 + msgid "File Labeling" + msgstr "" + +-#: ../gui/fcontextPage.py:74 ++#: ../gui/fcontextPage.py:73 + msgid "" + "File\n" + "Specification" + msgstr "" + +-#: ../gui/fcontextPage.py:81 ++#: ../gui/fcontextPage.py:80 + msgid "" + "Selinux\n" + "File Type" + msgstr "" + +-#: ../gui/fcontextPage.py:88 ++#: ../gui/fcontextPage.py:87 + msgid "" + "File\n" + "Type" + msgstr "" + +-#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2098 ++#: ../gui/loginsPage.py:45 ../gui/system-config-selinux.glade:2098 + msgid "User Mapping" + msgstr "" + +-#: ../gui/loginsPage.py:52 ++#: ../gui/loginsPage.py:49 + msgid "" + "Login\n" + "Name" + msgstr "" + +-#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50 ++#: ../gui/loginsPage.py:53 ../gui/usersPage.py:47 + msgid "" + "SELinux\n" + "User" + msgstr "" + +-#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55 ++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:52 + msgid "" + "MLS/\n" + "MCS Range" + msgstr "" + +-#: ../gui/loginsPage.py:133 ++#: ../gui/loginsPage.py:130 + #, python-format + msgid "Login '%s' is required" + msgstr "" +@@ -1425,15 +1444,15 @@ msgstr "" + msgid "Module Name" + msgstr "" + +-#: ../gui/modulesPage.py:135 ++#: ../gui/modulesPage.py:131 + msgid "Disable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:138 ../gui/system-config-selinux.glade:2662 ++#: ../gui/modulesPage.py:134 ../gui/system-config-selinux.glade:2662 + msgid "Enable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:163 ++#: ../gui/modulesPage.py:161 + msgid "Load Policy Module" + msgstr "" + +@@ -1472,7 +1491,7 @@ msgstr "" + msgid "Applications" + msgstr "" + +-#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:130 ++#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:132 + msgid "Standard Init Daemon" + msgstr "" + +@@ -1482,7 +1501,7 @@ msgid "" + "requires a script in /etc/rc.d/init.d" + msgstr "" + +-#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:131 ++#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:133 + msgid "DBUS System Daemon" + msgstr "" + +@@ -1494,7 +1513,7 @@ msgstr "" + msgid "Internet Services Daemon are daemons started by xinetd" + msgstr "" + +-#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:133 ++#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:135 + msgid "Web Application/Script (CGI)" + msgstr "" + +@@ -1503,7 +1522,7 @@ msgid "" + "Web Applications/Script (CGI) CGI scripts started by the web server (apache)" + msgstr "" + +-#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:135 ++#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:137 + msgid "User Application" + msgstr "" + +@@ -1513,7 +1532,7 @@ msgid "" + "started by a user" + msgstr "" + +-#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:134 ++#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:136 + msgid "Sandbox" + msgstr "" + +@@ -1565,8 +1584,8 @@ msgstr "" #: ../gui/polgen.glade:550 msgid "" @@ -5243,7 +8714,7 @@ index c565e50..e3cd32f 100644 msgstr "" #: ../gui/polgen.glade:592 -@@ -1599,8 +1598,8 @@ msgstr "" +@@ -1579,8 +1598,8 @@ msgstr "" #: ../gui/polgen.glade:627 msgid "" @@ -5254,7 +8725,18 @@ index c565e50..e3cd32f 100644 "the system directly." msgstr "" -@@ -1669,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" +@@ -1588,8 +1607,8 @@ msgstr "" + msgid "Enter name of application or user role:" + msgstr "" + +-#: ../gui/polgen.glade:728 ../gui/polgengui.py:272 +-#: ../sepolicy/sepolicy/sepolicy.glade:2182 ++#: ../gui/polgen.glade:728 ../gui/polgengui.py:258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2183 + msgid "Name" + msgstr "" + +@@ -1649,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" msgstr "" #: ../gui/polgen.glade:1019 @@ -5264,7 +8746,215 @@ index c565e50..e3cd32f 100644 msgstr "" #: ../gui/polgen.glade:1056 -@@ -1988,8 +1988,8 @@ msgid "" +@@ -1673,7 +1693,7 @@ msgid "TCP Ports" + msgstr "" + + #: ../gui/polgen.glade:1223 ../gui/polgen.glade:1390 ../gui/polgen.glade:1589 +-#: ../gui/polgen.glade:1698 ../sepolicy/sepolicy/sepolicy.glade:4314 ++#: ../gui/polgen.glade:1698 + msgid "All" + msgstr "" + +@@ -1804,118 +1824,118 @@ msgstr "" + msgid "Policy Directory" + msgstr "" + +-#: ../gui/polgengui.py:282 ++#: ../gui/polgengui.py:268 + msgid "Role" + msgstr "" + +-#: ../gui/polgengui.py:289 ++#: ../gui/polgengui.py:275 + msgid "Existing_User" + msgstr "" + +-#: ../gui/polgengui.py:303 ../gui/polgengui.py:311 ../gui/polgengui.py:325 ++#: ../gui/polgengui.py:289 ../gui/polgengui.py:297 ../gui/polgengui.py:311 + msgid "Application" + msgstr "" + +-#: ../gui/polgengui.py:370 ++#: ../gui/polgengui.py:356 + #, python-format + msgid "%s must be a directory" + msgstr "" + +-#: ../gui/polgengui.py:430 ../gui/polgengui.py:711 ++#: ../gui/polgengui.py:416 ../gui/polgengui.py:697 + msgid "You must select a user" + msgstr "" + +-#: ../gui/polgengui.py:560 ++#: ../gui/polgengui.py:546 + msgid "Select executable file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:571 ++#: ../gui/polgengui.py:557 + msgid "Select init script file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:581 ++#: ../gui/polgengui.py:567 + msgid "Select file(s) that confined application creates or writes" + msgstr "" + +-#: ../gui/polgengui.py:588 ++#: ../gui/polgengui.py:574 + msgid "Select directory(s) that the confined application owns and writes into" + msgstr "" + +-#: ../gui/polgengui.py:650 ++#: ../gui/polgengui.py:636 + msgid "Select directory to generate policy files in" + msgstr "" + +-#: ../gui/polgengui.py:667 ++#: ../gui/polgengui.py:653 + #, python-format + msgid "" + "Type %s_t already defined in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:667 ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:653 ../gui/polgengui.py:657 + msgid "Verify Name" + msgstr "" + +-#: ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:657 + #, python-format + msgid "" + "Module %s.pp already loaded in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:717 ++#: ../gui/polgengui.py:703 + msgid "" + "You must add a name made up of letters and numbers and containing no spaces." + msgstr "" + +-#: ../gui/polgengui.py:731 ++#: ../gui/polgengui.py:717 + msgid "You must enter a executable" + msgstr "" + +-#: ../gui/polgengui.py:756 ../gui/system-config-selinux.py:180 ++#: ../gui/polgengui.py:742 ../gui/system-config-selinux.py:180 + msgid "Configue SELinux" + msgstr "" + +-#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2528 ++#: ../gui/portsPage.py:48 ../gui/system-config-selinux.glade:2528 + msgid "Network Port" + msgstr "" + +-#: ../gui/portsPage.py:85 ++#: ../gui/portsPage.py:82 + msgid "" + "SELinux Port\n" + "Type" + msgstr "" + +-#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363 +-#: ../sepolicy/sepolicy/sepolicy.glade:1443 +-#: ../sepolicy/sepolicy/sepolicy.glade:2657 +-#: ../sepolicy/sepolicy/sepolicy.glade:2755 +-#: ../sepolicy/sepolicy/sepolicy.glade:4672 ++#: ../gui/portsPage.py:88 ../gui/system-config-selinux.glade:363 ++#: ../sepolicy/sepolicy/sepolicy.glade:1439 ++#: ../sepolicy/sepolicy/sepolicy.glade:2658 ++#: ../sepolicy/sepolicy/sepolicy.glade:2756 ++#: ../sepolicy/sepolicy/sepolicy.glade:4633 + msgid "Protocol" + msgstr "" + +-#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479 ++#: ../gui/portsPage.py:93 ../gui/system-config-selinux.glade:479 + msgid "" + "MLS/MCS\n" + "Level" + msgstr "" + +-#: ../gui/portsPage.py:101 ../sepolicy/sepolicy/sepolicy.glade:2638 +-#: ../sepolicy/sepolicy/sepolicy.glade:2737 +-#: ../sepolicy/sepolicy/sepolicy.glade:4658 ++#: ../gui/portsPage.py:98 ../sepolicy/sepolicy/sepolicy.glade:2639 ++#: ../sepolicy/sepolicy/sepolicy.glade:2738 ++#: ../sepolicy/sepolicy/sepolicy.glade:4619 + msgid "Port" + msgstr "" + +-#: ../gui/portsPage.py:207 ++#: ../gui/portsPage.py:205 + #, python-format + msgid "Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 " + msgstr "" + +-#: ../gui/portsPage.py:252 ++#: ../gui/portsPage.py:258 + msgid "List View" + msgstr "" + +-#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2419 ++#: ../gui/portsPage.py:261 ../gui/system-config-selinux.glade:2419 + msgid "Group View" + msgstr "" + +@@ -1929,50 +1949,50 @@ msgstr "" + msgid "Delete %s" + msgstr "" + +-#: ../gui/semanagePage.py:134 ++#: ../gui/semanagePage.py:158 + #, python-format + msgid "Add %s" + msgstr "" + +-#: ../gui/semanagePage.py:148 ++#: ../gui/semanagePage.py:172 + #, python-format + msgid "Modify %s" + msgstr "" + +-#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2819 +-#: ../sepolicy/sepolicy/sepolicy.glade:3413 +-#: ../sepolicy/sepolicy/sepolicy.glade:3486 ++#: ../gui/statusPage.py:65 ../gui/system-config-selinux.glade:2819 ++#: ../sepolicy/sepolicy/sepolicy.glade:3414 ++#: ../sepolicy/sepolicy/sepolicy.glade:3487 + msgid "Permissive" + msgstr "" + +-#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2837 +-#: ../sepolicy/sepolicy/sepolicy.glade:3394 +-#: ../sepolicy/sepolicy/sepolicy.glade:3468 ++#: ../gui/statusPage.py:66 ../gui/system-config-selinux.glade:2837 ++#: ../sepolicy/sepolicy/sepolicy.glade:3395 ++#: ../sepolicy/sepolicy/sepolicy.glade:3469 + msgid "Enforcing" + msgstr "" + +-#: ../gui/statusPage.py:94 ++#: ../gui/statusPage.py:90 + msgid "Status" + msgstr "" + +-#: ../gui/statusPage.py:133 ../sepolicy/sepolicy/gui.py:2619 ++#: ../gui/statusPage.py:129 ../sepolicy/sepolicy/gui.py:2613 + msgid "" + "Changing the policy type will cause a relabel of the entire file system on " + "the next boot. Relabeling takes a long time depending on the size of the " + "file system. Do you wish to continue?" + msgstr "" + +-#: ../gui/statusPage.py:147 ++#: ../gui/statusPage.py:143 + msgid "" + "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 " @@ -5274,8 +8964,41 @@ index c565e50..e3cd32f 100644 +" wish to continue?" msgstr "" - #: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 -@@ -2223,8 +2223,8 @@ msgstr "" +-#: ../gui/statusPage.py:152 ../sepolicy/sepolicy/gui.py:2753 ++#: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 + msgid "" + "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 " +@@ -2024,8 +2044,8 @@ msgid "" + msgstr "" + + #: ../gui/system-config-selinux.glade:773 +-#: ../sepolicy/sepolicy/sepolicy.glade:729 +-#: ../sepolicy/sepolicy/sepolicy.glade:1489 ++#: ../sepolicy/sepolicy/sepolicy.glade:711 ++#: ../sepolicy/sepolicy/sepolicy.glade:1485 + msgid "MLS" + msgstr "" + +@@ -2038,7 +2058,7 @@ msgid "SELinux Administration" + msgstr "" + + #: ../gui/system-config-selinux.glade:1122 +-#: ../sepolicy/sepolicy/sepolicy.glade:4162 ++#: ../sepolicy/sepolicy/sepolicy.glade:4163 + msgid "Add" + msgstr "" + +@@ -2108,7 +2128,7 @@ msgstr "" + #: ../gui/system-config-selinux.glade:2467 + #: ../gui/system-config-selinux.glade:2692 + #: ../gui/system-config-selinux.glade:2867 +-#: ../sepolicy/sepolicy/sepolicy.glade:1992 ++#: ../sepolicy/sepolicy/sepolicy.glade:1993 + msgid "Filter" + msgstr "" + +@@ -2203,8 +2223,8 @@ msgstr "" #: ../gui/system-config-selinux.glade:2661 msgid "" @@ -5286,32 +9009,175 @@ index c565e50..e3cd32f 100644 msgstr "" #: ../gui/system-config-selinux.glade:2781 -@@ -2265,8 +2265,8 @@ msgstr "" +@@ -2227,7 +2247,7 @@ msgstr "" + msgid "label59" + msgstr "" + +-#: ../gui/usersPage.py:138 ++#: ../gui/usersPage.py:140 + #, python-format + msgid "SELinux user '%s' is required" + msgstr "" +@@ -2239,13 +2259,14 @@ msgstr "" + + #: booleans.py:2 + msgid "" +-"Allow ABRT to run in abrt_handle_event_t domain to handle ABRT event scripts" ++"Determine whether ABRT can run in the abrt_handle_event_t domain to handle " ++"ABRT event scripts." + msgstr "" #: booleans.py:3 msgid "" --"Determine whether abrt-handle-upload can modify public files used for public " --"file transfer services in /var/spool/abrt-upload/." +-"Allow abrt-handle-upload to modify public files used for public file " +-"transfer services in /var/spool/abrt-upload/." +"Determine whether abrt-handle-upload can modify public files used for public" +" file transfer services in /var/spool/abrt-upload/." msgstr "" #: booleans.py:4 -@@ -2395,8 +2395,9 @@ msgstr "" +@@ -2279,7 +2300,7 @@ msgid "Determine whether awstats can purge httpd log files." + msgstr "" - #: booleans.py:32 - msgid "" + #: booleans.py:11 +-msgid "Allow boinc_domain execmem/execstack." ++msgid "Determine whether boinc can execmem/execstack." + msgstr "" + + #: booleans.py:12 +@@ -2335,1467 +2356,1506 @@ msgid "" + msgstr "" + + #: booleans.py:23 +-msgid "Determine whether cvs can read shadow password files." ++msgid "" ++"Determine whether crond can execute jobs in the user domain as opposed to " ++"the the generic cronjob domain." + msgstr "" + + #: booleans.py:24 +-msgid "Allow all daemons to write corefiles to /" ++msgid "Determine whether cvs can read shadow password files." + msgstr "" + + #: booleans.py:25 +-msgid "Allow all daemons to use tcp wrappers." ++msgid "Allow all daemons to write corefiles to /" + msgstr "" + + #: booleans.py:26 +-msgid "Allow all daemons the ability to read/write terminals" ++msgid "Enable cluster mode for daemons." + msgstr "" + + #: booleans.py:27 +-msgid "Determine whether dbadm can manage generic user files." ++msgid "Allow all daemons to use tcp wrappers." + msgstr "" + + #: booleans.py:28 +-msgid "Determine whether dbadm can read generic user files." ++msgid "Allow all daemons the ability to read/write terminals" + msgstr "" + + #: booleans.py:29 +-msgid "" -"Deny user domains applications to map a memory region as both executable and " -"writable, this is dangerous and the executable should be reported in bugzilla" ++msgid "Allow dbadm to exec content" + msgstr "" + + #: booleans.py:30 +-msgid "Deny any process from ptracing or debugging any other processes." ++msgid "Determine whether dbadm can manage generic user files." + msgstr "" + + #: booleans.py:31 +-msgid "Allow dhcpc client applications to execute iptables commands" ++msgid "Determine whether dbadm can read generic user files." + msgstr "" + + #: booleans.py:32 +-msgid "Determine whether DHCP daemon can use LDAP backends." ++msgid "" +"Deny user domains applications to map a memory region as both executable and" +" writable, this is dangerous and the executable should be reported in " +"bugzilla" msgstr "" #: booleans.py:33 -@@ -2462,8 +2463,8 @@ msgstr "" +-msgid "Allow all domains to use other domains file descriptors" ++msgid "Deny any process from ptracing or debugging any other processes." + msgstr "" - #: booleans.py:47 + #: booleans.py:34 +-msgid "Allow all domains to have the kernel load modules" ++msgid "Allow dhcpc client applications to execute iptables commands" + msgstr "" + + #: booleans.py:35 ++msgid "Determine whether DHCP daemon can use LDAP backends." ++msgstr "" ++ ++#: booleans.py:36 ++msgid "Allow all domains to use other domains file descriptors" ++msgstr "" ++ ++#: booleans.py:37 ++msgid "Allow all domains to have the kernel load modules" ++msgstr "" ++ ++#: booleans.py:38 + msgid "" + "Determine whether entropyd can use audio devices as the source for the " + "entropy feeds." + msgstr "" + +-#: booleans.py:36 ++#: booleans.py:39 + msgid "Determine whether exim can connect to databases." + msgstr "" + +-#: booleans.py:37 ++#: booleans.py:40 + msgid "" + "Determine whether exim can create, read, write, and delete generic user " + "content files." + msgstr "" + +-#: booleans.py:38 ++#: booleans.py:41 + msgid "Determine whether exim can read generic user content files." + msgstr "" + +-#: booleans.py:39 ++#: booleans.py:42 + msgid "Enable extra rules in the cron domain to support fcron." + msgstr "" + +-#: booleans.py:40 ++#: booleans.py:43 + msgid "Determine whether fenced can connect to the TCP network." + msgstr "" + +-#: booleans.py:41 ++#: booleans.py:44 + msgid "Determine whether fenced can use ssh." + msgstr "" + +-#: booleans.py:42 ++#: booleans.py:45 + msgid "Allow all domains to execute in fips_mode" + msgstr "" + +-#: booleans.py:43 ++#: booleans.py:46 + msgid "" + "Determine whether ftpd can read and write files in user home directories." + msgstr "" + +-#: booleans.py:44 ++#: booleans.py:47 msgid "" -"Determine whether ftpd can modify public files used for public file transfer " -"services. Directories/Files must be labeled public_content_rw_t." @@ -5319,30 +9185,834 @@ index c565e50..e3cd32f 100644 +" services. Directories/Files must be labeled public_content_rw_t." msgstr "" - #: booleans.py:48 -@@ -2615,7 +2616,8 @@ msgid "Allow HTTPD scripts and modules to connect to the network using TCP." +-#: booleans.py:45 ++#: booleans.py:48 + msgid "Determine whether ftpd can connect to all unreserved ports." msgstr "" - #: booleans.py:80 +-#: booleans.py:46 ++#: booleans.py:49 + msgid "Determine whether ftpd can connect to databases over the TCP network." + msgstr "" + +-#: booleans.py:47 ++#: booleans.py:50 + msgid "" + "Determine whether ftpd can login to local users and can read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:48 ++#: booleans.py:51 + msgid "" + "Determine whether ftpd can use CIFS used for public file transfer services." + msgstr "" + +-#: booleans.py:49 ++#: booleans.py:52 + msgid "Allow ftpd to use ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:50 ++#: booleans.py:53 + msgid "" + "Determine whether ftpd can use NFS used for public file transfer services." + msgstr "" + +-#: booleans.py:51 ++#: booleans.py:54 + msgid "" + "Determine whether ftpd can bind to all unreserved ports for passive mode." + msgstr "" + +-#: booleans.py:52 ++#: booleans.py:55 + msgid "Determine whether Git CGI can search home directories." + msgstr "" + +-#: booleans.py:53 ++#: booleans.py:56 + msgid "Determine whether Git CGI can access cifs file systems." + msgstr "" + +-#: booleans.py:54 ++#: booleans.py:57 + msgid "Determine whether Git CGI can access nfs file systems." + msgstr "" + +-#: booleans.py:55 ++#: booleans.py:58 + msgid "" + "Determine whether Git session daemon can bind TCP sockets to all unreserved " + "ports." + msgstr "" + +-#: booleans.py:56 ++#: booleans.py:59 + msgid "" + "Determine whether calling user domains can execute Git daemon in the " + "git_session_t domain." + msgstr "" + +-#: booleans.py:57 ++#: booleans.py:60 + msgid "Determine whether Git system daemon can search home directories." + msgstr "" + +-#: booleans.py:58 ++#: booleans.py:61 + msgid "Determine whether Git system daemon can access cifs file systems." + msgstr "" + +-#: booleans.py:59 ++#: booleans.py:62 + msgid "Determine whether Git system daemon can access nfs file systems." + msgstr "" + +-#: booleans.py:60 ++#: booleans.py:63 + msgid "Determine whether Gitosis can send mail." + msgstr "" + +-#: booleans.py:61 ++#: booleans.py:64 + msgid "Enable reading of urandom for all domains." + msgstr "" + +-#: booleans.py:62 ++#: booleans.py:65 + msgid "" + "Allow glusterfsd to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:63 ++#: booleans.py:66 + msgid "Allow glusterfsd to share any file/directory read only." + msgstr "" + +-#: booleans.py:64 ++#: booleans.py:67 + msgid "Allow glusterfsd to share any file/directory read/write." + msgstr "" + +-#: booleans.py:65 ++#: booleans.py:68 + msgid "" + "Allow usage of the gpg-agent --write-env-file option. This also allows gpg-" + "agent to manage user files." + msgstr "" + +-#: booleans.py:66 ++#: booleans.py:69 + msgid "" + "Allow gpg web domain to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:67 ++#: booleans.py:70 + msgid "" + "Allow gssd to list tmp directories and read the kerberos credential cache." + msgstr "" + +-#: booleans.py:68 ++#: booleans.py:71 + msgid "Allow guest to exec content" + msgstr "" + +-#: booleans.py:69 ++#: booleans.py:72 + msgid "" + "Allow Apache to modify public files used for public file transfer services. " + "Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:70 ++#: booleans.py:73 + msgid "Allow httpd to use built in scripting (usually php)" + msgstr "" + +-#: booleans.py:71 ++#: booleans.py:74 + msgid "Allow http daemon to check spam" + msgstr "" + +-#: booleans.py:72 ++#: booleans.py:75 + msgid "" + "Allow httpd to act as a FTP client connecting to the ftp port and ephemeral " + "ports" + msgstr "" + +-#: booleans.py:73 ++#: booleans.py:76 + msgid "Allow httpd to connect to the ldap port" + msgstr "" + +-#: booleans.py:74 ++#: booleans.py:77 + msgid "Allow http daemon to connect to mythtv" + msgstr "" + +-#: booleans.py:75 ++#: booleans.py:78 + msgid "Allow http daemon to connect to zabbix" + msgstr "" + +-#: booleans.py:76 ++#: booleans.py:79 + msgid "Allow HTTPD scripts and modules to connect to the network using TCP." + msgstr "" + +-#: booleans.py:77 -msgid "Allow HTTPD scripts and modules to connect to cobbler over the network." ++#: booleans.py:80 +msgid "" +"Allow HTTPD scripts and modules to connect to cobbler over the network." msgstr "" - #: booleans.py:81 -@@ -3122,7 +3124,8 @@ msgstr "" +-#: booleans.py:78 ++#: booleans.py:81 + msgid "" + "Allow HTTPD scripts and modules to connect to databases over the network." + msgstr "" - #: booleans.py:197 +-#: booleans.py:79 ++#: booleans.py:82 + msgid "Allow httpd to connect to memcache server" + msgstr "" + +-#: booleans.py:80 ++#: booleans.py:83 + msgid "Allow httpd to act as a relay" + msgstr "" + +-#: booleans.py:81 ++#: booleans.py:84 + msgid "Allow http daemon to send mail" + msgstr "" + +-#: booleans.py:82 ++#: booleans.py:85 + msgid "Allow Apache to communicate with avahi service via dbus" + msgstr "" + +-#: booleans.py:83 ++#: booleans.py:86 + msgid "Allow httpd cgi support" + msgstr "" + +-#: booleans.py:84 ++#: booleans.py:87 + msgid "Allow httpd to act as a FTP server by listening on the ftp port." + msgstr "" + +-#: booleans.py:85 ++#: booleans.py:88 + msgid "Allow httpd to read home directories" + msgstr "" + +-#: booleans.py:86 ++#: booleans.py:89 + msgid "Allow httpd scripts and modules execmem/execstack" + msgstr "" + +-#: booleans.py:87 ++#: booleans.py:90 + msgid "Allow HTTPD to connect to port 80 for graceful shutdown" + msgstr "" + +-#: booleans.py:88 ++#: booleans.py:91 + msgid "Allow httpd processes to manage IPA content" + msgstr "" + +-#: booleans.py:89 ++#: booleans.py:92 + msgid "Allow Apache to use mod_auth_ntlm_winbind" + msgstr "" + +-#: booleans.py:90 ++#: booleans.py:93 + msgid "Allow Apache to use mod_auth_pam" + msgstr "" + +-#: booleans.py:91 ++#: booleans.py:94 + msgid "Allow httpd to read user content" + msgstr "" + +-#: booleans.py:92 ++#: booleans.py:95 + msgid "Allow Apache to run in stickshift mode, not transition to passenger" + msgstr "" + +-#: booleans.py:93 ++#: booleans.py:96 + msgid "Allow HTTPD scripts and modules to server cobbler files." + msgstr "" + +-#: booleans.py:94 ++#: booleans.py:97 + msgid "Allow httpd daemon to change its resource limits" + msgstr "" + +-#: booleans.py:95 ++#: booleans.py:98 + msgid "" + "Allow HTTPD to run SSI executables in the same domain as system CGI scripts." + msgstr "" + +-#: booleans.py:96 ++#: booleans.py:99 + msgid "" + "Allow apache scripts to write to public content, directories/files must be " + "labeled public_rw_content_t." + msgstr "" + +-#: booleans.py:97 ++#: booleans.py:100 + msgid "Allow Apache to execute tmp content." + msgstr "" + +-#: booleans.py:98 ++#: booleans.py:101 + msgid "" + "Unify HTTPD to communicate with the terminal. Needed for entering the " + "passphrase for certificates at the terminal." + msgstr "" + +-#: booleans.py:99 ++#: booleans.py:102 + msgid "Unify HTTPD handling of all content files." + msgstr "" + +-#: booleans.py:100 ++#: booleans.py:103 + msgid "Allow httpd to access cifs file systems" + msgstr "" + +-#: booleans.py:101 ++#: booleans.py:104 + msgid "Allow httpd to access FUSE file systems" + msgstr "" + +-#: booleans.py:102 ++#: booleans.py:105 + msgid "Allow httpd to run gpg" + msgstr "" + +-#: booleans.py:103 ++#: booleans.py:106 + msgid "Allow httpd to access nfs file systems" + msgstr "" + +-#: booleans.py:104 ++#: booleans.py:107 + msgid "Allow httpd to access openstack ports" + msgstr "" + +-#: booleans.py:105 ++#: booleans.py:108 + msgid "Allow httpd to connect to sasl" + msgstr "" + +-#: booleans.py:106 ++#: booleans.py:109 + msgid "Allow Apache to query NS records" + msgstr "" + +-#: booleans.py:107 ++#: booleans.py:110 + msgid "Determine whether icecast can listen on and connect to any TCP port." + msgstr "" + +-#: booleans.py:108 ++#: booleans.py:111 + msgid "" + "Determine whether irc clients can listen on and connect to any unreserved " + "TCP ports." + msgstr "" + +-#: booleans.py:109 ++#: booleans.py:112 + msgid "" + "Allow the Irssi IRC Client to connect to any port, and to bind to any " + "unreserved port." + msgstr "" + +-#: booleans.py:110 ++#: booleans.py:113 ++msgid "Allow s-c-kdump to run bootloader in bootloader_t." ++msgstr "" ++ ++#: booleans.py:114 + msgid "Allow confined applications to run with kerberos." + msgstr "" + +-#: booleans.py:111 ++#: booleans.py:115 + msgid "Allow ksmtuned to use cifs/Samba file systems" + msgstr "" + +-#: booleans.py:112 ++#: booleans.py:116 + msgid "Allow ksmtuned to use nfs file systems" + msgstr "" + +-#: booleans.py:113 ++#: booleans.py:117 ++msgid "Allow logadm to exec content" ++msgstr "" ++ ++#: booleans.py:118 + msgid "Allow syslogd daemon to send mail" + msgstr "" + +-#: booleans.py:114 ++#: booleans.py:119 + msgid "Allow syslogd the ability to read/write terminals" + msgstr "" + +-#: booleans.py:115 ++#: booleans.py:120 + msgid "Allow logging in and using the system from /dev/console." + msgstr "" + +-#: booleans.py:116 ++#: booleans.py:121 ++msgid "Determine whether logwatch can connect to mail over the network." ++msgstr "" ++ ++#: booleans.py:122 + msgid "Allow epylog to send mail" + msgstr "" + +-#: booleans.py:117 ++#: booleans.py:123 + msgid "Allow mailman to access FUSE file systems" + msgstr "" + +-#: booleans.py:118 ++#: booleans.py:124 + msgid "Determine whether mcelog supports client mode." + msgstr "" + +-#: booleans.py:119 ++#: booleans.py:125 + msgid "Determine whether mcelog can execute scripts." + msgstr "" + +-#: booleans.py:120 ++#: booleans.py:126 + msgid "Determine whether mcelog can use all the user ttys." + msgstr "" + +-#: booleans.py:121 ++#: booleans.py:127 + msgid "Determine whether mcelog supports server mode." + msgstr "" + +-#: booleans.py:122 ++#: booleans.py:128 ++msgid "Determine whether minidlna can read generic user content." ++msgstr "" ++ ++#: booleans.py:129 + msgid "" + "Control the ability to mmap a low area of the address space, as configured " + "by /proc/sys/kernel/mmap_min_addr." + msgstr "" + +-#: booleans.py:123 ++#: booleans.py:130 + msgid "Allow mock to read files in home directories." + msgstr "" + +-#: booleans.py:124 ++#: booleans.py:131 + msgid "Allow the mount commands to mount any directory or file." + msgstr "" + +-#: booleans.py:125 ++#: booleans.py:132 + msgid "Allow mozilla plugin domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:126 ++#: booleans.py:133 + msgid "Allow mozilla plugin to support GPS." + msgstr "" + +-#: booleans.py:127 ++#: booleans.py:134 + msgid "Allow mozilla plugin to support spice protocols." + msgstr "" + +-#: booleans.py:128 ++#: booleans.py:135 + msgid "Allow confined web browsers to read home directory content" + msgstr "" + +-#: booleans.py:129 ++#: booleans.py:136 + msgid "Determine whether mpd can traverse user home directories." + msgstr "" + +-#: booleans.py:130 ++#: booleans.py:137 + msgid "Determine whether mpd can use cifs file systems." + msgstr "" + +-#: booleans.py:131 ++#: booleans.py:138 + msgid "Determine whether mpd can use nfs file systems." + msgstr "" + +-#: booleans.py:132 ++#: booleans.py:139 + msgid "Determine whether mplayer can make its stack executable." + msgstr "" + +-#: booleans.py:133 ++#: booleans.py:140 + msgid "Allow mysqld to connect to all ports" + msgstr "" + +-#: booleans.py:134 ++#: booleans.py:141 + msgid "Determine whether Bind can bind tcp socket to http ports." + msgstr "" + +-#: booleans.py:135 ++#: booleans.py:142 + msgid "" + "Determine whether Bind can write to master zone files. Generally this is " + "used for dynamic DNS or zone transfers." + msgstr "" + +-#: booleans.py:136 ++#: booleans.py:143 + msgid "Allow any files/directories to be exported read/only via NFS." + msgstr "" + +-#: booleans.py:137 ++#: booleans.py:144 + msgid "Allow any files/directories to be exported read/write via NFS." + msgstr "" + +-#: booleans.py:138 ++#: booleans.py:145 + msgid "" + "Allow nfs servers to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:139 ++#: booleans.py:146 + msgid "Allow system to run with NIS" + msgstr "" + +-#: booleans.py:140 ++#: booleans.py:147 + msgid "Allow confined applications to use nscd shared memory." + msgstr "" + +-#: booleans.py:141 ++#: booleans.py:148 + msgid "Allow openshift to lockdown app" + msgstr "" + +-#: booleans.py:142 ++#: booleans.py:149 + msgid "Determine whether openvpn can connect to the TCP network." + msgstr "" + +-#: booleans.py:143 ++#: booleans.py:150 + msgid "Determine whether openvpn can read generic user home content files." + msgstr "" + +-#: booleans.py:144 ++#: booleans.py:151 + msgid "Allow openvpn to run unconfined scripts" + msgstr "" + +-#: booleans.py:145 ++#: booleans.py:152 + msgid "Allow piranha-lvs domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:146 ++#: booleans.py:153 + msgid "Allow polipo to connect to all ports > 1023" + msgstr "" + +-#: booleans.py:147 ++#: booleans.py:154 + msgid "" + "Determine whether Polipo session daemon can bind tcp sockets to all " + "unreserved ports." + msgstr "" + +-#: booleans.py:148 ++#: booleans.py:155 + msgid "" + "Determine whether calling user domains can execute Polipo daemon in the " + "polipo_session_t domain." + msgstr "" + +-#: booleans.py:149 ++#: booleans.py:156 + msgid "Determine whether polipo can access cifs file systems." + msgstr "" + +-#: booleans.py:150 ++#: booleans.py:157 + msgid "Determine whether Polipo can access nfs file systems." + msgstr "" + +-#: booleans.py:151 ++#: booleans.py:158 + msgid "Enable polyinstantiated directory support." + msgstr "" + +-#: booleans.py:152 ++#: booleans.py:159 + msgid "Allow postfix_local domain full write access to mail_spool directories" + msgstr "" + +-#: booleans.py:153 ++#: booleans.py:160 + msgid "Allow postgresql to use ssh and rsync for point-in-time recovery" + msgstr "" + +-#: booleans.py:154 ++#: booleans.py:161 + msgid "Allow transmit client label to foreign database" + msgstr "" + +-#: booleans.py:155 ++#: booleans.py:162 + msgid "Allow database admins to execute DML statement" + msgstr "" + +-#: booleans.py:156 ++#: booleans.py:163 + msgid "Allow unprivileged users to execute DDL statement" + msgstr "" + +-#: booleans.py:157 ++#: booleans.py:164 + msgid "Allow pppd to load kernel modules for certain modems" + msgstr "" + +-#: booleans.py:158 ++#: booleans.py:165 + msgid "Allow pppd to be run for a regular user" + msgstr "" + +-#: booleans.py:159 ++#: booleans.py:166 + msgid "Determine whether privoxy can connect to all tcp ports." + msgstr "" + +-#: booleans.py:160 ++#: booleans.py:167 + msgid "" + "Permit to prosody to bind apache port. Need to be activated to use BOSH." + msgstr "" + +-#: booleans.py:161 ++#: booleans.py:168 + msgid "Allow Puppet client to manage all file types." + msgstr "" + +-#: booleans.py:162 ++#: booleans.py:169 + msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database" + msgstr "" + +-#: booleans.py:163 ++#: booleans.py:170 + msgid "Allow racoon to read shadow" + msgstr "" + +-#: booleans.py:164 ++#: booleans.py:171 + msgid "" + "Allow rsync to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:165 ++#: booleans.py:172 + msgid "Allow rsync to run as a client" + msgstr "" + +-#: booleans.py:166 ++#: booleans.py:173 + msgid "Allow rsync to export any files/directories read only." + msgstr "" + +-#: booleans.py:167 ++#: booleans.py:174 + msgid "Allow rsync server to manage all files/directories on the system." + msgstr "" + +-#: booleans.py:168 ++#: booleans.py:175 + msgid "Allow samba to create new home directories (e.g. via PAM)" + msgstr "" + +-#: booleans.py:169 ++#: booleans.py:176 + msgid "" + "Allow samba to act as the domain controller, add users, groups and change " + "passwords." + msgstr "" + +-#: booleans.py:170 ++#: booleans.py:177 + msgid "Allow samba to share users home directories." + msgstr "" + +-#: booleans.py:171 ++#: booleans.py:178 + msgid "Allow samba to share any file/directory read only." + msgstr "" + +-#: booleans.py:172 ++#: booleans.py:179 + msgid "Allow samba to share any file/directory read/write." + msgstr "" + +-#: booleans.py:173 ++#: booleans.py:180 + msgid "Allow samba to act as a portmapper" + msgstr "" + +-#: booleans.py:174 ++#: booleans.py:181 + msgid "Allow samba to run unconfined scripts" + msgstr "" + +-#: booleans.py:175 ++#: booleans.py:182 + msgid "Allow samba to export ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:176 ++#: booleans.py:183 + msgid "Allow samba to export NFS volumes." + msgstr "" + +-#: booleans.py:177 ++#: booleans.py:184 + msgid "Allow sanlock to read/write fuse files" + msgstr "" + +-#: booleans.py:178 ++#: booleans.py:185 + msgid "Allow sanlock to manage nfs files" + msgstr "" + +-#: booleans.py:179 ++#: booleans.py:186 + msgid "Allow sanlock to manage cifs files" + msgstr "" + +-#: booleans.py:180 ++#: booleans.py:187 + msgid "Allow sasl to read shadow" + msgstr "" + +-#: booleans.py:181 ++#: booleans.py:188 + msgid "Allow secadm to exec content" + msgstr "" + +-#: booleans.py:182 ++#: booleans.py:189 + msgid "" + "disallow programs, such as newrole, from transitioning to administrative " + "user domains." + msgstr "" + +-#: booleans.py:183 ++#: booleans.py:190 + msgid "Disable kernel module loading." + msgstr "" + +-#: booleans.py:184 ++#: booleans.py:191 + msgid "" + "Boolean to determine whether the system permits loading policy, setting " + "enforcing mode, and changing boolean values. Set this to true and you have " + "to reboot to set it back." + msgstr "" + +-#: booleans.py:185 ++#: booleans.py:192 + msgid "Allow regular users direct dri device access" + msgstr "" + +-#: booleans.py:186 ++#: booleans.py:193 + msgid "" + "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 "" + +-#: booleans.py:187 ++#: booleans.py:194 + msgid "" + "Allow all unconfined executables to use libraries requiring text relocation " + "that are not labeled textrel_shlib_t" + msgstr "" + +-#: booleans.py:188 ++#: booleans.py:195 + msgid "" + "Allow unconfined executables to make their stack executable. This should " + "never, ever be necessary. Probably indicates a badly coded executable, but " + "could indicate an attack. This executable should be reported in bugzilla" + msgstr "" + +-#: booleans.py:189 ++#: booleans.py:196 + msgid "Allow users to connect to the local mysql server" + msgstr "" + +-#: booleans.py:190 ++#: booleans.py:197 msgid "" -"Allow confined users the ability to execute the ping and traceroute commands." +"Allow confined users the ability to execute the ping and traceroute " +"commands." msgstr "" - #: booleans.py:198 -@@ -3141,8 +3144,8 @@ msgstr "" +-#: booleans.py:191 ++#: booleans.py:198 + msgid "Allow users to connect to PostgreSQL" + msgstr "" - #: booleans.py:201 +-#: booleans.py:192 ++#: booleans.py:199 + msgid "" + "Allow user to r/w files on filesystems that do not have extended attributes " + "(FAT, CDROM, FLOPPY)" + msgstr "" + +-#: booleans.py:193 ++#: booleans.py:200 + msgid "Allow user music sharing" + msgstr "" + +-#: booleans.py:194 ++#: booleans.py:201 msgid "" -"Allow users to run TCP servers (bind to ports and accept connection from the " -"same domain and outside users) disabling this forces FTP passive mode and " @@ -5351,19 +10021,211 @@ index c565e50..e3cd32f 100644 "may change other protocols." msgstr "" -@@ -3234,7 +3237,8 @@ msgid "Allow sysadm to exec content" +-#: booleans.py:195 ++#: booleans.py:202 + msgid "Allow user to use ssh chroot environment." msgstr "" - #: booleans.py:221 +-#: booleans.py:196 ++#: booleans.py:203 + msgid "" + "Determine whether sftpd can modify public files used for public file " + "transfer services. Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:197 ++#: booleans.py:204 + msgid "" + "Determine whether sftpd-can read and write files in user home directories." + msgstr "" + +-#: booleans.py:198 ++#: booleans.py:205 + msgid "" + "Determine whether sftpd-can login to local users and read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:199 ++#: booleans.py:206 + msgid "" + "Determine whether sftpd can read and write files in user ssh home " + "directories." + msgstr "" + +-#: booleans.py:200 ++#: booleans.py:207 + msgid "Allow sge to connect to the network using any TCP port" + msgstr "" + +-#: booleans.py:201 ++#: booleans.py:208 + msgid "Allow sge to access nfs file systems." + msgstr "" + +-#: booleans.py:202 ++#: booleans.py:209 + msgid "Determine whether smartmon can support devices on 3ware controllers." + msgstr "" + +-#: booleans.py:203 ++#: booleans.py:210 + msgid "" + "Allow samba to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:204 ++#: booleans.py:211 + msgid "Allow user spamassassin clients to use the network." + msgstr "" + +-#: booleans.py:205 ++#: booleans.py:212 + msgid "Allow spamd to read/write user home directories." + msgstr "" + +-#: booleans.py:206 ++#: booleans.py:213 + msgid "Determine whether squid can connect to all TCP ports." + msgstr "" + +-#: booleans.py:207 ++#: booleans.py:214 + msgid "Determine whether squid can run as a transparent proxy." + msgstr "" + +-#: booleans.py:208 ++#: booleans.py:215 + msgid "" + "Allow ssh with chroot env to read and write files in the user home " + "directories" + msgstr "" + +-#: booleans.py:209 ++#: booleans.py:216 + msgid "allow host key based authentication" + msgstr "" + +-#: booleans.py:210 ++#: booleans.py:217 + msgid "Allow ssh logins as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:211 ++#: booleans.py:218 + msgid "Allow staff to exec content" + msgstr "" + +-#: booleans.py:212 ++#: booleans.py:219 + msgid "allow staff user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:213 ++#: booleans.py:220 + msgid "Allow sysadm to exec content" + msgstr "" + +-#: booleans.py:214 -msgid "Allow the Telepathy connection managers to connect to any network port." ++#: booleans.py:221 +msgid "" +"Allow the Telepathy connection managers to connect to any network port." msgstr "" - #: booleans.py:222 -@@ -3309,8 +3313,8 @@ msgstr "" +-#: booleans.py:215 ++#: booleans.py:222 + msgid "" + "Allow the Telepathy connection managers to connect to any generic TCP port." + msgstr "" - #: booleans.py:238 +-#: booleans.py:216 +-msgid "Allow testpolicy to exec content" +-msgstr "" +- +-#: booleans.py:217 ++#: booleans.py:223 + msgid "" + "Allow tftp to modify public files used for public file transfer services." + msgstr "" + +-#: booleans.py:218 ++#: booleans.py:224 + msgid "Allow tftp to read and write files in the user home directories" + msgstr "" + +-#: booleans.py:219 ++#: booleans.py:225 + msgid "Determine whether tor can bind tcp sockets to all unreserved ports." + msgstr "" + +-#: booleans.py:220 ++#: booleans.py:226 + msgid "Allow tor to act as a relay" + msgstr "" + +-#: booleans.py:221 ++#: booleans.py:227 + msgid "" + "allow unconfined users to transition to the chrome sandbox domains when " + "running chrome-sandbox" + msgstr "" + +-#: booleans.py:222 ++#: booleans.py:228 + msgid "Allow a user to login as an unconfined domain" + msgstr "" + +-#: booleans.py:223 ++#: booleans.py:229 + msgid "" + "Allow unconfined users to transition to the Mozilla plugin domain when " + "running xulrunner plugin-container." + msgstr "" + +-#: booleans.py:224 ++#: booleans.py:230 + msgid "Allow unprivledged user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:225 ++#: booleans.py:231 + msgid "Support ecryptfs home directories" + msgstr "" + +-#: booleans.py:226 ++#: booleans.py:232 + msgid "Support fusefs home directories" + msgstr "" + +-#: booleans.py:227 ++#: booleans.py:233 + msgid "Determine whether to support lpd server." + msgstr "" + +-#: booleans.py:228 ++#: booleans.py:234 + msgid "Support NFS home directories" + msgstr "" + +-#: booleans.py:229 ++#: booleans.py:235 + msgid "Support SAMBA home directories" + msgstr "" + +-#: booleans.py:230 ++#: booleans.py:236 + msgid "Allow user to exec content" + msgstr "" + +-#: booleans.py:231 ++#: booleans.py:237 + msgid "Determine whether varnishd can use the full TCP network." + msgstr "" + +-#: booleans.py:232 ++#: booleans.py:238 msgid "" -"Determine whether attempts by vbetool to mmap low regions should be silently " -"blocked." @@ -5371,20 +10233,839 @@ index c565e50..e3cd32f 100644 +" blocked." msgstr "" - #: booleans.py:239 -@@ -3388,7 +3392,8 @@ msgstr "" +-#: booleans.py:233 ++#: booleans.py:239 ++msgid "Allow sandbox containers to send audit messages" ++msgstr "" ++ ++#: booleans.py:240 ++msgid "Allow sandbox containers to use netlink system calls" ++msgstr "" ++ ++#: booleans.py:241 + msgid "Allow virtual processes to run as userdomains" + msgstr "" - #: booleans.py:256 +-#: booleans.py:234 ++#: booleans.py:242 + msgid "" + "Allow confined virtual guests to use serial/parallel communication ports" + msgstr "" + +-#: booleans.py:235 ++#: booleans.py:243 + msgid "" + "Allow confined virtual guests to use executable memory and executable stack" + msgstr "" + +-#: booleans.py:236 ++#: booleans.py:244 + msgid "Allow confined virtual guests to read fuse files" + msgstr "" + +-#: booleans.py:237 ++#: booleans.py:245 + msgid "Allow confined virtual guests to manage nfs files" + msgstr "" + +-#: booleans.py:238 ++#: booleans.py:246 + msgid "Allow confined virtual guests to interact with rawip sockets" + msgstr "" + +-#: booleans.py:239 ++#: booleans.py:247 + msgid "Allow confined virtual guests to manage cifs files" + msgstr "" + +-#: booleans.py:240 ++#: booleans.py:248 + msgid "Allow confined virtual guests to interact with the sanlock" + msgstr "" + +-#: booleans.py:241 ++#: booleans.py:249 + msgid "Allow confined virtual guests to use usb devices" + msgstr "" + +-#: booleans.py:242 ++#: booleans.py:250 + msgid "Allow confined virtual guests to interact with the xserver" + msgstr "" + +-#: booleans.py:243 ++#: booleans.py:251 + msgid "Determine whether webadm can manage generic user files." + msgstr "" + +-#: booleans.py:244 ++#: booleans.py:252 + msgid "Determine whether webadm can read generic user files." + msgstr "" + +-#: booleans.py:245 ++#: booleans.py:253 + msgid "" + "Determine whether attempts by wine to mmap low regions should be silently " + "blocked." + msgstr "" + +-#: booleans.py:246 ++#: booleans.py:254 + msgid "Allow the graphical login program to execute bootloader" + msgstr "" + +-#: booleans.py:247 ++#: booleans.py:255 + msgid "" + "Allow the graphical login program to login directly as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:248 ++#: booleans.py:256 msgid "" -"Allow the graphical login program to create files in HOME dirs as xdm_home_t." +"Allow the graphical login program to create files in HOME dirs as " +"xdm_home_t." msgstr "" - #: booleans.py:257 -@@ -3969,8 +3974,8 @@ msgstr "" +-#: booleans.py:249 ++#: booleans.py:257 + msgid "Allow xen to manage nfs files" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:638 +-#: booleans.py:250 ++#: booleans.py:258 + msgid "" + "Allow xend to run blktapctrl/tapdisk. Not required if using dedicated " + "logical volumes for disk images." + msgstr "" + +-#: booleans.py:251 ++#: booleans.py:259 + msgid "Allow xend to run qemu-dm. Not required if using paravirt and no vfb." + msgstr "" + +-#: booleans.py:252 ++#: booleans.py:260 + msgid "" + "Allow xguest users to configure Network Manager and connect to apache ports" + msgstr "" + +-#: booleans.py:253 ++#: booleans.py:261 + msgid "Allow xguest to exec content" + msgstr "" + +-#: booleans.py:254 ++#: booleans.py:262 + msgid "Allow xguest users to mount removable media" + msgstr "" + +-#: booleans.py:255 ++#: booleans.py:263 + msgid "Allow xguest to use blue tooth devices" + msgstr "" + +-#: booleans.py:256 ++#: booleans.py:264 + msgid "Allows clients to write to the X server shared memory segments." + msgstr "" + +-#: booleans.py:257 ++#: booleans.py:265 + msgid "Allows XServer to execute writable memory" + msgstr "" + +-#: booleans.py:258 ++#: booleans.py:266 + msgid "Support X userspace object manager" + msgstr "" + +-#: booleans.py:259 ++#: booleans.py:267 + msgid "Determine whether zabbix can connect to all TCP ports" + msgstr "" + +-#: booleans.py:260 ++#: booleans.py:268 + msgid "Allow zarafa domains to setrlimit/sys_rouserce." + msgstr "" + +-#: booleans.py:261 ++#: booleans.py:269 + msgid "Allow zebra daemon to write it configuration files" + msgstr "" + +-#: booleans.py:262 ++#: booleans.py:270 + msgid "" + "Allow ZoneMinder to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:263 ++#: booleans.py:271 + msgid "Allow ZoneMinder to run su/sudo." + msgstr "" + +-#: ../sepolicy/sepolicy.py:194 ++#: ../sepolicy/sepolicy.py:195 + #, python-format + msgid "Interface %s does not exist." + msgstr "" + +-#: ../sepolicy/sepolicy.py:292 ++#: ../sepolicy/sepolicy.py:293 + msgid "You need to install policycoreutils-gui package to use the gui option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:296 ++#: ../sepolicy/sepolicy.py:297 + msgid "Graphical User Interface for SELinux Policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:299 ../sepolicy/sepolicy.py:345 ++#: ../sepolicy/sepolicy.py:300 ../sepolicy/sepolicy.py:346 + msgid "Domain name(s) of man pages to be created" + msgstr "" + +-#: ../sepolicy/sepolicy.py:311 ++#: ../sepolicy/sepolicy.py:312 + msgid "Alternative root needs to be setup" + msgstr "" + +-#: ../sepolicy/sepolicy.py:327 ++#: ../sepolicy/sepolicy.py:328 + msgid "Generate SELinux man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:330 ++#: ../sepolicy/sepolicy.py:331 + msgid "path in which the generated SELinux man pages will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:332 ++#: ../sepolicy/sepolicy.py:333 + msgid "name of the OS for man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:334 ++#: ../sepolicy/sepolicy.py:335 + msgid "Generate HTML man pages structure for selected SELinux man page" + msgstr "" + +-#: ../sepolicy/sepolicy.py:336 ++#: ../sepolicy/sepolicy.py:337 + msgid "Alternate root directory, defaults to /" + msgstr "" + +-#: ../sepolicy/sepolicy.py:338 ++#: ../sepolicy/sepolicy.py:339 + msgid "" + "With this flag, alternative root path needs to include file context files " + "and policy.xml file" + msgstr "" + +-#: ../sepolicy/sepolicy.py:342 ++#: ../sepolicy/sepolicy.py:343 + msgid "All domains" + msgstr "" + +-#: ../sepolicy/sepolicy.py:350 ++#: ../sepolicy/sepolicy.py:351 + msgid "Query SELinux policy network information" + msgstr "" + +-#: ../sepolicy/sepolicy.py:355 ++#: ../sepolicy/sepolicy.py:356 + msgid "list all SELinux port types" + msgstr "" + +-#: ../sepolicy/sepolicy.py:358 ++#: ../sepolicy/sepolicy.py:359 + msgid "show SELinux type related to the port" + msgstr "" + +-#: ../sepolicy/sepolicy.py:361 ++#: ../sepolicy/sepolicy.py:362 + msgid "Show ports defined for this SELinux type" + msgstr "" + +-#: ../sepolicy/sepolicy.py:364 ++#: ../sepolicy/sepolicy.py:365 + msgid "show ports to which this domain can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:367 ++#: ../sepolicy/sepolicy.py:368 + msgid "show ports to which this application can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:382 ++#: ../sepolicy/sepolicy.py:383 + msgid "query SELinux policy to see if domains can communicate with each other" + msgstr "" + +-#: ../sepolicy/sepolicy.py:385 ++#: ../sepolicy/sepolicy.py:386 + msgid "Source Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:388 ++#: ../sepolicy/sepolicy.py:389 + msgid "Target Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:407 ++#: ../sepolicy/sepolicy.py:408 + msgid "query SELinux Policy to see description of booleans" + msgstr "" + +-#: ../sepolicy/sepolicy.py:411 ++#: ../sepolicy/sepolicy.py:412 + msgid "get all booleans descriptions" + msgstr "" + +-#: ../sepolicy/sepolicy.py:414 ++#: ../sepolicy/sepolicy.py:415 + msgid "boolean to get description" + msgstr "" + +-#: ../sepolicy/sepolicy.py:424 ++#: ../sepolicy/sepolicy.py:425 + msgid "" + "query SELinux Policy to see how a source process domain can transition to " + "the target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:427 ++#: ../sepolicy/sepolicy.py:428 + msgid "source process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:430 ++#: ../sepolicy/sepolicy.py:431 + msgid "target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:472 ++#: ../sepolicy/sepolicy.py:473 + #, python-format + msgid "sepolicy generate: error: one of the arguments %s is required" + msgstr "" + +-#: ../sepolicy/sepolicy.py:477 ++#: ../sepolicy/sepolicy.py:478 + msgid "Command required for this type of policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:488 ++#: ../sepolicy/sepolicy.py:489 + #, python-format + msgid "" + "-t option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:493 ++#: ../sepolicy/sepolicy.py:494 + #, python-format + msgid "" + "-d option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:497 ++#: ../sepolicy/sepolicy.py:498 + #, python-format + msgid "" + "-a option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:501 ++#: ../sepolicy/sepolicy.py:502 + msgid "-w option can not be used with the --newtype option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:521 ++#: ../sepolicy/sepolicy.py:522 + msgid "List SELinux Policy interfaces" + msgstr "" + +-#: ../sepolicy/sepolicy.py:541 ++#: ../sepolicy/sepolicy.py:542 + msgid "Enter interface names, you wish to query" + msgstr "" + +-#: ../sepolicy/sepolicy.py:550 ++#: ../sepolicy/sepolicy.py:551 + msgid "Generate SELinux Policy module template" + msgstr "" + +-#: ../sepolicy/sepolicy.py:553 ++#: ../sepolicy/sepolicy.py:554 + msgid "Enter domain type which you will be extending" + msgstr "" + +-#: ../sepolicy/sepolicy.py:556 ++#: ../sepolicy/sepolicy.py:557 + msgid "Enter SELinux user(s) which will transition to this domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:559 ++#: ../sepolicy/sepolicy.py:560 + msgid "Enter SELinux role(s) to which the administror domain will transition" + msgstr "" + +-#: ../sepolicy/sepolicy.py:562 ++#: ../sepolicy/sepolicy.py:563 + msgid "Enter domain(s) which this confined admin will administrate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:565 ++#: ../sepolicy/sepolicy.py:566 + msgid "name of policy to generate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:572 ++#: ../sepolicy/sepolicy.py:573 + msgid "path in which the generated policy files will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:574 ++#: ../sepolicy/sepolicy.py:575 + msgid "path to which the confined processes will need to write" + msgstr "" + +-#: ../sepolicy/sepolicy.py:575 ++#: ../sepolicy/sepolicy.py:576 + msgid "Policy types which require a command" + msgstr "" + +-#: ../sepolicy/sepolicy.py:579 ../sepolicy/sepolicy.py:582 +-#: ../sepolicy/sepolicy.py:585 ../sepolicy/sepolicy.py:588 +-#: ../sepolicy/sepolicy.py:591 ../sepolicy/sepolicy.py:597 +-#: ../sepolicy/sepolicy.py:600 ../sepolicy/sepolicy.py:603 +-#: ../sepolicy/sepolicy.py:609 ../sepolicy/sepolicy.py:612 +-#: ../sepolicy/sepolicy.py:615 ../sepolicy/sepolicy.py:618 ++#: ../sepolicy/sepolicy.py:580 ../sepolicy/sepolicy.py:583 ++#: ../sepolicy/sepolicy.py:586 ../sepolicy/sepolicy.py:589 ++#: ../sepolicy/sepolicy.py:592 ../sepolicy/sepolicy.py:598 ++#: ../sepolicy/sepolicy.py:601 ../sepolicy/sepolicy.py:604 ++#: ../sepolicy/sepolicy.py:610 ../sepolicy/sepolicy.py:613 ++#: ../sepolicy/sepolicy.py:616 ../sepolicy/sepolicy.py:619 + #, python-format + msgid "Generate '%s' policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:606 ++#: ../sepolicy/sepolicy.py:607 + #, python-format + msgid "Generate '%s' policy " + msgstr "" + +-#: ../sepolicy/sepolicy.py:620 ++#: ../sepolicy/sepolicy.py:621 + msgid "executable to confine" + msgstr "" + +-#: ../sepolicy/sepolicy.py:625 ++#: ../sepolicy/sepolicy.py:626 + msgid "commands" + msgstr "" + +-#: ../sepolicy/sepolicy.py:628 ++#: ../sepolicy/sepolicy.py:629 + msgid "Alternate SELinux policy, defaults to /sys/fs/selinux/policy" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:89 ++#: ../sepolicy/sepolicy/__init__.py:96 + #, python-format + msgid "-- Allowed %s [ %s ]" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:95 ../sepolicy/sepolicy/gui.py:1135 ++#: ../sepolicy/sepolicy/__init__.py:102 ../sepolicy/sepolicy/gui.py:1152 + msgid "all files" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:96 ++#: ../sepolicy/sepolicy/__init__.py:103 + msgid "regular file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:97 ++#: ../sepolicy/sepolicy/__init__.py:104 + msgid "directory" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:98 ++#: ../sepolicy/sepolicy/__init__.py:105 + msgid "character device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:99 ++#: ../sepolicy/sepolicy/__init__.py:106 + msgid "block device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:100 ++#: ../sepolicy/sepolicy/__init__.py:107 + msgid "socket file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:101 ++#: ../sepolicy/sepolicy/__init__.py:108 + msgid "symbolic link" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:102 ++#: ../sepolicy/sepolicy/__init__.py:109 + msgid "named pipe" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:398 ++#: ../sepolicy/sepolicy/__init__.py:427 + msgid "No SELinux Policy installed" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:478 ++#: ../sepolicy/sepolicy/__init__.py:506 + msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:724 ++#: ../sepolicy/sepolicy/__init__.py:768 + #, python-format + msgid "Failed to read %s policy file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:829 ++#: ../sepolicy/sepolicy/__init__.py:873 + msgid "unknown" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:132 ++#: ../sepolicy/sepolicy/generate.py:134 + msgid "Internet Services Daemon" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:136 ++#: ../sepolicy/sepolicy/generate.py:138 + msgid "Existing Domain Type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:137 ++#: ../sepolicy/sepolicy/generate.py:139 + msgid "Minimal Terminal Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:138 ++#: ../sepolicy/sepolicy/generate.py:140 + msgid "Minimal X Windows Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:139 ++#: ../sepolicy/sepolicy/generate.py:141 + msgid "Desktop Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:140 ++#: ../sepolicy/sepolicy/generate.py:142 + msgid "Administrator Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:141 ++#: ../sepolicy/sepolicy/generate.py:143 + msgid "Confined Root Administrator Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:142 ++#: ../sepolicy/sepolicy/generate.py:144 + msgid "Module information for a new type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:147 ++#: ../sepolicy/sepolicy/generate.py:149 + msgid "Valid Types:\n" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:181 ++#: ../sepolicy/sepolicy/generate.py:183 + #, python-format + msgid "Ports must be numbers or ranges of numbers from 1 to %d " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:192 ++#: ../sepolicy/sepolicy/generate.py:194 + msgid "You must enter a valid policy type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:195 ++#: ../sepolicy/sepolicy/generate.py:197 + #, python-format + msgid "You must enter a name for your policy module for your '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:333 ++#: ../sepolicy/sepolicy/generate.py:335 + msgid "" + "Name must be alpha numberic with no spaces. Consider using option \"-n " + "MODULENAME\"" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:425 ++#: ../sepolicy/sepolicy/generate.py:427 + msgid "User Role types can not be assigned executables." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:431 ++#: ../sepolicy/sepolicy/generate.py:433 + msgid "Only Daemon apps can use an init script.." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:449 ++#: ../sepolicy/sepolicy/generate.py:451 + msgid "use_resolve must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:455 ++#: ../sepolicy/sepolicy/generate.py:457 + msgid "use_syslog must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:461 ++#: ../sepolicy/sepolicy/generate.py:463 + msgid "use_kerberos must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:467 ++#: ../sepolicy/sepolicy/generate.py:469 + msgid "manage_krb5_rcache must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:497 ++#: ../sepolicy/sepolicy/generate.py:499 + msgid "USER Types automatically get a tmp type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:838 ++#: ../sepolicy/sepolicy/generate.py:840 + #, python-format + msgid "'%s' policy modules require existing domains" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:863 ++#: ../sepolicy/sepolicy/generate.py:865 + msgid "Type field required" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:876 ++#: ../sepolicy/sepolicy/generate.py:878 + #, python-format + msgid "" + "You need to define a new type which ends with: \n" + " %s" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1104 ++#: ../sepolicy/sepolicy/generate.py:1106 + msgid "You must enter the executable path for your confined process" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1363 ++#: ../sepolicy/sepolicy/generate.py:1369 + msgid "Type Enforcement file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1364 ++#: ../sepolicy/sepolicy/generate.py:1370 + msgid "Interface file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1365 ++#: ../sepolicy/sepolicy/generate.py:1371 + msgid "File Contexts file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1367 ++#: ../sepolicy/sepolicy/generate.py:1373 + msgid "Spec file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1368 ++#: ../sepolicy/sepolicy/generate.py:1374 + msgid "Setup Script" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:25 +-#: ../sepolicy/sepolicy/sepolicy.glade:4369 ++#: ../sepolicy/sepolicy/sepolicy.glade:4330 + msgid "Applications" + msgstr "" + +@@ -3803,562 +3863,555 @@ msgstr "" + msgid "Select domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search >>" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2343 + msgid "File Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2316 ++#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2353 + msgid "Users" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:129 +-#: ../sepolicy/sepolicy/sepolicy.glade:1897 +-#: ../sepolicy/sepolicy/sepolicy.glade:3802 ../sepolicy/sepolicy/gui.py:2297 ++#: ../sepolicy/sepolicy/sepolicy.glade:1898 ++#: ../sepolicy/sepolicy/sepolicy.glade:3803 ../sepolicy/sepolicy/gui.py:2334 + msgid "System" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:189 +-#: ../sepolicy/sepolicy/sepolicy.glade:4406 +-#: ../sepolicy/sepolicy/sepolicy.glade:4499 +-#: ../sepolicy/sepolicy/sepolicy.glade:4645 +-#: ../sepolicy/sepolicy/sepolicy.glade:4793 +-#: ../sepolicy/sepolicy/sepolicy.glade:4934 +-#: ../sepolicy/sepolicy/sepolicy.glade:5007 ++#: ../sepolicy/sepolicy/sepolicy.glade:4367 ++#: ../sepolicy/sepolicy/sepolicy.glade:4460 ++#: ../sepolicy/sepolicy/sepolicy.glade:4606 ++#: ../sepolicy/sepolicy/sepolicy.glade:4755 ++#: ../sepolicy/sepolicy/sepolicy.glade:4889 ++#: ../sepolicy/sepolicy/sepolicy.glade:5030 ++#: ../sepolicy/sepolicy/sepolicy.glade:5103 ++#: ../sepolicy/sepolicy/sepolicy.glade:5238 + msgid "Select" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:204 +-#: ../sepolicy/sepolicy/sepolicy.glade:557 +-#: ../sepolicy/sepolicy/sepolicy.glade:702 +-#: ../sepolicy/sepolicy/sepolicy.glade:1243 +-#: ../sepolicy/sepolicy/sepolicy.glade:1539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4579 +-#: ../sepolicy/sepolicy/sepolicy.glade:4729 +-#: ../sepolicy/sepolicy/sepolicy.glade:4859 +-#: ../sepolicy/sepolicy/sepolicy.glade:5077 +-#: ../sepolicy/sepolicy/sepolicy.glade:5233 +-#: ../sepolicy/sepolicy/sepolicy.glade:5474 ++#: ../sepolicy/sepolicy/sepolicy.glade:539 ++#: ../sepolicy/sepolicy/sepolicy.glade:684 ++#: ../sepolicy/sepolicy/sepolicy.glade:1239 ++#: ../sepolicy/sepolicy/sepolicy.glade:1535 ++#: ../sepolicy/sepolicy/sepolicy.glade:4540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4690 ++#: ../sepolicy/sepolicy/sepolicy.glade:4821 ++#: ../sepolicy/sepolicy/sepolicy.glade:4955 ++#: ../sepolicy/sepolicy/sepolicy.glade:5173 ++#: ../sepolicy/sepolicy/sepolicy.glade:5304 ++#: ../sepolicy/sepolicy/sepolicy.glade:5464 + msgid "Cancel" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:350 ++#: ../sepolicy/sepolicy/sepolicy.glade:332 + msgid "" + "The entry that was entered is incorrect. Please try again in the " + "ex:/.../... format." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:376 ++#: ../sepolicy/sepolicy/sepolicy.glade:358 + msgid "Retry" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:460 +-#: ../sepolicy/sepolicy/sepolicy.glade:1124 +-#: ../sepolicy/sepolicy/sepolicy.glade:1372 +-#: ../sepolicy/sepolicy/sepolicy.glade:5102 +-#: ../sepolicy/sepolicy/sepolicy.glade:5343 ++#: ../sepolicy/sepolicy/sepolicy.glade:442 ++#: ../sepolicy/sepolicy/sepolicy.glade:1120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1368 ++#: ../sepolicy/sepolicy/sepolicy.glade:5332 + msgid "Network Port Definitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:476 ++#: ../sepolicy/sepolicy/sepolicy.glade:458 + msgid "" +-"Add file Equivilence Mapping. Mapping will be created when Update is " ++"Add file Equivalence Mapping. Mapping will be created when Update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:501 +-#: ../sepolicy/sepolicy/sepolicy.glade:4045 ++#: ../sepolicy/sepolicy/sepolicy.glade:483 ++#: ../sepolicy/sepolicy/sepolicy.glade:4046 + msgid "Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:511 +-#: ../sepolicy/sepolicy/sepolicy.glade:5154 +-#: ../sepolicy/sepolicy/sepolicy.glade:5395 ++#: ../sepolicy/sepolicy/sepolicy.glade:493 ++#: ../sepolicy/sepolicy/sepolicy.glade:5384 + msgid "" + "Specify a new SELinux user name. By convention SELinux User names usually " + "end in an _u." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:515 ++#: ../sepolicy/sepolicy/sepolicy.glade:497 + msgid "Enter the path to which you want to setup an equivalence label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:528 +-#: ../sepolicy/sepolicy/sepolicy.glade:4062 +-#: ../sepolicy/sepolicy/sepolicy.glade:4819 ++#: ../sepolicy/sepolicy/sepolicy.glade:510 ++#: ../sepolicy/sepolicy/sepolicy.glade:4063 ++#: ../sepolicy/sepolicy/sepolicy.glade:4781 + msgid "Equivalence Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:542 +-#: ../sepolicy/sepolicy/sepolicy.glade:687 +-#: ../sepolicy/sepolicy/sepolicy.glade:1228 +-#: ../sepolicy/sepolicy/sepolicy.glade:1524 +-#: ../sepolicy/sepolicy/sepolicy.glade:5218 +-#: ../sepolicy/sepolicy/sepolicy.glade:5459 ++#: ../sepolicy/sepolicy/sepolicy.glade:524 ++#: ../sepolicy/sepolicy/sepolicy.glade:669 ++#: ../sepolicy/sepolicy/sepolicy.glade:1224 ++#: ../sepolicy/sepolicy/sepolicy.glade:1520 ++#: ../sepolicy/sepolicy/sepolicy.glade:5449 + msgid "Save to update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:582 ++#: ../sepolicy/sepolicy/sepolicy.glade:564 + msgid "" + "Specify the mapping between the new path and the equivalence path. " + "Everything under this new path will be labeled as if they were under the " + "equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:639 ++#: ../sepolicy/sepolicy/sepolicy.glade:621 + msgid "Add a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:656 ++#: ../sepolicy/sepolicy/sepolicy.glade:638 msgid "" -" File Labeling for . File labels will be created " -"when update is applied." @@ -5392,10 +11073,71 @@ index c565e50..e3cd32f 100644 +" when update is applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:726 -@@ -4022,8 +4027,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:744 +-#: ../sepolicy/sepolicy/sepolicy.glade:1471 +-#: ../sepolicy/sepolicy/sepolicy.glade:3510 ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/sepolicy.glade:726 ++#: ../sepolicy/sepolicy/sepolicy.glade:1467 ++#: ../sepolicy/sepolicy/sepolicy.glade:3511 ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced >>" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:880 +-#: ../sepolicy/sepolicy/sepolicy.glade:765 +-#: ../sepolicy/sepolicy/sepolicy.glade:2305 +-#: ../sepolicy/sepolicy/sepolicy.glade:2417 +-#: ../sepolicy/sepolicy/sepolicy.glade:2539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4539 ++#: ../sepolicy/sepolicy/sepolicy.glade:747 ++#: ../sepolicy/sepolicy/sepolicy.glade:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:2418 ++#: ../sepolicy/sepolicy/sepolicy.glade:2540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4500 + msgid "Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:781 ++#: ../sepolicy/sepolicy/sepolicy.glade:763 + msgid "Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:795 ++#: ../sepolicy/sepolicy/sepolicy.glade:777 + msgid "" + "Select the file class to which this label will be applied. Defaults to all " + "classes." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:822 ++#: ../sepolicy/sepolicy/sepolicy.glade:804 + msgid "Make Path Recursive" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:826 ++#: ../sepolicy/sepolicy/sepolicy.glade:808 + msgid "" +-"Select Make Path Recursive iff you want to apply this label to all children " ++"Select Make Path Recursive if you want to apply this label to all children " + "of the specified directory path. objects under the directory to have this " + "label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:839 ++#: ../sepolicy/sepolicy/sepolicy.glade:821 + msgid "Browse" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:843 ++#: ../sepolicy/sepolicy/sepolicy.glade:825 + msgid "Browse to select the file/directory for labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:887 ++#: ../sepolicy/sepolicy/sepolicy.glade:869 + msgid "Path " + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:898 ++#: ../sepolicy/sepolicy/sepolicy.glade:880 msgid "" -"Specify the path using regular expressions that you would like to modify the " -"labeling." @@ -5403,10 +11145,378 @@ index c565e50..e3cd32f 100644 +" labeling." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:902 -@@ -4311,8 +4316,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:920 ++#: ../sepolicy/sepolicy/sepolicy.glade:902 + msgid "Select the SELinux file type to assign to this path." + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3012 +-#: ../sepolicy/sepolicy/sepolicy.glade:947 ++#: ../sepolicy/sepolicy/sepolicy.glade:929 + msgid "Enter the MLS Label to assign to this file path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:951 ++#: ../sepolicy/sepolicy/sepolicy.glade:933 + msgid "SELinux MLS Label you wish to assign to this path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1088 ++#: ../sepolicy/sepolicy/sepolicy.glade:1070 + msgid "Analyzing Policy..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1141 ++#: ../sepolicy/sepolicy/sepolicy.glade:1137 + msgid "" + "Add Login Mapping. Login Mapping will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1176 ++#: ../sepolicy/sepolicy/sepolicy.glade:1172 + msgid "" + "Enter the login user name of the user to which you wish to add SELinux User " + "confinement." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1205 ++#: ../sepolicy/sepolicy/sepolicy.glade:1201 + msgid "" + "Select the SELinux User to assign to this login user. Login users by " + "default get assigned by the __default__ user." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1268 ++#: ../sepolicy/sepolicy/sepolicy.glade:1264 + msgid "" + "Enter MLS/MCS Range for this login User. Defaults to the range for the " + "Selected SELinux User." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1271 +-#: ../sepolicy/sepolicy/sepolicy.glade:3191 +-#: ../sepolicy/sepolicy/sepolicy.glade:3312 +-#: ../sepolicy/sepolicy/sepolicy.glade:5184 +-#: ../sepolicy/sepolicy/sepolicy.glade:5425 ++#: ../sepolicy/sepolicy/sepolicy.glade:1267 ++#: ../sepolicy/sepolicy/sepolicy.glade:3192 ++#: ../sepolicy/sepolicy/sepolicy.glade:3313 ++#: ../sepolicy/sepolicy/sepolicy.glade:5414 + msgid "MLS Range" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1283 ++#: ../sepolicy/sepolicy/sepolicy.glade:1279 + msgid "" + "Specify the MLS Range for this user to login in with. Defaults to the " + "selected SELinux Users MLS Range." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1389 ++#: ../sepolicy/sepolicy/sepolicy.glade:1385 + msgid "" + " Network Port for . Ports will be created when " + "update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1427 ++#: ../sepolicy/sepolicy/sepolicy.glade:1423 + msgid "Enter the port number or range to which you want to add a port type." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1457 ++#: ../sepolicy/sepolicy/sepolicy.glade:1453 + msgid "Port Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1502 ++#: ../sepolicy/sepolicy/sepolicy.glade:1498 + msgid "Select the port type you want to assign to the specified port number." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1566 ++#: ../sepolicy/sepolicy/sepolicy.glade:1562 + msgid "tcp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1570 ++#: ../sepolicy/sepolicy/sepolicy.glade:1566 + msgid "" + "Select tcp if the port type should be assigned to tcp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1583 ++#: ../sepolicy/sepolicy/sepolicy.glade:1579 + msgid "udp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1587 ++#: ../sepolicy/sepolicy/sepolicy.glade:1583 + msgid "" + "Select udp if the port type should be assigned to udp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1609 ++#: ../sepolicy/sepolicy/sepolicy.glade:1605 + msgid "Enter the MLS Label to assign to this port." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1706 ++#: ../sepolicy/sepolicy/sepolicy.glade:1707 + msgid "SELinux Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1742 ++#: ../sepolicy/sepolicy/sepolicy.glade:1743 + msgid "Select..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1791 +-#: ../sepolicy/sepolicy/sepolicy.glade:2211 ++#: ../sepolicy/sepolicy/sepolicy.glade:1792 ++#: ../sepolicy/sepolicy/sepolicy.glade:2212 + msgid "Booleans" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1795 ++#: ../sepolicy/sepolicy/sepolicy.glade:1796 + msgid "" + "Display boolean information that can be used to modify the policy for the " + "'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1809 +-#: ../sepolicy/sepolicy/sepolicy.glade:2596 ++#: ../sepolicy/sepolicy/sepolicy.glade:1810 ++#: ../sepolicy/sepolicy/sepolicy.glade:2597 + msgid "Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1813 ++#: ../sepolicy/sepolicy/sepolicy.glade:1814 + msgid "" + "Display file type information that can be used by the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1827 +-#: ../sepolicy/sepolicy/sepolicy.glade:2829 ++#: ../sepolicy/sepolicy/sepolicy.glade:1828 ++#: ../sepolicy/sepolicy/sepolicy.glade:2830 + msgid "Network" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1831 ++#: ../sepolicy/sepolicy/sepolicy.glade:1832 + msgid "" + "Display network ports to which the 'selected domain' can connect or listen " + "to." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1845 +-#: ../sepolicy/sepolicy/sepolicy.glade:3120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1846 ++#: ../sepolicy/sepolicy/sepolicy.glade:3121 + msgid "Transitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1849 ++#: ../sepolicy/sepolicy/sepolicy.glade:1850 + msgid "" + "Display applications that can transition into or out of the 'selected " + "domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1863 +-#: ../sepolicy/sepolicy/sepolicy.glade:3221 ++#: ../sepolicy/sepolicy/sepolicy.glade:1864 ++#: ../sepolicy/sepolicy/sepolicy.glade:3222 + msgid "Login Mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1866 +-#: ../sepolicy/sepolicy/sepolicy.glade:1883 +-#: ../sepolicy/sepolicy/sepolicy.glade:1900 ++#: ../sepolicy/sepolicy/sepolicy.glade:1867 ++#: ../sepolicy/sepolicy/sepolicy.glade:1884 ++#: ../sepolicy/sepolicy/sepolicy.glade:1901 + msgid "Manage the SELinux configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1880 +-#: ../sepolicy/sepolicy/sepolicy.glade:3343 ++#: ../sepolicy/sepolicy/sepolicy.glade:1881 ++#: ../sepolicy/sepolicy/sepolicy.glade:3344 + msgid "SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1914 +-#: ../sepolicy/sepolicy/sepolicy.glade:4015 ++#: ../sepolicy/sepolicy/sepolicy.glade:1915 ++#: ../sepolicy/sepolicy/sepolicy.glade:4016 + msgid "Lockdown" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1917 ++#: ../sepolicy/sepolicy/sepolicy.glade:1918 + msgid "" + "Lockdown the SELinux System.\n" + "This screen can be used to turn up the SELinux Protections." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1932 ++#: ../sepolicy/sepolicy/sepolicy.glade:1933 + msgid "radiobutton" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2020 ++#: ../sepolicy/sepolicy/sepolicy.glade:2021 + msgid "Show Modified Only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2059 ++#: ../sepolicy/sepolicy/sepolicy.glade:2060 + msgid "Mislabeled files exist" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2079 ++#: ../sepolicy/sepolicy/sepolicy.glade:2080 + msgid "Show mislabeled files only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2119 +-#: ../sepolicy/sepolicy/sepolicy.glade:3243 ++#: ../sepolicy/sepolicy/sepolicy.glade:2120 ++#: ../sepolicy/sepolicy/sepolicy.glade:3244 + msgid "" +-"If-Then-Else rules written in policy that can \n" ++"If-Then-Else rules written in policy that can\n" + "allow alternative access control." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2131 ++#: ../sepolicy/sepolicy/sepolicy.glade:2132 + msgid "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2251 +-#: ../sepolicy/sepolicy/sepolicy.glade:2363 +-#: ../sepolicy/sepolicy/sepolicy.glade:2481 +-#: ../sepolicy/sepolicy/sepolicy.glade:4512 +-#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:2252 ++#: ../sepolicy/sepolicy/sepolicy.glade:2364 ++#: ../sepolicy/sepolicy/sepolicy.glade:2482 ++#: ../sepolicy/sepolicy/sepolicy.glade:4473 ++#: ../sepolicy/sepolicy/sepolicy.glade:4768 + msgid "File Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2287 +-#: ../sepolicy/sepolicy/sepolicy.glade:2398 ++#: ../sepolicy/sepolicy/sepolicy.glade:2288 ++#: ../sepolicy/sepolicy/sepolicy.glade:2399 + msgid "SELinux File Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2331 ++#: ../sepolicy/sepolicy/sepolicy.glade:2332 + msgid "File path used to enter the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2332 ++#: ../sepolicy/sepolicy/sepolicy.glade:2333 + msgid "Executable Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2447 ++#: ../sepolicy/sepolicy/sepolicy.glade:2448 + msgid "Files to which the 'selected domain' can write." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2448 ++#: ../sepolicy/sepolicy/sepolicy.glade:2449 + msgid "Writable files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2570 ++#: ../sepolicy/sepolicy/sepolicy.glade:2571 + msgid "File Types defined for the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2571 ++#: ../sepolicy/sepolicy/sepolicy.glade:2572 + msgid "Application File Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2703 ++#: ../sepolicy/sepolicy/sepolicy.glade:2704 + msgid "Network Ports to which the 'selected domain' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2704 ++#: ../sepolicy/sepolicy/sepolicy.glade:2705 + msgid "Outbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2803 ++#: ../sepolicy/sepolicy/sepolicy.glade:2804 + msgid "Network Ports to which the 'selected domain' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2804 ++#: ../sepolicy/sepolicy/sepolicy.glade:2805 + msgid "Inbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2865 ++#: ../sepolicy/sepolicy/sepolicy.glade:2866 ++#: ../sepolicy/sepolicy/sepolicy.glade:2956 + msgid "" +-"Boolean \n" ++"Boolean\n" + "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2891 ++#: ../sepolicy/sepolicy/sepolicy.glade:2892 + msgid "Boolean name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2908 ++#: ../sepolicy/sepolicy/sepolicy.glade:2909 + msgid "SELinux Application Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2929 ++#: ../sepolicy/sepolicy/sepolicy.glade:2930 + msgid "" + "Executables which will transition to a different domain, when the 'selected " + "domain' executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2932 +-msgid "Applicaton Transitions From 'select domain'" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:2955 +-msgid "" +-"Boolean\n" +-"Enabled" ++#: ../sepolicy/sepolicy/sepolicy.glade:2933 ++msgid "Application Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2971 ++#: ../sepolicy/sepolicy/sepolicy.glade:2972 + msgid "Calling Process Domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2987 ++#: ../sepolicy/sepolicy/sepolicy.glade:2988 + msgid "Executable File" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3011 ++#: ../sepolicy/sepolicy/sepolicy.glade:3012 msgid "" -"Executables which will transition to the 'selected domain', when executing a " -"selected domains entrypoint." @@ -5414,10 +11524,160 @@ index c565e50..e3cd32f 100644 +" selected domains entrypoint." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3013 -@@ -4437,8 +4442,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:3012 ++#: ../sepolicy/sepolicy/sepolicy.glade:3013 + msgid "Application Transitions Into 'select domain'" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3957 +-#: ../sepolicy/sepolicy/sepolicy.glade:3027 ++#: ../sepolicy/sepolicy/sepolicy.glade:3028 + msgid "" + "File Transitions define what happens when the current domain creates the " + "content of a particular class in a directory of the destination type. " + "Optionally a file name could be specified for the transition." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3035 ++#: ../sepolicy/sepolicy/sepolicy.glade:3036 + msgid "SELinux Directory Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3048 ++#: ../sepolicy/sepolicy/sepolicy.glade:3049 + msgid "Destination Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3062 ++#: ../sepolicy/sepolicy/sepolicy.glade:3063 + msgid "SELinux Destination Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3075 ++#: ../sepolicy/sepolicy/sepolicy.glade:3076 + msgid "File Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3097 ++#: ../sepolicy/sepolicy/sepolicy.glade:3098 + msgid "File Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3296 +-#: ../sepolicy/sepolicy/sepolicy.glade:5277 +-#: ../sepolicy/sepolicy/sepolicy.glade:5518 ++#: ../sepolicy/sepolicy/sepolicy.glade:3297 ++#: ../sepolicy/sepolicy/sepolicy.glade:5508 + msgid "Default Level" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3382 ++#: ../sepolicy/sepolicy/sepolicy.glade:3383 + msgid "Select the system mode when the system first boots up" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3455 ++#: ../sepolicy/sepolicy/sepolicy.glade:3456 + msgid "Select the system mode for the current session" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3532 ++#: ../sepolicy/sepolicy/sepolicy.glade:3533 + msgid "System Policy Type:" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3593 ++#: ../sepolicy/sepolicy/sepolicy.glade:3594 + msgid "System Mode" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3631 ++#: ../sepolicy/sepolicy/sepolicy.glade:3632 + msgid "Import system settings from another machine" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3639 ++#: ../sepolicy/sepolicy/sepolicy.glade:3640 + msgid "Import" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3658 ++#: ../sepolicy/sepolicy/sepolicy.glade:3659 + msgid "Export system settings to a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3668 ++#: ../sepolicy/sepolicy/sepolicy.glade:3669 + msgid "Export" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3687 ++#: ../sepolicy/sepolicy/sepolicy.glade:3688 + msgid "Relabel all files back to system defaults on reboot" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3724 +-#: ../sepolicy/sepolicy/sepolicy.glade:3825 +-#: ../sepolicy/sepolicy/sepolicy.glade:3889 +-#: ../sepolicy/sepolicy/sepolicy.glade:3952 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3725 ++#: ../sepolicy/sepolicy/sepolicy.glade:3826 ++#: ../sepolicy/sepolicy/sepolicy.glade:3890 ++#: ../sepolicy/sepolicy/sepolicy.glade:3953 ../sepolicy/sepolicy/gui.py:64 + msgid "Yes" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3741 +-#: ../sepolicy/sepolicy/sepolicy.glade:3843 +-#: ../sepolicy/sepolicy/sepolicy.glade:3906 +-#: ../sepolicy/sepolicy/sepolicy.glade:3969 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3742 ++#: ../sepolicy/sepolicy/sepolicy.glade:3844 ++#: ../sepolicy/sepolicy/sepolicy.glade:3907 ++#: ../sepolicy/sepolicy/sepolicy.glade:3970 ../sepolicy/sepolicy/gui.py:64 + msgid "No" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3782 ++#: ../sepolicy/sepolicy/sepolicy.glade:3783 + msgid "System Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3829 +-#: ../sepolicy/sepolicy/sepolicy.glade:3847 ++#: ../sepolicy/sepolicy/sepolicy.glade:3830 ++#: ../sepolicy/sepolicy/sepolicy.glade:3848 + msgid "" + "An unconfined domain is a process label that allows the process to do what " + "it wants, without SELinux interfering. Applications started at boot by the " +@@ -4368,13 +4421,13 @@ msgid "" + "unconfined_t from the users/login screens." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3865 ++#: ../sepolicy/sepolicy/sepolicy.glade:3866 + msgid "Disable ability to run unconfined system processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3893 +-#: ../sepolicy/sepolicy/sepolicy.glade:3910 +-#: ../sepolicy/sepolicy/sepolicy.glade:3973 ++#: ../sepolicy/sepolicy/sepolicy.glade:3894 ++#: ../sepolicy/sepolicy/sepolicy.glade:3911 ++#: ../sepolicy/sepolicy/sepolicy.glade:3974 + msgid "" + "An permissive domain is a process label that allows the process to do what " + "it wants, with SELinux only logging the denials, but not enforcing them. " +@@ -4383,184 +4436,202 @@ msgid "" + "allowed." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3928 ++#: ../sepolicy/sepolicy/sepolicy.glade:3929 + msgid "Disable all permissive processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3956 ++#: ../sepolicy/sepolicy/sepolicy.glade:3957 msgid "" -"A permissive domain is a process label that allows the process to do what it " -"wants, with SELinux only logging the denials, but not enforcing them. " @@ -5426,9 +11686,47 @@ index c565e50..e3cd32f 100644 "Usually permissive domains indicate experimental policy, disabling the " "module could cause SELinux to deny access to a domain, that should be " "allowed." -@@ -4476,8 +4481,8 @@ msgstr "" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4214 +-#: ../sepolicy/sepolicy/sepolicy.glade:3994 ++#: ../sepolicy/sepolicy/sepolicy.glade:3995 + msgid "Deny all processes from ptracing or debugging other processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4031 ++#: ../sepolicy/sepolicy/sepolicy.glade:4032 + msgid "" + "File equivalence cause the system to label content under the new path as if " + "it were under the equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4087 ++#: ../sepolicy/sepolicy/sepolicy.glade:4088 + msgid "Files Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4100 ++#: ../sepolicy/sepolicy/sepolicy.glade:4101 + msgid "...SELECT TO VIEW DATA..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4131 ++#: ../sepolicy/sepolicy/sepolicy.glade:4132 + msgid "Delete" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4147 ++#: ../sepolicy/sepolicy/sepolicy.glade:4148 + msgid "Modify" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4208 ++#: ../sepolicy/sepolicy/sepolicy.glade:4209 + msgid "Revert" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4213 ++#: ../sepolicy/sepolicy/sepolicy.glade:4214 msgid "" -"Revert button will launch a dialog window which allows you to revert changes " -"within the current transaction." @@ -5436,10 +11734,44 @@ index c565e50..e3cd32f 100644 +" within the current transaction." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 -@@ -4507,8 +4512,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:4225 ../sepolicy/sepolicy/gui.py:2379 ++#: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 + msgid "Update" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4439 +-#: ../sepolicy/sepolicy/sepolicy.glade:4230 ++#: ../sepolicy/sepolicy/sepolicy.glade:4231 + msgid "Commit all changes in your current transaction to the server." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4278 ++#: ../sepolicy/sepolicy/sepolicy.glade:4279 + msgid "Applications - Advanced Search" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4331 +-msgid "Installed" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:4383 ++#: ../sepolicy/sepolicy/sepolicy.glade:4344 + msgid "Process Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4424 ++#: ../sepolicy/sepolicy/sepolicy.glade:4385 + msgid "More Details" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4460 +-#: ../sepolicy/sepolicy/sepolicy.glade:4754 ++#: ../sepolicy/sepolicy/sepolicy.glade:4421 ++#: ../sepolicy/sepolicy/sepolicy.glade:4715 + msgid "Delete Modified File Labeling" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4478 ++#: ../sepolicy/sepolicy/sepolicy.glade:4439 msgid "" -"Select file labeling to delete. File labeling will be deleted when update is " -"applied." @@ -5447,57 +11779,514 @@ index c565e50..e3cd32f 100644 +" applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4486 -@@ -4544,8 +4549,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/sepolicy.glade:4867 - msgid "" --"Select login user mapping to delete. Login user mapping will be deleted when " --"update is applied." -+"Select login user mapping to delete. Login user mapping will be deleted when" -+" update is applied." +-#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4486 + msgid "SELinux File Label" msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4902 -@@ -4848,20 +4853,22 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1366 +-#: ../sepolicy/sepolicy/sepolicy.glade:4564 +-#: ../sepolicy/sepolicy/sepolicy.glade:4714 +-#: ../sepolicy/sepolicy/sepolicy.glade:4844 ++#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4675 ++#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:4940 ++#: ../sepolicy/sepolicy/sepolicy.glade:5289 + msgid "Save to Update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4604 ++#: ../sepolicy/sepolicy/sepolicy.glade:4565 + msgid "Delete Modified Ports" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4622 ++#: ../sepolicy/sepolicy/sepolicy.glade:4583 + msgid "Select ports to delete. Ports will be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4771 ++#: ../sepolicy/sepolicy/sepolicy.glade:4733 + msgid "" +-"Select file equivalence labeling to delete.File equivalence labeling will be " +-"deleted when update is applied." ++"Select file equivalence labeling to delete. File equivalence labeling will " ++"be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4887 ++#: ../sepolicy/sepolicy/sepolicy.glade:4849 ++#: ../sepolicy/sepolicy/sepolicy.glade:5198 ++msgid "Delete Modified Users Mapping." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4867 ++msgid "" ++"Select login user mapping to delete. Login user mapping will be deleted when" ++" update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4902 ++msgid "Login name" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4983 + msgid "More Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4914 ++#: ../sepolicy/sepolicy/sepolicy.glade:5010 + msgid "Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4973 ++#: ../sepolicy/sepolicy/sepolicy.glade:5069 + msgid "" + "Review the updates you have made before committing them to the system. To " + "reset an item, uncheck the checkbox. All items checked will be updated in " + "the system when you select update." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5036 ++#: ../sepolicy/sepolicy/sepolicy.glade:5132 + msgid "Action" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5062 ++#: ../sepolicy/sepolicy/sepolicy.glade:5158 + msgid "Apply" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5119 +-#: ../sepolicy/sepolicy/sepolicy.glade:5360 ++#: ../sepolicy/sepolicy/sepolicy.glade:5216 ++msgid "" ++"Select users mapping to delete.Users mapping will be deleted when update is " ++"applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5264 ++msgid "SELinux Username" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5349 + msgid "" + "Add User Roles. SELinux User Roles will be created when Update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5144 +-#: ../sepolicy/sepolicy/sepolicy.glade:5385 ++#: ../sepolicy/sepolicy/sepolicy.glade:5374 + msgid "SELinux User Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5258 +-#: ../sepolicy/sepolicy/sepolicy.glade:5499 ++#: ../sepolicy/sepolicy/sepolicy.glade:5489 + msgid "" + "Enter MLS/MCS Range for this SELinux User.\n" + "s0-s0:c1023" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5289 +-#: ../sepolicy/sepolicy/sepolicy.glade:5530 ++#: ../sepolicy/sepolicy/sepolicy.glade:5520 + msgid "" + "Specify the default level that you would like this SELinux user to login " + "with. Defaults to s0." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5293 +-#: ../sepolicy/sepolicy/sepolicy.glade:5534 ++#: ../sepolicy/sepolicy/sepolicy.glade:5524 + msgid "Enter Default Level for SELinux User to login with. Default s0" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Disable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Enable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:92 ++#: ../sepolicy/sepolicy/gui.py:94 + msgid "" + "\n" + "To change from Disabled to Enforcing mode\n" +@@ -4570,512 +4641,542 @@ msgid "" + " * Change the system mode to Enforcing\n" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:115 ++#: ../sepolicy/sepolicy/gui.py:488 + #, python-format + msgid "%s is not a valid domain" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:624 ++#: ../sepolicy/sepolicy/gui.py:636 + msgid "System Status: Disabled" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:722 ++#: ../sepolicy/sepolicy/gui.py:734 + msgid "Help: Start Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:726 ++#: ../sepolicy/sepolicy/gui.py:738 + msgid "Help: Booleans Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:732 ++#: ../sepolicy/sepolicy/gui.py:744 + msgid "Help: Executable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:735 ++#: ../sepolicy/sepolicy/gui.py:747 + msgid "Help: Writable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:738 ++#: ../sepolicy/sepolicy/gui.py:750 + msgid "Help: Application Types Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:743 ++#: ../sepolicy/sepolicy/gui.py:755 + msgid "Help: Outbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:746 ++#: ../sepolicy/sepolicy/gui.py:758 + msgid "Help: Inbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:752 ++#: ../sepolicy/sepolicy/gui.py:764 + msgid "Help: Transition from application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:755 ++#: ../sepolicy/sepolicy/gui.py:767 + msgid "Help: Transition into application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:758 ++#: ../sepolicy/sepolicy/gui.py:770 + msgid "Help: Transition application file Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:762 ++#: ../sepolicy/sepolicy/gui.py:774 + msgid "Help: Systems Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:766 ++#: ../sepolicy/sepolicy/gui.py:778 + msgid "Help: Lockdown Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:770 ++#: ../sepolicy/sepolicy/gui.py:782 + msgid "Help: Login Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:774 ++#: ../sepolicy/sepolicy/gui.py:786 + msgid "Help: SELinux User Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:778 ++#: ../sepolicy/sepolicy/gui.py:790 + msgid "Help: File Equivalence Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:922 ../sepolicy/sepolicy/gui.py:1211 +-#: ../sepolicy/sepolicy/gui.py:1644 ../sepolicy/sepolicy/gui.py:1885 +-#: ../sepolicy/sepolicy/gui.py:2698 ++#: ../sepolicy/sepolicy/gui.py:936 ../sepolicy/sepolicy/gui.py:1227 ++#: ../sepolicy/sepolicy/gui.py:1667 ../sepolicy/sepolicy/gui.py:1913 ++#: ../sepolicy/sepolicy/gui.py:2692 + msgid "More..." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1031 ++#: ../sepolicy/sepolicy/gui.py:1044 + #, python-format + msgid "File path used to enter the '%s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1032 ++#: ../sepolicy/sepolicy/gui.py:1045 + #, python-format + msgid "Files to which the '%s' domain can write." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1033 ++#: ../sepolicy/sepolicy/gui.py:1046 + #, python-format + msgid "Network Ports to which the '%s' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1034 ++#: ../sepolicy/sepolicy/gui.py:1047 + #, python-format + msgid "Network Ports to which the '%s' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1035 ++#: ../sepolicy/sepolicy/gui.py:1048 + #, python-format + msgid "File Types defined for the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1036 ++#: ../sepolicy/sepolicy/gui.py:1049 #, python-format msgid "" --"Add new port definition to which the '%(APP)s' domain is allowed to %(PERM)s." + "Display boolean information that can be used to modify the policy for the " + "'%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1037 ++#: ../sepolicy/sepolicy/gui.py:1050 + #, python-format + msgid "Display file type information that can be used by the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1038 ++#: ../sepolicy/sepolicy/gui.py:1051 + #, python-format + msgid "Display network ports to which the '%s' can connect or listen to." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1039 ++#: ../sepolicy/sepolicy/gui.py:1052 + #, python-format + msgid "Application Transitions Into '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1040 ++#: ../sepolicy/sepolicy/gui.py:1053 + #, python-format + msgid "Application Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1041 ++#: ../sepolicy/sepolicy/gui.py:1054 + #, python-format + msgid "File Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1042 ++#: ../sepolicy/sepolicy/gui.py:1055 + #, python-format + msgid "" + "Executables which will transition to the '%s', when executing a selected " + "domains entrypoint." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1043 ++#: ../sepolicy/sepolicy/gui.py:1056 + #, python-format + msgid "" + "Executables which will transition to a different domain, when the '%s' " + "executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1044 ++#: ../sepolicy/sepolicy/gui.py:1057 + #, python-format + msgid "Files by '%s' will transitions to a different label." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1045 ++#: ../sepolicy/sepolicy/gui.py:1058 + #, python-format + msgid "Display applications that can transition into or out of the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1149 ++#: ../sepolicy/sepolicy/gui.py:1166 + msgid "MISSING FILE PATH" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1281 ../sepolicy/sepolicy/gui.py:1283 + msgid "Boolean section." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ++#: ../sepolicy/sepolicy/gui.py:1281 + msgid "To disable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1283 + msgid "To enable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1324 ++#: ../sepolicy/sepolicy/gui.py:1340 + msgid "executable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1327 ++#: ../sepolicy/sepolicy/gui.py:1343 + msgid "writable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1330 ++#: ../sepolicy/sepolicy/gui.py:1346 + msgid "application" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1331 ++#: ../sepolicy/sepolicy/gui.py:1347 + #, python-format +-msgid "Add new %s file path for '%s' domains." ++msgid "Add new %(TYPE)s file path for '%(DOMAIN)s' domains." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1332 ++#: ../sepolicy/sepolicy/gui.py:1348 + #, python-format +-msgid "Delete modified %s file paths for '%s' domain." ++msgid "Delete %(TYPE)s file paths for '%(DOMAIN)s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1333 ++#: ../sepolicy/sepolicy/gui.py:1349 + #, python-format + msgid "" +-"Modify selected modified %s file path for '%s' domain. Only bolded items in " +-"the list can be selected, this indicates they were modified previously." ++"Modify %(TYPE)s file path for '%(DOMAIN)s' domain. Only bolded items in the " ++"list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1345 ++#: ../sepolicy/sepolicy/gui.py:1361 + msgid "connect" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1348 ++#: ../sepolicy/sepolicy/gui.py:1364 + msgid "listen for inbound connections" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1350 ++#: ../sepolicy/sepolicy/gui.py:1366 + #, python-format +-msgid "Add new port definition to which the '%s' domains is allowed to %s." ++msgid "" +"Add new port definition to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1367 +-#: ../sepolicy/sepolicy/gui.py:1351 ++#: ../sepolicy/sepolicy/gui.py:1367 #, python-format msgid "" --"Delete modified port definitions to which the '%(APP)s' domain is allowed to " --"%(PERM)s." +-"Delete modified port definitions to which the '%s' domain is allowed to %s." +"Delete modified port definitions to which the '%(APP)s' domain is allowed to" +" %(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1368 +-#: ../sepolicy/sepolicy/gui.py:1352 ++#: ../sepolicy/sepolicy/gui.py:1368 #, python-format - msgid "" --"Modify port definitions to which the '%(APP)s' domain is allowed to %(PERM)s." +-msgid "Modify port definitions to which the '%s' domain is allowed to %s." ++msgid "" +"Modify port definitions to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1397 -@@ -4909,7 +4916,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1381 ++#: ../sepolicy/sepolicy/gui.py:1397 + msgid "Add new SELinux User/Role definition." + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1458 +-#: ../sepolicy/sepolicy/gui.py:1382 ++#: ../sepolicy/sepolicy/gui.py:1398 + msgid "Delete modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1383 ++#: ../sepolicy/sepolicy/gui.py:1399 + msgid "Modify selected modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1390 ++#: ../sepolicy/sepolicy/gui.py:1406 + msgid "Add new Login Mapping definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1391 ++#: ../sepolicy/sepolicy/gui.py:1407 + msgid "Delete modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1392 ++#: ../sepolicy/sepolicy/gui.py:1408 + msgid "Modify selected modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1399 ++#: ../sepolicy/sepolicy/gui.py:1415 + msgid "Add new File Equivalence definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1400 ++#: ../sepolicy/sepolicy/gui.py:1416 + msgid "Delete modified File Equivalence definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1401 ++#: ../sepolicy/sepolicy/gui.py:1417 + msgid "" + "Modify selected modified File Equivalence definitions. Only bolded items in " + "the list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1429 ++#: ../sepolicy/sepolicy/gui.py:1445 + #, python-format + msgid "Boolean %s Allow Rules" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1442 ++#: ../sepolicy/sepolicy/gui.py:1458 #, python-format -msgid "Add Network Port for %s. Ports will be created when update is applied." +msgid "" +"Add Network Port for %s. Ports will be created when update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1459 -@@ -4920,7 +4928,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1464 +-#: ../sepolicy/sepolicy/gui.py:1443 ++#: ../sepolicy/sepolicy/gui.py:1459 + #, python-format + msgid "Add Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1448 ++#: ../sepolicy/sepolicy/gui.py:1464 #, python-format msgid "" -"Add File Labeling for %s. File labels will be created when update is applied." @@ -5505,40 +12294,312 @@ index c565e50..e3cd32f 100644 +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 -@@ -4929,7 +4938,8 @@ msgid "Add File Labeling for %s" +-#: ../sepolicy/sepolicy/gui.py:1449 ../sepolicy/sepolicy/gui.py:1500 ++#: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 + #, python-format + msgid "Add File Labeling for %s" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1475 +-#: ../sepolicy/sepolicy/gui.py:1459 -msgid "Add Login Mapping. User Mapping will be created when Update is applied." ++#: ../sepolicy/sepolicy/gui.py:1475 +msgid "" +"Add Login Mapping. User Mapping will be created when Update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1476 -@@ -4948,7 +4958,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1460 ++#: ../sepolicy/sepolicy/gui.py:1476 + msgid "Add Login Mapping" + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1489 +-#: ../sepolicy/sepolicy/gui.py:1465 ++#: ../sepolicy/sepolicy/gui.py:1481 + msgid "" + "Add SELinux User Role. SELinux user roles will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1466 ++#: ../sepolicy/sepolicy/gui.py:1482 + msgid "Add SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1473 ++#: ../sepolicy/sepolicy/gui.py:1489 msgid "" -"Add File Equivalency Mapping. Mapping will be created when update is applied." +"Add File Equivalency Mapping. Mapping will be created when update is " +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1490 -@@ -4964,8 +4975,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/gui.py:1573 - msgid "" --"Modify SELinux User Role. SELinux user roles will be modified when update is " --"applied." -+"Modify SELinux User Role. SELinux user roles will be modified when update is" -+" applied." +-#: ../sepolicy/sepolicy/gui.py:1474 ++#: ../sepolicy/sepolicy/gui.py:1490 + msgid "Add SELinux File Equivalency" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1574 -@@ -5178,10 +5189,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:1499 ++#: ../sepolicy/sepolicy/gui.py:1517 + #, python-format + msgid "" + "Modify File Labeling for %s. File labels will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1566 ++#: ../sepolicy/sepolicy/gui.py:1573 ++msgid "" ++"Modify SELinux User Role. SELinux user roles will be modified when update is" ++" applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1574 ++msgid "Modify SELinux Users" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1582 ++msgid "" ++"Modify Login Mapping. Login Mapping will be modified when Update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1583 ++msgid "Modify Login Mapping" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1589 + msgid "" + "Modify File Equivalency Mapping. Mapping will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1567 ++#: ../sepolicy/sepolicy/gui.py:1590 + msgid "Modify SELinux File Equivalency" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1652 ++#: ../sepolicy/sepolicy/gui.py:1675 + #, python-format + msgid "" + "Modify Network Port for %s. Ports will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1653 ++#: ../sepolicy/sepolicy/gui.py:1676 + #, python-format + msgid "Modify Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1866 ++#: ../sepolicy/sepolicy/gui.py:1894 + #, python-format + msgid "The entry '%s' is not a valid path. Paths must begin with a '/'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1879 ++#: ../sepolicy/sepolicy/gui.py:1907 + msgid "Port number must be between 1 and 65536" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2146 ++#: ../sepolicy/sepolicy/gui.py:2183 + #, python-format + msgid "SELinux name: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2157 ++#: ../sepolicy/sepolicy/gui.py:2194 + #, python-format + msgid "Add file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2159 ++#: ../sepolicy/sepolicy/gui.py:2196 + #, python-format + msgid "Delete file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2161 ++#: ../sepolicy/sepolicy/gui.py:2198 + #, python-format + msgid "Modify file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2165 ++#: ../sepolicy/sepolicy/gui.py:2202 + #, python-format + msgid "File path: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2168 ++#: ../sepolicy/sepolicy/gui.py:2205 + #, python-format + msgid "File class: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2171 ../sepolicy/sepolicy/gui.py:2195 ++#: ../sepolicy/sepolicy/gui.py:2208 ../sepolicy/sepolicy/gui.py:2232 + #, python-format + msgid "SELinux file type: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2180 ++#: ../sepolicy/sepolicy/gui.py:2217 + #, python-format + msgid "Add ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2182 ++#: ../sepolicy/sepolicy/gui.py:2219 + #, python-format + msgid "Delete ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2184 ++#: ../sepolicy/sepolicy/gui.py:2221 + #, python-format + msgid "Modify ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2187 ++#: ../sepolicy/sepolicy/gui.py:2224 + #, python-format + msgid "Network ports: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2190 ++#: ../sepolicy/sepolicy/gui.py:2227 + #, python-format + msgid "Network protocol: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2204 ++#: ../sepolicy/sepolicy/gui.py:2241 + msgid "Add user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2206 ++#: ../sepolicy/sepolicy/gui.py:2243 + msgid "Delete user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2208 ++#: ../sepolicy/sepolicy/gui.py:2245 + msgid "Modify user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2211 ++#: ../sepolicy/sepolicy/gui.py:2248 + #, python-format + msgid "SELinux User : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2216 ++#: ../sepolicy/sepolicy/gui.py:2253 + #, python-format + msgid "Roles: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2220 ../sepolicy/sepolicy/gui.py:2245 ++#: ../sepolicy/sepolicy/gui.py:2257 ../sepolicy/sepolicy/gui.py:2282 + #, python-format + msgid "MLS/MCS Range: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2229 ++#: ../sepolicy/sepolicy/gui.py:2266 + msgid "Add login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2231 ++#: ../sepolicy/sepolicy/gui.py:2268 + msgid "Delete login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2233 ++#: ../sepolicy/sepolicy/gui.py:2270 + msgid "Modify login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2237 ++#: ../sepolicy/sepolicy/gui.py:2274 + #, python-format +-msgid "Linux User : %s" ++msgid "Login Name : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2241 ++#: ../sepolicy/sepolicy/gui.py:2278 + #, python-format + msgid "SELinux User: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2254 ++#: ../sepolicy/sepolicy/gui.py:2291 + msgid "Add file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2256 ++#: ../sepolicy/sepolicy/gui.py:2293 + msgid "Delete file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2258 ++#: ../sepolicy/sepolicy/gui.py:2295 + msgid "Modify file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2262 ++#: ../sepolicy/sepolicy/gui.py:2299 + #, python-format + msgid "File path : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2266 ++#: ../sepolicy/sepolicy/gui.py:2303 + #, python-format + msgid "Equivalence: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2369 ++#: ../sepolicy/sepolicy/gui.py:2406 + #, python-format +-msgid "Run restorecon on %s to change its type from %s to the default %s?" ++msgid "" ++"Run restorecon on %(PATH)s to change its type from %(CUR_CONTEXT)s to the " ++"default %(DEF_CONTEXT)s?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2381 ++#: ../sepolicy/sepolicy/gui.py:2418 + msgid "Update Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2383 ++#: ../sepolicy/sepolicy/gui.py:2420 + msgid "Revert Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2556 ++#: ../sepolicy/sepolicy/gui.py:2547 + msgid "System Status: Enforcing" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2558 ++#: ../sepolicy/sepolicy/gui.py:2549 + msgid "System Status: Permissive" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2749 ++#: ../sepolicy/sepolicy/gui.py:2743 + msgid "" + "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 " +@@ -5085,15 +5186,13 @@ msgid "" + "wish to continue?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 msgid "" "You are attempting to close the application without applying your changes.\n" -" * To apply changes you have made during this session, click No and " @@ -5549,9 +12610,12 @@ index c565e50..e3cd32f 100644 +" * To leave the application without applying your changes, click Yes. All changes that you have made during this session will be lost." msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 + msgid "Loss of data Dialog" + msgstr "" diff --git a/policycoreutils/po/af_ZA.po b/policycoreutils/po/af_ZA.po -index ce12bbe..6409e2a 100644 +index fb0b1d9..6409e2a 100644 --- a/policycoreutils/po/af_ZA.po +++ b/policycoreutils/po/af_ZA.po @@ -1,21 +1,20 @@ @@ -5565,13 +12629,15 @@ index ce12bbe..6409e2a 100644 msgstr "" "Project-Id-Version: Policycoreutils\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2014-01-03 16:04-0500\n" --"PO-Revision-Date: 2013-12-20 13:58+0000\n" -+"PO-Revision-Date: 2014-01-03 21:04+0000\n" - "Last-Translator: dwalsh \n" +-"POT-Creation-Date: 2013-10-10 16:04-0400\n" +-"PO-Revision-Date: 2012-03-30 18:14+0000\n" +-"Last-Translator: FULL NAME \n" -"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/" -"fedora/language/af_ZA/)\n" -"Language: af_ZA\n" ++"POT-Creation-Date: 2014-01-03 16:04-0500\n" ++"PO-Revision-Date: 2014-01-03 21:04+0000\n" ++"Last-Translator: dwalsh \n" +"Language-Team: Afrikaans (South Africa) (http://www.transifex.com/projects/p/fedora/language/af_ZA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5580,7 +12646,1327 @@ index ce12bbe..6409e2a 100644 "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../run_init/run_init.c:67 -@@ -1585,8 +1584,8 @@ msgstr "" +@@ -87,96 +86,101 @@ msgstr "" + msgid "To make this policy package active, execute:" + msgstr "" + +-#: ../semanage/seobject.py:210 ++#: ../semanage/seobject/__init__.py:220 + msgid "Could not create semanage handle" + msgstr "" + +-#: ../semanage/seobject.py:218 ++#: ../semanage/seobject/__init__.py:228 + msgid "SELinux policy is not managed or store cannot be accessed." + msgstr "" + +-#: ../semanage/seobject.py:223 ++#: ../semanage/seobject/__init__.py:233 + msgid "Cannot read policy store." + msgstr "" + +-#: ../semanage/seobject.py:228 ++#: ../semanage/seobject/__init__.py:238 + msgid "Could not establish semanage connection" + msgstr "" + +-#: ../semanage/seobject.py:233 ++#: ../semanage/seobject/__init__.py:243 + msgid "Could not test MLS enabled status" + msgstr "" + +-#: ../semanage/seobject.py:239 ../semanage/seobject.py:254 ++#: ../semanage/seobject/__init__.py:249 ../semanage/seobject/__init__.py:264 + msgid "Not yet implemented" + msgstr "" + +-#: ../semanage/seobject.py:243 ++#: ../semanage/seobject/__init__.py:253 + msgid "Semanage transaction already in progress" + msgstr "" + +-#: ../semanage/seobject.py:252 ++#: ../semanage/seobject/__init__.py:262 + msgid "Could not start semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:264 ++#: ../semanage/seobject/__init__.py:274 + msgid "Could not commit semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:269 ++#: ../semanage/seobject/__init__.py:279 + msgid "Semanage transaction not in progress" + msgstr "" + +-#: ../semanage/seobject.py:281 ../semanage/seobject.py:376 ++#: ../semanage/seobject/__init__.py:291 ../semanage/seobject/__init__.py:386 + msgid "Could not list SELinux modules" + msgstr "" + +-#: ../semanage/seobject.py:300 ++#: ../semanage/seobject/__init__.py:310 + msgid "Modules Name" + msgstr "" + +-#: ../semanage/seobject.py:300 ../gui/modulesPage.py:63 ++#: ../semanage/seobject/__init__.py:310 ../gui/modulesPage.py:63 + msgid "Version" + msgstr "" + +-#: ../semanage/seobject.py:303 ../gui/statusPage.py:75 +-#: ../sepolicy/sepolicy/sepolicy.glade:3430 ++#: ../semanage/seobject/__init__.py:313 ../gui/statusPage.py:71 ++#: ../sepolicy/sepolicy/sepolicy.glade:3431 + msgid "Disabled" + msgstr "" + +-#: ../semanage/seobject.py:312 ++#: ../semanage/seobject/__init__.py:322 + #, python-format + msgid "Module does not exists %s " + msgstr "" + +-#: ../semanage/seobject.py:322 ++#: ../semanage/seobject/__init__.py:332 + #, python-format + msgid "Could not disable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:333 ++#: ../semanage/seobject/__init__.py:343 + #, python-format + msgid "Could not enable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:348 ++#: ../semanage/seobject/__init__.py:358 + #, python-format + msgid "Could not remove module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:363 ++#: ../semanage/seobject/__init__.py:373 + msgid "dontaudit requires either 'on' or 'off'" + msgstr "" + +-#: ../semanage/seobject.py:391 ++#: ../semanage/seobject/__init__.py:402 ++msgid "Customized Permissive Types" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:410 + msgid "Builtin Permissive Types" + msgstr "" + +-#: ../semanage/seobject.py:401 +-msgid "Customized Permissive Types" ++#: ../semanage/seobject/__init__.py:419 ++#, python-format ++msgid "%s is not a domain type" + msgstr "" + +-#: ../semanage/seobject.py:410 ++#: ../semanage/seobject/__init__.py:424 + msgid "" + "The sepolgen python module is required to setup permissive domains.\n" + "In some distributions it is included in the policycoreutils-devel patckage.\n" +@@ -184,810 +188,825 @@ msgid "" + "Or similar for your distro." + msgstr "" + +-#: ../semanage/seobject.py:447 ++#: ../semanage/seobject/__init__.py:461 + #, python-format + msgid "Could not set permissive domain %s (module installation failed)" + msgstr "" + +-#: ../semanage/seobject.py:453 ++#: ../semanage/seobject/__init__.py:467 + #, python-format + msgid "Could not remove permissive domain %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:488 ../semanage/seobject.py:562 +-#: ../semanage/seobject.py:608 ../semanage/seobject.py:730 +-#: ../semanage/seobject.py:760 ../semanage/seobject.py:827 +-#: ../semanage/seobject.py:884 ../semanage/seobject.py:1144 +-#: ../semanage/seobject.py:1879 ../semanage/seobject.py:1942 +-#: ../semanage/seobject.py:1961 ../semanage/seobject.py:2084 +-#: ../semanage/seobject.py:2135 ++#: ../semanage/seobject/__init__.py:501 ../semanage/seobject/__init__.py:575 ++#: ../semanage/seobject/__init__.py:621 ../semanage/seobject/__init__.py:743 ++#: ../semanage/seobject/__init__.py:773 ../semanage/seobject/__init__.py:839 ++#: ../semanage/seobject/__init__.py:896 ../semanage/seobject/__init__.py:1156 ++#: ../semanage/seobject/__init__.py:1891 ../semanage/seobject/__init__.py:1954 ++#: ../semanage/seobject/__init__.py:1973 ../semanage/seobject/__init__.py:2096 ++#: ../semanage/seobject/__init__.py:2147 + #, python-format + msgid "Could not create a key for %s" + msgstr "" + +-#: ../semanage/seobject.py:492 ../semanage/seobject.py:566 +-#: ../semanage/seobject.py:612 ../semanage/seobject.py:618 ++#: ../semanage/seobject/__init__.py:505 ../semanage/seobject/__init__.py:579 ++#: ../semanage/seobject/__init__.py:625 ../semanage/seobject/__init__.py:631 + #, python-format + msgid "Could not check if login mapping for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:501 ++#: ../semanage/seobject/__init__.py:514 + #, python-format + msgid "Linux Group %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:506 ++#: ../semanage/seobject/__init__.py:519 + #, python-format + msgid "Linux User %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:510 ++#: ../semanage/seobject/__init__.py:523 + #, python-format + msgid "Could not create login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:514 ../semanage/seobject.py:775 ++#: ../semanage/seobject/__init__.py:527 ../semanage/seobject/__init__.py:788 + #, python-format + msgid "Could not set name for %s" + msgstr "" + +-#: ../semanage/seobject.py:519 ../semanage/seobject.py:785 ++#: ../semanage/seobject/__init__.py:532 ../semanage/seobject/__init__.py:798 + #, python-format + msgid "Could not set MLS range for %s" + msgstr "" + +-#: ../semanage/seobject.py:523 ++#: ../semanage/seobject/__init__.py:536 + #, python-format + msgid "Could not set SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:527 ++#: ../semanage/seobject/__init__.py:540 + #, python-format + msgid "Could not add login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:545 ++#: ../semanage/seobject/__init__.py:558 + msgid "Requires seuser or serange" + msgstr "" + +-#: ../semanage/seobject.py:568 ../semanage/seobject.py:614 ++#: ../semanage/seobject/__init__.py:581 ../semanage/seobject/__init__.py:627 + #, python-format + msgid "Login mapping for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:572 ++#: ../semanage/seobject/__init__.py:585 + #, python-format + msgid "Could not query seuser for %s" + msgstr "" + +-#: ../semanage/seobject.py:586 ++#: ../semanage/seobject/__init__.py:599 + #, python-format + msgid "Could not modify login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:620 ++#: ../semanage/seobject/__init__.py:633 + #, python-format + msgid "Login mapping for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:624 ++#: ../semanage/seobject/__init__.py:637 + #, python-format + msgid "Could not delete login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:646 ../semanage/seobject.py:679 +-#: ../semanage/seobject.py:927 ++#: ../semanage/seobject/__init__.py:659 ../semanage/seobject/__init__.py:692 ++#: ../semanage/seobject/__init__.py:939 + msgid "Could not list login mappings" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 + #: ../gui/system-config-selinux.glade:100 +-#: ../sepolicy/sepolicy/sepolicy.glade:1166 +-#: ../sepolicy/sepolicy/sepolicy.glade:3155 ++#: ../sepolicy/sepolicy/sepolicy.glade:1162 ++#: ../sepolicy/sepolicy/sepolicy.glade:3156 + msgid "Login Name" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 + #: ../gui/system-config-selinux.glade:128 + #: ../gui/system-config-selinux.glade:915 +-#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:44 +-#: ../sepolicy/sepolicy/sepolicy.glade:1192 +-#: ../sepolicy/sepolicy/sepolicy.glade:3173 +-#: ../sepolicy/sepolicy/sepolicy.glade:3259 ++#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:41 ++#: ../sepolicy/sepolicy/sepolicy.glade:1188 ++#: ../sepolicy/sepolicy/sepolicy.glade:3174 ++#: ../sepolicy/sepolicy/sepolicy.glade:3260 ++#: ../sepolicy/sepolicy/sepolicy.glade:4915 + msgid "SELinux User" + msgstr "" + +-#: ../semanage/seobject.py:707 ../gui/system-config-selinux.glade:156 ++#: ../semanage/seobject/__init__.py:720 ../gui/system-config-selinux.glade:156 + #: ../gui/system-config-selinux.glade:943 + msgid "MLS/MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:707 ++#: ../semanage/seobject/__init__.py:720 + msgid "Service" + msgstr "" + +-#: ../semanage/seobject.py:733 ../semanage/seobject.py:764 +-#: ../semanage/seobject.py:831 ../semanage/seobject.py:888 +-#: ../semanage/seobject.py:894 ++#: ../semanage/seobject/__init__.py:746 ../semanage/seobject/__init__.py:777 ++#: ../semanage/seobject/__init__.py:843 ../semanage/seobject/__init__.py:900 ++#: ../semanage/seobject/__init__.py:906 + #, python-format + msgid "Could not check if SELinux user %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:736 ../semanage/seobject.py:837 +-#: ../semanage/seobject.py:900 ++#: ../semanage/seobject/__init__.py:749 ../semanage/seobject/__init__.py:849 ++#: ../semanage/seobject/__init__.py:912 + #, python-format + msgid "Could not query user for %s" + msgstr "" + +-#: ../semanage/seobject.py:756 ++#: ../semanage/seobject/__init__.py:769 + #, python-format + msgid "You must add at least one role for %s" + msgstr "" + +-#: ../semanage/seobject.py:771 ++#: ../semanage/seobject/__init__.py:784 + #, python-format + msgid "Could not create SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:780 ++#: ../semanage/seobject/__init__.py:793 + #, python-format +-msgid "Could not add role %s for %s" ++msgid "Could not add role %(ROLE)s for %(NAME)s" + msgstr "" + +-#: ../semanage/seobject.py:789 ++#: ../semanage/seobject/__init__.py:802 + #, python-format + msgid "Could not set MLS level for %s" + msgstr "" + +-#: ../semanage/seobject.py:792 ++#: ../semanage/seobject/__init__.py:805 + #, python-format +-msgid "Could not add prefix %s for %s" ++msgid "Could not add prefix %(PREFIX)s for %(ROLE)s" + msgstr "" + +-#: ../semanage/seobject.py:795 ++#: ../semanage/seobject/__init__.py:808 + #, python-format + msgid "Could not extract key for %s" + msgstr "" + +-#: ../semanage/seobject.py:799 ++#: ../semanage/seobject/__init__.py:812 + #, python-format + msgid "Could not add SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:821 ++#: ../semanage/seobject/__init__.py:833 + msgid "Requires prefix, roles, level or range" + msgstr "" + +-#: ../semanage/seobject.py:823 ++#: ../semanage/seobject/__init__.py:835 + msgid "Requires prefix or roles" + msgstr "" + +-#: ../semanage/seobject.py:833 ../semanage/seobject.py:890 ++#: ../semanage/seobject/__init__.py:845 ../semanage/seobject/__init__.py:902 + #, python-format + msgid "SELinux user %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:862 ++#: ../semanage/seobject/__init__.py:874 + #, python-format + msgid "Could not modify SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:896 ++#: ../semanage/seobject/__init__.py:908 + #, python-format + msgid "SELinux user %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:907 ++#: ../semanage/seobject/__init__.py:919 + #, python-format + msgid "Could not delete SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:945 ++#: ../semanage/seobject/__init__.py:957 + msgid "Could not list SELinux users" + msgstr "" + +-#: ../semanage/seobject.py:951 ++#: ../semanage/seobject/__init__.py:963 + #, python-format + msgid "Could not list roles for user %s" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "Labeling" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "MLS/" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "Prefix" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Level" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 +-#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59 +-#: ../sepolicy/sepolicy/sepolicy.glade:3279 +-#: ../sepolicy/sepolicy/sepolicy.glade:5170 +-#: ../sepolicy/sepolicy/sepolicy.glade:5411 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 ++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:56 ++#: ../sepolicy/sepolicy/sepolicy.glade:3280 ++#: ../sepolicy/sepolicy/sepolicy.glade:5251 ++#: ../sepolicy/sepolicy/sepolicy.glade:5400 + msgid "SELinux Roles" + msgstr "" + +-#: ../semanage/seobject.py:1002 ++#: ../semanage/seobject/__init__.py:1014 + msgid "Protocol udp or tcp is required" + msgstr "" + +-#: ../semanage/seobject.py:1004 ++#: ../semanage/seobject/__init__.py:1016 + msgid "Port is required" + msgstr "" + +-#: ../semanage/seobject.py:1014 ++#: ../semanage/seobject/__init__.py:1026 + msgid "Invalid Port" + msgstr "" + +-#: ../semanage/seobject.py:1018 ++#: ../semanage/seobject/__init__.py:1030 + #, python-format +-msgid "Could not create a key for %s/%s" ++msgid "Could not create a key for %(PROTOTYPE)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1029 ++#: ../semanage/seobject/__init__.py:1041 + msgid "Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1032 ../semanage/seobject.py:1096 +-#: ../semanage/seobject.py:1873 ++#: ../semanage/seobject/__init__.py:1044 ../semanage/seobject/__init__.py:1108 ++#: ../semanage/seobject/__init__.py:1885 + #, python-format + msgid "Type %s is invalid, must be a port type" + msgstr "" + +-#: ../semanage/seobject.py:1040 ../semanage/seobject.py:1102 +-#: ../semanage/seobject.py:1157 ../semanage/seobject.py:1163 ++#: ../semanage/seobject/__init__.py:1052 ../semanage/seobject/__init__.py:1169 ++#: ../semanage/seobject/__init__.py:1175 + #, python-format +-msgid "Could not check if port %s/%s is defined" ++msgid "Could not check if port %(PROTOCOL)s/%(PORT)s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1042 ++#: ../semanage/seobject/__init__.py:1054 + #, python-format +-msgid "Port %s/%s already defined" ++msgid "Port %(PROTOCOL)s/%(PORT)s already defined" + msgstr "" + +-#: ../semanage/seobject.py:1046 ++#: ../semanage/seobject/__init__.py:1058 + #, python-format +-msgid "Could not create port for %s/%s" ++msgid "Could not create port for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1052 ++#: ../semanage/seobject/__init__.py:1064 + #, python-format +-msgid "Could not create context for %s/%s" ++msgid "Could not create context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1056 ++#: ../semanage/seobject/__init__.py:1068 + #, python-format +-msgid "Could not set user in port context for %s/%s" ++msgid "Could not set user in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1060 ++#: ../semanage/seobject/__init__.py:1072 + #, python-format +-msgid "Could not set role in port context for %s/%s" ++msgid "Could not set role in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1064 ++#: ../semanage/seobject/__init__.py:1076 + #, python-format +-msgid "Could not set type in port context for %s/%s" ++msgid "Could not set type in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1069 ++#: ../semanage/seobject/__init__.py:1081 + #, python-format +-msgid "Could not set mls fields in port context for %s/%s" ++msgid "Could not set mls fields in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1073 ++#: ../semanage/seobject/__init__.py:1085 + #, python-format +-msgid "Could not set port context for %s/%s" ++msgid "Could not set port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1077 ++#: ../semanage/seobject/__init__.py:1089 + #, python-format +-msgid "Could not add port %s/%s" ++msgid "Could not add port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1367 +-#: ../semanage/seobject.py:1566 ++#: ../semanage/seobject/__init__.py:1103 ../semanage/seobject/__init__.py:1379 ++#: ../semanage/seobject/__init__.py:1578 + msgid "Requires setype or serange" + msgstr "" + +-#: ../semanage/seobject.py:1093 ++#: ../semanage/seobject/__init__.py:1105 + msgid "Requires setype" + msgstr "" + +-#: ../semanage/seobject.py:1104 ../semanage/seobject.py:1159 ++#: ../semanage/seobject/__init__.py:1114 ++#, python-format ++msgid "Could not check if port @%(PROTOCOL)s/%(PORT)s is defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1116 + #, python-format +-msgid "Port %s/%s is not defined" ++msgid "Port @%(PROTOCOL)s/%(PORT)s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1108 ++#: ../semanage/seobject/__init__.py:1120 + #, python-format +-msgid "Could not query port %s/%s" ++msgid "Could not query port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1119 ++#: ../semanage/seobject/__init__.py:1131 + #, python-format +-msgid "Could not modify port %s/%s" ++msgid "Could not modify port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1132 ++#: ../semanage/seobject/__init__.py:1144 + msgid "Could not list the ports" + msgstr "" + +-#: ../semanage/seobject.py:1148 ++#: ../semanage/seobject/__init__.py:1160 + #, python-format + msgid "Could not delete the port %s" + msgstr "" + +-#: ../semanage/seobject.py:1165 ++#: ../semanage/seobject/__init__.py:1171 ++#, python-format ++msgid "Port %(PROTOCOL)s/%(PORT)s is not defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1177 + #, python-format +-msgid "Port %s/%s is defined in policy, cannot be deleted" ++msgid "Port %(PROTOCOL)s/%(PORT)s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1169 ++#: ../semanage/seobject/__init__.py:1181 + #, python-format +-msgid "Could not delete port %s/%s" ++msgid "Could not delete port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1185 ../semanage/seobject.py:1207 ++#: ../semanage/seobject/__init__.py:1197 ../semanage/seobject/__init__.py:1219 + msgid "Could not list ports" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../sepolicy/sepolicy/sepolicy.glade:2675 +-#: ../sepolicy/sepolicy/sepolicy.glade:2773 +-#: ../sepolicy/sepolicy/sepolicy.glade:4687 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2676 ++#: ../sepolicy/sepolicy/sepolicy.glade:2774 ++#: ../sepolicy/sepolicy/sepolicy.glade:4648 + msgid "SELinux Port Type" + msgstr "" + +-#: ../semanage/seobject.py:1246 ++#: ../semanage/seobject/__init__.py:1258 + msgid "Proto" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../gui/system-config-selinux.glade:335 +-#: ../sepolicy/sepolicy/sepolicy.glade:1417 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../gui/system-config-selinux.glade:335 ++#: ../sepolicy/sepolicy/sepolicy.glade:1413 + msgid "Port Number" + msgstr "" + +-#: ../semanage/seobject.py:1270 ++#: ../semanage/seobject/__init__.py:1282 + msgid "Node Address is required" + msgstr "" + +-#: ../semanage/seobject.py:1285 ++#: ../semanage/seobject/__init__.py:1297 + msgid "Unknown or missing protocol" + msgstr "" + +-#: ../semanage/seobject.py:1299 ++#: ../semanage/seobject/__init__.py:1311 + msgid "SELinux node type is required" + msgstr "" + +-#: ../semanage/seobject.py:1302 ../semanage/seobject.py:1370 ++#: ../semanage/seobject/__init__.py:1314 ../semanage/seobject/__init__.py:1382 + #, python-format + msgid "Type %s is invalid, must be a node type" + msgstr "" + +-#: ../semanage/seobject.py:1306 ../semanage/seobject.py:1374 +-#: ../semanage/seobject.py:1410 ../semanage/seobject.py:1508 +-#: ../semanage/seobject.py:1570 ../semanage/seobject.py:1604 +-#: ../semanage/seobject.py:1818 ++#: ../semanage/seobject/__init__.py:1318 ../semanage/seobject/__init__.py:1386 ++#: ../semanage/seobject/__init__.py:1422 ../semanage/seobject/__init__.py:1520 ++#: ../semanage/seobject/__init__.py:1582 ../semanage/seobject/__init__.py:1616 ++#: ../semanage/seobject/__init__.py:1830 + #, python-format + msgid "Could not create key for %s" + msgstr "" + +-#: ../semanage/seobject.py:1308 ../semanage/seobject.py:1378 +-#: ../semanage/seobject.py:1414 ../semanage/seobject.py:1420 ++#: ../semanage/seobject/__init__.py:1320 ../semanage/seobject/__init__.py:1390 ++#: ../semanage/seobject/__init__.py:1426 ../semanage/seobject/__init__.py:1432 + #, python-format + msgid "Could not check if addr %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1317 ++#: ../semanage/seobject/__init__.py:1329 + #, python-format + msgid "Could not create addr for %s" + msgstr "" + +-#: ../semanage/seobject.py:1323 ../semanage/seobject.py:1524 +-#: ../semanage/seobject.py:1767 ++#: ../semanage/seobject/__init__.py:1335 ../semanage/seobject/__init__.py:1536 ++#: ../semanage/seobject/__init__.py:1779 + #, python-format + msgid "Could not create context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1327 ++#: ../semanage/seobject/__init__.py:1339 + #, python-format + msgid "Could not set mask for %s" + msgstr "" + +-#: ../semanage/seobject.py:1331 ++#: ../semanage/seobject/__init__.py:1343 + #, python-format + msgid "Could not set user in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1335 ++#: ../semanage/seobject/__init__.py:1347 + #, python-format + msgid "Could not set role in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1339 ++#: ../semanage/seobject/__init__.py:1351 + #, python-format + msgid "Could not set type in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1344 ++#: ../semanage/seobject/__init__.py:1356 + #, python-format + msgid "Could not set mls fields in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1348 ++#: ../semanage/seobject/__init__.py:1360 + #, python-format + msgid "Could not set addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1352 ++#: ../semanage/seobject/__init__.py:1364 + #, python-format + msgid "Could not add addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1380 ../semanage/seobject.py:1416 ++#: ../semanage/seobject/__init__.py:1392 ../semanage/seobject/__init__.py:1428 + #, python-format + msgid "Addr %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1384 ++#: ../semanage/seobject/__init__.py:1396 + #, python-format + msgid "Could not query addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1394 ++#: ../semanage/seobject/__init__.py:1406 + #, python-format + msgid "Could not modify addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1422 ++#: ../semanage/seobject/__init__.py:1434 + #, python-format + msgid "Addr %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1426 ++#: ../semanage/seobject/__init__.py:1438 + #, python-format + msgid "Could not delete addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1438 ++#: ../semanage/seobject/__init__.py:1450 + msgid "Could not deleteall node mappings" + msgstr "" + +-#: ../semanage/seobject.py:1452 ++#: ../semanage/seobject/__init__.py:1464 + msgid "Could not list addrs" + msgstr "" + +-#: ../semanage/seobject.py:1504 ../semanage/seobject.py:1811 ++#: ../semanage/seobject/__init__.py:1516 ../semanage/seobject/__init__.py:1823 + msgid "SELinux Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1574 +-#: ../semanage/seobject.py:1608 ../semanage/seobject.py:1614 ++#: ../semanage/seobject/__init__.py:1524 ../semanage/seobject/__init__.py:1586 ++#: ../semanage/seobject/__init__.py:1620 ../semanage/seobject/__init__.py:1626 + #, python-format + msgid "Could not check if interface %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1519 ++#: ../semanage/seobject/__init__.py:1531 + #, python-format + msgid "Could not create interface for %s" + msgstr "" + +-#: ../semanage/seobject.py:1528 ++#: ../semanage/seobject/__init__.py:1540 + #, python-format + msgid "Could not set user in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1532 ++#: ../semanage/seobject/__init__.py:1544 + #, python-format + msgid "Could not set role in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1536 ++#: ../semanage/seobject/__init__.py:1548 + #, python-format + msgid "Could not set type in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1541 ++#: ../semanage/seobject/__init__.py:1553 + #, python-format + msgid "Could not set mls fields in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1545 ++#: ../semanage/seobject/__init__.py:1557 + #, python-format + msgid "Could not set interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1549 ++#: ../semanage/seobject/__init__.py:1561 + #, python-format + msgid "Could not set message context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1553 ++#: ../semanage/seobject/__init__.py:1565 + #, python-format + msgid "Could not add interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1576 ../semanage/seobject.py:1610 ++#: ../semanage/seobject/__init__.py:1588 ../semanage/seobject/__init__.py:1622 + #, python-format + msgid "Interface %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1580 ++#: ../semanage/seobject/__init__.py:1592 + #, python-format + msgid "Could not query interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1591 ++#: ../semanage/seobject/__init__.py:1603 + #, python-format + msgid "Could not modify interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1616 ++#: ../semanage/seobject/__init__.py:1628 + #, python-format + msgid "Interface %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1620 ++#: ../semanage/seobject/__init__.py:1632 + #, python-format + msgid "Could not delete interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1632 ++#: ../semanage/seobject/__init__.py:1644 + msgid "Could not delete all interface mappings" + msgstr "" + +-#: ../semanage/seobject.py:1646 ++#: ../semanage/seobject/__init__.py:1658 + msgid "Could not list interfaces" + msgstr "" + +-#: ../semanage/seobject.py:1671 ++#: ../semanage/seobject/__init__.py:1683 + msgid "SELinux Interface" + msgstr "" + +-#: ../semanage/seobject.py:1671 ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:1683 ../semanage/seobject/__init__.py:2045 + msgid "Context" + msgstr "" + +-#: ../semanage/seobject.py:1738 ++#: ../semanage/seobject/__init__.py:1750 + #, python-format + msgid "Target %s is not valid. Target is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1741 ++#: ../semanage/seobject/__init__.py:1753 + #, python-format +-msgid "Substiture %s is not valid. Substitute is not allowed to end with '/'" ++msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1744 ++#: ../semanage/seobject/__init__.py:1756 + #, python-format + msgid "Equivalence class for %s already exists" + msgstr "" + +-#: ../semanage/seobject.py:1750 ++#: ../semanage/seobject/__init__.py:1762 + #, python-format +-msgid "File spec %s conflicts with equivalency rule '%s %s'" ++msgid "" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'" + msgstr "" + +-#: ../semanage/seobject.py:1759 ++#: ../semanage/seobject/__init__.py:1771 + #, python-format + msgid "Equivalence class for %s does not exists" + msgstr "" + +-#: ../semanage/seobject.py:1773 ++#: ../semanage/seobject/__init__.py:1785 + #, python-format + msgid "Could not set user in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1777 ++#: ../semanage/seobject/__init__.py:1789 + #, python-format + msgid "Could not set role in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1782 ../semanage/seobject.py:1848 ++#: ../semanage/seobject/__init__.py:1794 ../semanage/seobject/__init__.py:1860 + #, python-format + msgid "Could not set mls fields in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1788 ++#: ../semanage/seobject/__init__.py:1800 + msgid "Invalid file specification" + msgstr "" + +-#: ../semanage/seobject.py:1790 ++#: ../semanage/seobject/__init__.py:1802 + msgid "File specification can not include spaces" + msgstr "" + +-#: ../semanage/seobject.py:1795 ++#: ../semanage/seobject/__init__.py:1807 + #, python-format + msgid "" +-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'; " ++"Try adding '%(DEST1)s' instead" + msgstr "" + +-#: ../semanage/seobject.py:1814 ++#: ../semanage/seobject/__init__.py:1826 + #, python-format + msgid "Type %s is invalid, must be a file or device type" + msgstr "" + +-#: ../semanage/seobject.py:1822 ../semanage/seobject.py:1827 +-#: ../semanage/seobject.py:1883 ../semanage/seobject.py:1965 +-#: ../semanage/seobject.py:1969 ++#: ../semanage/seobject/__init__.py:1834 ../semanage/seobject/__init__.py:1839 ++#: ../semanage/seobject/__init__.py:1895 ../semanage/seobject/__init__.py:1977 ++#: ../semanage/seobject/__init__.py:1981 + #, python-format + msgid "Could not check if file context for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1835 ++#: ../semanage/seobject/__init__.py:1847 + #, python-format + msgid "Could not create file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1843 ++#: ../semanage/seobject/__init__.py:1855 + #, python-format + msgid "Could not set type in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1851 ../semanage/seobject.py:1911 +-#: ../semanage/seobject.py:1915 ++#: ../semanage/seobject/__init__.py:1863 ../semanage/seobject/__init__.py:1923 ++#: ../semanage/seobject/__init__.py:1927 + #, python-format + msgid "Could not set file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1857 ++#: ../semanage/seobject/__init__.py:1869 + #, python-format + msgid "Could not add file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1871 ++#: ../semanage/seobject/__init__.py:1883 + msgid "Requires setype, serange or seuser" + msgstr "" + +-#: ../semanage/seobject.py:1887 ../semanage/seobject.py:1973 ++#: ../semanage/seobject/__init__.py:1899 ../semanage/seobject/__init__.py:1985 + #, python-format + msgid "File context for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1893 ++#: ../semanage/seobject/__init__.py:1905 + #, python-format + msgid "Could not query file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1919 ++#: ../semanage/seobject/__init__.py:1931 + #, python-format + msgid "Could not modify file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1932 ++#: ../semanage/seobject/__init__.py:1944 + msgid "Could not list the file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1946 ++#: ../semanage/seobject/__init__.py:1958 + #, python-format + msgid "Could not delete the file context %s" + msgstr "" + +-#: ../semanage/seobject.py:1971 ++#: ../semanage/seobject/__init__.py:1983 + #, python-format + msgid "File context for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1977 ++#: ../semanage/seobject/__init__.py:1989 + #, python-format + msgid "Could not delete file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1992 ++#: ../semanage/seobject/__init__.py:2004 + msgid "Could not list file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1996 ++#: ../semanage/seobject/__init__.py:2008 + msgid "Could not list local file contexts" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "SELinux fcontext" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "type" + msgstr "" + +-#: ../semanage/seobject.py:2046 ++#: ../semanage/seobject/__init__.py:2058 + msgid "" + "\n" + "SELinux Distribution fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2051 ++#: ../semanage/seobject/__init__.py:2063 + msgid "" + "\n" + "SELinux Local fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2087 ../semanage/seobject.py:2138 +-#: ../semanage/seobject.py:2144 ++#: ../semanage/seobject/__init__.py:2099 ../semanage/seobject/__init__.py:2150 ++#: ../semanage/seobject/__init__.py:2156 + #, python-format + msgid "Could not check if boolean %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:2089 ../semanage/seobject.py:2140 ++#: ../semanage/seobject/__init__.py:2101 ../semanage/seobject/__init__.py:2152 + #, python-format + msgid "Boolean %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:2093 ++#: ../semanage/seobject/__init__.py:2105 + #, python-format + msgid "Could not query file context %s" + msgstr "" + +-#: ../semanage/seobject.py:2098 ++#: ../semanage/seobject/__init__.py:2110 + #, python-format + msgid "You must specify one of the following values: %s" + msgstr "" + +-#: ../semanage/seobject.py:2103 ++#: ../semanage/seobject/__init__.py:2115 + #, python-format + msgid "Could not set active value of boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2106 ++#: ../semanage/seobject/__init__.py:2118 + #, python-format + msgid "Could not modify boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2122 ++#: ../semanage/seobject/__init__.py:2134 + #, python-format +-msgid "Bad format %s: Record %s" ++msgid "Bad format %(BOOLNAME)s: Record %(VALUE)s" + msgstr "" + +-#: ../semanage/seobject.py:2146 ++#: ../semanage/seobject/__init__.py:2158 + #, python-format + msgid "Boolean %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:2150 ++#: ../semanage/seobject/__init__.py:2162 + #, python-format + msgid "Could not delete boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2162 ../semanage/seobject.py:2179 ++#: ../semanage/seobject/__init__.py:2174 ../semanage/seobject/__init__.py:2191 + msgid "Could not list booleans" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "off" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "on" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "SELinux boolean" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "State" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "Default" + msgstr "" + +-#: ../semanage/seobject.py:2228 ../gui/polgen.glade:113 +-#: ../gui/polgengui.py:274 ../sepolicy/sepolicy/sepolicy.glade:2147 +-#: ../sepolicy/sepolicy/sepolicy.glade:2517 +-#: ../sepolicy/sepolicy/sepolicy.glade:5021 ++#: ../semanage/seobject/__init__.py:2240 ../gui/polgen.glade:113 ++#: ../gui/polgengui.py:260 ../sepolicy/sepolicy/sepolicy.glade:2148 ++#: ../sepolicy/sepolicy/sepolicy.glade:2518 ++#: ../sepolicy/sepolicy/sepolicy.glade:5117 + msgid "Description" + msgstr "" + +@@ -1353,66 +1372,66 @@ msgstr "" + msgid "Options Error %s " + msgstr "" + +-#: ../gui/booleansPage.py:194 ../gui/system-config-selinux.glade:1706 ++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1706 + msgid "Boolean" + msgstr "" + +-#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:162 ++#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:186 + msgid "all" + msgstr "" + +-#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:164 ++#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:188 + #: ../gui/system-config-selinux.glade:1615 + #: ../gui/system-config-selinux.glade:1820 + #: ../gui/system-config-selinux.glade:2437 + msgid "Customized" + msgstr "" + +-#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1911 ++#: ../gui/fcontextPage.py:63 ../gui/system-config-selinux.glade:1911 + msgid "File Labeling" + msgstr "" + +-#: ../gui/fcontextPage.py:74 ++#: ../gui/fcontextPage.py:73 + msgid "" + "File\n" + "Specification" + msgstr "" + +-#: ../gui/fcontextPage.py:81 ++#: ../gui/fcontextPage.py:80 + msgid "" + "Selinux\n" + "File Type" + msgstr "" + +-#: ../gui/fcontextPage.py:88 ++#: ../gui/fcontextPage.py:87 + msgid "" + "File\n" + "Type" + msgstr "" + +-#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2098 ++#: ../gui/loginsPage.py:45 ../gui/system-config-selinux.glade:2098 + msgid "User Mapping" + msgstr "" + +-#: ../gui/loginsPage.py:52 ++#: ../gui/loginsPage.py:49 + msgid "" + "Login\n" + "Name" + msgstr "" + +-#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50 ++#: ../gui/loginsPage.py:53 ../gui/usersPage.py:47 + msgid "" + "SELinux\n" + "User" + msgstr "" + +-#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55 ++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:52 + msgid "" + "MLS/\n" + "MCS Range" + msgstr "" + +-#: ../gui/loginsPage.py:133 ++#: ../gui/loginsPage.py:130 + #, python-format + msgid "Login '%s' is required" + msgstr "" +@@ -1425,15 +1444,15 @@ msgstr "" + msgid "Module Name" + msgstr "" + +-#: ../gui/modulesPage.py:135 ++#: ../gui/modulesPage.py:131 + msgid "Disable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:138 ../gui/system-config-selinux.glade:2662 ++#: ../gui/modulesPage.py:134 ../gui/system-config-selinux.glade:2662 + msgid "Enable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:163 ++#: ../gui/modulesPage.py:161 + msgid "Load Policy Module" + msgstr "" + +@@ -1472,7 +1491,7 @@ msgstr "" + msgid "Applications" + msgstr "" + +-#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:130 ++#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:132 + msgid "Standard Init Daemon" + msgstr "" + +@@ -1482,7 +1501,7 @@ msgid "" + "requires a script in /etc/rc.d/init.d" + msgstr "" + +-#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:131 ++#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:133 + msgid "DBUS System Daemon" + msgstr "" + +@@ -1494,7 +1513,7 @@ msgstr "" + msgid "Internet Services Daemon are daemons started by xinetd" + msgstr "" + +-#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:133 ++#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:135 + msgid "Web Application/Script (CGI)" + msgstr "" + +@@ -1503,7 +1522,7 @@ msgid "" + "Web Applications/Script (CGI) CGI scripts started by the web server (apache)" + msgstr "" + +-#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:135 ++#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:137 + msgid "User Application" + msgstr "" + +@@ -1513,7 +1532,7 @@ msgid "" + "started by a user" + msgstr "" + +-#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:134 ++#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:136 + msgid "Sandbox" + msgstr "" + +@@ -1565,8 +1584,8 @@ msgstr "" #: ../gui/polgen.glade:550 msgid "" @@ -5591,7 +13977,7 @@ index ce12bbe..6409e2a 100644 msgstr "" #: ../gui/polgen.glade:592 -@@ -1599,8 +1598,8 @@ msgstr "" +@@ -1579,8 +1598,8 @@ msgstr "" #: ../gui/polgen.glade:627 msgid "" @@ -5602,7 +13988,18 @@ index ce12bbe..6409e2a 100644 "the system directly." msgstr "" -@@ -1669,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" +@@ -1588,8 +1607,8 @@ msgstr "" + msgid "Enter name of application or user role:" + msgstr "" + +-#: ../gui/polgen.glade:728 ../gui/polgengui.py:272 +-#: ../sepolicy/sepolicy/sepolicy.glade:2182 ++#: ../gui/polgen.glade:728 ../gui/polgengui.py:258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2183 + msgid "Name" + msgstr "" + +@@ -1649,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" msgstr "" #: ../gui/polgen.glade:1019 @@ -5612,7 +14009,215 @@ index ce12bbe..6409e2a 100644 msgstr "" #: ../gui/polgen.glade:1056 -@@ -1988,8 +1988,8 @@ msgid "" +@@ -1673,7 +1693,7 @@ msgid "TCP Ports" + msgstr "" + + #: ../gui/polgen.glade:1223 ../gui/polgen.glade:1390 ../gui/polgen.glade:1589 +-#: ../gui/polgen.glade:1698 ../sepolicy/sepolicy/sepolicy.glade:4314 ++#: ../gui/polgen.glade:1698 + msgid "All" + msgstr "" + +@@ -1804,118 +1824,118 @@ msgstr "" + msgid "Policy Directory" + msgstr "" + +-#: ../gui/polgengui.py:282 ++#: ../gui/polgengui.py:268 + msgid "Role" + msgstr "" + +-#: ../gui/polgengui.py:289 ++#: ../gui/polgengui.py:275 + msgid "Existing_User" + msgstr "" + +-#: ../gui/polgengui.py:303 ../gui/polgengui.py:311 ../gui/polgengui.py:325 ++#: ../gui/polgengui.py:289 ../gui/polgengui.py:297 ../gui/polgengui.py:311 + msgid "Application" + msgstr "" + +-#: ../gui/polgengui.py:370 ++#: ../gui/polgengui.py:356 + #, python-format + msgid "%s must be a directory" + msgstr "" + +-#: ../gui/polgengui.py:430 ../gui/polgengui.py:711 ++#: ../gui/polgengui.py:416 ../gui/polgengui.py:697 + msgid "You must select a user" + msgstr "" + +-#: ../gui/polgengui.py:560 ++#: ../gui/polgengui.py:546 + msgid "Select executable file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:571 ++#: ../gui/polgengui.py:557 + msgid "Select init script file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:581 ++#: ../gui/polgengui.py:567 + msgid "Select file(s) that confined application creates or writes" + msgstr "" + +-#: ../gui/polgengui.py:588 ++#: ../gui/polgengui.py:574 + msgid "Select directory(s) that the confined application owns and writes into" + msgstr "" + +-#: ../gui/polgengui.py:650 ++#: ../gui/polgengui.py:636 + msgid "Select directory to generate policy files in" + msgstr "" + +-#: ../gui/polgengui.py:667 ++#: ../gui/polgengui.py:653 + #, python-format + msgid "" + "Type %s_t already defined in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:667 ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:653 ../gui/polgengui.py:657 + msgid "Verify Name" + msgstr "" + +-#: ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:657 + #, python-format + msgid "" + "Module %s.pp already loaded in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:717 ++#: ../gui/polgengui.py:703 + msgid "" + "You must add a name made up of letters and numbers and containing no spaces." + msgstr "" + +-#: ../gui/polgengui.py:731 ++#: ../gui/polgengui.py:717 + msgid "You must enter a executable" + msgstr "" + +-#: ../gui/polgengui.py:756 ../gui/system-config-selinux.py:180 ++#: ../gui/polgengui.py:742 ../gui/system-config-selinux.py:180 + msgid "Configue SELinux" + msgstr "" + +-#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2528 ++#: ../gui/portsPage.py:48 ../gui/system-config-selinux.glade:2528 + msgid "Network Port" + msgstr "" + +-#: ../gui/portsPage.py:85 ++#: ../gui/portsPage.py:82 + msgid "" + "SELinux Port\n" + "Type" + msgstr "" + +-#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363 +-#: ../sepolicy/sepolicy/sepolicy.glade:1443 +-#: ../sepolicy/sepolicy/sepolicy.glade:2657 +-#: ../sepolicy/sepolicy/sepolicy.glade:2755 +-#: ../sepolicy/sepolicy/sepolicy.glade:4672 ++#: ../gui/portsPage.py:88 ../gui/system-config-selinux.glade:363 ++#: ../sepolicy/sepolicy/sepolicy.glade:1439 ++#: ../sepolicy/sepolicy/sepolicy.glade:2658 ++#: ../sepolicy/sepolicy/sepolicy.glade:2756 ++#: ../sepolicy/sepolicy/sepolicy.glade:4633 + msgid "Protocol" + msgstr "" + +-#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479 ++#: ../gui/portsPage.py:93 ../gui/system-config-selinux.glade:479 + msgid "" + "MLS/MCS\n" + "Level" + msgstr "" + +-#: ../gui/portsPage.py:101 ../sepolicy/sepolicy/sepolicy.glade:2638 +-#: ../sepolicy/sepolicy/sepolicy.glade:2737 +-#: ../sepolicy/sepolicy/sepolicy.glade:4658 ++#: ../gui/portsPage.py:98 ../sepolicy/sepolicy/sepolicy.glade:2639 ++#: ../sepolicy/sepolicy/sepolicy.glade:2738 ++#: ../sepolicy/sepolicy/sepolicy.glade:4619 + msgid "Port" + msgstr "" + +-#: ../gui/portsPage.py:207 ++#: ../gui/portsPage.py:205 + #, python-format + msgid "Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 " + msgstr "" + +-#: ../gui/portsPage.py:252 ++#: ../gui/portsPage.py:258 + msgid "List View" + msgstr "" + +-#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2419 ++#: ../gui/portsPage.py:261 ../gui/system-config-selinux.glade:2419 + msgid "Group View" + msgstr "" + +@@ -1929,50 +1949,50 @@ msgstr "" + msgid "Delete %s" + msgstr "" + +-#: ../gui/semanagePage.py:134 ++#: ../gui/semanagePage.py:158 + #, python-format + msgid "Add %s" + msgstr "" + +-#: ../gui/semanagePage.py:148 ++#: ../gui/semanagePage.py:172 + #, python-format + msgid "Modify %s" + msgstr "" + +-#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2819 +-#: ../sepolicy/sepolicy/sepolicy.glade:3413 +-#: ../sepolicy/sepolicy/sepolicy.glade:3486 ++#: ../gui/statusPage.py:65 ../gui/system-config-selinux.glade:2819 ++#: ../sepolicy/sepolicy/sepolicy.glade:3414 ++#: ../sepolicy/sepolicy/sepolicy.glade:3487 + msgid "Permissive" + msgstr "" + +-#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2837 +-#: ../sepolicy/sepolicy/sepolicy.glade:3394 +-#: ../sepolicy/sepolicy/sepolicy.glade:3468 ++#: ../gui/statusPage.py:66 ../gui/system-config-selinux.glade:2837 ++#: ../sepolicy/sepolicy/sepolicy.glade:3395 ++#: ../sepolicy/sepolicy/sepolicy.glade:3469 + msgid "Enforcing" + msgstr "" + +-#: ../gui/statusPage.py:94 ++#: ../gui/statusPage.py:90 + msgid "Status" + msgstr "" + +-#: ../gui/statusPage.py:133 ../sepolicy/sepolicy/gui.py:2619 ++#: ../gui/statusPage.py:129 ../sepolicy/sepolicy/gui.py:2613 + msgid "" + "Changing the policy type will cause a relabel of the entire file system on " + "the next boot. Relabeling takes a long time depending on the size of the " + "file system. Do you wish to continue?" + msgstr "" + +-#: ../gui/statusPage.py:147 ++#: ../gui/statusPage.py:143 + msgid "" + "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 " @@ -5622,8 +14227,41 @@ index ce12bbe..6409e2a 100644 +" wish to continue?" msgstr "" - #: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 -@@ -2223,8 +2223,8 @@ msgstr "" +-#: ../gui/statusPage.py:152 ../sepolicy/sepolicy/gui.py:2753 ++#: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 + msgid "" + "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 " +@@ -2024,8 +2044,8 @@ msgid "" + msgstr "" + + #: ../gui/system-config-selinux.glade:773 +-#: ../sepolicy/sepolicy/sepolicy.glade:729 +-#: ../sepolicy/sepolicy/sepolicy.glade:1489 ++#: ../sepolicy/sepolicy/sepolicy.glade:711 ++#: ../sepolicy/sepolicy/sepolicy.glade:1485 + msgid "MLS" + msgstr "" + +@@ -2038,7 +2058,7 @@ msgid "SELinux Administration" + msgstr "" + + #: ../gui/system-config-selinux.glade:1122 +-#: ../sepolicy/sepolicy/sepolicy.glade:4162 ++#: ../sepolicy/sepolicy/sepolicy.glade:4163 + msgid "Add" + msgstr "" + +@@ -2108,7 +2128,7 @@ msgstr "" + #: ../gui/system-config-selinux.glade:2467 + #: ../gui/system-config-selinux.glade:2692 + #: ../gui/system-config-selinux.glade:2867 +-#: ../sepolicy/sepolicy/sepolicy.glade:1992 ++#: ../sepolicy/sepolicy/sepolicy.glade:1993 + msgid "Filter" + msgstr "" + +@@ -2203,8 +2223,8 @@ msgstr "" #: ../gui/system-config-selinux.glade:2661 msgid "" @@ -5634,32 +14272,175 @@ index ce12bbe..6409e2a 100644 msgstr "" #: ../gui/system-config-selinux.glade:2781 -@@ -2265,8 +2265,8 @@ msgstr "" +@@ -2227,7 +2247,7 @@ msgstr "" + msgid "label59" + msgstr "" + +-#: ../gui/usersPage.py:138 ++#: ../gui/usersPage.py:140 + #, python-format + msgid "SELinux user '%s' is required" + msgstr "" +@@ -2239,13 +2259,14 @@ msgstr "" + + #: booleans.py:2 + msgid "" +-"Allow ABRT to run in abrt_handle_event_t domain to handle ABRT event scripts" ++"Determine whether ABRT can run in the abrt_handle_event_t domain to handle " ++"ABRT event scripts." + msgstr "" #: booleans.py:3 msgid "" --"Determine whether abrt-handle-upload can modify public files used for public " --"file transfer services in /var/spool/abrt-upload/." +-"Allow abrt-handle-upload to modify public files used for public file " +-"transfer services in /var/spool/abrt-upload/." +"Determine whether abrt-handle-upload can modify public files used for public" +" file transfer services in /var/spool/abrt-upload/." msgstr "" #: booleans.py:4 -@@ -2395,8 +2395,9 @@ msgstr "" +@@ -2279,7 +2300,7 @@ msgid "Determine whether awstats can purge httpd log files." + msgstr "" - #: booleans.py:32 - msgid "" + #: booleans.py:11 +-msgid "Allow boinc_domain execmem/execstack." ++msgid "Determine whether boinc can execmem/execstack." + msgstr "" + + #: booleans.py:12 +@@ -2335,1467 +2356,1506 @@ msgid "" + msgstr "" + + #: booleans.py:23 +-msgid "Determine whether cvs can read shadow password files." ++msgid "" ++"Determine whether crond can execute jobs in the user domain as opposed to " ++"the the generic cronjob domain." + msgstr "" + + #: booleans.py:24 +-msgid "Allow all daemons to write corefiles to /" ++msgid "Determine whether cvs can read shadow password files." + msgstr "" + + #: booleans.py:25 +-msgid "Allow all daemons to use tcp wrappers." ++msgid "Allow all daemons to write corefiles to /" + msgstr "" + + #: booleans.py:26 +-msgid "Allow all daemons the ability to read/write terminals" ++msgid "Enable cluster mode for daemons." + msgstr "" + + #: booleans.py:27 +-msgid "Determine whether dbadm can manage generic user files." ++msgid "Allow all daemons to use tcp wrappers." + msgstr "" + + #: booleans.py:28 +-msgid "Determine whether dbadm can read generic user files." ++msgid "Allow all daemons the ability to read/write terminals" + msgstr "" + + #: booleans.py:29 +-msgid "" -"Deny user domains applications to map a memory region as both executable and " -"writable, this is dangerous and the executable should be reported in bugzilla" ++msgid "Allow dbadm to exec content" + msgstr "" + + #: booleans.py:30 +-msgid "Deny any process from ptracing or debugging any other processes." ++msgid "Determine whether dbadm can manage generic user files." + msgstr "" + + #: booleans.py:31 +-msgid "Allow dhcpc client applications to execute iptables commands" ++msgid "Determine whether dbadm can read generic user files." + msgstr "" + + #: booleans.py:32 +-msgid "Determine whether DHCP daemon can use LDAP backends." ++msgid "" +"Deny user domains applications to map a memory region as both executable and" +" writable, this is dangerous and the executable should be reported in " +"bugzilla" msgstr "" #: booleans.py:33 -@@ -2462,8 +2463,8 @@ msgstr "" +-msgid "Allow all domains to use other domains file descriptors" ++msgid "Deny any process from ptracing or debugging any other processes." + msgstr "" - #: booleans.py:47 + #: booleans.py:34 +-msgid "Allow all domains to have the kernel load modules" ++msgid "Allow dhcpc client applications to execute iptables commands" + msgstr "" + + #: booleans.py:35 ++msgid "Determine whether DHCP daemon can use LDAP backends." ++msgstr "" ++ ++#: booleans.py:36 ++msgid "Allow all domains to use other domains file descriptors" ++msgstr "" ++ ++#: booleans.py:37 ++msgid "Allow all domains to have the kernel load modules" ++msgstr "" ++ ++#: booleans.py:38 + msgid "" + "Determine whether entropyd can use audio devices as the source for the " + "entropy feeds." + msgstr "" + +-#: booleans.py:36 ++#: booleans.py:39 + msgid "Determine whether exim can connect to databases." + msgstr "" + +-#: booleans.py:37 ++#: booleans.py:40 + msgid "" + "Determine whether exim can create, read, write, and delete generic user " + "content files." + msgstr "" + +-#: booleans.py:38 ++#: booleans.py:41 + msgid "Determine whether exim can read generic user content files." + msgstr "" + +-#: booleans.py:39 ++#: booleans.py:42 + msgid "Enable extra rules in the cron domain to support fcron." + msgstr "" + +-#: booleans.py:40 ++#: booleans.py:43 + msgid "Determine whether fenced can connect to the TCP network." + msgstr "" + +-#: booleans.py:41 ++#: booleans.py:44 + msgid "Determine whether fenced can use ssh." + msgstr "" + +-#: booleans.py:42 ++#: booleans.py:45 + msgid "Allow all domains to execute in fips_mode" + msgstr "" + +-#: booleans.py:43 ++#: booleans.py:46 + msgid "" + "Determine whether ftpd can read and write files in user home directories." + msgstr "" + +-#: booleans.py:44 ++#: booleans.py:47 msgid "" -"Determine whether ftpd can modify public files used for public file transfer " -"services. Directories/Files must be labeled public_content_rw_t." @@ -5667,30 +14448,834 @@ index ce12bbe..6409e2a 100644 +" services. Directories/Files must be labeled public_content_rw_t." msgstr "" - #: booleans.py:48 -@@ -2615,7 +2616,8 @@ msgid "Allow HTTPD scripts and modules to connect to the network using TCP." +-#: booleans.py:45 ++#: booleans.py:48 + msgid "Determine whether ftpd can connect to all unreserved ports." msgstr "" - #: booleans.py:80 +-#: booleans.py:46 ++#: booleans.py:49 + msgid "Determine whether ftpd can connect to databases over the TCP network." + msgstr "" + +-#: booleans.py:47 ++#: booleans.py:50 + msgid "" + "Determine whether ftpd can login to local users and can read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:48 ++#: booleans.py:51 + msgid "" + "Determine whether ftpd can use CIFS used for public file transfer services." + msgstr "" + +-#: booleans.py:49 ++#: booleans.py:52 + msgid "Allow ftpd to use ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:50 ++#: booleans.py:53 + msgid "" + "Determine whether ftpd can use NFS used for public file transfer services." + msgstr "" + +-#: booleans.py:51 ++#: booleans.py:54 + msgid "" + "Determine whether ftpd can bind to all unreserved ports for passive mode." + msgstr "" + +-#: booleans.py:52 ++#: booleans.py:55 + msgid "Determine whether Git CGI can search home directories." + msgstr "" + +-#: booleans.py:53 ++#: booleans.py:56 + msgid "Determine whether Git CGI can access cifs file systems." + msgstr "" + +-#: booleans.py:54 ++#: booleans.py:57 + msgid "Determine whether Git CGI can access nfs file systems." + msgstr "" + +-#: booleans.py:55 ++#: booleans.py:58 + msgid "" + "Determine whether Git session daemon can bind TCP sockets to all unreserved " + "ports." + msgstr "" + +-#: booleans.py:56 ++#: booleans.py:59 + msgid "" + "Determine whether calling user domains can execute Git daemon in the " + "git_session_t domain." + msgstr "" + +-#: booleans.py:57 ++#: booleans.py:60 + msgid "Determine whether Git system daemon can search home directories." + msgstr "" + +-#: booleans.py:58 ++#: booleans.py:61 + msgid "Determine whether Git system daemon can access cifs file systems." + msgstr "" + +-#: booleans.py:59 ++#: booleans.py:62 + msgid "Determine whether Git system daemon can access nfs file systems." + msgstr "" + +-#: booleans.py:60 ++#: booleans.py:63 + msgid "Determine whether Gitosis can send mail." + msgstr "" + +-#: booleans.py:61 ++#: booleans.py:64 + msgid "Enable reading of urandom for all domains." + msgstr "" + +-#: booleans.py:62 ++#: booleans.py:65 + msgid "" + "Allow glusterfsd to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:63 ++#: booleans.py:66 + msgid "Allow glusterfsd to share any file/directory read only." + msgstr "" + +-#: booleans.py:64 ++#: booleans.py:67 + msgid "Allow glusterfsd to share any file/directory read/write." + msgstr "" + +-#: booleans.py:65 ++#: booleans.py:68 + msgid "" + "Allow usage of the gpg-agent --write-env-file option. This also allows gpg-" + "agent to manage user files." + msgstr "" + +-#: booleans.py:66 ++#: booleans.py:69 + msgid "" + "Allow gpg web domain to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:67 ++#: booleans.py:70 + msgid "" + "Allow gssd to list tmp directories and read the kerberos credential cache." + msgstr "" + +-#: booleans.py:68 ++#: booleans.py:71 + msgid "Allow guest to exec content" + msgstr "" + +-#: booleans.py:69 ++#: booleans.py:72 + msgid "" + "Allow Apache to modify public files used for public file transfer services. " + "Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:70 ++#: booleans.py:73 + msgid "Allow httpd to use built in scripting (usually php)" + msgstr "" + +-#: booleans.py:71 ++#: booleans.py:74 + msgid "Allow http daemon to check spam" + msgstr "" + +-#: booleans.py:72 ++#: booleans.py:75 + msgid "" + "Allow httpd to act as a FTP client connecting to the ftp port and ephemeral " + "ports" + msgstr "" + +-#: booleans.py:73 ++#: booleans.py:76 + msgid "Allow httpd to connect to the ldap port" + msgstr "" + +-#: booleans.py:74 ++#: booleans.py:77 + msgid "Allow http daemon to connect to mythtv" + msgstr "" + +-#: booleans.py:75 ++#: booleans.py:78 + msgid "Allow http daemon to connect to zabbix" + msgstr "" + +-#: booleans.py:76 ++#: booleans.py:79 + msgid "Allow HTTPD scripts and modules to connect to the network using TCP." + msgstr "" + +-#: booleans.py:77 -msgid "Allow HTTPD scripts and modules to connect to cobbler over the network." ++#: booleans.py:80 +msgid "" +"Allow HTTPD scripts and modules to connect to cobbler over the network." msgstr "" - #: booleans.py:81 -@@ -3122,7 +3124,8 @@ msgstr "" +-#: booleans.py:78 ++#: booleans.py:81 + msgid "" + "Allow HTTPD scripts and modules to connect to databases over the network." + msgstr "" - #: booleans.py:197 +-#: booleans.py:79 ++#: booleans.py:82 + msgid "Allow httpd to connect to memcache server" + msgstr "" + +-#: booleans.py:80 ++#: booleans.py:83 + msgid "Allow httpd to act as a relay" + msgstr "" + +-#: booleans.py:81 ++#: booleans.py:84 + msgid "Allow http daemon to send mail" + msgstr "" + +-#: booleans.py:82 ++#: booleans.py:85 + msgid "Allow Apache to communicate with avahi service via dbus" + msgstr "" + +-#: booleans.py:83 ++#: booleans.py:86 + msgid "Allow httpd cgi support" + msgstr "" + +-#: booleans.py:84 ++#: booleans.py:87 + msgid "Allow httpd to act as a FTP server by listening on the ftp port." + msgstr "" + +-#: booleans.py:85 ++#: booleans.py:88 + msgid "Allow httpd to read home directories" + msgstr "" + +-#: booleans.py:86 ++#: booleans.py:89 + msgid "Allow httpd scripts and modules execmem/execstack" + msgstr "" + +-#: booleans.py:87 ++#: booleans.py:90 + msgid "Allow HTTPD to connect to port 80 for graceful shutdown" + msgstr "" + +-#: booleans.py:88 ++#: booleans.py:91 + msgid "Allow httpd processes to manage IPA content" + msgstr "" + +-#: booleans.py:89 ++#: booleans.py:92 + msgid "Allow Apache to use mod_auth_ntlm_winbind" + msgstr "" + +-#: booleans.py:90 ++#: booleans.py:93 + msgid "Allow Apache to use mod_auth_pam" + msgstr "" + +-#: booleans.py:91 ++#: booleans.py:94 + msgid "Allow httpd to read user content" + msgstr "" + +-#: booleans.py:92 ++#: booleans.py:95 + msgid "Allow Apache to run in stickshift mode, not transition to passenger" + msgstr "" + +-#: booleans.py:93 ++#: booleans.py:96 + msgid "Allow HTTPD scripts and modules to server cobbler files." + msgstr "" + +-#: booleans.py:94 ++#: booleans.py:97 + msgid "Allow httpd daemon to change its resource limits" + msgstr "" + +-#: booleans.py:95 ++#: booleans.py:98 + msgid "" + "Allow HTTPD to run SSI executables in the same domain as system CGI scripts." + msgstr "" + +-#: booleans.py:96 ++#: booleans.py:99 + msgid "" + "Allow apache scripts to write to public content, directories/files must be " + "labeled public_rw_content_t." + msgstr "" + +-#: booleans.py:97 ++#: booleans.py:100 + msgid "Allow Apache to execute tmp content." + msgstr "" + +-#: booleans.py:98 ++#: booleans.py:101 + msgid "" + "Unify HTTPD to communicate with the terminal. Needed for entering the " + "passphrase for certificates at the terminal." + msgstr "" + +-#: booleans.py:99 ++#: booleans.py:102 + msgid "Unify HTTPD handling of all content files." + msgstr "" + +-#: booleans.py:100 ++#: booleans.py:103 + msgid "Allow httpd to access cifs file systems" + msgstr "" + +-#: booleans.py:101 ++#: booleans.py:104 + msgid "Allow httpd to access FUSE file systems" + msgstr "" + +-#: booleans.py:102 ++#: booleans.py:105 + msgid "Allow httpd to run gpg" + msgstr "" + +-#: booleans.py:103 ++#: booleans.py:106 + msgid "Allow httpd to access nfs file systems" + msgstr "" + +-#: booleans.py:104 ++#: booleans.py:107 + msgid "Allow httpd to access openstack ports" + msgstr "" + +-#: booleans.py:105 ++#: booleans.py:108 + msgid "Allow httpd to connect to sasl" + msgstr "" + +-#: booleans.py:106 ++#: booleans.py:109 + msgid "Allow Apache to query NS records" + msgstr "" + +-#: booleans.py:107 ++#: booleans.py:110 + msgid "Determine whether icecast can listen on and connect to any TCP port." + msgstr "" + +-#: booleans.py:108 ++#: booleans.py:111 + msgid "" + "Determine whether irc clients can listen on and connect to any unreserved " + "TCP ports." + msgstr "" + +-#: booleans.py:109 ++#: booleans.py:112 + msgid "" + "Allow the Irssi IRC Client to connect to any port, and to bind to any " + "unreserved port." + msgstr "" + +-#: booleans.py:110 ++#: booleans.py:113 ++msgid "Allow s-c-kdump to run bootloader in bootloader_t." ++msgstr "" ++ ++#: booleans.py:114 + msgid "Allow confined applications to run with kerberos." + msgstr "" + +-#: booleans.py:111 ++#: booleans.py:115 + msgid "Allow ksmtuned to use cifs/Samba file systems" + msgstr "" + +-#: booleans.py:112 ++#: booleans.py:116 + msgid "Allow ksmtuned to use nfs file systems" + msgstr "" + +-#: booleans.py:113 ++#: booleans.py:117 ++msgid "Allow logadm to exec content" ++msgstr "" ++ ++#: booleans.py:118 + msgid "Allow syslogd daemon to send mail" + msgstr "" + +-#: booleans.py:114 ++#: booleans.py:119 + msgid "Allow syslogd the ability to read/write terminals" + msgstr "" + +-#: booleans.py:115 ++#: booleans.py:120 + msgid "Allow logging in and using the system from /dev/console." + msgstr "" + +-#: booleans.py:116 ++#: booleans.py:121 ++msgid "Determine whether logwatch can connect to mail over the network." ++msgstr "" ++ ++#: booleans.py:122 + msgid "Allow epylog to send mail" + msgstr "" + +-#: booleans.py:117 ++#: booleans.py:123 + msgid "Allow mailman to access FUSE file systems" + msgstr "" + +-#: booleans.py:118 ++#: booleans.py:124 + msgid "Determine whether mcelog supports client mode." + msgstr "" + +-#: booleans.py:119 ++#: booleans.py:125 + msgid "Determine whether mcelog can execute scripts." + msgstr "" + +-#: booleans.py:120 ++#: booleans.py:126 + msgid "Determine whether mcelog can use all the user ttys." + msgstr "" + +-#: booleans.py:121 ++#: booleans.py:127 + msgid "Determine whether mcelog supports server mode." + msgstr "" + +-#: booleans.py:122 ++#: booleans.py:128 ++msgid "Determine whether minidlna can read generic user content." ++msgstr "" ++ ++#: booleans.py:129 + msgid "" + "Control the ability to mmap a low area of the address space, as configured " + "by /proc/sys/kernel/mmap_min_addr." + msgstr "" + +-#: booleans.py:123 ++#: booleans.py:130 + msgid "Allow mock to read files in home directories." + msgstr "" + +-#: booleans.py:124 ++#: booleans.py:131 + msgid "Allow the mount commands to mount any directory or file." + msgstr "" + +-#: booleans.py:125 ++#: booleans.py:132 + msgid "Allow mozilla plugin domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:126 ++#: booleans.py:133 + msgid "Allow mozilla plugin to support GPS." + msgstr "" + +-#: booleans.py:127 ++#: booleans.py:134 + msgid "Allow mozilla plugin to support spice protocols." + msgstr "" + +-#: booleans.py:128 ++#: booleans.py:135 + msgid "Allow confined web browsers to read home directory content" + msgstr "" + +-#: booleans.py:129 ++#: booleans.py:136 + msgid "Determine whether mpd can traverse user home directories." + msgstr "" + +-#: booleans.py:130 ++#: booleans.py:137 + msgid "Determine whether mpd can use cifs file systems." + msgstr "" + +-#: booleans.py:131 ++#: booleans.py:138 + msgid "Determine whether mpd can use nfs file systems." + msgstr "" + +-#: booleans.py:132 ++#: booleans.py:139 + msgid "Determine whether mplayer can make its stack executable." + msgstr "" + +-#: booleans.py:133 ++#: booleans.py:140 + msgid "Allow mysqld to connect to all ports" + msgstr "" + +-#: booleans.py:134 ++#: booleans.py:141 + msgid "Determine whether Bind can bind tcp socket to http ports." + msgstr "" + +-#: booleans.py:135 ++#: booleans.py:142 + msgid "" + "Determine whether Bind can write to master zone files. Generally this is " + "used for dynamic DNS or zone transfers." + msgstr "" + +-#: booleans.py:136 ++#: booleans.py:143 + msgid "Allow any files/directories to be exported read/only via NFS." + msgstr "" + +-#: booleans.py:137 ++#: booleans.py:144 + msgid "Allow any files/directories to be exported read/write via NFS." + msgstr "" + +-#: booleans.py:138 ++#: booleans.py:145 + msgid "" + "Allow nfs servers to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:139 ++#: booleans.py:146 + msgid "Allow system to run with NIS" + msgstr "" + +-#: booleans.py:140 ++#: booleans.py:147 + msgid "Allow confined applications to use nscd shared memory." + msgstr "" + +-#: booleans.py:141 ++#: booleans.py:148 + msgid "Allow openshift to lockdown app" + msgstr "" + +-#: booleans.py:142 ++#: booleans.py:149 + msgid "Determine whether openvpn can connect to the TCP network." + msgstr "" + +-#: booleans.py:143 ++#: booleans.py:150 + msgid "Determine whether openvpn can read generic user home content files." + msgstr "" + +-#: booleans.py:144 ++#: booleans.py:151 + msgid "Allow openvpn to run unconfined scripts" + msgstr "" + +-#: booleans.py:145 ++#: booleans.py:152 + msgid "Allow piranha-lvs domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:146 ++#: booleans.py:153 + msgid "Allow polipo to connect to all ports > 1023" + msgstr "" + +-#: booleans.py:147 ++#: booleans.py:154 + msgid "" + "Determine whether Polipo session daemon can bind tcp sockets to all " + "unreserved ports." + msgstr "" + +-#: booleans.py:148 ++#: booleans.py:155 + msgid "" + "Determine whether calling user domains can execute Polipo daemon in the " + "polipo_session_t domain." + msgstr "" + +-#: booleans.py:149 ++#: booleans.py:156 + msgid "Determine whether polipo can access cifs file systems." + msgstr "" + +-#: booleans.py:150 ++#: booleans.py:157 + msgid "Determine whether Polipo can access nfs file systems." + msgstr "" + +-#: booleans.py:151 ++#: booleans.py:158 + msgid "Enable polyinstantiated directory support." + msgstr "" + +-#: booleans.py:152 ++#: booleans.py:159 + msgid "Allow postfix_local domain full write access to mail_spool directories" + msgstr "" + +-#: booleans.py:153 ++#: booleans.py:160 + msgid "Allow postgresql to use ssh and rsync for point-in-time recovery" + msgstr "" + +-#: booleans.py:154 ++#: booleans.py:161 + msgid "Allow transmit client label to foreign database" + msgstr "" + +-#: booleans.py:155 ++#: booleans.py:162 + msgid "Allow database admins to execute DML statement" + msgstr "" + +-#: booleans.py:156 ++#: booleans.py:163 + msgid "Allow unprivileged users to execute DDL statement" + msgstr "" + +-#: booleans.py:157 ++#: booleans.py:164 + msgid "Allow pppd to load kernel modules for certain modems" + msgstr "" + +-#: booleans.py:158 ++#: booleans.py:165 + msgid "Allow pppd to be run for a regular user" + msgstr "" + +-#: booleans.py:159 ++#: booleans.py:166 + msgid "Determine whether privoxy can connect to all tcp ports." + msgstr "" + +-#: booleans.py:160 ++#: booleans.py:167 + msgid "" + "Permit to prosody to bind apache port. Need to be activated to use BOSH." + msgstr "" + +-#: booleans.py:161 ++#: booleans.py:168 + msgid "Allow Puppet client to manage all file types." + msgstr "" + +-#: booleans.py:162 ++#: booleans.py:169 + msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database" + msgstr "" + +-#: booleans.py:163 ++#: booleans.py:170 + msgid "Allow racoon to read shadow" + msgstr "" + +-#: booleans.py:164 ++#: booleans.py:171 + msgid "" + "Allow rsync to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:165 ++#: booleans.py:172 + msgid "Allow rsync to run as a client" + msgstr "" + +-#: booleans.py:166 ++#: booleans.py:173 + msgid "Allow rsync to export any files/directories read only." + msgstr "" + +-#: booleans.py:167 ++#: booleans.py:174 + msgid "Allow rsync server to manage all files/directories on the system." + msgstr "" + +-#: booleans.py:168 ++#: booleans.py:175 + msgid "Allow samba to create new home directories (e.g. via PAM)" + msgstr "" + +-#: booleans.py:169 ++#: booleans.py:176 + msgid "" + "Allow samba to act as the domain controller, add users, groups and change " + "passwords." + msgstr "" + +-#: booleans.py:170 ++#: booleans.py:177 + msgid "Allow samba to share users home directories." + msgstr "" + +-#: booleans.py:171 ++#: booleans.py:178 + msgid "Allow samba to share any file/directory read only." + msgstr "" + +-#: booleans.py:172 ++#: booleans.py:179 + msgid "Allow samba to share any file/directory read/write." + msgstr "" + +-#: booleans.py:173 ++#: booleans.py:180 + msgid "Allow samba to act as a portmapper" + msgstr "" + +-#: booleans.py:174 ++#: booleans.py:181 + msgid "Allow samba to run unconfined scripts" + msgstr "" + +-#: booleans.py:175 ++#: booleans.py:182 + msgid "Allow samba to export ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:176 ++#: booleans.py:183 + msgid "Allow samba to export NFS volumes." + msgstr "" + +-#: booleans.py:177 ++#: booleans.py:184 + msgid "Allow sanlock to read/write fuse files" + msgstr "" + +-#: booleans.py:178 ++#: booleans.py:185 + msgid "Allow sanlock to manage nfs files" + msgstr "" + +-#: booleans.py:179 ++#: booleans.py:186 + msgid "Allow sanlock to manage cifs files" + msgstr "" + +-#: booleans.py:180 ++#: booleans.py:187 + msgid "Allow sasl to read shadow" + msgstr "" + +-#: booleans.py:181 ++#: booleans.py:188 + msgid "Allow secadm to exec content" + msgstr "" + +-#: booleans.py:182 ++#: booleans.py:189 + msgid "" + "disallow programs, such as newrole, from transitioning to administrative " + "user domains." + msgstr "" + +-#: booleans.py:183 ++#: booleans.py:190 + msgid "Disable kernel module loading." + msgstr "" + +-#: booleans.py:184 ++#: booleans.py:191 + msgid "" + "Boolean to determine whether the system permits loading policy, setting " + "enforcing mode, and changing boolean values. Set this to true and you have " + "to reboot to set it back." + msgstr "" + +-#: booleans.py:185 ++#: booleans.py:192 + msgid "Allow regular users direct dri device access" + msgstr "" + +-#: booleans.py:186 ++#: booleans.py:193 + msgid "" + "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 "" + +-#: booleans.py:187 ++#: booleans.py:194 + msgid "" + "Allow all unconfined executables to use libraries requiring text relocation " + "that are not labeled textrel_shlib_t" + msgstr "" + +-#: booleans.py:188 ++#: booleans.py:195 + msgid "" + "Allow unconfined executables to make their stack executable. This should " + "never, ever be necessary. Probably indicates a badly coded executable, but " + "could indicate an attack. This executable should be reported in bugzilla" + msgstr "" + +-#: booleans.py:189 ++#: booleans.py:196 + msgid "Allow users to connect to the local mysql server" + msgstr "" + +-#: booleans.py:190 ++#: booleans.py:197 msgid "" -"Allow confined users the ability to execute the ping and traceroute commands." +"Allow confined users the ability to execute the ping and traceroute " +"commands." msgstr "" - #: booleans.py:198 -@@ -3141,8 +3144,8 @@ msgstr "" +-#: booleans.py:191 ++#: booleans.py:198 + msgid "Allow users to connect to PostgreSQL" + msgstr "" - #: booleans.py:201 +-#: booleans.py:192 ++#: booleans.py:199 + msgid "" + "Allow user to r/w files on filesystems that do not have extended attributes " + "(FAT, CDROM, FLOPPY)" + msgstr "" + +-#: booleans.py:193 ++#: booleans.py:200 + msgid "Allow user music sharing" + msgstr "" + +-#: booleans.py:194 ++#: booleans.py:201 msgid "" -"Allow users to run TCP servers (bind to ports and accept connection from the " -"same domain and outside users) disabling this forces FTP passive mode and " @@ -5699,19 +15284,211 @@ index ce12bbe..6409e2a 100644 "may change other protocols." msgstr "" -@@ -3234,7 +3237,8 @@ msgid "Allow sysadm to exec content" +-#: booleans.py:195 ++#: booleans.py:202 + msgid "Allow user to use ssh chroot environment." msgstr "" - #: booleans.py:221 +-#: booleans.py:196 ++#: booleans.py:203 + msgid "" + "Determine whether sftpd can modify public files used for public file " + "transfer services. Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:197 ++#: booleans.py:204 + msgid "" + "Determine whether sftpd-can read and write files in user home directories." + msgstr "" + +-#: booleans.py:198 ++#: booleans.py:205 + msgid "" + "Determine whether sftpd-can login to local users and read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:199 ++#: booleans.py:206 + msgid "" + "Determine whether sftpd can read and write files in user ssh home " + "directories." + msgstr "" + +-#: booleans.py:200 ++#: booleans.py:207 + msgid "Allow sge to connect to the network using any TCP port" + msgstr "" + +-#: booleans.py:201 ++#: booleans.py:208 + msgid "Allow sge to access nfs file systems." + msgstr "" + +-#: booleans.py:202 ++#: booleans.py:209 + msgid "Determine whether smartmon can support devices on 3ware controllers." + msgstr "" + +-#: booleans.py:203 ++#: booleans.py:210 + msgid "" + "Allow samba to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:204 ++#: booleans.py:211 + msgid "Allow user spamassassin clients to use the network." + msgstr "" + +-#: booleans.py:205 ++#: booleans.py:212 + msgid "Allow spamd to read/write user home directories." + msgstr "" + +-#: booleans.py:206 ++#: booleans.py:213 + msgid "Determine whether squid can connect to all TCP ports." + msgstr "" + +-#: booleans.py:207 ++#: booleans.py:214 + msgid "Determine whether squid can run as a transparent proxy." + msgstr "" + +-#: booleans.py:208 ++#: booleans.py:215 + msgid "" + "Allow ssh with chroot env to read and write files in the user home " + "directories" + msgstr "" + +-#: booleans.py:209 ++#: booleans.py:216 + msgid "allow host key based authentication" + msgstr "" + +-#: booleans.py:210 ++#: booleans.py:217 + msgid "Allow ssh logins as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:211 ++#: booleans.py:218 + msgid "Allow staff to exec content" + msgstr "" + +-#: booleans.py:212 ++#: booleans.py:219 + msgid "allow staff user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:213 ++#: booleans.py:220 + msgid "Allow sysadm to exec content" + msgstr "" + +-#: booleans.py:214 -msgid "Allow the Telepathy connection managers to connect to any network port." ++#: booleans.py:221 +msgid "" +"Allow the Telepathy connection managers to connect to any network port." msgstr "" - #: booleans.py:222 -@@ -3309,8 +3313,8 @@ msgstr "" +-#: booleans.py:215 ++#: booleans.py:222 + msgid "" + "Allow the Telepathy connection managers to connect to any generic TCP port." + msgstr "" - #: booleans.py:238 +-#: booleans.py:216 +-msgid "Allow testpolicy to exec content" +-msgstr "" +- +-#: booleans.py:217 ++#: booleans.py:223 + msgid "" + "Allow tftp to modify public files used for public file transfer services." + msgstr "" + +-#: booleans.py:218 ++#: booleans.py:224 + msgid "Allow tftp to read and write files in the user home directories" + msgstr "" + +-#: booleans.py:219 ++#: booleans.py:225 + msgid "Determine whether tor can bind tcp sockets to all unreserved ports." + msgstr "" + +-#: booleans.py:220 ++#: booleans.py:226 + msgid "Allow tor to act as a relay" + msgstr "" + +-#: booleans.py:221 ++#: booleans.py:227 + msgid "" + "allow unconfined users to transition to the chrome sandbox domains when " + "running chrome-sandbox" + msgstr "" + +-#: booleans.py:222 ++#: booleans.py:228 + msgid "Allow a user to login as an unconfined domain" + msgstr "" + +-#: booleans.py:223 ++#: booleans.py:229 + msgid "" + "Allow unconfined users to transition to the Mozilla plugin domain when " + "running xulrunner plugin-container." + msgstr "" + +-#: booleans.py:224 ++#: booleans.py:230 + msgid "Allow unprivledged user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:225 ++#: booleans.py:231 + msgid "Support ecryptfs home directories" + msgstr "" + +-#: booleans.py:226 ++#: booleans.py:232 + msgid "Support fusefs home directories" + msgstr "" + +-#: booleans.py:227 ++#: booleans.py:233 + msgid "Determine whether to support lpd server." + msgstr "" + +-#: booleans.py:228 ++#: booleans.py:234 + msgid "Support NFS home directories" + msgstr "" + +-#: booleans.py:229 ++#: booleans.py:235 + msgid "Support SAMBA home directories" + msgstr "" + +-#: booleans.py:230 ++#: booleans.py:236 + msgid "Allow user to exec content" + msgstr "" + +-#: booleans.py:231 ++#: booleans.py:237 + msgid "Determine whether varnishd can use the full TCP network." + msgstr "" + +-#: booleans.py:232 ++#: booleans.py:238 msgid "" -"Determine whether attempts by vbetool to mmap low regions should be silently " -"blocked." @@ -5719,20 +15496,839 @@ index ce12bbe..6409e2a 100644 +" blocked." msgstr "" - #: booleans.py:239 -@@ -3388,7 +3392,8 @@ msgstr "" +-#: booleans.py:233 ++#: booleans.py:239 ++msgid "Allow sandbox containers to send audit messages" ++msgstr "" ++ ++#: booleans.py:240 ++msgid "Allow sandbox containers to use netlink system calls" ++msgstr "" ++ ++#: booleans.py:241 + msgid "Allow virtual processes to run as userdomains" + msgstr "" - #: booleans.py:256 +-#: booleans.py:234 ++#: booleans.py:242 + msgid "" + "Allow confined virtual guests to use serial/parallel communication ports" + msgstr "" + +-#: booleans.py:235 ++#: booleans.py:243 + msgid "" + "Allow confined virtual guests to use executable memory and executable stack" + msgstr "" + +-#: booleans.py:236 ++#: booleans.py:244 + msgid "Allow confined virtual guests to read fuse files" + msgstr "" + +-#: booleans.py:237 ++#: booleans.py:245 + msgid "Allow confined virtual guests to manage nfs files" + msgstr "" + +-#: booleans.py:238 ++#: booleans.py:246 + msgid "Allow confined virtual guests to interact with rawip sockets" + msgstr "" + +-#: booleans.py:239 ++#: booleans.py:247 + msgid "Allow confined virtual guests to manage cifs files" + msgstr "" + +-#: booleans.py:240 ++#: booleans.py:248 + msgid "Allow confined virtual guests to interact with the sanlock" + msgstr "" + +-#: booleans.py:241 ++#: booleans.py:249 + msgid "Allow confined virtual guests to use usb devices" + msgstr "" + +-#: booleans.py:242 ++#: booleans.py:250 + msgid "Allow confined virtual guests to interact with the xserver" + msgstr "" + +-#: booleans.py:243 ++#: booleans.py:251 + msgid "Determine whether webadm can manage generic user files." + msgstr "" + +-#: booleans.py:244 ++#: booleans.py:252 + msgid "Determine whether webadm can read generic user files." + msgstr "" + +-#: booleans.py:245 ++#: booleans.py:253 + msgid "" + "Determine whether attempts by wine to mmap low regions should be silently " + "blocked." + msgstr "" + +-#: booleans.py:246 ++#: booleans.py:254 + msgid "Allow the graphical login program to execute bootloader" + msgstr "" + +-#: booleans.py:247 ++#: booleans.py:255 + msgid "" + "Allow the graphical login program to login directly as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:248 ++#: booleans.py:256 msgid "" -"Allow the graphical login program to create files in HOME dirs as xdm_home_t." +"Allow the graphical login program to create files in HOME dirs as " +"xdm_home_t." msgstr "" - #: booleans.py:257 -@@ -3969,8 +3974,8 @@ msgstr "" +-#: booleans.py:249 ++#: booleans.py:257 + msgid "Allow xen to manage nfs files" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:638 +-#: booleans.py:250 ++#: booleans.py:258 + msgid "" + "Allow xend to run blktapctrl/tapdisk. Not required if using dedicated " + "logical volumes for disk images." + msgstr "" + +-#: booleans.py:251 ++#: booleans.py:259 + msgid "Allow xend to run qemu-dm. Not required if using paravirt and no vfb." + msgstr "" + +-#: booleans.py:252 ++#: booleans.py:260 + msgid "" + "Allow xguest users to configure Network Manager and connect to apache ports" + msgstr "" + +-#: booleans.py:253 ++#: booleans.py:261 + msgid "Allow xguest to exec content" + msgstr "" + +-#: booleans.py:254 ++#: booleans.py:262 + msgid "Allow xguest users to mount removable media" + msgstr "" + +-#: booleans.py:255 ++#: booleans.py:263 + msgid "Allow xguest to use blue tooth devices" + msgstr "" + +-#: booleans.py:256 ++#: booleans.py:264 + msgid "Allows clients to write to the X server shared memory segments." + msgstr "" + +-#: booleans.py:257 ++#: booleans.py:265 + msgid "Allows XServer to execute writable memory" + msgstr "" + +-#: booleans.py:258 ++#: booleans.py:266 + msgid "Support X userspace object manager" + msgstr "" + +-#: booleans.py:259 ++#: booleans.py:267 + msgid "Determine whether zabbix can connect to all TCP ports" + msgstr "" + +-#: booleans.py:260 ++#: booleans.py:268 + msgid "Allow zarafa domains to setrlimit/sys_rouserce." + msgstr "" + +-#: booleans.py:261 ++#: booleans.py:269 + msgid "Allow zebra daemon to write it configuration files" + msgstr "" + +-#: booleans.py:262 ++#: booleans.py:270 + msgid "" + "Allow ZoneMinder to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:263 ++#: booleans.py:271 + msgid "Allow ZoneMinder to run su/sudo." + msgstr "" + +-#: ../sepolicy/sepolicy.py:194 ++#: ../sepolicy/sepolicy.py:195 + #, python-format + msgid "Interface %s does not exist." + msgstr "" + +-#: ../sepolicy/sepolicy.py:292 ++#: ../sepolicy/sepolicy.py:293 + msgid "You need to install policycoreutils-gui package to use the gui option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:296 ++#: ../sepolicy/sepolicy.py:297 + msgid "Graphical User Interface for SELinux Policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:299 ../sepolicy/sepolicy.py:345 ++#: ../sepolicy/sepolicy.py:300 ../sepolicy/sepolicy.py:346 + msgid "Domain name(s) of man pages to be created" + msgstr "" + +-#: ../sepolicy/sepolicy.py:311 ++#: ../sepolicy/sepolicy.py:312 + msgid "Alternative root needs to be setup" + msgstr "" + +-#: ../sepolicy/sepolicy.py:327 ++#: ../sepolicy/sepolicy.py:328 + msgid "Generate SELinux man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:330 ++#: ../sepolicy/sepolicy.py:331 + msgid "path in which the generated SELinux man pages will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:332 ++#: ../sepolicy/sepolicy.py:333 + msgid "name of the OS for man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:334 ++#: ../sepolicy/sepolicy.py:335 + msgid "Generate HTML man pages structure for selected SELinux man page" + msgstr "" + +-#: ../sepolicy/sepolicy.py:336 ++#: ../sepolicy/sepolicy.py:337 + msgid "Alternate root directory, defaults to /" + msgstr "" + +-#: ../sepolicy/sepolicy.py:338 ++#: ../sepolicy/sepolicy.py:339 + msgid "" + "With this flag, alternative root path needs to include file context files " + "and policy.xml file" + msgstr "" + +-#: ../sepolicy/sepolicy.py:342 ++#: ../sepolicy/sepolicy.py:343 + msgid "All domains" + msgstr "" + +-#: ../sepolicy/sepolicy.py:350 ++#: ../sepolicy/sepolicy.py:351 + msgid "Query SELinux policy network information" + msgstr "" + +-#: ../sepolicy/sepolicy.py:355 ++#: ../sepolicy/sepolicy.py:356 + msgid "list all SELinux port types" + msgstr "" + +-#: ../sepolicy/sepolicy.py:358 ++#: ../sepolicy/sepolicy.py:359 + msgid "show SELinux type related to the port" + msgstr "" + +-#: ../sepolicy/sepolicy.py:361 ++#: ../sepolicy/sepolicy.py:362 + msgid "Show ports defined for this SELinux type" + msgstr "" + +-#: ../sepolicy/sepolicy.py:364 ++#: ../sepolicy/sepolicy.py:365 + msgid "show ports to which this domain can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:367 ++#: ../sepolicy/sepolicy.py:368 + msgid "show ports to which this application can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:382 ++#: ../sepolicy/sepolicy.py:383 + msgid "query SELinux policy to see if domains can communicate with each other" + msgstr "" + +-#: ../sepolicy/sepolicy.py:385 ++#: ../sepolicy/sepolicy.py:386 + msgid "Source Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:388 ++#: ../sepolicy/sepolicy.py:389 + msgid "Target Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:407 ++#: ../sepolicy/sepolicy.py:408 + msgid "query SELinux Policy to see description of booleans" + msgstr "" + +-#: ../sepolicy/sepolicy.py:411 ++#: ../sepolicy/sepolicy.py:412 + msgid "get all booleans descriptions" + msgstr "" + +-#: ../sepolicy/sepolicy.py:414 ++#: ../sepolicy/sepolicy.py:415 + msgid "boolean to get description" + msgstr "" + +-#: ../sepolicy/sepolicy.py:424 ++#: ../sepolicy/sepolicy.py:425 + msgid "" + "query SELinux Policy to see how a source process domain can transition to " + "the target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:427 ++#: ../sepolicy/sepolicy.py:428 + msgid "source process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:430 ++#: ../sepolicy/sepolicy.py:431 + msgid "target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:472 ++#: ../sepolicy/sepolicy.py:473 + #, python-format + msgid "sepolicy generate: error: one of the arguments %s is required" + msgstr "" + +-#: ../sepolicy/sepolicy.py:477 ++#: ../sepolicy/sepolicy.py:478 + msgid "Command required for this type of policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:488 ++#: ../sepolicy/sepolicy.py:489 + #, python-format + msgid "" + "-t option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:493 ++#: ../sepolicy/sepolicy.py:494 + #, python-format + msgid "" + "-d option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:497 ++#: ../sepolicy/sepolicy.py:498 + #, python-format + msgid "" + "-a option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:501 ++#: ../sepolicy/sepolicy.py:502 + msgid "-w option can not be used with the --newtype option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:521 ++#: ../sepolicy/sepolicy.py:522 + msgid "List SELinux Policy interfaces" + msgstr "" + +-#: ../sepolicy/sepolicy.py:541 ++#: ../sepolicy/sepolicy.py:542 + msgid "Enter interface names, you wish to query" + msgstr "" + +-#: ../sepolicy/sepolicy.py:550 ++#: ../sepolicy/sepolicy.py:551 + msgid "Generate SELinux Policy module template" + msgstr "" + +-#: ../sepolicy/sepolicy.py:553 ++#: ../sepolicy/sepolicy.py:554 + msgid "Enter domain type which you will be extending" + msgstr "" + +-#: ../sepolicy/sepolicy.py:556 ++#: ../sepolicy/sepolicy.py:557 + msgid "Enter SELinux user(s) which will transition to this domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:559 ++#: ../sepolicy/sepolicy.py:560 + msgid "Enter SELinux role(s) to which the administror domain will transition" + msgstr "" + +-#: ../sepolicy/sepolicy.py:562 ++#: ../sepolicy/sepolicy.py:563 + msgid "Enter domain(s) which this confined admin will administrate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:565 ++#: ../sepolicy/sepolicy.py:566 + msgid "name of policy to generate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:572 ++#: ../sepolicy/sepolicy.py:573 + msgid "path in which the generated policy files will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:574 ++#: ../sepolicy/sepolicy.py:575 + msgid "path to which the confined processes will need to write" + msgstr "" + +-#: ../sepolicy/sepolicy.py:575 ++#: ../sepolicy/sepolicy.py:576 + msgid "Policy types which require a command" + msgstr "" + +-#: ../sepolicy/sepolicy.py:579 ../sepolicy/sepolicy.py:582 +-#: ../sepolicy/sepolicy.py:585 ../sepolicy/sepolicy.py:588 +-#: ../sepolicy/sepolicy.py:591 ../sepolicy/sepolicy.py:597 +-#: ../sepolicy/sepolicy.py:600 ../sepolicy/sepolicy.py:603 +-#: ../sepolicy/sepolicy.py:609 ../sepolicy/sepolicy.py:612 +-#: ../sepolicy/sepolicy.py:615 ../sepolicy/sepolicy.py:618 ++#: ../sepolicy/sepolicy.py:580 ../sepolicy/sepolicy.py:583 ++#: ../sepolicy/sepolicy.py:586 ../sepolicy/sepolicy.py:589 ++#: ../sepolicy/sepolicy.py:592 ../sepolicy/sepolicy.py:598 ++#: ../sepolicy/sepolicy.py:601 ../sepolicy/sepolicy.py:604 ++#: ../sepolicy/sepolicy.py:610 ../sepolicy/sepolicy.py:613 ++#: ../sepolicy/sepolicy.py:616 ../sepolicy/sepolicy.py:619 + #, python-format + msgid "Generate '%s' policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:606 ++#: ../sepolicy/sepolicy.py:607 + #, python-format + msgid "Generate '%s' policy " + msgstr "" + +-#: ../sepolicy/sepolicy.py:620 ++#: ../sepolicy/sepolicy.py:621 + msgid "executable to confine" + msgstr "" + +-#: ../sepolicy/sepolicy.py:625 ++#: ../sepolicy/sepolicy.py:626 + msgid "commands" + msgstr "" + +-#: ../sepolicy/sepolicy.py:628 ++#: ../sepolicy/sepolicy.py:629 + msgid "Alternate SELinux policy, defaults to /sys/fs/selinux/policy" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:89 ++#: ../sepolicy/sepolicy/__init__.py:96 + #, python-format + msgid "-- Allowed %s [ %s ]" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:95 ../sepolicy/sepolicy/gui.py:1135 ++#: ../sepolicy/sepolicy/__init__.py:102 ../sepolicy/sepolicy/gui.py:1152 + msgid "all files" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:96 ++#: ../sepolicy/sepolicy/__init__.py:103 + msgid "regular file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:97 ++#: ../sepolicy/sepolicy/__init__.py:104 + msgid "directory" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:98 ++#: ../sepolicy/sepolicy/__init__.py:105 + msgid "character device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:99 ++#: ../sepolicy/sepolicy/__init__.py:106 + msgid "block device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:100 ++#: ../sepolicy/sepolicy/__init__.py:107 + msgid "socket file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:101 ++#: ../sepolicy/sepolicy/__init__.py:108 + msgid "symbolic link" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:102 ++#: ../sepolicy/sepolicy/__init__.py:109 + msgid "named pipe" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:398 ++#: ../sepolicy/sepolicy/__init__.py:427 + msgid "No SELinux Policy installed" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:478 ++#: ../sepolicy/sepolicy/__init__.py:506 + msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:724 ++#: ../sepolicy/sepolicy/__init__.py:768 + #, python-format + msgid "Failed to read %s policy file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:829 ++#: ../sepolicy/sepolicy/__init__.py:873 + msgid "unknown" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:132 ++#: ../sepolicy/sepolicy/generate.py:134 + msgid "Internet Services Daemon" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:136 ++#: ../sepolicy/sepolicy/generate.py:138 + msgid "Existing Domain Type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:137 ++#: ../sepolicy/sepolicy/generate.py:139 + msgid "Minimal Terminal Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:138 ++#: ../sepolicy/sepolicy/generate.py:140 + msgid "Minimal X Windows Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:139 ++#: ../sepolicy/sepolicy/generate.py:141 + msgid "Desktop Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:140 ++#: ../sepolicy/sepolicy/generate.py:142 + msgid "Administrator Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:141 ++#: ../sepolicy/sepolicy/generate.py:143 + msgid "Confined Root Administrator Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:142 ++#: ../sepolicy/sepolicy/generate.py:144 + msgid "Module information for a new type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:147 ++#: ../sepolicy/sepolicy/generate.py:149 + msgid "Valid Types:\n" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:181 ++#: ../sepolicy/sepolicy/generate.py:183 + #, python-format + msgid "Ports must be numbers or ranges of numbers from 1 to %d " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:192 ++#: ../sepolicy/sepolicy/generate.py:194 + msgid "You must enter a valid policy type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:195 ++#: ../sepolicy/sepolicy/generate.py:197 + #, python-format + msgid "You must enter a name for your policy module for your '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:333 ++#: ../sepolicy/sepolicy/generate.py:335 + msgid "" + "Name must be alpha numberic with no spaces. Consider using option \"-n " + "MODULENAME\"" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:425 ++#: ../sepolicy/sepolicy/generate.py:427 + msgid "User Role types can not be assigned executables." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:431 ++#: ../sepolicy/sepolicy/generate.py:433 + msgid "Only Daemon apps can use an init script.." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:449 ++#: ../sepolicy/sepolicy/generate.py:451 + msgid "use_resolve must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:455 ++#: ../sepolicy/sepolicy/generate.py:457 + msgid "use_syslog must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:461 ++#: ../sepolicy/sepolicy/generate.py:463 + msgid "use_kerberos must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:467 ++#: ../sepolicy/sepolicy/generate.py:469 + msgid "manage_krb5_rcache must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:497 ++#: ../sepolicy/sepolicy/generate.py:499 + msgid "USER Types automatically get a tmp type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:838 ++#: ../sepolicy/sepolicy/generate.py:840 + #, python-format + msgid "'%s' policy modules require existing domains" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:863 ++#: ../sepolicy/sepolicy/generate.py:865 + msgid "Type field required" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:876 ++#: ../sepolicy/sepolicy/generate.py:878 + #, python-format + msgid "" + "You need to define a new type which ends with: \n" + " %s" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1104 ++#: ../sepolicy/sepolicy/generate.py:1106 + msgid "You must enter the executable path for your confined process" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1363 ++#: ../sepolicy/sepolicy/generate.py:1369 + msgid "Type Enforcement file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1364 ++#: ../sepolicy/sepolicy/generate.py:1370 + msgid "Interface file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1365 ++#: ../sepolicy/sepolicy/generate.py:1371 + msgid "File Contexts file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1367 ++#: ../sepolicy/sepolicy/generate.py:1373 + msgid "Spec file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1368 ++#: ../sepolicy/sepolicy/generate.py:1374 + msgid "Setup Script" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:25 +-#: ../sepolicy/sepolicy/sepolicy.glade:4369 ++#: ../sepolicy/sepolicy/sepolicy.glade:4330 + msgid "Applications" + msgstr "" + +@@ -3803,562 +3863,555 @@ msgstr "" + msgid "Select domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search >>" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2343 + msgid "File Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2316 ++#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2353 + msgid "Users" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:129 +-#: ../sepolicy/sepolicy/sepolicy.glade:1897 +-#: ../sepolicy/sepolicy/sepolicy.glade:3802 ../sepolicy/sepolicy/gui.py:2297 ++#: ../sepolicy/sepolicy/sepolicy.glade:1898 ++#: ../sepolicy/sepolicy/sepolicy.glade:3803 ../sepolicy/sepolicy/gui.py:2334 + msgid "System" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:189 +-#: ../sepolicy/sepolicy/sepolicy.glade:4406 +-#: ../sepolicy/sepolicy/sepolicy.glade:4499 +-#: ../sepolicy/sepolicy/sepolicy.glade:4645 +-#: ../sepolicy/sepolicy/sepolicy.glade:4793 +-#: ../sepolicy/sepolicy/sepolicy.glade:4934 +-#: ../sepolicy/sepolicy/sepolicy.glade:5007 ++#: ../sepolicy/sepolicy/sepolicy.glade:4367 ++#: ../sepolicy/sepolicy/sepolicy.glade:4460 ++#: ../sepolicy/sepolicy/sepolicy.glade:4606 ++#: ../sepolicy/sepolicy/sepolicy.glade:4755 ++#: ../sepolicy/sepolicy/sepolicy.glade:4889 ++#: ../sepolicy/sepolicy/sepolicy.glade:5030 ++#: ../sepolicy/sepolicy/sepolicy.glade:5103 ++#: ../sepolicy/sepolicy/sepolicy.glade:5238 + msgid "Select" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:204 +-#: ../sepolicy/sepolicy/sepolicy.glade:557 +-#: ../sepolicy/sepolicy/sepolicy.glade:702 +-#: ../sepolicy/sepolicy/sepolicy.glade:1243 +-#: ../sepolicy/sepolicy/sepolicy.glade:1539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4579 +-#: ../sepolicy/sepolicy/sepolicy.glade:4729 +-#: ../sepolicy/sepolicy/sepolicy.glade:4859 +-#: ../sepolicy/sepolicy/sepolicy.glade:5077 +-#: ../sepolicy/sepolicy/sepolicy.glade:5233 +-#: ../sepolicy/sepolicy/sepolicy.glade:5474 ++#: ../sepolicy/sepolicy/sepolicy.glade:539 ++#: ../sepolicy/sepolicy/sepolicy.glade:684 ++#: ../sepolicy/sepolicy/sepolicy.glade:1239 ++#: ../sepolicy/sepolicy/sepolicy.glade:1535 ++#: ../sepolicy/sepolicy/sepolicy.glade:4540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4690 ++#: ../sepolicy/sepolicy/sepolicy.glade:4821 ++#: ../sepolicy/sepolicy/sepolicy.glade:4955 ++#: ../sepolicy/sepolicy/sepolicy.glade:5173 ++#: ../sepolicy/sepolicy/sepolicy.glade:5304 ++#: ../sepolicy/sepolicy/sepolicy.glade:5464 + msgid "Cancel" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:350 ++#: ../sepolicy/sepolicy/sepolicy.glade:332 + msgid "" + "The entry that was entered is incorrect. Please try again in the " + "ex:/.../... format." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:376 ++#: ../sepolicy/sepolicy/sepolicy.glade:358 + msgid "Retry" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:460 +-#: ../sepolicy/sepolicy/sepolicy.glade:1124 +-#: ../sepolicy/sepolicy/sepolicy.glade:1372 +-#: ../sepolicy/sepolicy/sepolicy.glade:5102 +-#: ../sepolicy/sepolicy/sepolicy.glade:5343 ++#: ../sepolicy/sepolicy/sepolicy.glade:442 ++#: ../sepolicy/sepolicy/sepolicy.glade:1120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1368 ++#: ../sepolicy/sepolicy/sepolicy.glade:5332 + msgid "Network Port Definitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:476 ++#: ../sepolicy/sepolicy/sepolicy.glade:458 + msgid "" +-"Add file Equivilence Mapping. Mapping will be created when Update is " ++"Add file Equivalence Mapping. Mapping will be created when Update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:501 +-#: ../sepolicy/sepolicy/sepolicy.glade:4045 ++#: ../sepolicy/sepolicy/sepolicy.glade:483 ++#: ../sepolicy/sepolicy/sepolicy.glade:4046 + msgid "Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:511 +-#: ../sepolicy/sepolicy/sepolicy.glade:5154 +-#: ../sepolicy/sepolicy/sepolicy.glade:5395 ++#: ../sepolicy/sepolicy/sepolicy.glade:493 ++#: ../sepolicy/sepolicy/sepolicy.glade:5384 + msgid "" + "Specify a new SELinux user name. By convention SELinux User names usually " + "end in an _u." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:515 ++#: ../sepolicy/sepolicy/sepolicy.glade:497 + msgid "Enter the path to which you want to setup an equivalence label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:528 +-#: ../sepolicy/sepolicy/sepolicy.glade:4062 +-#: ../sepolicy/sepolicy/sepolicy.glade:4819 ++#: ../sepolicy/sepolicy/sepolicy.glade:510 ++#: ../sepolicy/sepolicy/sepolicy.glade:4063 ++#: ../sepolicy/sepolicy/sepolicy.glade:4781 + msgid "Equivalence Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:542 +-#: ../sepolicy/sepolicy/sepolicy.glade:687 +-#: ../sepolicy/sepolicy/sepolicy.glade:1228 +-#: ../sepolicy/sepolicy/sepolicy.glade:1524 +-#: ../sepolicy/sepolicy/sepolicy.glade:5218 +-#: ../sepolicy/sepolicy/sepolicy.glade:5459 ++#: ../sepolicy/sepolicy/sepolicy.glade:524 ++#: ../sepolicy/sepolicy/sepolicy.glade:669 ++#: ../sepolicy/sepolicy/sepolicy.glade:1224 ++#: ../sepolicy/sepolicy/sepolicy.glade:1520 ++#: ../sepolicy/sepolicy/sepolicy.glade:5449 + msgid "Save to update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:582 ++#: ../sepolicy/sepolicy/sepolicy.glade:564 + msgid "" + "Specify the mapping between the new path and the equivalence path. " + "Everything under this new path will be labeled as if they were under the " + "equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:639 ++#: ../sepolicy/sepolicy/sepolicy.glade:621 + msgid "Add a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:656 ++#: ../sepolicy/sepolicy/sepolicy.glade:638 msgid "" -" File Labeling for . File labels will be created " -"when update is applied." @@ -5740,10 +16336,71 @@ index ce12bbe..6409e2a 100644 +" when update is applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:726 -@@ -4022,8 +4027,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:744 +-#: ../sepolicy/sepolicy/sepolicy.glade:1471 +-#: ../sepolicy/sepolicy/sepolicy.glade:3510 ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/sepolicy.glade:726 ++#: ../sepolicy/sepolicy/sepolicy.glade:1467 ++#: ../sepolicy/sepolicy/sepolicy.glade:3511 ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced >>" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:880 +-#: ../sepolicy/sepolicy/sepolicy.glade:765 +-#: ../sepolicy/sepolicy/sepolicy.glade:2305 +-#: ../sepolicy/sepolicy/sepolicy.glade:2417 +-#: ../sepolicy/sepolicy/sepolicy.glade:2539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4539 ++#: ../sepolicy/sepolicy/sepolicy.glade:747 ++#: ../sepolicy/sepolicy/sepolicy.glade:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:2418 ++#: ../sepolicy/sepolicy/sepolicy.glade:2540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4500 + msgid "Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:781 ++#: ../sepolicy/sepolicy/sepolicy.glade:763 + msgid "Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:795 ++#: ../sepolicy/sepolicy/sepolicy.glade:777 + msgid "" + "Select the file class to which this label will be applied. Defaults to all " + "classes." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:822 ++#: ../sepolicy/sepolicy/sepolicy.glade:804 + msgid "Make Path Recursive" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:826 ++#: ../sepolicy/sepolicy/sepolicy.glade:808 + msgid "" +-"Select Make Path Recursive iff you want to apply this label to all children " ++"Select Make Path Recursive if you want to apply this label to all children " + "of the specified directory path. objects under the directory to have this " + "label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:839 ++#: ../sepolicy/sepolicy/sepolicy.glade:821 + msgid "Browse" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:843 ++#: ../sepolicy/sepolicy/sepolicy.glade:825 + msgid "Browse to select the file/directory for labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:887 ++#: ../sepolicy/sepolicy/sepolicy.glade:869 + msgid "Path " + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:898 ++#: ../sepolicy/sepolicy/sepolicy.glade:880 msgid "" -"Specify the path using regular expressions that you would like to modify the " -"labeling." @@ -5751,10 +16408,378 @@ index ce12bbe..6409e2a 100644 +" labeling." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:902 -@@ -4311,8 +4316,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:920 ++#: ../sepolicy/sepolicy/sepolicy.glade:902 + msgid "Select the SELinux file type to assign to this path." + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3012 +-#: ../sepolicy/sepolicy/sepolicy.glade:947 ++#: ../sepolicy/sepolicy/sepolicy.glade:929 + msgid "Enter the MLS Label to assign to this file path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:951 ++#: ../sepolicy/sepolicy/sepolicy.glade:933 + msgid "SELinux MLS Label you wish to assign to this path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1088 ++#: ../sepolicy/sepolicy/sepolicy.glade:1070 + msgid "Analyzing Policy..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1141 ++#: ../sepolicy/sepolicy/sepolicy.glade:1137 + msgid "" + "Add Login Mapping. Login Mapping will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1176 ++#: ../sepolicy/sepolicy/sepolicy.glade:1172 + msgid "" + "Enter the login user name of the user to which you wish to add SELinux User " + "confinement." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1205 ++#: ../sepolicy/sepolicy/sepolicy.glade:1201 + msgid "" + "Select the SELinux User to assign to this login user. Login users by " + "default get assigned by the __default__ user." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1268 ++#: ../sepolicy/sepolicy/sepolicy.glade:1264 + msgid "" + "Enter MLS/MCS Range for this login User. Defaults to the range for the " + "Selected SELinux User." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1271 +-#: ../sepolicy/sepolicy/sepolicy.glade:3191 +-#: ../sepolicy/sepolicy/sepolicy.glade:3312 +-#: ../sepolicy/sepolicy/sepolicy.glade:5184 +-#: ../sepolicy/sepolicy/sepolicy.glade:5425 ++#: ../sepolicy/sepolicy/sepolicy.glade:1267 ++#: ../sepolicy/sepolicy/sepolicy.glade:3192 ++#: ../sepolicy/sepolicy/sepolicy.glade:3313 ++#: ../sepolicy/sepolicy/sepolicy.glade:5414 + msgid "MLS Range" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1283 ++#: ../sepolicy/sepolicy/sepolicy.glade:1279 + msgid "" + "Specify the MLS Range for this user to login in with. Defaults to the " + "selected SELinux Users MLS Range." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1389 ++#: ../sepolicy/sepolicy/sepolicy.glade:1385 + msgid "" + " Network Port for . Ports will be created when " + "update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1427 ++#: ../sepolicy/sepolicy/sepolicy.glade:1423 + msgid "Enter the port number or range to which you want to add a port type." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1457 ++#: ../sepolicy/sepolicy/sepolicy.glade:1453 + msgid "Port Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1502 ++#: ../sepolicy/sepolicy/sepolicy.glade:1498 + msgid "Select the port type you want to assign to the specified port number." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1566 ++#: ../sepolicy/sepolicy/sepolicy.glade:1562 + msgid "tcp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1570 ++#: ../sepolicy/sepolicy/sepolicy.glade:1566 + msgid "" + "Select tcp if the port type should be assigned to tcp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1583 ++#: ../sepolicy/sepolicy/sepolicy.glade:1579 + msgid "udp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1587 ++#: ../sepolicy/sepolicy/sepolicy.glade:1583 + msgid "" + "Select udp if the port type should be assigned to udp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1609 ++#: ../sepolicy/sepolicy/sepolicy.glade:1605 + msgid "Enter the MLS Label to assign to this port." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1706 ++#: ../sepolicy/sepolicy/sepolicy.glade:1707 + msgid "SELinux Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1742 ++#: ../sepolicy/sepolicy/sepolicy.glade:1743 + msgid "Select..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1791 +-#: ../sepolicy/sepolicy/sepolicy.glade:2211 ++#: ../sepolicy/sepolicy/sepolicy.glade:1792 ++#: ../sepolicy/sepolicy/sepolicy.glade:2212 + msgid "Booleans" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1795 ++#: ../sepolicy/sepolicy/sepolicy.glade:1796 + msgid "" + "Display boolean information that can be used to modify the policy for the " + "'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1809 +-#: ../sepolicy/sepolicy/sepolicy.glade:2596 ++#: ../sepolicy/sepolicy/sepolicy.glade:1810 ++#: ../sepolicy/sepolicy/sepolicy.glade:2597 + msgid "Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1813 ++#: ../sepolicy/sepolicy/sepolicy.glade:1814 + msgid "" + "Display file type information that can be used by the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1827 +-#: ../sepolicy/sepolicy/sepolicy.glade:2829 ++#: ../sepolicy/sepolicy/sepolicy.glade:1828 ++#: ../sepolicy/sepolicy/sepolicy.glade:2830 + msgid "Network" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1831 ++#: ../sepolicy/sepolicy/sepolicy.glade:1832 + msgid "" + "Display network ports to which the 'selected domain' can connect or listen " + "to." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1845 +-#: ../sepolicy/sepolicy/sepolicy.glade:3120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1846 ++#: ../sepolicy/sepolicy/sepolicy.glade:3121 + msgid "Transitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1849 ++#: ../sepolicy/sepolicy/sepolicy.glade:1850 + msgid "" + "Display applications that can transition into or out of the 'selected " + "domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1863 +-#: ../sepolicy/sepolicy/sepolicy.glade:3221 ++#: ../sepolicy/sepolicy/sepolicy.glade:1864 ++#: ../sepolicy/sepolicy/sepolicy.glade:3222 + msgid "Login Mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1866 +-#: ../sepolicy/sepolicy/sepolicy.glade:1883 +-#: ../sepolicy/sepolicy/sepolicy.glade:1900 ++#: ../sepolicy/sepolicy/sepolicy.glade:1867 ++#: ../sepolicy/sepolicy/sepolicy.glade:1884 ++#: ../sepolicy/sepolicy/sepolicy.glade:1901 + msgid "Manage the SELinux configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1880 +-#: ../sepolicy/sepolicy/sepolicy.glade:3343 ++#: ../sepolicy/sepolicy/sepolicy.glade:1881 ++#: ../sepolicy/sepolicy/sepolicy.glade:3344 + msgid "SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1914 +-#: ../sepolicy/sepolicy/sepolicy.glade:4015 ++#: ../sepolicy/sepolicy/sepolicy.glade:1915 ++#: ../sepolicy/sepolicy/sepolicy.glade:4016 + msgid "Lockdown" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1917 ++#: ../sepolicy/sepolicy/sepolicy.glade:1918 + msgid "" + "Lockdown the SELinux System.\n" + "This screen can be used to turn up the SELinux Protections." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1932 ++#: ../sepolicy/sepolicy/sepolicy.glade:1933 + msgid "radiobutton" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2020 ++#: ../sepolicy/sepolicy/sepolicy.glade:2021 + msgid "Show Modified Only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2059 ++#: ../sepolicy/sepolicy/sepolicy.glade:2060 + msgid "Mislabeled files exist" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2079 ++#: ../sepolicy/sepolicy/sepolicy.glade:2080 + msgid "Show mislabeled files only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2119 +-#: ../sepolicy/sepolicy/sepolicy.glade:3243 ++#: ../sepolicy/sepolicy/sepolicy.glade:2120 ++#: ../sepolicy/sepolicy/sepolicy.glade:3244 + msgid "" +-"If-Then-Else rules written in policy that can \n" ++"If-Then-Else rules written in policy that can\n" + "allow alternative access control." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2131 ++#: ../sepolicy/sepolicy/sepolicy.glade:2132 + msgid "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2251 +-#: ../sepolicy/sepolicy/sepolicy.glade:2363 +-#: ../sepolicy/sepolicy/sepolicy.glade:2481 +-#: ../sepolicy/sepolicy/sepolicy.glade:4512 +-#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:2252 ++#: ../sepolicy/sepolicy/sepolicy.glade:2364 ++#: ../sepolicy/sepolicy/sepolicy.glade:2482 ++#: ../sepolicy/sepolicy/sepolicy.glade:4473 ++#: ../sepolicy/sepolicy/sepolicy.glade:4768 + msgid "File Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2287 +-#: ../sepolicy/sepolicy/sepolicy.glade:2398 ++#: ../sepolicy/sepolicy/sepolicy.glade:2288 ++#: ../sepolicy/sepolicy/sepolicy.glade:2399 + msgid "SELinux File Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2331 ++#: ../sepolicy/sepolicy/sepolicy.glade:2332 + msgid "File path used to enter the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2332 ++#: ../sepolicy/sepolicy/sepolicy.glade:2333 + msgid "Executable Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2447 ++#: ../sepolicy/sepolicy/sepolicy.glade:2448 + msgid "Files to which the 'selected domain' can write." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2448 ++#: ../sepolicy/sepolicy/sepolicy.glade:2449 + msgid "Writable files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2570 ++#: ../sepolicy/sepolicy/sepolicy.glade:2571 + msgid "File Types defined for the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2571 ++#: ../sepolicy/sepolicy/sepolicy.glade:2572 + msgid "Application File Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2703 ++#: ../sepolicy/sepolicy/sepolicy.glade:2704 + msgid "Network Ports to which the 'selected domain' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2704 ++#: ../sepolicy/sepolicy/sepolicy.glade:2705 + msgid "Outbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2803 ++#: ../sepolicy/sepolicy/sepolicy.glade:2804 + msgid "Network Ports to which the 'selected domain' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2804 ++#: ../sepolicy/sepolicy/sepolicy.glade:2805 + msgid "Inbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2865 ++#: ../sepolicy/sepolicy/sepolicy.glade:2866 ++#: ../sepolicy/sepolicy/sepolicy.glade:2956 + msgid "" +-"Boolean \n" ++"Boolean\n" + "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2891 ++#: ../sepolicy/sepolicy/sepolicy.glade:2892 + msgid "Boolean name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2908 ++#: ../sepolicy/sepolicy/sepolicy.glade:2909 + msgid "SELinux Application Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2929 ++#: ../sepolicy/sepolicy/sepolicy.glade:2930 + msgid "" + "Executables which will transition to a different domain, when the 'selected " + "domain' executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2932 +-msgid "Applicaton Transitions From 'select domain'" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:2955 +-msgid "" +-"Boolean\n" +-"Enabled" ++#: ../sepolicy/sepolicy/sepolicy.glade:2933 ++msgid "Application Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2971 ++#: ../sepolicy/sepolicy/sepolicy.glade:2972 + msgid "Calling Process Domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2987 ++#: ../sepolicy/sepolicy/sepolicy.glade:2988 + msgid "Executable File" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3011 ++#: ../sepolicy/sepolicy/sepolicy.glade:3012 msgid "" -"Executables which will transition to the 'selected domain', when executing a " -"selected domains entrypoint." @@ -5762,10 +16787,160 @@ index ce12bbe..6409e2a 100644 +" selected domains entrypoint." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3013 -@@ -4437,8 +4442,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:3012 ++#: ../sepolicy/sepolicy/sepolicy.glade:3013 + msgid "Application Transitions Into 'select domain'" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3957 +-#: ../sepolicy/sepolicy/sepolicy.glade:3027 ++#: ../sepolicy/sepolicy/sepolicy.glade:3028 + msgid "" + "File Transitions define what happens when the current domain creates the " + "content of a particular class in a directory of the destination type. " + "Optionally a file name could be specified for the transition." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3035 ++#: ../sepolicy/sepolicy/sepolicy.glade:3036 + msgid "SELinux Directory Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3048 ++#: ../sepolicy/sepolicy/sepolicy.glade:3049 + msgid "Destination Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3062 ++#: ../sepolicy/sepolicy/sepolicy.glade:3063 + msgid "SELinux Destination Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3075 ++#: ../sepolicy/sepolicy/sepolicy.glade:3076 + msgid "File Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3097 ++#: ../sepolicy/sepolicy/sepolicy.glade:3098 + msgid "File Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3296 +-#: ../sepolicy/sepolicy/sepolicy.glade:5277 +-#: ../sepolicy/sepolicy/sepolicy.glade:5518 ++#: ../sepolicy/sepolicy/sepolicy.glade:3297 ++#: ../sepolicy/sepolicy/sepolicy.glade:5508 + msgid "Default Level" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3382 ++#: ../sepolicy/sepolicy/sepolicy.glade:3383 + msgid "Select the system mode when the system first boots up" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3455 ++#: ../sepolicy/sepolicy/sepolicy.glade:3456 + msgid "Select the system mode for the current session" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3532 ++#: ../sepolicy/sepolicy/sepolicy.glade:3533 + msgid "System Policy Type:" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3593 ++#: ../sepolicy/sepolicy/sepolicy.glade:3594 + msgid "System Mode" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3631 ++#: ../sepolicy/sepolicy/sepolicy.glade:3632 + msgid "Import system settings from another machine" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3639 ++#: ../sepolicy/sepolicy/sepolicy.glade:3640 + msgid "Import" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3658 ++#: ../sepolicy/sepolicy/sepolicy.glade:3659 + msgid "Export system settings to a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3668 ++#: ../sepolicy/sepolicy/sepolicy.glade:3669 + msgid "Export" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3687 ++#: ../sepolicy/sepolicy/sepolicy.glade:3688 + msgid "Relabel all files back to system defaults on reboot" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3724 +-#: ../sepolicy/sepolicy/sepolicy.glade:3825 +-#: ../sepolicy/sepolicy/sepolicy.glade:3889 +-#: ../sepolicy/sepolicy/sepolicy.glade:3952 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3725 ++#: ../sepolicy/sepolicy/sepolicy.glade:3826 ++#: ../sepolicy/sepolicy/sepolicy.glade:3890 ++#: ../sepolicy/sepolicy/sepolicy.glade:3953 ../sepolicy/sepolicy/gui.py:64 + msgid "Yes" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3741 +-#: ../sepolicy/sepolicy/sepolicy.glade:3843 +-#: ../sepolicy/sepolicy/sepolicy.glade:3906 +-#: ../sepolicy/sepolicy/sepolicy.glade:3969 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3742 ++#: ../sepolicy/sepolicy/sepolicy.glade:3844 ++#: ../sepolicy/sepolicy/sepolicy.glade:3907 ++#: ../sepolicy/sepolicy/sepolicy.glade:3970 ../sepolicy/sepolicy/gui.py:64 + msgid "No" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3782 ++#: ../sepolicy/sepolicy/sepolicy.glade:3783 + msgid "System Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3829 +-#: ../sepolicy/sepolicy/sepolicy.glade:3847 ++#: ../sepolicy/sepolicy/sepolicy.glade:3830 ++#: ../sepolicy/sepolicy/sepolicy.glade:3848 + msgid "" + "An unconfined domain is a process label that allows the process to do what " + "it wants, without SELinux interfering. Applications started at boot by the " +@@ -4368,13 +4421,13 @@ msgid "" + "unconfined_t from the users/login screens." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3865 ++#: ../sepolicy/sepolicy/sepolicy.glade:3866 + msgid "Disable ability to run unconfined system processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3893 +-#: ../sepolicy/sepolicy/sepolicy.glade:3910 +-#: ../sepolicy/sepolicy/sepolicy.glade:3973 ++#: ../sepolicy/sepolicy/sepolicy.glade:3894 ++#: ../sepolicy/sepolicy/sepolicy.glade:3911 ++#: ../sepolicy/sepolicy/sepolicy.glade:3974 + msgid "" + "An permissive domain is a process label that allows the process to do what " + "it wants, with SELinux only logging the denials, but not enforcing them. " +@@ -4383,184 +4436,202 @@ msgid "" + "allowed." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3928 ++#: ../sepolicy/sepolicy/sepolicy.glade:3929 + msgid "Disable all permissive processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3956 ++#: ../sepolicy/sepolicy/sepolicy.glade:3957 msgid "" -"A permissive domain is a process label that allows the process to do what it " -"wants, with SELinux only logging the denials, but not enforcing them. " @@ -5774,9 +16949,47 @@ index ce12bbe..6409e2a 100644 "Usually permissive domains indicate experimental policy, disabling the " "module could cause SELinux to deny access to a domain, that should be " "allowed." -@@ -4476,8 +4481,8 @@ msgstr "" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4214 +-#: ../sepolicy/sepolicy/sepolicy.glade:3994 ++#: ../sepolicy/sepolicy/sepolicy.glade:3995 + msgid "Deny all processes from ptracing or debugging other processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4031 ++#: ../sepolicy/sepolicy/sepolicy.glade:4032 + msgid "" + "File equivalence cause the system to label content under the new path as if " + "it were under the equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4087 ++#: ../sepolicy/sepolicy/sepolicy.glade:4088 + msgid "Files Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4100 ++#: ../sepolicy/sepolicy/sepolicy.glade:4101 + msgid "...SELECT TO VIEW DATA..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4131 ++#: ../sepolicy/sepolicy/sepolicy.glade:4132 + msgid "Delete" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4147 ++#: ../sepolicy/sepolicy/sepolicy.glade:4148 + msgid "Modify" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4208 ++#: ../sepolicy/sepolicy/sepolicy.glade:4209 + msgid "Revert" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4213 ++#: ../sepolicy/sepolicy/sepolicy.glade:4214 msgid "" -"Revert button will launch a dialog window which allows you to revert changes " -"within the current transaction." @@ -5784,10 +16997,44 @@ index ce12bbe..6409e2a 100644 +" within the current transaction." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 -@@ -4507,8 +4512,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:4225 ../sepolicy/sepolicy/gui.py:2379 ++#: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 + msgid "Update" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4439 +-#: ../sepolicy/sepolicy/sepolicy.glade:4230 ++#: ../sepolicy/sepolicy/sepolicy.glade:4231 + msgid "Commit all changes in your current transaction to the server." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4278 ++#: ../sepolicy/sepolicy/sepolicy.glade:4279 + msgid "Applications - Advanced Search" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4331 +-msgid "Installed" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:4383 ++#: ../sepolicy/sepolicy/sepolicy.glade:4344 + msgid "Process Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4424 ++#: ../sepolicy/sepolicy/sepolicy.glade:4385 + msgid "More Details" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4460 +-#: ../sepolicy/sepolicy/sepolicy.glade:4754 ++#: ../sepolicy/sepolicy/sepolicy.glade:4421 ++#: ../sepolicy/sepolicy/sepolicy.glade:4715 + msgid "Delete Modified File Labeling" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4478 ++#: ../sepolicy/sepolicy/sepolicy.glade:4439 msgid "" -"Select file labeling to delete. File labeling will be deleted when update is " -"applied." @@ -5795,57 +17042,514 @@ index ce12bbe..6409e2a 100644 +" applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4486 -@@ -4544,8 +4549,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/sepolicy.glade:4867 - msgid "" --"Select login user mapping to delete. Login user mapping will be deleted when " --"update is applied." -+"Select login user mapping to delete. Login user mapping will be deleted when" -+" update is applied." +-#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4486 + msgid "SELinux File Label" msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4902 -@@ -4848,20 +4853,22 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1366 +-#: ../sepolicy/sepolicy/sepolicy.glade:4564 +-#: ../sepolicy/sepolicy/sepolicy.glade:4714 +-#: ../sepolicy/sepolicy/sepolicy.glade:4844 ++#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4675 ++#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:4940 ++#: ../sepolicy/sepolicy/sepolicy.glade:5289 + msgid "Save to Update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4604 ++#: ../sepolicy/sepolicy/sepolicy.glade:4565 + msgid "Delete Modified Ports" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4622 ++#: ../sepolicy/sepolicy/sepolicy.glade:4583 + msgid "Select ports to delete. Ports will be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4771 ++#: ../sepolicy/sepolicy/sepolicy.glade:4733 + msgid "" +-"Select file equivalence labeling to delete.File equivalence labeling will be " +-"deleted when update is applied." ++"Select file equivalence labeling to delete. File equivalence labeling will " ++"be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4887 ++#: ../sepolicy/sepolicy/sepolicy.glade:4849 ++#: ../sepolicy/sepolicy/sepolicy.glade:5198 ++msgid "Delete Modified Users Mapping." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4867 ++msgid "" ++"Select login user mapping to delete. Login user mapping will be deleted when" ++" update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4902 ++msgid "Login name" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4983 + msgid "More Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4914 ++#: ../sepolicy/sepolicy/sepolicy.glade:5010 + msgid "Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4973 ++#: ../sepolicy/sepolicy/sepolicy.glade:5069 + msgid "" + "Review the updates you have made before committing them to the system. To " + "reset an item, uncheck the checkbox. All items checked will be updated in " + "the system when you select update." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5036 ++#: ../sepolicy/sepolicy/sepolicy.glade:5132 + msgid "Action" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5062 ++#: ../sepolicy/sepolicy/sepolicy.glade:5158 + msgid "Apply" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5119 +-#: ../sepolicy/sepolicy/sepolicy.glade:5360 ++#: ../sepolicy/sepolicy/sepolicy.glade:5216 ++msgid "" ++"Select users mapping to delete.Users mapping will be deleted when update is " ++"applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5264 ++msgid "SELinux Username" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5349 + msgid "" + "Add User Roles. SELinux User Roles will be created when Update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5144 +-#: ../sepolicy/sepolicy/sepolicy.glade:5385 ++#: ../sepolicy/sepolicy/sepolicy.glade:5374 + msgid "SELinux User Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5258 +-#: ../sepolicy/sepolicy/sepolicy.glade:5499 ++#: ../sepolicy/sepolicy/sepolicy.glade:5489 + msgid "" + "Enter MLS/MCS Range for this SELinux User.\n" + "s0-s0:c1023" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5289 +-#: ../sepolicy/sepolicy/sepolicy.glade:5530 ++#: ../sepolicy/sepolicy/sepolicy.glade:5520 + msgid "" + "Specify the default level that you would like this SELinux user to login " + "with. Defaults to s0." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5293 +-#: ../sepolicy/sepolicy/sepolicy.glade:5534 ++#: ../sepolicy/sepolicy/sepolicy.glade:5524 + msgid "Enter Default Level for SELinux User to login with. Default s0" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Disable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Enable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:92 ++#: ../sepolicy/sepolicy/gui.py:94 + msgid "" + "\n" + "To change from Disabled to Enforcing mode\n" +@@ -4570,512 +4641,542 @@ msgid "" + " * Change the system mode to Enforcing\n" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:115 ++#: ../sepolicy/sepolicy/gui.py:488 + #, python-format + msgid "%s is not a valid domain" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:624 ++#: ../sepolicy/sepolicy/gui.py:636 + msgid "System Status: Disabled" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:722 ++#: ../sepolicy/sepolicy/gui.py:734 + msgid "Help: Start Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:726 ++#: ../sepolicy/sepolicy/gui.py:738 + msgid "Help: Booleans Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:732 ++#: ../sepolicy/sepolicy/gui.py:744 + msgid "Help: Executable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:735 ++#: ../sepolicy/sepolicy/gui.py:747 + msgid "Help: Writable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:738 ++#: ../sepolicy/sepolicy/gui.py:750 + msgid "Help: Application Types Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:743 ++#: ../sepolicy/sepolicy/gui.py:755 + msgid "Help: Outbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:746 ++#: ../sepolicy/sepolicy/gui.py:758 + msgid "Help: Inbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:752 ++#: ../sepolicy/sepolicy/gui.py:764 + msgid "Help: Transition from application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:755 ++#: ../sepolicy/sepolicy/gui.py:767 + msgid "Help: Transition into application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:758 ++#: ../sepolicy/sepolicy/gui.py:770 + msgid "Help: Transition application file Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:762 ++#: ../sepolicy/sepolicy/gui.py:774 + msgid "Help: Systems Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:766 ++#: ../sepolicy/sepolicy/gui.py:778 + msgid "Help: Lockdown Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:770 ++#: ../sepolicy/sepolicy/gui.py:782 + msgid "Help: Login Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:774 ++#: ../sepolicy/sepolicy/gui.py:786 + msgid "Help: SELinux User Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:778 ++#: ../sepolicy/sepolicy/gui.py:790 + msgid "Help: File Equivalence Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:922 ../sepolicy/sepolicy/gui.py:1211 +-#: ../sepolicy/sepolicy/gui.py:1644 ../sepolicy/sepolicy/gui.py:1885 +-#: ../sepolicy/sepolicy/gui.py:2698 ++#: ../sepolicy/sepolicy/gui.py:936 ../sepolicy/sepolicy/gui.py:1227 ++#: ../sepolicy/sepolicy/gui.py:1667 ../sepolicy/sepolicy/gui.py:1913 ++#: ../sepolicy/sepolicy/gui.py:2692 + msgid "More..." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1031 ++#: ../sepolicy/sepolicy/gui.py:1044 + #, python-format + msgid "File path used to enter the '%s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1032 ++#: ../sepolicy/sepolicy/gui.py:1045 + #, python-format + msgid "Files to which the '%s' domain can write." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1033 ++#: ../sepolicy/sepolicy/gui.py:1046 + #, python-format + msgid "Network Ports to which the '%s' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1034 ++#: ../sepolicy/sepolicy/gui.py:1047 + #, python-format + msgid "Network Ports to which the '%s' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1035 ++#: ../sepolicy/sepolicy/gui.py:1048 + #, python-format + msgid "File Types defined for the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1036 ++#: ../sepolicy/sepolicy/gui.py:1049 #, python-format msgid "" --"Add new port definition to which the '%(APP)s' domain is allowed to %(PERM)s." + "Display boolean information that can be used to modify the policy for the " + "'%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1037 ++#: ../sepolicy/sepolicy/gui.py:1050 + #, python-format + msgid "Display file type information that can be used by the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1038 ++#: ../sepolicy/sepolicy/gui.py:1051 + #, python-format + msgid "Display network ports to which the '%s' can connect or listen to." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1039 ++#: ../sepolicy/sepolicy/gui.py:1052 + #, python-format + msgid "Application Transitions Into '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1040 ++#: ../sepolicy/sepolicy/gui.py:1053 + #, python-format + msgid "Application Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1041 ++#: ../sepolicy/sepolicy/gui.py:1054 + #, python-format + msgid "File Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1042 ++#: ../sepolicy/sepolicy/gui.py:1055 + #, python-format + msgid "" + "Executables which will transition to the '%s', when executing a selected " + "domains entrypoint." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1043 ++#: ../sepolicy/sepolicy/gui.py:1056 + #, python-format + msgid "" + "Executables which will transition to a different domain, when the '%s' " + "executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1044 ++#: ../sepolicy/sepolicy/gui.py:1057 + #, python-format + msgid "Files by '%s' will transitions to a different label." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1045 ++#: ../sepolicy/sepolicy/gui.py:1058 + #, python-format + msgid "Display applications that can transition into or out of the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1149 ++#: ../sepolicy/sepolicy/gui.py:1166 + msgid "MISSING FILE PATH" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1281 ../sepolicy/sepolicy/gui.py:1283 + msgid "Boolean section." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ++#: ../sepolicy/sepolicy/gui.py:1281 + msgid "To disable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1283 + msgid "To enable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1324 ++#: ../sepolicy/sepolicy/gui.py:1340 + msgid "executable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1327 ++#: ../sepolicy/sepolicy/gui.py:1343 + msgid "writable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1330 ++#: ../sepolicy/sepolicy/gui.py:1346 + msgid "application" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1331 ++#: ../sepolicy/sepolicy/gui.py:1347 + #, python-format +-msgid "Add new %s file path for '%s' domains." ++msgid "Add new %(TYPE)s file path for '%(DOMAIN)s' domains." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1332 ++#: ../sepolicy/sepolicy/gui.py:1348 + #, python-format +-msgid "Delete modified %s file paths for '%s' domain." ++msgid "Delete %(TYPE)s file paths for '%(DOMAIN)s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1333 ++#: ../sepolicy/sepolicy/gui.py:1349 + #, python-format + msgid "" +-"Modify selected modified %s file path for '%s' domain. Only bolded items in " +-"the list can be selected, this indicates they were modified previously." ++"Modify %(TYPE)s file path for '%(DOMAIN)s' domain. Only bolded items in the " ++"list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1345 ++#: ../sepolicy/sepolicy/gui.py:1361 + msgid "connect" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1348 ++#: ../sepolicy/sepolicy/gui.py:1364 + msgid "listen for inbound connections" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1350 ++#: ../sepolicy/sepolicy/gui.py:1366 + #, python-format +-msgid "Add new port definition to which the '%s' domains is allowed to %s." ++msgid "" +"Add new port definition to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1367 +-#: ../sepolicy/sepolicy/gui.py:1351 ++#: ../sepolicy/sepolicy/gui.py:1367 #, python-format msgid "" --"Delete modified port definitions to which the '%(APP)s' domain is allowed to " --"%(PERM)s." +-"Delete modified port definitions to which the '%s' domain is allowed to %s." +"Delete modified port definitions to which the '%(APP)s' domain is allowed to" +" %(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1368 +-#: ../sepolicy/sepolicy/gui.py:1352 ++#: ../sepolicy/sepolicy/gui.py:1368 #, python-format - msgid "" --"Modify port definitions to which the '%(APP)s' domain is allowed to %(PERM)s." +-msgid "Modify port definitions to which the '%s' domain is allowed to %s." ++msgid "" +"Modify port definitions to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1397 -@@ -4909,7 +4916,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1381 ++#: ../sepolicy/sepolicy/gui.py:1397 + msgid "Add new SELinux User/Role definition." + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1458 +-#: ../sepolicy/sepolicy/gui.py:1382 ++#: ../sepolicy/sepolicy/gui.py:1398 + msgid "Delete modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1383 ++#: ../sepolicy/sepolicy/gui.py:1399 + msgid "Modify selected modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1390 ++#: ../sepolicy/sepolicy/gui.py:1406 + msgid "Add new Login Mapping definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1391 ++#: ../sepolicy/sepolicy/gui.py:1407 + msgid "Delete modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1392 ++#: ../sepolicy/sepolicy/gui.py:1408 + msgid "Modify selected modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1399 ++#: ../sepolicy/sepolicy/gui.py:1415 + msgid "Add new File Equivalence definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1400 ++#: ../sepolicy/sepolicy/gui.py:1416 + msgid "Delete modified File Equivalence definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1401 ++#: ../sepolicy/sepolicy/gui.py:1417 + msgid "" + "Modify selected modified File Equivalence definitions. Only bolded items in " + "the list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1429 ++#: ../sepolicy/sepolicy/gui.py:1445 + #, python-format + msgid "Boolean %s Allow Rules" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1442 ++#: ../sepolicy/sepolicy/gui.py:1458 #, python-format -msgid "Add Network Port for %s. Ports will be created when update is applied." +msgid "" +"Add Network Port for %s. Ports will be created when update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1459 -@@ -4920,7 +4928,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1464 +-#: ../sepolicy/sepolicy/gui.py:1443 ++#: ../sepolicy/sepolicy/gui.py:1459 + #, python-format + msgid "Add Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1448 ++#: ../sepolicy/sepolicy/gui.py:1464 #, python-format msgid "" -"Add File Labeling for %s. File labels will be created when update is applied." @@ -5853,40 +17557,312 @@ index ce12bbe..6409e2a 100644 +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 -@@ -4929,7 +4938,8 @@ msgid "Add File Labeling for %s" +-#: ../sepolicy/sepolicy/gui.py:1449 ../sepolicy/sepolicy/gui.py:1500 ++#: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 + #, python-format + msgid "Add File Labeling for %s" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1475 +-#: ../sepolicy/sepolicy/gui.py:1459 -msgid "Add Login Mapping. User Mapping will be created when Update is applied." ++#: ../sepolicy/sepolicy/gui.py:1475 +msgid "" +"Add Login Mapping. User Mapping will be created when Update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1476 -@@ -4948,7 +4958,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1460 ++#: ../sepolicy/sepolicy/gui.py:1476 + msgid "Add Login Mapping" + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1489 +-#: ../sepolicy/sepolicy/gui.py:1465 ++#: ../sepolicy/sepolicy/gui.py:1481 + msgid "" + "Add SELinux User Role. SELinux user roles will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1466 ++#: ../sepolicy/sepolicy/gui.py:1482 + msgid "Add SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1473 ++#: ../sepolicy/sepolicy/gui.py:1489 msgid "" -"Add File Equivalency Mapping. Mapping will be created when update is applied." +"Add File Equivalency Mapping. Mapping will be created when update is " +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1490 -@@ -4964,8 +4975,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/gui.py:1573 - msgid "" --"Modify SELinux User Role. SELinux user roles will be modified when update is " --"applied." -+"Modify SELinux User Role. SELinux user roles will be modified when update is" -+" applied." +-#: ../sepolicy/sepolicy/gui.py:1474 ++#: ../sepolicy/sepolicy/gui.py:1490 + msgid "Add SELinux File Equivalency" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1574 -@@ -5178,10 +5189,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:1499 ++#: ../sepolicy/sepolicy/gui.py:1517 + #, python-format + msgid "" + "Modify File Labeling for %s. File labels will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1566 ++#: ../sepolicy/sepolicy/gui.py:1573 ++msgid "" ++"Modify SELinux User Role. SELinux user roles will be modified when update is" ++" applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1574 ++msgid "Modify SELinux Users" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1582 ++msgid "" ++"Modify Login Mapping. Login Mapping will be modified when Update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1583 ++msgid "Modify Login Mapping" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1589 + msgid "" + "Modify File Equivalency Mapping. Mapping will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1567 ++#: ../sepolicy/sepolicy/gui.py:1590 + msgid "Modify SELinux File Equivalency" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1652 ++#: ../sepolicy/sepolicy/gui.py:1675 + #, python-format + msgid "" + "Modify Network Port for %s. Ports will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1653 ++#: ../sepolicy/sepolicy/gui.py:1676 + #, python-format + msgid "Modify Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1866 ++#: ../sepolicy/sepolicy/gui.py:1894 + #, python-format + msgid "The entry '%s' is not a valid path. Paths must begin with a '/'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1879 ++#: ../sepolicy/sepolicy/gui.py:1907 + msgid "Port number must be between 1 and 65536" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2146 ++#: ../sepolicy/sepolicy/gui.py:2183 + #, python-format + msgid "SELinux name: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2157 ++#: ../sepolicy/sepolicy/gui.py:2194 + #, python-format + msgid "Add file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2159 ++#: ../sepolicy/sepolicy/gui.py:2196 + #, python-format + msgid "Delete file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2161 ++#: ../sepolicy/sepolicy/gui.py:2198 + #, python-format + msgid "Modify file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2165 ++#: ../sepolicy/sepolicy/gui.py:2202 + #, python-format + msgid "File path: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2168 ++#: ../sepolicy/sepolicy/gui.py:2205 + #, python-format + msgid "File class: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2171 ../sepolicy/sepolicy/gui.py:2195 ++#: ../sepolicy/sepolicy/gui.py:2208 ../sepolicy/sepolicy/gui.py:2232 + #, python-format + msgid "SELinux file type: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2180 ++#: ../sepolicy/sepolicy/gui.py:2217 + #, python-format + msgid "Add ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2182 ++#: ../sepolicy/sepolicy/gui.py:2219 + #, python-format + msgid "Delete ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2184 ++#: ../sepolicy/sepolicy/gui.py:2221 + #, python-format + msgid "Modify ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2187 ++#: ../sepolicy/sepolicy/gui.py:2224 + #, python-format + msgid "Network ports: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2190 ++#: ../sepolicy/sepolicy/gui.py:2227 + #, python-format + msgid "Network protocol: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2204 ++#: ../sepolicy/sepolicy/gui.py:2241 + msgid "Add user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2206 ++#: ../sepolicy/sepolicy/gui.py:2243 + msgid "Delete user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2208 ++#: ../sepolicy/sepolicy/gui.py:2245 + msgid "Modify user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2211 ++#: ../sepolicy/sepolicy/gui.py:2248 + #, python-format + msgid "SELinux User : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2216 ++#: ../sepolicy/sepolicy/gui.py:2253 + #, python-format + msgid "Roles: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2220 ../sepolicy/sepolicy/gui.py:2245 ++#: ../sepolicy/sepolicy/gui.py:2257 ../sepolicy/sepolicy/gui.py:2282 + #, python-format + msgid "MLS/MCS Range: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2229 ++#: ../sepolicy/sepolicy/gui.py:2266 + msgid "Add login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2231 ++#: ../sepolicy/sepolicy/gui.py:2268 + msgid "Delete login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2233 ++#: ../sepolicy/sepolicy/gui.py:2270 + msgid "Modify login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2237 ++#: ../sepolicy/sepolicy/gui.py:2274 + #, python-format +-msgid "Linux User : %s" ++msgid "Login Name : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2241 ++#: ../sepolicy/sepolicy/gui.py:2278 + #, python-format + msgid "SELinux User: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2254 ++#: ../sepolicy/sepolicy/gui.py:2291 + msgid "Add file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2256 ++#: ../sepolicy/sepolicy/gui.py:2293 + msgid "Delete file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2258 ++#: ../sepolicy/sepolicy/gui.py:2295 + msgid "Modify file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2262 ++#: ../sepolicy/sepolicy/gui.py:2299 + #, python-format + msgid "File path : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2266 ++#: ../sepolicy/sepolicy/gui.py:2303 + #, python-format + msgid "Equivalence: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2369 ++#: ../sepolicy/sepolicy/gui.py:2406 + #, python-format +-msgid "Run restorecon on %s to change its type from %s to the default %s?" ++msgid "" ++"Run restorecon on %(PATH)s to change its type from %(CUR_CONTEXT)s to the " ++"default %(DEF_CONTEXT)s?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2381 ++#: ../sepolicy/sepolicy/gui.py:2418 + msgid "Update Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2383 ++#: ../sepolicy/sepolicy/gui.py:2420 + msgid "Revert Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2556 ++#: ../sepolicy/sepolicy/gui.py:2547 + msgid "System Status: Enforcing" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2558 ++#: ../sepolicy/sepolicy/gui.py:2549 + msgid "System Status: Permissive" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2749 ++#: ../sepolicy/sepolicy/gui.py:2743 + msgid "" + "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 " +@@ -5085,15 +5186,13 @@ msgid "" + "wish to continue?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 msgid "" "You are attempting to close the application without applying your changes.\n" -" * To apply changes you have made during this session, click No and " @@ -5897,9 +17873,12 @@ index ce12bbe..6409e2a 100644 +" * To leave the application without applying your changes, click Yes. All changes that you have made during this session will be lost." msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 + msgid "Loss of data Dialog" + msgstr "" diff --git a/policycoreutils/po/aln.po b/policycoreutils/po/aln.po -index 80e3e2f..b7d66d0 100644 +index 507644c..b7d66d0 100644 --- a/policycoreutils/po/aln.po +++ b/policycoreutils/po/aln.po @@ -1,21 +1,20 @@ @@ -5913,13 +17892,15 @@ index 80e3e2f..b7d66d0 100644 msgstr "" "Project-Id-Version: Policycoreutils\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2014-01-03 16:04-0500\n" --"PO-Revision-Date: 2013-12-20 13:58+0000\n" -+"PO-Revision-Date: 2014-01-03 21:04+0000\n" - "Last-Translator: dwalsh \n" +-"POT-Creation-Date: 2013-10-10 16:04-0400\n" +-"PO-Revision-Date: 2012-03-30 18:14+0000\n" +-"Last-Translator: FULL NAME \n" -"Language-Team: Albanian Gheg (http://www.transifex.com/projects/p/fedora/" -"language/aln/)\n" -"Language: aln\n" ++"POT-Creation-Date: 2014-01-03 16:04-0500\n" ++"PO-Revision-Date: 2014-01-03 21:04+0000\n" ++"Last-Translator: dwalsh \n" +"Language-Team: Albanian Gheg (http://www.transifex.com/projects/p/fedora/language/aln/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5928,7 +17909,1327 @@ index 80e3e2f..b7d66d0 100644 "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../run_init/run_init.c:67 -@@ -1585,8 +1584,8 @@ msgstr "" +@@ -87,96 +86,101 @@ msgstr "" + msgid "To make this policy package active, execute:" + msgstr "" + +-#: ../semanage/seobject.py:210 ++#: ../semanage/seobject/__init__.py:220 + msgid "Could not create semanage handle" + msgstr "" + +-#: ../semanage/seobject.py:218 ++#: ../semanage/seobject/__init__.py:228 + msgid "SELinux policy is not managed or store cannot be accessed." + msgstr "" + +-#: ../semanage/seobject.py:223 ++#: ../semanage/seobject/__init__.py:233 + msgid "Cannot read policy store." + msgstr "" + +-#: ../semanage/seobject.py:228 ++#: ../semanage/seobject/__init__.py:238 + msgid "Could not establish semanage connection" + msgstr "" + +-#: ../semanage/seobject.py:233 ++#: ../semanage/seobject/__init__.py:243 + msgid "Could not test MLS enabled status" + msgstr "" + +-#: ../semanage/seobject.py:239 ../semanage/seobject.py:254 ++#: ../semanage/seobject/__init__.py:249 ../semanage/seobject/__init__.py:264 + msgid "Not yet implemented" + msgstr "" + +-#: ../semanage/seobject.py:243 ++#: ../semanage/seobject/__init__.py:253 + msgid "Semanage transaction already in progress" + msgstr "" + +-#: ../semanage/seobject.py:252 ++#: ../semanage/seobject/__init__.py:262 + msgid "Could not start semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:264 ++#: ../semanage/seobject/__init__.py:274 + msgid "Could not commit semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:269 ++#: ../semanage/seobject/__init__.py:279 + msgid "Semanage transaction not in progress" + msgstr "" + +-#: ../semanage/seobject.py:281 ../semanage/seobject.py:376 ++#: ../semanage/seobject/__init__.py:291 ../semanage/seobject/__init__.py:386 + msgid "Could not list SELinux modules" + msgstr "" + +-#: ../semanage/seobject.py:300 ++#: ../semanage/seobject/__init__.py:310 + msgid "Modules Name" + msgstr "" + +-#: ../semanage/seobject.py:300 ../gui/modulesPage.py:63 ++#: ../semanage/seobject/__init__.py:310 ../gui/modulesPage.py:63 + msgid "Version" + msgstr "" + +-#: ../semanage/seobject.py:303 ../gui/statusPage.py:75 +-#: ../sepolicy/sepolicy/sepolicy.glade:3430 ++#: ../semanage/seobject/__init__.py:313 ../gui/statusPage.py:71 ++#: ../sepolicy/sepolicy/sepolicy.glade:3431 + msgid "Disabled" + msgstr "" + +-#: ../semanage/seobject.py:312 ++#: ../semanage/seobject/__init__.py:322 + #, python-format + msgid "Module does not exists %s " + msgstr "" + +-#: ../semanage/seobject.py:322 ++#: ../semanage/seobject/__init__.py:332 + #, python-format + msgid "Could not disable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:333 ++#: ../semanage/seobject/__init__.py:343 + #, python-format + msgid "Could not enable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:348 ++#: ../semanage/seobject/__init__.py:358 + #, python-format + msgid "Could not remove module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:363 ++#: ../semanage/seobject/__init__.py:373 + msgid "dontaudit requires either 'on' or 'off'" + msgstr "" + +-#: ../semanage/seobject.py:391 ++#: ../semanage/seobject/__init__.py:402 ++msgid "Customized Permissive Types" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:410 + msgid "Builtin Permissive Types" + msgstr "" + +-#: ../semanage/seobject.py:401 +-msgid "Customized Permissive Types" ++#: ../semanage/seobject/__init__.py:419 ++#, python-format ++msgid "%s is not a domain type" + msgstr "" + +-#: ../semanage/seobject.py:410 ++#: ../semanage/seobject/__init__.py:424 + msgid "" + "The sepolgen python module is required to setup permissive domains.\n" + "In some distributions it is included in the policycoreutils-devel patckage.\n" +@@ -184,810 +188,825 @@ msgid "" + "Or similar for your distro." + msgstr "" + +-#: ../semanage/seobject.py:447 ++#: ../semanage/seobject/__init__.py:461 + #, python-format + msgid "Could not set permissive domain %s (module installation failed)" + msgstr "" + +-#: ../semanage/seobject.py:453 ++#: ../semanage/seobject/__init__.py:467 + #, python-format + msgid "Could not remove permissive domain %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:488 ../semanage/seobject.py:562 +-#: ../semanage/seobject.py:608 ../semanage/seobject.py:730 +-#: ../semanage/seobject.py:760 ../semanage/seobject.py:827 +-#: ../semanage/seobject.py:884 ../semanage/seobject.py:1144 +-#: ../semanage/seobject.py:1879 ../semanage/seobject.py:1942 +-#: ../semanage/seobject.py:1961 ../semanage/seobject.py:2084 +-#: ../semanage/seobject.py:2135 ++#: ../semanage/seobject/__init__.py:501 ../semanage/seobject/__init__.py:575 ++#: ../semanage/seobject/__init__.py:621 ../semanage/seobject/__init__.py:743 ++#: ../semanage/seobject/__init__.py:773 ../semanage/seobject/__init__.py:839 ++#: ../semanage/seobject/__init__.py:896 ../semanage/seobject/__init__.py:1156 ++#: ../semanage/seobject/__init__.py:1891 ../semanage/seobject/__init__.py:1954 ++#: ../semanage/seobject/__init__.py:1973 ../semanage/seobject/__init__.py:2096 ++#: ../semanage/seobject/__init__.py:2147 + #, python-format + msgid "Could not create a key for %s" + msgstr "" + +-#: ../semanage/seobject.py:492 ../semanage/seobject.py:566 +-#: ../semanage/seobject.py:612 ../semanage/seobject.py:618 ++#: ../semanage/seobject/__init__.py:505 ../semanage/seobject/__init__.py:579 ++#: ../semanage/seobject/__init__.py:625 ../semanage/seobject/__init__.py:631 + #, python-format + msgid "Could not check if login mapping for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:501 ++#: ../semanage/seobject/__init__.py:514 + #, python-format + msgid "Linux Group %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:506 ++#: ../semanage/seobject/__init__.py:519 + #, python-format + msgid "Linux User %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:510 ++#: ../semanage/seobject/__init__.py:523 + #, python-format + msgid "Could not create login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:514 ../semanage/seobject.py:775 ++#: ../semanage/seobject/__init__.py:527 ../semanage/seobject/__init__.py:788 + #, python-format + msgid "Could not set name for %s" + msgstr "" + +-#: ../semanage/seobject.py:519 ../semanage/seobject.py:785 ++#: ../semanage/seobject/__init__.py:532 ../semanage/seobject/__init__.py:798 + #, python-format + msgid "Could not set MLS range for %s" + msgstr "" + +-#: ../semanage/seobject.py:523 ++#: ../semanage/seobject/__init__.py:536 + #, python-format + msgid "Could not set SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:527 ++#: ../semanage/seobject/__init__.py:540 + #, python-format + msgid "Could not add login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:545 ++#: ../semanage/seobject/__init__.py:558 + msgid "Requires seuser or serange" + msgstr "" + +-#: ../semanage/seobject.py:568 ../semanage/seobject.py:614 ++#: ../semanage/seobject/__init__.py:581 ../semanage/seobject/__init__.py:627 + #, python-format + msgid "Login mapping for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:572 ++#: ../semanage/seobject/__init__.py:585 + #, python-format + msgid "Could not query seuser for %s" + msgstr "" + +-#: ../semanage/seobject.py:586 ++#: ../semanage/seobject/__init__.py:599 + #, python-format + msgid "Could not modify login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:620 ++#: ../semanage/seobject/__init__.py:633 + #, python-format + msgid "Login mapping for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:624 ++#: ../semanage/seobject/__init__.py:637 + #, python-format + msgid "Could not delete login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:646 ../semanage/seobject.py:679 +-#: ../semanage/seobject.py:927 ++#: ../semanage/seobject/__init__.py:659 ../semanage/seobject/__init__.py:692 ++#: ../semanage/seobject/__init__.py:939 + msgid "Could not list login mappings" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 + #: ../gui/system-config-selinux.glade:100 +-#: ../sepolicy/sepolicy/sepolicy.glade:1166 +-#: ../sepolicy/sepolicy/sepolicy.glade:3155 ++#: ../sepolicy/sepolicy/sepolicy.glade:1162 ++#: ../sepolicy/sepolicy/sepolicy.glade:3156 + msgid "Login Name" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 + #: ../gui/system-config-selinux.glade:128 + #: ../gui/system-config-selinux.glade:915 +-#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:44 +-#: ../sepolicy/sepolicy/sepolicy.glade:1192 +-#: ../sepolicy/sepolicy/sepolicy.glade:3173 +-#: ../sepolicy/sepolicy/sepolicy.glade:3259 ++#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:41 ++#: ../sepolicy/sepolicy/sepolicy.glade:1188 ++#: ../sepolicy/sepolicy/sepolicy.glade:3174 ++#: ../sepolicy/sepolicy/sepolicy.glade:3260 ++#: ../sepolicy/sepolicy/sepolicy.glade:4915 + msgid "SELinux User" + msgstr "" + +-#: ../semanage/seobject.py:707 ../gui/system-config-selinux.glade:156 ++#: ../semanage/seobject/__init__.py:720 ../gui/system-config-selinux.glade:156 + #: ../gui/system-config-selinux.glade:943 + msgid "MLS/MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:707 ++#: ../semanage/seobject/__init__.py:720 + msgid "Service" + msgstr "" + +-#: ../semanage/seobject.py:733 ../semanage/seobject.py:764 +-#: ../semanage/seobject.py:831 ../semanage/seobject.py:888 +-#: ../semanage/seobject.py:894 ++#: ../semanage/seobject/__init__.py:746 ../semanage/seobject/__init__.py:777 ++#: ../semanage/seobject/__init__.py:843 ../semanage/seobject/__init__.py:900 ++#: ../semanage/seobject/__init__.py:906 + #, python-format + msgid "Could not check if SELinux user %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:736 ../semanage/seobject.py:837 +-#: ../semanage/seobject.py:900 ++#: ../semanage/seobject/__init__.py:749 ../semanage/seobject/__init__.py:849 ++#: ../semanage/seobject/__init__.py:912 + #, python-format + msgid "Could not query user for %s" + msgstr "" + +-#: ../semanage/seobject.py:756 ++#: ../semanage/seobject/__init__.py:769 + #, python-format + msgid "You must add at least one role for %s" + msgstr "" + +-#: ../semanage/seobject.py:771 ++#: ../semanage/seobject/__init__.py:784 + #, python-format + msgid "Could not create SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:780 ++#: ../semanage/seobject/__init__.py:793 + #, python-format +-msgid "Could not add role %s for %s" ++msgid "Could not add role %(ROLE)s for %(NAME)s" + msgstr "" + +-#: ../semanage/seobject.py:789 ++#: ../semanage/seobject/__init__.py:802 + #, python-format + msgid "Could not set MLS level for %s" + msgstr "" + +-#: ../semanage/seobject.py:792 ++#: ../semanage/seobject/__init__.py:805 + #, python-format +-msgid "Could not add prefix %s for %s" ++msgid "Could not add prefix %(PREFIX)s for %(ROLE)s" + msgstr "" + +-#: ../semanage/seobject.py:795 ++#: ../semanage/seobject/__init__.py:808 + #, python-format + msgid "Could not extract key for %s" + msgstr "" + +-#: ../semanage/seobject.py:799 ++#: ../semanage/seobject/__init__.py:812 + #, python-format + msgid "Could not add SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:821 ++#: ../semanage/seobject/__init__.py:833 + msgid "Requires prefix, roles, level or range" + msgstr "" + +-#: ../semanage/seobject.py:823 ++#: ../semanage/seobject/__init__.py:835 + msgid "Requires prefix or roles" + msgstr "" + +-#: ../semanage/seobject.py:833 ../semanage/seobject.py:890 ++#: ../semanage/seobject/__init__.py:845 ../semanage/seobject/__init__.py:902 + #, python-format + msgid "SELinux user %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:862 ++#: ../semanage/seobject/__init__.py:874 + #, python-format + msgid "Could not modify SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:896 ++#: ../semanage/seobject/__init__.py:908 + #, python-format + msgid "SELinux user %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:907 ++#: ../semanage/seobject/__init__.py:919 + #, python-format + msgid "Could not delete SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:945 ++#: ../semanage/seobject/__init__.py:957 + msgid "Could not list SELinux users" + msgstr "" + +-#: ../semanage/seobject.py:951 ++#: ../semanage/seobject/__init__.py:963 + #, python-format + msgid "Could not list roles for user %s" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "Labeling" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "MLS/" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "Prefix" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Level" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 +-#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59 +-#: ../sepolicy/sepolicy/sepolicy.glade:3279 +-#: ../sepolicy/sepolicy/sepolicy.glade:5170 +-#: ../sepolicy/sepolicy/sepolicy.glade:5411 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 ++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:56 ++#: ../sepolicy/sepolicy/sepolicy.glade:3280 ++#: ../sepolicy/sepolicy/sepolicy.glade:5251 ++#: ../sepolicy/sepolicy/sepolicy.glade:5400 + msgid "SELinux Roles" + msgstr "" + +-#: ../semanage/seobject.py:1002 ++#: ../semanage/seobject/__init__.py:1014 + msgid "Protocol udp or tcp is required" + msgstr "" + +-#: ../semanage/seobject.py:1004 ++#: ../semanage/seobject/__init__.py:1016 + msgid "Port is required" + msgstr "" + +-#: ../semanage/seobject.py:1014 ++#: ../semanage/seobject/__init__.py:1026 + msgid "Invalid Port" + msgstr "" + +-#: ../semanage/seobject.py:1018 ++#: ../semanage/seobject/__init__.py:1030 + #, python-format +-msgid "Could not create a key for %s/%s" ++msgid "Could not create a key for %(PROTOTYPE)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1029 ++#: ../semanage/seobject/__init__.py:1041 + msgid "Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1032 ../semanage/seobject.py:1096 +-#: ../semanage/seobject.py:1873 ++#: ../semanage/seobject/__init__.py:1044 ../semanage/seobject/__init__.py:1108 ++#: ../semanage/seobject/__init__.py:1885 + #, python-format + msgid "Type %s is invalid, must be a port type" + msgstr "" + +-#: ../semanage/seobject.py:1040 ../semanage/seobject.py:1102 +-#: ../semanage/seobject.py:1157 ../semanage/seobject.py:1163 ++#: ../semanage/seobject/__init__.py:1052 ../semanage/seobject/__init__.py:1169 ++#: ../semanage/seobject/__init__.py:1175 + #, python-format +-msgid "Could not check if port %s/%s is defined" ++msgid "Could not check if port %(PROTOCOL)s/%(PORT)s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1042 ++#: ../semanage/seobject/__init__.py:1054 + #, python-format +-msgid "Port %s/%s already defined" ++msgid "Port %(PROTOCOL)s/%(PORT)s already defined" + msgstr "" + +-#: ../semanage/seobject.py:1046 ++#: ../semanage/seobject/__init__.py:1058 + #, python-format +-msgid "Could not create port for %s/%s" ++msgid "Could not create port for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1052 ++#: ../semanage/seobject/__init__.py:1064 + #, python-format +-msgid "Could not create context for %s/%s" ++msgid "Could not create context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1056 ++#: ../semanage/seobject/__init__.py:1068 + #, python-format +-msgid "Could not set user in port context for %s/%s" ++msgid "Could not set user in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1060 ++#: ../semanage/seobject/__init__.py:1072 + #, python-format +-msgid "Could not set role in port context for %s/%s" ++msgid "Could not set role in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1064 ++#: ../semanage/seobject/__init__.py:1076 + #, python-format +-msgid "Could not set type in port context for %s/%s" ++msgid "Could not set type in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1069 ++#: ../semanage/seobject/__init__.py:1081 + #, python-format +-msgid "Could not set mls fields in port context for %s/%s" ++msgid "Could not set mls fields in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1073 ++#: ../semanage/seobject/__init__.py:1085 + #, python-format +-msgid "Could not set port context for %s/%s" ++msgid "Could not set port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1077 ++#: ../semanage/seobject/__init__.py:1089 + #, python-format +-msgid "Could not add port %s/%s" ++msgid "Could not add port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1367 +-#: ../semanage/seobject.py:1566 ++#: ../semanage/seobject/__init__.py:1103 ../semanage/seobject/__init__.py:1379 ++#: ../semanage/seobject/__init__.py:1578 + msgid "Requires setype or serange" + msgstr "" + +-#: ../semanage/seobject.py:1093 ++#: ../semanage/seobject/__init__.py:1105 + msgid "Requires setype" + msgstr "" + +-#: ../semanage/seobject.py:1104 ../semanage/seobject.py:1159 ++#: ../semanage/seobject/__init__.py:1114 ++#, python-format ++msgid "Could not check if port @%(PROTOCOL)s/%(PORT)s is defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1116 + #, python-format +-msgid "Port %s/%s is not defined" ++msgid "Port @%(PROTOCOL)s/%(PORT)s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1108 ++#: ../semanage/seobject/__init__.py:1120 + #, python-format +-msgid "Could not query port %s/%s" ++msgid "Could not query port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1119 ++#: ../semanage/seobject/__init__.py:1131 + #, python-format +-msgid "Could not modify port %s/%s" ++msgid "Could not modify port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1132 ++#: ../semanage/seobject/__init__.py:1144 + msgid "Could not list the ports" + msgstr "" + +-#: ../semanage/seobject.py:1148 ++#: ../semanage/seobject/__init__.py:1160 + #, python-format + msgid "Could not delete the port %s" + msgstr "" + +-#: ../semanage/seobject.py:1165 ++#: ../semanage/seobject/__init__.py:1171 ++#, python-format ++msgid "Port %(PROTOCOL)s/%(PORT)s is not defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1177 + #, python-format +-msgid "Port %s/%s is defined in policy, cannot be deleted" ++msgid "Port %(PROTOCOL)s/%(PORT)s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1169 ++#: ../semanage/seobject/__init__.py:1181 + #, python-format +-msgid "Could not delete port %s/%s" ++msgid "Could not delete port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1185 ../semanage/seobject.py:1207 ++#: ../semanage/seobject/__init__.py:1197 ../semanage/seobject/__init__.py:1219 + msgid "Could not list ports" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../sepolicy/sepolicy/sepolicy.glade:2675 +-#: ../sepolicy/sepolicy/sepolicy.glade:2773 +-#: ../sepolicy/sepolicy/sepolicy.glade:4687 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2676 ++#: ../sepolicy/sepolicy/sepolicy.glade:2774 ++#: ../sepolicy/sepolicy/sepolicy.glade:4648 + msgid "SELinux Port Type" + msgstr "" + +-#: ../semanage/seobject.py:1246 ++#: ../semanage/seobject/__init__.py:1258 + msgid "Proto" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../gui/system-config-selinux.glade:335 +-#: ../sepolicy/sepolicy/sepolicy.glade:1417 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../gui/system-config-selinux.glade:335 ++#: ../sepolicy/sepolicy/sepolicy.glade:1413 + msgid "Port Number" + msgstr "" + +-#: ../semanage/seobject.py:1270 ++#: ../semanage/seobject/__init__.py:1282 + msgid "Node Address is required" + msgstr "" + +-#: ../semanage/seobject.py:1285 ++#: ../semanage/seobject/__init__.py:1297 + msgid "Unknown or missing protocol" + msgstr "" + +-#: ../semanage/seobject.py:1299 ++#: ../semanage/seobject/__init__.py:1311 + msgid "SELinux node type is required" + msgstr "" + +-#: ../semanage/seobject.py:1302 ../semanage/seobject.py:1370 ++#: ../semanage/seobject/__init__.py:1314 ../semanage/seobject/__init__.py:1382 + #, python-format + msgid "Type %s is invalid, must be a node type" + msgstr "" + +-#: ../semanage/seobject.py:1306 ../semanage/seobject.py:1374 +-#: ../semanage/seobject.py:1410 ../semanage/seobject.py:1508 +-#: ../semanage/seobject.py:1570 ../semanage/seobject.py:1604 +-#: ../semanage/seobject.py:1818 ++#: ../semanage/seobject/__init__.py:1318 ../semanage/seobject/__init__.py:1386 ++#: ../semanage/seobject/__init__.py:1422 ../semanage/seobject/__init__.py:1520 ++#: ../semanage/seobject/__init__.py:1582 ../semanage/seobject/__init__.py:1616 ++#: ../semanage/seobject/__init__.py:1830 + #, python-format + msgid "Could not create key for %s" + msgstr "" + +-#: ../semanage/seobject.py:1308 ../semanage/seobject.py:1378 +-#: ../semanage/seobject.py:1414 ../semanage/seobject.py:1420 ++#: ../semanage/seobject/__init__.py:1320 ../semanage/seobject/__init__.py:1390 ++#: ../semanage/seobject/__init__.py:1426 ../semanage/seobject/__init__.py:1432 + #, python-format + msgid "Could not check if addr %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1317 ++#: ../semanage/seobject/__init__.py:1329 + #, python-format + msgid "Could not create addr for %s" + msgstr "" + +-#: ../semanage/seobject.py:1323 ../semanage/seobject.py:1524 +-#: ../semanage/seobject.py:1767 ++#: ../semanage/seobject/__init__.py:1335 ../semanage/seobject/__init__.py:1536 ++#: ../semanage/seobject/__init__.py:1779 + #, python-format + msgid "Could not create context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1327 ++#: ../semanage/seobject/__init__.py:1339 + #, python-format + msgid "Could not set mask for %s" + msgstr "" + +-#: ../semanage/seobject.py:1331 ++#: ../semanage/seobject/__init__.py:1343 + #, python-format + msgid "Could not set user in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1335 ++#: ../semanage/seobject/__init__.py:1347 + #, python-format + msgid "Could not set role in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1339 ++#: ../semanage/seobject/__init__.py:1351 + #, python-format + msgid "Could not set type in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1344 ++#: ../semanage/seobject/__init__.py:1356 + #, python-format + msgid "Could not set mls fields in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1348 ++#: ../semanage/seobject/__init__.py:1360 + #, python-format + msgid "Could not set addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1352 ++#: ../semanage/seobject/__init__.py:1364 + #, python-format + msgid "Could not add addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1380 ../semanage/seobject.py:1416 ++#: ../semanage/seobject/__init__.py:1392 ../semanage/seobject/__init__.py:1428 + #, python-format + msgid "Addr %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1384 ++#: ../semanage/seobject/__init__.py:1396 + #, python-format + msgid "Could not query addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1394 ++#: ../semanage/seobject/__init__.py:1406 + #, python-format + msgid "Could not modify addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1422 ++#: ../semanage/seobject/__init__.py:1434 + #, python-format + msgid "Addr %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1426 ++#: ../semanage/seobject/__init__.py:1438 + #, python-format + msgid "Could not delete addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1438 ++#: ../semanage/seobject/__init__.py:1450 + msgid "Could not deleteall node mappings" + msgstr "" + +-#: ../semanage/seobject.py:1452 ++#: ../semanage/seobject/__init__.py:1464 + msgid "Could not list addrs" + msgstr "" + +-#: ../semanage/seobject.py:1504 ../semanage/seobject.py:1811 ++#: ../semanage/seobject/__init__.py:1516 ../semanage/seobject/__init__.py:1823 + msgid "SELinux Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1574 +-#: ../semanage/seobject.py:1608 ../semanage/seobject.py:1614 ++#: ../semanage/seobject/__init__.py:1524 ../semanage/seobject/__init__.py:1586 ++#: ../semanage/seobject/__init__.py:1620 ../semanage/seobject/__init__.py:1626 + #, python-format + msgid "Could not check if interface %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1519 ++#: ../semanage/seobject/__init__.py:1531 + #, python-format + msgid "Could not create interface for %s" + msgstr "" + +-#: ../semanage/seobject.py:1528 ++#: ../semanage/seobject/__init__.py:1540 + #, python-format + msgid "Could not set user in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1532 ++#: ../semanage/seobject/__init__.py:1544 + #, python-format + msgid "Could not set role in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1536 ++#: ../semanage/seobject/__init__.py:1548 + #, python-format + msgid "Could not set type in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1541 ++#: ../semanage/seobject/__init__.py:1553 + #, python-format + msgid "Could not set mls fields in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1545 ++#: ../semanage/seobject/__init__.py:1557 + #, python-format + msgid "Could not set interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1549 ++#: ../semanage/seobject/__init__.py:1561 + #, python-format + msgid "Could not set message context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1553 ++#: ../semanage/seobject/__init__.py:1565 + #, python-format + msgid "Could not add interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1576 ../semanage/seobject.py:1610 ++#: ../semanage/seobject/__init__.py:1588 ../semanage/seobject/__init__.py:1622 + #, python-format + msgid "Interface %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1580 ++#: ../semanage/seobject/__init__.py:1592 + #, python-format + msgid "Could not query interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1591 ++#: ../semanage/seobject/__init__.py:1603 + #, python-format + msgid "Could not modify interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1616 ++#: ../semanage/seobject/__init__.py:1628 + #, python-format + msgid "Interface %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1620 ++#: ../semanage/seobject/__init__.py:1632 + #, python-format + msgid "Could not delete interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1632 ++#: ../semanage/seobject/__init__.py:1644 + msgid "Could not delete all interface mappings" + msgstr "" + +-#: ../semanage/seobject.py:1646 ++#: ../semanage/seobject/__init__.py:1658 + msgid "Could not list interfaces" + msgstr "" + +-#: ../semanage/seobject.py:1671 ++#: ../semanage/seobject/__init__.py:1683 + msgid "SELinux Interface" + msgstr "" + +-#: ../semanage/seobject.py:1671 ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:1683 ../semanage/seobject/__init__.py:2045 + msgid "Context" + msgstr "" + +-#: ../semanage/seobject.py:1738 ++#: ../semanage/seobject/__init__.py:1750 + #, python-format + msgid "Target %s is not valid. Target is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1741 ++#: ../semanage/seobject/__init__.py:1753 + #, python-format +-msgid "Substiture %s is not valid. Substitute is not allowed to end with '/'" ++msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1744 ++#: ../semanage/seobject/__init__.py:1756 + #, python-format + msgid "Equivalence class for %s already exists" + msgstr "" + +-#: ../semanage/seobject.py:1750 ++#: ../semanage/seobject/__init__.py:1762 + #, python-format +-msgid "File spec %s conflicts with equivalency rule '%s %s'" ++msgid "" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'" + msgstr "" + +-#: ../semanage/seobject.py:1759 ++#: ../semanage/seobject/__init__.py:1771 + #, python-format + msgid "Equivalence class for %s does not exists" + msgstr "" + +-#: ../semanage/seobject.py:1773 ++#: ../semanage/seobject/__init__.py:1785 + #, python-format + msgid "Could not set user in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1777 ++#: ../semanage/seobject/__init__.py:1789 + #, python-format + msgid "Could not set role in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1782 ../semanage/seobject.py:1848 ++#: ../semanage/seobject/__init__.py:1794 ../semanage/seobject/__init__.py:1860 + #, python-format + msgid "Could not set mls fields in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1788 ++#: ../semanage/seobject/__init__.py:1800 + msgid "Invalid file specification" + msgstr "" + +-#: ../semanage/seobject.py:1790 ++#: ../semanage/seobject/__init__.py:1802 + msgid "File specification can not include spaces" + msgstr "" + +-#: ../semanage/seobject.py:1795 ++#: ../semanage/seobject/__init__.py:1807 + #, python-format + msgid "" +-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'; " ++"Try adding '%(DEST1)s' instead" + msgstr "" + +-#: ../semanage/seobject.py:1814 ++#: ../semanage/seobject/__init__.py:1826 + #, python-format + msgid "Type %s is invalid, must be a file or device type" + msgstr "" + +-#: ../semanage/seobject.py:1822 ../semanage/seobject.py:1827 +-#: ../semanage/seobject.py:1883 ../semanage/seobject.py:1965 +-#: ../semanage/seobject.py:1969 ++#: ../semanage/seobject/__init__.py:1834 ../semanage/seobject/__init__.py:1839 ++#: ../semanage/seobject/__init__.py:1895 ../semanage/seobject/__init__.py:1977 ++#: ../semanage/seobject/__init__.py:1981 + #, python-format + msgid "Could not check if file context for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1835 ++#: ../semanage/seobject/__init__.py:1847 + #, python-format + msgid "Could not create file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1843 ++#: ../semanage/seobject/__init__.py:1855 + #, python-format + msgid "Could not set type in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1851 ../semanage/seobject.py:1911 +-#: ../semanage/seobject.py:1915 ++#: ../semanage/seobject/__init__.py:1863 ../semanage/seobject/__init__.py:1923 ++#: ../semanage/seobject/__init__.py:1927 + #, python-format + msgid "Could not set file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1857 ++#: ../semanage/seobject/__init__.py:1869 + #, python-format + msgid "Could not add file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1871 ++#: ../semanage/seobject/__init__.py:1883 + msgid "Requires setype, serange or seuser" + msgstr "" + +-#: ../semanage/seobject.py:1887 ../semanage/seobject.py:1973 ++#: ../semanage/seobject/__init__.py:1899 ../semanage/seobject/__init__.py:1985 + #, python-format + msgid "File context for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1893 ++#: ../semanage/seobject/__init__.py:1905 + #, python-format + msgid "Could not query file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1919 ++#: ../semanage/seobject/__init__.py:1931 + #, python-format + msgid "Could not modify file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1932 ++#: ../semanage/seobject/__init__.py:1944 + msgid "Could not list the file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1946 ++#: ../semanage/seobject/__init__.py:1958 + #, python-format + msgid "Could not delete the file context %s" + msgstr "" + +-#: ../semanage/seobject.py:1971 ++#: ../semanage/seobject/__init__.py:1983 + #, python-format + msgid "File context for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1977 ++#: ../semanage/seobject/__init__.py:1989 + #, python-format + msgid "Could not delete file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1992 ++#: ../semanage/seobject/__init__.py:2004 + msgid "Could not list file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1996 ++#: ../semanage/seobject/__init__.py:2008 + msgid "Could not list local file contexts" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "SELinux fcontext" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "type" + msgstr "" + +-#: ../semanage/seobject.py:2046 ++#: ../semanage/seobject/__init__.py:2058 + msgid "" + "\n" + "SELinux Distribution fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2051 ++#: ../semanage/seobject/__init__.py:2063 + msgid "" + "\n" + "SELinux Local fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2087 ../semanage/seobject.py:2138 +-#: ../semanage/seobject.py:2144 ++#: ../semanage/seobject/__init__.py:2099 ../semanage/seobject/__init__.py:2150 ++#: ../semanage/seobject/__init__.py:2156 + #, python-format + msgid "Could not check if boolean %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:2089 ../semanage/seobject.py:2140 ++#: ../semanage/seobject/__init__.py:2101 ../semanage/seobject/__init__.py:2152 + #, python-format + msgid "Boolean %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:2093 ++#: ../semanage/seobject/__init__.py:2105 + #, python-format + msgid "Could not query file context %s" + msgstr "" + +-#: ../semanage/seobject.py:2098 ++#: ../semanage/seobject/__init__.py:2110 + #, python-format + msgid "You must specify one of the following values: %s" + msgstr "" + +-#: ../semanage/seobject.py:2103 ++#: ../semanage/seobject/__init__.py:2115 + #, python-format + msgid "Could not set active value of boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2106 ++#: ../semanage/seobject/__init__.py:2118 + #, python-format + msgid "Could not modify boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2122 ++#: ../semanage/seobject/__init__.py:2134 + #, python-format +-msgid "Bad format %s: Record %s" ++msgid "Bad format %(BOOLNAME)s: Record %(VALUE)s" + msgstr "" + +-#: ../semanage/seobject.py:2146 ++#: ../semanage/seobject/__init__.py:2158 + #, python-format + msgid "Boolean %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:2150 ++#: ../semanage/seobject/__init__.py:2162 + #, python-format + msgid "Could not delete boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2162 ../semanage/seobject.py:2179 ++#: ../semanage/seobject/__init__.py:2174 ../semanage/seobject/__init__.py:2191 + msgid "Could not list booleans" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "off" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "on" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "SELinux boolean" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "State" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "Default" + msgstr "" + +-#: ../semanage/seobject.py:2228 ../gui/polgen.glade:113 +-#: ../gui/polgengui.py:274 ../sepolicy/sepolicy/sepolicy.glade:2147 +-#: ../sepolicy/sepolicy/sepolicy.glade:2517 +-#: ../sepolicy/sepolicy/sepolicy.glade:5021 ++#: ../semanage/seobject/__init__.py:2240 ../gui/polgen.glade:113 ++#: ../gui/polgengui.py:260 ../sepolicy/sepolicy/sepolicy.glade:2148 ++#: ../sepolicy/sepolicy/sepolicy.glade:2518 ++#: ../sepolicy/sepolicy/sepolicy.glade:5117 + msgid "Description" + msgstr "" + +@@ -1353,66 +1372,66 @@ msgstr "" + msgid "Options Error %s " + msgstr "" + +-#: ../gui/booleansPage.py:194 ../gui/system-config-selinux.glade:1706 ++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1706 + msgid "Boolean" + msgstr "" + +-#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:162 ++#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:186 + msgid "all" + msgstr "" + +-#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:164 ++#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:188 + #: ../gui/system-config-selinux.glade:1615 + #: ../gui/system-config-selinux.glade:1820 + #: ../gui/system-config-selinux.glade:2437 + msgid "Customized" + msgstr "" + +-#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1911 ++#: ../gui/fcontextPage.py:63 ../gui/system-config-selinux.glade:1911 + msgid "File Labeling" + msgstr "" + +-#: ../gui/fcontextPage.py:74 ++#: ../gui/fcontextPage.py:73 + msgid "" + "File\n" + "Specification" + msgstr "" + +-#: ../gui/fcontextPage.py:81 ++#: ../gui/fcontextPage.py:80 + msgid "" + "Selinux\n" + "File Type" + msgstr "" + +-#: ../gui/fcontextPage.py:88 ++#: ../gui/fcontextPage.py:87 + msgid "" + "File\n" + "Type" + msgstr "" + +-#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2098 ++#: ../gui/loginsPage.py:45 ../gui/system-config-selinux.glade:2098 + msgid "User Mapping" + msgstr "" + +-#: ../gui/loginsPage.py:52 ++#: ../gui/loginsPage.py:49 + msgid "" + "Login\n" + "Name" + msgstr "" + +-#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50 ++#: ../gui/loginsPage.py:53 ../gui/usersPage.py:47 + msgid "" + "SELinux\n" + "User" + msgstr "" + +-#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55 ++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:52 + msgid "" + "MLS/\n" + "MCS Range" + msgstr "" + +-#: ../gui/loginsPage.py:133 ++#: ../gui/loginsPage.py:130 + #, python-format + msgid "Login '%s' is required" + msgstr "" +@@ -1425,15 +1444,15 @@ msgstr "" + msgid "Module Name" + msgstr "" + +-#: ../gui/modulesPage.py:135 ++#: ../gui/modulesPage.py:131 + msgid "Disable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:138 ../gui/system-config-selinux.glade:2662 ++#: ../gui/modulesPage.py:134 ../gui/system-config-selinux.glade:2662 + msgid "Enable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:163 ++#: ../gui/modulesPage.py:161 + msgid "Load Policy Module" + msgstr "" + +@@ -1472,7 +1491,7 @@ msgstr "" + msgid "Applications" + msgstr "" + +-#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:130 ++#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:132 + msgid "Standard Init Daemon" + msgstr "" + +@@ -1482,7 +1501,7 @@ msgid "" + "requires a script in /etc/rc.d/init.d" + msgstr "" + +-#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:131 ++#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:133 + msgid "DBUS System Daemon" + msgstr "" + +@@ -1494,7 +1513,7 @@ msgstr "" + msgid "Internet Services Daemon are daemons started by xinetd" + msgstr "" + +-#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:133 ++#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:135 + msgid "Web Application/Script (CGI)" + msgstr "" + +@@ -1503,7 +1522,7 @@ msgid "" + "Web Applications/Script (CGI) CGI scripts started by the web server (apache)" + msgstr "" + +-#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:135 ++#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:137 + msgid "User Application" + msgstr "" + +@@ -1513,7 +1532,7 @@ msgid "" + "started by a user" + msgstr "" + +-#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:134 ++#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:136 + msgid "Sandbox" + msgstr "" + +@@ -1565,8 +1584,8 @@ msgstr "" #: ../gui/polgen.glade:550 msgid "" @@ -5939,7 +19240,7 @@ index 80e3e2f..b7d66d0 100644 msgstr "" #: ../gui/polgen.glade:592 -@@ -1599,8 +1598,8 @@ msgstr "" +@@ -1579,8 +1598,8 @@ msgstr "" #: ../gui/polgen.glade:627 msgid "" @@ -5950,7 +19251,18 @@ index 80e3e2f..b7d66d0 100644 "the system directly." msgstr "" -@@ -1669,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" +@@ -1588,8 +1607,8 @@ msgstr "" + msgid "Enter name of application or user role:" + msgstr "" + +-#: ../gui/polgen.glade:728 ../gui/polgengui.py:272 +-#: ../sepolicy/sepolicy/sepolicy.glade:2182 ++#: ../gui/polgen.glade:728 ../gui/polgengui.py:258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2183 + msgid "Name" + msgstr "" + +@@ -1649,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" msgstr "" #: ../gui/polgen.glade:1019 @@ -5960,7 +19272,215 @@ index 80e3e2f..b7d66d0 100644 msgstr "" #: ../gui/polgen.glade:1056 -@@ -1988,8 +1988,8 @@ msgid "" +@@ -1673,7 +1693,7 @@ msgid "TCP Ports" + msgstr "" + + #: ../gui/polgen.glade:1223 ../gui/polgen.glade:1390 ../gui/polgen.glade:1589 +-#: ../gui/polgen.glade:1698 ../sepolicy/sepolicy/sepolicy.glade:4314 ++#: ../gui/polgen.glade:1698 + msgid "All" + msgstr "" + +@@ -1804,118 +1824,118 @@ msgstr "" + msgid "Policy Directory" + msgstr "" + +-#: ../gui/polgengui.py:282 ++#: ../gui/polgengui.py:268 + msgid "Role" + msgstr "" + +-#: ../gui/polgengui.py:289 ++#: ../gui/polgengui.py:275 + msgid "Existing_User" + msgstr "" + +-#: ../gui/polgengui.py:303 ../gui/polgengui.py:311 ../gui/polgengui.py:325 ++#: ../gui/polgengui.py:289 ../gui/polgengui.py:297 ../gui/polgengui.py:311 + msgid "Application" + msgstr "" + +-#: ../gui/polgengui.py:370 ++#: ../gui/polgengui.py:356 + #, python-format + msgid "%s must be a directory" + msgstr "" + +-#: ../gui/polgengui.py:430 ../gui/polgengui.py:711 ++#: ../gui/polgengui.py:416 ../gui/polgengui.py:697 + msgid "You must select a user" + msgstr "" + +-#: ../gui/polgengui.py:560 ++#: ../gui/polgengui.py:546 + msgid "Select executable file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:571 ++#: ../gui/polgengui.py:557 + msgid "Select init script file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:581 ++#: ../gui/polgengui.py:567 + msgid "Select file(s) that confined application creates or writes" + msgstr "" + +-#: ../gui/polgengui.py:588 ++#: ../gui/polgengui.py:574 + msgid "Select directory(s) that the confined application owns and writes into" + msgstr "" + +-#: ../gui/polgengui.py:650 ++#: ../gui/polgengui.py:636 + msgid "Select directory to generate policy files in" + msgstr "" + +-#: ../gui/polgengui.py:667 ++#: ../gui/polgengui.py:653 + #, python-format + msgid "" + "Type %s_t already defined in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:667 ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:653 ../gui/polgengui.py:657 + msgid "Verify Name" + msgstr "" + +-#: ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:657 + #, python-format + msgid "" + "Module %s.pp already loaded in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:717 ++#: ../gui/polgengui.py:703 + msgid "" + "You must add a name made up of letters and numbers and containing no spaces." + msgstr "" + +-#: ../gui/polgengui.py:731 ++#: ../gui/polgengui.py:717 + msgid "You must enter a executable" + msgstr "" + +-#: ../gui/polgengui.py:756 ../gui/system-config-selinux.py:180 ++#: ../gui/polgengui.py:742 ../gui/system-config-selinux.py:180 + msgid "Configue SELinux" + msgstr "" + +-#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2528 ++#: ../gui/portsPage.py:48 ../gui/system-config-selinux.glade:2528 + msgid "Network Port" + msgstr "" + +-#: ../gui/portsPage.py:85 ++#: ../gui/portsPage.py:82 + msgid "" + "SELinux Port\n" + "Type" + msgstr "" + +-#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363 +-#: ../sepolicy/sepolicy/sepolicy.glade:1443 +-#: ../sepolicy/sepolicy/sepolicy.glade:2657 +-#: ../sepolicy/sepolicy/sepolicy.glade:2755 +-#: ../sepolicy/sepolicy/sepolicy.glade:4672 ++#: ../gui/portsPage.py:88 ../gui/system-config-selinux.glade:363 ++#: ../sepolicy/sepolicy/sepolicy.glade:1439 ++#: ../sepolicy/sepolicy/sepolicy.glade:2658 ++#: ../sepolicy/sepolicy/sepolicy.glade:2756 ++#: ../sepolicy/sepolicy/sepolicy.glade:4633 + msgid "Protocol" + msgstr "" + +-#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479 ++#: ../gui/portsPage.py:93 ../gui/system-config-selinux.glade:479 + msgid "" + "MLS/MCS\n" + "Level" + msgstr "" + +-#: ../gui/portsPage.py:101 ../sepolicy/sepolicy/sepolicy.glade:2638 +-#: ../sepolicy/sepolicy/sepolicy.glade:2737 +-#: ../sepolicy/sepolicy/sepolicy.glade:4658 ++#: ../gui/portsPage.py:98 ../sepolicy/sepolicy/sepolicy.glade:2639 ++#: ../sepolicy/sepolicy/sepolicy.glade:2738 ++#: ../sepolicy/sepolicy/sepolicy.glade:4619 + msgid "Port" + msgstr "" + +-#: ../gui/portsPage.py:207 ++#: ../gui/portsPage.py:205 + #, python-format + msgid "Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 " + msgstr "" + +-#: ../gui/portsPage.py:252 ++#: ../gui/portsPage.py:258 + msgid "List View" + msgstr "" + +-#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2419 ++#: ../gui/portsPage.py:261 ../gui/system-config-selinux.glade:2419 + msgid "Group View" + msgstr "" + +@@ -1929,50 +1949,50 @@ msgstr "" + msgid "Delete %s" + msgstr "" + +-#: ../gui/semanagePage.py:134 ++#: ../gui/semanagePage.py:158 + #, python-format + msgid "Add %s" + msgstr "" + +-#: ../gui/semanagePage.py:148 ++#: ../gui/semanagePage.py:172 + #, python-format + msgid "Modify %s" + msgstr "" + +-#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2819 +-#: ../sepolicy/sepolicy/sepolicy.glade:3413 +-#: ../sepolicy/sepolicy/sepolicy.glade:3486 ++#: ../gui/statusPage.py:65 ../gui/system-config-selinux.glade:2819 ++#: ../sepolicy/sepolicy/sepolicy.glade:3414 ++#: ../sepolicy/sepolicy/sepolicy.glade:3487 + msgid "Permissive" + msgstr "" + +-#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2837 +-#: ../sepolicy/sepolicy/sepolicy.glade:3394 +-#: ../sepolicy/sepolicy/sepolicy.glade:3468 ++#: ../gui/statusPage.py:66 ../gui/system-config-selinux.glade:2837 ++#: ../sepolicy/sepolicy/sepolicy.glade:3395 ++#: ../sepolicy/sepolicy/sepolicy.glade:3469 + msgid "Enforcing" + msgstr "" + +-#: ../gui/statusPage.py:94 ++#: ../gui/statusPage.py:90 + msgid "Status" + msgstr "" + +-#: ../gui/statusPage.py:133 ../sepolicy/sepolicy/gui.py:2619 ++#: ../gui/statusPage.py:129 ../sepolicy/sepolicy/gui.py:2613 + msgid "" + "Changing the policy type will cause a relabel of the entire file system on " + "the next boot. Relabeling takes a long time depending on the size of the " + "file system. Do you wish to continue?" + msgstr "" + +-#: ../gui/statusPage.py:147 ++#: ../gui/statusPage.py:143 + msgid "" + "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 " @@ -5970,8 +19490,41 @@ index 80e3e2f..b7d66d0 100644 +" wish to continue?" msgstr "" - #: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 -@@ -2223,8 +2223,8 @@ msgstr "" +-#: ../gui/statusPage.py:152 ../sepolicy/sepolicy/gui.py:2753 ++#: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 + msgid "" + "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 " +@@ -2024,8 +2044,8 @@ msgid "" + msgstr "" + + #: ../gui/system-config-selinux.glade:773 +-#: ../sepolicy/sepolicy/sepolicy.glade:729 +-#: ../sepolicy/sepolicy/sepolicy.glade:1489 ++#: ../sepolicy/sepolicy/sepolicy.glade:711 ++#: ../sepolicy/sepolicy/sepolicy.glade:1485 + msgid "MLS" + msgstr "" + +@@ -2038,7 +2058,7 @@ msgid "SELinux Administration" + msgstr "" + + #: ../gui/system-config-selinux.glade:1122 +-#: ../sepolicy/sepolicy/sepolicy.glade:4162 ++#: ../sepolicy/sepolicy/sepolicy.glade:4163 + msgid "Add" + msgstr "" + +@@ -2108,7 +2128,7 @@ msgstr "" + #: ../gui/system-config-selinux.glade:2467 + #: ../gui/system-config-selinux.glade:2692 + #: ../gui/system-config-selinux.glade:2867 +-#: ../sepolicy/sepolicy/sepolicy.glade:1992 ++#: ../sepolicy/sepolicy/sepolicy.glade:1993 + msgid "Filter" + msgstr "" + +@@ -2203,8 +2223,8 @@ msgstr "" #: ../gui/system-config-selinux.glade:2661 msgid "" @@ -5982,32 +19535,175 @@ index 80e3e2f..b7d66d0 100644 msgstr "" #: ../gui/system-config-selinux.glade:2781 -@@ -2265,8 +2265,8 @@ msgstr "" +@@ -2227,7 +2247,7 @@ msgstr "" + msgid "label59" + msgstr "" + +-#: ../gui/usersPage.py:138 ++#: ../gui/usersPage.py:140 + #, python-format + msgid "SELinux user '%s' is required" + msgstr "" +@@ -2239,13 +2259,14 @@ msgstr "" + + #: booleans.py:2 + msgid "" +-"Allow ABRT to run in abrt_handle_event_t domain to handle ABRT event scripts" ++"Determine whether ABRT can run in the abrt_handle_event_t domain to handle " ++"ABRT event scripts." + msgstr "" #: booleans.py:3 msgid "" --"Determine whether abrt-handle-upload can modify public files used for public " --"file transfer services in /var/spool/abrt-upload/." +-"Allow abrt-handle-upload to modify public files used for public file " +-"transfer services in /var/spool/abrt-upload/." +"Determine whether abrt-handle-upload can modify public files used for public" +" file transfer services in /var/spool/abrt-upload/." msgstr "" #: booleans.py:4 -@@ -2395,8 +2395,9 @@ msgstr "" +@@ -2279,7 +2300,7 @@ msgid "Determine whether awstats can purge httpd log files." + msgstr "" - #: booleans.py:32 - msgid "" + #: booleans.py:11 +-msgid "Allow boinc_domain execmem/execstack." ++msgid "Determine whether boinc can execmem/execstack." + msgstr "" + + #: booleans.py:12 +@@ -2335,1467 +2356,1506 @@ msgid "" + msgstr "" + + #: booleans.py:23 +-msgid "Determine whether cvs can read shadow password files." ++msgid "" ++"Determine whether crond can execute jobs in the user domain as opposed to " ++"the the generic cronjob domain." + msgstr "" + + #: booleans.py:24 +-msgid "Allow all daemons to write corefiles to /" ++msgid "Determine whether cvs can read shadow password files." + msgstr "" + + #: booleans.py:25 +-msgid "Allow all daemons to use tcp wrappers." ++msgid "Allow all daemons to write corefiles to /" + msgstr "" + + #: booleans.py:26 +-msgid "Allow all daemons the ability to read/write terminals" ++msgid "Enable cluster mode for daemons." + msgstr "" + + #: booleans.py:27 +-msgid "Determine whether dbadm can manage generic user files." ++msgid "Allow all daemons to use tcp wrappers." + msgstr "" + + #: booleans.py:28 +-msgid "Determine whether dbadm can read generic user files." ++msgid "Allow all daemons the ability to read/write terminals" + msgstr "" + + #: booleans.py:29 +-msgid "" -"Deny user domains applications to map a memory region as both executable and " -"writable, this is dangerous and the executable should be reported in bugzilla" ++msgid "Allow dbadm to exec content" + msgstr "" + + #: booleans.py:30 +-msgid "Deny any process from ptracing or debugging any other processes." ++msgid "Determine whether dbadm can manage generic user files." + msgstr "" + + #: booleans.py:31 +-msgid "Allow dhcpc client applications to execute iptables commands" ++msgid "Determine whether dbadm can read generic user files." + msgstr "" + + #: booleans.py:32 +-msgid "Determine whether DHCP daemon can use LDAP backends." ++msgid "" +"Deny user domains applications to map a memory region as both executable and" +" writable, this is dangerous and the executable should be reported in " +"bugzilla" msgstr "" #: booleans.py:33 -@@ -2462,8 +2463,8 @@ msgstr "" +-msgid "Allow all domains to use other domains file descriptors" ++msgid "Deny any process from ptracing or debugging any other processes." + msgstr "" - #: booleans.py:47 + #: booleans.py:34 +-msgid "Allow all domains to have the kernel load modules" ++msgid "Allow dhcpc client applications to execute iptables commands" + msgstr "" + + #: booleans.py:35 ++msgid "Determine whether DHCP daemon can use LDAP backends." ++msgstr "" ++ ++#: booleans.py:36 ++msgid "Allow all domains to use other domains file descriptors" ++msgstr "" ++ ++#: booleans.py:37 ++msgid "Allow all domains to have the kernel load modules" ++msgstr "" ++ ++#: booleans.py:38 + msgid "" + "Determine whether entropyd can use audio devices as the source for the " + "entropy feeds." + msgstr "" + +-#: booleans.py:36 ++#: booleans.py:39 + msgid "Determine whether exim can connect to databases." + msgstr "" + +-#: booleans.py:37 ++#: booleans.py:40 + msgid "" + "Determine whether exim can create, read, write, and delete generic user " + "content files." + msgstr "" + +-#: booleans.py:38 ++#: booleans.py:41 + msgid "Determine whether exim can read generic user content files." + msgstr "" + +-#: booleans.py:39 ++#: booleans.py:42 + msgid "Enable extra rules in the cron domain to support fcron." + msgstr "" + +-#: booleans.py:40 ++#: booleans.py:43 + msgid "Determine whether fenced can connect to the TCP network." + msgstr "" + +-#: booleans.py:41 ++#: booleans.py:44 + msgid "Determine whether fenced can use ssh." + msgstr "" + +-#: booleans.py:42 ++#: booleans.py:45 + msgid "Allow all domains to execute in fips_mode" + msgstr "" + +-#: booleans.py:43 ++#: booleans.py:46 + msgid "" + "Determine whether ftpd can read and write files in user home directories." + msgstr "" + +-#: booleans.py:44 ++#: booleans.py:47 msgid "" -"Determine whether ftpd can modify public files used for public file transfer " -"services. Directories/Files must be labeled public_content_rw_t." @@ -6015,30 +19711,834 @@ index 80e3e2f..b7d66d0 100644 +" services. Directories/Files must be labeled public_content_rw_t." msgstr "" - #: booleans.py:48 -@@ -2615,7 +2616,8 @@ msgid "Allow HTTPD scripts and modules to connect to the network using TCP." +-#: booleans.py:45 ++#: booleans.py:48 + msgid "Determine whether ftpd can connect to all unreserved ports." msgstr "" - #: booleans.py:80 +-#: booleans.py:46 ++#: booleans.py:49 + msgid "Determine whether ftpd can connect to databases over the TCP network." + msgstr "" + +-#: booleans.py:47 ++#: booleans.py:50 + msgid "" + "Determine whether ftpd can login to local users and can read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:48 ++#: booleans.py:51 + msgid "" + "Determine whether ftpd can use CIFS used for public file transfer services." + msgstr "" + +-#: booleans.py:49 ++#: booleans.py:52 + msgid "Allow ftpd to use ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:50 ++#: booleans.py:53 + msgid "" + "Determine whether ftpd can use NFS used for public file transfer services." + msgstr "" + +-#: booleans.py:51 ++#: booleans.py:54 + msgid "" + "Determine whether ftpd can bind to all unreserved ports for passive mode." + msgstr "" + +-#: booleans.py:52 ++#: booleans.py:55 + msgid "Determine whether Git CGI can search home directories." + msgstr "" + +-#: booleans.py:53 ++#: booleans.py:56 + msgid "Determine whether Git CGI can access cifs file systems." + msgstr "" + +-#: booleans.py:54 ++#: booleans.py:57 + msgid "Determine whether Git CGI can access nfs file systems." + msgstr "" + +-#: booleans.py:55 ++#: booleans.py:58 + msgid "" + "Determine whether Git session daemon can bind TCP sockets to all unreserved " + "ports." + msgstr "" + +-#: booleans.py:56 ++#: booleans.py:59 + msgid "" + "Determine whether calling user domains can execute Git daemon in the " + "git_session_t domain." + msgstr "" + +-#: booleans.py:57 ++#: booleans.py:60 + msgid "Determine whether Git system daemon can search home directories." + msgstr "" + +-#: booleans.py:58 ++#: booleans.py:61 + msgid "Determine whether Git system daemon can access cifs file systems." + msgstr "" + +-#: booleans.py:59 ++#: booleans.py:62 + msgid "Determine whether Git system daemon can access nfs file systems." + msgstr "" + +-#: booleans.py:60 ++#: booleans.py:63 + msgid "Determine whether Gitosis can send mail." + msgstr "" + +-#: booleans.py:61 ++#: booleans.py:64 + msgid "Enable reading of urandom for all domains." + msgstr "" + +-#: booleans.py:62 ++#: booleans.py:65 + msgid "" + "Allow glusterfsd to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:63 ++#: booleans.py:66 + msgid "Allow glusterfsd to share any file/directory read only." + msgstr "" + +-#: booleans.py:64 ++#: booleans.py:67 + msgid "Allow glusterfsd to share any file/directory read/write." + msgstr "" + +-#: booleans.py:65 ++#: booleans.py:68 + msgid "" + "Allow usage of the gpg-agent --write-env-file option. This also allows gpg-" + "agent to manage user files." + msgstr "" + +-#: booleans.py:66 ++#: booleans.py:69 + msgid "" + "Allow gpg web domain to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:67 ++#: booleans.py:70 + msgid "" + "Allow gssd to list tmp directories and read the kerberos credential cache." + msgstr "" + +-#: booleans.py:68 ++#: booleans.py:71 + msgid "Allow guest to exec content" + msgstr "" + +-#: booleans.py:69 ++#: booleans.py:72 + msgid "" + "Allow Apache to modify public files used for public file transfer services. " + "Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:70 ++#: booleans.py:73 + msgid "Allow httpd to use built in scripting (usually php)" + msgstr "" + +-#: booleans.py:71 ++#: booleans.py:74 + msgid "Allow http daemon to check spam" + msgstr "" + +-#: booleans.py:72 ++#: booleans.py:75 + msgid "" + "Allow httpd to act as a FTP client connecting to the ftp port and ephemeral " + "ports" + msgstr "" + +-#: booleans.py:73 ++#: booleans.py:76 + msgid "Allow httpd to connect to the ldap port" + msgstr "" + +-#: booleans.py:74 ++#: booleans.py:77 + msgid "Allow http daemon to connect to mythtv" + msgstr "" + +-#: booleans.py:75 ++#: booleans.py:78 + msgid "Allow http daemon to connect to zabbix" + msgstr "" + +-#: booleans.py:76 ++#: booleans.py:79 + msgid "Allow HTTPD scripts and modules to connect to the network using TCP." + msgstr "" + +-#: booleans.py:77 -msgid "Allow HTTPD scripts and modules to connect to cobbler over the network." ++#: booleans.py:80 +msgid "" +"Allow HTTPD scripts and modules to connect to cobbler over the network." msgstr "" - #: booleans.py:81 -@@ -3122,7 +3124,8 @@ msgstr "" +-#: booleans.py:78 ++#: booleans.py:81 + msgid "" + "Allow HTTPD scripts and modules to connect to databases over the network." + msgstr "" - #: booleans.py:197 +-#: booleans.py:79 ++#: booleans.py:82 + msgid "Allow httpd to connect to memcache server" + msgstr "" + +-#: booleans.py:80 ++#: booleans.py:83 + msgid "Allow httpd to act as a relay" + msgstr "" + +-#: booleans.py:81 ++#: booleans.py:84 + msgid "Allow http daemon to send mail" + msgstr "" + +-#: booleans.py:82 ++#: booleans.py:85 + msgid "Allow Apache to communicate with avahi service via dbus" + msgstr "" + +-#: booleans.py:83 ++#: booleans.py:86 + msgid "Allow httpd cgi support" + msgstr "" + +-#: booleans.py:84 ++#: booleans.py:87 + msgid "Allow httpd to act as a FTP server by listening on the ftp port." + msgstr "" + +-#: booleans.py:85 ++#: booleans.py:88 + msgid "Allow httpd to read home directories" + msgstr "" + +-#: booleans.py:86 ++#: booleans.py:89 + msgid "Allow httpd scripts and modules execmem/execstack" + msgstr "" + +-#: booleans.py:87 ++#: booleans.py:90 + msgid "Allow HTTPD to connect to port 80 for graceful shutdown" + msgstr "" + +-#: booleans.py:88 ++#: booleans.py:91 + msgid "Allow httpd processes to manage IPA content" + msgstr "" + +-#: booleans.py:89 ++#: booleans.py:92 + msgid "Allow Apache to use mod_auth_ntlm_winbind" + msgstr "" + +-#: booleans.py:90 ++#: booleans.py:93 + msgid "Allow Apache to use mod_auth_pam" + msgstr "" + +-#: booleans.py:91 ++#: booleans.py:94 + msgid "Allow httpd to read user content" + msgstr "" + +-#: booleans.py:92 ++#: booleans.py:95 + msgid "Allow Apache to run in stickshift mode, not transition to passenger" + msgstr "" + +-#: booleans.py:93 ++#: booleans.py:96 + msgid "Allow HTTPD scripts and modules to server cobbler files." + msgstr "" + +-#: booleans.py:94 ++#: booleans.py:97 + msgid "Allow httpd daemon to change its resource limits" + msgstr "" + +-#: booleans.py:95 ++#: booleans.py:98 + msgid "" + "Allow HTTPD to run SSI executables in the same domain as system CGI scripts." + msgstr "" + +-#: booleans.py:96 ++#: booleans.py:99 + msgid "" + "Allow apache scripts to write to public content, directories/files must be " + "labeled public_rw_content_t." + msgstr "" + +-#: booleans.py:97 ++#: booleans.py:100 + msgid "Allow Apache to execute tmp content." + msgstr "" + +-#: booleans.py:98 ++#: booleans.py:101 + msgid "" + "Unify HTTPD to communicate with the terminal. Needed for entering the " + "passphrase for certificates at the terminal." + msgstr "" + +-#: booleans.py:99 ++#: booleans.py:102 + msgid "Unify HTTPD handling of all content files." + msgstr "" + +-#: booleans.py:100 ++#: booleans.py:103 + msgid "Allow httpd to access cifs file systems" + msgstr "" + +-#: booleans.py:101 ++#: booleans.py:104 + msgid "Allow httpd to access FUSE file systems" + msgstr "" + +-#: booleans.py:102 ++#: booleans.py:105 + msgid "Allow httpd to run gpg" + msgstr "" + +-#: booleans.py:103 ++#: booleans.py:106 + msgid "Allow httpd to access nfs file systems" + msgstr "" + +-#: booleans.py:104 ++#: booleans.py:107 + msgid "Allow httpd to access openstack ports" + msgstr "" + +-#: booleans.py:105 ++#: booleans.py:108 + msgid "Allow httpd to connect to sasl" + msgstr "" + +-#: booleans.py:106 ++#: booleans.py:109 + msgid "Allow Apache to query NS records" + msgstr "" + +-#: booleans.py:107 ++#: booleans.py:110 + msgid "Determine whether icecast can listen on and connect to any TCP port." + msgstr "" + +-#: booleans.py:108 ++#: booleans.py:111 + msgid "" + "Determine whether irc clients can listen on and connect to any unreserved " + "TCP ports." + msgstr "" + +-#: booleans.py:109 ++#: booleans.py:112 + msgid "" + "Allow the Irssi IRC Client to connect to any port, and to bind to any " + "unreserved port." + msgstr "" + +-#: booleans.py:110 ++#: booleans.py:113 ++msgid "Allow s-c-kdump to run bootloader in bootloader_t." ++msgstr "" ++ ++#: booleans.py:114 + msgid "Allow confined applications to run with kerberos." + msgstr "" + +-#: booleans.py:111 ++#: booleans.py:115 + msgid "Allow ksmtuned to use cifs/Samba file systems" + msgstr "" + +-#: booleans.py:112 ++#: booleans.py:116 + msgid "Allow ksmtuned to use nfs file systems" + msgstr "" + +-#: booleans.py:113 ++#: booleans.py:117 ++msgid "Allow logadm to exec content" ++msgstr "" ++ ++#: booleans.py:118 + msgid "Allow syslogd daemon to send mail" + msgstr "" + +-#: booleans.py:114 ++#: booleans.py:119 + msgid "Allow syslogd the ability to read/write terminals" + msgstr "" + +-#: booleans.py:115 ++#: booleans.py:120 + msgid "Allow logging in and using the system from /dev/console." + msgstr "" + +-#: booleans.py:116 ++#: booleans.py:121 ++msgid "Determine whether logwatch can connect to mail over the network." ++msgstr "" ++ ++#: booleans.py:122 + msgid "Allow epylog to send mail" + msgstr "" + +-#: booleans.py:117 ++#: booleans.py:123 + msgid "Allow mailman to access FUSE file systems" + msgstr "" + +-#: booleans.py:118 ++#: booleans.py:124 + msgid "Determine whether mcelog supports client mode." + msgstr "" + +-#: booleans.py:119 ++#: booleans.py:125 + msgid "Determine whether mcelog can execute scripts." + msgstr "" + +-#: booleans.py:120 ++#: booleans.py:126 + msgid "Determine whether mcelog can use all the user ttys." + msgstr "" + +-#: booleans.py:121 ++#: booleans.py:127 + msgid "Determine whether mcelog supports server mode." + msgstr "" + +-#: booleans.py:122 ++#: booleans.py:128 ++msgid "Determine whether minidlna can read generic user content." ++msgstr "" ++ ++#: booleans.py:129 + msgid "" + "Control the ability to mmap a low area of the address space, as configured " + "by /proc/sys/kernel/mmap_min_addr." + msgstr "" + +-#: booleans.py:123 ++#: booleans.py:130 + msgid "Allow mock to read files in home directories." + msgstr "" + +-#: booleans.py:124 ++#: booleans.py:131 + msgid "Allow the mount commands to mount any directory or file." + msgstr "" + +-#: booleans.py:125 ++#: booleans.py:132 + msgid "Allow mozilla plugin domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:126 ++#: booleans.py:133 + msgid "Allow mozilla plugin to support GPS." + msgstr "" + +-#: booleans.py:127 ++#: booleans.py:134 + msgid "Allow mozilla plugin to support spice protocols." + msgstr "" + +-#: booleans.py:128 ++#: booleans.py:135 + msgid "Allow confined web browsers to read home directory content" + msgstr "" + +-#: booleans.py:129 ++#: booleans.py:136 + msgid "Determine whether mpd can traverse user home directories." + msgstr "" + +-#: booleans.py:130 ++#: booleans.py:137 + msgid "Determine whether mpd can use cifs file systems." + msgstr "" + +-#: booleans.py:131 ++#: booleans.py:138 + msgid "Determine whether mpd can use nfs file systems." + msgstr "" + +-#: booleans.py:132 ++#: booleans.py:139 + msgid "Determine whether mplayer can make its stack executable." + msgstr "" + +-#: booleans.py:133 ++#: booleans.py:140 + msgid "Allow mysqld to connect to all ports" + msgstr "" + +-#: booleans.py:134 ++#: booleans.py:141 + msgid "Determine whether Bind can bind tcp socket to http ports." + msgstr "" + +-#: booleans.py:135 ++#: booleans.py:142 + msgid "" + "Determine whether Bind can write to master zone files. Generally this is " + "used for dynamic DNS or zone transfers." + msgstr "" + +-#: booleans.py:136 ++#: booleans.py:143 + msgid "Allow any files/directories to be exported read/only via NFS." + msgstr "" + +-#: booleans.py:137 ++#: booleans.py:144 + msgid "Allow any files/directories to be exported read/write via NFS." + msgstr "" + +-#: booleans.py:138 ++#: booleans.py:145 + msgid "" + "Allow nfs servers to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:139 ++#: booleans.py:146 + msgid "Allow system to run with NIS" + msgstr "" + +-#: booleans.py:140 ++#: booleans.py:147 + msgid "Allow confined applications to use nscd shared memory." + msgstr "" + +-#: booleans.py:141 ++#: booleans.py:148 + msgid "Allow openshift to lockdown app" + msgstr "" + +-#: booleans.py:142 ++#: booleans.py:149 + msgid "Determine whether openvpn can connect to the TCP network." + msgstr "" + +-#: booleans.py:143 ++#: booleans.py:150 + msgid "Determine whether openvpn can read generic user home content files." + msgstr "" + +-#: booleans.py:144 ++#: booleans.py:151 + msgid "Allow openvpn to run unconfined scripts" + msgstr "" + +-#: booleans.py:145 ++#: booleans.py:152 + msgid "Allow piranha-lvs domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:146 ++#: booleans.py:153 + msgid "Allow polipo to connect to all ports > 1023" + msgstr "" + +-#: booleans.py:147 ++#: booleans.py:154 + msgid "" + "Determine whether Polipo session daemon can bind tcp sockets to all " + "unreserved ports." + msgstr "" + +-#: booleans.py:148 ++#: booleans.py:155 + msgid "" + "Determine whether calling user domains can execute Polipo daemon in the " + "polipo_session_t domain." + msgstr "" + +-#: booleans.py:149 ++#: booleans.py:156 + msgid "Determine whether polipo can access cifs file systems." + msgstr "" + +-#: booleans.py:150 ++#: booleans.py:157 + msgid "Determine whether Polipo can access nfs file systems." + msgstr "" + +-#: booleans.py:151 ++#: booleans.py:158 + msgid "Enable polyinstantiated directory support." + msgstr "" + +-#: booleans.py:152 ++#: booleans.py:159 + msgid "Allow postfix_local domain full write access to mail_spool directories" + msgstr "" + +-#: booleans.py:153 ++#: booleans.py:160 + msgid "Allow postgresql to use ssh and rsync for point-in-time recovery" + msgstr "" + +-#: booleans.py:154 ++#: booleans.py:161 + msgid "Allow transmit client label to foreign database" + msgstr "" + +-#: booleans.py:155 ++#: booleans.py:162 + msgid "Allow database admins to execute DML statement" + msgstr "" + +-#: booleans.py:156 ++#: booleans.py:163 + msgid "Allow unprivileged users to execute DDL statement" + msgstr "" + +-#: booleans.py:157 ++#: booleans.py:164 + msgid "Allow pppd to load kernel modules for certain modems" + msgstr "" + +-#: booleans.py:158 ++#: booleans.py:165 + msgid "Allow pppd to be run for a regular user" + msgstr "" + +-#: booleans.py:159 ++#: booleans.py:166 + msgid "Determine whether privoxy can connect to all tcp ports." + msgstr "" + +-#: booleans.py:160 ++#: booleans.py:167 + msgid "" + "Permit to prosody to bind apache port. Need to be activated to use BOSH." + msgstr "" + +-#: booleans.py:161 ++#: booleans.py:168 + msgid "Allow Puppet client to manage all file types." + msgstr "" + +-#: booleans.py:162 ++#: booleans.py:169 + msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database" + msgstr "" + +-#: booleans.py:163 ++#: booleans.py:170 + msgid "Allow racoon to read shadow" + msgstr "" + +-#: booleans.py:164 ++#: booleans.py:171 + msgid "" + "Allow rsync to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:165 ++#: booleans.py:172 + msgid "Allow rsync to run as a client" + msgstr "" + +-#: booleans.py:166 ++#: booleans.py:173 + msgid "Allow rsync to export any files/directories read only." + msgstr "" + +-#: booleans.py:167 ++#: booleans.py:174 + msgid "Allow rsync server to manage all files/directories on the system." + msgstr "" + +-#: booleans.py:168 ++#: booleans.py:175 + msgid "Allow samba to create new home directories (e.g. via PAM)" + msgstr "" + +-#: booleans.py:169 ++#: booleans.py:176 + msgid "" + "Allow samba to act as the domain controller, add users, groups and change " + "passwords." + msgstr "" + +-#: booleans.py:170 ++#: booleans.py:177 + msgid "Allow samba to share users home directories." + msgstr "" + +-#: booleans.py:171 ++#: booleans.py:178 + msgid "Allow samba to share any file/directory read only." + msgstr "" + +-#: booleans.py:172 ++#: booleans.py:179 + msgid "Allow samba to share any file/directory read/write." + msgstr "" + +-#: booleans.py:173 ++#: booleans.py:180 + msgid "Allow samba to act as a portmapper" + msgstr "" + +-#: booleans.py:174 ++#: booleans.py:181 + msgid "Allow samba to run unconfined scripts" + msgstr "" + +-#: booleans.py:175 ++#: booleans.py:182 + msgid "Allow samba to export ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:176 ++#: booleans.py:183 + msgid "Allow samba to export NFS volumes." + msgstr "" + +-#: booleans.py:177 ++#: booleans.py:184 + msgid "Allow sanlock to read/write fuse files" + msgstr "" + +-#: booleans.py:178 ++#: booleans.py:185 + msgid "Allow sanlock to manage nfs files" + msgstr "" + +-#: booleans.py:179 ++#: booleans.py:186 + msgid "Allow sanlock to manage cifs files" + msgstr "" + +-#: booleans.py:180 ++#: booleans.py:187 + msgid "Allow sasl to read shadow" + msgstr "" + +-#: booleans.py:181 ++#: booleans.py:188 + msgid "Allow secadm to exec content" + msgstr "" + +-#: booleans.py:182 ++#: booleans.py:189 + msgid "" + "disallow programs, such as newrole, from transitioning to administrative " + "user domains." + msgstr "" + +-#: booleans.py:183 ++#: booleans.py:190 + msgid "Disable kernel module loading." + msgstr "" + +-#: booleans.py:184 ++#: booleans.py:191 + msgid "" + "Boolean to determine whether the system permits loading policy, setting " + "enforcing mode, and changing boolean values. Set this to true and you have " + "to reboot to set it back." + msgstr "" + +-#: booleans.py:185 ++#: booleans.py:192 + msgid "Allow regular users direct dri device access" + msgstr "" + +-#: booleans.py:186 ++#: booleans.py:193 + msgid "" + "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 "" + +-#: booleans.py:187 ++#: booleans.py:194 + msgid "" + "Allow all unconfined executables to use libraries requiring text relocation " + "that are not labeled textrel_shlib_t" + msgstr "" + +-#: booleans.py:188 ++#: booleans.py:195 + msgid "" + "Allow unconfined executables to make their stack executable. This should " + "never, ever be necessary. Probably indicates a badly coded executable, but " + "could indicate an attack. This executable should be reported in bugzilla" + msgstr "" + +-#: booleans.py:189 ++#: booleans.py:196 + msgid "Allow users to connect to the local mysql server" + msgstr "" + +-#: booleans.py:190 ++#: booleans.py:197 msgid "" -"Allow confined users the ability to execute the ping and traceroute commands." +"Allow confined users the ability to execute the ping and traceroute " +"commands." msgstr "" - #: booleans.py:198 -@@ -3141,8 +3144,8 @@ msgstr "" +-#: booleans.py:191 ++#: booleans.py:198 + msgid "Allow users to connect to PostgreSQL" + msgstr "" - #: booleans.py:201 +-#: booleans.py:192 ++#: booleans.py:199 + msgid "" + "Allow user to r/w files on filesystems that do not have extended attributes " + "(FAT, CDROM, FLOPPY)" + msgstr "" + +-#: booleans.py:193 ++#: booleans.py:200 + msgid "Allow user music sharing" + msgstr "" + +-#: booleans.py:194 ++#: booleans.py:201 msgid "" -"Allow users to run TCP servers (bind to ports and accept connection from the " -"same domain and outside users) disabling this forces FTP passive mode and " @@ -6047,19 +20547,211 @@ index 80e3e2f..b7d66d0 100644 "may change other protocols." msgstr "" -@@ -3234,7 +3237,8 @@ msgid "Allow sysadm to exec content" +-#: booleans.py:195 ++#: booleans.py:202 + msgid "Allow user to use ssh chroot environment." msgstr "" - #: booleans.py:221 +-#: booleans.py:196 ++#: booleans.py:203 + msgid "" + "Determine whether sftpd can modify public files used for public file " + "transfer services. Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:197 ++#: booleans.py:204 + msgid "" + "Determine whether sftpd-can read and write files in user home directories." + msgstr "" + +-#: booleans.py:198 ++#: booleans.py:205 + msgid "" + "Determine whether sftpd-can login to local users and read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:199 ++#: booleans.py:206 + msgid "" + "Determine whether sftpd can read and write files in user ssh home " + "directories." + msgstr "" + +-#: booleans.py:200 ++#: booleans.py:207 + msgid "Allow sge to connect to the network using any TCP port" + msgstr "" + +-#: booleans.py:201 ++#: booleans.py:208 + msgid "Allow sge to access nfs file systems." + msgstr "" + +-#: booleans.py:202 ++#: booleans.py:209 + msgid "Determine whether smartmon can support devices on 3ware controllers." + msgstr "" + +-#: booleans.py:203 ++#: booleans.py:210 + msgid "" + "Allow samba to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:204 ++#: booleans.py:211 + msgid "Allow user spamassassin clients to use the network." + msgstr "" + +-#: booleans.py:205 ++#: booleans.py:212 + msgid "Allow spamd to read/write user home directories." + msgstr "" + +-#: booleans.py:206 ++#: booleans.py:213 + msgid "Determine whether squid can connect to all TCP ports." + msgstr "" + +-#: booleans.py:207 ++#: booleans.py:214 + msgid "Determine whether squid can run as a transparent proxy." + msgstr "" + +-#: booleans.py:208 ++#: booleans.py:215 + msgid "" + "Allow ssh with chroot env to read and write files in the user home " + "directories" + msgstr "" + +-#: booleans.py:209 ++#: booleans.py:216 + msgid "allow host key based authentication" + msgstr "" + +-#: booleans.py:210 ++#: booleans.py:217 + msgid "Allow ssh logins as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:211 ++#: booleans.py:218 + msgid "Allow staff to exec content" + msgstr "" + +-#: booleans.py:212 ++#: booleans.py:219 + msgid "allow staff user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:213 ++#: booleans.py:220 + msgid "Allow sysadm to exec content" + msgstr "" + +-#: booleans.py:214 -msgid "Allow the Telepathy connection managers to connect to any network port." ++#: booleans.py:221 +msgid "" +"Allow the Telepathy connection managers to connect to any network port." msgstr "" - #: booleans.py:222 -@@ -3309,8 +3313,8 @@ msgstr "" +-#: booleans.py:215 ++#: booleans.py:222 + msgid "" + "Allow the Telepathy connection managers to connect to any generic TCP port." + msgstr "" - #: booleans.py:238 +-#: booleans.py:216 +-msgid "Allow testpolicy to exec content" +-msgstr "" +- +-#: booleans.py:217 ++#: booleans.py:223 + msgid "" + "Allow tftp to modify public files used for public file transfer services." + msgstr "" + +-#: booleans.py:218 ++#: booleans.py:224 + msgid "Allow tftp to read and write files in the user home directories" + msgstr "" + +-#: booleans.py:219 ++#: booleans.py:225 + msgid "Determine whether tor can bind tcp sockets to all unreserved ports." + msgstr "" + +-#: booleans.py:220 ++#: booleans.py:226 + msgid "Allow tor to act as a relay" + msgstr "" + +-#: booleans.py:221 ++#: booleans.py:227 + msgid "" + "allow unconfined users to transition to the chrome sandbox domains when " + "running chrome-sandbox" + msgstr "" + +-#: booleans.py:222 ++#: booleans.py:228 + msgid "Allow a user to login as an unconfined domain" + msgstr "" + +-#: booleans.py:223 ++#: booleans.py:229 + msgid "" + "Allow unconfined users to transition to the Mozilla plugin domain when " + "running xulrunner plugin-container." + msgstr "" + +-#: booleans.py:224 ++#: booleans.py:230 + msgid "Allow unprivledged user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:225 ++#: booleans.py:231 + msgid "Support ecryptfs home directories" + msgstr "" + +-#: booleans.py:226 ++#: booleans.py:232 + msgid "Support fusefs home directories" + msgstr "" + +-#: booleans.py:227 ++#: booleans.py:233 + msgid "Determine whether to support lpd server." + msgstr "" + +-#: booleans.py:228 ++#: booleans.py:234 + msgid "Support NFS home directories" + msgstr "" + +-#: booleans.py:229 ++#: booleans.py:235 + msgid "Support SAMBA home directories" + msgstr "" + +-#: booleans.py:230 ++#: booleans.py:236 + msgid "Allow user to exec content" + msgstr "" + +-#: booleans.py:231 ++#: booleans.py:237 + msgid "Determine whether varnishd can use the full TCP network." + msgstr "" + +-#: booleans.py:232 ++#: booleans.py:238 msgid "" -"Determine whether attempts by vbetool to mmap low regions should be silently " -"blocked." @@ -6067,20 +20759,839 @@ index 80e3e2f..b7d66d0 100644 +" blocked." msgstr "" - #: booleans.py:239 -@@ -3388,7 +3392,8 @@ msgstr "" +-#: booleans.py:233 ++#: booleans.py:239 ++msgid "Allow sandbox containers to send audit messages" ++msgstr "" ++ ++#: booleans.py:240 ++msgid "Allow sandbox containers to use netlink system calls" ++msgstr "" ++ ++#: booleans.py:241 + msgid "Allow virtual processes to run as userdomains" + msgstr "" - #: booleans.py:256 +-#: booleans.py:234 ++#: booleans.py:242 + msgid "" + "Allow confined virtual guests to use serial/parallel communication ports" + msgstr "" + +-#: booleans.py:235 ++#: booleans.py:243 + msgid "" + "Allow confined virtual guests to use executable memory and executable stack" + msgstr "" + +-#: booleans.py:236 ++#: booleans.py:244 + msgid "Allow confined virtual guests to read fuse files" + msgstr "" + +-#: booleans.py:237 ++#: booleans.py:245 + msgid "Allow confined virtual guests to manage nfs files" + msgstr "" + +-#: booleans.py:238 ++#: booleans.py:246 + msgid "Allow confined virtual guests to interact with rawip sockets" + msgstr "" + +-#: booleans.py:239 ++#: booleans.py:247 + msgid "Allow confined virtual guests to manage cifs files" + msgstr "" + +-#: booleans.py:240 ++#: booleans.py:248 + msgid "Allow confined virtual guests to interact with the sanlock" + msgstr "" + +-#: booleans.py:241 ++#: booleans.py:249 + msgid "Allow confined virtual guests to use usb devices" + msgstr "" + +-#: booleans.py:242 ++#: booleans.py:250 + msgid "Allow confined virtual guests to interact with the xserver" + msgstr "" + +-#: booleans.py:243 ++#: booleans.py:251 + msgid "Determine whether webadm can manage generic user files." + msgstr "" + +-#: booleans.py:244 ++#: booleans.py:252 + msgid "Determine whether webadm can read generic user files." + msgstr "" + +-#: booleans.py:245 ++#: booleans.py:253 + msgid "" + "Determine whether attempts by wine to mmap low regions should be silently " + "blocked." + msgstr "" + +-#: booleans.py:246 ++#: booleans.py:254 + msgid "Allow the graphical login program to execute bootloader" + msgstr "" + +-#: booleans.py:247 ++#: booleans.py:255 + msgid "" + "Allow the graphical login program to login directly as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:248 ++#: booleans.py:256 msgid "" -"Allow the graphical login program to create files in HOME dirs as xdm_home_t." +"Allow the graphical login program to create files in HOME dirs as " +"xdm_home_t." msgstr "" - #: booleans.py:257 -@@ -3969,8 +3974,8 @@ msgstr "" +-#: booleans.py:249 ++#: booleans.py:257 + msgid "Allow xen to manage nfs files" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:638 +-#: booleans.py:250 ++#: booleans.py:258 + msgid "" + "Allow xend to run blktapctrl/tapdisk. Not required if using dedicated " + "logical volumes for disk images." + msgstr "" + +-#: booleans.py:251 ++#: booleans.py:259 + msgid "Allow xend to run qemu-dm. Not required if using paravirt and no vfb." + msgstr "" + +-#: booleans.py:252 ++#: booleans.py:260 + msgid "" + "Allow xguest users to configure Network Manager and connect to apache ports" + msgstr "" + +-#: booleans.py:253 ++#: booleans.py:261 + msgid "Allow xguest to exec content" + msgstr "" + +-#: booleans.py:254 ++#: booleans.py:262 + msgid "Allow xguest users to mount removable media" + msgstr "" + +-#: booleans.py:255 ++#: booleans.py:263 + msgid "Allow xguest to use blue tooth devices" + msgstr "" + +-#: booleans.py:256 ++#: booleans.py:264 + msgid "Allows clients to write to the X server shared memory segments." + msgstr "" + +-#: booleans.py:257 ++#: booleans.py:265 + msgid "Allows XServer to execute writable memory" + msgstr "" + +-#: booleans.py:258 ++#: booleans.py:266 + msgid "Support X userspace object manager" + msgstr "" + +-#: booleans.py:259 ++#: booleans.py:267 + msgid "Determine whether zabbix can connect to all TCP ports" + msgstr "" + +-#: booleans.py:260 ++#: booleans.py:268 + msgid "Allow zarafa domains to setrlimit/sys_rouserce." + msgstr "" + +-#: booleans.py:261 ++#: booleans.py:269 + msgid "Allow zebra daemon to write it configuration files" + msgstr "" + +-#: booleans.py:262 ++#: booleans.py:270 + msgid "" + "Allow ZoneMinder to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:263 ++#: booleans.py:271 + msgid "Allow ZoneMinder to run su/sudo." + msgstr "" + +-#: ../sepolicy/sepolicy.py:194 ++#: ../sepolicy/sepolicy.py:195 + #, python-format + msgid "Interface %s does not exist." + msgstr "" + +-#: ../sepolicy/sepolicy.py:292 ++#: ../sepolicy/sepolicy.py:293 + msgid "You need to install policycoreutils-gui package to use the gui option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:296 ++#: ../sepolicy/sepolicy.py:297 + msgid "Graphical User Interface for SELinux Policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:299 ../sepolicy/sepolicy.py:345 ++#: ../sepolicy/sepolicy.py:300 ../sepolicy/sepolicy.py:346 + msgid "Domain name(s) of man pages to be created" + msgstr "" + +-#: ../sepolicy/sepolicy.py:311 ++#: ../sepolicy/sepolicy.py:312 + msgid "Alternative root needs to be setup" + msgstr "" + +-#: ../sepolicy/sepolicy.py:327 ++#: ../sepolicy/sepolicy.py:328 + msgid "Generate SELinux man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:330 ++#: ../sepolicy/sepolicy.py:331 + msgid "path in which the generated SELinux man pages will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:332 ++#: ../sepolicy/sepolicy.py:333 + msgid "name of the OS for man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:334 ++#: ../sepolicy/sepolicy.py:335 + msgid "Generate HTML man pages structure for selected SELinux man page" + msgstr "" + +-#: ../sepolicy/sepolicy.py:336 ++#: ../sepolicy/sepolicy.py:337 + msgid "Alternate root directory, defaults to /" + msgstr "" + +-#: ../sepolicy/sepolicy.py:338 ++#: ../sepolicy/sepolicy.py:339 + msgid "" + "With this flag, alternative root path needs to include file context files " + "and policy.xml file" + msgstr "" + +-#: ../sepolicy/sepolicy.py:342 ++#: ../sepolicy/sepolicy.py:343 + msgid "All domains" + msgstr "" + +-#: ../sepolicy/sepolicy.py:350 ++#: ../sepolicy/sepolicy.py:351 + msgid "Query SELinux policy network information" + msgstr "" + +-#: ../sepolicy/sepolicy.py:355 ++#: ../sepolicy/sepolicy.py:356 + msgid "list all SELinux port types" + msgstr "" + +-#: ../sepolicy/sepolicy.py:358 ++#: ../sepolicy/sepolicy.py:359 + msgid "show SELinux type related to the port" + msgstr "" + +-#: ../sepolicy/sepolicy.py:361 ++#: ../sepolicy/sepolicy.py:362 + msgid "Show ports defined for this SELinux type" + msgstr "" + +-#: ../sepolicy/sepolicy.py:364 ++#: ../sepolicy/sepolicy.py:365 + msgid "show ports to which this domain can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:367 ++#: ../sepolicy/sepolicy.py:368 + msgid "show ports to which this application can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:382 ++#: ../sepolicy/sepolicy.py:383 + msgid "query SELinux policy to see if domains can communicate with each other" + msgstr "" + +-#: ../sepolicy/sepolicy.py:385 ++#: ../sepolicy/sepolicy.py:386 + msgid "Source Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:388 ++#: ../sepolicy/sepolicy.py:389 + msgid "Target Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:407 ++#: ../sepolicy/sepolicy.py:408 + msgid "query SELinux Policy to see description of booleans" + msgstr "" + +-#: ../sepolicy/sepolicy.py:411 ++#: ../sepolicy/sepolicy.py:412 + msgid "get all booleans descriptions" + msgstr "" + +-#: ../sepolicy/sepolicy.py:414 ++#: ../sepolicy/sepolicy.py:415 + msgid "boolean to get description" + msgstr "" + +-#: ../sepolicy/sepolicy.py:424 ++#: ../sepolicy/sepolicy.py:425 + msgid "" + "query SELinux Policy to see how a source process domain can transition to " + "the target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:427 ++#: ../sepolicy/sepolicy.py:428 + msgid "source process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:430 ++#: ../sepolicy/sepolicy.py:431 + msgid "target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:472 ++#: ../sepolicy/sepolicy.py:473 + #, python-format + msgid "sepolicy generate: error: one of the arguments %s is required" + msgstr "" + +-#: ../sepolicy/sepolicy.py:477 ++#: ../sepolicy/sepolicy.py:478 + msgid "Command required for this type of policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:488 ++#: ../sepolicy/sepolicy.py:489 + #, python-format + msgid "" + "-t option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:493 ++#: ../sepolicy/sepolicy.py:494 + #, python-format + msgid "" + "-d option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:497 ++#: ../sepolicy/sepolicy.py:498 + #, python-format + msgid "" + "-a option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:501 ++#: ../sepolicy/sepolicy.py:502 + msgid "-w option can not be used with the --newtype option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:521 ++#: ../sepolicy/sepolicy.py:522 + msgid "List SELinux Policy interfaces" + msgstr "" + +-#: ../sepolicy/sepolicy.py:541 ++#: ../sepolicy/sepolicy.py:542 + msgid "Enter interface names, you wish to query" + msgstr "" + +-#: ../sepolicy/sepolicy.py:550 ++#: ../sepolicy/sepolicy.py:551 + msgid "Generate SELinux Policy module template" + msgstr "" + +-#: ../sepolicy/sepolicy.py:553 ++#: ../sepolicy/sepolicy.py:554 + msgid "Enter domain type which you will be extending" + msgstr "" + +-#: ../sepolicy/sepolicy.py:556 ++#: ../sepolicy/sepolicy.py:557 + msgid "Enter SELinux user(s) which will transition to this domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:559 ++#: ../sepolicy/sepolicy.py:560 + msgid "Enter SELinux role(s) to which the administror domain will transition" + msgstr "" + +-#: ../sepolicy/sepolicy.py:562 ++#: ../sepolicy/sepolicy.py:563 + msgid "Enter domain(s) which this confined admin will administrate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:565 ++#: ../sepolicy/sepolicy.py:566 + msgid "name of policy to generate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:572 ++#: ../sepolicy/sepolicy.py:573 + msgid "path in which the generated policy files will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:574 ++#: ../sepolicy/sepolicy.py:575 + msgid "path to which the confined processes will need to write" + msgstr "" + +-#: ../sepolicy/sepolicy.py:575 ++#: ../sepolicy/sepolicy.py:576 + msgid "Policy types which require a command" + msgstr "" + +-#: ../sepolicy/sepolicy.py:579 ../sepolicy/sepolicy.py:582 +-#: ../sepolicy/sepolicy.py:585 ../sepolicy/sepolicy.py:588 +-#: ../sepolicy/sepolicy.py:591 ../sepolicy/sepolicy.py:597 +-#: ../sepolicy/sepolicy.py:600 ../sepolicy/sepolicy.py:603 +-#: ../sepolicy/sepolicy.py:609 ../sepolicy/sepolicy.py:612 +-#: ../sepolicy/sepolicy.py:615 ../sepolicy/sepolicy.py:618 ++#: ../sepolicy/sepolicy.py:580 ../sepolicy/sepolicy.py:583 ++#: ../sepolicy/sepolicy.py:586 ../sepolicy/sepolicy.py:589 ++#: ../sepolicy/sepolicy.py:592 ../sepolicy/sepolicy.py:598 ++#: ../sepolicy/sepolicy.py:601 ../sepolicy/sepolicy.py:604 ++#: ../sepolicy/sepolicy.py:610 ../sepolicy/sepolicy.py:613 ++#: ../sepolicy/sepolicy.py:616 ../sepolicy/sepolicy.py:619 + #, python-format + msgid "Generate '%s' policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:606 ++#: ../sepolicy/sepolicy.py:607 + #, python-format + msgid "Generate '%s' policy " + msgstr "" + +-#: ../sepolicy/sepolicy.py:620 ++#: ../sepolicy/sepolicy.py:621 + msgid "executable to confine" + msgstr "" + +-#: ../sepolicy/sepolicy.py:625 ++#: ../sepolicy/sepolicy.py:626 + msgid "commands" + msgstr "" + +-#: ../sepolicy/sepolicy.py:628 ++#: ../sepolicy/sepolicy.py:629 + msgid "Alternate SELinux policy, defaults to /sys/fs/selinux/policy" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:89 ++#: ../sepolicy/sepolicy/__init__.py:96 + #, python-format + msgid "-- Allowed %s [ %s ]" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:95 ../sepolicy/sepolicy/gui.py:1135 ++#: ../sepolicy/sepolicy/__init__.py:102 ../sepolicy/sepolicy/gui.py:1152 + msgid "all files" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:96 ++#: ../sepolicy/sepolicy/__init__.py:103 + msgid "regular file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:97 ++#: ../sepolicy/sepolicy/__init__.py:104 + msgid "directory" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:98 ++#: ../sepolicy/sepolicy/__init__.py:105 + msgid "character device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:99 ++#: ../sepolicy/sepolicy/__init__.py:106 + msgid "block device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:100 ++#: ../sepolicy/sepolicy/__init__.py:107 + msgid "socket file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:101 ++#: ../sepolicy/sepolicy/__init__.py:108 + msgid "symbolic link" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:102 ++#: ../sepolicy/sepolicy/__init__.py:109 + msgid "named pipe" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:398 ++#: ../sepolicy/sepolicy/__init__.py:427 + msgid "No SELinux Policy installed" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:478 ++#: ../sepolicy/sepolicy/__init__.py:506 + msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:724 ++#: ../sepolicy/sepolicy/__init__.py:768 + #, python-format + msgid "Failed to read %s policy file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:829 ++#: ../sepolicy/sepolicy/__init__.py:873 + msgid "unknown" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:132 ++#: ../sepolicy/sepolicy/generate.py:134 + msgid "Internet Services Daemon" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:136 ++#: ../sepolicy/sepolicy/generate.py:138 + msgid "Existing Domain Type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:137 ++#: ../sepolicy/sepolicy/generate.py:139 + msgid "Minimal Terminal Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:138 ++#: ../sepolicy/sepolicy/generate.py:140 + msgid "Minimal X Windows Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:139 ++#: ../sepolicy/sepolicy/generate.py:141 + msgid "Desktop Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:140 ++#: ../sepolicy/sepolicy/generate.py:142 + msgid "Administrator Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:141 ++#: ../sepolicy/sepolicy/generate.py:143 + msgid "Confined Root Administrator Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:142 ++#: ../sepolicy/sepolicy/generate.py:144 + msgid "Module information for a new type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:147 ++#: ../sepolicy/sepolicy/generate.py:149 + msgid "Valid Types:\n" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:181 ++#: ../sepolicy/sepolicy/generate.py:183 + #, python-format + msgid "Ports must be numbers or ranges of numbers from 1 to %d " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:192 ++#: ../sepolicy/sepolicy/generate.py:194 + msgid "You must enter a valid policy type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:195 ++#: ../sepolicy/sepolicy/generate.py:197 + #, python-format + msgid "You must enter a name for your policy module for your '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:333 ++#: ../sepolicy/sepolicy/generate.py:335 + msgid "" + "Name must be alpha numberic with no spaces. Consider using option \"-n " + "MODULENAME\"" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:425 ++#: ../sepolicy/sepolicy/generate.py:427 + msgid "User Role types can not be assigned executables." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:431 ++#: ../sepolicy/sepolicy/generate.py:433 + msgid "Only Daemon apps can use an init script.." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:449 ++#: ../sepolicy/sepolicy/generate.py:451 + msgid "use_resolve must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:455 ++#: ../sepolicy/sepolicy/generate.py:457 + msgid "use_syslog must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:461 ++#: ../sepolicy/sepolicy/generate.py:463 + msgid "use_kerberos must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:467 ++#: ../sepolicy/sepolicy/generate.py:469 + msgid "manage_krb5_rcache must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:497 ++#: ../sepolicy/sepolicy/generate.py:499 + msgid "USER Types automatically get a tmp type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:838 ++#: ../sepolicy/sepolicy/generate.py:840 + #, python-format + msgid "'%s' policy modules require existing domains" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:863 ++#: ../sepolicy/sepolicy/generate.py:865 + msgid "Type field required" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:876 ++#: ../sepolicy/sepolicy/generate.py:878 + #, python-format + msgid "" + "You need to define a new type which ends with: \n" + " %s" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1104 ++#: ../sepolicy/sepolicy/generate.py:1106 + msgid "You must enter the executable path for your confined process" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1363 ++#: ../sepolicy/sepolicy/generate.py:1369 + msgid "Type Enforcement file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1364 ++#: ../sepolicy/sepolicy/generate.py:1370 + msgid "Interface file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1365 ++#: ../sepolicy/sepolicy/generate.py:1371 + msgid "File Contexts file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1367 ++#: ../sepolicy/sepolicy/generate.py:1373 + msgid "Spec file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1368 ++#: ../sepolicy/sepolicy/generate.py:1374 + msgid "Setup Script" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:25 +-#: ../sepolicy/sepolicy/sepolicy.glade:4369 ++#: ../sepolicy/sepolicy/sepolicy.glade:4330 + msgid "Applications" + msgstr "" + +@@ -3803,562 +3863,555 @@ msgstr "" + msgid "Select domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search >>" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2343 + msgid "File Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2316 ++#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2353 + msgid "Users" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:129 +-#: ../sepolicy/sepolicy/sepolicy.glade:1897 +-#: ../sepolicy/sepolicy/sepolicy.glade:3802 ../sepolicy/sepolicy/gui.py:2297 ++#: ../sepolicy/sepolicy/sepolicy.glade:1898 ++#: ../sepolicy/sepolicy/sepolicy.glade:3803 ../sepolicy/sepolicy/gui.py:2334 + msgid "System" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:189 +-#: ../sepolicy/sepolicy/sepolicy.glade:4406 +-#: ../sepolicy/sepolicy/sepolicy.glade:4499 +-#: ../sepolicy/sepolicy/sepolicy.glade:4645 +-#: ../sepolicy/sepolicy/sepolicy.glade:4793 +-#: ../sepolicy/sepolicy/sepolicy.glade:4934 +-#: ../sepolicy/sepolicy/sepolicy.glade:5007 ++#: ../sepolicy/sepolicy/sepolicy.glade:4367 ++#: ../sepolicy/sepolicy/sepolicy.glade:4460 ++#: ../sepolicy/sepolicy/sepolicy.glade:4606 ++#: ../sepolicy/sepolicy/sepolicy.glade:4755 ++#: ../sepolicy/sepolicy/sepolicy.glade:4889 ++#: ../sepolicy/sepolicy/sepolicy.glade:5030 ++#: ../sepolicy/sepolicy/sepolicy.glade:5103 ++#: ../sepolicy/sepolicy/sepolicy.glade:5238 + msgid "Select" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:204 +-#: ../sepolicy/sepolicy/sepolicy.glade:557 +-#: ../sepolicy/sepolicy/sepolicy.glade:702 +-#: ../sepolicy/sepolicy/sepolicy.glade:1243 +-#: ../sepolicy/sepolicy/sepolicy.glade:1539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4579 +-#: ../sepolicy/sepolicy/sepolicy.glade:4729 +-#: ../sepolicy/sepolicy/sepolicy.glade:4859 +-#: ../sepolicy/sepolicy/sepolicy.glade:5077 +-#: ../sepolicy/sepolicy/sepolicy.glade:5233 +-#: ../sepolicy/sepolicy/sepolicy.glade:5474 ++#: ../sepolicy/sepolicy/sepolicy.glade:539 ++#: ../sepolicy/sepolicy/sepolicy.glade:684 ++#: ../sepolicy/sepolicy/sepolicy.glade:1239 ++#: ../sepolicy/sepolicy/sepolicy.glade:1535 ++#: ../sepolicy/sepolicy/sepolicy.glade:4540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4690 ++#: ../sepolicy/sepolicy/sepolicy.glade:4821 ++#: ../sepolicy/sepolicy/sepolicy.glade:4955 ++#: ../sepolicy/sepolicy/sepolicy.glade:5173 ++#: ../sepolicy/sepolicy/sepolicy.glade:5304 ++#: ../sepolicy/sepolicy/sepolicy.glade:5464 + msgid "Cancel" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:350 ++#: ../sepolicy/sepolicy/sepolicy.glade:332 + msgid "" + "The entry that was entered is incorrect. Please try again in the " + "ex:/.../... format." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:376 ++#: ../sepolicy/sepolicy/sepolicy.glade:358 + msgid "Retry" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:460 +-#: ../sepolicy/sepolicy/sepolicy.glade:1124 +-#: ../sepolicy/sepolicy/sepolicy.glade:1372 +-#: ../sepolicy/sepolicy/sepolicy.glade:5102 +-#: ../sepolicy/sepolicy/sepolicy.glade:5343 ++#: ../sepolicy/sepolicy/sepolicy.glade:442 ++#: ../sepolicy/sepolicy/sepolicy.glade:1120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1368 ++#: ../sepolicy/sepolicy/sepolicy.glade:5332 + msgid "Network Port Definitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:476 ++#: ../sepolicy/sepolicy/sepolicy.glade:458 + msgid "" +-"Add file Equivilence Mapping. Mapping will be created when Update is " ++"Add file Equivalence Mapping. Mapping will be created when Update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:501 +-#: ../sepolicy/sepolicy/sepolicy.glade:4045 ++#: ../sepolicy/sepolicy/sepolicy.glade:483 ++#: ../sepolicy/sepolicy/sepolicy.glade:4046 + msgid "Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:511 +-#: ../sepolicy/sepolicy/sepolicy.glade:5154 +-#: ../sepolicy/sepolicy/sepolicy.glade:5395 ++#: ../sepolicy/sepolicy/sepolicy.glade:493 ++#: ../sepolicy/sepolicy/sepolicy.glade:5384 + msgid "" + "Specify a new SELinux user name. By convention SELinux User names usually " + "end in an _u." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:515 ++#: ../sepolicy/sepolicy/sepolicy.glade:497 + msgid "Enter the path to which you want to setup an equivalence label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:528 +-#: ../sepolicy/sepolicy/sepolicy.glade:4062 +-#: ../sepolicy/sepolicy/sepolicy.glade:4819 ++#: ../sepolicy/sepolicy/sepolicy.glade:510 ++#: ../sepolicy/sepolicy/sepolicy.glade:4063 ++#: ../sepolicy/sepolicy/sepolicy.glade:4781 + msgid "Equivalence Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:542 +-#: ../sepolicy/sepolicy/sepolicy.glade:687 +-#: ../sepolicy/sepolicy/sepolicy.glade:1228 +-#: ../sepolicy/sepolicy/sepolicy.glade:1524 +-#: ../sepolicy/sepolicy/sepolicy.glade:5218 +-#: ../sepolicy/sepolicy/sepolicy.glade:5459 ++#: ../sepolicy/sepolicy/sepolicy.glade:524 ++#: ../sepolicy/sepolicy/sepolicy.glade:669 ++#: ../sepolicy/sepolicy/sepolicy.glade:1224 ++#: ../sepolicy/sepolicy/sepolicy.glade:1520 ++#: ../sepolicy/sepolicy/sepolicy.glade:5449 + msgid "Save to update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:582 ++#: ../sepolicy/sepolicy/sepolicy.glade:564 + msgid "" + "Specify the mapping between the new path and the equivalence path. " + "Everything under this new path will be labeled as if they were under the " + "equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:639 ++#: ../sepolicy/sepolicy/sepolicy.glade:621 + msgid "Add a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:656 ++#: ../sepolicy/sepolicy/sepolicy.glade:638 msgid "" -" File Labeling for . File labels will be created " -"when update is applied." @@ -6088,10 +21599,71 @@ index 80e3e2f..b7d66d0 100644 +" when update is applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:726 -@@ -4022,8 +4027,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:744 +-#: ../sepolicy/sepolicy/sepolicy.glade:1471 +-#: ../sepolicy/sepolicy/sepolicy.glade:3510 ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/sepolicy.glade:726 ++#: ../sepolicy/sepolicy/sepolicy.glade:1467 ++#: ../sepolicy/sepolicy/sepolicy.glade:3511 ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced >>" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:880 +-#: ../sepolicy/sepolicy/sepolicy.glade:765 +-#: ../sepolicy/sepolicy/sepolicy.glade:2305 +-#: ../sepolicy/sepolicy/sepolicy.glade:2417 +-#: ../sepolicy/sepolicy/sepolicy.glade:2539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4539 ++#: ../sepolicy/sepolicy/sepolicy.glade:747 ++#: ../sepolicy/sepolicy/sepolicy.glade:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:2418 ++#: ../sepolicy/sepolicy/sepolicy.glade:2540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4500 + msgid "Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:781 ++#: ../sepolicy/sepolicy/sepolicy.glade:763 + msgid "Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:795 ++#: ../sepolicy/sepolicy/sepolicy.glade:777 + msgid "" + "Select the file class to which this label will be applied. Defaults to all " + "classes." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:822 ++#: ../sepolicy/sepolicy/sepolicy.glade:804 + msgid "Make Path Recursive" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:826 ++#: ../sepolicy/sepolicy/sepolicy.glade:808 + msgid "" +-"Select Make Path Recursive iff you want to apply this label to all children " ++"Select Make Path Recursive if you want to apply this label to all children " + "of the specified directory path. objects under the directory to have this " + "label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:839 ++#: ../sepolicy/sepolicy/sepolicy.glade:821 + msgid "Browse" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:843 ++#: ../sepolicy/sepolicy/sepolicy.glade:825 + msgid "Browse to select the file/directory for labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:887 ++#: ../sepolicy/sepolicy/sepolicy.glade:869 + msgid "Path " + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:898 ++#: ../sepolicy/sepolicy/sepolicy.glade:880 msgid "" -"Specify the path using regular expressions that you would like to modify the " -"labeling." @@ -6099,10 +21671,378 @@ index 80e3e2f..b7d66d0 100644 +" labeling." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:902 -@@ -4311,8 +4316,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:920 ++#: ../sepolicy/sepolicy/sepolicy.glade:902 + msgid "Select the SELinux file type to assign to this path." + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3012 +-#: ../sepolicy/sepolicy/sepolicy.glade:947 ++#: ../sepolicy/sepolicy/sepolicy.glade:929 + msgid "Enter the MLS Label to assign to this file path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:951 ++#: ../sepolicy/sepolicy/sepolicy.glade:933 + msgid "SELinux MLS Label you wish to assign to this path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1088 ++#: ../sepolicy/sepolicy/sepolicy.glade:1070 + msgid "Analyzing Policy..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1141 ++#: ../sepolicy/sepolicy/sepolicy.glade:1137 + msgid "" + "Add Login Mapping. Login Mapping will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1176 ++#: ../sepolicy/sepolicy/sepolicy.glade:1172 + msgid "" + "Enter the login user name of the user to which you wish to add SELinux User " + "confinement." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1205 ++#: ../sepolicy/sepolicy/sepolicy.glade:1201 + msgid "" + "Select the SELinux User to assign to this login user. Login users by " + "default get assigned by the __default__ user." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1268 ++#: ../sepolicy/sepolicy/sepolicy.glade:1264 + msgid "" + "Enter MLS/MCS Range for this login User. Defaults to the range for the " + "Selected SELinux User." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1271 +-#: ../sepolicy/sepolicy/sepolicy.glade:3191 +-#: ../sepolicy/sepolicy/sepolicy.glade:3312 +-#: ../sepolicy/sepolicy/sepolicy.glade:5184 +-#: ../sepolicy/sepolicy/sepolicy.glade:5425 ++#: ../sepolicy/sepolicy/sepolicy.glade:1267 ++#: ../sepolicy/sepolicy/sepolicy.glade:3192 ++#: ../sepolicy/sepolicy/sepolicy.glade:3313 ++#: ../sepolicy/sepolicy/sepolicy.glade:5414 + msgid "MLS Range" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1283 ++#: ../sepolicy/sepolicy/sepolicy.glade:1279 + msgid "" + "Specify the MLS Range for this user to login in with. Defaults to the " + "selected SELinux Users MLS Range." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1389 ++#: ../sepolicy/sepolicy/sepolicy.glade:1385 + msgid "" + " Network Port for . Ports will be created when " + "update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1427 ++#: ../sepolicy/sepolicy/sepolicy.glade:1423 + msgid "Enter the port number or range to which you want to add a port type." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1457 ++#: ../sepolicy/sepolicy/sepolicy.glade:1453 + msgid "Port Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1502 ++#: ../sepolicy/sepolicy/sepolicy.glade:1498 + msgid "Select the port type you want to assign to the specified port number." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1566 ++#: ../sepolicy/sepolicy/sepolicy.glade:1562 + msgid "tcp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1570 ++#: ../sepolicy/sepolicy/sepolicy.glade:1566 + msgid "" + "Select tcp if the port type should be assigned to tcp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1583 ++#: ../sepolicy/sepolicy/sepolicy.glade:1579 + msgid "udp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1587 ++#: ../sepolicy/sepolicy/sepolicy.glade:1583 + msgid "" + "Select udp if the port type should be assigned to udp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1609 ++#: ../sepolicy/sepolicy/sepolicy.glade:1605 + msgid "Enter the MLS Label to assign to this port." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1706 ++#: ../sepolicy/sepolicy/sepolicy.glade:1707 + msgid "SELinux Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1742 ++#: ../sepolicy/sepolicy/sepolicy.glade:1743 + msgid "Select..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1791 +-#: ../sepolicy/sepolicy/sepolicy.glade:2211 ++#: ../sepolicy/sepolicy/sepolicy.glade:1792 ++#: ../sepolicy/sepolicy/sepolicy.glade:2212 + msgid "Booleans" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1795 ++#: ../sepolicy/sepolicy/sepolicy.glade:1796 + msgid "" + "Display boolean information that can be used to modify the policy for the " + "'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1809 +-#: ../sepolicy/sepolicy/sepolicy.glade:2596 ++#: ../sepolicy/sepolicy/sepolicy.glade:1810 ++#: ../sepolicy/sepolicy/sepolicy.glade:2597 + msgid "Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1813 ++#: ../sepolicy/sepolicy/sepolicy.glade:1814 + msgid "" + "Display file type information that can be used by the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1827 +-#: ../sepolicy/sepolicy/sepolicy.glade:2829 ++#: ../sepolicy/sepolicy/sepolicy.glade:1828 ++#: ../sepolicy/sepolicy/sepolicy.glade:2830 + msgid "Network" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1831 ++#: ../sepolicy/sepolicy/sepolicy.glade:1832 + msgid "" + "Display network ports to which the 'selected domain' can connect or listen " + "to." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1845 +-#: ../sepolicy/sepolicy/sepolicy.glade:3120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1846 ++#: ../sepolicy/sepolicy/sepolicy.glade:3121 + msgid "Transitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1849 ++#: ../sepolicy/sepolicy/sepolicy.glade:1850 + msgid "" + "Display applications that can transition into or out of the 'selected " + "domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1863 +-#: ../sepolicy/sepolicy/sepolicy.glade:3221 ++#: ../sepolicy/sepolicy/sepolicy.glade:1864 ++#: ../sepolicy/sepolicy/sepolicy.glade:3222 + msgid "Login Mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1866 +-#: ../sepolicy/sepolicy/sepolicy.glade:1883 +-#: ../sepolicy/sepolicy/sepolicy.glade:1900 ++#: ../sepolicy/sepolicy/sepolicy.glade:1867 ++#: ../sepolicy/sepolicy/sepolicy.glade:1884 ++#: ../sepolicy/sepolicy/sepolicy.glade:1901 + msgid "Manage the SELinux configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1880 +-#: ../sepolicy/sepolicy/sepolicy.glade:3343 ++#: ../sepolicy/sepolicy/sepolicy.glade:1881 ++#: ../sepolicy/sepolicy/sepolicy.glade:3344 + msgid "SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1914 +-#: ../sepolicy/sepolicy/sepolicy.glade:4015 ++#: ../sepolicy/sepolicy/sepolicy.glade:1915 ++#: ../sepolicy/sepolicy/sepolicy.glade:4016 + msgid "Lockdown" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1917 ++#: ../sepolicy/sepolicy/sepolicy.glade:1918 + msgid "" + "Lockdown the SELinux System.\n" + "This screen can be used to turn up the SELinux Protections." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1932 ++#: ../sepolicy/sepolicy/sepolicy.glade:1933 + msgid "radiobutton" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2020 ++#: ../sepolicy/sepolicy/sepolicy.glade:2021 + msgid "Show Modified Only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2059 ++#: ../sepolicy/sepolicy/sepolicy.glade:2060 + msgid "Mislabeled files exist" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2079 ++#: ../sepolicy/sepolicy/sepolicy.glade:2080 + msgid "Show mislabeled files only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2119 +-#: ../sepolicy/sepolicy/sepolicy.glade:3243 ++#: ../sepolicy/sepolicy/sepolicy.glade:2120 ++#: ../sepolicy/sepolicy/sepolicy.glade:3244 + msgid "" +-"If-Then-Else rules written in policy that can \n" ++"If-Then-Else rules written in policy that can\n" + "allow alternative access control." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2131 ++#: ../sepolicy/sepolicy/sepolicy.glade:2132 + msgid "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2251 +-#: ../sepolicy/sepolicy/sepolicy.glade:2363 +-#: ../sepolicy/sepolicy/sepolicy.glade:2481 +-#: ../sepolicy/sepolicy/sepolicy.glade:4512 +-#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:2252 ++#: ../sepolicy/sepolicy/sepolicy.glade:2364 ++#: ../sepolicy/sepolicy/sepolicy.glade:2482 ++#: ../sepolicy/sepolicy/sepolicy.glade:4473 ++#: ../sepolicy/sepolicy/sepolicy.glade:4768 + msgid "File Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2287 +-#: ../sepolicy/sepolicy/sepolicy.glade:2398 ++#: ../sepolicy/sepolicy/sepolicy.glade:2288 ++#: ../sepolicy/sepolicy/sepolicy.glade:2399 + msgid "SELinux File Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2331 ++#: ../sepolicy/sepolicy/sepolicy.glade:2332 + msgid "File path used to enter the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2332 ++#: ../sepolicy/sepolicy/sepolicy.glade:2333 + msgid "Executable Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2447 ++#: ../sepolicy/sepolicy/sepolicy.glade:2448 + msgid "Files to which the 'selected domain' can write." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2448 ++#: ../sepolicy/sepolicy/sepolicy.glade:2449 + msgid "Writable files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2570 ++#: ../sepolicy/sepolicy/sepolicy.glade:2571 + msgid "File Types defined for the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2571 ++#: ../sepolicy/sepolicy/sepolicy.glade:2572 + msgid "Application File Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2703 ++#: ../sepolicy/sepolicy/sepolicy.glade:2704 + msgid "Network Ports to which the 'selected domain' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2704 ++#: ../sepolicy/sepolicy/sepolicy.glade:2705 + msgid "Outbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2803 ++#: ../sepolicy/sepolicy/sepolicy.glade:2804 + msgid "Network Ports to which the 'selected domain' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2804 ++#: ../sepolicy/sepolicy/sepolicy.glade:2805 + msgid "Inbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2865 ++#: ../sepolicy/sepolicy/sepolicy.glade:2866 ++#: ../sepolicy/sepolicy/sepolicy.glade:2956 + msgid "" +-"Boolean \n" ++"Boolean\n" + "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2891 ++#: ../sepolicy/sepolicy/sepolicy.glade:2892 + msgid "Boolean name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2908 ++#: ../sepolicy/sepolicy/sepolicy.glade:2909 + msgid "SELinux Application Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2929 ++#: ../sepolicy/sepolicy/sepolicy.glade:2930 + msgid "" + "Executables which will transition to a different domain, when the 'selected " + "domain' executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2932 +-msgid "Applicaton Transitions From 'select domain'" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:2955 +-msgid "" +-"Boolean\n" +-"Enabled" ++#: ../sepolicy/sepolicy/sepolicy.glade:2933 ++msgid "Application Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2971 ++#: ../sepolicy/sepolicy/sepolicy.glade:2972 + msgid "Calling Process Domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2987 ++#: ../sepolicy/sepolicy/sepolicy.glade:2988 + msgid "Executable File" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3011 ++#: ../sepolicy/sepolicy/sepolicy.glade:3012 msgid "" -"Executables which will transition to the 'selected domain', when executing a " -"selected domains entrypoint." @@ -6110,10 +22050,160 @@ index 80e3e2f..b7d66d0 100644 +" selected domains entrypoint." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3013 -@@ -4437,8 +4442,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:3012 ++#: ../sepolicy/sepolicy/sepolicy.glade:3013 + msgid "Application Transitions Into 'select domain'" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3957 +-#: ../sepolicy/sepolicy/sepolicy.glade:3027 ++#: ../sepolicy/sepolicy/sepolicy.glade:3028 + msgid "" + "File Transitions define what happens when the current domain creates the " + "content of a particular class in a directory of the destination type. " + "Optionally a file name could be specified for the transition." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3035 ++#: ../sepolicy/sepolicy/sepolicy.glade:3036 + msgid "SELinux Directory Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3048 ++#: ../sepolicy/sepolicy/sepolicy.glade:3049 + msgid "Destination Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3062 ++#: ../sepolicy/sepolicy/sepolicy.glade:3063 + msgid "SELinux Destination Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3075 ++#: ../sepolicy/sepolicy/sepolicy.glade:3076 + msgid "File Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3097 ++#: ../sepolicy/sepolicy/sepolicy.glade:3098 + msgid "File Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3296 +-#: ../sepolicy/sepolicy/sepolicy.glade:5277 +-#: ../sepolicy/sepolicy/sepolicy.glade:5518 ++#: ../sepolicy/sepolicy/sepolicy.glade:3297 ++#: ../sepolicy/sepolicy/sepolicy.glade:5508 + msgid "Default Level" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3382 ++#: ../sepolicy/sepolicy/sepolicy.glade:3383 + msgid "Select the system mode when the system first boots up" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3455 ++#: ../sepolicy/sepolicy/sepolicy.glade:3456 + msgid "Select the system mode for the current session" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3532 ++#: ../sepolicy/sepolicy/sepolicy.glade:3533 + msgid "System Policy Type:" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3593 ++#: ../sepolicy/sepolicy/sepolicy.glade:3594 + msgid "System Mode" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3631 ++#: ../sepolicy/sepolicy/sepolicy.glade:3632 + msgid "Import system settings from another machine" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3639 ++#: ../sepolicy/sepolicy/sepolicy.glade:3640 + msgid "Import" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3658 ++#: ../sepolicy/sepolicy/sepolicy.glade:3659 + msgid "Export system settings to a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3668 ++#: ../sepolicy/sepolicy/sepolicy.glade:3669 + msgid "Export" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3687 ++#: ../sepolicy/sepolicy/sepolicy.glade:3688 + msgid "Relabel all files back to system defaults on reboot" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3724 +-#: ../sepolicy/sepolicy/sepolicy.glade:3825 +-#: ../sepolicy/sepolicy/sepolicy.glade:3889 +-#: ../sepolicy/sepolicy/sepolicy.glade:3952 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3725 ++#: ../sepolicy/sepolicy/sepolicy.glade:3826 ++#: ../sepolicy/sepolicy/sepolicy.glade:3890 ++#: ../sepolicy/sepolicy/sepolicy.glade:3953 ../sepolicy/sepolicy/gui.py:64 + msgid "Yes" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3741 +-#: ../sepolicy/sepolicy/sepolicy.glade:3843 +-#: ../sepolicy/sepolicy/sepolicy.glade:3906 +-#: ../sepolicy/sepolicy/sepolicy.glade:3969 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3742 ++#: ../sepolicy/sepolicy/sepolicy.glade:3844 ++#: ../sepolicy/sepolicy/sepolicy.glade:3907 ++#: ../sepolicy/sepolicy/sepolicy.glade:3970 ../sepolicy/sepolicy/gui.py:64 + msgid "No" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3782 ++#: ../sepolicy/sepolicy/sepolicy.glade:3783 + msgid "System Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3829 +-#: ../sepolicy/sepolicy/sepolicy.glade:3847 ++#: ../sepolicy/sepolicy/sepolicy.glade:3830 ++#: ../sepolicy/sepolicy/sepolicy.glade:3848 + msgid "" + "An unconfined domain is a process label that allows the process to do what " + "it wants, without SELinux interfering. Applications started at boot by the " +@@ -4368,13 +4421,13 @@ msgid "" + "unconfined_t from the users/login screens." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3865 ++#: ../sepolicy/sepolicy/sepolicy.glade:3866 + msgid "Disable ability to run unconfined system processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3893 +-#: ../sepolicy/sepolicy/sepolicy.glade:3910 +-#: ../sepolicy/sepolicy/sepolicy.glade:3973 ++#: ../sepolicy/sepolicy/sepolicy.glade:3894 ++#: ../sepolicy/sepolicy/sepolicy.glade:3911 ++#: ../sepolicy/sepolicy/sepolicy.glade:3974 + msgid "" + "An permissive domain is a process label that allows the process to do what " + "it wants, with SELinux only logging the denials, but not enforcing them. " +@@ -4383,184 +4436,202 @@ msgid "" + "allowed." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3928 ++#: ../sepolicy/sepolicy/sepolicy.glade:3929 + msgid "Disable all permissive processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3956 ++#: ../sepolicy/sepolicy/sepolicy.glade:3957 msgid "" -"A permissive domain is a process label that allows the process to do what it " -"wants, with SELinux only logging the denials, but not enforcing them. " @@ -6122,9 +22212,47 @@ index 80e3e2f..b7d66d0 100644 "Usually permissive domains indicate experimental policy, disabling the " "module could cause SELinux to deny access to a domain, that should be " "allowed." -@@ -4476,8 +4481,8 @@ msgstr "" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4214 +-#: ../sepolicy/sepolicy/sepolicy.glade:3994 ++#: ../sepolicy/sepolicy/sepolicy.glade:3995 + msgid "Deny all processes from ptracing or debugging other processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4031 ++#: ../sepolicy/sepolicy/sepolicy.glade:4032 + msgid "" + "File equivalence cause the system to label content under the new path as if " + "it were under the equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4087 ++#: ../sepolicy/sepolicy/sepolicy.glade:4088 + msgid "Files Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4100 ++#: ../sepolicy/sepolicy/sepolicy.glade:4101 + msgid "...SELECT TO VIEW DATA..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4131 ++#: ../sepolicy/sepolicy/sepolicy.glade:4132 + msgid "Delete" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4147 ++#: ../sepolicy/sepolicy/sepolicy.glade:4148 + msgid "Modify" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4208 ++#: ../sepolicy/sepolicy/sepolicy.glade:4209 + msgid "Revert" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4213 ++#: ../sepolicy/sepolicy/sepolicy.glade:4214 msgid "" -"Revert button will launch a dialog window which allows you to revert changes " -"within the current transaction." @@ -6132,10 +22260,44 @@ index 80e3e2f..b7d66d0 100644 +" within the current transaction." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 -@@ -4507,8 +4512,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:4225 ../sepolicy/sepolicy/gui.py:2379 ++#: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 + msgid "Update" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4439 +-#: ../sepolicy/sepolicy/sepolicy.glade:4230 ++#: ../sepolicy/sepolicy/sepolicy.glade:4231 + msgid "Commit all changes in your current transaction to the server." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4278 ++#: ../sepolicy/sepolicy/sepolicy.glade:4279 + msgid "Applications - Advanced Search" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4331 +-msgid "Installed" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:4383 ++#: ../sepolicy/sepolicy/sepolicy.glade:4344 + msgid "Process Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4424 ++#: ../sepolicy/sepolicy/sepolicy.glade:4385 + msgid "More Details" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4460 +-#: ../sepolicy/sepolicy/sepolicy.glade:4754 ++#: ../sepolicy/sepolicy/sepolicy.glade:4421 ++#: ../sepolicy/sepolicy/sepolicy.glade:4715 + msgid "Delete Modified File Labeling" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4478 ++#: ../sepolicy/sepolicy/sepolicy.glade:4439 msgid "" -"Select file labeling to delete. File labeling will be deleted when update is " -"applied." @@ -6143,57 +22305,514 @@ index 80e3e2f..b7d66d0 100644 +" applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4486 -@@ -4544,8 +4549,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/sepolicy.glade:4867 - msgid "" --"Select login user mapping to delete. Login user mapping will be deleted when " --"update is applied." -+"Select login user mapping to delete. Login user mapping will be deleted when" -+" update is applied." +-#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4486 + msgid "SELinux File Label" msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4902 -@@ -4848,20 +4853,22 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1366 +-#: ../sepolicy/sepolicy/sepolicy.glade:4564 +-#: ../sepolicy/sepolicy/sepolicy.glade:4714 +-#: ../sepolicy/sepolicy/sepolicy.glade:4844 ++#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4675 ++#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:4940 ++#: ../sepolicy/sepolicy/sepolicy.glade:5289 + msgid "Save to Update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4604 ++#: ../sepolicy/sepolicy/sepolicy.glade:4565 + msgid "Delete Modified Ports" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4622 ++#: ../sepolicy/sepolicy/sepolicy.glade:4583 + msgid "Select ports to delete. Ports will be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4771 ++#: ../sepolicy/sepolicy/sepolicy.glade:4733 + msgid "" +-"Select file equivalence labeling to delete.File equivalence labeling will be " +-"deleted when update is applied." ++"Select file equivalence labeling to delete. File equivalence labeling will " ++"be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4887 ++#: ../sepolicy/sepolicy/sepolicy.glade:4849 ++#: ../sepolicy/sepolicy/sepolicy.glade:5198 ++msgid "Delete Modified Users Mapping." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4867 ++msgid "" ++"Select login user mapping to delete. Login user mapping will be deleted when" ++" update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4902 ++msgid "Login name" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4983 + msgid "More Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4914 ++#: ../sepolicy/sepolicy/sepolicy.glade:5010 + msgid "Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4973 ++#: ../sepolicy/sepolicy/sepolicy.glade:5069 + msgid "" + "Review the updates you have made before committing them to the system. To " + "reset an item, uncheck the checkbox. All items checked will be updated in " + "the system when you select update." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5036 ++#: ../sepolicy/sepolicy/sepolicy.glade:5132 + msgid "Action" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5062 ++#: ../sepolicy/sepolicy/sepolicy.glade:5158 + msgid "Apply" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5119 +-#: ../sepolicy/sepolicy/sepolicy.glade:5360 ++#: ../sepolicy/sepolicy/sepolicy.glade:5216 ++msgid "" ++"Select users mapping to delete.Users mapping will be deleted when update is " ++"applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5264 ++msgid "SELinux Username" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5349 + msgid "" + "Add User Roles. SELinux User Roles will be created when Update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5144 +-#: ../sepolicy/sepolicy/sepolicy.glade:5385 ++#: ../sepolicy/sepolicy/sepolicy.glade:5374 + msgid "SELinux User Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5258 +-#: ../sepolicy/sepolicy/sepolicy.glade:5499 ++#: ../sepolicy/sepolicy/sepolicy.glade:5489 + msgid "" + "Enter MLS/MCS Range for this SELinux User.\n" + "s0-s0:c1023" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5289 +-#: ../sepolicy/sepolicy/sepolicy.glade:5530 ++#: ../sepolicy/sepolicy/sepolicy.glade:5520 + msgid "" + "Specify the default level that you would like this SELinux user to login " + "with. Defaults to s0." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5293 +-#: ../sepolicy/sepolicy/sepolicy.glade:5534 ++#: ../sepolicy/sepolicy/sepolicy.glade:5524 + msgid "Enter Default Level for SELinux User to login with. Default s0" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Disable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Enable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:92 ++#: ../sepolicy/sepolicy/gui.py:94 + msgid "" + "\n" + "To change from Disabled to Enforcing mode\n" +@@ -4570,512 +4641,542 @@ msgid "" + " * Change the system mode to Enforcing\n" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:115 ++#: ../sepolicy/sepolicy/gui.py:488 + #, python-format + msgid "%s is not a valid domain" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:624 ++#: ../sepolicy/sepolicy/gui.py:636 + msgid "System Status: Disabled" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:722 ++#: ../sepolicy/sepolicy/gui.py:734 + msgid "Help: Start Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:726 ++#: ../sepolicy/sepolicy/gui.py:738 + msgid "Help: Booleans Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:732 ++#: ../sepolicy/sepolicy/gui.py:744 + msgid "Help: Executable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:735 ++#: ../sepolicy/sepolicy/gui.py:747 + msgid "Help: Writable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:738 ++#: ../sepolicy/sepolicy/gui.py:750 + msgid "Help: Application Types Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:743 ++#: ../sepolicy/sepolicy/gui.py:755 + msgid "Help: Outbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:746 ++#: ../sepolicy/sepolicy/gui.py:758 + msgid "Help: Inbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:752 ++#: ../sepolicy/sepolicy/gui.py:764 + msgid "Help: Transition from application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:755 ++#: ../sepolicy/sepolicy/gui.py:767 + msgid "Help: Transition into application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:758 ++#: ../sepolicy/sepolicy/gui.py:770 + msgid "Help: Transition application file Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:762 ++#: ../sepolicy/sepolicy/gui.py:774 + msgid "Help: Systems Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:766 ++#: ../sepolicy/sepolicy/gui.py:778 + msgid "Help: Lockdown Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:770 ++#: ../sepolicy/sepolicy/gui.py:782 + msgid "Help: Login Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:774 ++#: ../sepolicy/sepolicy/gui.py:786 + msgid "Help: SELinux User Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:778 ++#: ../sepolicy/sepolicy/gui.py:790 + msgid "Help: File Equivalence Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:922 ../sepolicy/sepolicy/gui.py:1211 +-#: ../sepolicy/sepolicy/gui.py:1644 ../sepolicy/sepolicy/gui.py:1885 +-#: ../sepolicy/sepolicy/gui.py:2698 ++#: ../sepolicy/sepolicy/gui.py:936 ../sepolicy/sepolicy/gui.py:1227 ++#: ../sepolicy/sepolicy/gui.py:1667 ../sepolicy/sepolicy/gui.py:1913 ++#: ../sepolicy/sepolicy/gui.py:2692 + msgid "More..." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1031 ++#: ../sepolicy/sepolicy/gui.py:1044 + #, python-format + msgid "File path used to enter the '%s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1032 ++#: ../sepolicy/sepolicy/gui.py:1045 + #, python-format + msgid "Files to which the '%s' domain can write." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1033 ++#: ../sepolicy/sepolicy/gui.py:1046 + #, python-format + msgid "Network Ports to which the '%s' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1034 ++#: ../sepolicy/sepolicy/gui.py:1047 + #, python-format + msgid "Network Ports to which the '%s' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1035 ++#: ../sepolicy/sepolicy/gui.py:1048 + #, python-format + msgid "File Types defined for the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1036 ++#: ../sepolicy/sepolicy/gui.py:1049 #, python-format msgid "" --"Add new port definition to which the '%(APP)s' domain is allowed to %(PERM)s." + "Display boolean information that can be used to modify the policy for the " + "'%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1037 ++#: ../sepolicy/sepolicy/gui.py:1050 + #, python-format + msgid "Display file type information that can be used by the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1038 ++#: ../sepolicy/sepolicy/gui.py:1051 + #, python-format + msgid "Display network ports to which the '%s' can connect or listen to." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1039 ++#: ../sepolicy/sepolicy/gui.py:1052 + #, python-format + msgid "Application Transitions Into '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1040 ++#: ../sepolicy/sepolicy/gui.py:1053 + #, python-format + msgid "Application Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1041 ++#: ../sepolicy/sepolicy/gui.py:1054 + #, python-format + msgid "File Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1042 ++#: ../sepolicy/sepolicy/gui.py:1055 + #, python-format + msgid "" + "Executables which will transition to the '%s', when executing a selected " + "domains entrypoint." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1043 ++#: ../sepolicy/sepolicy/gui.py:1056 + #, python-format + msgid "" + "Executables which will transition to a different domain, when the '%s' " + "executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1044 ++#: ../sepolicy/sepolicy/gui.py:1057 + #, python-format + msgid "Files by '%s' will transitions to a different label." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1045 ++#: ../sepolicy/sepolicy/gui.py:1058 + #, python-format + msgid "Display applications that can transition into or out of the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1149 ++#: ../sepolicy/sepolicy/gui.py:1166 + msgid "MISSING FILE PATH" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1281 ../sepolicy/sepolicy/gui.py:1283 + msgid "Boolean section." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ++#: ../sepolicy/sepolicy/gui.py:1281 + msgid "To disable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1283 + msgid "To enable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1324 ++#: ../sepolicy/sepolicy/gui.py:1340 + msgid "executable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1327 ++#: ../sepolicy/sepolicy/gui.py:1343 + msgid "writable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1330 ++#: ../sepolicy/sepolicy/gui.py:1346 + msgid "application" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1331 ++#: ../sepolicy/sepolicy/gui.py:1347 + #, python-format +-msgid "Add new %s file path for '%s' domains." ++msgid "Add new %(TYPE)s file path for '%(DOMAIN)s' domains." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1332 ++#: ../sepolicy/sepolicy/gui.py:1348 + #, python-format +-msgid "Delete modified %s file paths for '%s' domain." ++msgid "Delete %(TYPE)s file paths for '%(DOMAIN)s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1333 ++#: ../sepolicy/sepolicy/gui.py:1349 + #, python-format + msgid "" +-"Modify selected modified %s file path for '%s' domain. Only bolded items in " +-"the list can be selected, this indicates they were modified previously." ++"Modify %(TYPE)s file path for '%(DOMAIN)s' domain. Only bolded items in the " ++"list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1345 ++#: ../sepolicy/sepolicy/gui.py:1361 + msgid "connect" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1348 ++#: ../sepolicy/sepolicy/gui.py:1364 + msgid "listen for inbound connections" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1350 ++#: ../sepolicy/sepolicy/gui.py:1366 + #, python-format +-msgid "Add new port definition to which the '%s' domains is allowed to %s." ++msgid "" +"Add new port definition to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1367 +-#: ../sepolicy/sepolicy/gui.py:1351 ++#: ../sepolicy/sepolicy/gui.py:1367 #, python-format msgid "" --"Delete modified port definitions to which the '%(APP)s' domain is allowed to " --"%(PERM)s." +-"Delete modified port definitions to which the '%s' domain is allowed to %s." +"Delete modified port definitions to which the '%(APP)s' domain is allowed to" +" %(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1368 +-#: ../sepolicy/sepolicy/gui.py:1352 ++#: ../sepolicy/sepolicy/gui.py:1368 #, python-format - msgid "" --"Modify port definitions to which the '%(APP)s' domain is allowed to %(PERM)s." +-msgid "Modify port definitions to which the '%s' domain is allowed to %s." ++msgid "" +"Modify port definitions to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1397 -@@ -4909,7 +4916,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1381 ++#: ../sepolicy/sepolicy/gui.py:1397 + msgid "Add new SELinux User/Role definition." + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1458 +-#: ../sepolicy/sepolicy/gui.py:1382 ++#: ../sepolicy/sepolicy/gui.py:1398 + msgid "Delete modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1383 ++#: ../sepolicy/sepolicy/gui.py:1399 + msgid "Modify selected modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1390 ++#: ../sepolicy/sepolicy/gui.py:1406 + msgid "Add new Login Mapping definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1391 ++#: ../sepolicy/sepolicy/gui.py:1407 + msgid "Delete modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1392 ++#: ../sepolicy/sepolicy/gui.py:1408 + msgid "Modify selected modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1399 ++#: ../sepolicy/sepolicy/gui.py:1415 + msgid "Add new File Equivalence definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1400 ++#: ../sepolicy/sepolicy/gui.py:1416 + msgid "Delete modified File Equivalence definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1401 ++#: ../sepolicy/sepolicy/gui.py:1417 + msgid "" + "Modify selected modified File Equivalence definitions. Only bolded items in " + "the list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1429 ++#: ../sepolicy/sepolicy/gui.py:1445 + #, python-format + msgid "Boolean %s Allow Rules" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1442 ++#: ../sepolicy/sepolicy/gui.py:1458 #, python-format -msgid "Add Network Port for %s. Ports will be created when update is applied." +msgid "" +"Add Network Port for %s. Ports will be created when update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1459 -@@ -4920,7 +4928,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1464 +-#: ../sepolicy/sepolicy/gui.py:1443 ++#: ../sepolicy/sepolicy/gui.py:1459 + #, python-format + msgid "Add Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1448 ++#: ../sepolicy/sepolicy/gui.py:1464 #, python-format msgid "" -"Add File Labeling for %s. File labels will be created when update is applied." @@ -6201,40 +22820,312 @@ index 80e3e2f..b7d66d0 100644 +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 -@@ -4929,7 +4938,8 @@ msgid "Add File Labeling for %s" +-#: ../sepolicy/sepolicy/gui.py:1449 ../sepolicy/sepolicy/gui.py:1500 ++#: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 + #, python-format + msgid "Add File Labeling for %s" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1475 +-#: ../sepolicy/sepolicy/gui.py:1459 -msgid "Add Login Mapping. User Mapping will be created when Update is applied." ++#: ../sepolicy/sepolicy/gui.py:1475 +msgid "" +"Add Login Mapping. User Mapping will be created when Update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1476 -@@ -4948,7 +4958,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1460 ++#: ../sepolicy/sepolicy/gui.py:1476 + msgid "Add Login Mapping" + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1489 +-#: ../sepolicy/sepolicy/gui.py:1465 ++#: ../sepolicy/sepolicy/gui.py:1481 + msgid "" + "Add SELinux User Role. SELinux user roles will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1466 ++#: ../sepolicy/sepolicy/gui.py:1482 + msgid "Add SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1473 ++#: ../sepolicy/sepolicy/gui.py:1489 msgid "" -"Add File Equivalency Mapping. Mapping will be created when update is applied." +"Add File Equivalency Mapping. Mapping will be created when update is " +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1490 -@@ -4964,8 +4975,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/gui.py:1573 - msgid "" --"Modify SELinux User Role. SELinux user roles will be modified when update is " --"applied." -+"Modify SELinux User Role. SELinux user roles will be modified when update is" -+" applied." +-#: ../sepolicy/sepolicy/gui.py:1474 ++#: ../sepolicy/sepolicy/gui.py:1490 + msgid "Add SELinux File Equivalency" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1574 -@@ -5178,10 +5189,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:1499 ++#: ../sepolicy/sepolicy/gui.py:1517 + #, python-format + msgid "" + "Modify File Labeling for %s. File labels will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1566 ++#: ../sepolicy/sepolicy/gui.py:1573 ++msgid "" ++"Modify SELinux User Role. SELinux user roles will be modified when update is" ++" applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1574 ++msgid "Modify SELinux Users" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1582 ++msgid "" ++"Modify Login Mapping. Login Mapping will be modified when Update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1583 ++msgid "Modify Login Mapping" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1589 + msgid "" + "Modify File Equivalency Mapping. Mapping will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1567 ++#: ../sepolicy/sepolicy/gui.py:1590 + msgid "Modify SELinux File Equivalency" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1652 ++#: ../sepolicy/sepolicy/gui.py:1675 + #, python-format + msgid "" + "Modify Network Port for %s. Ports will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1653 ++#: ../sepolicy/sepolicy/gui.py:1676 + #, python-format + msgid "Modify Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1866 ++#: ../sepolicy/sepolicy/gui.py:1894 + #, python-format + msgid "The entry '%s' is not a valid path. Paths must begin with a '/'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1879 ++#: ../sepolicy/sepolicy/gui.py:1907 + msgid "Port number must be between 1 and 65536" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2146 ++#: ../sepolicy/sepolicy/gui.py:2183 + #, python-format + msgid "SELinux name: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2157 ++#: ../sepolicy/sepolicy/gui.py:2194 + #, python-format + msgid "Add file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2159 ++#: ../sepolicy/sepolicy/gui.py:2196 + #, python-format + msgid "Delete file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2161 ++#: ../sepolicy/sepolicy/gui.py:2198 + #, python-format + msgid "Modify file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2165 ++#: ../sepolicy/sepolicy/gui.py:2202 + #, python-format + msgid "File path: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2168 ++#: ../sepolicy/sepolicy/gui.py:2205 + #, python-format + msgid "File class: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2171 ../sepolicy/sepolicy/gui.py:2195 ++#: ../sepolicy/sepolicy/gui.py:2208 ../sepolicy/sepolicy/gui.py:2232 + #, python-format + msgid "SELinux file type: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2180 ++#: ../sepolicy/sepolicy/gui.py:2217 + #, python-format + msgid "Add ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2182 ++#: ../sepolicy/sepolicy/gui.py:2219 + #, python-format + msgid "Delete ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2184 ++#: ../sepolicy/sepolicy/gui.py:2221 + #, python-format + msgid "Modify ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2187 ++#: ../sepolicy/sepolicy/gui.py:2224 + #, python-format + msgid "Network ports: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2190 ++#: ../sepolicy/sepolicy/gui.py:2227 + #, python-format + msgid "Network protocol: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2204 ++#: ../sepolicy/sepolicy/gui.py:2241 + msgid "Add user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2206 ++#: ../sepolicy/sepolicy/gui.py:2243 + msgid "Delete user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2208 ++#: ../sepolicy/sepolicy/gui.py:2245 + msgid "Modify user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2211 ++#: ../sepolicy/sepolicy/gui.py:2248 + #, python-format + msgid "SELinux User : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2216 ++#: ../sepolicy/sepolicy/gui.py:2253 + #, python-format + msgid "Roles: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2220 ../sepolicy/sepolicy/gui.py:2245 ++#: ../sepolicy/sepolicy/gui.py:2257 ../sepolicy/sepolicy/gui.py:2282 + #, python-format + msgid "MLS/MCS Range: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2229 ++#: ../sepolicy/sepolicy/gui.py:2266 + msgid "Add login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2231 ++#: ../sepolicy/sepolicy/gui.py:2268 + msgid "Delete login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2233 ++#: ../sepolicy/sepolicy/gui.py:2270 + msgid "Modify login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2237 ++#: ../sepolicy/sepolicy/gui.py:2274 + #, python-format +-msgid "Linux User : %s" ++msgid "Login Name : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2241 ++#: ../sepolicy/sepolicy/gui.py:2278 + #, python-format + msgid "SELinux User: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2254 ++#: ../sepolicy/sepolicy/gui.py:2291 + msgid "Add file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2256 ++#: ../sepolicy/sepolicy/gui.py:2293 + msgid "Delete file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2258 ++#: ../sepolicy/sepolicy/gui.py:2295 + msgid "Modify file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2262 ++#: ../sepolicy/sepolicy/gui.py:2299 + #, python-format + msgid "File path : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2266 ++#: ../sepolicy/sepolicy/gui.py:2303 + #, python-format + msgid "Equivalence: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2369 ++#: ../sepolicy/sepolicy/gui.py:2406 + #, python-format +-msgid "Run restorecon on %s to change its type from %s to the default %s?" ++msgid "" ++"Run restorecon on %(PATH)s to change its type from %(CUR_CONTEXT)s to the " ++"default %(DEF_CONTEXT)s?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2381 ++#: ../sepolicy/sepolicy/gui.py:2418 + msgid "Update Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2383 ++#: ../sepolicy/sepolicy/gui.py:2420 + msgid "Revert Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2556 ++#: ../sepolicy/sepolicy/gui.py:2547 + msgid "System Status: Enforcing" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2558 ++#: ../sepolicy/sepolicy/gui.py:2549 + msgid "System Status: Permissive" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2749 ++#: ../sepolicy/sepolicy/gui.py:2743 + msgid "" + "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 " +@@ -5085,15 +5186,13 @@ msgid "" + "wish to continue?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 msgid "" "You are attempting to close the application without applying your changes.\n" -" * To apply changes you have made during this session, click No and " @@ -6245,9 +23136,12 @@ index 80e3e2f..b7d66d0 100644 +" * To leave the application without applying your changes, click Yes. All changes that you have made during this session will be lost." msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 + msgid "Loss of data Dialog" + msgstr "" diff --git a/policycoreutils/po/am.po b/policycoreutils/po/am.po -index bcc3f8e..7e68aa6 100644 +index db49486..7e68aa6 100644 --- a/policycoreutils/po/am.po +++ b/policycoreutils/po/am.po @@ -1,21 +1,20 @@ @@ -6261,13 +23155,15 @@ index bcc3f8e..7e68aa6 100644 msgstr "" "Project-Id-Version: Policycoreutils\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2014-01-03 16:04-0500\n" --"PO-Revision-Date: 2013-12-20 13:58+0000\n" -+"PO-Revision-Date: 2014-01-03 21:04+0000\n" - "Last-Translator: dwalsh \n" +-"POT-Creation-Date: 2013-10-10 16:04-0400\n" +-"PO-Revision-Date: 2012-03-30 18:14+0000\n" +-"Last-Translator: FULL NAME \n" -"Language-Team: Amharic (http://www.transifex.com/projects/p/fedora/language/" -"am/)\n" -"Language: am\n" ++"POT-Creation-Date: 2014-01-03 16:04-0500\n" ++"PO-Revision-Date: 2014-01-03 21:04+0000\n" ++"Last-Translator: dwalsh \n" +"Language-Team: Amharic (http://www.transifex.com/projects/p/fedora/language/am/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -6276,7 +23172,1327 @@ index bcc3f8e..7e68aa6 100644 "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: ../run_init/run_init.c:67 -@@ -1585,8 +1584,8 @@ msgstr "" +@@ -87,96 +86,101 @@ msgstr "" + msgid "To make this policy package active, execute:" + msgstr "" + +-#: ../semanage/seobject.py:210 ++#: ../semanage/seobject/__init__.py:220 + msgid "Could not create semanage handle" + msgstr "" + +-#: ../semanage/seobject.py:218 ++#: ../semanage/seobject/__init__.py:228 + msgid "SELinux policy is not managed or store cannot be accessed." + msgstr "" + +-#: ../semanage/seobject.py:223 ++#: ../semanage/seobject/__init__.py:233 + msgid "Cannot read policy store." + msgstr "" + +-#: ../semanage/seobject.py:228 ++#: ../semanage/seobject/__init__.py:238 + msgid "Could not establish semanage connection" + msgstr "" + +-#: ../semanage/seobject.py:233 ++#: ../semanage/seobject/__init__.py:243 + msgid "Could not test MLS enabled status" + msgstr "" + +-#: ../semanage/seobject.py:239 ../semanage/seobject.py:254 ++#: ../semanage/seobject/__init__.py:249 ../semanage/seobject/__init__.py:264 + msgid "Not yet implemented" + msgstr "" + +-#: ../semanage/seobject.py:243 ++#: ../semanage/seobject/__init__.py:253 + msgid "Semanage transaction already in progress" + msgstr "" + +-#: ../semanage/seobject.py:252 ++#: ../semanage/seobject/__init__.py:262 + msgid "Could not start semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:264 ++#: ../semanage/seobject/__init__.py:274 + msgid "Could not commit semanage transaction" + msgstr "" + +-#: ../semanage/seobject.py:269 ++#: ../semanage/seobject/__init__.py:279 + msgid "Semanage transaction not in progress" + msgstr "" + +-#: ../semanage/seobject.py:281 ../semanage/seobject.py:376 ++#: ../semanage/seobject/__init__.py:291 ../semanage/seobject/__init__.py:386 + msgid "Could not list SELinux modules" + msgstr "" + +-#: ../semanage/seobject.py:300 ++#: ../semanage/seobject/__init__.py:310 + msgid "Modules Name" + msgstr "" + +-#: ../semanage/seobject.py:300 ../gui/modulesPage.py:63 ++#: ../semanage/seobject/__init__.py:310 ../gui/modulesPage.py:63 + msgid "Version" + msgstr "" + +-#: ../semanage/seobject.py:303 ../gui/statusPage.py:75 +-#: ../sepolicy/sepolicy/sepolicy.glade:3430 ++#: ../semanage/seobject/__init__.py:313 ../gui/statusPage.py:71 ++#: ../sepolicy/sepolicy/sepolicy.glade:3431 + msgid "Disabled" + msgstr "" + +-#: ../semanage/seobject.py:312 ++#: ../semanage/seobject/__init__.py:322 + #, python-format + msgid "Module does not exists %s " + msgstr "" + +-#: ../semanage/seobject.py:322 ++#: ../semanage/seobject/__init__.py:332 + #, python-format + msgid "Could not disable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:333 ++#: ../semanage/seobject/__init__.py:343 + #, python-format + msgid "Could not enable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:348 ++#: ../semanage/seobject/__init__.py:358 + #, python-format + msgid "Could not remove module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:363 ++#: ../semanage/seobject/__init__.py:373 + msgid "dontaudit requires either 'on' or 'off'" + msgstr "" + +-#: ../semanage/seobject.py:391 ++#: ../semanage/seobject/__init__.py:402 ++msgid "Customized Permissive Types" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:410 + msgid "Builtin Permissive Types" + msgstr "" + +-#: ../semanage/seobject.py:401 +-msgid "Customized Permissive Types" ++#: ../semanage/seobject/__init__.py:419 ++#, python-format ++msgid "%s is not a domain type" + msgstr "" + +-#: ../semanage/seobject.py:410 ++#: ../semanage/seobject/__init__.py:424 + msgid "" + "The sepolgen python module is required to setup permissive domains.\n" + "In some distributions it is included in the policycoreutils-devel patckage.\n" +@@ -184,810 +188,825 @@ msgid "" + "Or similar for your distro." + msgstr "" + +-#: ../semanage/seobject.py:447 ++#: ../semanage/seobject/__init__.py:461 + #, python-format + msgid "Could not set permissive domain %s (module installation failed)" + msgstr "" + +-#: ../semanage/seobject.py:453 ++#: ../semanage/seobject/__init__.py:467 + #, python-format + msgid "Could not remove permissive domain %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:488 ../semanage/seobject.py:562 +-#: ../semanage/seobject.py:608 ../semanage/seobject.py:730 +-#: ../semanage/seobject.py:760 ../semanage/seobject.py:827 +-#: ../semanage/seobject.py:884 ../semanage/seobject.py:1144 +-#: ../semanage/seobject.py:1879 ../semanage/seobject.py:1942 +-#: ../semanage/seobject.py:1961 ../semanage/seobject.py:2084 +-#: ../semanage/seobject.py:2135 ++#: ../semanage/seobject/__init__.py:501 ../semanage/seobject/__init__.py:575 ++#: ../semanage/seobject/__init__.py:621 ../semanage/seobject/__init__.py:743 ++#: ../semanage/seobject/__init__.py:773 ../semanage/seobject/__init__.py:839 ++#: ../semanage/seobject/__init__.py:896 ../semanage/seobject/__init__.py:1156 ++#: ../semanage/seobject/__init__.py:1891 ../semanage/seobject/__init__.py:1954 ++#: ../semanage/seobject/__init__.py:1973 ../semanage/seobject/__init__.py:2096 ++#: ../semanage/seobject/__init__.py:2147 + #, python-format + msgid "Could not create a key for %s" + msgstr "" + +-#: ../semanage/seobject.py:492 ../semanage/seobject.py:566 +-#: ../semanage/seobject.py:612 ../semanage/seobject.py:618 ++#: ../semanage/seobject/__init__.py:505 ../semanage/seobject/__init__.py:579 ++#: ../semanage/seobject/__init__.py:625 ../semanage/seobject/__init__.py:631 + #, python-format + msgid "Could not check if login mapping for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:501 ++#: ../semanage/seobject/__init__.py:514 + #, python-format + msgid "Linux Group %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:506 ++#: ../semanage/seobject/__init__.py:519 + #, python-format + msgid "Linux User %s does not exist" + msgstr "" + +-#: ../semanage/seobject.py:510 ++#: ../semanage/seobject/__init__.py:523 + #, python-format + msgid "Could not create login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:514 ../semanage/seobject.py:775 ++#: ../semanage/seobject/__init__.py:527 ../semanage/seobject/__init__.py:788 + #, python-format + msgid "Could not set name for %s" + msgstr "" + +-#: ../semanage/seobject.py:519 ../semanage/seobject.py:785 ++#: ../semanage/seobject/__init__.py:532 ../semanage/seobject/__init__.py:798 + #, python-format + msgid "Could not set MLS range for %s" + msgstr "" + +-#: ../semanage/seobject.py:523 ++#: ../semanage/seobject/__init__.py:536 + #, python-format + msgid "Could not set SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:527 ++#: ../semanage/seobject/__init__.py:540 + #, python-format + msgid "Could not add login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:545 ++#: ../semanage/seobject/__init__.py:558 + msgid "Requires seuser or serange" + msgstr "" + +-#: ../semanage/seobject.py:568 ../semanage/seobject.py:614 ++#: ../semanage/seobject/__init__.py:581 ../semanage/seobject/__init__.py:627 + #, python-format + msgid "Login mapping for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:572 ++#: ../semanage/seobject/__init__.py:585 + #, python-format + msgid "Could not query seuser for %s" + msgstr "" + +-#: ../semanage/seobject.py:586 ++#: ../semanage/seobject/__init__.py:599 + #, python-format + msgid "Could not modify login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:620 ++#: ../semanage/seobject/__init__.py:633 + #, python-format + msgid "Login mapping for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:624 ++#: ../semanage/seobject/__init__.py:637 + #, python-format + msgid "Could not delete login mapping for %s" + msgstr "" + +-#: ../semanage/seobject.py:646 ../semanage/seobject.py:679 +-#: ../semanage/seobject.py:927 ++#: ../semanage/seobject/__init__.py:659 ../semanage/seobject/__init__.py:692 ++#: ../semanage/seobject/__init__.py:939 + msgid "Could not list login mappings" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 + #: ../gui/system-config-selinux.glade:100 +-#: ../sepolicy/sepolicy/sepolicy.glade:1166 +-#: ../sepolicy/sepolicy/sepolicy.glade:3155 ++#: ../sepolicy/sepolicy/sepolicy.glade:1162 ++#: ../sepolicy/sepolicy/sepolicy.glade:3156 + msgid "Login Name" + msgstr "" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 + #: ../gui/system-config-selinux.glade:128 + #: ../gui/system-config-selinux.glade:915 +-#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:44 +-#: ../sepolicy/sepolicy/sepolicy.glade:1192 +-#: ../sepolicy/sepolicy/sepolicy.glade:3173 +-#: ../sepolicy/sepolicy/sepolicy.glade:3259 ++#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:41 ++#: ../sepolicy/sepolicy/sepolicy.glade:1188 ++#: ../sepolicy/sepolicy/sepolicy.glade:3174 ++#: ../sepolicy/sepolicy/sepolicy.glade:3260 ++#: ../sepolicy/sepolicy/sepolicy.glade:4915 + msgid "SELinux User" + msgstr "" + +-#: ../semanage/seobject.py:707 ../gui/system-config-selinux.glade:156 ++#: ../semanage/seobject/__init__.py:720 ../gui/system-config-selinux.glade:156 + #: ../gui/system-config-selinux.glade:943 + msgid "MLS/MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:707 ++#: ../semanage/seobject/__init__.py:720 + msgid "Service" + msgstr "" + +-#: ../semanage/seobject.py:733 ../semanage/seobject.py:764 +-#: ../semanage/seobject.py:831 ../semanage/seobject.py:888 +-#: ../semanage/seobject.py:894 ++#: ../semanage/seobject/__init__.py:746 ../semanage/seobject/__init__.py:777 ++#: ../semanage/seobject/__init__.py:843 ../semanage/seobject/__init__.py:900 ++#: ../semanage/seobject/__init__.py:906 + #, python-format + msgid "Could not check if SELinux user %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:736 ../semanage/seobject.py:837 +-#: ../semanage/seobject.py:900 ++#: ../semanage/seobject/__init__.py:749 ../semanage/seobject/__init__.py:849 ++#: ../semanage/seobject/__init__.py:912 + #, python-format + msgid "Could not query user for %s" + msgstr "" + +-#: ../semanage/seobject.py:756 ++#: ../semanage/seobject/__init__.py:769 + #, python-format + msgid "You must add at least one role for %s" + msgstr "" + +-#: ../semanage/seobject.py:771 ++#: ../semanage/seobject/__init__.py:784 + #, python-format + msgid "Could not create SELinux user for %s" + msgstr "" + +-#: ../semanage/seobject.py:780 ++#: ../semanage/seobject/__init__.py:793 + #, python-format +-msgid "Could not add role %s for %s" ++msgid "Could not add role %(ROLE)s for %(NAME)s" + msgstr "" + +-#: ../semanage/seobject.py:789 ++#: ../semanage/seobject/__init__.py:802 + #, python-format + msgid "Could not set MLS level for %s" + msgstr "" + +-#: ../semanage/seobject.py:792 ++#: ../semanage/seobject/__init__.py:805 + #, python-format +-msgid "Could not add prefix %s for %s" ++msgid "Could not add prefix %(PREFIX)s for %(ROLE)s" + msgstr "" + +-#: ../semanage/seobject.py:795 ++#: ../semanage/seobject/__init__.py:808 + #, python-format + msgid "Could not extract key for %s" + msgstr "" + +-#: ../semanage/seobject.py:799 ++#: ../semanage/seobject/__init__.py:812 + #, python-format + msgid "Could not add SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:821 ++#: ../semanage/seobject/__init__.py:833 + msgid "Requires prefix, roles, level or range" + msgstr "" + +-#: ../semanage/seobject.py:823 ++#: ../semanage/seobject/__init__.py:835 + msgid "Requires prefix or roles" + msgstr "" + +-#: ../semanage/seobject.py:833 ../semanage/seobject.py:890 ++#: ../semanage/seobject/__init__.py:845 ../semanage/seobject/__init__.py:902 + #, python-format + msgid "SELinux user %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:862 ++#: ../semanage/seobject/__init__.py:874 + #, python-format + msgid "Could not modify SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:896 ++#: ../semanage/seobject/__init__.py:908 + #, python-format + msgid "SELinux user %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:907 ++#: ../semanage/seobject/__init__.py:919 + #, python-format + msgid "Could not delete SELinux user %s" + msgstr "" + +-#: ../semanage/seobject.py:945 ++#: ../semanage/seobject/__init__.py:957 + msgid "Could not list SELinux users" + msgstr "" + +-#: ../semanage/seobject.py:951 ++#: ../semanage/seobject/__init__.py:963 + #, python-format + msgid "Could not list roles for user %s" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "Labeling" + msgstr "" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "MLS/" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "Prefix" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Level" + msgstr "" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Range" + msgstr "" + +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 +-#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59 +-#: ../sepolicy/sepolicy/sepolicy.glade:3279 +-#: ../sepolicy/sepolicy/sepolicy.glade:5170 +-#: ../sepolicy/sepolicy/sepolicy.glade:5411 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 ++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:56 ++#: ../sepolicy/sepolicy/sepolicy.glade:3280 ++#: ../sepolicy/sepolicy/sepolicy.glade:5251 ++#: ../sepolicy/sepolicy/sepolicy.glade:5400 + msgid "SELinux Roles" + msgstr "" + +-#: ../semanage/seobject.py:1002 ++#: ../semanage/seobject/__init__.py:1014 + msgid "Protocol udp or tcp is required" + msgstr "" + +-#: ../semanage/seobject.py:1004 ++#: ../semanage/seobject/__init__.py:1016 + msgid "Port is required" + msgstr "" + +-#: ../semanage/seobject.py:1014 ++#: ../semanage/seobject/__init__.py:1026 + msgid "Invalid Port" + msgstr "" + +-#: ../semanage/seobject.py:1018 ++#: ../semanage/seobject/__init__.py:1030 + #, python-format +-msgid "Could not create a key for %s/%s" ++msgid "Could not create a key for %(PROTOTYPE)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1029 ++#: ../semanage/seobject/__init__.py:1041 + msgid "Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1032 ../semanage/seobject.py:1096 +-#: ../semanage/seobject.py:1873 ++#: ../semanage/seobject/__init__.py:1044 ../semanage/seobject/__init__.py:1108 ++#: ../semanage/seobject/__init__.py:1885 + #, python-format + msgid "Type %s is invalid, must be a port type" + msgstr "" + +-#: ../semanage/seobject.py:1040 ../semanage/seobject.py:1102 +-#: ../semanage/seobject.py:1157 ../semanage/seobject.py:1163 ++#: ../semanage/seobject/__init__.py:1052 ../semanage/seobject/__init__.py:1169 ++#: ../semanage/seobject/__init__.py:1175 + #, python-format +-msgid "Could not check if port %s/%s is defined" ++msgid "Could not check if port %(PROTOCOL)s/%(PORT)s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1042 ++#: ../semanage/seobject/__init__.py:1054 + #, python-format +-msgid "Port %s/%s already defined" ++msgid "Port %(PROTOCOL)s/%(PORT)s already defined" + msgstr "" + +-#: ../semanage/seobject.py:1046 ++#: ../semanage/seobject/__init__.py:1058 + #, python-format +-msgid "Could not create port for %s/%s" ++msgid "Could not create port for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1052 ++#: ../semanage/seobject/__init__.py:1064 + #, python-format +-msgid "Could not create context for %s/%s" ++msgid "Could not create context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1056 ++#: ../semanage/seobject/__init__.py:1068 + #, python-format +-msgid "Could not set user in port context for %s/%s" ++msgid "Could not set user in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1060 ++#: ../semanage/seobject/__init__.py:1072 + #, python-format +-msgid "Could not set role in port context for %s/%s" ++msgid "Could not set role in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1064 ++#: ../semanage/seobject/__init__.py:1076 + #, python-format +-msgid "Could not set type in port context for %s/%s" ++msgid "Could not set type in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1069 ++#: ../semanage/seobject/__init__.py:1081 + #, python-format +-msgid "Could not set mls fields in port context for %s/%s" ++msgid "Could not set mls fields in port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1073 ++#: ../semanage/seobject/__init__.py:1085 + #, python-format +-msgid "Could not set port context for %s/%s" ++msgid "Could not set port context for %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1077 ++#: ../semanage/seobject/__init__.py:1089 + #, python-format +-msgid "Could not add port %s/%s" ++msgid "Could not add port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1367 +-#: ../semanage/seobject.py:1566 ++#: ../semanage/seobject/__init__.py:1103 ../semanage/seobject/__init__.py:1379 ++#: ../semanage/seobject/__init__.py:1578 + msgid "Requires setype or serange" + msgstr "" + +-#: ../semanage/seobject.py:1093 ++#: ../semanage/seobject/__init__.py:1105 + msgid "Requires setype" + msgstr "" + +-#: ../semanage/seobject.py:1104 ../semanage/seobject.py:1159 ++#: ../semanage/seobject/__init__.py:1114 ++#, python-format ++msgid "Could not check if port @%(PROTOCOL)s/%(PORT)s is defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1116 + #, python-format +-msgid "Port %s/%s is not defined" ++msgid "Port @%(PROTOCOL)s/%(PORT)s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1108 ++#: ../semanage/seobject/__init__.py:1120 + #, python-format +-msgid "Could not query port %s/%s" ++msgid "Could not query port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1119 ++#: ../semanage/seobject/__init__.py:1131 + #, python-format +-msgid "Could not modify port %s/%s" ++msgid "Could not modify port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1132 ++#: ../semanage/seobject/__init__.py:1144 + msgid "Could not list the ports" + msgstr "" + +-#: ../semanage/seobject.py:1148 ++#: ../semanage/seobject/__init__.py:1160 + #, python-format + msgid "Could not delete the port %s" + msgstr "" + +-#: ../semanage/seobject.py:1165 ++#: ../semanage/seobject/__init__.py:1171 ++#, python-format ++msgid "Port %(PROTOCOL)s/%(PORT)s is not defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1177 + #, python-format +-msgid "Port %s/%s is defined in policy, cannot be deleted" ++msgid "Port %(PROTOCOL)s/%(PORT)s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1169 ++#: ../semanage/seobject/__init__.py:1181 + #, python-format +-msgid "Could not delete port %s/%s" ++msgid "Could not delete port %(PROTOCOL)s/%(PORT)s" + msgstr "" + +-#: ../semanage/seobject.py:1185 ../semanage/seobject.py:1207 ++#: ../semanage/seobject/__init__.py:1197 ../semanage/seobject/__init__.py:1219 + msgid "Could not list ports" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../sepolicy/sepolicy/sepolicy.glade:2675 +-#: ../sepolicy/sepolicy/sepolicy.glade:2773 +-#: ../sepolicy/sepolicy/sepolicy.glade:4687 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2676 ++#: ../sepolicy/sepolicy/sepolicy.glade:2774 ++#: ../sepolicy/sepolicy/sepolicy.glade:4648 + msgid "SELinux Port Type" + msgstr "" + +-#: ../semanage/seobject.py:1246 ++#: ../semanage/seobject/__init__.py:1258 + msgid "Proto" + msgstr "" + +-#: ../semanage/seobject.py:1246 ../gui/system-config-selinux.glade:335 +-#: ../sepolicy/sepolicy/sepolicy.glade:1417 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../gui/system-config-selinux.glade:335 ++#: ../sepolicy/sepolicy/sepolicy.glade:1413 + msgid "Port Number" + msgstr "" + +-#: ../semanage/seobject.py:1270 ++#: ../semanage/seobject/__init__.py:1282 + msgid "Node Address is required" + msgstr "" + +-#: ../semanage/seobject.py:1285 ++#: ../semanage/seobject/__init__.py:1297 + msgid "Unknown or missing protocol" + msgstr "" + +-#: ../semanage/seobject.py:1299 ++#: ../semanage/seobject/__init__.py:1311 + msgid "SELinux node type is required" + msgstr "" + +-#: ../semanage/seobject.py:1302 ../semanage/seobject.py:1370 ++#: ../semanage/seobject/__init__.py:1314 ../semanage/seobject/__init__.py:1382 + #, python-format + msgid "Type %s is invalid, must be a node type" + msgstr "" + +-#: ../semanage/seobject.py:1306 ../semanage/seobject.py:1374 +-#: ../semanage/seobject.py:1410 ../semanage/seobject.py:1508 +-#: ../semanage/seobject.py:1570 ../semanage/seobject.py:1604 +-#: ../semanage/seobject.py:1818 ++#: ../semanage/seobject/__init__.py:1318 ../semanage/seobject/__init__.py:1386 ++#: ../semanage/seobject/__init__.py:1422 ../semanage/seobject/__init__.py:1520 ++#: ../semanage/seobject/__init__.py:1582 ../semanage/seobject/__init__.py:1616 ++#: ../semanage/seobject/__init__.py:1830 + #, python-format + msgid "Could not create key for %s" + msgstr "" + +-#: ../semanage/seobject.py:1308 ../semanage/seobject.py:1378 +-#: ../semanage/seobject.py:1414 ../semanage/seobject.py:1420 ++#: ../semanage/seobject/__init__.py:1320 ../semanage/seobject/__init__.py:1390 ++#: ../semanage/seobject/__init__.py:1426 ../semanage/seobject/__init__.py:1432 + #, python-format + msgid "Could not check if addr %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1317 ++#: ../semanage/seobject/__init__.py:1329 + #, python-format + msgid "Could not create addr for %s" + msgstr "" + +-#: ../semanage/seobject.py:1323 ../semanage/seobject.py:1524 +-#: ../semanage/seobject.py:1767 ++#: ../semanage/seobject/__init__.py:1335 ../semanage/seobject/__init__.py:1536 ++#: ../semanage/seobject/__init__.py:1779 + #, python-format + msgid "Could not create context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1327 ++#: ../semanage/seobject/__init__.py:1339 + #, python-format + msgid "Could not set mask for %s" + msgstr "" + +-#: ../semanage/seobject.py:1331 ++#: ../semanage/seobject/__init__.py:1343 + #, python-format + msgid "Could not set user in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1335 ++#: ../semanage/seobject/__init__.py:1347 + #, python-format + msgid "Could not set role in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1339 ++#: ../semanage/seobject/__init__.py:1351 + #, python-format + msgid "Could not set type in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1344 ++#: ../semanage/seobject/__init__.py:1356 + #, python-format + msgid "Could not set mls fields in addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1348 ++#: ../semanage/seobject/__init__.py:1360 + #, python-format + msgid "Could not set addr context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1352 ++#: ../semanage/seobject/__init__.py:1364 + #, python-format + msgid "Could not add addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1380 ../semanage/seobject.py:1416 ++#: ../semanage/seobject/__init__.py:1392 ../semanage/seobject/__init__.py:1428 + #, python-format + msgid "Addr %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1384 ++#: ../semanage/seobject/__init__.py:1396 + #, python-format + msgid "Could not query addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1394 ++#: ../semanage/seobject/__init__.py:1406 + #, python-format + msgid "Could not modify addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1422 ++#: ../semanage/seobject/__init__.py:1434 + #, python-format + msgid "Addr %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1426 ++#: ../semanage/seobject/__init__.py:1438 + #, python-format + msgid "Could not delete addr %s" + msgstr "" + +-#: ../semanage/seobject.py:1438 ++#: ../semanage/seobject/__init__.py:1450 + msgid "Could not deleteall node mappings" + msgstr "" + +-#: ../semanage/seobject.py:1452 ++#: ../semanage/seobject/__init__.py:1464 + msgid "Could not list addrs" + msgstr "" + +-#: ../semanage/seobject.py:1504 ../semanage/seobject.py:1811 ++#: ../semanage/seobject/__init__.py:1516 ../semanage/seobject/__init__.py:1823 + msgid "SELinux Type is required" + msgstr "" + +-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1574 +-#: ../semanage/seobject.py:1608 ../semanage/seobject.py:1614 ++#: ../semanage/seobject/__init__.py:1524 ../semanage/seobject/__init__.py:1586 ++#: ../semanage/seobject/__init__.py:1620 ../semanage/seobject/__init__.py:1626 + #, python-format + msgid "Could not check if interface %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1519 ++#: ../semanage/seobject/__init__.py:1531 + #, python-format + msgid "Could not create interface for %s" + msgstr "" + +-#: ../semanage/seobject.py:1528 ++#: ../semanage/seobject/__init__.py:1540 + #, python-format + msgid "Could not set user in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1532 ++#: ../semanage/seobject/__init__.py:1544 + #, python-format + msgid "Could not set role in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1536 ++#: ../semanage/seobject/__init__.py:1548 + #, python-format + msgid "Could not set type in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1541 ++#: ../semanage/seobject/__init__.py:1553 + #, python-format + msgid "Could not set mls fields in interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1545 ++#: ../semanage/seobject/__init__.py:1557 + #, python-format + msgid "Could not set interface context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1549 ++#: ../semanage/seobject/__init__.py:1561 + #, python-format + msgid "Could not set message context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1553 ++#: ../semanage/seobject/__init__.py:1565 + #, python-format + msgid "Could not add interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1576 ../semanage/seobject.py:1610 ++#: ../semanage/seobject/__init__.py:1588 ../semanage/seobject/__init__.py:1622 + #, python-format + msgid "Interface %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1580 ++#: ../semanage/seobject/__init__.py:1592 + #, python-format + msgid "Could not query interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1591 ++#: ../semanage/seobject/__init__.py:1603 + #, python-format + msgid "Could not modify interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1616 ++#: ../semanage/seobject/__init__.py:1628 + #, python-format + msgid "Interface %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1620 ++#: ../semanage/seobject/__init__.py:1632 + #, python-format + msgid "Could not delete interface %s" + msgstr "" + +-#: ../semanage/seobject.py:1632 ++#: ../semanage/seobject/__init__.py:1644 + msgid "Could not delete all interface mappings" + msgstr "" + +-#: ../semanage/seobject.py:1646 ++#: ../semanage/seobject/__init__.py:1658 + msgid "Could not list interfaces" + msgstr "" + +-#: ../semanage/seobject.py:1671 ++#: ../semanage/seobject/__init__.py:1683 + msgid "SELinux Interface" + msgstr "" + +-#: ../semanage/seobject.py:1671 ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:1683 ../semanage/seobject/__init__.py:2045 + msgid "Context" + msgstr "" + +-#: ../semanage/seobject.py:1738 ++#: ../semanage/seobject/__init__.py:1750 + #, python-format + msgid "Target %s is not valid. Target is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1741 ++#: ../semanage/seobject/__init__.py:1753 + #, python-format +-msgid "Substiture %s is not valid. Substitute is not allowed to end with '/'" ++msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1744 ++#: ../semanage/seobject/__init__.py:1756 + #, python-format + msgid "Equivalence class for %s already exists" + msgstr "" + +-#: ../semanage/seobject.py:1750 ++#: ../semanage/seobject/__init__.py:1762 + #, python-format +-msgid "File spec %s conflicts with equivalency rule '%s %s'" ++msgid "" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'" + msgstr "" + +-#: ../semanage/seobject.py:1759 ++#: ../semanage/seobject/__init__.py:1771 + #, python-format + msgid "Equivalence class for %s does not exists" + msgstr "" + +-#: ../semanage/seobject.py:1773 ++#: ../semanage/seobject/__init__.py:1785 + #, python-format + msgid "Could not set user in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1777 ++#: ../semanage/seobject/__init__.py:1789 + #, python-format + msgid "Could not set role in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1782 ../semanage/seobject.py:1848 ++#: ../semanage/seobject/__init__.py:1794 ../semanage/seobject/__init__.py:1860 + #, python-format + msgid "Could not set mls fields in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1788 ++#: ../semanage/seobject/__init__.py:1800 + msgid "Invalid file specification" + msgstr "" + +-#: ../semanage/seobject.py:1790 ++#: ../semanage/seobject/__init__.py:1802 + msgid "File specification can not include spaces" + msgstr "" + +-#: ../semanage/seobject.py:1795 ++#: ../semanage/seobject/__init__.py:1807 + #, python-format + msgid "" +-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'; " ++"Try adding '%(DEST1)s' instead" + msgstr "" + +-#: ../semanage/seobject.py:1814 ++#: ../semanage/seobject/__init__.py:1826 + #, python-format + msgid "Type %s is invalid, must be a file or device type" + msgstr "" + +-#: ../semanage/seobject.py:1822 ../semanage/seobject.py:1827 +-#: ../semanage/seobject.py:1883 ../semanage/seobject.py:1965 +-#: ../semanage/seobject.py:1969 ++#: ../semanage/seobject/__init__.py:1834 ../semanage/seobject/__init__.py:1839 ++#: ../semanage/seobject/__init__.py:1895 ../semanage/seobject/__init__.py:1977 ++#: ../semanage/seobject/__init__.py:1981 + #, python-format + msgid "Could not check if file context for %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:1835 ++#: ../semanage/seobject/__init__.py:1847 + #, python-format + msgid "Could not create file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1843 ++#: ../semanage/seobject/__init__.py:1855 + #, python-format + msgid "Could not set type in file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1851 ../semanage/seobject.py:1911 +-#: ../semanage/seobject.py:1915 ++#: ../semanage/seobject/__init__.py:1863 ../semanage/seobject/__init__.py:1923 ++#: ../semanage/seobject/__init__.py:1927 + #, python-format + msgid "Could not set file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1857 ++#: ../semanage/seobject/__init__.py:1869 + #, python-format + msgid "Could not add file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1871 ++#: ../semanage/seobject/__init__.py:1883 + msgid "Requires setype, serange or seuser" + msgstr "" + +-#: ../semanage/seobject.py:1887 ../semanage/seobject.py:1973 ++#: ../semanage/seobject/__init__.py:1899 ../semanage/seobject/__init__.py:1985 + #, python-format + msgid "File context for %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:1893 ++#: ../semanage/seobject/__init__.py:1905 + #, python-format + msgid "Could not query file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1919 ++#: ../semanage/seobject/__init__.py:1931 + #, python-format + msgid "Could not modify file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1932 ++#: ../semanage/seobject/__init__.py:1944 + msgid "Could not list the file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1946 ++#: ../semanage/seobject/__init__.py:1958 + #, python-format + msgid "Could not delete the file context %s" + msgstr "" + +-#: ../semanage/seobject.py:1971 ++#: ../semanage/seobject/__init__.py:1983 + #, python-format + msgid "File context for %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:1977 ++#: ../semanage/seobject/__init__.py:1989 + #, python-format + msgid "Could not delete file context for %s" + msgstr "" + +-#: ../semanage/seobject.py:1992 ++#: ../semanage/seobject/__init__.py:2004 + msgid "Could not list file contexts" + msgstr "" + +-#: ../semanage/seobject.py:1996 ++#: ../semanage/seobject/__init__.py:2008 + msgid "Could not list local file contexts" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "SELinux fcontext" + msgstr "" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "type" + msgstr "" + +-#: ../semanage/seobject.py:2046 ++#: ../semanage/seobject/__init__.py:2058 + msgid "" + "\n" + "SELinux Distribution fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2051 ++#: ../semanage/seobject/__init__.py:2063 + msgid "" + "\n" + "SELinux Local fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2087 ../semanage/seobject.py:2138 +-#: ../semanage/seobject.py:2144 ++#: ../semanage/seobject/__init__.py:2099 ../semanage/seobject/__init__.py:2150 ++#: ../semanage/seobject/__init__.py:2156 + #, python-format + msgid "Could not check if boolean %s is defined" + msgstr "" + +-#: ../semanage/seobject.py:2089 ../semanage/seobject.py:2140 ++#: ../semanage/seobject/__init__.py:2101 ../semanage/seobject/__init__.py:2152 + #, python-format + msgid "Boolean %s is not defined" + msgstr "" + +-#: ../semanage/seobject.py:2093 ++#: ../semanage/seobject/__init__.py:2105 + #, python-format + msgid "Could not query file context %s" + msgstr "" + +-#: ../semanage/seobject.py:2098 ++#: ../semanage/seobject/__init__.py:2110 + #, python-format + msgid "You must specify one of the following values: %s" + msgstr "" + +-#: ../semanage/seobject.py:2103 ++#: ../semanage/seobject/__init__.py:2115 + #, python-format + msgid "Could not set active value of boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2106 ++#: ../semanage/seobject/__init__.py:2118 + #, python-format + msgid "Could not modify boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2122 ++#: ../semanage/seobject/__init__.py:2134 + #, python-format +-msgid "Bad format %s: Record %s" ++msgid "Bad format %(BOOLNAME)s: Record %(VALUE)s" + msgstr "" + +-#: ../semanage/seobject.py:2146 ++#: ../semanage/seobject/__init__.py:2158 + #, python-format + msgid "Boolean %s is defined in policy, cannot be deleted" + msgstr "" + +-#: ../semanage/seobject.py:2150 ++#: ../semanage/seobject/__init__.py:2162 + #, python-format + msgid "Could not delete boolean %s" + msgstr "" + +-#: ../semanage/seobject.py:2162 ../semanage/seobject.py:2179 ++#: ../semanage/seobject/__init__.py:2174 ../semanage/seobject/__init__.py:2191 + msgid "Could not list booleans" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "off" + msgstr "" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "on" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "SELinux boolean" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "State" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "Default" + msgstr "" + +-#: ../semanage/seobject.py:2228 ../gui/polgen.glade:113 +-#: ../gui/polgengui.py:274 ../sepolicy/sepolicy/sepolicy.glade:2147 +-#: ../sepolicy/sepolicy/sepolicy.glade:2517 +-#: ../sepolicy/sepolicy/sepolicy.glade:5021 ++#: ../semanage/seobject/__init__.py:2240 ../gui/polgen.glade:113 ++#: ../gui/polgengui.py:260 ../sepolicy/sepolicy/sepolicy.glade:2148 ++#: ../sepolicy/sepolicy/sepolicy.glade:2518 ++#: ../sepolicy/sepolicy/sepolicy.glade:5117 + msgid "Description" + msgstr "" + +@@ -1353,66 +1372,66 @@ msgstr "" + msgid "Options Error %s " + msgstr "" + +-#: ../gui/booleansPage.py:194 ../gui/system-config-selinux.glade:1706 ++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1706 + msgid "Boolean" + msgstr "" + +-#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:162 ++#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:186 + msgid "all" + msgstr "" + +-#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:164 ++#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:188 + #: ../gui/system-config-selinux.glade:1615 + #: ../gui/system-config-selinux.glade:1820 + #: ../gui/system-config-selinux.glade:2437 + msgid "Customized" + msgstr "" + +-#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1911 ++#: ../gui/fcontextPage.py:63 ../gui/system-config-selinux.glade:1911 + msgid "File Labeling" + msgstr "" + +-#: ../gui/fcontextPage.py:74 ++#: ../gui/fcontextPage.py:73 + msgid "" + "File\n" + "Specification" + msgstr "" + +-#: ../gui/fcontextPage.py:81 ++#: ../gui/fcontextPage.py:80 + msgid "" + "Selinux\n" + "File Type" + msgstr "" + +-#: ../gui/fcontextPage.py:88 ++#: ../gui/fcontextPage.py:87 + msgid "" + "File\n" + "Type" + msgstr "" + +-#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2098 ++#: ../gui/loginsPage.py:45 ../gui/system-config-selinux.glade:2098 + msgid "User Mapping" + msgstr "" + +-#: ../gui/loginsPage.py:52 ++#: ../gui/loginsPage.py:49 + msgid "" + "Login\n" + "Name" + msgstr "" + +-#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50 ++#: ../gui/loginsPage.py:53 ../gui/usersPage.py:47 + msgid "" + "SELinux\n" + "User" + msgstr "" + +-#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55 ++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:52 + msgid "" + "MLS/\n" + "MCS Range" + msgstr "" + +-#: ../gui/loginsPage.py:133 ++#: ../gui/loginsPage.py:130 + #, python-format + msgid "Login '%s' is required" + msgstr "" +@@ -1425,15 +1444,15 @@ msgstr "" + msgid "Module Name" + msgstr "" + +-#: ../gui/modulesPage.py:135 ++#: ../gui/modulesPage.py:131 + msgid "Disable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:138 ../gui/system-config-selinux.glade:2662 ++#: ../gui/modulesPage.py:134 ../gui/system-config-selinux.glade:2662 + msgid "Enable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:163 ++#: ../gui/modulesPage.py:161 + msgid "Load Policy Module" + msgstr "" + +@@ -1472,7 +1491,7 @@ msgstr "" + msgid "Applications" + msgstr "" + +-#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:130 ++#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:132 + msgid "Standard Init Daemon" + msgstr "" + +@@ -1482,7 +1501,7 @@ msgid "" + "requires a script in /etc/rc.d/init.d" + msgstr "" + +-#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:131 ++#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:133 + msgid "DBUS System Daemon" + msgstr "" + +@@ -1494,7 +1513,7 @@ msgstr "" + msgid "Internet Services Daemon are daemons started by xinetd" + msgstr "" + +-#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:133 ++#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:135 + msgid "Web Application/Script (CGI)" + msgstr "" + +@@ -1503,7 +1522,7 @@ msgid "" + "Web Applications/Script (CGI) CGI scripts started by the web server (apache)" + msgstr "" + +-#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:135 ++#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:137 + msgid "User Application" + msgstr "" + +@@ -1513,7 +1532,7 @@ msgid "" + "started by a user" + msgstr "" + +-#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:134 ++#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:136 + msgid "Sandbox" + msgstr "" + +@@ -1565,8 +1584,8 @@ msgstr "" #: ../gui/polgen.glade:550 msgid "" @@ -6287,7 +24503,7 @@ index bcc3f8e..7e68aa6 100644 msgstr "" #: ../gui/polgen.glade:592 -@@ -1599,8 +1598,8 @@ msgstr "" +@@ -1579,8 +1598,8 @@ msgstr "" #: ../gui/polgen.glade:627 msgid "" @@ -6298,7 +24514,18 @@ index bcc3f8e..7e68aa6 100644 "the system directly." msgstr "" -@@ -1669,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" +@@ -1588,8 +1607,8 @@ msgstr "" + msgid "Enter name of application or user role:" + msgstr "" + +-#: ../gui/polgen.glade:728 ../gui/polgengui.py:272 +-#: ../sepolicy/sepolicy/sepolicy.glade:2182 ++#: ../gui/polgen.glade:728 ../gui/polgengui.py:258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2183 + msgid "Name" + msgstr "" + +@@ -1649,7 +1668,8 @@ msgid "Select the user_roles that will transition to %s:" msgstr "" #: ../gui/polgen.glade:1019 @@ -6308,7 +24535,215 @@ index bcc3f8e..7e68aa6 100644 msgstr "" #: ../gui/polgen.glade:1056 -@@ -1988,8 +1988,8 @@ msgid "" +@@ -1673,7 +1693,7 @@ msgid "TCP Ports" + msgstr "" + + #: ../gui/polgen.glade:1223 ../gui/polgen.glade:1390 ../gui/polgen.glade:1589 +-#: ../gui/polgen.glade:1698 ../sepolicy/sepolicy/sepolicy.glade:4314 ++#: ../gui/polgen.glade:1698 + msgid "All" + msgstr "" + +@@ -1804,118 +1824,118 @@ msgstr "" + msgid "Policy Directory" + msgstr "" + +-#: ../gui/polgengui.py:282 ++#: ../gui/polgengui.py:268 + msgid "Role" + msgstr "" + +-#: ../gui/polgengui.py:289 ++#: ../gui/polgengui.py:275 + msgid "Existing_User" + msgstr "" + +-#: ../gui/polgengui.py:303 ../gui/polgengui.py:311 ../gui/polgengui.py:325 ++#: ../gui/polgengui.py:289 ../gui/polgengui.py:297 ../gui/polgengui.py:311 + msgid "Application" + msgstr "" + +-#: ../gui/polgengui.py:370 ++#: ../gui/polgengui.py:356 + #, python-format + msgid "%s must be a directory" + msgstr "" + +-#: ../gui/polgengui.py:430 ../gui/polgengui.py:711 ++#: ../gui/polgengui.py:416 ../gui/polgengui.py:697 + msgid "You must select a user" + msgstr "" + +-#: ../gui/polgengui.py:560 ++#: ../gui/polgengui.py:546 + msgid "Select executable file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:571 ++#: ../gui/polgengui.py:557 + msgid "Select init script file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:581 ++#: ../gui/polgengui.py:567 + msgid "Select file(s) that confined application creates or writes" + msgstr "" + +-#: ../gui/polgengui.py:588 ++#: ../gui/polgengui.py:574 + msgid "Select directory(s) that the confined application owns and writes into" + msgstr "" + +-#: ../gui/polgengui.py:650 ++#: ../gui/polgengui.py:636 + msgid "Select directory to generate policy files in" + msgstr "" + +-#: ../gui/polgengui.py:667 ++#: ../gui/polgengui.py:653 + #, python-format + msgid "" + "Type %s_t already defined in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:667 ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:653 ../gui/polgengui.py:657 + msgid "Verify Name" + msgstr "" + +-#: ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:657 + #, python-format + msgid "" + "Module %s.pp already loaded in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:717 ++#: ../gui/polgengui.py:703 + msgid "" + "You must add a name made up of letters and numbers and containing no spaces." + msgstr "" + +-#: ../gui/polgengui.py:731 ++#: ../gui/polgengui.py:717 + msgid "You must enter a executable" + msgstr "" + +-#: ../gui/polgengui.py:756 ../gui/system-config-selinux.py:180 ++#: ../gui/polgengui.py:742 ../gui/system-config-selinux.py:180 + msgid "Configue SELinux" + msgstr "" + +-#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2528 ++#: ../gui/portsPage.py:48 ../gui/system-config-selinux.glade:2528 + msgid "Network Port" + msgstr "" + +-#: ../gui/portsPage.py:85 ++#: ../gui/portsPage.py:82 + msgid "" + "SELinux Port\n" + "Type" + msgstr "" + +-#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363 +-#: ../sepolicy/sepolicy/sepolicy.glade:1443 +-#: ../sepolicy/sepolicy/sepolicy.glade:2657 +-#: ../sepolicy/sepolicy/sepolicy.glade:2755 +-#: ../sepolicy/sepolicy/sepolicy.glade:4672 ++#: ../gui/portsPage.py:88 ../gui/system-config-selinux.glade:363 ++#: ../sepolicy/sepolicy/sepolicy.glade:1439 ++#: ../sepolicy/sepolicy/sepolicy.glade:2658 ++#: ../sepolicy/sepolicy/sepolicy.glade:2756 ++#: ../sepolicy/sepolicy/sepolicy.glade:4633 + msgid "Protocol" + msgstr "" + +-#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479 ++#: ../gui/portsPage.py:93 ../gui/system-config-selinux.glade:479 + msgid "" + "MLS/MCS\n" + "Level" + msgstr "" + +-#: ../gui/portsPage.py:101 ../sepolicy/sepolicy/sepolicy.glade:2638 +-#: ../sepolicy/sepolicy/sepolicy.glade:2737 +-#: ../sepolicy/sepolicy/sepolicy.glade:4658 ++#: ../gui/portsPage.py:98 ../sepolicy/sepolicy/sepolicy.glade:2639 ++#: ../sepolicy/sepolicy/sepolicy.glade:2738 ++#: ../sepolicy/sepolicy/sepolicy.glade:4619 + msgid "Port" + msgstr "" + +-#: ../gui/portsPage.py:207 ++#: ../gui/portsPage.py:205 + #, python-format + msgid "Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 " + msgstr "" + +-#: ../gui/portsPage.py:252 ++#: ../gui/portsPage.py:258 + msgid "List View" + msgstr "" + +-#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2419 ++#: ../gui/portsPage.py:261 ../gui/system-config-selinux.glade:2419 + msgid "Group View" + msgstr "" + +@@ -1929,50 +1949,50 @@ msgstr "" + msgid "Delete %s" + msgstr "" + +-#: ../gui/semanagePage.py:134 ++#: ../gui/semanagePage.py:158 + #, python-format + msgid "Add %s" + msgstr "" + +-#: ../gui/semanagePage.py:148 ++#: ../gui/semanagePage.py:172 + #, python-format + msgid "Modify %s" + msgstr "" + +-#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2819 +-#: ../sepolicy/sepolicy/sepolicy.glade:3413 +-#: ../sepolicy/sepolicy/sepolicy.glade:3486 ++#: ../gui/statusPage.py:65 ../gui/system-config-selinux.glade:2819 ++#: ../sepolicy/sepolicy/sepolicy.glade:3414 ++#: ../sepolicy/sepolicy/sepolicy.glade:3487 + msgid "Permissive" + msgstr "" + +-#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2837 +-#: ../sepolicy/sepolicy/sepolicy.glade:3394 +-#: ../sepolicy/sepolicy/sepolicy.glade:3468 ++#: ../gui/statusPage.py:66 ../gui/system-config-selinux.glade:2837 ++#: ../sepolicy/sepolicy/sepolicy.glade:3395 ++#: ../sepolicy/sepolicy/sepolicy.glade:3469 + msgid "Enforcing" + msgstr "" + +-#: ../gui/statusPage.py:94 ++#: ../gui/statusPage.py:90 + msgid "Status" + msgstr "" + +-#: ../gui/statusPage.py:133 ../sepolicy/sepolicy/gui.py:2619 ++#: ../gui/statusPage.py:129 ../sepolicy/sepolicy/gui.py:2613 + msgid "" + "Changing the policy type will cause a relabel of the entire file system on " + "the next boot. Relabeling takes a long time depending on the size of the " + "file system. Do you wish to continue?" + msgstr "" + +-#: ../gui/statusPage.py:147 ++#: ../gui/statusPage.py:143 + msgid "" + "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 " @@ -6318,8 +24753,41 @@ index bcc3f8e..7e68aa6 100644 +" wish to continue?" msgstr "" - #: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 -@@ -2223,8 +2223,8 @@ msgstr "" +-#: ../gui/statusPage.py:152 ../sepolicy/sepolicy/gui.py:2753 ++#: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 + msgid "" + "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 " +@@ -2024,8 +2044,8 @@ msgid "" + msgstr "" + + #: ../gui/system-config-selinux.glade:773 +-#: ../sepolicy/sepolicy/sepolicy.glade:729 +-#: ../sepolicy/sepolicy/sepolicy.glade:1489 ++#: ../sepolicy/sepolicy/sepolicy.glade:711 ++#: ../sepolicy/sepolicy/sepolicy.glade:1485 + msgid "MLS" + msgstr "" + +@@ -2038,7 +2058,7 @@ msgid "SELinux Administration" + msgstr "" + + #: ../gui/system-config-selinux.glade:1122 +-#: ../sepolicy/sepolicy/sepolicy.glade:4162 ++#: ../sepolicy/sepolicy/sepolicy.glade:4163 + msgid "Add" + msgstr "" + +@@ -2108,7 +2128,7 @@ msgstr "" + #: ../gui/system-config-selinux.glade:2467 + #: ../gui/system-config-selinux.glade:2692 + #: ../gui/system-config-selinux.glade:2867 +-#: ../sepolicy/sepolicy/sepolicy.glade:1992 ++#: ../sepolicy/sepolicy/sepolicy.glade:1993 + msgid "Filter" + msgstr "" + +@@ -2203,8 +2223,8 @@ msgstr "" #: ../gui/system-config-selinux.glade:2661 msgid "" @@ -6330,32 +24798,175 @@ index bcc3f8e..7e68aa6 100644 msgstr "" #: ../gui/system-config-selinux.glade:2781 -@@ -2265,8 +2265,8 @@ msgstr "" +@@ -2227,7 +2247,7 @@ msgstr "" + msgid "label59" + msgstr "" + +-#: ../gui/usersPage.py:138 ++#: ../gui/usersPage.py:140 + #, python-format + msgid "SELinux user '%s' is required" + msgstr "" +@@ -2239,13 +2259,14 @@ msgstr "" + + #: booleans.py:2 + msgid "" +-"Allow ABRT to run in abrt_handle_event_t domain to handle ABRT event scripts" ++"Determine whether ABRT can run in the abrt_handle_event_t domain to handle " ++"ABRT event scripts." + msgstr "" #: booleans.py:3 msgid "" --"Determine whether abrt-handle-upload can modify public files used for public " --"file transfer services in /var/spool/abrt-upload/." +-"Allow abrt-handle-upload to modify public files used for public file " +-"transfer services in /var/spool/abrt-upload/." +"Determine whether abrt-handle-upload can modify public files used for public" +" file transfer services in /var/spool/abrt-upload/." msgstr "" #: booleans.py:4 -@@ -2395,8 +2395,9 @@ msgstr "" +@@ -2279,7 +2300,7 @@ msgid "Determine whether awstats can purge httpd log files." + msgstr "" - #: booleans.py:32 - msgid "" + #: booleans.py:11 +-msgid "Allow boinc_domain execmem/execstack." ++msgid "Determine whether boinc can execmem/execstack." + msgstr "" + + #: booleans.py:12 +@@ -2335,1467 +2356,1506 @@ msgid "" + msgstr "" + + #: booleans.py:23 +-msgid "Determine whether cvs can read shadow password files." ++msgid "" ++"Determine whether crond can execute jobs in the user domain as opposed to " ++"the the generic cronjob domain." + msgstr "" + + #: booleans.py:24 +-msgid "Allow all daemons to write corefiles to /" ++msgid "Determine whether cvs can read shadow password files." + msgstr "" + + #: booleans.py:25 +-msgid "Allow all daemons to use tcp wrappers." ++msgid "Allow all daemons to write corefiles to /" + msgstr "" + + #: booleans.py:26 +-msgid "Allow all daemons the ability to read/write terminals" ++msgid "Enable cluster mode for daemons." + msgstr "" + + #: booleans.py:27 +-msgid "Determine whether dbadm can manage generic user files." ++msgid "Allow all daemons to use tcp wrappers." + msgstr "" + + #: booleans.py:28 +-msgid "Determine whether dbadm can read generic user files." ++msgid "Allow all daemons the ability to read/write terminals" + msgstr "" + + #: booleans.py:29 +-msgid "" -"Deny user domains applications to map a memory region as both executable and " -"writable, this is dangerous and the executable should be reported in bugzilla" ++msgid "Allow dbadm to exec content" + msgstr "" + + #: booleans.py:30 +-msgid "Deny any process from ptracing or debugging any other processes." ++msgid "Determine whether dbadm can manage generic user files." + msgstr "" + + #: booleans.py:31 +-msgid "Allow dhcpc client applications to execute iptables commands" ++msgid "Determine whether dbadm can read generic user files." + msgstr "" + + #: booleans.py:32 +-msgid "Determine whether DHCP daemon can use LDAP backends." ++msgid "" +"Deny user domains applications to map a memory region as both executable and" +" writable, this is dangerous and the executable should be reported in " +"bugzilla" msgstr "" #: booleans.py:33 -@@ -2462,8 +2463,8 @@ msgstr "" +-msgid "Allow all domains to use other domains file descriptors" ++msgid "Deny any process from ptracing or debugging any other processes." + msgstr "" - #: booleans.py:47 + #: booleans.py:34 +-msgid "Allow all domains to have the kernel load modules" ++msgid "Allow dhcpc client applications to execute iptables commands" + msgstr "" + + #: booleans.py:35 ++msgid "Determine whether DHCP daemon can use LDAP backends." ++msgstr "" ++ ++#: booleans.py:36 ++msgid "Allow all domains to use other domains file descriptors" ++msgstr "" ++ ++#: booleans.py:37 ++msgid "Allow all domains to have the kernel load modules" ++msgstr "" ++ ++#: booleans.py:38 + msgid "" + "Determine whether entropyd can use audio devices as the source for the " + "entropy feeds." + msgstr "" + +-#: booleans.py:36 ++#: booleans.py:39 + msgid "Determine whether exim can connect to databases." + msgstr "" + +-#: booleans.py:37 ++#: booleans.py:40 + msgid "" + "Determine whether exim can create, read, write, and delete generic user " + "content files." + msgstr "" + +-#: booleans.py:38 ++#: booleans.py:41 + msgid "Determine whether exim can read generic user content files." + msgstr "" + +-#: booleans.py:39 ++#: booleans.py:42 + msgid "Enable extra rules in the cron domain to support fcron." + msgstr "" + +-#: booleans.py:40 ++#: booleans.py:43 + msgid "Determine whether fenced can connect to the TCP network." + msgstr "" + +-#: booleans.py:41 ++#: booleans.py:44 + msgid "Determine whether fenced can use ssh." + msgstr "" + +-#: booleans.py:42 ++#: booleans.py:45 + msgid "Allow all domains to execute in fips_mode" + msgstr "" + +-#: booleans.py:43 ++#: booleans.py:46 + msgid "" + "Determine whether ftpd can read and write files in user home directories." + msgstr "" + +-#: booleans.py:44 ++#: booleans.py:47 msgid "" -"Determine whether ftpd can modify public files used for public file transfer " -"services. Directories/Files must be labeled public_content_rw_t." @@ -6363,30 +24974,834 @@ index bcc3f8e..7e68aa6 100644 +" services. Directories/Files must be labeled public_content_rw_t." msgstr "" - #: booleans.py:48 -@@ -2615,7 +2616,8 @@ msgid "Allow HTTPD scripts and modules to connect to the network using TCP." +-#: booleans.py:45 ++#: booleans.py:48 + msgid "Determine whether ftpd can connect to all unreserved ports." msgstr "" - #: booleans.py:80 +-#: booleans.py:46 ++#: booleans.py:49 + msgid "Determine whether ftpd can connect to databases over the TCP network." + msgstr "" + +-#: booleans.py:47 ++#: booleans.py:50 + msgid "" + "Determine whether ftpd can login to local users and can read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:48 ++#: booleans.py:51 + msgid "" + "Determine whether ftpd can use CIFS used for public file transfer services." + msgstr "" + +-#: booleans.py:49 ++#: booleans.py:52 + msgid "Allow ftpd to use ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:50 ++#: booleans.py:53 + msgid "" + "Determine whether ftpd can use NFS used for public file transfer services." + msgstr "" + +-#: booleans.py:51 ++#: booleans.py:54 + msgid "" + "Determine whether ftpd can bind to all unreserved ports for passive mode." + msgstr "" + +-#: booleans.py:52 ++#: booleans.py:55 + msgid "Determine whether Git CGI can search home directories." + msgstr "" + +-#: booleans.py:53 ++#: booleans.py:56 + msgid "Determine whether Git CGI can access cifs file systems." + msgstr "" + +-#: booleans.py:54 ++#: booleans.py:57 + msgid "Determine whether Git CGI can access nfs file systems." + msgstr "" + +-#: booleans.py:55 ++#: booleans.py:58 + msgid "" + "Determine whether Git session daemon can bind TCP sockets to all unreserved " + "ports." + msgstr "" + +-#: booleans.py:56 ++#: booleans.py:59 + msgid "" + "Determine whether calling user domains can execute Git daemon in the " + "git_session_t domain." + msgstr "" + +-#: booleans.py:57 ++#: booleans.py:60 + msgid "Determine whether Git system daemon can search home directories." + msgstr "" + +-#: booleans.py:58 ++#: booleans.py:61 + msgid "Determine whether Git system daemon can access cifs file systems." + msgstr "" + +-#: booleans.py:59 ++#: booleans.py:62 + msgid "Determine whether Git system daemon can access nfs file systems." + msgstr "" + +-#: booleans.py:60 ++#: booleans.py:63 + msgid "Determine whether Gitosis can send mail." + msgstr "" + +-#: booleans.py:61 ++#: booleans.py:64 + msgid "Enable reading of urandom for all domains." + msgstr "" + +-#: booleans.py:62 ++#: booleans.py:65 + msgid "" + "Allow glusterfsd to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:63 ++#: booleans.py:66 + msgid "Allow glusterfsd to share any file/directory read only." + msgstr "" + +-#: booleans.py:64 ++#: booleans.py:67 + msgid "Allow glusterfsd to share any file/directory read/write." + msgstr "" + +-#: booleans.py:65 ++#: booleans.py:68 + msgid "" + "Allow usage of the gpg-agent --write-env-file option. This also allows gpg-" + "agent to manage user files." + msgstr "" + +-#: booleans.py:66 ++#: booleans.py:69 + msgid "" + "Allow gpg web domain to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:67 ++#: booleans.py:70 + msgid "" + "Allow gssd to list tmp directories and read the kerberos credential cache." + msgstr "" + +-#: booleans.py:68 ++#: booleans.py:71 + msgid "Allow guest to exec content" + msgstr "" + +-#: booleans.py:69 ++#: booleans.py:72 + msgid "" + "Allow Apache to modify public files used for public file transfer services. " + "Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:70 ++#: booleans.py:73 + msgid "Allow httpd to use built in scripting (usually php)" + msgstr "" + +-#: booleans.py:71 ++#: booleans.py:74 + msgid "Allow http daemon to check spam" + msgstr "" + +-#: booleans.py:72 ++#: booleans.py:75 + msgid "" + "Allow httpd to act as a FTP client connecting to the ftp port and ephemeral " + "ports" + msgstr "" + +-#: booleans.py:73 ++#: booleans.py:76 + msgid "Allow httpd to connect to the ldap port" + msgstr "" + +-#: booleans.py:74 ++#: booleans.py:77 + msgid "Allow http daemon to connect to mythtv" + msgstr "" + +-#: booleans.py:75 ++#: booleans.py:78 + msgid "Allow http daemon to connect to zabbix" + msgstr "" + +-#: booleans.py:76 ++#: booleans.py:79 + msgid "Allow HTTPD scripts and modules to connect to the network using TCP." + msgstr "" + +-#: booleans.py:77 -msgid "Allow HTTPD scripts and modules to connect to cobbler over the network." ++#: booleans.py:80 +msgid "" +"Allow HTTPD scripts and modules to connect to cobbler over the network." msgstr "" - #: booleans.py:81 -@@ -3122,7 +3124,8 @@ msgstr "" +-#: booleans.py:78 ++#: booleans.py:81 + msgid "" + "Allow HTTPD scripts and modules to connect to databases over the network." + msgstr "" - #: booleans.py:197 +-#: booleans.py:79 ++#: booleans.py:82 + msgid "Allow httpd to connect to memcache server" + msgstr "" + +-#: booleans.py:80 ++#: booleans.py:83 + msgid "Allow httpd to act as a relay" + msgstr "" + +-#: booleans.py:81 ++#: booleans.py:84 + msgid "Allow http daemon to send mail" + msgstr "" + +-#: booleans.py:82 ++#: booleans.py:85 + msgid "Allow Apache to communicate with avahi service via dbus" + msgstr "" + +-#: booleans.py:83 ++#: booleans.py:86 + msgid "Allow httpd cgi support" + msgstr "" + +-#: booleans.py:84 ++#: booleans.py:87 + msgid "Allow httpd to act as a FTP server by listening on the ftp port." + msgstr "" + +-#: booleans.py:85 ++#: booleans.py:88 + msgid "Allow httpd to read home directories" + msgstr "" + +-#: booleans.py:86 ++#: booleans.py:89 + msgid "Allow httpd scripts and modules execmem/execstack" + msgstr "" + +-#: booleans.py:87 ++#: booleans.py:90 + msgid "Allow HTTPD to connect to port 80 for graceful shutdown" + msgstr "" + +-#: booleans.py:88 ++#: booleans.py:91 + msgid "Allow httpd processes to manage IPA content" + msgstr "" + +-#: booleans.py:89 ++#: booleans.py:92 + msgid "Allow Apache to use mod_auth_ntlm_winbind" + msgstr "" + +-#: booleans.py:90 ++#: booleans.py:93 + msgid "Allow Apache to use mod_auth_pam" + msgstr "" + +-#: booleans.py:91 ++#: booleans.py:94 + msgid "Allow httpd to read user content" + msgstr "" + +-#: booleans.py:92 ++#: booleans.py:95 + msgid "Allow Apache to run in stickshift mode, not transition to passenger" + msgstr "" + +-#: booleans.py:93 ++#: booleans.py:96 + msgid "Allow HTTPD scripts and modules to server cobbler files." + msgstr "" + +-#: booleans.py:94 ++#: booleans.py:97 + msgid "Allow httpd daemon to change its resource limits" + msgstr "" + +-#: booleans.py:95 ++#: booleans.py:98 + msgid "" + "Allow HTTPD to run SSI executables in the same domain as system CGI scripts." + msgstr "" + +-#: booleans.py:96 ++#: booleans.py:99 + msgid "" + "Allow apache scripts to write to public content, directories/files must be " + "labeled public_rw_content_t." + msgstr "" + +-#: booleans.py:97 ++#: booleans.py:100 + msgid "Allow Apache to execute tmp content." + msgstr "" + +-#: booleans.py:98 ++#: booleans.py:101 + msgid "" + "Unify HTTPD to communicate with the terminal. Needed for entering the " + "passphrase for certificates at the terminal." + msgstr "" + +-#: booleans.py:99 ++#: booleans.py:102 + msgid "Unify HTTPD handling of all content files." + msgstr "" + +-#: booleans.py:100 ++#: booleans.py:103 + msgid "Allow httpd to access cifs file systems" + msgstr "" + +-#: booleans.py:101 ++#: booleans.py:104 + msgid "Allow httpd to access FUSE file systems" + msgstr "" + +-#: booleans.py:102 ++#: booleans.py:105 + msgid "Allow httpd to run gpg" + msgstr "" + +-#: booleans.py:103 ++#: booleans.py:106 + msgid "Allow httpd to access nfs file systems" + msgstr "" + +-#: booleans.py:104 ++#: booleans.py:107 + msgid "Allow httpd to access openstack ports" + msgstr "" + +-#: booleans.py:105 ++#: booleans.py:108 + msgid "Allow httpd to connect to sasl" + msgstr "" + +-#: booleans.py:106 ++#: booleans.py:109 + msgid "Allow Apache to query NS records" + msgstr "" + +-#: booleans.py:107 ++#: booleans.py:110 + msgid "Determine whether icecast can listen on and connect to any TCP port." + msgstr "" + +-#: booleans.py:108 ++#: booleans.py:111 + msgid "" + "Determine whether irc clients can listen on and connect to any unreserved " + "TCP ports." + msgstr "" + +-#: booleans.py:109 ++#: booleans.py:112 + msgid "" + "Allow the Irssi IRC Client to connect to any port, and to bind to any " + "unreserved port." + msgstr "" + +-#: booleans.py:110 ++#: booleans.py:113 ++msgid "Allow s-c-kdump to run bootloader in bootloader_t." ++msgstr "" ++ ++#: booleans.py:114 + msgid "Allow confined applications to run with kerberos." + msgstr "" + +-#: booleans.py:111 ++#: booleans.py:115 + msgid "Allow ksmtuned to use cifs/Samba file systems" + msgstr "" + +-#: booleans.py:112 ++#: booleans.py:116 + msgid "Allow ksmtuned to use nfs file systems" + msgstr "" + +-#: booleans.py:113 ++#: booleans.py:117 ++msgid "Allow logadm to exec content" ++msgstr "" ++ ++#: booleans.py:118 + msgid "Allow syslogd daemon to send mail" + msgstr "" + +-#: booleans.py:114 ++#: booleans.py:119 + msgid "Allow syslogd the ability to read/write terminals" + msgstr "" + +-#: booleans.py:115 ++#: booleans.py:120 + msgid "Allow logging in and using the system from /dev/console." + msgstr "" + +-#: booleans.py:116 ++#: booleans.py:121 ++msgid "Determine whether logwatch can connect to mail over the network." ++msgstr "" ++ ++#: booleans.py:122 + msgid "Allow epylog to send mail" + msgstr "" + +-#: booleans.py:117 ++#: booleans.py:123 + msgid "Allow mailman to access FUSE file systems" + msgstr "" + +-#: booleans.py:118 ++#: booleans.py:124 + msgid "Determine whether mcelog supports client mode." + msgstr "" + +-#: booleans.py:119 ++#: booleans.py:125 + msgid "Determine whether mcelog can execute scripts." + msgstr "" + +-#: booleans.py:120 ++#: booleans.py:126 + msgid "Determine whether mcelog can use all the user ttys." + msgstr "" + +-#: booleans.py:121 ++#: booleans.py:127 + msgid "Determine whether mcelog supports server mode." + msgstr "" + +-#: booleans.py:122 ++#: booleans.py:128 ++msgid "Determine whether minidlna can read generic user content." ++msgstr "" ++ ++#: booleans.py:129 + msgid "" + "Control the ability to mmap a low area of the address space, as configured " + "by /proc/sys/kernel/mmap_min_addr." + msgstr "" + +-#: booleans.py:123 ++#: booleans.py:130 + msgid "Allow mock to read files in home directories." + msgstr "" + +-#: booleans.py:124 ++#: booleans.py:131 + msgid "Allow the mount commands to mount any directory or file." + msgstr "" + +-#: booleans.py:125 ++#: booleans.py:132 + msgid "Allow mozilla plugin domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:126 ++#: booleans.py:133 + msgid "Allow mozilla plugin to support GPS." + msgstr "" + +-#: booleans.py:127 ++#: booleans.py:134 + msgid "Allow mozilla plugin to support spice protocols." + msgstr "" + +-#: booleans.py:128 ++#: booleans.py:135 + msgid "Allow confined web browsers to read home directory content" + msgstr "" + +-#: booleans.py:129 ++#: booleans.py:136 + msgid "Determine whether mpd can traverse user home directories." + msgstr "" + +-#: booleans.py:130 ++#: booleans.py:137 + msgid "Determine whether mpd can use cifs file systems." + msgstr "" + +-#: booleans.py:131 ++#: booleans.py:138 + msgid "Determine whether mpd can use nfs file systems." + msgstr "" + +-#: booleans.py:132 ++#: booleans.py:139 + msgid "Determine whether mplayer can make its stack executable." + msgstr "" + +-#: booleans.py:133 ++#: booleans.py:140 + msgid "Allow mysqld to connect to all ports" + msgstr "" + +-#: booleans.py:134 ++#: booleans.py:141 + msgid "Determine whether Bind can bind tcp socket to http ports." + msgstr "" + +-#: booleans.py:135 ++#: booleans.py:142 + msgid "" + "Determine whether Bind can write to master zone files. Generally this is " + "used for dynamic DNS or zone transfers." + msgstr "" + +-#: booleans.py:136 ++#: booleans.py:143 + msgid "Allow any files/directories to be exported read/only via NFS." + msgstr "" + +-#: booleans.py:137 ++#: booleans.py:144 + msgid "Allow any files/directories to be exported read/write via NFS." + msgstr "" + +-#: booleans.py:138 ++#: booleans.py:145 + msgid "" + "Allow nfs servers to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:139 ++#: booleans.py:146 + msgid "Allow system to run with NIS" + msgstr "" + +-#: booleans.py:140 ++#: booleans.py:147 + msgid "Allow confined applications to use nscd shared memory." + msgstr "" + +-#: booleans.py:141 ++#: booleans.py:148 + msgid "Allow openshift to lockdown app" + msgstr "" + +-#: booleans.py:142 ++#: booleans.py:149 + msgid "Determine whether openvpn can connect to the TCP network." + msgstr "" + +-#: booleans.py:143 ++#: booleans.py:150 + msgid "Determine whether openvpn can read generic user home content files." + msgstr "" + +-#: booleans.py:144 ++#: booleans.py:151 + msgid "Allow openvpn to run unconfined scripts" + msgstr "" + +-#: booleans.py:145 ++#: booleans.py:152 + msgid "Allow piranha-lvs domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:146 ++#: booleans.py:153 + msgid "Allow polipo to connect to all ports > 1023" + msgstr "" + +-#: booleans.py:147 ++#: booleans.py:154 + msgid "" + "Determine whether Polipo session daemon can bind tcp sockets to all " + "unreserved ports." + msgstr "" + +-#: booleans.py:148 ++#: booleans.py:155 + msgid "" + "Determine whether calling user domains can execute Polipo daemon in the " + "polipo_session_t domain." + msgstr "" + +-#: booleans.py:149 ++#: booleans.py:156 + msgid "Determine whether polipo can access cifs file systems." + msgstr "" + +-#: booleans.py:150 ++#: booleans.py:157 + msgid "Determine whether Polipo can access nfs file systems." + msgstr "" + +-#: booleans.py:151 ++#: booleans.py:158 + msgid "Enable polyinstantiated directory support." + msgstr "" + +-#: booleans.py:152 ++#: booleans.py:159 + msgid "Allow postfix_local domain full write access to mail_spool directories" + msgstr "" + +-#: booleans.py:153 ++#: booleans.py:160 + msgid "Allow postgresql to use ssh and rsync for point-in-time recovery" + msgstr "" + +-#: booleans.py:154 ++#: booleans.py:161 + msgid "Allow transmit client label to foreign database" + msgstr "" + +-#: booleans.py:155 ++#: booleans.py:162 + msgid "Allow database admins to execute DML statement" + msgstr "" + +-#: booleans.py:156 ++#: booleans.py:163 + msgid "Allow unprivileged users to execute DDL statement" + msgstr "" + +-#: booleans.py:157 ++#: booleans.py:164 + msgid "Allow pppd to load kernel modules for certain modems" + msgstr "" + +-#: booleans.py:158 ++#: booleans.py:165 + msgid "Allow pppd to be run for a regular user" + msgstr "" + +-#: booleans.py:159 ++#: booleans.py:166 + msgid "Determine whether privoxy can connect to all tcp ports." + msgstr "" + +-#: booleans.py:160 ++#: booleans.py:167 + msgid "" + "Permit to prosody to bind apache port. Need to be activated to use BOSH." + msgstr "" + +-#: booleans.py:161 ++#: booleans.py:168 + msgid "Allow Puppet client to manage all file types." + msgstr "" + +-#: booleans.py:162 ++#: booleans.py:169 + msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database" + msgstr "" + +-#: booleans.py:163 ++#: booleans.py:170 + msgid "Allow racoon to read shadow" + msgstr "" + +-#: booleans.py:164 ++#: booleans.py:171 + msgid "" + "Allow rsync to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:165 ++#: booleans.py:172 + msgid "Allow rsync to run as a client" + msgstr "" + +-#: booleans.py:166 ++#: booleans.py:173 + msgid "Allow rsync to export any files/directories read only." + msgstr "" + +-#: booleans.py:167 ++#: booleans.py:174 + msgid "Allow rsync server to manage all files/directories on the system." + msgstr "" + +-#: booleans.py:168 ++#: booleans.py:175 + msgid "Allow samba to create new home directories (e.g. via PAM)" + msgstr "" + +-#: booleans.py:169 ++#: booleans.py:176 + msgid "" + "Allow samba to act as the domain controller, add users, groups and change " + "passwords." + msgstr "" + +-#: booleans.py:170 ++#: booleans.py:177 + msgid "Allow samba to share users home directories." + msgstr "" + +-#: booleans.py:171 ++#: booleans.py:178 + msgid "Allow samba to share any file/directory read only." + msgstr "" + +-#: booleans.py:172 ++#: booleans.py:179 + msgid "Allow samba to share any file/directory read/write." + msgstr "" + +-#: booleans.py:173 ++#: booleans.py:180 + msgid "Allow samba to act as a portmapper" + msgstr "" + +-#: booleans.py:174 ++#: booleans.py:181 + msgid "Allow samba to run unconfined scripts" + msgstr "" + +-#: booleans.py:175 ++#: booleans.py:182 + msgid "Allow samba to export ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:176 ++#: booleans.py:183 + msgid "Allow samba to export NFS volumes." + msgstr "" + +-#: booleans.py:177 ++#: booleans.py:184 + msgid "Allow sanlock to read/write fuse files" + msgstr "" + +-#: booleans.py:178 ++#: booleans.py:185 + msgid "Allow sanlock to manage nfs files" + msgstr "" + +-#: booleans.py:179 ++#: booleans.py:186 + msgid "Allow sanlock to manage cifs files" + msgstr "" + +-#: booleans.py:180 ++#: booleans.py:187 + msgid "Allow sasl to read shadow" + msgstr "" + +-#: booleans.py:181 ++#: booleans.py:188 + msgid "Allow secadm to exec content" + msgstr "" + +-#: booleans.py:182 ++#: booleans.py:189 + msgid "" + "disallow programs, such as newrole, from transitioning to administrative " + "user domains." + msgstr "" + +-#: booleans.py:183 ++#: booleans.py:190 + msgid "Disable kernel module loading." + msgstr "" + +-#: booleans.py:184 ++#: booleans.py:191 + msgid "" + "Boolean to determine whether the system permits loading policy, setting " + "enforcing mode, and changing boolean values. Set this to true and you have " + "to reboot to set it back." + msgstr "" + +-#: booleans.py:185 ++#: booleans.py:192 + msgid "Allow regular users direct dri device access" + msgstr "" + +-#: booleans.py:186 ++#: booleans.py:193 + msgid "" + "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 "" + +-#: booleans.py:187 ++#: booleans.py:194 + msgid "" + "Allow all unconfined executables to use libraries requiring text relocation " + "that are not labeled textrel_shlib_t" + msgstr "" + +-#: booleans.py:188 ++#: booleans.py:195 + msgid "" + "Allow unconfined executables to make their stack executable. This should " + "never, ever be necessary. Probably indicates a badly coded executable, but " + "could indicate an attack. This executable should be reported in bugzilla" + msgstr "" + +-#: booleans.py:189 ++#: booleans.py:196 + msgid "Allow users to connect to the local mysql server" + msgstr "" + +-#: booleans.py:190 ++#: booleans.py:197 msgid "" -"Allow confined users the ability to execute the ping and traceroute commands." +"Allow confined users the ability to execute the ping and traceroute " +"commands." msgstr "" - #: booleans.py:198 -@@ -3141,8 +3144,8 @@ msgstr "" +-#: booleans.py:191 ++#: booleans.py:198 + msgid "Allow users to connect to PostgreSQL" + msgstr "" - #: booleans.py:201 +-#: booleans.py:192 ++#: booleans.py:199 + msgid "" + "Allow user to r/w files on filesystems that do not have extended attributes " + "(FAT, CDROM, FLOPPY)" + msgstr "" + +-#: booleans.py:193 ++#: booleans.py:200 + msgid "Allow user music sharing" + msgstr "" + +-#: booleans.py:194 ++#: booleans.py:201 msgid "" -"Allow users to run TCP servers (bind to ports and accept connection from the " -"same domain and outside users) disabling this forces FTP passive mode and " @@ -6395,19 +25810,211 @@ index bcc3f8e..7e68aa6 100644 "may change other protocols." msgstr "" -@@ -3234,7 +3237,8 @@ msgid "Allow sysadm to exec content" +-#: booleans.py:195 ++#: booleans.py:202 + msgid "Allow user to use ssh chroot environment." msgstr "" - #: booleans.py:221 +-#: booleans.py:196 ++#: booleans.py:203 + msgid "" + "Determine whether sftpd can modify public files used for public file " + "transfer services. Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:197 ++#: booleans.py:204 + msgid "" + "Determine whether sftpd-can read and write files in user home directories." + msgstr "" + +-#: booleans.py:198 ++#: booleans.py:205 + msgid "" + "Determine whether sftpd-can login to local users and read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:199 ++#: booleans.py:206 + msgid "" + "Determine whether sftpd can read and write files in user ssh home " + "directories." + msgstr "" + +-#: booleans.py:200 ++#: booleans.py:207 + msgid "Allow sge to connect to the network using any TCP port" + msgstr "" + +-#: booleans.py:201 ++#: booleans.py:208 + msgid "Allow sge to access nfs file systems." + msgstr "" + +-#: booleans.py:202 ++#: booleans.py:209 + msgid "Determine whether smartmon can support devices on 3ware controllers." + msgstr "" + +-#: booleans.py:203 ++#: booleans.py:210 + msgid "" + "Allow samba to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:204 ++#: booleans.py:211 + msgid "Allow user spamassassin clients to use the network." + msgstr "" + +-#: booleans.py:205 ++#: booleans.py:212 + msgid "Allow spamd to read/write user home directories." + msgstr "" + +-#: booleans.py:206 ++#: booleans.py:213 + msgid "Determine whether squid can connect to all TCP ports." + msgstr "" + +-#: booleans.py:207 ++#: booleans.py:214 + msgid "Determine whether squid can run as a transparent proxy." + msgstr "" + +-#: booleans.py:208 ++#: booleans.py:215 + msgid "" + "Allow ssh with chroot env to read and write files in the user home " + "directories" + msgstr "" + +-#: booleans.py:209 ++#: booleans.py:216 + msgid "allow host key based authentication" + msgstr "" + +-#: booleans.py:210 ++#: booleans.py:217 + msgid "Allow ssh logins as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:211 ++#: booleans.py:218 + msgid "Allow staff to exec content" + msgstr "" + +-#: booleans.py:212 ++#: booleans.py:219 + msgid "allow staff user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:213 ++#: booleans.py:220 + msgid "Allow sysadm to exec content" + msgstr "" + +-#: booleans.py:214 -msgid "Allow the Telepathy connection managers to connect to any network port." ++#: booleans.py:221 +msgid "" +"Allow the Telepathy connection managers to connect to any network port." msgstr "" - #: booleans.py:222 -@@ -3309,8 +3313,8 @@ msgstr "" +-#: booleans.py:215 ++#: booleans.py:222 + msgid "" + "Allow the Telepathy connection managers to connect to any generic TCP port." + msgstr "" - #: booleans.py:238 +-#: booleans.py:216 +-msgid "Allow testpolicy to exec content" +-msgstr "" +- +-#: booleans.py:217 ++#: booleans.py:223 + msgid "" + "Allow tftp to modify public files used for public file transfer services." + msgstr "" + +-#: booleans.py:218 ++#: booleans.py:224 + msgid "Allow tftp to read and write files in the user home directories" + msgstr "" + +-#: booleans.py:219 ++#: booleans.py:225 + msgid "Determine whether tor can bind tcp sockets to all unreserved ports." + msgstr "" + +-#: booleans.py:220 ++#: booleans.py:226 + msgid "Allow tor to act as a relay" + msgstr "" + +-#: booleans.py:221 ++#: booleans.py:227 + msgid "" + "allow unconfined users to transition to the chrome sandbox domains when " + "running chrome-sandbox" + msgstr "" + +-#: booleans.py:222 ++#: booleans.py:228 + msgid "Allow a user to login as an unconfined domain" + msgstr "" + +-#: booleans.py:223 ++#: booleans.py:229 + msgid "" + "Allow unconfined users to transition to the Mozilla plugin domain when " + "running xulrunner plugin-container." + msgstr "" + +-#: booleans.py:224 ++#: booleans.py:230 + msgid "Allow unprivledged user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:225 ++#: booleans.py:231 + msgid "Support ecryptfs home directories" + msgstr "" + +-#: booleans.py:226 ++#: booleans.py:232 + msgid "Support fusefs home directories" + msgstr "" + +-#: booleans.py:227 ++#: booleans.py:233 + msgid "Determine whether to support lpd server." + msgstr "" + +-#: booleans.py:228 ++#: booleans.py:234 + msgid "Support NFS home directories" + msgstr "" + +-#: booleans.py:229 ++#: booleans.py:235 + msgid "Support SAMBA home directories" + msgstr "" + +-#: booleans.py:230 ++#: booleans.py:236 + msgid "Allow user to exec content" + msgstr "" + +-#: booleans.py:231 ++#: booleans.py:237 + msgid "Determine whether varnishd can use the full TCP network." + msgstr "" + +-#: booleans.py:232 ++#: booleans.py:238 msgid "" -"Determine whether attempts by vbetool to mmap low regions should be silently " -"blocked." @@ -6415,20 +26022,839 @@ index bcc3f8e..7e68aa6 100644 +" blocked." msgstr "" - #: booleans.py:239 -@@ -3388,7 +3392,8 @@ msgstr "" +-#: booleans.py:233 ++#: booleans.py:239 ++msgid "Allow sandbox containers to send audit messages" ++msgstr "" ++ ++#: booleans.py:240 ++msgid "Allow sandbox containers to use netlink system calls" ++msgstr "" ++ ++#: booleans.py:241 + msgid "Allow virtual processes to run as userdomains" + msgstr "" - #: booleans.py:256 +-#: booleans.py:234 ++#: booleans.py:242 + msgid "" + "Allow confined virtual guests to use serial/parallel communication ports" + msgstr "" + +-#: booleans.py:235 ++#: booleans.py:243 + msgid "" + "Allow confined virtual guests to use executable memory and executable stack" + msgstr "" + +-#: booleans.py:236 ++#: booleans.py:244 + msgid "Allow confined virtual guests to read fuse files" + msgstr "" + +-#: booleans.py:237 ++#: booleans.py:245 + msgid "Allow confined virtual guests to manage nfs files" + msgstr "" + +-#: booleans.py:238 ++#: booleans.py:246 + msgid "Allow confined virtual guests to interact with rawip sockets" + msgstr "" + +-#: booleans.py:239 ++#: booleans.py:247 + msgid "Allow confined virtual guests to manage cifs files" + msgstr "" + +-#: booleans.py:240 ++#: booleans.py:248 + msgid "Allow confined virtual guests to interact with the sanlock" + msgstr "" + +-#: booleans.py:241 ++#: booleans.py:249 + msgid "Allow confined virtual guests to use usb devices" + msgstr "" + +-#: booleans.py:242 ++#: booleans.py:250 + msgid "Allow confined virtual guests to interact with the xserver" + msgstr "" + +-#: booleans.py:243 ++#: booleans.py:251 + msgid "Determine whether webadm can manage generic user files." + msgstr "" + +-#: booleans.py:244 ++#: booleans.py:252 + msgid "Determine whether webadm can read generic user files." + msgstr "" + +-#: booleans.py:245 ++#: booleans.py:253 + msgid "" + "Determine whether attempts by wine to mmap low regions should be silently " + "blocked." + msgstr "" + +-#: booleans.py:246 ++#: booleans.py:254 + msgid "Allow the graphical login program to execute bootloader" + msgstr "" + +-#: booleans.py:247 ++#: booleans.py:255 + msgid "" + "Allow the graphical login program to login directly as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:248 ++#: booleans.py:256 msgid "" -"Allow the graphical login program to create files in HOME dirs as xdm_home_t." +"Allow the graphical login program to create files in HOME dirs as " +"xdm_home_t." msgstr "" - #: booleans.py:257 -@@ -3969,8 +3974,8 @@ msgstr "" +-#: booleans.py:249 ++#: booleans.py:257 + msgid "Allow xen to manage nfs files" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:638 +-#: booleans.py:250 ++#: booleans.py:258 + msgid "" + "Allow xend to run blktapctrl/tapdisk. Not required if using dedicated " + "logical volumes for disk images." + msgstr "" + +-#: booleans.py:251 ++#: booleans.py:259 + msgid "Allow xend to run qemu-dm. Not required if using paravirt and no vfb." + msgstr "" + +-#: booleans.py:252 ++#: booleans.py:260 + msgid "" + "Allow xguest users to configure Network Manager and connect to apache ports" + msgstr "" + +-#: booleans.py:253 ++#: booleans.py:261 + msgid "Allow xguest to exec content" + msgstr "" + +-#: booleans.py:254 ++#: booleans.py:262 + msgid "Allow xguest users to mount removable media" + msgstr "" + +-#: booleans.py:255 ++#: booleans.py:263 + msgid "Allow xguest to use blue tooth devices" + msgstr "" + +-#: booleans.py:256 ++#: booleans.py:264 + msgid "Allows clients to write to the X server shared memory segments." + msgstr "" + +-#: booleans.py:257 ++#: booleans.py:265 + msgid "Allows XServer to execute writable memory" + msgstr "" + +-#: booleans.py:258 ++#: booleans.py:266 + msgid "Support X userspace object manager" + msgstr "" + +-#: booleans.py:259 ++#: booleans.py:267 + msgid "Determine whether zabbix can connect to all TCP ports" + msgstr "" + +-#: booleans.py:260 ++#: booleans.py:268 + msgid "Allow zarafa domains to setrlimit/sys_rouserce." + msgstr "" + +-#: booleans.py:261 ++#: booleans.py:269 + msgid "Allow zebra daemon to write it configuration files" + msgstr "" + +-#: booleans.py:262 ++#: booleans.py:270 + msgid "" + "Allow ZoneMinder to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:263 ++#: booleans.py:271 + msgid "Allow ZoneMinder to run su/sudo." + msgstr "" + +-#: ../sepolicy/sepolicy.py:194 ++#: ../sepolicy/sepolicy.py:195 + #, python-format + msgid "Interface %s does not exist." + msgstr "" + +-#: ../sepolicy/sepolicy.py:292 ++#: ../sepolicy/sepolicy.py:293 + msgid "You need to install policycoreutils-gui package to use the gui option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:296 ++#: ../sepolicy/sepolicy.py:297 + msgid "Graphical User Interface for SELinux Policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:299 ../sepolicy/sepolicy.py:345 ++#: ../sepolicy/sepolicy.py:300 ../sepolicy/sepolicy.py:346 + msgid "Domain name(s) of man pages to be created" + msgstr "" + +-#: ../sepolicy/sepolicy.py:311 ++#: ../sepolicy/sepolicy.py:312 + msgid "Alternative root needs to be setup" + msgstr "" + +-#: ../sepolicy/sepolicy.py:327 ++#: ../sepolicy/sepolicy.py:328 + msgid "Generate SELinux man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:330 ++#: ../sepolicy/sepolicy.py:331 + msgid "path in which the generated SELinux man pages will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:332 ++#: ../sepolicy/sepolicy.py:333 + msgid "name of the OS for man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:334 ++#: ../sepolicy/sepolicy.py:335 + msgid "Generate HTML man pages structure for selected SELinux man page" + msgstr "" + +-#: ../sepolicy/sepolicy.py:336 ++#: ../sepolicy/sepolicy.py:337 + msgid "Alternate root directory, defaults to /" + msgstr "" + +-#: ../sepolicy/sepolicy.py:338 ++#: ../sepolicy/sepolicy.py:339 + msgid "" + "With this flag, alternative root path needs to include file context files " + "and policy.xml file" + msgstr "" + +-#: ../sepolicy/sepolicy.py:342 ++#: ../sepolicy/sepolicy.py:343 + msgid "All domains" + msgstr "" + +-#: ../sepolicy/sepolicy.py:350 ++#: ../sepolicy/sepolicy.py:351 + msgid "Query SELinux policy network information" + msgstr "" + +-#: ../sepolicy/sepolicy.py:355 ++#: ../sepolicy/sepolicy.py:356 + msgid "list all SELinux port types" + msgstr "" + +-#: ../sepolicy/sepolicy.py:358 ++#: ../sepolicy/sepolicy.py:359 + msgid "show SELinux type related to the port" + msgstr "" + +-#: ../sepolicy/sepolicy.py:361 ++#: ../sepolicy/sepolicy.py:362 + msgid "Show ports defined for this SELinux type" + msgstr "" + +-#: ../sepolicy/sepolicy.py:364 ++#: ../sepolicy/sepolicy.py:365 + msgid "show ports to which this domain can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:367 ++#: ../sepolicy/sepolicy.py:368 + msgid "show ports to which this application can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:382 ++#: ../sepolicy/sepolicy.py:383 + msgid "query SELinux policy to see if domains can communicate with each other" + msgstr "" + +-#: ../sepolicy/sepolicy.py:385 ++#: ../sepolicy/sepolicy.py:386 + msgid "Source Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:388 ++#: ../sepolicy/sepolicy.py:389 + msgid "Target Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:407 ++#: ../sepolicy/sepolicy.py:408 + msgid "query SELinux Policy to see description of booleans" + msgstr "" + +-#: ../sepolicy/sepolicy.py:411 ++#: ../sepolicy/sepolicy.py:412 + msgid "get all booleans descriptions" + msgstr "" + +-#: ../sepolicy/sepolicy.py:414 ++#: ../sepolicy/sepolicy.py:415 + msgid "boolean to get description" + msgstr "" + +-#: ../sepolicy/sepolicy.py:424 ++#: ../sepolicy/sepolicy.py:425 + msgid "" + "query SELinux Policy to see how a source process domain can transition to " + "the target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:427 ++#: ../sepolicy/sepolicy.py:428 + msgid "source process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:430 ++#: ../sepolicy/sepolicy.py:431 + msgid "target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:472 ++#: ../sepolicy/sepolicy.py:473 + #, python-format + msgid "sepolicy generate: error: one of the arguments %s is required" + msgstr "" + +-#: ../sepolicy/sepolicy.py:477 ++#: ../sepolicy/sepolicy.py:478 + msgid "Command required for this type of policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:488 ++#: ../sepolicy/sepolicy.py:489 + #, python-format + msgid "" + "-t option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:493 ++#: ../sepolicy/sepolicy.py:494 + #, python-format + msgid "" + "-d option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:497 ++#: ../sepolicy/sepolicy.py:498 + #, python-format + msgid "" + "-a option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:501 ++#: ../sepolicy/sepolicy.py:502 + msgid "-w option can not be used with the --newtype option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:521 ++#: ../sepolicy/sepolicy.py:522 + msgid "List SELinux Policy interfaces" + msgstr "" + +-#: ../sepolicy/sepolicy.py:541 ++#: ../sepolicy/sepolicy.py:542 + msgid "Enter interface names, you wish to query" + msgstr "" + +-#: ../sepolicy/sepolicy.py:550 ++#: ../sepolicy/sepolicy.py:551 + msgid "Generate SELinux Policy module template" + msgstr "" + +-#: ../sepolicy/sepolicy.py:553 ++#: ../sepolicy/sepolicy.py:554 + msgid "Enter domain type which you will be extending" + msgstr "" + +-#: ../sepolicy/sepolicy.py:556 ++#: ../sepolicy/sepolicy.py:557 + msgid "Enter SELinux user(s) which will transition to this domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:559 ++#: ../sepolicy/sepolicy.py:560 + msgid "Enter SELinux role(s) to which the administror domain will transition" + msgstr "" + +-#: ../sepolicy/sepolicy.py:562 ++#: ../sepolicy/sepolicy.py:563 + msgid "Enter domain(s) which this confined admin will administrate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:565 ++#: ../sepolicy/sepolicy.py:566 + msgid "name of policy to generate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:572 ++#: ../sepolicy/sepolicy.py:573 + msgid "path in which the generated policy files will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:574 ++#: ../sepolicy/sepolicy.py:575 + msgid "path to which the confined processes will need to write" + msgstr "" + +-#: ../sepolicy/sepolicy.py:575 ++#: ../sepolicy/sepolicy.py:576 + msgid "Policy types which require a command" + msgstr "" + +-#: ../sepolicy/sepolicy.py:579 ../sepolicy/sepolicy.py:582 +-#: ../sepolicy/sepolicy.py:585 ../sepolicy/sepolicy.py:588 +-#: ../sepolicy/sepolicy.py:591 ../sepolicy/sepolicy.py:597 +-#: ../sepolicy/sepolicy.py:600 ../sepolicy/sepolicy.py:603 +-#: ../sepolicy/sepolicy.py:609 ../sepolicy/sepolicy.py:612 +-#: ../sepolicy/sepolicy.py:615 ../sepolicy/sepolicy.py:618 ++#: ../sepolicy/sepolicy.py:580 ../sepolicy/sepolicy.py:583 ++#: ../sepolicy/sepolicy.py:586 ../sepolicy/sepolicy.py:589 ++#: ../sepolicy/sepolicy.py:592 ../sepolicy/sepolicy.py:598 ++#: ../sepolicy/sepolicy.py:601 ../sepolicy/sepolicy.py:604 ++#: ../sepolicy/sepolicy.py:610 ../sepolicy/sepolicy.py:613 ++#: ../sepolicy/sepolicy.py:616 ../sepolicy/sepolicy.py:619 + #, python-format + msgid "Generate '%s' policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:606 ++#: ../sepolicy/sepolicy.py:607 + #, python-format + msgid "Generate '%s' policy " + msgstr "" + +-#: ../sepolicy/sepolicy.py:620 ++#: ../sepolicy/sepolicy.py:621 + msgid "executable to confine" + msgstr "" + +-#: ../sepolicy/sepolicy.py:625 ++#: ../sepolicy/sepolicy.py:626 + msgid "commands" + msgstr "" + +-#: ../sepolicy/sepolicy.py:628 ++#: ../sepolicy/sepolicy.py:629 + msgid "Alternate SELinux policy, defaults to /sys/fs/selinux/policy" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:89 ++#: ../sepolicy/sepolicy/__init__.py:96 + #, python-format + msgid "-- Allowed %s [ %s ]" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:95 ../sepolicy/sepolicy/gui.py:1135 ++#: ../sepolicy/sepolicy/__init__.py:102 ../sepolicy/sepolicy/gui.py:1152 + msgid "all files" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:96 ++#: ../sepolicy/sepolicy/__init__.py:103 + msgid "regular file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:97 ++#: ../sepolicy/sepolicy/__init__.py:104 + msgid "directory" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:98 ++#: ../sepolicy/sepolicy/__init__.py:105 + msgid "character device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:99 ++#: ../sepolicy/sepolicy/__init__.py:106 + msgid "block device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:100 ++#: ../sepolicy/sepolicy/__init__.py:107 + msgid "socket file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:101 ++#: ../sepolicy/sepolicy/__init__.py:108 + msgid "symbolic link" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:102 ++#: ../sepolicy/sepolicy/__init__.py:109 + msgid "named pipe" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:398 ++#: ../sepolicy/sepolicy/__init__.py:427 + msgid "No SELinux Policy installed" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:478 ++#: ../sepolicy/sepolicy/__init__.py:506 + msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:724 ++#: ../sepolicy/sepolicy/__init__.py:768 + #, python-format + msgid "Failed to read %s policy file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:829 ++#: ../sepolicy/sepolicy/__init__.py:873 + msgid "unknown" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:132 ++#: ../sepolicy/sepolicy/generate.py:134 + msgid "Internet Services Daemon" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:136 ++#: ../sepolicy/sepolicy/generate.py:138 + msgid "Existing Domain Type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:137 ++#: ../sepolicy/sepolicy/generate.py:139 + msgid "Minimal Terminal Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:138 ++#: ../sepolicy/sepolicy/generate.py:140 + msgid "Minimal X Windows Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:139 ++#: ../sepolicy/sepolicy/generate.py:141 + msgid "Desktop Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:140 ++#: ../sepolicy/sepolicy/generate.py:142 + msgid "Administrator Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:141 ++#: ../sepolicy/sepolicy/generate.py:143 + msgid "Confined Root Administrator Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:142 ++#: ../sepolicy/sepolicy/generate.py:144 + msgid "Module information for a new type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:147 ++#: ../sepolicy/sepolicy/generate.py:149 + msgid "Valid Types:\n" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:181 ++#: ../sepolicy/sepolicy/generate.py:183 + #, python-format + msgid "Ports must be numbers or ranges of numbers from 1 to %d " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:192 ++#: ../sepolicy/sepolicy/generate.py:194 + msgid "You must enter a valid policy type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:195 ++#: ../sepolicy/sepolicy/generate.py:197 + #, python-format + msgid "You must enter a name for your policy module for your '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:333 ++#: ../sepolicy/sepolicy/generate.py:335 + msgid "" + "Name must be alpha numberic with no spaces. Consider using option \"-n " + "MODULENAME\"" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:425 ++#: ../sepolicy/sepolicy/generate.py:427 + msgid "User Role types can not be assigned executables." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:431 ++#: ../sepolicy/sepolicy/generate.py:433 + msgid "Only Daemon apps can use an init script.." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:449 ++#: ../sepolicy/sepolicy/generate.py:451 + msgid "use_resolve must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:455 ++#: ../sepolicy/sepolicy/generate.py:457 + msgid "use_syslog must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:461 ++#: ../sepolicy/sepolicy/generate.py:463 + msgid "use_kerberos must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:467 ++#: ../sepolicy/sepolicy/generate.py:469 + msgid "manage_krb5_rcache must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:497 ++#: ../sepolicy/sepolicy/generate.py:499 + msgid "USER Types automatically get a tmp type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:838 ++#: ../sepolicy/sepolicy/generate.py:840 + #, python-format + msgid "'%s' policy modules require existing domains" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:863 ++#: ../sepolicy/sepolicy/generate.py:865 + msgid "Type field required" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:876 ++#: ../sepolicy/sepolicy/generate.py:878 + #, python-format + msgid "" + "You need to define a new type which ends with: \n" + " %s" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1104 ++#: ../sepolicy/sepolicy/generate.py:1106 + msgid "You must enter the executable path for your confined process" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1363 ++#: ../sepolicy/sepolicy/generate.py:1369 + msgid "Type Enforcement file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1364 ++#: ../sepolicy/sepolicy/generate.py:1370 + msgid "Interface file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1365 ++#: ../sepolicy/sepolicy/generate.py:1371 + msgid "File Contexts file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1367 ++#: ../sepolicy/sepolicy/generate.py:1373 + msgid "Spec file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1368 ++#: ../sepolicy/sepolicy/generate.py:1374 + msgid "Setup Script" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:25 +-#: ../sepolicy/sepolicy/sepolicy.glade:4369 ++#: ../sepolicy/sepolicy/sepolicy.glade:4330 + msgid "Applications" + msgstr "" + +@@ -3803,562 +3863,555 @@ msgstr "" + msgid "Select domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search >>" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2343 + msgid "File Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2316 ++#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2353 + msgid "Users" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:129 +-#: ../sepolicy/sepolicy/sepolicy.glade:1897 +-#: ../sepolicy/sepolicy/sepolicy.glade:3802 ../sepolicy/sepolicy/gui.py:2297 ++#: ../sepolicy/sepolicy/sepolicy.glade:1898 ++#: ../sepolicy/sepolicy/sepolicy.glade:3803 ../sepolicy/sepolicy/gui.py:2334 + msgid "System" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:189 +-#: ../sepolicy/sepolicy/sepolicy.glade:4406 +-#: ../sepolicy/sepolicy/sepolicy.glade:4499 +-#: ../sepolicy/sepolicy/sepolicy.glade:4645 +-#: ../sepolicy/sepolicy/sepolicy.glade:4793 +-#: ../sepolicy/sepolicy/sepolicy.glade:4934 +-#: ../sepolicy/sepolicy/sepolicy.glade:5007 ++#: ../sepolicy/sepolicy/sepolicy.glade:4367 ++#: ../sepolicy/sepolicy/sepolicy.glade:4460 ++#: ../sepolicy/sepolicy/sepolicy.glade:4606 ++#: ../sepolicy/sepolicy/sepolicy.glade:4755 ++#: ../sepolicy/sepolicy/sepolicy.glade:4889 ++#: ../sepolicy/sepolicy/sepolicy.glade:5030 ++#: ../sepolicy/sepolicy/sepolicy.glade:5103 ++#: ../sepolicy/sepolicy/sepolicy.glade:5238 + msgid "Select" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:204 +-#: ../sepolicy/sepolicy/sepolicy.glade:557 +-#: ../sepolicy/sepolicy/sepolicy.glade:702 +-#: ../sepolicy/sepolicy/sepolicy.glade:1243 +-#: ../sepolicy/sepolicy/sepolicy.glade:1539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4579 +-#: ../sepolicy/sepolicy/sepolicy.glade:4729 +-#: ../sepolicy/sepolicy/sepolicy.glade:4859 +-#: ../sepolicy/sepolicy/sepolicy.glade:5077 +-#: ../sepolicy/sepolicy/sepolicy.glade:5233 +-#: ../sepolicy/sepolicy/sepolicy.glade:5474 ++#: ../sepolicy/sepolicy/sepolicy.glade:539 ++#: ../sepolicy/sepolicy/sepolicy.glade:684 ++#: ../sepolicy/sepolicy/sepolicy.glade:1239 ++#: ../sepolicy/sepolicy/sepolicy.glade:1535 ++#: ../sepolicy/sepolicy/sepolicy.glade:4540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4690 ++#: ../sepolicy/sepolicy/sepolicy.glade:4821 ++#: ../sepolicy/sepolicy/sepolicy.glade:4955 ++#: ../sepolicy/sepolicy/sepolicy.glade:5173 ++#: ../sepolicy/sepolicy/sepolicy.glade:5304 ++#: ../sepolicy/sepolicy/sepolicy.glade:5464 + msgid "Cancel" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:350 ++#: ../sepolicy/sepolicy/sepolicy.glade:332 + msgid "" + "The entry that was entered is incorrect. Please try again in the " + "ex:/.../... format." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:376 ++#: ../sepolicy/sepolicy/sepolicy.glade:358 + msgid "Retry" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:460 +-#: ../sepolicy/sepolicy/sepolicy.glade:1124 +-#: ../sepolicy/sepolicy/sepolicy.glade:1372 +-#: ../sepolicy/sepolicy/sepolicy.glade:5102 +-#: ../sepolicy/sepolicy/sepolicy.glade:5343 ++#: ../sepolicy/sepolicy/sepolicy.glade:442 ++#: ../sepolicy/sepolicy/sepolicy.glade:1120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1368 ++#: ../sepolicy/sepolicy/sepolicy.glade:5332 + msgid "Network Port Definitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:476 ++#: ../sepolicy/sepolicy/sepolicy.glade:458 + msgid "" +-"Add file Equivilence Mapping. Mapping will be created when Update is " ++"Add file Equivalence Mapping. Mapping will be created when Update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:501 +-#: ../sepolicy/sepolicy/sepolicy.glade:4045 ++#: ../sepolicy/sepolicy/sepolicy.glade:483 ++#: ../sepolicy/sepolicy/sepolicy.glade:4046 + msgid "Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:511 +-#: ../sepolicy/sepolicy/sepolicy.glade:5154 +-#: ../sepolicy/sepolicy/sepolicy.glade:5395 ++#: ../sepolicy/sepolicy/sepolicy.glade:493 ++#: ../sepolicy/sepolicy/sepolicy.glade:5384 + msgid "" + "Specify a new SELinux user name. By convention SELinux User names usually " + "end in an _u." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:515 ++#: ../sepolicy/sepolicy/sepolicy.glade:497 + msgid "Enter the path to which you want to setup an equivalence label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:528 +-#: ../sepolicy/sepolicy/sepolicy.glade:4062 +-#: ../sepolicy/sepolicy/sepolicy.glade:4819 ++#: ../sepolicy/sepolicy/sepolicy.glade:510 ++#: ../sepolicy/sepolicy/sepolicy.glade:4063 ++#: ../sepolicy/sepolicy/sepolicy.glade:4781 + msgid "Equivalence Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:542 +-#: ../sepolicy/sepolicy/sepolicy.glade:687 +-#: ../sepolicy/sepolicy/sepolicy.glade:1228 +-#: ../sepolicy/sepolicy/sepolicy.glade:1524 +-#: ../sepolicy/sepolicy/sepolicy.glade:5218 +-#: ../sepolicy/sepolicy/sepolicy.glade:5459 ++#: ../sepolicy/sepolicy/sepolicy.glade:524 ++#: ../sepolicy/sepolicy/sepolicy.glade:669 ++#: ../sepolicy/sepolicy/sepolicy.glade:1224 ++#: ../sepolicy/sepolicy/sepolicy.glade:1520 ++#: ../sepolicy/sepolicy/sepolicy.glade:5449 + msgid "Save to update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:582 ++#: ../sepolicy/sepolicy/sepolicy.glade:564 + msgid "" + "Specify the mapping between the new path and the equivalence path. " + "Everything under this new path will be labeled as if they were under the " + "equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:639 ++#: ../sepolicy/sepolicy/sepolicy.glade:621 + msgid "Add a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:656 ++#: ../sepolicy/sepolicy/sepolicy.glade:638 msgid "" -" File Labeling for . File labels will be created " -"when update is applied." @@ -6436,10 +26862,71 @@ index bcc3f8e..7e68aa6 100644 +" when update is applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:726 -@@ -4022,8 +4027,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:744 +-#: ../sepolicy/sepolicy/sepolicy.glade:1471 +-#: ../sepolicy/sepolicy/sepolicy.glade:3510 ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/sepolicy.glade:726 ++#: ../sepolicy/sepolicy/sepolicy.glade:1467 ++#: ../sepolicy/sepolicy/sepolicy.glade:3511 ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced >>" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:880 +-#: ../sepolicy/sepolicy/sepolicy.glade:765 +-#: ../sepolicy/sepolicy/sepolicy.glade:2305 +-#: ../sepolicy/sepolicy/sepolicy.glade:2417 +-#: ../sepolicy/sepolicy/sepolicy.glade:2539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4539 ++#: ../sepolicy/sepolicy/sepolicy.glade:747 ++#: ../sepolicy/sepolicy/sepolicy.glade:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:2418 ++#: ../sepolicy/sepolicy/sepolicy.glade:2540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4500 + msgid "Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:781 ++#: ../sepolicy/sepolicy/sepolicy.glade:763 + msgid "Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:795 ++#: ../sepolicy/sepolicy/sepolicy.glade:777 + msgid "" + "Select the file class to which this label will be applied. Defaults to all " + "classes." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:822 ++#: ../sepolicy/sepolicy/sepolicy.glade:804 + msgid "Make Path Recursive" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:826 ++#: ../sepolicy/sepolicy/sepolicy.glade:808 + msgid "" +-"Select Make Path Recursive iff you want to apply this label to all children " ++"Select Make Path Recursive if you want to apply this label to all children " + "of the specified directory path. objects under the directory to have this " + "label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:839 ++#: ../sepolicy/sepolicy/sepolicy.glade:821 + msgid "Browse" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:843 ++#: ../sepolicy/sepolicy/sepolicy.glade:825 + msgid "Browse to select the file/directory for labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:887 ++#: ../sepolicy/sepolicy/sepolicy.glade:869 + msgid "Path " + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:898 ++#: ../sepolicy/sepolicy/sepolicy.glade:880 msgid "" -"Specify the path using regular expressions that you would like to modify the " -"labeling." @@ -6447,10 +26934,378 @@ index bcc3f8e..7e68aa6 100644 +" labeling." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:902 -@@ -4311,8 +4316,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:920 ++#: ../sepolicy/sepolicy/sepolicy.glade:902 + msgid "Select the SELinux file type to assign to this path." + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3012 +-#: ../sepolicy/sepolicy/sepolicy.glade:947 ++#: ../sepolicy/sepolicy/sepolicy.glade:929 + msgid "Enter the MLS Label to assign to this file path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:951 ++#: ../sepolicy/sepolicy/sepolicy.glade:933 + msgid "SELinux MLS Label you wish to assign to this path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1088 ++#: ../sepolicy/sepolicy/sepolicy.glade:1070 + msgid "Analyzing Policy..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1141 ++#: ../sepolicy/sepolicy/sepolicy.glade:1137 + msgid "" + "Add Login Mapping. Login Mapping will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1176 ++#: ../sepolicy/sepolicy/sepolicy.glade:1172 + msgid "" + "Enter the login user name of the user to which you wish to add SELinux User " + "confinement." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1205 ++#: ../sepolicy/sepolicy/sepolicy.glade:1201 + msgid "" + "Select the SELinux User to assign to this login user. Login users by " + "default get assigned by the __default__ user." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1268 ++#: ../sepolicy/sepolicy/sepolicy.glade:1264 + msgid "" + "Enter MLS/MCS Range for this login User. Defaults to the range for the " + "Selected SELinux User." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1271 +-#: ../sepolicy/sepolicy/sepolicy.glade:3191 +-#: ../sepolicy/sepolicy/sepolicy.glade:3312 +-#: ../sepolicy/sepolicy/sepolicy.glade:5184 +-#: ../sepolicy/sepolicy/sepolicy.glade:5425 ++#: ../sepolicy/sepolicy/sepolicy.glade:1267 ++#: ../sepolicy/sepolicy/sepolicy.glade:3192 ++#: ../sepolicy/sepolicy/sepolicy.glade:3313 ++#: ../sepolicy/sepolicy/sepolicy.glade:5414 + msgid "MLS Range" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1283 ++#: ../sepolicy/sepolicy/sepolicy.glade:1279 + msgid "" + "Specify the MLS Range for this user to login in with. Defaults to the " + "selected SELinux Users MLS Range." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1389 ++#: ../sepolicy/sepolicy/sepolicy.glade:1385 + msgid "" + " Network Port for . Ports will be created when " + "update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1427 ++#: ../sepolicy/sepolicy/sepolicy.glade:1423 + msgid "Enter the port number or range to which you want to add a port type." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1457 ++#: ../sepolicy/sepolicy/sepolicy.glade:1453 + msgid "Port Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1502 ++#: ../sepolicy/sepolicy/sepolicy.glade:1498 + msgid "Select the port type you want to assign to the specified port number." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1566 ++#: ../sepolicy/sepolicy/sepolicy.glade:1562 + msgid "tcp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1570 ++#: ../sepolicy/sepolicy/sepolicy.glade:1566 + msgid "" + "Select tcp if the port type should be assigned to tcp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1583 ++#: ../sepolicy/sepolicy/sepolicy.glade:1579 + msgid "udp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1587 ++#: ../sepolicy/sepolicy/sepolicy.glade:1583 + msgid "" + "Select udp if the port type should be assigned to udp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1609 ++#: ../sepolicy/sepolicy/sepolicy.glade:1605 + msgid "Enter the MLS Label to assign to this port." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1706 ++#: ../sepolicy/sepolicy/sepolicy.glade:1707 + msgid "SELinux Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1742 ++#: ../sepolicy/sepolicy/sepolicy.glade:1743 + msgid "Select..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1791 +-#: ../sepolicy/sepolicy/sepolicy.glade:2211 ++#: ../sepolicy/sepolicy/sepolicy.glade:1792 ++#: ../sepolicy/sepolicy/sepolicy.glade:2212 + msgid "Booleans" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1795 ++#: ../sepolicy/sepolicy/sepolicy.glade:1796 + msgid "" + "Display boolean information that can be used to modify the policy for the " + "'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1809 +-#: ../sepolicy/sepolicy/sepolicy.glade:2596 ++#: ../sepolicy/sepolicy/sepolicy.glade:1810 ++#: ../sepolicy/sepolicy/sepolicy.glade:2597 + msgid "Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1813 ++#: ../sepolicy/sepolicy/sepolicy.glade:1814 + msgid "" + "Display file type information that can be used by the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1827 +-#: ../sepolicy/sepolicy/sepolicy.glade:2829 ++#: ../sepolicy/sepolicy/sepolicy.glade:1828 ++#: ../sepolicy/sepolicy/sepolicy.glade:2830 + msgid "Network" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1831 ++#: ../sepolicy/sepolicy/sepolicy.glade:1832 + msgid "" + "Display network ports to which the 'selected domain' can connect or listen " + "to." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1845 +-#: ../sepolicy/sepolicy/sepolicy.glade:3120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1846 ++#: ../sepolicy/sepolicy/sepolicy.glade:3121 + msgid "Transitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1849 ++#: ../sepolicy/sepolicy/sepolicy.glade:1850 + msgid "" + "Display applications that can transition into or out of the 'selected " + "domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1863 +-#: ../sepolicy/sepolicy/sepolicy.glade:3221 ++#: ../sepolicy/sepolicy/sepolicy.glade:1864 ++#: ../sepolicy/sepolicy/sepolicy.glade:3222 + msgid "Login Mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1866 +-#: ../sepolicy/sepolicy/sepolicy.glade:1883 +-#: ../sepolicy/sepolicy/sepolicy.glade:1900 ++#: ../sepolicy/sepolicy/sepolicy.glade:1867 ++#: ../sepolicy/sepolicy/sepolicy.glade:1884 ++#: ../sepolicy/sepolicy/sepolicy.glade:1901 + msgid "Manage the SELinux configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1880 +-#: ../sepolicy/sepolicy/sepolicy.glade:3343 ++#: ../sepolicy/sepolicy/sepolicy.glade:1881 ++#: ../sepolicy/sepolicy/sepolicy.glade:3344 + msgid "SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1914 +-#: ../sepolicy/sepolicy/sepolicy.glade:4015 ++#: ../sepolicy/sepolicy/sepolicy.glade:1915 ++#: ../sepolicy/sepolicy/sepolicy.glade:4016 + msgid "Lockdown" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1917 ++#: ../sepolicy/sepolicy/sepolicy.glade:1918 + msgid "" + "Lockdown the SELinux System.\n" + "This screen can be used to turn up the SELinux Protections." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1932 ++#: ../sepolicy/sepolicy/sepolicy.glade:1933 + msgid "radiobutton" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2020 ++#: ../sepolicy/sepolicy/sepolicy.glade:2021 + msgid "Show Modified Only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2059 ++#: ../sepolicy/sepolicy/sepolicy.glade:2060 + msgid "Mislabeled files exist" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2079 ++#: ../sepolicy/sepolicy/sepolicy.glade:2080 + msgid "Show mislabeled files only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2119 +-#: ../sepolicy/sepolicy/sepolicy.glade:3243 ++#: ../sepolicy/sepolicy/sepolicy.glade:2120 ++#: ../sepolicy/sepolicy/sepolicy.glade:3244 + msgid "" +-"If-Then-Else rules written in policy that can \n" ++"If-Then-Else rules written in policy that can\n" + "allow alternative access control." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2131 ++#: ../sepolicy/sepolicy/sepolicy.glade:2132 + msgid "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2251 +-#: ../sepolicy/sepolicy/sepolicy.glade:2363 +-#: ../sepolicy/sepolicy/sepolicy.glade:2481 +-#: ../sepolicy/sepolicy/sepolicy.glade:4512 +-#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:2252 ++#: ../sepolicy/sepolicy/sepolicy.glade:2364 ++#: ../sepolicy/sepolicy/sepolicy.glade:2482 ++#: ../sepolicy/sepolicy/sepolicy.glade:4473 ++#: ../sepolicy/sepolicy/sepolicy.glade:4768 + msgid "File Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2287 +-#: ../sepolicy/sepolicy/sepolicy.glade:2398 ++#: ../sepolicy/sepolicy/sepolicy.glade:2288 ++#: ../sepolicy/sepolicy/sepolicy.glade:2399 + msgid "SELinux File Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2331 ++#: ../sepolicy/sepolicy/sepolicy.glade:2332 + msgid "File path used to enter the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2332 ++#: ../sepolicy/sepolicy/sepolicy.glade:2333 + msgid "Executable Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2447 ++#: ../sepolicy/sepolicy/sepolicy.glade:2448 + msgid "Files to which the 'selected domain' can write." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2448 ++#: ../sepolicy/sepolicy/sepolicy.glade:2449 + msgid "Writable files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2570 ++#: ../sepolicy/sepolicy/sepolicy.glade:2571 + msgid "File Types defined for the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2571 ++#: ../sepolicy/sepolicy/sepolicy.glade:2572 + msgid "Application File Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2703 ++#: ../sepolicy/sepolicy/sepolicy.glade:2704 + msgid "Network Ports to which the 'selected domain' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2704 ++#: ../sepolicy/sepolicy/sepolicy.glade:2705 + msgid "Outbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2803 ++#: ../sepolicy/sepolicy/sepolicy.glade:2804 + msgid "Network Ports to which the 'selected domain' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2804 ++#: ../sepolicy/sepolicy/sepolicy.glade:2805 + msgid "Inbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2865 ++#: ../sepolicy/sepolicy/sepolicy.glade:2866 ++#: ../sepolicy/sepolicy/sepolicy.glade:2956 + msgid "" +-"Boolean \n" ++"Boolean\n" + "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2891 ++#: ../sepolicy/sepolicy/sepolicy.glade:2892 + msgid "Boolean name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2908 ++#: ../sepolicy/sepolicy/sepolicy.glade:2909 + msgid "SELinux Application Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2929 ++#: ../sepolicy/sepolicy/sepolicy.glade:2930 + msgid "" + "Executables which will transition to a different domain, when the 'selected " + "domain' executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2932 +-msgid "Applicaton Transitions From 'select domain'" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:2955 +-msgid "" +-"Boolean\n" +-"Enabled" ++#: ../sepolicy/sepolicy/sepolicy.glade:2933 ++msgid "Application Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2971 ++#: ../sepolicy/sepolicy/sepolicy.glade:2972 + msgid "Calling Process Domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2987 ++#: ../sepolicy/sepolicy/sepolicy.glade:2988 + msgid "Executable File" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3011 ++#: ../sepolicy/sepolicy/sepolicy.glade:3012 msgid "" -"Executables which will transition to the 'selected domain', when executing a " -"selected domains entrypoint." @@ -6458,10 +27313,160 @@ index bcc3f8e..7e68aa6 100644 +" selected domains entrypoint." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3013 -@@ -4437,8 +4442,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:3012 ++#: ../sepolicy/sepolicy/sepolicy.glade:3013 + msgid "Application Transitions Into 'select domain'" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3957 +-#: ../sepolicy/sepolicy/sepolicy.glade:3027 ++#: ../sepolicy/sepolicy/sepolicy.glade:3028 + msgid "" + "File Transitions define what happens when the current domain creates the " + "content of a particular class in a directory of the destination type. " + "Optionally a file name could be specified for the transition." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3035 ++#: ../sepolicy/sepolicy/sepolicy.glade:3036 + msgid "SELinux Directory Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3048 ++#: ../sepolicy/sepolicy/sepolicy.glade:3049 + msgid "Destination Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3062 ++#: ../sepolicy/sepolicy/sepolicy.glade:3063 + msgid "SELinux Destination Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3075 ++#: ../sepolicy/sepolicy/sepolicy.glade:3076 + msgid "File Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3097 ++#: ../sepolicy/sepolicy/sepolicy.glade:3098 + msgid "File Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3296 +-#: ../sepolicy/sepolicy/sepolicy.glade:5277 +-#: ../sepolicy/sepolicy/sepolicy.glade:5518 ++#: ../sepolicy/sepolicy/sepolicy.glade:3297 ++#: ../sepolicy/sepolicy/sepolicy.glade:5508 + msgid "Default Level" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3382 ++#: ../sepolicy/sepolicy/sepolicy.glade:3383 + msgid "Select the system mode when the system first boots up" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3455 ++#: ../sepolicy/sepolicy/sepolicy.glade:3456 + msgid "Select the system mode for the current session" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3532 ++#: ../sepolicy/sepolicy/sepolicy.glade:3533 + msgid "System Policy Type:" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3593 ++#: ../sepolicy/sepolicy/sepolicy.glade:3594 + msgid "System Mode" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3631 ++#: ../sepolicy/sepolicy/sepolicy.glade:3632 + msgid "Import system settings from another machine" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3639 ++#: ../sepolicy/sepolicy/sepolicy.glade:3640 + msgid "Import" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3658 ++#: ../sepolicy/sepolicy/sepolicy.glade:3659 + msgid "Export system settings to a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3668 ++#: ../sepolicy/sepolicy/sepolicy.glade:3669 + msgid "Export" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3687 ++#: ../sepolicy/sepolicy/sepolicy.glade:3688 + msgid "Relabel all files back to system defaults on reboot" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3724 +-#: ../sepolicy/sepolicy/sepolicy.glade:3825 +-#: ../sepolicy/sepolicy/sepolicy.glade:3889 +-#: ../sepolicy/sepolicy/sepolicy.glade:3952 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3725 ++#: ../sepolicy/sepolicy/sepolicy.glade:3826 ++#: ../sepolicy/sepolicy/sepolicy.glade:3890 ++#: ../sepolicy/sepolicy/sepolicy.glade:3953 ../sepolicy/sepolicy/gui.py:64 + msgid "Yes" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3741 +-#: ../sepolicy/sepolicy/sepolicy.glade:3843 +-#: ../sepolicy/sepolicy/sepolicy.glade:3906 +-#: ../sepolicy/sepolicy/sepolicy.glade:3969 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3742 ++#: ../sepolicy/sepolicy/sepolicy.glade:3844 ++#: ../sepolicy/sepolicy/sepolicy.glade:3907 ++#: ../sepolicy/sepolicy/sepolicy.glade:3970 ../sepolicy/sepolicy/gui.py:64 + msgid "No" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3782 ++#: ../sepolicy/sepolicy/sepolicy.glade:3783 + msgid "System Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3829 +-#: ../sepolicy/sepolicy/sepolicy.glade:3847 ++#: ../sepolicy/sepolicy/sepolicy.glade:3830 ++#: ../sepolicy/sepolicy/sepolicy.glade:3848 + msgid "" + "An unconfined domain is a process label that allows the process to do what " + "it wants, without SELinux interfering. Applications started at boot by the " +@@ -4368,13 +4421,13 @@ msgid "" + "unconfined_t from the users/login screens." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3865 ++#: ../sepolicy/sepolicy/sepolicy.glade:3866 + msgid "Disable ability to run unconfined system processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3893 +-#: ../sepolicy/sepolicy/sepolicy.glade:3910 +-#: ../sepolicy/sepolicy/sepolicy.glade:3973 ++#: ../sepolicy/sepolicy/sepolicy.glade:3894 ++#: ../sepolicy/sepolicy/sepolicy.glade:3911 ++#: ../sepolicy/sepolicy/sepolicy.glade:3974 + msgid "" + "An permissive domain is a process label that allows the process to do what " + "it wants, with SELinux only logging the denials, but not enforcing them. " +@@ -4383,184 +4436,202 @@ msgid "" + "allowed." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3928 ++#: ../sepolicy/sepolicy/sepolicy.glade:3929 + msgid "Disable all permissive processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3956 ++#: ../sepolicy/sepolicy/sepolicy.glade:3957 msgid "" -"A permissive domain is a process label that allows the process to do what it " -"wants, with SELinux only logging the denials, but not enforcing them. " @@ -6470,9 +27475,47 @@ index bcc3f8e..7e68aa6 100644 "Usually permissive domains indicate experimental policy, disabling the " "module could cause SELinux to deny access to a domain, that should be " "allowed." -@@ -4476,8 +4481,8 @@ msgstr "" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4214 +-#: ../sepolicy/sepolicy/sepolicy.glade:3994 ++#: ../sepolicy/sepolicy/sepolicy.glade:3995 + msgid "Deny all processes from ptracing or debugging other processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4031 ++#: ../sepolicy/sepolicy/sepolicy.glade:4032 + msgid "" + "File equivalence cause the system to label content under the new path as if " + "it were under the equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4087 ++#: ../sepolicy/sepolicy/sepolicy.glade:4088 + msgid "Files Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4100 ++#: ../sepolicy/sepolicy/sepolicy.glade:4101 + msgid "...SELECT TO VIEW DATA..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4131 ++#: ../sepolicy/sepolicy/sepolicy.glade:4132 + msgid "Delete" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4147 ++#: ../sepolicy/sepolicy/sepolicy.glade:4148 + msgid "Modify" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4208 ++#: ../sepolicy/sepolicy/sepolicy.glade:4209 + msgid "Revert" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4213 ++#: ../sepolicy/sepolicy/sepolicy.glade:4214 msgid "" -"Revert button will launch a dialog window which allows you to revert changes " -"within the current transaction." @@ -6480,10 +27523,44 @@ index bcc3f8e..7e68aa6 100644 +" within the current transaction." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 -@@ -4507,8 +4512,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:4225 ../sepolicy/sepolicy/gui.py:2379 ++#: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 + msgid "Update" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4439 +-#: ../sepolicy/sepolicy/sepolicy.glade:4230 ++#: ../sepolicy/sepolicy/sepolicy.glade:4231 + msgid "Commit all changes in your current transaction to the server." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4278 ++#: ../sepolicy/sepolicy/sepolicy.glade:4279 + msgid "Applications - Advanced Search" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4331 +-msgid "Installed" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:4383 ++#: ../sepolicy/sepolicy/sepolicy.glade:4344 + msgid "Process Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4424 ++#: ../sepolicy/sepolicy/sepolicy.glade:4385 + msgid "More Details" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4460 +-#: ../sepolicy/sepolicy/sepolicy.glade:4754 ++#: ../sepolicy/sepolicy/sepolicy.glade:4421 ++#: ../sepolicy/sepolicy/sepolicy.glade:4715 + msgid "Delete Modified File Labeling" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4478 ++#: ../sepolicy/sepolicy/sepolicy.glade:4439 msgid "" -"Select file labeling to delete. File labeling will be deleted when update is " -"applied." @@ -6491,57 +27568,514 @@ index bcc3f8e..7e68aa6 100644 +" applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4486 -@@ -4544,8 +4549,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/sepolicy.glade:4867 - msgid "" --"Select login user mapping to delete. Login user mapping will be deleted when " --"update is applied." -+"Select login user mapping to delete. Login user mapping will be deleted when" -+" update is applied." +-#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4486 + msgid "SELinux File Label" msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4902 -@@ -4848,20 +4853,22 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1366 +-#: ../sepolicy/sepolicy/sepolicy.glade:4564 +-#: ../sepolicy/sepolicy/sepolicy.glade:4714 +-#: ../sepolicy/sepolicy/sepolicy.glade:4844 ++#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4675 ++#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:4940 ++#: ../sepolicy/sepolicy/sepolicy.glade:5289 + msgid "Save to Update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4604 ++#: ../sepolicy/sepolicy/sepolicy.glade:4565 + msgid "Delete Modified Ports" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4622 ++#: ../sepolicy/sepolicy/sepolicy.glade:4583 + msgid "Select ports to delete. Ports will be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4771 ++#: ../sepolicy/sepolicy/sepolicy.glade:4733 + msgid "" +-"Select file equivalence labeling to delete.File equivalence labeling will be " +-"deleted when update is applied." ++"Select file equivalence labeling to delete. File equivalence labeling will " ++"be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4887 ++#: ../sepolicy/sepolicy/sepolicy.glade:4849 ++#: ../sepolicy/sepolicy/sepolicy.glade:5198 ++msgid "Delete Modified Users Mapping." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4867 ++msgid "" ++"Select login user mapping to delete. Login user mapping will be deleted when" ++" update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4902 ++msgid "Login name" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4983 + msgid "More Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4914 ++#: ../sepolicy/sepolicy/sepolicy.glade:5010 + msgid "Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4973 ++#: ../sepolicy/sepolicy/sepolicy.glade:5069 + msgid "" + "Review the updates you have made before committing them to the system. To " + "reset an item, uncheck the checkbox. All items checked will be updated in " + "the system when you select update." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5036 ++#: ../sepolicy/sepolicy/sepolicy.glade:5132 + msgid "Action" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5062 ++#: ../sepolicy/sepolicy/sepolicy.glade:5158 + msgid "Apply" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5119 +-#: ../sepolicy/sepolicy/sepolicy.glade:5360 ++#: ../sepolicy/sepolicy/sepolicy.glade:5216 ++msgid "" ++"Select users mapping to delete.Users mapping will be deleted when update is " ++"applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5264 ++msgid "SELinux Username" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5349 + msgid "" + "Add User Roles. SELinux User Roles will be created when Update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5144 +-#: ../sepolicy/sepolicy/sepolicy.glade:5385 ++#: ../sepolicy/sepolicy/sepolicy.glade:5374 + msgid "SELinux User Name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5258 +-#: ../sepolicy/sepolicy/sepolicy.glade:5499 ++#: ../sepolicy/sepolicy/sepolicy.glade:5489 + msgid "" + "Enter MLS/MCS Range for this SELinux User.\n" + "s0-s0:c1023" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5289 +-#: ../sepolicy/sepolicy/sepolicy.glade:5530 ++#: ../sepolicy/sepolicy/sepolicy.glade:5520 + msgid "" + "Specify the default level that you would like this SELinux user to login " + "with. Defaults to s0." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5293 +-#: ../sepolicy/sepolicy/sepolicy.glade:5534 ++#: ../sepolicy/sepolicy/sepolicy.glade:5524 + msgid "Enter Default Level for SELinux User to login with. Default s0" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Disable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Enable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:92 ++#: ../sepolicy/sepolicy/gui.py:94 + msgid "" + "\n" + "To change from Disabled to Enforcing mode\n" +@@ -4570,512 +4641,542 @@ msgid "" + " * Change the system mode to Enforcing\n" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:115 ++#: ../sepolicy/sepolicy/gui.py:488 + #, python-format + msgid "%s is not a valid domain" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:624 ++#: ../sepolicy/sepolicy/gui.py:636 + msgid "System Status: Disabled" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:722 ++#: ../sepolicy/sepolicy/gui.py:734 + msgid "Help: Start Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:726 ++#: ../sepolicy/sepolicy/gui.py:738 + msgid "Help: Booleans Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:732 ++#: ../sepolicy/sepolicy/gui.py:744 + msgid "Help: Executable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:735 ++#: ../sepolicy/sepolicy/gui.py:747 + msgid "Help: Writable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:738 ++#: ../sepolicy/sepolicy/gui.py:750 + msgid "Help: Application Types Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:743 ++#: ../sepolicy/sepolicy/gui.py:755 + msgid "Help: Outbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:746 ++#: ../sepolicy/sepolicy/gui.py:758 + msgid "Help: Inbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:752 ++#: ../sepolicy/sepolicy/gui.py:764 + msgid "Help: Transition from application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:755 ++#: ../sepolicy/sepolicy/gui.py:767 + msgid "Help: Transition into application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:758 ++#: ../sepolicy/sepolicy/gui.py:770 + msgid "Help: Transition application file Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:762 ++#: ../sepolicy/sepolicy/gui.py:774 + msgid "Help: Systems Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:766 ++#: ../sepolicy/sepolicy/gui.py:778 + msgid "Help: Lockdown Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:770 ++#: ../sepolicy/sepolicy/gui.py:782 + msgid "Help: Login Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:774 ++#: ../sepolicy/sepolicy/gui.py:786 + msgid "Help: SELinux User Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:778 ++#: ../sepolicy/sepolicy/gui.py:790 + msgid "Help: File Equivalence Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:922 ../sepolicy/sepolicy/gui.py:1211 +-#: ../sepolicy/sepolicy/gui.py:1644 ../sepolicy/sepolicy/gui.py:1885 +-#: ../sepolicy/sepolicy/gui.py:2698 ++#: ../sepolicy/sepolicy/gui.py:936 ../sepolicy/sepolicy/gui.py:1227 ++#: ../sepolicy/sepolicy/gui.py:1667 ../sepolicy/sepolicy/gui.py:1913 ++#: ../sepolicy/sepolicy/gui.py:2692 + msgid "More..." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1031 ++#: ../sepolicy/sepolicy/gui.py:1044 + #, python-format + msgid "File path used to enter the '%s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1032 ++#: ../sepolicy/sepolicy/gui.py:1045 + #, python-format + msgid "Files to which the '%s' domain can write." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1033 ++#: ../sepolicy/sepolicy/gui.py:1046 + #, python-format + msgid "Network Ports to which the '%s' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1034 ++#: ../sepolicy/sepolicy/gui.py:1047 + #, python-format + msgid "Network Ports to which the '%s' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1035 ++#: ../sepolicy/sepolicy/gui.py:1048 + #, python-format + msgid "File Types defined for the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1036 ++#: ../sepolicy/sepolicy/gui.py:1049 #, python-format msgid "" --"Add new port definition to which the '%(APP)s' domain is allowed to %(PERM)s." + "Display boolean information that can be used to modify the policy for the " + "'%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1037 ++#: ../sepolicy/sepolicy/gui.py:1050 + #, python-format + msgid "Display file type information that can be used by the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1038 ++#: ../sepolicy/sepolicy/gui.py:1051 + #, python-format + msgid "Display network ports to which the '%s' can connect or listen to." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1039 ++#: ../sepolicy/sepolicy/gui.py:1052 + #, python-format + msgid "Application Transitions Into '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1040 ++#: ../sepolicy/sepolicy/gui.py:1053 + #, python-format + msgid "Application Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1041 ++#: ../sepolicy/sepolicy/gui.py:1054 + #, python-format + msgid "File Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1042 ++#: ../sepolicy/sepolicy/gui.py:1055 + #, python-format + msgid "" + "Executables which will transition to the '%s', when executing a selected " + "domains entrypoint." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1043 ++#: ../sepolicy/sepolicy/gui.py:1056 + #, python-format + msgid "" + "Executables which will transition to a different domain, when the '%s' " + "executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1044 ++#: ../sepolicy/sepolicy/gui.py:1057 + #, python-format + msgid "Files by '%s' will transitions to a different label." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1045 ++#: ../sepolicy/sepolicy/gui.py:1058 + #, python-format + msgid "Display applications that can transition into or out of the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1149 ++#: ../sepolicy/sepolicy/gui.py:1166 + msgid "MISSING FILE PATH" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1281 ../sepolicy/sepolicy/gui.py:1283 + msgid "Boolean section." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ++#: ../sepolicy/sepolicy/gui.py:1281 + msgid "To disable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1283 + msgid "To enable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1324 ++#: ../sepolicy/sepolicy/gui.py:1340 + msgid "executable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1327 ++#: ../sepolicy/sepolicy/gui.py:1343 + msgid "writable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1330 ++#: ../sepolicy/sepolicy/gui.py:1346 + msgid "application" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1331 ++#: ../sepolicy/sepolicy/gui.py:1347 + #, python-format +-msgid "Add new %s file path for '%s' domains." ++msgid "Add new %(TYPE)s file path for '%(DOMAIN)s' domains." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1332 ++#: ../sepolicy/sepolicy/gui.py:1348 + #, python-format +-msgid "Delete modified %s file paths for '%s' domain." ++msgid "Delete %(TYPE)s file paths for '%(DOMAIN)s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1333 ++#: ../sepolicy/sepolicy/gui.py:1349 + #, python-format + msgid "" +-"Modify selected modified %s file path for '%s' domain. Only bolded items in " +-"the list can be selected, this indicates they were modified previously." ++"Modify %(TYPE)s file path for '%(DOMAIN)s' domain. Only bolded items in the " ++"list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1345 ++#: ../sepolicy/sepolicy/gui.py:1361 + msgid "connect" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1348 ++#: ../sepolicy/sepolicy/gui.py:1364 + msgid "listen for inbound connections" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1350 ++#: ../sepolicy/sepolicy/gui.py:1366 + #, python-format +-msgid "Add new port definition to which the '%s' domains is allowed to %s." ++msgid "" +"Add new port definition to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1367 +-#: ../sepolicy/sepolicy/gui.py:1351 ++#: ../sepolicy/sepolicy/gui.py:1367 #, python-format msgid "" --"Delete modified port definitions to which the '%(APP)s' domain is allowed to " --"%(PERM)s." +-"Delete modified port definitions to which the '%s' domain is allowed to %s." +"Delete modified port definitions to which the '%(APP)s' domain is allowed to" +" %(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1368 +-#: ../sepolicy/sepolicy/gui.py:1352 ++#: ../sepolicy/sepolicy/gui.py:1368 #, python-format - msgid "" --"Modify port definitions to which the '%(APP)s' domain is allowed to %(PERM)s." +-msgid "Modify port definitions to which the '%s' domain is allowed to %s." ++msgid "" +"Modify port definitions to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1397 -@@ -4909,7 +4916,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1381 ++#: ../sepolicy/sepolicy/gui.py:1397 + msgid "Add new SELinux User/Role definition." + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1458 +-#: ../sepolicy/sepolicy/gui.py:1382 ++#: ../sepolicy/sepolicy/gui.py:1398 + msgid "Delete modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1383 ++#: ../sepolicy/sepolicy/gui.py:1399 + msgid "Modify selected modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1390 ++#: ../sepolicy/sepolicy/gui.py:1406 + msgid "Add new Login Mapping definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1391 ++#: ../sepolicy/sepolicy/gui.py:1407 + msgid "Delete modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1392 ++#: ../sepolicy/sepolicy/gui.py:1408 + msgid "Modify selected modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1399 ++#: ../sepolicy/sepolicy/gui.py:1415 + msgid "Add new File Equivalence definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1400 ++#: ../sepolicy/sepolicy/gui.py:1416 + msgid "Delete modified File Equivalence definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1401 ++#: ../sepolicy/sepolicy/gui.py:1417 + msgid "" + "Modify selected modified File Equivalence definitions. Only bolded items in " + "the list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1429 ++#: ../sepolicy/sepolicy/gui.py:1445 + #, python-format + msgid "Boolean %s Allow Rules" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1442 ++#: ../sepolicy/sepolicy/gui.py:1458 #, python-format -msgid "Add Network Port for %s. Ports will be created when update is applied." +msgid "" +"Add Network Port for %s. Ports will be created when update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1459 -@@ -4920,7 +4928,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1464 +-#: ../sepolicy/sepolicy/gui.py:1443 ++#: ../sepolicy/sepolicy/gui.py:1459 + #, python-format + msgid "Add Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1448 ++#: ../sepolicy/sepolicy/gui.py:1464 #, python-format msgid "" -"Add File Labeling for %s. File labels will be created when update is applied." @@ -6549,40 +28083,312 @@ index bcc3f8e..7e68aa6 100644 +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 -@@ -4929,7 +4938,8 @@ msgid "Add File Labeling for %s" +-#: ../sepolicy/sepolicy/gui.py:1449 ../sepolicy/sepolicy/gui.py:1500 ++#: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 + #, python-format + msgid "Add File Labeling for %s" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1475 +-#: ../sepolicy/sepolicy/gui.py:1459 -msgid "Add Login Mapping. User Mapping will be created when Update is applied." ++#: ../sepolicy/sepolicy/gui.py:1475 +msgid "" +"Add Login Mapping. User Mapping will be created when Update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1476 -@@ -4948,7 +4958,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1460 ++#: ../sepolicy/sepolicy/gui.py:1476 + msgid "Add Login Mapping" + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1489 +-#: ../sepolicy/sepolicy/gui.py:1465 ++#: ../sepolicy/sepolicy/gui.py:1481 + msgid "" + "Add SELinux User Role. SELinux user roles will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1466 ++#: ../sepolicy/sepolicy/gui.py:1482 + msgid "Add SELinux Users" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1473 ++#: ../sepolicy/sepolicy/gui.py:1489 msgid "" -"Add File Equivalency Mapping. Mapping will be created when update is applied." +"Add File Equivalency Mapping. Mapping will be created when update is " +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1490 -@@ -4964,8 +4975,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/gui.py:1573 - msgid "" --"Modify SELinux User Role. SELinux user roles will be modified when update is " --"applied." -+"Modify SELinux User Role. SELinux user roles will be modified when update is" -+" applied." +-#: ../sepolicy/sepolicy/gui.py:1474 ++#: ../sepolicy/sepolicy/gui.py:1490 + msgid "Add SELinux File Equivalency" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1574 -@@ -5178,10 +5189,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:1499 ++#: ../sepolicy/sepolicy/gui.py:1517 + #, python-format + msgid "" + "Modify File Labeling for %s. File labels will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1566 ++#: ../sepolicy/sepolicy/gui.py:1573 ++msgid "" ++"Modify SELinux User Role. SELinux user roles will be modified when update is" ++" applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1574 ++msgid "Modify SELinux Users" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1582 ++msgid "" ++"Modify Login Mapping. Login Mapping will be modified when Update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1583 ++msgid "Modify Login Mapping" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1589 + msgid "" + "Modify File Equivalency Mapping. Mapping will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1567 ++#: ../sepolicy/sepolicy/gui.py:1590 + msgid "Modify SELinux File Equivalency" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1652 ++#: ../sepolicy/sepolicy/gui.py:1675 + #, python-format + msgid "" + "Modify Network Port for %s. Ports will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1653 ++#: ../sepolicy/sepolicy/gui.py:1676 + #, python-format + msgid "Modify Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1866 ++#: ../sepolicy/sepolicy/gui.py:1894 + #, python-format + msgid "The entry '%s' is not a valid path. Paths must begin with a '/'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1879 ++#: ../sepolicy/sepolicy/gui.py:1907 + msgid "Port number must be between 1 and 65536" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2146 ++#: ../sepolicy/sepolicy/gui.py:2183 + #, python-format + msgid "SELinux name: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2157 ++#: ../sepolicy/sepolicy/gui.py:2194 + #, python-format + msgid "Add file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2159 ++#: ../sepolicy/sepolicy/gui.py:2196 + #, python-format + msgid "Delete file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2161 ++#: ../sepolicy/sepolicy/gui.py:2198 + #, python-format + msgid "Modify file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2165 ++#: ../sepolicy/sepolicy/gui.py:2202 + #, python-format + msgid "File path: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2168 ++#: ../sepolicy/sepolicy/gui.py:2205 + #, python-format + msgid "File class: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2171 ../sepolicy/sepolicy/gui.py:2195 ++#: ../sepolicy/sepolicy/gui.py:2208 ../sepolicy/sepolicy/gui.py:2232 + #, python-format + msgid "SELinux file type: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2180 ++#: ../sepolicy/sepolicy/gui.py:2217 + #, python-format + msgid "Add ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2182 ++#: ../sepolicy/sepolicy/gui.py:2219 + #, python-format + msgid "Delete ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2184 ++#: ../sepolicy/sepolicy/gui.py:2221 + #, python-format + msgid "Modify ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2187 ++#: ../sepolicy/sepolicy/gui.py:2224 + #, python-format + msgid "Network ports: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2190 ++#: ../sepolicy/sepolicy/gui.py:2227 + #, python-format + msgid "Network protocol: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2204 ++#: ../sepolicy/sepolicy/gui.py:2241 + msgid "Add user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2206 ++#: ../sepolicy/sepolicy/gui.py:2243 + msgid "Delete user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2208 ++#: ../sepolicy/sepolicy/gui.py:2245 + msgid "Modify user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2211 ++#: ../sepolicy/sepolicy/gui.py:2248 + #, python-format + msgid "SELinux User : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2216 ++#: ../sepolicy/sepolicy/gui.py:2253 + #, python-format + msgid "Roles: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2220 ../sepolicy/sepolicy/gui.py:2245 ++#: ../sepolicy/sepolicy/gui.py:2257 ../sepolicy/sepolicy/gui.py:2282 + #, python-format + msgid "MLS/MCS Range: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2229 ++#: ../sepolicy/sepolicy/gui.py:2266 + msgid "Add login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2231 ++#: ../sepolicy/sepolicy/gui.py:2268 + msgid "Delete login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2233 ++#: ../sepolicy/sepolicy/gui.py:2270 + msgid "Modify login mapping" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2237 ++#: ../sepolicy/sepolicy/gui.py:2274 + #, python-format +-msgid "Linux User : %s" ++msgid "Login Name : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2241 ++#: ../sepolicy/sepolicy/gui.py:2278 + #, python-format + msgid "SELinux User: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2254 ++#: ../sepolicy/sepolicy/gui.py:2291 + msgid "Add file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2256 ++#: ../sepolicy/sepolicy/gui.py:2293 + msgid "Delete file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2258 ++#: ../sepolicy/sepolicy/gui.py:2295 + msgid "Modify file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2262 ++#: ../sepolicy/sepolicy/gui.py:2299 + #, python-format + msgid "File path : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2266 ++#: ../sepolicy/sepolicy/gui.py:2303 + #, python-format + msgid "Equivalence: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2369 ++#: ../sepolicy/sepolicy/gui.py:2406 + #, python-format +-msgid "Run restorecon on %s to change its type from %s to the default %s?" ++msgid "" ++"Run restorecon on %(PATH)s to change its type from %(CUR_CONTEXT)s to the " ++"default %(DEF_CONTEXT)s?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2381 ++#: ../sepolicy/sepolicy/gui.py:2418 + msgid "Update Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2383 ++#: ../sepolicy/sepolicy/gui.py:2420 + msgid "Revert Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2556 ++#: ../sepolicy/sepolicy/gui.py:2547 + msgid "System Status: Enforcing" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2558 ++#: ../sepolicy/sepolicy/gui.py:2549 + msgid "System Status: Permissive" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2749 ++#: ../sepolicy/sepolicy/gui.py:2743 + msgid "" + "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 " +@@ -5085,15 +5186,13 @@ msgid "" + "wish to continue?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 msgid "" "You are attempting to close the application without applying your changes.\n" -" * To apply changes you have made during this session, click No and " @@ -6593,9 +28399,12 @@ index bcc3f8e..7e68aa6 100644 +" * To leave the application without applying your changes, click Yes. All changes that you have made during this session will be lost." msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 + msgid "Loss of data Dialog" + msgstr "" diff --git a/policycoreutils/po/ar.po b/policycoreutils/po/ar.po -index 6e400ae..6eaa817 100644 +index b03fb78..6eaa817 100644 --- a/policycoreutils/po/ar.po +++ b/policycoreutils/po/ar.po @@ -1,7 +1,7 @@ @@ -6607,15 +28416,16 @@ index 6e400ae..6eaa817 100644 # Translators: # Ali Al-Ammari , 2010 # Amjad Al-Obaili , 2010 -@@ -13,26 +13,21 @@ msgstr "" +@@ -12,26 +12,22 @@ msgid "" + msgstr "" "Project-Id-Version: Policycoreutils\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2014-01-03 16:04-0500\n" --"PO-Revision-Date: 2013-12-20 13:58+0000\n" +-"POT-Creation-Date: 2013-10-10 16:04-0400\n" +-"PO-Revision-Date: 2013-07-10 20:44+0000\n" ++"POT-Creation-Date: 2014-01-03 16:04-0500\n" +"PO-Revision-Date: 2014-01-03 21:04+0000\n" "Last-Translator: dwalsh \n" --"Language-Team: Arabic (http://www.transifex.com/projects/p/fedora/language/" --"ar/)\n" +-"Language-Team: Arabic \n" -"Language: ar\n" +"Language-Team: Arabic (http://www.transifex.com/projects/p/fedora/language/ar/)\n" "MIME-Version: 1.0\n" @@ -6639,19 +28449,1346 @@ index 6e400ae..6eaa817 100644 #: ../run_init/run_init.c:126 ../newrole/newrole.c:1128 #, c-format -@@ -356,9 +351,9 @@ msgid "Could not set MLS level for %s" - msgstr "لا يمكن ضبط مستوى MLS لـ %s" +@@ -95,96 +91,101 @@ msgstr "******************** مهم ***********************\n" + msgid "To make this policy package active, execute:" + msgstr "لتفعيل حزمة السياسات هذه، نفذ:" - #: ../semanage/seobject/__init__.py:805 --#, fuzzy, python-format +-#: ../semanage/seobject.py:210 ++#: ../semanage/seobject/__init__.py:220 + msgid "Could not create semanage handle" + msgstr "لا يمكن إنشاء معالج semanage" + +-#: ../semanage/seobject.py:218 ++#: ../semanage/seobject/__init__.py:228 + msgid "SELinux policy is not managed or store cannot be accessed." + msgstr "سياسة SELinux غير مُدارة أو لا يمكن الوصول إلى المخزن." + +-#: ../semanage/seobject.py:223 ++#: ../semanage/seobject/__init__.py:233 + msgid "Cannot read policy store." + msgstr "لا يمكن قراءة مخزن السياسات." + +-#: ../semanage/seobject.py:228 ++#: ../semanage/seobject/__init__.py:238 + msgid "Could not establish semanage connection" + msgstr "لا يمكن إنشاء اتصال semanage" + +-#: ../semanage/seobject.py:233 ++#: ../semanage/seobject/__init__.py:243 + msgid "Could not test MLS enabled status" + msgstr "لا يمكن اختبار حالة تفعيل MLS" + +-#: ../semanage/seobject.py:239 ../semanage/seobject.py:254 ++#: ../semanage/seobject/__init__.py:249 ../semanage/seobject/__init__.py:264 + msgid "Not yet implemented" + msgstr "غير مطبقة بعد" + +-#: ../semanage/seobject.py:243 ++#: ../semanage/seobject/__init__.py:253 + msgid "Semanage transaction already in progress" + msgstr "عملية semanage تحت التنفيذ" + +-#: ../semanage/seobject.py:252 ++#: ../semanage/seobject/__init__.py:262 + msgid "Could not start semanage transaction" + msgstr "لا يمكن بدء عملية semanage" + +-#: ../semanage/seobject.py:264 ++#: ../semanage/seobject/__init__.py:274 + msgid "Could not commit semanage transaction" + msgstr "لا يمكن تنفيذ عملية semanage" + +-#: ../semanage/seobject.py:269 ++#: ../semanage/seobject/__init__.py:279 + msgid "Semanage transaction not in progress" + msgstr "عملية semanage ليست تحت التنفيذ" + +-#: ../semanage/seobject.py:281 ../semanage/seobject.py:376 ++#: ../semanage/seobject/__init__.py:291 ../semanage/seobject/__init__.py:386 + msgid "Could not list SELinux modules" + msgstr "لا يمكن عرض قائمة وحدات SELinux" + +-#: ../semanage/seobject.py:300 ++#: ../semanage/seobject/__init__.py:310 + msgid "Modules Name" + msgstr "اسم الوحدة" + +-#: ../semanage/seobject.py:300 ../gui/modulesPage.py:63 ++#: ../semanage/seobject/__init__.py:310 ../gui/modulesPage.py:63 + msgid "Version" + msgstr "إصدار" + +-#: ../semanage/seobject.py:303 ../gui/statusPage.py:75 +-#: ../sepolicy/sepolicy/sepolicy.glade:3430 ++#: ../semanage/seobject/__init__.py:313 ../gui/statusPage.py:71 ++#: ../sepolicy/sepolicy/sepolicy.glade:3431 + msgid "Disabled" + msgstr "معطّل" + +-#: ../semanage/seobject.py:312 ++#: ../semanage/seobject/__init__.py:322 + #, python-format + msgid "Module does not exists %s " + msgstr "" + +-#: ../semanage/seobject.py:322 ++#: ../semanage/seobject/__init__.py:332 + #, python-format + msgid "Could not disable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:333 ++#: ../semanage/seobject/__init__.py:343 + #, python-format + msgid "Could not enable module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:348 ++#: ../semanage/seobject/__init__.py:358 + #, python-format + msgid "Could not remove module %s (remove failed)" + msgstr "" + +-#: ../semanage/seobject.py:363 ++#: ../semanage/seobject/__init__.py:373 + msgid "dontaudit requires either 'on' or 'off'" + msgstr "" + +-#: ../semanage/seobject.py:391 ++#: ../semanage/seobject/__init__.py:402 ++msgid "Customized Permissive Types" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:410 + msgid "Builtin Permissive Types" + msgstr "" + +-#: ../semanage/seobject.py:401 +-msgid "Customized Permissive Types" ++#: ../semanage/seobject/__init__.py:419 +#, python-format - msgid "Could not add prefix %(PREFIX)s for %(ROLE)s" --msgstr "لا يمكن إضافة سياق ملف لـ %s" ++msgid "%s is not a domain type" + msgstr "" + +-#: ../semanage/seobject.py:410 ++#: ../semanage/seobject/__init__.py:424 + msgid "" + "The sepolgen python module is required to setup permissive domains.\n" + "In some distributions it is included in the policycoreutils-devel patckage.\n" +@@ -192,810 +193,825 @@ msgid "" + "Or similar for your distro." + msgstr "" + +-#: ../semanage/seobject.py:447 ++#: ../semanage/seobject/__init__.py:461 + #, python-format + msgid "Could not set permissive domain %s (module installation failed)" + msgstr "لا يمكن ضبط النطاق المتساهل %s (خطأ في تثبيت الوحدة)" + +-#: ../semanage/seobject.py:453 ++#: ../semanage/seobject/__init__.py:467 + #, python-format + msgid "Could not remove permissive domain %s (remove failed)" + msgstr "لا يمكن إزالة النطاق المتساهل %s (فشل في الإزالة)" + +-#: ../semanage/seobject.py:488 ../semanage/seobject.py:562 +-#: ../semanage/seobject.py:608 ../semanage/seobject.py:730 +-#: ../semanage/seobject.py:760 ../semanage/seobject.py:827 +-#: ../semanage/seobject.py:884 ../semanage/seobject.py:1144 +-#: ../semanage/seobject.py:1879 ../semanage/seobject.py:1942 +-#: ../semanage/seobject.py:1961 ../semanage/seobject.py:2084 +-#: ../semanage/seobject.py:2135 ++#: ../semanage/seobject/__init__.py:501 ../semanage/seobject/__init__.py:575 ++#: ../semanage/seobject/__init__.py:621 ../semanage/seobject/__init__.py:743 ++#: ../semanage/seobject/__init__.py:773 ../semanage/seobject/__init__.py:839 ++#: ../semanage/seobject/__init__.py:896 ../semanage/seobject/__init__.py:1156 ++#: ../semanage/seobject/__init__.py:1891 ../semanage/seobject/__init__.py:1954 ++#: ../semanage/seobject/__init__.py:1973 ../semanage/seobject/__init__.py:2096 ++#: ../semanage/seobject/__init__.py:2147 + #, python-format + msgid "Could not create a key for %s" + msgstr "لا يمكن إنشاء مفتاح لـ %s" + +-#: ../semanage/seobject.py:492 ../semanage/seobject.py:566 +-#: ../semanage/seobject.py:612 ../semanage/seobject.py:618 ++#: ../semanage/seobject/__init__.py:505 ../semanage/seobject/__init__.py:579 ++#: ../semanage/seobject/__init__.py:625 ../semanage/seobject/__init__.py:631 + #, python-format + msgid "Could not check if login mapping for %s is defined" + msgstr "لا يمكن التحقق في إذا ما كان مخطط الدخول لـ %s معرفا" + +-#: ../semanage/seobject.py:501 ++#: ../semanage/seobject/__init__.py:514 + #, python-format + msgid "Linux Group %s does not exist" + msgstr "مجموعة لينكس %s غير موجودة" + +-#: ../semanage/seobject.py:506 ++#: ../semanage/seobject/__init__.py:519 + #, python-format + msgid "Linux User %s does not exist" + msgstr "مستخدم لينكس %s غير موجود" + +-#: ../semanage/seobject.py:510 ++#: ../semanage/seobject/__init__.py:523 + #, python-format + msgid "Could not create login mapping for %s" + msgstr "لا يمكن إنشاء مخطط الدخول لـ %s" + +-#: ../semanage/seobject.py:514 ../semanage/seobject.py:775 ++#: ../semanage/seobject/__init__.py:527 ../semanage/seobject/__init__.py:788 + #, python-format + msgid "Could not set name for %s" + msgstr "لا يمكن ضبط اسم لـ %s" + +-#: ../semanage/seobject.py:519 ../semanage/seobject.py:785 ++#: ../semanage/seobject/__init__.py:532 ../semanage/seobject/__init__.py:798 + #, python-format + msgid "Could not set MLS range for %s" + msgstr "لا يمكن ضبط مدى MLS لـ %s" + +-#: ../semanage/seobject.py:523 ++#: ../semanage/seobject/__init__.py:536 + #, python-format + msgid "Could not set SELinux user for %s" + msgstr "لا يمكن ضبط مستخدم SELinux لـ %s" + +-#: ../semanage/seobject.py:527 ++#: ../semanage/seobject/__init__.py:540 + #, python-format + msgid "Could not add login mapping for %s" + msgstr "لا يمكن إضافة مخطط الدخول لـ %s" + +-#: ../semanage/seobject.py:545 ++#: ../semanage/seobject/__init__.py:558 + msgid "Requires seuser or serange" + msgstr "بحاجة إلى seuser أو serange" + +-#: ../semanage/seobject.py:568 ../semanage/seobject.py:614 ++#: ../semanage/seobject/__init__.py:581 ../semanage/seobject/__init__.py:627 + #, python-format + msgid "Login mapping for %s is not defined" + msgstr "مخطط الدخول لـ %s غير معرّف" + +-#: ../semanage/seobject.py:572 ++#: ../semanage/seobject/__init__.py:585 + #, python-format + msgid "Could not query seuser for %s" + msgstr "لا يمكن استعلام seuser لـ %s" + +-#: ../semanage/seobject.py:586 ++#: ../semanage/seobject/__init__.py:599 + #, python-format + msgid "Could not modify login mapping for %s" + msgstr "لا يمكن تغيير مخطط الدخول لـ %s" + +-#: ../semanage/seobject.py:620 ++#: ../semanage/seobject/__init__.py:633 + #, python-format + msgid "Login mapping for %s is defined in policy, cannot be deleted" + msgstr "تخطيط الدخول لـ %s معرف في السياسة، لا يمكن حذفه" + +-#: ../semanage/seobject.py:624 ++#: ../semanage/seobject/__init__.py:637 + #, python-format + msgid "Could not delete login mapping for %s" + msgstr "لا يمكن حذف تخطيط الدخول لـ %s" + +-#: ../semanage/seobject.py:646 ../semanage/seobject.py:679 +-#: ../semanage/seobject.py:927 ++#: ../semanage/seobject/__init__.py:659 ../semanage/seobject/__init__.py:692 ++#: ../semanage/seobject/__init__.py:939 + msgid "Could not list login mappings" + msgstr "لا يمكن عرض قائمة تخطيطات الدخول" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 + #: ../gui/system-config-selinux.glade:100 +-#: ../sepolicy/sepolicy/sepolicy.glade:1166 +-#: ../sepolicy/sepolicy/sepolicy.glade:3155 ++#: ../sepolicy/sepolicy/sepolicy.glade:1162 ++#: ../sepolicy/sepolicy/sepolicy.glade:3156 + msgid "Login Name" + msgstr "اسم الدخول" + +-#: ../semanage/seobject.py:707 ../semanage/seobject.py:719 +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 ++#: ../semanage/seobject/__init__.py:720 ../semanage/seobject/__init__.py:732 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 + #: ../gui/system-config-selinux.glade:128 + #: ../gui/system-config-selinux.glade:915 +-#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:44 +-#: ../sepolicy/sepolicy/sepolicy.glade:1192 +-#: ../sepolicy/sepolicy/sepolicy.glade:3173 +-#: ../sepolicy/sepolicy/sepolicy.glade:3259 ++#: ../gui/system-config-selinux.glade:2285 ../gui/usersPage.py:41 ++#: ../sepolicy/sepolicy/sepolicy.glade:1188 ++#: ../sepolicy/sepolicy/sepolicy.glade:3174 ++#: ../sepolicy/sepolicy/sepolicy.glade:3260 ++#: ../sepolicy/sepolicy/sepolicy.glade:4915 + msgid "SELinux User" + msgstr "مستخدم SELinux" + +-#: ../semanage/seobject.py:707 ../gui/system-config-selinux.glade:156 ++#: ../semanage/seobject/__init__.py:720 ../gui/system-config-selinux.glade:156 + #: ../gui/system-config-selinux.glade:943 + msgid "MLS/MCS Range" + msgstr "مدى MLS/MCS" + +-#: ../semanage/seobject.py:707 ++#: ../semanage/seobject/__init__.py:720 + msgid "Service" + msgstr "" + +-#: ../semanage/seobject.py:733 ../semanage/seobject.py:764 +-#: ../semanage/seobject.py:831 ../semanage/seobject.py:888 +-#: ../semanage/seobject.py:894 ++#: ../semanage/seobject/__init__.py:746 ../semanage/seobject/__init__.py:777 ++#: ../semanage/seobject/__init__.py:843 ../semanage/seobject/__init__.py:900 ++#: ../semanage/seobject/__init__.py:906 + #, python-format + msgid "Could not check if SELinux user %s is defined" + msgstr "لا يمكن التحقق من إذا كان مستخدم SELinux %s معرفا" + +-#: ../semanage/seobject.py:736 ../semanage/seobject.py:837 +-#: ../semanage/seobject.py:900 ++#: ../semanage/seobject/__init__.py:749 ../semanage/seobject/__init__.py:849 ++#: ../semanage/seobject/__init__.py:912 + #, python-format + msgid "Could not query user for %s" + msgstr "لا يمكن استعلام المستخدم عن %s" + +-#: ../semanage/seobject.py:756 ++#: ../semanage/seobject/__init__.py:769 + #, python-format + msgid "You must add at least one role for %s" + msgstr "يجب إضافة دور واحد على الأقل لـ %s" + +-#: ../semanage/seobject.py:771 ++#: ../semanage/seobject/__init__.py:784 + #, python-format + msgid "Could not create SELinux user for %s" + msgstr "لا يمكن إنشاء مستخدم SELinux لـ %s" + +-#: ../semanage/seobject.py:780 ++#: ../semanage/seobject/__init__.py:793 + #, python-format +-msgid "Could not add role %s for %s" +-msgstr "لا يمكن إضافة دور %s لـ %s" ++msgid "Could not add role %(ROLE)s for %(NAME)s" +msgstr "" - #: ../semanage/seobject/__init__.py:808 +-#: ../semanage/seobject.py:789 ++#: ../semanage/seobject/__init__.py:802 #, python-format -@@ -1594,8 +1589,8 @@ msgstr "" + msgid "Could not set MLS level for %s" + msgstr "لا يمكن ضبط مستوى MLS لـ %s" + +-#: ../semanage/seobject.py:792 ++#: ../semanage/seobject/__init__.py:805 + #, python-format +-msgid "Could not add prefix %s for %s" +-msgstr "لا يمكن إضافة البادئة %s لـ %s" ++msgid "Could not add prefix %(PREFIX)s for %(ROLE)s" ++msgstr "" + +-#: ../semanage/seobject.py:795 ++#: ../semanage/seobject/__init__.py:808 + #, python-format + msgid "Could not extract key for %s" + msgstr "لا يمكن استخراج مفتاح لـ %s" + +-#: ../semanage/seobject.py:799 ++#: ../semanage/seobject/__init__.py:812 + #, python-format + msgid "Could not add SELinux user %s" + msgstr "لا يمكن إضافة مستخدم SELinux %s" + +-#: ../semanage/seobject.py:821 ++#: ../semanage/seobject/__init__.py:833 + msgid "Requires prefix, roles, level or range" + msgstr "يحتاج إلى بادئة، أدوار، مستويات أو مدى" + +-#: ../semanage/seobject.py:823 ++#: ../semanage/seobject/__init__.py:835 + msgid "Requires prefix or roles" + msgstr "يحتاج إلى بادئة أو أدوار" + +-#: ../semanage/seobject.py:833 ../semanage/seobject.py:890 ++#: ../semanage/seobject/__init__.py:845 ../semanage/seobject/__init__.py:902 + #, python-format + msgid "SELinux user %s is not defined" + msgstr "مستخدم SELinux %s غير معرف" + +-#: ../semanage/seobject.py:862 ++#: ../semanage/seobject/__init__.py:874 + #, python-format + msgid "Could not modify SELinux user %s" + msgstr "لا يمكن تعديل مستخدم SELinux %s" + +-#: ../semanage/seobject.py:896 ++#: ../semanage/seobject/__init__.py:908 + #, python-format + msgid "SELinux user %s is defined in policy, cannot be deleted" + msgstr "مستخدم SELinux لـ %s معرف في السياسة، لا يمكن حذفه" + +-#: ../semanage/seobject.py:907 ++#: ../semanage/seobject/__init__.py:919 + #, python-format + msgid "Could not delete SELinux user %s" + msgstr "لا يمكن حذف مستخدم SELinux %s" + +-#: ../semanage/seobject.py:945 ++#: ../semanage/seobject/__init__.py:957 + msgid "Could not list SELinux users" + msgstr "لا يمكن عرض قائمة مستخدمي SELinux" + +-#: ../semanage/seobject.py:951 ++#: ../semanage/seobject/__init__.py:963 + #, python-format + msgid "Could not list roles for user %s" + msgstr "لا يمكن عرض قائمة أدوار المستخدم %s" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "Labeling" + msgstr "عنونة" + +-#: ../semanage/seobject.py:976 ++#: ../semanage/seobject/__init__.py:988 + msgid "MLS/" + msgstr "MLS/" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "Prefix" + msgstr "بادئة" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Level" + msgstr "مستوى MSC" + +-#: ../semanage/seobject.py:977 ++#: ../semanage/seobject/__init__.py:989 + msgid "MCS Range" + msgstr "مدى MSC" + +-#: ../semanage/seobject.py:977 ../semanage/seobject.py:982 +-#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:59 +-#: ../sepolicy/sepolicy/sepolicy.glade:3279 +-#: ../sepolicy/sepolicy/sepolicy.glade:5170 +-#: ../sepolicy/sepolicy/sepolicy.glade:5411 ++#: ../semanage/seobject/__init__.py:989 ../semanage/seobject/__init__.py:994 ++#: ../gui/system-config-selinux.glade:992 ../gui/usersPage.py:56 ++#: ../sepolicy/sepolicy/sepolicy.glade:3280 ++#: ../sepolicy/sepolicy/sepolicy.glade:5251 ++#: ../sepolicy/sepolicy/sepolicy.glade:5400 + msgid "SELinux Roles" + msgstr "أدوار SELinux" + +-#: ../semanage/seobject.py:1002 ++#: ../semanage/seobject/__init__.py:1014 + msgid "Protocol udp or tcp is required" + msgstr "بروتوكول udp أو tcp مطلوب" + +-#: ../semanage/seobject.py:1004 ++#: ../semanage/seobject/__init__.py:1016 + msgid "Port is required" + msgstr "المنفذ مطلوب" + +-#: ../semanage/seobject.py:1014 ++#: ../semanage/seobject/__init__.py:1026 + msgid "Invalid Port" + msgstr "" + +-#: ../semanage/seobject.py:1018 ++#: ../semanage/seobject/__init__.py:1030 + #, python-format +-msgid "Could not create a key for %s/%s" +-msgstr "لا يمكن إنشاء مفتاح لـ %s/%s" ++msgid "Could not create a key for %(PROTOTYPE)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1029 ++#: ../semanage/seobject/__init__.py:1041 + msgid "Type is required" + msgstr "النوع مطلوب" + +-#: ../semanage/seobject.py:1032 ../semanage/seobject.py:1096 +-#: ../semanage/seobject.py:1873 ++#: ../semanage/seobject/__init__.py:1044 ../semanage/seobject/__init__.py:1108 ++#: ../semanage/seobject/__init__.py:1885 + #, python-format + msgid "Type %s is invalid, must be a port type" + msgstr "" + +-#: ../semanage/seobject.py:1040 ../semanage/seobject.py:1102 +-#: ../semanage/seobject.py:1157 ../semanage/seobject.py:1163 ++#: ../semanage/seobject/__init__.py:1052 ../semanage/seobject/__init__.py:1169 ++#: ../semanage/seobject/__init__.py:1175 + #, python-format +-msgid "Could not check if port %s/%s is defined" +-msgstr "لا يمكن التحقق من إذا كان المنفذ %s/%s معرفا" ++msgid "Could not check if port %(PROTOCOL)s/%(PORT)s is defined" ++msgstr "" + +-#: ../semanage/seobject.py:1042 ++#: ../semanage/seobject/__init__.py:1054 + #, python-format +-msgid "Port %s/%s already defined" +-msgstr "المنفذ %s/%s معرف مسبقا" ++msgid "Port %(PROTOCOL)s/%(PORT)s already defined" ++msgstr "" + +-#: ../semanage/seobject.py:1046 ++#: ../semanage/seobject/__init__.py:1058 + #, python-format +-msgid "Could not create port for %s/%s" +-msgstr "لا يمكن إنشاء منفذ لـ %s/%s" ++msgid "Could not create port for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1052 ++#: ../semanage/seobject/__init__.py:1064 + #, python-format +-msgid "Could not create context for %s/%s" +-msgstr "لا يمكن إنشاء سياق لـ %s/%s" ++msgid "Could not create context for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1056 ++#: ../semanage/seobject/__init__.py:1068 + #, python-format +-msgid "Could not set user in port context for %s/%s" +-msgstr "لا يمكن ضبط مستخدم في سياق المنفذ لـ %s/%s" ++msgid "Could not set user in port context for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1060 ++#: ../semanage/seobject/__init__.py:1072 + #, python-format +-msgid "Could not set role in port context for %s/%s" +-msgstr "لا يمكن ضبط دور في سياق المنفذ لـ %s/%s" ++msgid "Could not set role in port context for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1064 ++#: ../semanage/seobject/__init__.py:1076 + #, python-format +-msgid "Could not set type in port context for %s/%s" +-msgstr "لا يمكن ضبط نوع في سياق المنفذ لـ %s/%s" ++msgid "Could not set type in port context for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1069 ++#: ../semanage/seobject/__init__.py:1081 + #, python-format +-msgid "Could not set mls fields in port context for %s/%s" +-msgstr "لا يمكن ضبط حقل mls في سياق المنفذ لـ %s/%s" ++msgid "Could not set mls fields in port context for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1073 ++#: ../semanage/seobject/__init__.py:1085 + #, python-format +-msgid "Could not set port context for %s/%s" +-msgstr "لا يمكن ضبط سياق المنفذ لـ %s/%s" ++msgid "Could not set port context for %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1077 ++#: ../semanage/seobject/__init__.py:1089 + #, python-format +-msgid "Could not add port %s/%s" +-msgstr "لا يمكن إضافة المنفذ %s/%s" ++msgid "Could not add port %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1367 +-#: ../semanage/seobject.py:1566 ++#: ../semanage/seobject/__init__.py:1103 ../semanage/seobject/__init__.py:1379 ++#: ../semanage/seobject/__init__.py:1578 + msgid "Requires setype or serange" + msgstr "يتطلب setype أو serange" + +-#: ../semanage/seobject.py:1093 ++#: ../semanage/seobject/__init__.py:1105 + msgid "Requires setype" + msgstr "يتطلب setype" + +-#: ../semanage/seobject.py:1104 ../semanage/seobject.py:1159 ++#: ../semanage/seobject/__init__.py:1114 ++#, python-format ++msgid "Could not check if port @%(PROTOCOL)s/%(PORT)s is defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1116 + #, python-format +-msgid "Port %s/%s is not defined" +-msgstr "المنفذ %s/%s غير معرفة" ++msgid "Port @%(PROTOCOL)s/%(PORT)s is not defined" ++msgstr "" + +-#: ../semanage/seobject.py:1108 ++#: ../semanage/seobject/__init__.py:1120 + #, python-format +-msgid "Could not query port %s/%s" +-msgstr "لا يمكن استعلام المنفذ %s/%s" ++msgid "Could not query port %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1119 ++#: ../semanage/seobject/__init__.py:1131 + #, python-format +-msgid "Could not modify port %s/%s" +-msgstr "لا يمكن تعديل المنفذ %s/%s" ++msgid "Could not modify port %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1132 ++#: ../semanage/seobject/__init__.py:1144 + msgid "Could not list the ports" + msgstr "لا يمكن عرض قائمة المنافذ" + +-#: ../semanage/seobject.py:1148 ++#: ../semanage/seobject/__init__.py:1160 + #, python-format + msgid "Could not delete the port %s" + msgstr "لا يمكن حذف المنفذ %s" + +-#: ../semanage/seobject.py:1165 ++#: ../semanage/seobject/__init__.py:1171 ++#, python-format ++msgid "Port %(PROTOCOL)s/%(PORT)s is not defined" ++msgstr "" ++ ++#: ../semanage/seobject/__init__.py:1177 + #, python-format +-msgid "Port %s/%s is defined in policy, cannot be deleted" +-msgstr "المنفذ %s/%s معرف في السياسة، لا يمكن حذفه" ++msgid "Port %(PROTOCOL)s/%(PORT)s is defined in policy, cannot be deleted" ++msgstr "" + +-#: ../semanage/seobject.py:1169 ++#: ../semanage/seobject/__init__.py:1181 + #, python-format +-msgid "Could not delete port %s/%s" +-msgstr "لا يمكن حذف المنفذ %s/%s" ++msgid "Could not delete port %(PROTOCOL)s/%(PORT)s" ++msgstr "" + +-#: ../semanage/seobject.py:1185 ../semanage/seobject.py:1207 ++#: ../semanage/seobject/__init__.py:1197 ../semanage/seobject/__init__.py:1219 + msgid "Could not list ports" + msgstr "لا يمكن عرض قائمة المنافذ" + +-#: ../semanage/seobject.py:1246 ../sepolicy/sepolicy/sepolicy.glade:2675 +-#: ../sepolicy/sepolicy/sepolicy.glade:2773 +-#: ../sepolicy/sepolicy/sepolicy.glade:4687 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2676 ++#: ../sepolicy/sepolicy/sepolicy.glade:2774 ++#: ../sepolicy/sepolicy/sepolicy.glade:4648 + msgid "SELinux Port Type" + msgstr "نوع منفذ SELinux" + +-#: ../semanage/seobject.py:1246 ++#: ../semanage/seobject/__init__.py:1258 + msgid "Proto" + msgstr "الأول" + +-#: ../semanage/seobject.py:1246 ../gui/system-config-selinux.glade:335 +-#: ../sepolicy/sepolicy/sepolicy.glade:1417 ++#: ../semanage/seobject/__init__.py:1258 ++#: ../gui/system-config-selinux.glade:335 ++#: ../sepolicy/sepolicy/sepolicy.glade:1413 + msgid "Port Number" + msgstr "رقم المنفذ" + +-#: ../semanage/seobject.py:1270 ++#: ../semanage/seobject/__init__.py:1282 + msgid "Node Address is required" + msgstr "عنوان العقدة مطلوب" + +-#: ../semanage/seobject.py:1285 ++#: ../semanage/seobject/__init__.py:1297 + msgid "Unknown or missing protocol" + msgstr "البروتوكول غير معروف أو مفقود" + +-#: ../semanage/seobject.py:1299 ++#: ../semanage/seobject/__init__.py:1311 + msgid "SELinux node type is required" + msgstr "" + +-#: ../semanage/seobject.py:1302 ../semanage/seobject.py:1370 ++#: ../semanage/seobject/__init__.py:1314 ../semanage/seobject/__init__.py:1382 + #, python-format + msgid "Type %s is invalid, must be a node type" + msgstr "" + +-#: ../semanage/seobject.py:1306 ../semanage/seobject.py:1374 +-#: ../semanage/seobject.py:1410 ../semanage/seobject.py:1508 +-#: ../semanage/seobject.py:1570 ../semanage/seobject.py:1604 +-#: ../semanage/seobject.py:1818 ++#: ../semanage/seobject/__init__.py:1318 ../semanage/seobject/__init__.py:1386 ++#: ../semanage/seobject/__init__.py:1422 ../semanage/seobject/__init__.py:1520 ++#: ../semanage/seobject/__init__.py:1582 ../semanage/seobject/__init__.py:1616 ++#: ../semanage/seobject/__init__.py:1830 + #, python-format + msgid "Could not create key for %s" + msgstr "لا يمكن إنشاء مفتاح لـ %s" + +-#: ../semanage/seobject.py:1308 ../semanage/seobject.py:1378 +-#: ../semanage/seobject.py:1414 ../semanage/seobject.py:1420 ++#: ../semanage/seobject/__init__.py:1320 ../semanage/seobject/__init__.py:1390 ++#: ../semanage/seobject/__init__.py:1426 ../semanage/seobject/__init__.py:1432 + #, python-format + msgid "Could not check if addr %s is defined" + msgstr "لا يمكن التحقق من إذا كان العنوان %s معرفا" + +-#: ../semanage/seobject.py:1317 ++#: ../semanage/seobject/__init__.py:1329 + #, python-format + msgid "Could not create addr for %s" + msgstr "لا يمكن إنشاء العنوان لـ %s" + +-#: ../semanage/seobject.py:1323 ../semanage/seobject.py:1524 +-#: ../semanage/seobject.py:1767 ++#: ../semanage/seobject/__init__.py:1335 ../semanage/seobject/__init__.py:1536 ++#: ../semanage/seobject/__init__.py:1779 + #, python-format + msgid "Could not create context for %s" + msgstr "لا يمكن إنشاء سياق لـ %s" + +-#: ../semanage/seobject.py:1327 ++#: ../semanage/seobject/__init__.py:1339 + #, python-format + msgid "Could not set mask for %s" + msgstr "لا يمكن ضبط قناع لـ %s" + +-#: ../semanage/seobject.py:1331 ++#: ../semanage/seobject/__init__.py:1343 + #, python-format + msgid "Could not set user in addr context for %s" + msgstr "لا يمكن ضبط مستخدم في سياق العنوان لـ %s" + +-#: ../semanage/seobject.py:1335 ++#: ../semanage/seobject/__init__.py:1347 + #, python-format + msgid "Could not set role in addr context for %s" + msgstr "لا يمكن ضبط دور في سياق العنوان لـ %s" + +-#: ../semanage/seobject.py:1339 ++#: ../semanage/seobject/__init__.py:1351 + #, python-format + msgid "Could not set type in addr context for %s" + msgstr "لا يمكن ضبط نوع في سياق العنوان لـ %s" + +-#: ../semanage/seobject.py:1344 ++#: ../semanage/seobject/__init__.py:1356 + #, python-format + msgid "Could not set mls fields in addr context for %s" + msgstr "لا يمكن ضبط حقل mls في سياق العنوان لـ %s" + +-#: ../semanage/seobject.py:1348 ++#: ../semanage/seobject/__init__.py:1360 + #, python-format + msgid "Could not set addr context for %s" + msgstr "لا يمكن ضبط سياق العنوان لـ %s" + +-#: ../semanage/seobject.py:1352 ++#: ../semanage/seobject/__init__.py:1364 + #, python-format + msgid "Could not add addr %s" + msgstr "لا يمكن إضافة العنوان %s" + +-#: ../semanage/seobject.py:1380 ../semanage/seobject.py:1416 ++#: ../semanage/seobject/__init__.py:1392 ../semanage/seobject/__init__.py:1428 + #, python-format + msgid "Addr %s is not defined" + msgstr "العنوان %s غير معرف" + +-#: ../semanage/seobject.py:1384 ++#: ../semanage/seobject/__init__.py:1396 + #, python-format + msgid "Could not query addr %s" + msgstr "لا يمكن استعلام العنوان %s" + +-#: ../semanage/seobject.py:1394 ++#: ../semanage/seobject/__init__.py:1406 + #, python-format + msgid "Could not modify addr %s" + msgstr "لا يمكن تعديل العنوان %s" + +-#: ../semanage/seobject.py:1422 ++#: ../semanage/seobject/__init__.py:1434 + #, python-format + msgid "Addr %s is defined in policy, cannot be deleted" + msgstr "العنوان %s معرف في السياسة، لا يمكن حذفه" + +-#: ../semanage/seobject.py:1426 ++#: ../semanage/seobject/__init__.py:1438 + #, python-format + msgid "Could not delete addr %s" + msgstr "لا يمكن حذف العنوان %s" + +-#: ../semanage/seobject.py:1438 ++#: ../semanage/seobject/__init__.py:1450 + msgid "Could not deleteall node mappings" + msgstr "" + +-#: ../semanage/seobject.py:1452 ++#: ../semanage/seobject/__init__.py:1464 + msgid "Could not list addrs" + msgstr "لا يمكن عرض قائمة العناوين" + +-#: ../semanage/seobject.py:1504 ../semanage/seobject.py:1811 ++#: ../semanage/seobject/__init__.py:1516 ../semanage/seobject/__init__.py:1823 + msgid "SELinux Type is required" + msgstr "نوع SELinux مطلوب" + +-#: ../semanage/seobject.py:1512 ../semanage/seobject.py:1574 +-#: ../semanage/seobject.py:1608 ../semanage/seobject.py:1614 ++#: ../semanage/seobject/__init__.py:1524 ../semanage/seobject/__init__.py:1586 ++#: ../semanage/seobject/__init__.py:1620 ../semanage/seobject/__init__.py:1626 + #, python-format + msgid "Could not check if interface %s is defined" + msgstr "لا يمكن التحقق من إذا كانت الواجهة %s معرفة" + +-#: ../semanage/seobject.py:1519 ++#: ../semanage/seobject/__init__.py:1531 + #, python-format + msgid "Could not create interface for %s" + msgstr "لا يمكن إنشاء واجهة لـ %s" + +-#: ../semanage/seobject.py:1528 ++#: ../semanage/seobject/__init__.py:1540 + #, python-format + msgid "Could not set user in interface context for %s" + msgstr "لا يمكن ضبط مستخدم في سياق الواجهة لـ %s" + +-#: ../semanage/seobject.py:1532 ++#: ../semanage/seobject/__init__.py:1544 + #, python-format + msgid "Could not set role in interface context for %s" + msgstr "لا يمكن ضبط دور في سياق الواجهة لـ %s" + +-#: ../semanage/seobject.py:1536 ++#: ../semanage/seobject/__init__.py:1548 + #, python-format + msgid "Could not set type in interface context for %s" + msgstr "لا يمكن ضبط نوع في سياق الواجهة لـ %s" + +-#: ../semanage/seobject.py:1541 ++#: ../semanage/seobject/__init__.py:1553 + #, python-format + msgid "Could not set mls fields in interface context for %s" + msgstr "لا يمكن ضبط حقل mls في سياق الواجهة لـ %s" + +-#: ../semanage/seobject.py:1545 ++#: ../semanage/seobject/__init__.py:1557 + #, python-format + msgid "Could not set interface context for %s" + msgstr "لا يمكن ضبط سياق المنفذ لـ %s" + +-#: ../semanage/seobject.py:1549 ++#: ../semanage/seobject/__init__.py:1561 + #, python-format + msgid "Could not set message context for %s" + msgstr "لا يمكن ضبط سياق الرسالة ل%s" + +-#: ../semanage/seobject.py:1553 ++#: ../semanage/seobject/__init__.py:1565 + #, python-format + msgid "Could not add interface %s" + msgstr "لا يمكن إضافة الواجهة %s" + +-#: ../semanage/seobject.py:1576 ../semanage/seobject.py:1610 ++#: ../semanage/seobject/__init__.py:1588 ../semanage/seobject/__init__.py:1622 + #, python-format + msgid "Interface %s is not defined" + msgstr "الواجهة %s غير معرفة" + +-#: ../semanage/seobject.py:1580 ++#: ../semanage/seobject/__init__.py:1592 + #, python-format + msgid "Could not query interface %s" + msgstr "لا يمكن استعلام الواجهة %s" + +-#: ../semanage/seobject.py:1591 ++#: ../semanage/seobject/__init__.py:1603 + #, python-format + msgid "Could not modify interface %s" + msgstr "لا يمكن تعديل الواجهة %s" + +-#: ../semanage/seobject.py:1616 ++#: ../semanage/seobject/__init__.py:1628 + #, python-format + msgid "Interface %s is defined in policy, cannot be deleted" + msgstr "الواجهة %s معرفة في السياسة، لا يمكن حذفها" + +-#: ../semanage/seobject.py:1620 ++#: ../semanage/seobject/__init__.py:1632 + #, python-format + msgid "Could not delete interface %s" + msgstr "لا يمكن حذف الواجهة %s" + +-#: ../semanage/seobject.py:1632 ++#: ../semanage/seobject/__init__.py:1644 + msgid "Could not delete all interface mappings" + msgstr "" + +-#: ../semanage/seobject.py:1646 ++#: ../semanage/seobject/__init__.py:1658 + msgid "Could not list interfaces" + msgstr "لا يمكن عرض قائمة الواجهات" + +-#: ../semanage/seobject.py:1671 ++#: ../semanage/seobject/__init__.py:1683 + msgid "SELinux Interface" + msgstr "واجهة SELinux" + +-#: ../semanage/seobject.py:1671 ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:1683 ../semanage/seobject/__init__.py:2045 + msgid "Context" + msgstr "سياق" + +-#: ../semanage/seobject.py:1738 ++#: ../semanage/seobject/__init__.py:1750 + #, python-format + msgid "Target %s is not valid. Target is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1741 ++#: ../semanage/seobject/__init__.py:1753 + #, python-format +-msgid "Substiture %s is not valid. Substitute is not allowed to end with '/'" ++msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'" + msgstr "" + +-#: ../semanage/seobject.py:1744 ++#: ../semanage/seobject/__init__.py:1756 + #, python-format + msgid "Equivalence class for %s already exists" + msgstr "" + +-#: ../semanage/seobject.py:1750 ++#: ../semanage/seobject/__init__.py:1762 + #, python-format +-msgid "File spec %s conflicts with equivalency rule '%s %s'" ++msgid "" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'" + msgstr "" + +-#: ../semanage/seobject.py:1759 ++#: ../semanage/seobject/__init__.py:1771 + #, python-format + msgid "Equivalence class for %s does not exists" + msgstr "" + +-#: ../semanage/seobject.py:1773 ++#: ../semanage/seobject/__init__.py:1785 + #, python-format + msgid "Could not set user in file context for %s" + msgstr "لا يمكن ضبط مستخدم في سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1777 ++#: ../semanage/seobject/__init__.py:1789 + #, python-format + msgid "Could not set role in file context for %s" + msgstr "لا يمكن ضبط دور في سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1782 ../semanage/seobject.py:1848 ++#: ../semanage/seobject/__init__.py:1794 ../semanage/seobject/__init__.py:1860 + #, python-format + msgid "Could not set mls fields in file context for %s" + msgstr "لا يمكن ضبط حقل mls في سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1788 ++#: ../semanage/seobject/__init__.py:1800 + msgid "Invalid file specification" + msgstr "مواصفات ملف خاطئة" + +-#: ../semanage/seobject.py:1790 ++#: ../semanage/seobject/__init__.py:1802 + msgid "File specification can not include spaces" + msgstr "" + +-#: ../semanage/seobject.py:1795 ++#: ../semanage/seobject/__init__.py:1807 + #, python-format + msgid "" +-"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead" ++"File spec %(TARGET)s conflicts with equivalency rule '%(SOURCE)s %(DEST)s'; " ++"Try adding '%(DEST1)s' instead" + msgstr "" + +-#: ../semanage/seobject.py:1814 ++#: ../semanage/seobject/__init__.py:1826 + #, python-format + msgid "Type %s is invalid, must be a file or device type" + msgstr "" + +-#: ../semanage/seobject.py:1822 ../semanage/seobject.py:1827 +-#: ../semanage/seobject.py:1883 ../semanage/seobject.py:1965 +-#: ../semanage/seobject.py:1969 ++#: ../semanage/seobject/__init__.py:1834 ../semanage/seobject/__init__.py:1839 ++#: ../semanage/seobject/__init__.py:1895 ../semanage/seobject/__init__.py:1977 ++#: ../semanage/seobject/__init__.py:1981 + #, python-format + msgid "Could not check if file context for %s is defined" + msgstr "لا يمكن التحقق من إذا كان سياق الملف لـ %s معرفا" + +-#: ../semanage/seobject.py:1835 ++#: ../semanage/seobject/__init__.py:1847 + #, python-format + msgid "Could not create file context for %s" + msgstr "لا يمكن إنشاء سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1843 ++#: ../semanage/seobject/__init__.py:1855 + #, python-format + msgid "Could not set type in file context for %s" + msgstr "لا يمكن ضبط نوع في سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1851 ../semanage/seobject.py:1911 +-#: ../semanage/seobject.py:1915 ++#: ../semanage/seobject/__init__.py:1863 ../semanage/seobject/__init__.py:1923 ++#: ../semanage/seobject/__init__.py:1927 + #, python-format + msgid "Could not set file context for %s" + msgstr "لا يمكن ضبط سياق ملف لـ %s" + +-#: ../semanage/seobject.py:1857 ++#: ../semanage/seobject/__init__.py:1869 + #, python-format + msgid "Could not add file context for %s" + msgstr "لا يمكن إضافة سياق ملف لـ %s" + +-#: ../semanage/seobject.py:1871 ++#: ../semanage/seobject/__init__.py:1883 + msgid "Requires setype, serange or seuser" + msgstr "يتطلب setype، serange أو seuser" + +-#: ../semanage/seobject.py:1887 ../semanage/seobject.py:1973 ++#: ../semanage/seobject/__init__.py:1899 ../semanage/seobject/__init__.py:1985 + #, python-format + msgid "File context for %s is not defined" + msgstr "سياق الملف لـ %s غير معرف" + +-#: ../semanage/seobject.py:1893 ++#: ../semanage/seobject/__init__.py:1905 + #, python-format + msgid "Could not query file context for %s" + msgstr "لا يمكن استعلام سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1919 ++#: ../semanage/seobject/__init__.py:1931 + #, python-format + msgid "Could not modify file context for %s" + msgstr "لا يمكن تعديل سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1932 ++#: ../semanage/seobject/__init__.py:1944 + msgid "Could not list the file contexts" + msgstr "لا يمكن عرض قائمة سياقات الملفات" + +-#: ../semanage/seobject.py:1946 ++#: ../semanage/seobject/__init__.py:1958 + #, python-format + msgid "Could not delete the file context %s" + msgstr "لا يمكن حذف سياق الملف %s" + +-#: ../semanage/seobject.py:1971 ++#: ../semanage/seobject/__init__.py:1983 + #, python-format + msgid "File context for %s is defined in policy, cannot be deleted" + msgstr "سياق الملف لـ %s معرف في السياسة، لا يمكن حذفه" + +-#: ../semanage/seobject.py:1977 ++#: ../semanage/seobject/__init__.py:1989 + #, python-format + msgid "Could not delete file context for %s" + msgstr "لا يمكن حذف سياق الملف لـ %s" + +-#: ../semanage/seobject.py:1992 ++#: ../semanage/seobject/__init__.py:2004 + msgid "Could not list file contexts" + msgstr "لا يمكن عرض قائمة سياقات الملفات" + +-#: ../semanage/seobject.py:1996 ++#: ../semanage/seobject/__init__.py:2008 + msgid "Could not list local file contexts" + msgstr "لا يمكن عرض قائمة سياقات الملفات المحلية" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "SELinux fcontext" + msgstr "SELinux fcontext" + +-#: ../semanage/seobject.py:2033 ++#: ../semanage/seobject/__init__.py:2045 + msgid "type" + msgstr "نوع" + +-#: ../semanage/seobject.py:2046 ++#: ../semanage/seobject/__init__.py:2058 + msgid "" + "\n" + "SELinux Distribution fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2051 ++#: ../semanage/seobject/__init__.py:2063 + msgid "" + "\n" + "SELinux Local fcontext Equivalence \n" + msgstr "" + +-#: ../semanage/seobject.py:2087 ../semanage/seobject.py:2138 +-#: ../semanage/seobject.py:2144 ++#: ../semanage/seobject/__init__.py:2099 ../semanage/seobject/__init__.py:2150 ++#: ../semanage/seobject/__init__.py:2156 + #, python-format + msgid "Could not check if boolean %s is defined" + msgstr "لا يمكن التحقق من إذا كانت القيمة المنطقية %s معرفة" + +-#: ../semanage/seobject.py:2089 ../semanage/seobject.py:2140 ++#: ../semanage/seobject/__init__.py:2101 ../semanage/seobject/__init__.py:2152 + #, python-format + msgid "Boolean %s is not defined" + msgstr "القيمة المنطقية %s غير معرفة" + +-#: ../semanage/seobject.py:2093 ++#: ../semanage/seobject/__init__.py:2105 + #, python-format + msgid "Could not query file context %s" + msgstr "لا يمكن استعلام سياق الملف %s" + +-#: ../semanage/seobject.py:2098 ++#: ../semanage/seobject/__init__.py:2110 + #, python-format + msgid "You must specify one of the following values: %s" + msgstr "يجب أن تحدد أحد القيم التالية: %s" + +-#: ../semanage/seobject.py:2103 ++#: ../semanage/seobject/__init__.py:2115 + #, python-format + msgid "Could not set active value of boolean %s" + msgstr "لا يمكن ضبط القيمة المنطقية النشطة %s" + +-#: ../semanage/seobject.py:2106 ++#: ../semanage/seobject/__init__.py:2118 + #, python-format + msgid "Could not modify boolean %s" + msgstr "لا يمكن تعديل القيمة المنطقية %s" + +-#: ../semanage/seobject.py:2122 ++#: ../semanage/seobject/__init__.py:2134 + #, python-format +-msgid "Bad format %s: Record %s" +-msgstr "بنية خاطئة %s: سجّل %s" ++msgid "Bad format %(BOOLNAME)s: Record %(VALUE)s" ++msgstr "" + +-#: ../semanage/seobject.py:2146 ++#: ../semanage/seobject/__init__.py:2158 + #, python-format + msgid "Boolean %s is defined in policy, cannot be deleted" + msgstr "القيمة المنطقية %s معرفة في السياسة، لا يمكن حذفها" + +-#: ../semanage/seobject.py:2150 ++#: ../semanage/seobject/__init__.py:2162 + #, python-format + msgid "Could not delete boolean %s" + msgstr "لا يمكن حذف القيمة المنطقية %s" + +-#: ../semanage/seobject.py:2162 ../semanage/seobject.py:2179 ++#: ../semanage/seobject/__init__.py:2174 ../semanage/seobject/__init__.py:2191 + msgid "Could not list booleans" + msgstr "لا يمكن عرض قائمة القيم المنطقية" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "off" + msgstr "إلغاء التشغيل" + +-#: ../semanage/seobject.py:2214 ++#: ../semanage/seobject/__init__.py:2226 + msgid "on" + msgstr "تشغيل" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "SELinux boolean" + msgstr "قيمة منطقية لـSELinux" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "State" + msgstr "" + +-#: ../semanage/seobject.py:2228 ++#: ../semanage/seobject/__init__.py:2240 + msgid "Default" + msgstr "" + +-#: ../semanage/seobject.py:2228 ../gui/polgen.glade:113 +-#: ../gui/polgengui.py:274 ../sepolicy/sepolicy/sepolicy.glade:2147 +-#: ../sepolicy/sepolicy/sepolicy.glade:2517 +-#: ../sepolicy/sepolicy/sepolicy.glade:5021 ++#: ../semanage/seobject/__init__.py:2240 ../gui/polgen.glade:113 ++#: ../gui/polgengui.py:260 ../sepolicy/sepolicy/sepolicy.glade:2148 ++#: ../sepolicy/sepolicy/sepolicy.glade:2518 ++#: ../sepolicy/sepolicy/sepolicy.glade:5117 + msgid "Description" + msgstr "وصف" + +@@ -1361,66 +1377,66 @@ msgstr "chcat -l +CompanyConfidential juser" + msgid "Options Error %s " + msgstr "خطأ في الخيارات %s " + +-#: ../gui/booleansPage.py:194 ../gui/system-config-selinux.glade:1706 ++#: ../gui/booleansPage.py:186 ../gui/system-config-selinux.glade:1706 + msgid "Boolean" + msgstr "" + +-#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:162 ++#: ../gui/booleansPage.py:245 ../gui/semanagePage.py:186 + msgid "all" + msgstr "" + +-#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:164 ++#: ../gui/booleansPage.py:247 ../gui/semanagePage.py:188 + #: ../gui/system-config-selinux.glade:1615 + #: ../gui/system-config-selinux.glade:1820 + #: ../gui/system-config-selinux.glade:2437 + msgid "Customized" + msgstr "" + +-#: ../gui/fcontextPage.py:64 ../gui/system-config-selinux.glade:1911 ++#: ../gui/fcontextPage.py:63 ../gui/system-config-selinux.glade:1911 + msgid "File Labeling" + msgstr "" + +-#: ../gui/fcontextPage.py:74 ++#: ../gui/fcontextPage.py:73 + msgid "" + "File\n" + "Specification" + msgstr "" + +-#: ../gui/fcontextPage.py:81 ++#: ../gui/fcontextPage.py:80 + msgid "" + "Selinux\n" + "File Type" + msgstr "" + +-#: ../gui/fcontextPage.py:88 ++#: ../gui/fcontextPage.py:87 + msgid "" + "File\n" + "Type" + msgstr "" + +-#: ../gui/loginsPage.py:48 ../gui/system-config-selinux.glade:2098 ++#: ../gui/loginsPage.py:45 ../gui/system-config-selinux.glade:2098 + msgid "User Mapping" + msgstr "" + +-#: ../gui/loginsPage.py:52 ++#: ../gui/loginsPage.py:49 + msgid "" + "Login\n" + "Name" + msgstr "" + +-#: ../gui/loginsPage.py:56 ../gui/usersPage.py:50 ++#: ../gui/loginsPage.py:53 ../gui/usersPage.py:47 + msgid "" + "SELinux\n" + "User" + msgstr "" + +-#: ../gui/loginsPage.py:59 ../gui/usersPage.py:55 ++#: ../gui/loginsPage.py:56 ../gui/usersPage.py:52 + msgid "" + "MLS/\n" + "MCS Range" + msgstr "" + +-#: ../gui/loginsPage.py:133 ++#: ../gui/loginsPage.py:130 + #, python-format + msgid "Login '%s' is required" + msgstr "" +@@ -1433,15 +1449,15 @@ msgstr "" + msgid "Module Name" + msgstr "" + +-#: ../gui/modulesPage.py:135 ++#: ../gui/modulesPage.py:131 + msgid "Disable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:138 ../gui/system-config-selinux.glade:2662 ++#: ../gui/modulesPage.py:134 ../gui/system-config-selinux.glade:2662 + msgid "Enable Audit" + msgstr "" + +-#: ../gui/modulesPage.py:163 ++#: ../gui/modulesPage.py:161 + msgid "Load Policy Module" + msgstr "" + +@@ -1480,7 +1496,7 @@ msgstr "" + msgid "Applications" + msgstr "" + +-#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:130 ++#: ../gui/polgen.glade:316 ../sepolicy/sepolicy/generate.py:132 + msgid "Standard Init Daemon" + msgstr "" + +@@ -1490,7 +1506,7 @@ msgid "" + "requires a script in /etc/rc.d/init.d" + msgstr "" + +-#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:131 ++#: ../gui/polgen.glade:332 ../sepolicy/sepolicy/generate.py:133 + msgid "DBUS System Daemon" + msgstr "" + +@@ -1502,7 +1518,7 @@ msgstr "" + msgid "Internet Services Daemon are daemons started by xinetd" + msgstr "" + +-#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:133 ++#: ../gui/polgen.glade:366 ../sepolicy/sepolicy/generate.py:135 + msgid "Web Application/Script (CGI)" + msgstr "" + +@@ -1511,7 +1527,7 @@ msgid "" + "Web Applications/Script (CGI) CGI scripts started by the web server (apache)" + msgstr "" + +-#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:135 ++#: ../gui/polgen.glade:383 ../sepolicy/sepolicy/generate.py:137 + msgid "User Application" + msgstr "" + +@@ -1521,7 +1537,7 @@ msgid "" + "started by a user" + msgstr "" + +-#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:134 ++#: ../gui/polgen.glade:400 ../sepolicy/sepolicy/generate.py:136 + msgid "Sandbox" + msgstr "" + +@@ -1573,8 +1589,8 @@ msgstr "" #: ../gui/polgen.glade:550 msgid "" @@ -6662,7 +29799,7 @@ index 6e400ae..6eaa817 100644 msgstr "" #: ../gui/polgen.glade:592 -@@ -1608,8 +1603,8 @@ msgstr "" +@@ -1587,8 +1603,8 @@ msgstr "" #: ../gui/polgen.glade:627 msgid "" @@ -6673,7 +29810,18 @@ index 6e400ae..6eaa817 100644 "the system directly." msgstr "" -@@ -1678,7 +1673,8 @@ msgid "Select the user_roles that will transition to %s:" +@@ -1596,8 +1612,8 @@ msgstr "" + msgid "Enter name of application or user role:" + msgstr "" + +-#: ../gui/polgen.glade:728 ../gui/polgengui.py:272 +-#: ../sepolicy/sepolicy/sepolicy.glade:2182 ++#: ../gui/polgen.glade:728 ../gui/polgengui.py:258 ++#: ../sepolicy/sepolicy/sepolicy.glade:2183 + msgid "Name" + msgstr "" + +@@ -1657,7 +1673,8 @@ msgid "Select the user_roles that will transition to %s:" msgstr "" #: ../gui/polgen.glade:1019 @@ -6683,7 +29831,215 @@ index 6e400ae..6eaa817 100644 msgstr "" #: ../gui/polgen.glade:1056 -@@ -1997,8 +1993,8 @@ msgid "" +@@ -1681,7 +1698,7 @@ msgid "TCP Ports" + msgstr "" + + #: ../gui/polgen.glade:1223 ../gui/polgen.glade:1390 ../gui/polgen.glade:1589 +-#: ../gui/polgen.glade:1698 ../sepolicy/sepolicy/sepolicy.glade:4314 ++#: ../gui/polgen.glade:1698 + msgid "All" + msgstr "" + +@@ -1812,118 +1829,118 @@ msgstr "" + msgid "Policy Directory" + msgstr "" + +-#: ../gui/polgengui.py:282 ++#: ../gui/polgengui.py:268 + msgid "Role" + msgstr "" + +-#: ../gui/polgengui.py:289 ++#: ../gui/polgengui.py:275 + msgid "Existing_User" + msgstr "" + +-#: ../gui/polgengui.py:303 ../gui/polgengui.py:311 ../gui/polgengui.py:325 ++#: ../gui/polgengui.py:289 ../gui/polgengui.py:297 ../gui/polgengui.py:311 + msgid "Application" + msgstr "" + +-#: ../gui/polgengui.py:370 ++#: ../gui/polgengui.py:356 + #, python-format + msgid "%s must be a directory" + msgstr "" + +-#: ../gui/polgengui.py:430 ../gui/polgengui.py:711 ++#: ../gui/polgengui.py:416 ../gui/polgengui.py:697 + msgid "You must select a user" + msgstr "" + +-#: ../gui/polgengui.py:560 ++#: ../gui/polgengui.py:546 + msgid "Select executable file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:571 ++#: ../gui/polgengui.py:557 + msgid "Select init script file to be confined." + msgstr "" + +-#: ../gui/polgengui.py:581 ++#: ../gui/polgengui.py:567 + msgid "Select file(s) that confined application creates or writes" + msgstr "" + +-#: ../gui/polgengui.py:588 ++#: ../gui/polgengui.py:574 + msgid "Select directory(s) that the confined application owns and writes into" + msgstr "" + +-#: ../gui/polgengui.py:650 ++#: ../gui/polgengui.py:636 + msgid "Select directory to generate policy files in" + msgstr "" + +-#: ../gui/polgengui.py:667 ++#: ../gui/polgengui.py:653 + #, python-format + msgid "" + "Type %s_t already defined in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:667 ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:653 ../gui/polgengui.py:657 + msgid "Verify Name" + msgstr "" + +-#: ../gui/polgengui.py:671 ++#: ../gui/polgengui.py:657 + #, python-format + msgid "" + "Module %s.pp already loaded in current policy.\n" + "Do you want to continue?" + msgstr "" + +-#: ../gui/polgengui.py:717 ++#: ../gui/polgengui.py:703 + msgid "" + "You must add a name made up of letters and numbers and containing no spaces." + msgstr "" + +-#: ../gui/polgengui.py:731 ++#: ../gui/polgengui.py:717 + msgid "You must enter a executable" + msgstr "" + +-#: ../gui/polgengui.py:756 ../gui/system-config-selinux.py:180 ++#: ../gui/polgengui.py:742 ../gui/system-config-selinux.py:180 + msgid "Configue SELinux" + msgstr "" + +-#: ../gui/portsPage.py:51 ../gui/system-config-selinux.glade:2528 ++#: ../gui/portsPage.py:48 ../gui/system-config-selinux.glade:2528 + msgid "Network Port" + msgstr "" + +-#: ../gui/portsPage.py:85 ++#: ../gui/portsPage.py:82 + msgid "" + "SELinux Port\n" + "Type" + msgstr "" + +-#: ../gui/portsPage.py:91 ../gui/system-config-selinux.glade:363 +-#: ../sepolicy/sepolicy/sepolicy.glade:1443 +-#: ../sepolicy/sepolicy/sepolicy.glade:2657 +-#: ../sepolicy/sepolicy/sepolicy.glade:2755 +-#: ../sepolicy/sepolicy/sepolicy.glade:4672 ++#: ../gui/portsPage.py:88 ../gui/system-config-selinux.glade:363 ++#: ../sepolicy/sepolicy/sepolicy.glade:1439 ++#: ../sepolicy/sepolicy/sepolicy.glade:2658 ++#: ../sepolicy/sepolicy/sepolicy.glade:2756 ++#: ../sepolicy/sepolicy/sepolicy.glade:4633 + msgid "Protocol" + msgstr "" + +-#: ../gui/portsPage.py:96 ../gui/system-config-selinux.glade:479 ++#: ../gui/portsPage.py:93 ../gui/system-config-selinux.glade:479 + msgid "" + "MLS/MCS\n" + "Level" + msgstr "" + +-#: ../gui/portsPage.py:101 ../sepolicy/sepolicy/sepolicy.glade:2638 +-#: ../sepolicy/sepolicy/sepolicy.glade:2737 +-#: ../sepolicy/sepolicy/sepolicy.glade:4658 ++#: ../gui/portsPage.py:98 ../sepolicy/sepolicy/sepolicy.glade:2639 ++#: ../sepolicy/sepolicy/sepolicy.glade:2738 ++#: ../sepolicy/sepolicy/sepolicy.glade:4619 + msgid "Port" + msgstr "" + +-#: ../gui/portsPage.py:207 ++#: ../gui/portsPage.py:205 + #, python-format + msgid "Port number \"%s\" is not valid. 0 < PORT_NUMBER < 65536 " + msgstr "" + +-#: ../gui/portsPage.py:252 ++#: ../gui/portsPage.py:258 + msgid "List View" + msgstr "" + +-#: ../gui/portsPage.py:255 ../gui/system-config-selinux.glade:2419 ++#: ../gui/portsPage.py:261 ../gui/system-config-selinux.glade:2419 + msgid "Group View" + msgstr "" + +@@ -1937,50 +1954,50 @@ msgstr "" + msgid "Delete %s" + msgstr "" + +-#: ../gui/semanagePage.py:134 ++#: ../gui/semanagePage.py:158 + #, python-format + msgid "Add %s" + msgstr "" + +-#: ../gui/semanagePage.py:148 ++#: ../gui/semanagePage.py:172 + #, python-format + msgid "Modify %s" + msgstr "" + +-#: ../gui/statusPage.py:69 ../gui/system-config-selinux.glade:2819 +-#: ../sepolicy/sepolicy/sepolicy.glade:3413 +-#: ../sepolicy/sepolicy/sepolicy.glade:3486 ++#: ../gui/statusPage.py:65 ../gui/system-config-selinux.glade:2819 ++#: ../sepolicy/sepolicy/sepolicy.glade:3414 ++#: ../sepolicy/sepolicy/sepolicy.glade:3487 + msgid "Permissive" + msgstr "" + +-#: ../gui/statusPage.py:70 ../gui/system-config-selinux.glade:2837 +-#: ../sepolicy/sepolicy/sepolicy.glade:3394 +-#: ../sepolicy/sepolicy/sepolicy.glade:3468 ++#: ../gui/statusPage.py:66 ../gui/system-config-selinux.glade:2837 ++#: ../sepolicy/sepolicy/sepolicy.glade:3395 ++#: ../sepolicy/sepolicy/sepolicy.glade:3469 + msgid "Enforcing" + msgstr "" + +-#: ../gui/statusPage.py:94 ++#: ../gui/statusPage.py:90 + msgid "Status" + msgstr "" + +-#: ../gui/statusPage.py:133 ../sepolicy/sepolicy/gui.py:2619 ++#: ../gui/statusPage.py:129 ../sepolicy/sepolicy/gui.py:2613 + msgid "" + "Changing the policy type will cause a relabel of the entire file system on " + "the next boot. Relabeling takes a long time depending on the size of the " + "file system. Do you wish to continue?" + msgstr "" + +-#: ../gui/statusPage.py:147 ++#: ../gui/statusPage.py:143 + msgid "" + "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 " @@ -6693,8 +30049,41 @@ index 6e400ae..6eaa817 100644 +" wish to continue?" msgstr "" - #: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 -@@ -2232,8 +2228,8 @@ msgstr "" +-#: ../gui/statusPage.py:152 ../sepolicy/sepolicy/gui.py:2753 ++#: ../gui/statusPage.py:148 ../sepolicy/sepolicy/gui.py:2747 + msgid "" + "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 " +@@ -2032,8 +2049,8 @@ msgid "" + msgstr "" + + #: ../gui/system-config-selinux.glade:773 +-#: ../sepolicy/sepolicy/sepolicy.glade:729 +-#: ../sepolicy/sepolicy/sepolicy.glade:1489 ++#: ../sepolicy/sepolicy/sepolicy.glade:711 ++#: ../sepolicy/sepolicy/sepolicy.glade:1485 + msgid "MLS" + msgstr "" + +@@ -2046,7 +2063,7 @@ msgid "SELinux Administration" + msgstr "" + + #: ../gui/system-config-selinux.glade:1122 +-#: ../sepolicy/sepolicy/sepolicy.glade:4162 ++#: ../sepolicy/sepolicy/sepolicy.glade:4163 + msgid "Add" + msgstr "" + +@@ -2116,7 +2133,7 @@ msgstr "" + #: ../gui/system-config-selinux.glade:2467 + #: ../gui/system-config-selinux.glade:2692 + #: ../gui/system-config-selinux.glade:2867 +-#: ../sepolicy/sepolicy/sepolicy.glade:1992 ++#: ../sepolicy/sepolicy/sepolicy.glade:1993 + msgid "Filter" + msgstr "" + +@@ -2211,8 +2228,8 @@ msgstr "" #: ../gui/system-config-selinux.glade:2661 msgid "" @@ -6705,32 +30094,175 @@ index 6e400ae..6eaa817 100644 msgstr "" #: ../gui/system-config-selinux.glade:2781 -@@ -2274,8 +2270,8 @@ msgstr "" +@@ -2235,7 +2252,7 @@ msgstr "" + msgid "label59" + msgstr "" + +-#: ../gui/usersPage.py:138 ++#: ../gui/usersPage.py:140 + #, python-format + msgid "SELinux user '%s' is required" + msgstr "" +@@ -2247,13 +2264,14 @@ msgstr "" + + #: booleans.py:2 + msgid "" +-"Allow ABRT to run in abrt_handle_event_t domain to handle ABRT event scripts" ++"Determine whether ABRT can run in the abrt_handle_event_t domain to handle " ++"ABRT event scripts." + msgstr "" #: booleans.py:3 msgid "" --"Determine whether abrt-handle-upload can modify public files used for public " --"file transfer services in /var/spool/abrt-upload/." +-"Allow abrt-handle-upload to modify public files used for public file " +-"transfer services in /var/spool/abrt-upload/." +"Determine whether abrt-handle-upload can modify public files used for public" +" file transfer services in /var/spool/abrt-upload/." msgstr "" #: booleans.py:4 -@@ -2404,8 +2400,9 @@ msgstr "" +@@ -2287,7 +2305,7 @@ msgid "Determine whether awstats can purge httpd log files." + msgstr "" - #: booleans.py:32 - msgid "" + #: booleans.py:11 +-msgid "Allow boinc_domain execmem/execstack." ++msgid "Determine whether boinc can execmem/execstack." + msgstr "" + + #: booleans.py:12 +@@ -2343,1467 +2361,1506 @@ msgid "" + msgstr "" + + #: booleans.py:23 +-msgid "Determine whether cvs can read shadow password files." ++msgid "" ++"Determine whether crond can execute jobs in the user domain as opposed to " ++"the the generic cronjob domain." + msgstr "" + + #: booleans.py:24 +-msgid "Allow all daemons to write corefiles to /" ++msgid "Determine whether cvs can read shadow password files." + msgstr "" + + #: booleans.py:25 +-msgid "Allow all daemons to use tcp wrappers." ++msgid "Allow all daemons to write corefiles to /" + msgstr "" + + #: booleans.py:26 +-msgid "Allow all daemons the ability to read/write terminals" ++msgid "Enable cluster mode for daemons." + msgstr "" + + #: booleans.py:27 +-msgid "Determine whether dbadm can manage generic user files." ++msgid "Allow all daemons to use tcp wrappers." + msgstr "" + + #: booleans.py:28 +-msgid "Determine whether dbadm can read generic user files." ++msgid "Allow all daemons the ability to read/write terminals" + msgstr "" + + #: booleans.py:29 +-msgid "" -"Deny user domains applications to map a memory region as both executable and " -"writable, this is dangerous and the executable should be reported in bugzilla" ++msgid "Allow dbadm to exec content" + msgstr "" + + #: booleans.py:30 +-msgid "Deny any process from ptracing or debugging any other processes." ++msgid "Determine whether dbadm can manage generic user files." + msgstr "" + + #: booleans.py:31 +-msgid "Allow dhcpc client applications to execute iptables commands" ++msgid "Determine whether dbadm can read generic user files." + msgstr "" + + #: booleans.py:32 +-msgid "Determine whether DHCP daemon can use LDAP backends." ++msgid "" +"Deny user domains applications to map a memory region as both executable and" +" writable, this is dangerous and the executable should be reported in " +"bugzilla" msgstr "" #: booleans.py:33 -@@ -2471,8 +2468,8 @@ msgstr "" +-msgid "Allow all domains to use other domains file descriptors" ++msgid "Deny any process from ptracing or debugging any other processes." + msgstr "" - #: booleans.py:47 + #: booleans.py:34 +-msgid "Allow all domains to have the kernel load modules" ++msgid "Allow dhcpc client applications to execute iptables commands" + msgstr "" + + #: booleans.py:35 ++msgid "Determine whether DHCP daemon can use LDAP backends." ++msgstr "" ++ ++#: booleans.py:36 ++msgid "Allow all domains to use other domains file descriptors" ++msgstr "" ++ ++#: booleans.py:37 ++msgid "Allow all domains to have the kernel load modules" ++msgstr "" ++ ++#: booleans.py:38 + msgid "" + "Determine whether entropyd can use audio devices as the source for the " + "entropy feeds." + msgstr "" + +-#: booleans.py:36 ++#: booleans.py:39 + msgid "Determine whether exim can connect to databases." + msgstr "" + +-#: booleans.py:37 ++#: booleans.py:40 + msgid "" + "Determine whether exim can create, read, write, and delete generic user " + "content files." + msgstr "" + +-#: booleans.py:38 ++#: booleans.py:41 + msgid "Determine whether exim can read generic user content files." + msgstr "" + +-#: booleans.py:39 ++#: booleans.py:42 + msgid "Enable extra rules in the cron domain to support fcron." + msgstr "" + +-#: booleans.py:40 ++#: booleans.py:43 + msgid "Determine whether fenced can connect to the TCP network." + msgstr "" + +-#: booleans.py:41 ++#: booleans.py:44 + msgid "Determine whether fenced can use ssh." + msgstr "" + +-#: booleans.py:42 ++#: booleans.py:45 + msgid "Allow all domains to execute in fips_mode" + msgstr "" + +-#: booleans.py:43 ++#: booleans.py:46 + msgid "" + "Determine whether ftpd can read and write files in user home directories." + msgstr "" + +-#: booleans.py:44 ++#: booleans.py:47 msgid "" -"Determine whether ftpd can modify public files used for public file transfer " -"services. Directories/Files must be labeled public_content_rw_t." @@ -6738,30 +30270,844 @@ index 6e400ae..6eaa817 100644 +" services. Directories/Files must be labeled public_content_rw_t." msgstr "" - #: booleans.py:48 -@@ -2624,7 +2621,8 @@ msgid "Allow HTTPD scripts and modules to connect to the network using TCP." +-#: booleans.py:45 ++#: booleans.py:48 + msgid "Determine whether ftpd can connect to all unreserved ports." msgstr "" - #: booleans.py:80 +-#: booleans.py:46 ++#: booleans.py:49 + msgid "Determine whether ftpd can connect to databases over the TCP network." + msgstr "" + +-#: booleans.py:47 ++#: booleans.py:50 + msgid "" + "Determine whether ftpd can login to local users and can read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:48 ++#: booleans.py:51 + msgid "" + "Determine whether ftpd can use CIFS used for public file transfer services." + msgstr "" + +-#: booleans.py:49 ++#: booleans.py:52 + msgid "Allow ftpd to use ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:50 ++#: booleans.py:53 + msgid "" + "Determine whether ftpd can use NFS used for public file transfer services." + msgstr "" + +-#: booleans.py:51 ++#: booleans.py:54 + msgid "" + "Determine whether ftpd can bind to all unreserved ports for passive mode." + msgstr "" + +-#: booleans.py:52 ++#: booleans.py:55 + msgid "Determine whether Git CGI can search home directories." + msgstr "" + +-#: booleans.py:53 ++#: booleans.py:56 + msgid "Determine whether Git CGI can access cifs file systems." + msgstr "" + +-#: booleans.py:54 ++#: booleans.py:57 + msgid "Determine whether Git CGI can access nfs file systems." + msgstr "" + +-#: booleans.py:55 ++#: booleans.py:58 + msgid "" + "Determine whether Git session daemon can bind TCP sockets to all unreserved " + "ports." + msgstr "" + +-#: booleans.py:56 ++#: booleans.py:59 + msgid "" + "Determine whether calling user domains can execute Git daemon in the " + "git_session_t domain." + msgstr "" + +-#: booleans.py:57 ++#: booleans.py:60 + msgid "Determine whether Git system daemon can search home directories." + msgstr "" + +-#: booleans.py:58 ++#: booleans.py:61 + msgid "Determine whether Git system daemon can access cifs file systems." + msgstr "" + +-#: booleans.py:59 ++#: booleans.py:62 + msgid "Determine whether Git system daemon can access nfs file systems." + msgstr "" + +-#: booleans.py:60 ++#: booleans.py:63 + msgid "Determine whether Gitosis can send mail." + msgstr "" + +-#: booleans.py:61 ++#: booleans.py:64 + msgid "Enable reading of urandom for all domains." + msgstr "" + +-#: booleans.py:62 ++#: booleans.py:65 + msgid "" + "Allow glusterfsd to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:63 ++#: booleans.py:66 + msgid "Allow glusterfsd to share any file/directory read only." + msgstr "" + +-#: booleans.py:64 ++#: booleans.py:67 + msgid "Allow glusterfsd to share any file/directory read/write." + msgstr "" + +-#: booleans.py:65 ++#: booleans.py:68 + msgid "" + "Allow usage of the gpg-agent --write-env-file option. This also allows gpg-" + "agent to manage user files." + msgstr "" + +-#: booleans.py:66 ++#: booleans.py:69 + msgid "" + "Allow gpg web domain to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:67 ++#: booleans.py:70 + msgid "" + "Allow gssd to list tmp directories and read the kerberos credential cache." + msgstr "" + +-#: booleans.py:68 ++#: booleans.py:71 + msgid "Allow guest to exec content" + msgstr "" + +-#: booleans.py:69 ++#: booleans.py:72 + msgid "" + "Allow Apache to modify public files used for public file transfer services. " + "Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:70 ++#: booleans.py:73 + msgid "Allow httpd to use built in scripting (usually php)" + msgstr "" + +-#: booleans.py:71 ++#: booleans.py:74 + msgid "Allow http daemon to check spam" + msgstr "" + +-#: booleans.py:72 ++#: booleans.py:75 + msgid "" + "Allow httpd to act as a FTP client connecting to the ftp port and ephemeral " + "ports" + msgstr "" + +-#: booleans.py:73 ++#: booleans.py:76 + msgid "Allow httpd to connect to the ldap port" + msgstr "" + +-#: booleans.py:74 ++#: booleans.py:77 + msgid "Allow http daemon to connect to mythtv" + msgstr "" + +-#: booleans.py:75 ++#: booleans.py:78 + msgid "Allow http daemon to connect to zabbix" + msgstr "" + +-#: booleans.py:76 ++#: booleans.py:79 + msgid "Allow HTTPD scripts and modules to connect to the network using TCP." + msgstr "" + +-#: booleans.py:77 -msgid "Allow HTTPD scripts and modules to connect to cobbler over the network." ++#: booleans.py:80 +msgid "" +"Allow HTTPD scripts and modules to connect to cobbler over the network." msgstr "" - #: booleans.py:81 -@@ -3131,7 +3129,8 @@ msgstr "" +-#: booleans.py:78 ++#: booleans.py:81 + msgid "" + "Allow HTTPD scripts and modules to connect to databases over the network." + msgstr "" - #: booleans.py:197 +-#: booleans.py:79 ++#: booleans.py:82 + msgid "Allow httpd to connect to memcache server" + msgstr "" + +-#: booleans.py:80 ++#: booleans.py:83 + msgid "Allow httpd to act as a relay" + msgstr "" + +-#: booleans.py:81 ++#: booleans.py:84 + msgid "Allow http daemon to send mail" + msgstr "" + +-#: booleans.py:82 ++#: booleans.py:85 + msgid "Allow Apache to communicate with avahi service via dbus" + msgstr "" + +-#: booleans.py:83 ++#: booleans.py:86 + msgid "Allow httpd cgi support" + msgstr "" + +-#: booleans.py:84 ++#: booleans.py:87 + msgid "Allow httpd to act as a FTP server by listening on the ftp port." + msgstr "" + +-#: booleans.py:85 ++#: booleans.py:88 + msgid "Allow httpd to read home directories" + msgstr "" + +-#: booleans.py:86 ++#: booleans.py:89 + msgid "Allow httpd scripts and modules execmem/execstack" + msgstr "" + +-#: booleans.py:87 ++#: booleans.py:90 + msgid "Allow HTTPD to connect to port 80 for graceful shutdown" + msgstr "" + +-#: booleans.py:88 ++#: booleans.py:91 + msgid "Allow httpd processes to manage IPA content" + msgstr "" + +-#: booleans.py:89 ++#: booleans.py:92 + msgid "Allow Apache to use mod_auth_ntlm_winbind" + msgstr "" + +-#: booleans.py:90 ++#: booleans.py:93 + msgid "Allow Apache to use mod_auth_pam" + msgstr "" + +-#: booleans.py:91 ++#: booleans.py:94 + msgid "Allow httpd to read user content" + msgstr "" + +-#: booleans.py:92 ++#: booleans.py:95 + msgid "Allow Apache to run in stickshift mode, not transition to passenger" + msgstr "" + +-#: booleans.py:93 ++#: booleans.py:96 + msgid "Allow HTTPD scripts and modules to server cobbler files." + msgstr "" + +-#: booleans.py:94 ++#: booleans.py:97 + msgid "Allow httpd daemon to change its resource limits" + msgstr "" + +-#: booleans.py:95 ++#: booleans.py:98 + msgid "" + "Allow HTTPD to run SSI executables in the same domain as system CGI scripts." + msgstr "" + +-#: booleans.py:96 ++#: booleans.py:99 + msgid "" + "Allow apache scripts to write to public content, directories/files must be " + "labeled public_rw_content_t." + msgstr "" + +-#: booleans.py:97 ++#: booleans.py:100 + msgid "Allow Apache to execute tmp content." + msgstr "" + +-#: booleans.py:98 ++#: booleans.py:101 + msgid "" + "Unify HTTPD to communicate with the terminal. Needed for entering the " + "passphrase for certificates at the terminal." + msgstr "" + +-#: booleans.py:99 ++#: booleans.py:102 + msgid "Unify HTTPD handling of all content files." + msgstr "" + +-#: booleans.py:100 ++#: booleans.py:103 + msgid "Allow httpd to access cifs file systems" + msgstr "" + +-#: booleans.py:101 ++#: booleans.py:104 + msgid "Allow httpd to access FUSE file systems" + msgstr "" + +-#: booleans.py:102 ++#: booleans.py:105 + msgid "Allow httpd to run gpg" + msgstr "" + +-#: booleans.py:103 ++#: booleans.py:106 + msgid "Allow httpd to access nfs file systems" + msgstr "" + +-#: booleans.py:104 ++#: booleans.py:107 + msgid "Allow httpd to access openstack ports" + msgstr "" + +-#: booleans.py:105 ++#: booleans.py:108 + msgid "Allow httpd to connect to sasl" + msgstr "" + +-#: booleans.py:106 ++#: booleans.py:109 + msgid "Allow Apache to query NS records" + msgstr "" + +-#: booleans.py:107 ++#: booleans.py:110 + msgid "Determine whether icecast can listen on and connect to any TCP port." + msgstr "" + +-#: booleans.py:108 ++#: booleans.py:111 + msgid "" + "Determine whether irc clients can listen on and connect to any unreserved " + "TCP ports." + msgstr "" + +-#: booleans.py:109 ++#: booleans.py:112 + msgid "" + "Allow the Irssi IRC Client to connect to any port, and to bind to any " + "unreserved port." + msgstr "" + +-#: booleans.py:110 +-msgid "Allow confined applications to run with kerberos." +-msgstr "" +- +-#: booleans.py:111 +-msgid "Allow ksmtuned to use cifs/Samba file systems" +-msgstr "" +- +-#: booleans.py:112 +-msgid "Allow ksmtuned to use nfs file systems" +-msgstr "" +- + #: booleans.py:113 +-msgid "Allow syslogd daemon to send mail" ++msgid "Allow s-c-kdump to run bootloader in bootloader_t." + msgstr "" + + #: booleans.py:114 +-msgid "Allow syslogd the ability to read/write terminals" ++msgid "Allow confined applications to run with kerberos." + msgstr "" + + #: booleans.py:115 +-msgid "Allow logging in and using the system from /dev/console." ++msgid "Allow ksmtuned to use cifs/Samba file systems" + msgstr "" + + #: booleans.py:116 +-msgid "Allow epylog to send mail" ++msgid "Allow ksmtuned to use nfs file systems" + msgstr "" + + #: booleans.py:117 +-msgid "Allow mailman to access FUSE file systems" ++msgid "Allow logadm to exec content" + msgstr "" + + #: booleans.py:118 +-msgid "Determine whether mcelog supports client mode." ++msgid "Allow syslogd daemon to send mail" + msgstr "" + + #: booleans.py:119 +-msgid "Determine whether mcelog can execute scripts." ++msgid "Allow syslogd the ability to read/write terminals" + msgstr "" + + #: booleans.py:120 +-msgid "Determine whether mcelog can use all the user ttys." ++msgid "Allow logging in and using the system from /dev/console." + msgstr "" + + #: booleans.py:121 +-msgid "Determine whether mcelog supports server mode." ++msgid "Determine whether logwatch can connect to mail over the network." + msgstr "" + + #: booleans.py:122 +-msgid "" +-"Control the ability to mmap a low area of the address space, as configured " +-"by /proc/sys/kernel/mmap_min_addr." ++msgid "Allow epylog to send mail" + msgstr "" + + #: booleans.py:123 +-msgid "Allow mock to read files in home directories." ++msgid "Allow mailman to access FUSE file systems" + msgstr "" + + #: booleans.py:124 +-msgid "Allow the mount commands to mount any directory or file." ++msgid "Determine whether mcelog supports client mode." + msgstr "" + + #: booleans.py:125 +-msgid "Allow mozilla plugin domain to connect to the network using TCP." ++msgid "Determine whether mcelog can execute scripts." + msgstr "" + + #: booleans.py:126 +-msgid "Allow mozilla plugin to support GPS." ++msgid "Determine whether mcelog can use all the user ttys." + msgstr "" + + #: booleans.py:127 +-msgid "Allow mozilla plugin to support spice protocols." ++msgid "Determine whether mcelog supports server mode." + msgstr "" + + #: booleans.py:128 +-msgid "Allow confined web browsers to read home directory content" ++msgid "Determine whether minidlna can read generic user content." + msgstr "" + + #: booleans.py:129 +-msgid "Determine whether mpd can traverse user home directories." ++msgid "" ++"Control the ability to mmap a low area of the address space, as configured " ++"by /proc/sys/kernel/mmap_min_addr." + msgstr "" + + #: booleans.py:130 +-msgid "Determine whether mpd can use cifs file systems." ++msgid "Allow mock to read files in home directories." + msgstr "" + + #: booleans.py:131 +-msgid "Determine whether mpd can use nfs file systems." ++msgid "Allow the mount commands to mount any directory or file." + msgstr "" + + #: booleans.py:132 +-msgid "Determine whether mplayer can make its stack executable." ++msgid "Allow mozilla plugin domain to connect to the network using TCP." + msgstr "" + + #: booleans.py:133 +-msgid "Allow mysqld to connect to all ports" ++msgid "Allow mozilla plugin to support GPS." + msgstr "" + + #: booleans.py:134 +-msgid "Determine whether Bind can bind tcp socket to http ports." ++msgid "Allow mozilla plugin to support spice protocols." + msgstr "" + + #: booleans.py:135 ++msgid "Allow confined web browsers to read home directory content" ++msgstr "" ++ ++#: booleans.py:136 ++msgid "Determine whether mpd can traverse user home directories." ++msgstr "" ++ ++#: booleans.py:137 ++msgid "Determine whether mpd can use cifs file systems." ++msgstr "" ++ ++#: booleans.py:138 ++msgid "Determine whether mpd can use nfs file systems." ++msgstr "" ++ ++#: booleans.py:139 ++msgid "Determine whether mplayer can make its stack executable." ++msgstr "" ++ ++#: booleans.py:140 ++msgid "Allow mysqld to connect to all ports" ++msgstr "" ++ ++#: booleans.py:141 ++msgid "Determine whether Bind can bind tcp socket to http ports." ++msgstr "" ++ ++#: booleans.py:142 + msgid "" + "Determine whether Bind can write to master zone files. Generally this is " + "used for dynamic DNS or zone transfers." + msgstr "" + +-#: booleans.py:136 ++#: booleans.py:143 + msgid "Allow any files/directories to be exported read/only via NFS." + msgstr "" + +-#: booleans.py:137 ++#: booleans.py:144 + msgid "Allow any files/directories to be exported read/write via NFS." + msgstr "" + +-#: booleans.py:138 ++#: booleans.py:145 + msgid "" + "Allow nfs servers to modify public files used for public file transfer " + "services. Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:139 ++#: booleans.py:146 + msgid "Allow system to run with NIS" + msgstr "" + +-#: booleans.py:140 ++#: booleans.py:147 + msgid "Allow confined applications to use nscd shared memory." + msgstr "" + +-#: booleans.py:141 ++#: booleans.py:148 + msgid "Allow openshift to lockdown app" + msgstr "" + +-#: booleans.py:142 ++#: booleans.py:149 + msgid "Determine whether openvpn can connect to the TCP network." + msgstr "" + +-#: booleans.py:143 ++#: booleans.py:150 + msgid "Determine whether openvpn can read generic user home content files." + msgstr "" + +-#: booleans.py:144 ++#: booleans.py:151 + msgid "Allow openvpn to run unconfined scripts" + msgstr "" + +-#: booleans.py:145 ++#: booleans.py:152 + msgid "Allow piranha-lvs domain to connect to the network using TCP." + msgstr "" + +-#: booleans.py:146 ++#: booleans.py:153 + msgid "Allow polipo to connect to all ports > 1023" + msgstr "" + +-#: booleans.py:147 ++#: booleans.py:154 + msgid "" + "Determine whether Polipo session daemon can bind tcp sockets to all " + "unreserved ports." + msgstr "" + +-#: booleans.py:148 ++#: booleans.py:155 + msgid "" + "Determine whether calling user domains can execute Polipo daemon in the " + "polipo_session_t domain." + msgstr "" + +-#: booleans.py:149 ++#: booleans.py:156 + msgid "Determine whether polipo can access cifs file systems." + msgstr "" + +-#: booleans.py:150 ++#: booleans.py:157 + msgid "Determine whether Polipo can access nfs file systems." + msgstr "" + +-#: booleans.py:151 ++#: booleans.py:158 + msgid "Enable polyinstantiated directory support." + msgstr "" + +-#: booleans.py:152 ++#: booleans.py:159 + msgid "Allow postfix_local domain full write access to mail_spool directories" + msgstr "" + +-#: booleans.py:153 ++#: booleans.py:160 + msgid "Allow postgresql to use ssh and rsync for point-in-time recovery" + msgstr "" + +-#: booleans.py:154 ++#: booleans.py:161 + msgid "Allow transmit client label to foreign database" + msgstr "" + +-#: booleans.py:155 ++#: booleans.py:162 + msgid "Allow database admins to execute DML statement" + msgstr "" + +-#: booleans.py:156 ++#: booleans.py:163 + msgid "Allow unprivileged users to execute DDL statement" + msgstr "" + +-#: booleans.py:157 ++#: booleans.py:164 + msgid "Allow pppd to load kernel modules for certain modems" + msgstr "" + +-#: booleans.py:158 ++#: booleans.py:165 + msgid "Allow pppd to be run for a regular user" + msgstr "" + +-#: booleans.py:159 ++#: booleans.py:166 + msgid "Determine whether privoxy can connect to all tcp ports." + msgstr "" + +-#: booleans.py:160 ++#: booleans.py:167 + msgid "" + "Permit to prosody to bind apache port. Need to be activated to use BOSH." + msgstr "" + +-#: booleans.py:161 ++#: booleans.py:168 + msgid "Allow Puppet client to manage all file types." + msgstr "" + +-#: booleans.py:162 ++#: booleans.py:169 + msgid "Allow Puppet master to use connect to MySQL and PostgreSQL database" + msgstr "" + +-#: booleans.py:163 ++#: booleans.py:170 + msgid "Allow racoon to read shadow" + msgstr "" + +-#: booleans.py:164 ++#: booleans.py:171 + msgid "" + "Allow rsync to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:165 ++#: booleans.py:172 + msgid "Allow rsync to run as a client" + msgstr "" + +-#: booleans.py:166 ++#: booleans.py:173 + msgid "Allow rsync to export any files/directories read only." + msgstr "" + +-#: booleans.py:167 ++#: booleans.py:174 + msgid "Allow rsync server to manage all files/directories on the system." + msgstr "" + +-#: booleans.py:168 ++#: booleans.py:175 + msgid "Allow samba to create new home directories (e.g. via PAM)" + msgstr "" + +-#: booleans.py:169 ++#: booleans.py:176 + msgid "" + "Allow samba to act as the domain controller, add users, groups and change " + "passwords." + msgstr "" + +-#: booleans.py:170 ++#: booleans.py:177 + msgid "Allow samba to share users home directories." + msgstr "" + +-#: booleans.py:171 ++#: booleans.py:178 + msgid "Allow samba to share any file/directory read only." + msgstr "" + +-#: booleans.py:172 ++#: booleans.py:179 + msgid "Allow samba to share any file/directory read/write." + msgstr "" + +-#: booleans.py:173 ++#: booleans.py:180 + msgid "Allow samba to act as a portmapper" + msgstr "" + +-#: booleans.py:174 ++#: booleans.py:181 + msgid "Allow samba to run unconfined scripts" + msgstr "" + +-#: booleans.py:175 ++#: booleans.py:182 + msgid "Allow samba to export ntfs/fusefs volumes." + msgstr "" + +-#: booleans.py:176 ++#: booleans.py:183 + msgid "Allow samba to export NFS volumes." + msgstr "" + +-#: booleans.py:177 ++#: booleans.py:184 + msgid "Allow sanlock to read/write fuse files" + msgstr "" + +-#: booleans.py:178 ++#: booleans.py:185 + msgid "Allow sanlock to manage nfs files" + msgstr "" + +-#: booleans.py:179 ++#: booleans.py:186 + msgid "Allow sanlock to manage cifs files" + msgstr "" + +-#: booleans.py:180 ++#: booleans.py:187 + msgid "Allow sasl to read shadow" + msgstr "" + +-#: booleans.py:181 ++#: booleans.py:188 + msgid "Allow secadm to exec content" + msgstr "" + +-#: booleans.py:182 ++#: booleans.py:189 + msgid "" + "disallow programs, such as newrole, from transitioning to administrative " + "user domains." + msgstr "" + +-#: booleans.py:183 ++#: booleans.py:190 + msgid "Disable kernel module loading." + msgstr "" + +-#: booleans.py:184 ++#: booleans.py:191 + msgid "" + "Boolean to determine whether the system permits loading policy, setting " + "enforcing mode, and changing boolean values. Set this to true and you have " + "to reboot to set it back." + msgstr "" + +-#: booleans.py:185 ++#: booleans.py:192 + msgid "Allow regular users direct dri device access" + msgstr "" + +-#: booleans.py:186 ++#: booleans.py:193 + msgid "" + "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 "" + +-#: booleans.py:187 ++#: booleans.py:194 + msgid "" + "Allow all unconfined executables to use libraries requiring text relocation " + "that are not labeled textrel_shlib_t" + msgstr "" + +-#: booleans.py:188 ++#: booleans.py:195 + msgid "" + "Allow unconfined executables to make their stack executable. This should " + "never, ever be necessary. Probably indicates a badly coded executable, but " + "could indicate an attack. This executable should be reported in bugzilla" + msgstr "" + +-#: booleans.py:189 ++#: booleans.py:196 + msgid "Allow users to connect to the local mysql server" + msgstr "" + +-#: booleans.py:190 ++#: booleans.py:197 msgid "" -"Allow confined users the ability to execute the ping and traceroute commands." +"Allow confined users the ability to execute the ping and traceroute " +"commands." msgstr "" - #: booleans.py:198 -@@ -3150,8 +3149,8 @@ msgstr "" +-#: booleans.py:191 ++#: booleans.py:198 + msgid "Allow users to connect to PostgreSQL" + msgstr "" - #: booleans.py:201 +-#: booleans.py:192 ++#: booleans.py:199 + msgid "" + "Allow user to r/w files on filesystems that do not have extended attributes " + "(FAT, CDROM, FLOPPY)" + msgstr "" + +-#: booleans.py:193 ++#: booleans.py:200 + msgid "Allow user music sharing" + msgstr "" + +-#: booleans.py:194 ++#: booleans.py:201 msgid "" -"Allow users to run TCP servers (bind to ports and accept connection from the " -"same domain and outside users) disabling this forces FTP passive mode and " @@ -6770,19 +31116,211 @@ index 6e400ae..6eaa817 100644 "may change other protocols." msgstr "" -@@ -3243,7 +3242,8 @@ msgid "Allow sysadm to exec content" +-#: booleans.py:195 ++#: booleans.py:202 + msgid "Allow user to use ssh chroot environment." msgstr "" - #: booleans.py:221 +-#: booleans.py:196 ++#: booleans.py:203 + msgid "" + "Determine whether sftpd can modify public files used for public file " + "transfer services. Directories/Files must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:197 ++#: booleans.py:204 + msgid "" + "Determine whether sftpd-can read and write files in user home directories." + msgstr "" + +-#: booleans.py:198 ++#: booleans.py:205 + msgid "" + "Determine whether sftpd-can login to local users and read and write all " + "files on the system, governed by DAC." + msgstr "" + +-#: booleans.py:199 ++#: booleans.py:206 + msgid "" + "Determine whether sftpd can read and write files in user ssh home " + "directories." + msgstr "" + +-#: booleans.py:200 ++#: booleans.py:207 + msgid "Allow sge to connect to the network using any TCP port" + msgstr "" + +-#: booleans.py:201 ++#: booleans.py:208 + msgid "Allow sge to access nfs file systems." + msgstr "" + +-#: booleans.py:202 ++#: booleans.py:209 + msgid "Determine whether smartmon can support devices on 3ware controllers." + msgstr "" + +-#: booleans.py:203 ++#: booleans.py:210 + msgid "" + "Allow samba to modify public files used for public file transfer services. " + "Files/Directories must be labeled public_content_rw_t." + msgstr "" + +-#: booleans.py:204 ++#: booleans.py:211 + msgid "Allow user spamassassin clients to use the network." + msgstr "" + +-#: booleans.py:205 ++#: booleans.py:212 + msgid "Allow spamd to read/write user home directories." + msgstr "" + +-#: booleans.py:206 ++#: booleans.py:213 + msgid "Determine whether squid can connect to all TCP ports." + msgstr "" + +-#: booleans.py:207 ++#: booleans.py:214 + msgid "Determine whether squid can run as a transparent proxy." + msgstr "" + +-#: booleans.py:208 ++#: booleans.py:215 + msgid "" + "Allow ssh with chroot env to read and write files in the user home " + "directories" + msgstr "" + +-#: booleans.py:209 ++#: booleans.py:216 + msgid "allow host key based authentication" + msgstr "" + +-#: booleans.py:210 ++#: booleans.py:217 + msgid "Allow ssh logins as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:211 ++#: booleans.py:218 + msgid "Allow staff to exec content" + msgstr "" + +-#: booleans.py:212 ++#: booleans.py:219 + msgid "allow staff user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:213 ++#: booleans.py:220 + msgid "Allow sysadm to exec content" + msgstr "" + +-#: booleans.py:214 -msgid "Allow the Telepathy connection managers to connect to any network port." ++#: booleans.py:221 +msgid "" +"Allow the Telepathy connection managers to connect to any network port." msgstr "" - #: booleans.py:222 -@@ -3318,8 +3318,8 @@ msgstr "" +-#: booleans.py:215 ++#: booleans.py:222 + msgid "" + "Allow the Telepathy connection managers to connect to any generic TCP port." + msgstr "" - #: booleans.py:238 +-#: booleans.py:216 +-msgid "Allow testpolicy to exec content" +-msgstr "" +- +-#: booleans.py:217 ++#: booleans.py:223 + msgid "" + "Allow tftp to modify public files used for public file transfer services." + msgstr "" + +-#: booleans.py:218 ++#: booleans.py:224 + msgid "Allow tftp to read and write files in the user home directories" + msgstr "" + +-#: booleans.py:219 ++#: booleans.py:225 + msgid "Determine whether tor can bind tcp sockets to all unreserved ports." + msgstr "" + +-#: booleans.py:220 ++#: booleans.py:226 + msgid "Allow tor to act as a relay" + msgstr "" + +-#: booleans.py:221 ++#: booleans.py:227 + msgid "" + "allow unconfined users to transition to the chrome sandbox domains when " + "running chrome-sandbox" + msgstr "" + +-#: booleans.py:222 ++#: booleans.py:228 + msgid "Allow a user to login as an unconfined domain" + msgstr "" + +-#: booleans.py:223 ++#: booleans.py:229 + msgid "" + "Allow unconfined users to transition to the Mozilla plugin domain when " + "running xulrunner plugin-container." + msgstr "" + +-#: booleans.py:224 ++#: booleans.py:230 + msgid "Allow unprivledged user to create and transition to svirt domains." + msgstr "" + +-#: booleans.py:225 ++#: booleans.py:231 + msgid "Support ecryptfs home directories" + msgstr "" + +-#: booleans.py:226 ++#: booleans.py:232 + msgid "Support fusefs home directories" + msgstr "" + +-#: booleans.py:227 ++#: booleans.py:233 + msgid "Determine whether to support lpd server." + msgstr "" + +-#: booleans.py:228 ++#: booleans.py:234 + msgid "Support NFS home directories" + msgstr "" + +-#: booleans.py:229 ++#: booleans.py:235 + msgid "Support SAMBA home directories" + msgstr "" + +-#: booleans.py:230 ++#: booleans.py:236 + msgid "Allow user to exec content" + msgstr "" + +-#: booleans.py:231 ++#: booleans.py:237 + msgid "Determine whether varnishd can use the full TCP network." + msgstr "" + +-#: booleans.py:232 ++#: booleans.py:238 msgid "" -"Determine whether attempts by vbetool to mmap low regions should be silently " -"blocked." @@ -6790,20 +31328,839 @@ index 6e400ae..6eaa817 100644 +" blocked." msgstr "" - #: booleans.py:239 -@@ -3397,7 +3397,8 @@ msgstr "" +-#: booleans.py:233 ++#: booleans.py:239 ++msgid "Allow sandbox containers to send audit messages" ++msgstr "" ++ ++#: booleans.py:240 ++msgid "Allow sandbox containers to use netlink system calls" ++msgstr "" ++ ++#: booleans.py:241 + msgid "Allow virtual processes to run as userdomains" + msgstr "" - #: booleans.py:256 +-#: booleans.py:234 ++#: booleans.py:242 + msgid "" + "Allow confined virtual guests to use serial/parallel communication ports" + msgstr "" + +-#: booleans.py:235 ++#: booleans.py:243 + msgid "" + "Allow confined virtual guests to use executable memory and executable stack" + msgstr "" + +-#: booleans.py:236 ++#: booleans.py:244 + msgid "Allow confined virtual guests to read fuse files" + msgstr "" + +-#: booleans.py:237 ++#: booleans.py:245 + msgid "Allow confined virtual guests to manage nfs files" + msgstr "" + +-#: booleans.py:238 ++#: booleans.py:246 + msgid "Allow confined virtual guests to interact with rawip sockets" + msgstr "" + +-#: booleans.py:239 ++#: booleans.py:247 + msgid "Allow confined virtual guests to manage cifs files" + msgstr "" + +-#: booleans.py:240 ++#: booleans.py:248 + msgid "Allow confined virtual guests to interact with the sanlock" + msgstr "" + +-#: booleans.py:241 ++#: booleans.py:249 + msgid "Allow confined virtual guests to use usb devices" + msgstr "" + +-#: booleans.py:242 ++#: booleans.py:250 + msgid "Allow confined virtual guests to interact with the xserver" + msgstr "" + +-#: booleans.py:243 ++#: booleans.py:251 + msgid "Determine whether webadm can manage generic user files." + msgstr "" + +-#: booleans.py:244 ++#: booleans.py:252 + msgid "Determine whether webadm can read generic user files." + msgstr "" + +-#: booleans.py:245 ++#: booleans.py:253 + msgid "" + "Determine whether attempts by wine to mmap low regions should be silently " + "blocked." + msgstr "" + +-#: booleans.py:246 ++#: booleans.py:254 + msgid "Allow the graphical login program to execute bootloader" + msgstr "" + +-#: booleans.py:247 ++#: booleans.py:255 + msgid "" + "Allow the graphical login program to login directly as sysadm_r:sysadm_t" + msgstr "" + +-#: booleans.py:248 ++#: booleans.py:256 msgid "" -"Allow the graphical login program to create files in HOME dirs as xdm_home_t." +"Allow the graphical login program to create files in HOME dirs as " +"xdm_home_t." msgstr "" - #: booleans.py:257 -@@ -3978,8 +3979,8 @@ msgstr "" +-#: booleans.py:249 ++#: booleans.py:257 + msgid "Allow xen to manage nfs files" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:638 +-#: booleans.py:250 ++#: booleans.py:258 + msgid "" + "Allow xend to run blktapctrl/tapdisk. Not required if using dedicated " + "logical volumes for disk images." + msgstr "" + +-#: booleans.py:251 ++#: booleans.py:259 + msgid "Allow xend to run qemu-dm. Not required if using paravirt and no vfb." + msgstr "" + +-#: booleans.py:252 ++#: booleans.py:260 + msgid "" + "Allow xguest users to configure Network Manager and connect to apache ports" + msgstr "" + +-#: booleans.py:253 ++#: booleans.py:261 + msgid "Allow xguest to exec content" + msgstr "" + +-#: booleans.py:254 ++#: booleans.py:262 + msgid "Allow xguest users to mount removable media" + msgstr "" + +-#: booleans.py:255 ++#: booleans.py:263 + msgid "Allow xguest to use blue tooth devices" + msgstr "" + +-#: booleans.py:256 ++#: booleans.py:264 + msgid "Allows clients to write to the X server shared memory segments." + msgstr "" + +-#: booleans.py:257 ++#: booleans.py:265 + msgid "Allows XServer to execute writable memory" + msgstr "" + +-#: booleans.py:258 ++#: booleans.py:266 + msgid "Support X userspace object manager" + msgstr "" + +-#: booleans.py:259 ++#: booleans.py:267 + msgid "Determine whether zabbix can connect to all TCP ports" + msgstr "" + +-#: booleans.py:260 ++#: booleans.py:268 + msgid "Allow zarafa domains to setrlimit/sys_rouserce." + msgstr "" + +-#: booleans.py:261 ++#: booleans.py:269 + msgid "Allow zebra daemon to write it configuration files" + msgstr "" + +-#: booleans.py:262 ++#: booleans.py:270 + msgid "" + "Allow ZoneMinder to modify public files used for public file transfer " + "services." + msgstr "" + +-#: booleans.py:263 ++#: booleans.py:271 + msgid "Allow ZoneMinder to run su/sudo." + msgstr "" + +-#: ../sepolicy/sepolicy.py:194 ++#: ../sepolicy/sepolicy.py:195 + #, python-format + msgid "Interface %s does not exist." + msgstr "" + +-#: ../sepolicy/sepolicy.py:292 ++#: ../sepolicy/sepolicy.py:293 + msgid "You need to install policycoreutils-gui package to use the gui option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:296 ++#: ../sepolicy/sepolicy.py:297 + msgid "Graphical User Interface for SELinux Policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:299 ../sepolicy/sepolicy.py:345 ++#: ../sepolicy/sepolicy.py:300 ../sepolicy/sepolicy.py:346 + msgid "Domain name(s) of man pages to be created" + msgstr "" + +-#: ../sepolicy/sepolicy.py:311 ++#: ../sepolicy/sepolicy.py:312 + msgid "Alternative root needs to be setup" + msgstr "" + +-#: ../sepolicy/sepolicy.py:327 ++#: ../sepolicy/sepolicy.py:328 + msgid "Generate SELinux man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:330 ++#: ../sepolicy/sepolicy.py:331 + msgid "path in which the generated SELinux man pages will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:332 ++#: ../sepolicy/sepolicy.py:333 + msgid "name of the OS for man pages" + msgstr "" + +-#: ../sepolicy/sepolicy.py:334 ++#: ../sepolicy/sepolicy.py:335 + msgid "Generate HTML man pages structure for selected SELinux man page" + msgstr "" + +-#: ../sepolicy/sepolicy.py:336 ++#: ../sepolicy/sepolicy.py:337 + msgid "Alternate root directory, defaults to /" + msgstr "" + +-#: ../sepolicy/sepolicy.py:338 ++#: ../sepolicy/sepolicy.py:339 + msgid "" + "With this flag, alternative root path needs to include file context files " + "and policy.xml file" + msgstr "" + +-#: ../sepolicy/sepolicy.py:342 ++#: ../sepolicy/sepolicy.py:343 + msgid "All domains" + msgstr "" + +-#: ../sepolicy/sepolicy.py:350 ++#: ../sepolicy/sepolicy.py:351 + msgid "Query SELinux policy network information" + msgstr "" + +-#: ../sepolicy/sepolicy.py:355 ++#: ../sepolicy/sepolicy.py:356 + msgid "list all SELinux port types" + msgstr "" + +-#: ../sepolicy/sepolicy.py:358 ++#: ../sepolicy/sepolicy.py:359 + msgid "show SELinux type related to the port" + msgstr "" + +-#: ../sepolicy/sepolicy.py:361 ++#: ../sepolicy/sepolicy.py:362 + msgid "Show ports defined for this SELinux type" + msgstr "" + +-#: ../sepolicy/sepolicy.py:364 ++#: ../sepolicy/sepolicy.py:365 + msgid "show ports to which this domain can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:367 ++#: ../sepolicy/sepolicy.py:368 + msgid "show ports to which this application can bind and/or connect" + msgstr "" + +-#: ../sepolicy/sepolicy.py:382 ++#: ../sepolicy/sepolicy.py:383 + msgid "query SELinux policy to see if domains can communicate with each other" + msgstr "" + +-#: ../sepolicy/sepolicy.py:385 ++#: ../sepolicy/sepolicy.py:386 + msgid "Source Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:388 ++#: ../sepolicy/sepolicy.py:389 + msgid "Target Domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:407 ++#: ../sepolicy/sepolicy.py:408 + msgid "query SELinux Policy to see description of booleans" + msgstr "" + +-#: ../sepolicy/sepolicy.py:411 ++#: ../sepolicy/sepolicy.py:412 + msgid "get all booleans descriptions" + msgstr "" + +-#: ../sepolicy/sepolicy.py:414 ++#: ../sepolicy/sepolicy.py:415 + msgid "boolean to get description" + msgstr "" + +-#: ../sepolicy/sepolicy.py:424 ++#: ../sepolicy/sepolicy.py:425 + msgid "" + "query SELinux Policy to see how a source process domain can transition to " + "the target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:427 ++#: ../sepolicy/sepolicy.py:428 + msgid "source process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:430 ++#: ../sepolicy/sepolicy.py:431 + msgid "target process domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:472 ++#: ../sepolicy/sepolicy.py:473 + #, python-format + msgid "sepolicy generate: error: one of the arguments %s is required" + msgstr "" + +-#: ../sepolicy/sepolicy.py:477 ++#: ../sepolicy/sepolicy.py:478 + msgid "Command required for this type of policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:488 ++#: ../sepolicy/sepolicy.py:489 + #, python-format + msgid "" + "-t option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:493 ++#: ../sepolicy/sepolicy.py:494 + #, python-format + msgid "" + "-d option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:497 ++#: ../sepolicy/sepolicy.py:498 + #, python-format + msgid "" + "-a option can not be used with '%s' domains. Read usage for more details." + msgstr "" + +-#: ../sepolicy/sepolicy.py:501 ++#: ../sepolicy/sepolicy.py:502 + msgid "-w option can not be used with the --newtype option" + msgstr "" + +-#: ../sepolicy/sepolicy.py:521 ++#: ../sepolicy/sepolicy.py:522 + msgid "List SELinux Policy interfaces" + msgstr "" + +-#: ../sepolicy/sepolicy.py:541 ++#: ../sepolicy/sepolicy.py:542 + msgid "Enter interface names, you wish to query" + msgstr "" + +-#: ../sepolicy/sepolicy.py:550 ++#: ../sepolicy/sepolicy.py:551 + msgid "Generate SELinux Policy module template" + msgstr "" + +-#: ../sepolicy/sepolicy.py:553 ++#: ../sepolicy/sepolicy.py:554 + msgid "Enter domain type which you will be extending" + msgstr "" + +-#: ../sepolicy/sepolicy.py:556 ++#: ../sepolicy/sepolicy.py:557 + msgid "Enter SELinux user(s) which will transition to this domain" + msgstr "" + +-#: ../sepolicy/sepolicy.py:559 ++#: ../sepolicy/sepolicy.py:560 + msgid "Enter SELinux role(s) to which the administror domain will transition" + msgstr "" + +-#: ../sepolicy/sepolicy.py:562 ++#: ../sepolicy/sepolicy.py:563 + msgid "Enter domain(s) which this confined admin will administrate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:565 ++#: ../sepolicy/sepolicy.py:566 + msgid "name of policy to generate" + msgstr "" + +-#: ../sepolicy/sepolicy.py:572 ++#: ../sepolicy/sepolicy.py:573 + msgid "path in which the generated policy files will be stored" + msgstr "" + +-#: ../sepolicy/sepolicy.py:574 ++#: ../sepolicy/sepolicy.py:575 + msgid "path to which the confined processes will need to write" + msgstr "" + +-#: ../sepolicy/sepolicy.py:575 ++#: ../sepolicy/sepolicy.py:576 + msgid "Policy types which require a command" + msgstr "" + +-#: ../sepolicy/sepolicy.py:579 ../sepolicy/sepolicy.py:582 +-#: ../sepolicy/sepolicy.py:585 ../sepolicy/sepolicy.py:588 +-#: ../sepolicy/sepolicy.py:591 ../sepolicy/sepolicy.py:597 +-#: ../sepolicy/sepolicy.py:600 ../sepolicy/sepolicy.py:603 +-#: ../sepolicy/sepolicy.py:609 ../sepolicy/sepolicy.py:612 +-#: ../sepolicy/sepolicy.py:615 ../sepolicy/sepolicy.py:618 ++#: ../sepolicy/sepolicy.py:580 ../sepolicy/sepolicy.py:583 ++#: ../sepolicy/sepolicy.py:586 ../sepolicy/sepolicy.py:589 ++#: ../sepolicy/sepolicy.py:592 ../sepolicy/sepolicy.py:598 ++#: ../sepolicy/sepolicy.py:601 ../sepolicy/sepolicy.py:604 ++#: ../sepolicy/sepolicy.py:610 ../sepolicy/sepolicy.py:613 ++#: ../sepolicy/sepolicy.py:616 ../sepolicy/sepolicy.py:619 + #, python-format + msgid "Generate '%s' policy" + msgstr "" + +-#: ../sepolicy/sepolicy.py:606 ++#: ../sepolicy/sepolicy.py:607 + #, python-format + msgid "Generate '%s' policy " + msgstr "" + +-#: ../sepolicy/sepolicy.py:620 ++#: ../sepolicy/sepolicy.py:621 + msgid "executable to confine" + msgstr "" + +-#: ../sepolicy/sepolicy.py:625 ++#: ../sepolicy/sepolicy.py:626 + msgid "commands" + msgstr "" + +-#: ../sepolicy/sepolicy.py:628 ++#: ../sepolicy/sepolicy.py:629 + msgid "Alternate SELinux policy, defaults to /sys/fs/selinux/policy" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:89 ++#: ../sepolicy/sepolicy/__init__.py:96 + #, python-format + msgid "-- Allowed %s [ %s ]" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:95 ../sepolicy/sepolicy/gui.py:1135 ++#: ../sepolicy/sepolicy/__init__.py:102 ../sepolicy/sepolicy/gui.py:1152 + msgid "all files" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:96 ++#: ../sepolicy/sepolicy/__init__.py:103 + msgid "regular file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:97 ++#: ../sepolicy/sepolicy/__init__.py:104 + msgid "directory" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:98 ++#: ../sepolicy/sepolicy/__init__.py:105 + msgid "character device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:99 ++#: ../sepolicy/sepolicy/__init__.py:106 + msgid "block device" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:100 ++#: ../sepolicy/sepolicy/__init__.py:107 + msgid "socket file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:101 ++#: ../sepolicy/sepolicy/__init__.py:108 + msgid "symbolic link" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:102 ++#: ../sepolicy/sepolicy/__init__.py:109 + msgid "named pipe" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:398 ++#: ../sepolicy/sepolicy/__init__.py:427 + msgid "No SELinux Policy installed" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:478 ++#: ../sepolicy/sepolicy/__init__.py:506 + msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:724 ++#: ../sepolicy/sepolicy/__init__.py:768 + #, python-format + msgid "Failed to read %s policy file" + msgstr "" + +-#: ../sepolicy/sepolicy/__init__.py:829 ++#: ../sepolicy/sepolicy/__init__.py:873 + msgid "unknown" + msgstr "غير معروف" + +-#: ../sepolicy/sepolicy/generate.py:132 ++#: ../sepolicy/sepolicy/generate.py:134 + msgid "Internet Services Daemon" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:136 ++#: ../sepolicy/sepolicy/generate.py:138 + msgid "Existing Domain Type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:137 ++#: ../sepolicy/sepolicy/generate.py:139 + msgid "Minimal Terminal Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:138 ++#: ../sepolicy/sepolicy/generate.py:140 + msgid "Minimal X Windows Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:139 ++#: ../sepolicy/sepolicy/generate.py:141 + msgid "Desktop Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:140 ++#: ../sepolicy/sepolicy/generate.py:142 + msgid "Administrator Login User Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:141 ++#: ../sepolicy/sepolicy/generate.py:143 + msgid "Confined Root Administrator Role" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:142 ++#: ../sepolicy/sepolicy/generate.py:144 + msgid "Module information for a new type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:147 ++#: ../sepolicy/sepolicy/generate.py:149 + msgid "Valid Types:\n" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:181 ++#: ../sepolicy/sepolicy/generate.py:183 + #, python-format + msgid "Ports must be numbers or ranges of numbers from 1 to %d " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:192 ++#: ../sepolicy/sepolicy/generate.py:194 + msgid "You must enter a valid policy type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:195 ++#: ../sepolicy/sepolicy/generate.py:197 + #, python-format + msgid "You must enter a name for your policy module for your '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:333 ++#: ../sepolicy/sepolicy/generate.py:335 + msgid "" + "Name must be alpha numberic with no spaces. Consider using option \"-n " + "MODULENAME\"" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:425 ++#: ../sepolicy/sepolicy/generate.py:427 + msgid "User Role types can not be assigned executables." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:431 ++#: ../sepolicy/sepolicy/generate.py:433 + msgid "Only Daemon apps can use an init script.." + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:449 ++#: ../sepolicy/sepolicy/generate.py:451 + msgid "use_resolve must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:455 ++#: ../sepolicy/sepolicy/generate.py:457 + msgid "use_syslog must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:461 ++#: ../sepolicy/sepolicy/generate.py:463 + msgid "use_kerberos must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:467 ++#: ../sepolicy/sepolicy/generate.py:469 + msgid "manage_krb5_rcache must be a boolean value " + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:497 ++#: ../sepolicy/sepolicy/generate.py:499 + msgid "USER Types automatically get a tmp type" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:838 ++#: ../sepolicy/sepolicy/generate.py:840 + #, python-format + msgid "'%s' policy modules require existing domains" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:863 ++#: ../sepolicy/sepolicy/generate.py:865 + msgid "Type field required" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:876 ++#: ../sepolicy/sepolicy/generate.py:878 + #, python-format + msgid "" + "You need to define a new type which ends with: \n" + " %s" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1104 ++#: ../sepolicy/sepolicy/generate.py:1106 + msgid "You must enter the executable path for your confined process" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1363 ++#: ../sepolicy/sepolicy/generate.py:1369 + msgid "Type Enforcement file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1364 ++#: ../sepolicy/sepolicy/generate.py:1370 + msgid "Interface file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1365 ++#: ../sepolicy/sepolicy/generate.py:1371 + msgid "File Contexts file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1367 ++#: ../sepolicy/sepolicy/generate.py:1373 + msgid "Spec file" + msgstr "" + +-#: ../sepolicy/sepolicy/generate.py:1368 ++#: ../sepolicy/sepolicy/generate.py:1374 + msgid "Setup Script" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:25 +-#: ../sepolicy/sepolicy/sepolicy.glade:4369 ++#: ../sepolicy/sepolicy/sepolicy.glade:4330 + msgid "Applications" + msgstr "" + +@@ -3811,572 +3868,555 @@ msgstr "" + msgid "Select domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/sepolicy.glade:80 ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search >>" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:95 ../sepolicy/sepolicy/gui.py:2343 + msgid "File Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2316 ++#: ../sepolicy/sepolicy/sepolicy.glade:112 ../sepolicy/sepolicy/gui.py:2353 + msgid "Users" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:129 +-#: ../sepolicy/sepolicy/sepolicy.glade:1897 +-#: ../sepolicy/sepolicy/sepolicy.glade:3802 ../sepolicy/sepolicy/gui.py:2297 ++#: ../sepolicy/sepolicy/sepolicy.glade:1898 ++#: ../sepolicy/sepolicy/sepolicy.glade:3803 ../sepolicy/sepolicy/gui.py:2334 + msgid "System" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:189 +-#: ../sepolicy/sepolicy/sepolicy.glade:4406 +-#: ../sepolicy/sepolicy/sepolicy.glade:4499 +-#: ../sepolicy/sepolicy/sepolicy.glade:4645 +-#: ../sepolicy/sepolicy/sepolicy.glade:4793 +-#: ../sepolicy/sepolicy/sepolicy.glade:4934 +-#: ../sepolicy/sepolicy/sepolicy.glade:5007 ++#: ../sepolicy/sepolicy/sepolicy.glade:4367 ++#: ../sepolicy/sepolicy/sepolicy.glade:4460 ++#: ../sepolicy/sepolicy/sepolicy.glade:4606 ++#: ../sepolicy/sepolicy/sepolicy.glade:4755 ++#: ../sepolicy/sepolicy/sepolicy.glade:4889 ++#: ../sepolicy/sepolicy/sepolicy.glade:5030 ++#: ../sepolicy/sepolicy/sepolicy.glade:5103 ++#: ../sepolicy/sepolicy/sepolicy.glade:5238 + msgid "Select" + msgstr "" + + #: ../sepolicy/sepolicy/sepolicy.glade:204 +-#: ../sepolicy/sepolicy/sepolicy.glade:557 +-#: ../sepolicy/sepolicy/sepolicy.glade:702 +-#: ../sepolicy/sepolicy/sepolicy.glade:1243 +-#: ../sepolicy/sepolicy/sepolicy.glade:1539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4579 +-#: ../sepolicy/sepolicy/sepolicy.glade:4729 +-#: ../sepolicy/sepolicy/sepolicy.glade:4859 +-#: ../sepolicy/sepolicy/sepolicy.glade:5077 +-#: ../sepolicy/sepolicy/sepolicy.glade:5233 +-#: ../sepolicy/sepolicy/sepolicy.glade:5474 ++#: ../sepolicy/sepolicy/sepolicy.glade:539 ++#: ../sepolicy/sepolicy/sepolicy.glade:684 ++#: ../sepolicy/sepolicy/sepolicy.glade:1239 ++#: ../sepolicy/sepolicy/sepolicy.glade:1535 ++#: ../sepolicy/sepolicy/sepolicy.glade:4540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4690 ++#: ../sepolicy/sepolicy/sepolicy.glade:4821 ++#: ../sepolicy/sepolicy/sepolicy.glade:4955 ++#: ../sepolicy/sepolicy/sepolicy.glade:5173 ++#: ../sepolicy/sepolicy/sepolicy.glade:5304 ++#: ../sepolicy/sepolicy/sepolicy.glade:5464 + msgid "Cancel" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:350 ++#: ../sepolicy/sepolicy/sepolicy.glade:332 + msgid "" + "The entry that was entered is incorrect. Please try again in the " + "ex:/.../... format." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:376 ++#: ../sepolicy/sepolicy/sepolicy.glade:358 + msgid "Retry" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:460 +-#: ../sepolicy/sepolicy/sepolicy.glade:1124 +-#: ../sepolicy/sepolicy/sepolicy.glade:1372 +-#: ../sepolicy/sepolicy/sepolicy.glade:5102 +-#: ../sepolicy/sepolicy/sepolicy.glade:5343 ++#: ../sepolicy/sepolicy/sepolicy.glade:442 ++#: ../sepolicy/sepolicy/sepolicy.glade:1120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1368 ++#: ../sepolicy/sepolicy/sepolicy.glade:5332 + msgid "Network Port Definitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:476 ++#: ../sepolicy/sepolicy/sepolicy.glade:458 + msgid "" +-"Add file Equivilence Mapping. Mapping will be created when Update is " ++"Add file Equivalence Mapping. Mapping will be created when Update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:501 +-#: ../sepolicy/sepolicy/sepolicy.glade:4045 ++#: ../sepolicy/sepolicy/sepolicy.glade:483 ++#: ../sepolicy/sepolicy/sepolicy.glade:4046 + msgid "Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:511 +-#: ../sepolicy/sepolicy/sepolicy.glade:5154 +-#: ../sepolicy/sepolicy/sepolicy.glade:5395 ++#: ../sepolicy/sepolicy/sepolicy.glade:493 ++#: ../sepolicy/sepolicy/sepolicy.glade:5384 + msgid "" + "Specify a new SELinux user name. By convention SELinux User names usually " + "end in an _u." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:515 ++#: ../sepolicy/sepolicy/sepolicy.glade:497 + msgid "Enter the path to which you want to setup an equivalence label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:528 +-#: ../sepolicy/sepolicy/sepolicy.glade:4062 +-#: ../sepolicy/sepolicy/sepolicy.glade:4819 ++#: ../sepolicy/sepolicy/sepolicy.glade:510 ++#: ../sepolicy/sepolicy/sepolicy.glade:4063 ++#: ../sepolicy/sepolicy/sepolicy.glade:4781 + msgid "Equivalence Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:542 +-#: ../sepolicy/sepolicy/sepolicy.glade:687 +-#: ../sepolicy/sepolicy/sepolicy.glade:1228 +-#: ../sepolicy/sepolicy/sepolicy.glade:1524 +-#: ../sepolicy/sepolicy/sepolicy.glade:5218 +-#: ../sepolicy/sepolicy/sepolicy.glade:5459 ++#: ../sepolicy/sepolicy/sepolicy.glade:524 ++#: ../sepolicy/sepolicy/sepolicy.glade:669 ++#: ../sepolicy/sepolicy/sepolicy.glade:1224 ++#: ../sepolicy/sepolicy/sepolicy.glade:1520 ++#: ../sepolicy/sepolicy/sepolicy.glade:5449 + msgid "Save to update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:582 ++#: ../sepolicy/sepolicy/sepolicy.glade:564 + msgid "" + "Specify the mapping between the new path and the equivalence path. " + "Everything under this new path will be labeled as if they were under the " + "equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:639 ++#: ../sepolicy/sepolicy/sepolicy.glade:621 + msgid "Add a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:656 ++#: ../sepolicy/sepolicy/sepolicy.glade:638 msgid "" -" File Labeling for . File labels will be created " -"when update is applied." @@ -6811,10 +32168,71 @@ index 6e400ae..6eaa817 100644 +" when update is applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:726 -@@ -4031,8 +4032,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:744 +-#: ../sepolicy/sepolicy/sepolicy.glade:1471 +-#: ../sepolicy/sepolicy/sepolicy.glade:3510 ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/sepolicy.glade:726 ++#: ../sepolicy/sepolicy/sepolicy.glade:1467 ++#: ../sepolicy/sepolicy/sepolicy.glade:3511 ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced >>" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:880 +-#: ../sepolicy/sepolicy/sepolicy.glade:765 +-#: ../sepolicy/sepolicy/sepolicy.glade:2305 +-#: ../sepolicy/sepolicy/sepolicy.glade:2417 +-#: ../sepolicy/sepolicy/sepolicy.glade:2539 +-#: ../sepolicy/sepolicy/sepolicy.glade:4539 ++#: ../sepolicy/sepolicy/sepolicy.glade:747 ++#: ../sepolicy/sepolicy/sepolicy.glade:2306 ++#: ../sepolicy/sepolicy/sepolicy.glade:2418 ++#: ../sepolicy/sepolicy/sepolicy.glade:2540 ++#: ../sepolicy/sepolicy/sepolicy.glade:4500 + msgid "Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:781 ++#: ../sepolicy/sepolicy/sepolicy.glade:763 + msgid "Type" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:795 ++#: ../sepolicy/sepolicy/sepolicy.glade:777 + msgid "" + "Select the file class to which this label will be applied. Defaults to all " + "classes." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:822 ++#: ../sepolicy/sepolicy/sepolicy.glade:804 + msgid "Make Path Recursive" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:826 ++#: ../sepolicy/sepolicy/sepolicy.glade:808 + msgid "" +-"Select Make Path Recursive iff you want to apply this label to all children " ++"Select Make Path Recursive if you want to apply this label to all children " + "of the specified directory path. objects under the directory to have this " + "label." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:839 ++#: ../sepolicy/sepolicy/sepolicy.glade:821 + msgid "Browse" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:843 ++#: ../sepolicy/sepolicy/sepolicy.glade:825 + msgid "Browse to select the file/directory for labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:887 ++#: ../sepolicy/sepolicy/sepolicy.glade:869 + msgid "Path " + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:898 ++#: ../sepolicy/sepolicy/sepolicy.glade:880 msgid "" -"Specify the path using regular expressions that you would like to modify the " -"labeling." @@ -6822,10 +32240,392 @@ index 6e400ae..6eaa817 100644 +" labeling." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:902 -@@ -4320,8 +4321,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:920 ++#: ../sepolicy/sepolicy/sepolicy.glade:902 + msgid "Select the SELinux file type to assign to this path." + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3012 +-#: ../sepolicy/sepolicy/sepolicy.glade:947 ++#: ../sepolicy/sepolicy/sepolicy.glade:929 + msgid "Enter the MLS Label to assign to this file path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:951 ++#: ../sepolicy/sepolicy/sepolicy.glade:933 + msgid "SELinux MLS Label you wish to assign to this path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1088 ++#: ../sepolicy/sepolicy/sepolicy.glade:1070 + msgid "Analyzing Policy..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1141 ++#: ../sepolicy/sepolicy/sepolicy.glade:1137 + msgid "" + "Add Login Mapping. Login Mapping will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1176 ++#: ../sepolicy/sepolicy/sepolicy.glade:1172 + msgid "" + "Enter the login user name of the user to which you wish to add SELinux User " + "confinement." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1205 ++#: ../sepolicy/sepolicy/sepolicy.glade:1201 + msgid "" + "Select the SELinux User to assign to this login user. Login users by " + "default get assigned by the __default__ user." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1268 ++#: ../sepolicy/sepolicy/sepolicy.glade:1264 + msgid "" + "Enter MLS/MCS Range for this login User. Defaults to the range for the " + "Selected SELinux User." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1271 +-#: ../sepolicy/sepolicy/sepolicy.glade:3191 +-#: ../sepolicy/sepolicy/sepolicy.glade:3312 +-#: ../sepolicy/sepolicy/sepolicy.glade:5184 +-#: ../sepolicy/sepolicy/sepolicy.glade:5425 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:1267 ++#: ../sepolicy/sepolicy/sepolicy.glade:3192 ++#: ../sepolicy/sepolicy/sepolicy.glade:3313 ++#: ../sepolicy/sepolicy/sepolicy.glade:5414 + msgid "MLS Range" +-msgstr "مدى MSC" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1283 ++#: ../sepolicy/sepolicy/sepolicy.glade:1279 + msgid "" + "Specify the MLS Range for this user to login in with. Defaults to the " + "selected SELinux Users MLS Range." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1389 ++#: ../sepolicy/sepolicy/sepolicy.glade:1385 + msgid "" + " Network Port for . Ports will be created when " + "update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1427 ++#: ../sepolicy/sepolicy/sepolicy.glade:1423 + msgid "Enter the port number or range to which you want to add a port type." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1457 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:1453 + msgid "Port Type" +-msgstr "نوع منفذ SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1502 ++#: ../sepolicy/sepolicy/sepolicy.glade:1498 + msgid "Select the port type you want to assign to the specified port number." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1566 ++#: ../sepolicy/sepolicy/sepolicy.glade:1562 + msgid "tcp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1570 ++#: ../sepolicy/sepolicy/sepolicy.glade:1566 + msgid "" + "Select tcp if the port type should be assigned to tcp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1583 ++#: ../sepolicy/sepolicy/sepolicy.glade:1579 + msgid "udp" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1587 ++#: ../sepolicy/sepolicy/sepolicy.glade:1583 + msgid "" + "Select udp if the port type should be assigned to udp port numbers." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1609 ++#: ../sepolicy/sepolicy/sepolicy.glade:1605 + msgid "Enter the MLS Label to assign to this port." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1706 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:1707 + msgid "SELinux Configuration" +-msgstr "قيمة منطقية لـSELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1742 ++#: ../sepolicy/sepolicy/sepolicy.glade:1743 + msgid "Select..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1791 +-#: ../sepolicy/sepolicy/sepolicy.glade:2211 ++#: ../sepolicy/sepolicy/sepolicy.glade:1792 ++#: ../sepolicy/sepolicy/sepolicy.glade:2212 + msgid "Booleans" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1795 ++#: ../sepolicy/sepolicy/sepolicy.glade:1796 + msgid "" + "Display boolean information that can be used to modify the policy for the " + "'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1809 +-#: ../sepolicy/sepolicy/sepolicy.glade:2596 ++#: ../sepolicy/sepolicy/sepolicy.glade:1810 ++#: ../sepolicy/sepolicy/sepolicy.glade:2597 + msgid "Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1813 ++#: ../sepolicy/sepolicy/sepolicy.glade:1814 + msgid "" + "Display file type information that can be used by the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1827 +-#: ../sepolicy/sepolicy/sepolicy.glade:2829 ++#: ../sepolicy/sepolicy/sepolicy.glade:1828 ++#: ../sepolicy/sepolicy/sepolicy.glade:2830 + msgid "Network" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1831 ++#: ../sepolicy/sepolicy/sepolicy.glade:1832 + msgid "" + "Display network ports to which the 'selected domain' can connect or listen " + "to." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1845 +-#: ../sepolicy/sepolicy/sepolicy.glade:3120 ++#: ../sepolicy/sepolicy/sepolicy.glade:1846 ++#: ../sepolicy/sepolicy/sepolicy.glade:3121 + msgid "Transitions" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1849 ++#: ../sepolicy/sepolicy/sepolicy.glade:1850 + msgid "" + "Display applications that can transition into or out of the 'selected " + "domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1863 +-#: ../sepolicy/sepolicy/sepolicy.glade:3221 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:1864 ++#: ../sepolicy/sepolicy/sepolicy.glade:3222 + msgid "Login Mapping" +-msgstr "اسم الدخول" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1866 +-#: ../sepolicy/sepolicy/sepolicy.glade:1883 +-#: ../sepolicy/sepolicy/sepolicy.glade:1900 ++#: ../sepolicy/sepolicy/sepolicy.glade:1867 ++#: ../sepolicy/sepolicy/sepolicy.glade:1884 ++#: ../sepolicy/sepolicy/sepolicy.glade:1901 + msgid "Manage the SELinux configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1880 +-#: ../sepolicy/sepolicy/sepolicy.glade:3343 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:1881 ++#: ../sepolicy/sepolicy/sepolicy.glade:3344 + msgid "SELinux Users" +-msgstr "مستخدم SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1914 +-#: ../sepolicy/sepolicy/sepolicy.glade:4015 ++#: ../sepolicy/sepolicy/sepolicy.glade:1915 ++#: ../sepolicy/sepolicy/sepolicy.glade:4016 + msgid "Lockdown" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1917 ++#: ../sepolicy/sepolicy/sepolicy.glade:1918 + msgid "" + "Lockdown the SELinux System.\n" + "This screen can be used to turn up the SELinux Protections." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:1932 ++#: ../sepolicy/sepolicy/sepolicy.glade:1933 + msgid "radiobutton" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2020 ++#: ../sepolicy/sepolicy/sepolicy.glade:2021 + msgid "Show Modified Only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2059 ++#: ../sepolicy/sepolicy/sepolicy.glade:2060 + msgid "Mislabeled files exist" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2079 ++#: ../sepolicy/sepolicy/sepolicy.glade:2080 + msgid "Show mislabeled files only" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2119 +-#: ../sepolicy/sepolicy/sepolicy.glade:3243 ++#: ../sepolicy/sepolicy/sepolicy.glade:2120 ++#: ../sepolicy/sepolicy/sepolicy.glade:3244 + msgid "" +-"If-Then-Else rules written in policy that can \n" ++"If-Then-Else rules written in policy that can\n" + "allow alternative access control." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2131 ++#: ../sepolicy/sepolicy/sepolicy.glade:2132 + msgid "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2251 +-#: ../sepolicy/sepolicy/sepolicy.glade:2363 +-#: ../sepolicy/sepolicy/sepolicy.glade:2481 +-#: ../sepolicy/sepolicy/sepolicy.glade:4512 +-#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:2252 ++#: ../sepolicy/sepolicy/sepolicy.glade:2364 ++#: ../sepolicy/sepolicy/sepolicy.glade:2482 ++#: ../sepolicy/sepolicy/sepolicy.glade:4473 ++#: ../sepolicy/sepolicy/sepolicy.glade:4768 + msgid "File Path" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2287 +-#: ../sepolicy/sepolicy/sepolicy.glade:2398 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:2288 ++#: ../sepolicy/sepolicy/sepolicy.glade:2399 + msgid "SELinux File Type" +-msgstr "نوع منفذ SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2331 ++#: ../sepolicy/sepolicy/sepolicy.glade:2332 + msgid "File path used to enter the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2332 ++#: ../sepolicy/sepolicy/sepolicy.glade:2333 + msgid "Executable Files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2447 ++#: ../sepolicy/sepolicy/sepolicy.glade:2448 + msgid "Files to which the 'selected domain' can write." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2448 ++#: ../sepolicy/sepolicy/sepolicy.glade:2449 + msgid "Writable files" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2570 ++#: ../sepolicy/sepolicy/sepolicy.glade:2571 + msgid "File Types defined for the 'selected domain'." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2571 ++#: ../sepolicy/sepolicy/sepolicy.glade:2572 + msgid "Application File Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2703 ++#: ../sepolicy/sepolicy/sepolicy.glade:2704 + msgid "Network Ports to which the 'selected domain' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2704 ++#: ../sepolicy/sepolicy/sepolicy.glade:2705 + msgid "Outbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2803 ++#: ../sepolicy/sepolicy/sepolicy.glade:2804 + msgid "Network Ports to which the 'selected domain' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2804 ++#: ../sepolicy/sepolicy/sepolicy.glade:2805 + msgid "Inbound" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2865 ++#: ../sepolicy/sepolicy/sepolicy.glade:2866 ++#: ../sepolicy/sepolicy/sepolicy.glade:2956 + msgid "" +-"Boolean \n" ++"Boolean\n" + "Enabled" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2891 ++#: ../sepolicy/sepolicy/sepolicy.glade:2892 + msgid "Boolean name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2908 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:2909 + msgid "SELinux Application Type" +-msgstr "نوع منفذ SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2929 ++#: ../sepolicy/sepolicy/sepolicy.glade:2930 + msgid "" + "Executables which will transition to a different domain, when the 'selected " + "domain' executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2932 +-msgid "Applicaton Transitions From 'select domain'" ++#: ../sepolicy/sepolicy/sepolicy.glade:2933 ++msgid "Application Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2955 +-msgid "" +-"Boolean\n" +-"Enabled" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:2971 ++#: ../sepolicy/sepolicy/sepolicy.glade:2972 + msgid "Calling Process Domain" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:2987 ++#: ../sepolicy/sepolicy/sepolicy.glade:2988 + msgid "Executable File" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3011 ++#: ../sepolicy/sepolicy/sepolicy.glade:3012 msgid "" -"Executables which will transition to the 'selected domain', when executing a " -"selected domains entrypoint." @@ -6833,10 +32633,166 @@ index 6e400ae..6eaa817 100644 +" selected domains entrypoint." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3013 -@@ -4446,8 +4447,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:3012 ++#: ../sepolicy/sepolicy/sepolicy.glade:3013 + msgid "Application Transitions Into 'select domain'" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:3957 +-#: ../sepolicy/sepolicy/sepolicy.glade:3027 ++#: ../sepolicy/sepolicy/sepolicy.glade:3028 + msgid "" + "File Transitions define what happens when the current domain creates the " + "content of a particular class in a directory of the destination type. " + "Optionally a file name could be specified for the transition." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3035 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:3036 + msgid "SELinux Directory Type" +-msgstr "نوع منفذ SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3048 ++#: ../sepolicy/sepolicy/sepolicy.glade:3049 + msgid "Destination Class" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3062 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:3063 + msgid "SELinux Destination Type" +-msgstr "نوع منفذ SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3075 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:3076 + msgid "File Name" +-msgstr "اسم الوحدة" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3097 ++#: ../sepolicy/sepolicy/sepolicy.glade:3098 + msgid "File Transitions From 'select domain'" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3296 +-#: ../sepolicy/sepolicy/sepolicy.glade:5277 +-#: ../sepolicy/sepolicy/sepolicy.glade:5518 ++#: ../sepolicy/sepolicy/sepolicy.glade:3297 ++#: ../sepolicy/sepolicy/sepolicy.glade:5508 + msgid "Default Level" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3382 ++#: ../sepolicy/sepolicy/sepolicy.glade:3383 + msgid "Select the system mode when the system first boots up" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3455 ++#: ../sepolicy/sepolicy/sepolicy.glade:3456 + msgid "Select the system mode for the current session" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3532 ++#: ../sepolicy/sepolicy/sepolicy.glade:3533 + msgid "System Policy Type:" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3593 ++#: ../sepolicy/sepolicy/sepolicy.glade:3594 + msgid "System Mode" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3631 ++#: ../sepolicy/sepolicy/sepolicy.glade:3632 + msgid "Import system settings from another machine" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3639 ++#: ../sepolicy/sepolicy/sepolicy.glade:3640 + msgid "Import" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3658 ++#: ../sepolicy/sepolicy/sepolicy.glade:3659 + msgid "Export system settings to a file" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3668 ++#: ../sepolicy/sepolicy/sepolicy.glade:3669 + msgid "Export" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3687 ++#: ../sepolicy/sepolicy/sepolicy.glade:3688 + msgid "Relabel all files back to system defaults on reboot" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3724 +-#: ../sepolicy/sepolicy/sepolicy.glade:3825 +-#: ../sepolicy/sepolicy/sepolicy.glade:3889 +-#: ../sepolicy/sepolicy/sepolicy.glade:3952 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3725 ++#: ../sepolicy/sepolicy/sepolicy.glade:3826 ++#: ../sepolicy/sepolicy/sepolicy.glade:3890 ++#: ../sepolicy/sepolicy/sepolicy.glade:3953 ../sepolicy/sepolicy/gui.py:64 + msgid "Yes" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3741 +-#: ../sepolicy/sepolicy/sepolicy.glade:3843 +-#: ../sepolicy/sepolicy/sepolicy.glade:3906 +-#: ../sepolicy/sepolicy/sepolicy.glade:3969 ../sepolicy/sepolicy/gui.py:60 ++#: ../sepolicy/sepolicy/sepolicy.glade:3742 ++#: ../sepolicy/sepolicy/sepolicy.glade:3844 ++#: ../sepolicy/sepolicy/sepolicy.glade:3907 ++#: ../sepolicy/sepolicy/sepolicy.glade:3970 ../sepolicy/sepolicy/gui.py:64 + msgid "No" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3782 ++#: ../sepolicy/sepolicy/sepolicy.glade:3783 + msgid "System Configuration" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3829 +-#: ../sepolicy/sepolicy/sepolicy.glade:3847 ++#: ../sepolicy/sepolicy/sepolicy.glade:3830 ++#: ../sepolicy/sepolicy/sepolicy.glade:3848 + msgid "" + "An unconfined domain is a process label that allows the process to do what " + "it wants, without SELinux interfering. Applications started at boot by the " +@@ -4386,13 +4426,13 @@ msgid "" + "unconfined_t from the users/login screens." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3865 ++#: ../sepolicy/sepolicy/sepolicy.glade:3866 + msgid "Disable ability to run unconfined system processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3893 +-#: ../sepolicy/sepolicy/sepolicy.glade:3910 +-#: ../sepolicy/sepolicy/sepolicy.glade:3973 ++#: ../sepolicy/sepolicy/sepolicy.glade:3894 ++#: ../sepolicy/sepolicy/sepolicy.glade:3911 ++#: ../sepolicy/sepolicy/sepolicy.glade:3974 + msgid "" + "An permissive domain is a process label that allows the process to do what " + "it wants, with SELinux only logging the denials, but not enforcing them. " +@@ -4401,186 +4441,202 @@ msgid "" + "allowed." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3928 ++#: ../sepolicy/sepolicy/sepolicy.glade:3929 + msgid "Disable all permissive processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:3956 ++#: ../sepolicy/sepolicy/sepolicy.glade:3957 msgid "" -"A permissive domain is a process label that allows the process to do what it " -"wants, with SELinux only logging the denials, but not enforcing them. " @@ -6845,9 +32801,47 @@ index 6e400ae..6eaa817 100644 "Usually permissive domains indicate experimental policy, disabling the " "module could cause SELinux to deny access to a domain, that should be " "allowed." -@@ -4485,8 +4486,8 @@ msgstr "" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4214 +-#: ../sepolicy/sepolicy/sepolicy.glade:3994 ++#: ../sepolicy/sepolicy/sepolicy.glade:3995 + msgid "Deny all processes from ptracing or debugging other processes?" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4031 ++#: ../sepolicy/sepolicy/sepolicy.glade:4032 + msgid "" + "File equivalence cause the system to label content under the new path as if " + "it were under the equivalence path." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4087 ++#: ../sepolicy/sepolicy/sepolicy.glade:4088 + msgid "Files Equivalence" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4100 ++#: ../sepolicy/sepolicy/sepolicy.glade:4101 + msgid "...SELECT TO VIEW DATA..." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4131 ++#: ../sepolicy/sepolicy/sepolicy.glade:4132 + msgid "Delete" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4147 ++#: ../sepolicy/sepolicy/sepolicy.glade:4148 + msgid "Modify" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4208 ++#: ../sepolicy/sepolicy/sepolicy.glade:4209 + msgid "Revert" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4213 ++#: ../sepolicy/sepolicy/sepolicy.glade:4214 msgid "" -"Revert button will launch a dialog window which allows you to revert changes " -"within the current transaction." @@ -6855,10 +32849,44 @@ index 6e400ae..6eaa817 100644 +" within the current transaction." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 -@@ -4516,8 +4517,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/sepolicy.glade:4225 ../sepolicy/sepolicy/gui.py:2379 ++#: ../sepolicy/sepolicy/sepolicy.glade:4226 ../sepolicy/sepolicy/gui.py:2416 + msgid "Update" + msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4439 +-#: ../sepolicy/sepolicy/sepolicy.glade:4230 ++#: ../sepolicy/sepolicy/sepolicy.glade:4231 + msgid "Commit all changes in your current transaction to the server." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4278 ++#: ../sepolicy/sepolicy/sepolicy.glade:4279 + msgid "Applications - Advanced Search" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4331 +-msgid "Installed" +-msgstr "" +- +-#: ../sepolicy/sepolicy/sepolicy.glade:4383 ++#: ../sepolicy/sepolicy/sepolicy.glade:4344 + msgid "Process Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4424 ++#: ../sepolicy/sepolicy/sepolicy.glade:4385 + msgid "More Details" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4460 +-#: ../sepolicy/sepolicy/sepolicy.glade:4754 ++#: ../sepolicy/sepolicy/sepolicy.glade:4421 ++#: ../sepolicy/sepolicy/sepolicy.glade:4715 + msgid "Delete Modified File Labeling" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4478 ++#: ../sepolicy/sepolicy/sepolicy.glade:4439 msgid "" -"Select file labeling to delete. File labeling will be deleted when update is " -"applied." @@ -6866,57 +32894,528 @@ index 6e400ae..6eaa817 100644 +" applied." msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4486 -@@ -4553,8 +4554,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/sepolicy.glade:4867 - msgid "" --"Select login user mapping to delete. Login user mapping will be deleted when " --"update is applied." -+"Select login user mapping to delete. Login user mapping will be deleted when" -+" update is applied." +-#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4486 + msgid "SELinux File Label" msgstr "" - #: ../sepolicy/sepolicy/sepolicy.glade:4902 -@@ -4857,20 +4858,22 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1366 +-#: ../sepolicy/sepolicy/sepolicy.glade:4564 +-#: ../sepolicy/sepolicy/sepolicy.glade:4714 +-#: ../sepolicy/sepolicy/sepolicy.glade:4844 ++#: ../sepolicy/sepolicy/sepolicy.glade:4525 ++#: ../sepolicy/sepolicy/sepolicy.glade:4675 ++#: ../sepolicy/sepolicy/sepolicy.glade:4806 ++#: ../sepolicy/sepolicy/sepolicy.glade:4940 ++#: ../sepolicy/sepolicy/sepolicy.glade:5289 + msgid "Save to Update" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4604 ++#: ../sepolicy/sepolicy/sepolicy.glade:4565 + msgid "Delete Modified Ports" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4622 ++#: ../sepolicy/sepolicy/sepolicy.glade:4583 + msgid "Select ports to delete. Ports will be deleted when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4771 ++#: ../sepolicy/sepolicy/sepolicy.glade:4733 ++msgid "" ++"Select file equivalence labeling to delete. File equivalence labeling will " ++"be deleted when update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4849 ++#: ../sepolicy/sepolicy/sepolicy.glade:5198 ++msgid "Delete Modified Users Mapping." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4867 + msgid "" +-"Select file equivalence labeling to delete.File equivalence labeling will be " +-"deleted when update is applied." ++"Select login user mapping to delete. Login user mapping will be deleted when" ++" update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:4902 ++msgid "Login name" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4887 ++#: ../sepolicy/sepolicy/sepolicy.glade:4983 + msgid "More Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4914 ++#: ../sepolicy/sepolicy/sepolicy.glade:5010 + msgid "Types" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:4973 ++#: ../sepolicy/sepolicy/sepolicy.glade:5069 + msgid "" + "Review the updates you have made before committing them to the system. To " + "reset an item, uncheck the checkbox. All items checked will be updated in " + "the system when you select update." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5036 ++#: ../sepolicy/sepolicy/sepolicy.glade:5132 + msgid "Action" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5062 ++#: ../sepolicy/sepolicy/sepolicy.glade:5158 + msgid "Apply" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5119 +-#: ../sepolicy/sepolicy/sepolicy.glade:5360 ++#: ../sepolicy/sepolicy/sepolicy.glade:5216 ++msgid "" ++"Select users mapping to delete.Users mapping will be deleted when update is " ++"applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5264 ++msgid "SELinux Username" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/sepolicy.glade:5349 + msgid "" + "Add User Roles. SELinux User Roles will be created when Update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5144 +-#: ../sepolicy/sepolicy/sepolicy.glade:5385 +-#, fuzzy ++#: ../sepolicy/sepolicy/sepolicy.glade:5374 + msgid "SELinux User Name" +-msgstr "مستخدم SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5258 +-#: ../sepolicy/sepolicy/sepolicy.glade:5499 ++#: ../sepolicy/sepolicy/sepolicy.glade:5489 + msgid "" + "Enter MLS/MCS Range for this SELinux User.\n" + "s0-s0:c1023" + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5289 +-#: ../sepolicy/sepolicy/sepolicy.glade:5530 ++#: ../sepolicy/sepolicy/sepolicy.glade:5520 + msgid "" + "Specify the default level that you would like this SELinux user to login " + "with. Defaults to s0." + msgstr "" + +-#: ../sepolicy/sepolicy/sepolicy.glade:5293 +-#: ../sepolicy/sepolicy/sepolicy.glade:5534 ++#: ../sepolicy/sepolicy/sepolicy.glade:5524 + msgid "Enter Default Level for SELinux User to login with. Default s0" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Disable" +-msgstr "معطّل" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:61 ++#: ../sepolicy/sepolicy/gui.py:65 + msgid "Enable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:66 ++#: ../sepolicy/sepolicy/gui.py:68 + msgid "Advanced <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:67 ++#: ../sepolicy/sepolicy/gui.py:69 + msgid "Advanced Search <<" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:92 ++#: ../sepolicy/sepolicy/gui.py:94 + msgid "" + "\n" + "To change from Disabled to Enforcing mode\n" +@@ -4590,520 +4646,542 @@ msgid "" + " * Change the system mode to Enforcing\n" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:115 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:488 ++#, python-format + msgid "%s is not a valid domain" +-msgstr "%s ليس سياقا صالحا\n" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:624 ++#: ../sepolicy/sepolicy/gui.py:636 + msgid "System Status: Disabled" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:722 ++#: ../sepolicy/sepolicy/gui.py:734 + msgid "Help: Start Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:726 ++#: ../sepolicy/sepolicy/gui.py:738 + msgid "Help: Booleans Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:732 ++#: ../sepolicy/sepolicy/gui.py:744 + msgid "Help: Executable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:735 ++#: ../sepolicy/sepolicy/gui.py:747 + msgid "Help: Writable Files Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:738 ++#: ../sepolicy/sepolicy/gui.py:750 + msgid "Help: Application Types Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:743 ++#: ../sepolicy/sepolicy/gui.py:755 + msgid "Help: Outbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:746 ++#: ../sepolicy/sepolicy/gui.py:758 + msgid "Help: Inbound Network Connections Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:752 ++#: ../sepolicy/sepolicy/gui.py:764 + msgid "Help: Transition from application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:755 ++#: ../sepolicy/sepolicy/gui.py:767 + msgid "Help: Transition into application Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:758 ++#: ../sepolicy/sepolicy/gui.py:770 + msgid "Help: Transition application file Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:762 ++#: ../sepolicy/sepolicy/gui.py:774 + msgid "Help: Systems Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:766 ++#: ../sepolicy/sepolicy/gui.py:778 + msgid "Help: Lockdown Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:770 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:782 + msgid "Help: Login Page" +-msgstr "اسم الدخول" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:774 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:786 + msgid "Help: SELinux User Page" +-msgstr "مستخدم SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:778 ++#: ../sepolicy/sepolicy/gui.py:790 + msgid "Help: File Equivalence Page" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:922 ../sepolicy/sepolicy/gui.py:1211 +-#: ../sepolicy/sepolicy/gui.py:1644 ../sepolicy/sepolicy/gui.py:1885 +-#: ../sepolicy/sepolicy/gui.py:2698 ++#: ../sepolicy/sepolicy/gui.py:936 ../sepolicy/sepolicy/gui.py:1227 ++#: ../sepolicy/sepolicy/gui.py:1667 ../sepolicy/sepolicy/gui.py:1913 ++#: ../sepolicy/sepolicy/gui.py:2692 + msgid "More..." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1031 ++#: ../sepolicy/sepolicy/gui.py:1044 + #, python-format + msgid "File path used to enter the '%s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1032 ++#: ../sepolicy/sepolicy/gui.py:1045 + #, python-format + msgid "Files to which the '%s' domain can write." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1033 ++#: ../sepolicy/sepolicy/gui.py:1046 + #, python-format + msgid "Network Ports to which the '%s' is allowed to connect." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1034 ++#: ../sepolicy/sepolicy/gui.py:1047 + #, python-format + msgid "Network Ports to which the '%s' is allowed to listen." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1035 ++#: ../sepolicy/sepolicy/gui.py:1048 + #, python-format + msgid "File Types defined for the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1036 ++#: ../sepolicy/sepolicy/gui.py:1049 #, python-format msgid "" --"Add new port definition to which the '%(APP)s' domain is allowed to %(PERM)s." + "Display boolean information that can be used to modify the policy for the " + "'%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1037 ++#: ../sepolicy/sepolicy/gui.py:1050 + #, python-format + msgid "Display file type information that can be used by the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1038 ++#: ../sepolicy/sepolicy/gui.py:1051 + #, python-format + msgid "Display network ports to which the '%s' can connect or listen to." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1039 ++#: ../sepolicy/sepolicy/gui.py:1052 + #, python-format + msgid "Application Transitions Into '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1040 ++#: ../sepolicy/sepolicy/gui.py:1053 + #, python-format + msgid "Application Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1041 ++#: ../sepolicy/sepolicy/gui.py:1054 + #, python-format + msgid "File Transitions From '%s'" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1042 ++#: ../sepolicy/sepolicy/gui.py:1055 + #, python-format + msgid "" + "Executables which will transition to the '%s', when executing a selected " + "domains entrypoint." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1043 ++#: ../sepolicy/sepolicy/gui.py:1056 + #, python-format + msgid "" + "Executables which will transition to a different domain, when the '%s' " + "executes them." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1044 ++#: ../sepolicy/sepolicy/gui.py:1057 + #, python-format + msgid "Files by '%s' will transitions to a different label." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1045 ++#: ../sepolicy/sepolicy/gui.py:1058 + #, python-format + msgid "Display applications that can transition into or out of the '%s'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1149 ++#: ../sepolicy/sepolicy/gui.py:1166 + msgid "MISSING FILE PATH" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1281 ../sepolicy/sepolicy/gui.py:1283 + msgid "Boolean section." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1265 ++#: ../sepolicy/sepolicy/gui.py:1281 + msgid "To disable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1267 ++#: ../sepolicy/sepolicy/gui.py:1283 + msgid "To enable this transition, go to the " + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1324 ++#: ../sepolicy/sepolicy/gui.py:1340 + msgid "executable" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1327 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:1343 + msgid "writable" +-msgstr "معطّل" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1330 ++#: ../sepolicy/sepolicy/gui.py:1346 + msgid "application" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1331 ++#: ../sepolicy/sepolicy/gui.py:1347 + #, python-format +-msgid "Add new %s file path for '%s' domains." ++msgid "Add new %(TYPE)s file path for '%(DOMAIN)s' domains." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1332 ++#: ../sepolicy/sepolicy/gui.py:1348 + #, python-format +-msgid "Delete modified %s file paths for '%s' domain." ++msgid "Delete %(TYPE)s file paths for '%(DOMAIN)s' domain." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1333 ++#: ../sepolicy/sepolicy/gui.py:1349 + #, python-format + msgid "" +-"Modify selected modified %s file path for '%s' domain. Only bolded items in " +-"the list can be selected, this indicates they were modified previously." ++"Modify %(TYPE)s file path for '%(DOMAIN)s' domain. Only bolded items in the " ++"list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1345 ++#: ../sepolicy/sepolicy/gui.py:1361 + msgid "connect" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1348 ++#: ../sepolicy/sepolicy/gui.py:1364 + msgid "listen for inbound connections" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1350 ++#: ../sepolicy/sepolicy/gui.py:1366 + #, python-format +-msgid "Add new port definition to which the '%s' domains is allowed to %s." ++msgid "" +"Add new port definition to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1367 +-#: ../sepolicy/sepolicy/gui.py:1351 ++#: ../sepolicy/sepolicy/gui.py:1367 #, python-format msgid "" --"Delete modified port definitions to which the '%(APP)s' domain is allowed to " --"%(PERM)s." +-"Delete modified port definitions to which the '%s' domain is allowed to %s." +"Delete modified port definitions to which the '%(APP)s' domain is allowed to" +" %(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1368 +-#: ../sepolicy/sepolicy/gui.py:1352 ++#: ../sepolicy/sepolicy/gui.py:1368 #, python-format - msgid "" --"Modify port definitions to which the '%(APP)s' domain is allowed to %(PERM)s." +-msgid "Modify port definitions to which the '%s' domain is allowed to %s." ++msgid "" +"Modify port definitions to which the '%(APP)s' domain is allowed to " +"%(PERM)s." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1397 -@@ -4918,7 +4921,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1381 ++#: ../sepolicy/sepolicy/gui.py:1397 + msgid "Add new SELinux User/Role definition." + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1458 +-#: ../sepolicy/sepolicy/gui.py:1382 ++#: ../sepolicy/sepolicy/gui.py:1398 + msgid "Delete modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1383 ++#: ../sepolicy/sepolicy/gui.py:1399 + msgid "Modify selected modified SELinux User/Role definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1390 ++#: ../sepolicy/sepolicy/gui.py:1406 + msgid "Add new Login Mapping definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1391 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:1407 + msgid "Delete modified Login Mapping definitions." +-msgstr "لا يمكن تغيير مخطط الدخول لـ %s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1392 ++#: ../sepolicy/sepolicy/gui.py:1408 + msgid "Modify selected modified Login Mapping definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1399 ++#: ../sepolicy/sepolicy/gui.py:1415 + msgid "Add new File Equivalence definition." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1400 ++#: ../sepolicy/sepolicy/gui.py:1416 + msgid "Delete modified File Equivalence definitions." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1401 ++#: ../sepolicy/sepolicy/gui.py:1417 + msgid "" + "Modify selected modified File Equivalence definitions. Only bolded items in " + "the list can be selected, this indicates they were modified previously." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1429 ++#: ../sepolicy/sepolicy/gui.py:1445 + #, python-format + msgid "Boolean %s Allow Rules" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1442 ++#: ../sepolicy/sepolicy/gui.py:1458 #, python-format -msgid "Add Network Port for %s. Ports will be created when update is applied." +msgid "" +"Add Network Port for %s. Ports will be created when update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1459 -@@ -4929,7 +4933,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:1464 +-#: ../sepolicy/sepolicy/gui.py:1443 ++#: ../sepolicy/sepolicy/gui.py:1459 + #, python-format + msgid "Add Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1448 ++#: ../sepolicy/sepolicy/gui.py:1464 #, python-format msgid "" -"Add File Labeling for %s. File labels will be created when update is applied." @@ -6924,40 +33423,340 @@ index 6e400ae..6eaa817 100644 +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 -@@ -4938,7 +4943,8 @@ msgid "Add File Labeling for %s" +-#: ../sepolicy/sepolicy/gui.py:1449 ../sepolicy/sepolicy/gui.py:1500 ++#: ../sepolicy/sepolicy/gui.py:1465 ../sepolicy/sepolicy/gui.py:1518 + #, python-format + msgid "Add File Labeling for %s" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1475 +-#: ../sepolicy/sepolicy/gui.py:1459 -msgid "Add Login Mapping. User Mapping will be created when Update is applied." ++#: ../sepolicy/sepolicy/gui.py:1475 +msgid "" +"Add Login Mapping. User Mapping will be created when Update is applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1476 -@@ -4957,7 +4963,8 @@ msgstr "" +-#: ../sepolicy/sepolicy/gui.py:1460 ++#: ../sepolicy/sepolicy/gui.py:1476 + msgid "Add Login Mapping" + msgstr "" - #: ../sepolicy/sepolicy/gui.py:1489 +-#: ../sepolicy/sepolicy/gui.py:1465 ++#: ../sepolicy/sepolicy/gui.py:1481 + msgid "" + "Add SELinux User Role. SELinux user roles will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1466 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:1482 + msgid "Add SELinux Users" +-msgstr "مستخدم SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1473 ++#: ../sepolicy/sepolicy/gui.py:1489 msgid "" -"Add File Equivalency Mapping. Mapping will be created when update is applied." +"Add File Equivalency Mapping. Mapping will be created when update is " +"applied." msgstr "" - #: ../sepolicy/sepolicy/gui.py:1490 -@@ -4973,8 +4980,8 @@ msgstr "" - - #: ../sepolicy/sepolicy/gui.py:1573 - msgid "" --"Modify SELinux User Role. SELinux user roles will be modified when update is " --"applied." -+"Modify SELinux User Role. SELinux user roles will be modified when update is" -+" applied." +-#: ../sepolicy/sepolicy/gui.py:1474 ++#: ../sepolicy/sepolicy/gui.py:1490 + msgid "Add SELinux File Equivalency" msgstr "" - #: ../sepolicy/sepolicy/gui.py:1574 -@@ -5187,10 +5194,8 @@ msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:1499 ++#: ../sepolicy/sepolicy/gui.py:1517 + #, python-format + msgid "" + "Modify File Labeling for %s. File labels will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1566 ++#: ../sepolicy/sepolicy/gui.py:1573 ++msgid "" ++"Modify SELinux User Role. SELinux user roles will be modified when update is" ++" applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1574 ++msgid "Modify SELinux Users" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1582 ++msgid "" ++"Modify Login Mapping. Login Mapping will be modified when Update is applied." ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1583 ++msgid "Modify Login Mapping" ++msgstr "" ++ ++#: ../sepolicy/sepolicy/gui.py:1589 + msgid "" + "Modify File Equivalency Mapping. Mapping will be created when update is " + "applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1567 ++#: ../sepolicy/sepolicy/gui.py:1590 + msgid "Modify SELinux File Equivalency" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1652 ++#: ../sepolicy/sepolicy/gui.py:1675 + #, python-format + msgid "" + "Modify Network Port for %s. Ports will be created when update is applied." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1653 ++#: ../sepolicy/sepolicy/gui.py:1676 + #, python-format + msgid "Modify Network Port for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1866 ++#: ../sepolicy/sepolicy/gui.py:1894 + #, python-format + msgid "The entry '%s' is not a valid path. Paths must begin with a '/'." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:1879 ++#: ../sepolicy/sepolicy/gui.py:1907 + msgid "Port number must be between 1 and 65536" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2146 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2183 ++#, python-format + msgid "SELinux name: %s" +-msgstr "أدوار SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2157 ++#: ../sepolicy/sepolicy/gui.py:2194 + #, python-format + msgid "Add file labeling for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2159 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2196 ++#, python-format + msgid "Delete file labeling for %s" +-msgstr "لا يمكن حذف سياق الملف لـ %s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2161 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2198 ++#, python-format + msgid "Modify file labeling for %s" +-msgstr "لا يمكن تعديل سياق الملف لـ %s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2165 ++#: ../sepolicy/sepolicy/gui.py:2202 + #, python-format + msgid "File path: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2168 ++#: ../sepolicy/sepolicy/gui.py:2205 + #, python-format + msgid "File class: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2171 ../sepolicy/sepolicy/gui.py:2195 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2208 ../sepolicy/sepolicy/gui.py:2232 ++#, python-format + msgid "SELinux file type: %s" +-msgstr "أدوار SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2180 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2217 ++#, python-format + msgid "Add ports for %s" +-msgstr "بنية خاطئة %s: سجّل %s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2182 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2219 ++#, python-format + msgid "Delete ports for %s" +-msgstr "لا يمكن إنشاء منفذ لـ %s/%s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2184 ++#: ../sepolicy/sepolicy/gui.py:2221 + #, python-format + msgid "Modify ports for %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2187 ++#: ../sepolicy/sepolicy/gui.py:2224 + #, python-format + msgid "Network ports: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2190 ++#: ../sepolicy/sepolicy/gui.py:2227 + #, python-format + msgid "Network protocol: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2204 ++#: ../sepolicy/sepolicy/gui.py:2241 + msgid "Add user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2206 ++#: ../sepolicy/sepolicy/gui.py:2243 + msgid "Delete user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2208 ++#: ../sepolicy/sepolicy/gui.py:2245 + msgid "Modify user" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2211 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2248 ++#, python-format + msgid "SELinux User : %s" +-msgstr "مستخدم SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2216 ++#: ../sepolicy/sepolicy/gui.py:2253 + #, python-format + msgid "Roles: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2220 ../sepolicy/sepolicy/gui.py:2245 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2257 ../sepolicy/sepolicy/gui.py:2282 ++#, python-format + msgid "MLS/MCS Range: %s" +-msgstr "مدى MLS/MCS" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2229 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:2266 + msgid "Add login mapping" +-msgstr "لا يمكن عرض قائمة تخطيطات الدخول" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2231 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:2268 + msgid "Delete login mapping" +-msgstr "لا يمكن حذف تخطيط الدخول لـ %s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2233 +-#, fuzzy ++#: ../sepolicy/sepolicy/gui.py:2270 + msgid "Modify login mapping" +-msgstr "لا يمكن عرض قائمة تخطيطات الدخول" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2237 +-#, fuzzy, python-format +-msgid "Linux User : %s" +-msgstr "مستخدم SELinux" ++#: ../sepolicy/sepolicy/gui.py:2274 ++#, python-format ++msgid "Login Name : %s" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2241 +-#, fuzzy, python-format ++#: ../sepolicy/sepolicy/gui.py:2278 ++#, python-format + msgid "SELinux User: %s" +-msgstr "مستخدم SELinux" ++msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2254 ++#: ../sepolicy/sepolicy/gui.py:2291 + msgid "Add file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2256 ++#: ../sepolicy/sepolicy/gui.py:2293 + msgid "Delete file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2258 ++#: ../sepolicy/sepolicy/gui.py:2295 + msgid "Modify file equiv labeling." + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2262 ++#: ../sepolicy/sepolicy/gui.py:2299 + #, python-format + msgid "File path : %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2266 ++#: ../sepolicy/sepolicy/gui.py:2303 + #, python-format + msgid "Equivalence: %s" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2369 ++#: ../sepolicy/sepolicy/gui.py:2406 + #, python-format +-msgid "Run restorecon on %s to change its type from %s to the default %s?" ++msgid "" ++"Run restorecon on %(PATH)s to change its type from %(CUR_CONTEXT)s to the " ++"default %(DEF_CONTEXT)s?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2381 ++#: ../sepolicy/sepolicy/gui.py:2418 + msgid "Update Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2383 ++#: ../sepolicy/sepolicy/gui.py:2420 + msgid "Revert Changes" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2556 ++#: ../sepolicy/sepolicy/gui.py:2547 + msgid "System Status: Enforcing" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2558 ++#: ../sepolicy/sepolicy/gui.py:2549 + msgid "System Status: Permissive" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2749 ++#: ../sepolicy/sepolicy/gui.py:2743 + msgid "" + "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 " +@@ -5113,15 +5191,13 @@ msgid "" + "wish to continue?" + msgstr "" + +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 msgid "" "You are attempting to close the application without applying your changes.\n" -" * To apply changes you have made during this session, click No and " @@ -6968,9 +33767,6385 @@ index 6e400ae..6eaa817 100644 +" * To leave the application without applying your changes, click Yes. All changes that you have made during this session will be lost." msgstr "" - #: ../sepolicy/sepolicy/gui.py:2777 +-#: ../sepolicy/sepolicy/gui.py:2783 ++#: ../sepolicy/sepolicy/gui.py:2777 + msgid "Loss of data Dialog" + msgstr "" +diff --git a/policycoreutils/po/as.po b/policycoreutils/po/as.po +index 4689a67..09f3289 100644 +--- a/policycoreutils/po/as.po ++++ b/policycoreutils/po/as.po +@@ -1,27 +1,26 @@ + # SOME DESCRIPTIVE TITLE. + # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER + # This file is distributed under the same license as the PACKAGE package. +-# ++# + # Translators: + # Amitakhya Phukan , 2006 + # Amitakhya Phukan , 2008-2010 + # Amitakhya Phukan , 2008 + # ngoswami , 2013 +-# ngoswami , 2011-2013 ++# ngoswami , 2011-2014 + # ngoswami , 2013 + msgid "" + msgstr "" + "Project-Id-Version: Policycoreutils\n" + "Report-Msgid-Bugs-To: \n" +-"POT-Creation-Date: 2013-10-10 16:04-0400\n" +-"PO-Revision-Date: 2013-07-19 09:56+0000\n" ++"POT-Creation-Date: 2014-01-03 16:04-0500\n" ++"PO-Revision-Date: 2014-01-10 10:24+0000\n" + "Last-Translator: ngoswami \n" +-"Language-Team: Assamese (http://www.transifex.com/projects/p/fedora/language/" +-"as/)\n" +-"Language: as\n" ++"Language-Team: Assamese (http://www.transifex.com/projects/p/fedora/language/as/)\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" ++"Language: as\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + + #: ../run_init/run_init.c:67 +@@ -29,10 +28,7 @@ msgid "" + "USAGE: run_init