* [PATCH 1/4] python: improve format strings for proper localization
@ 2023-05-17 13:49 Petr Lautrbach
2023-05-17 13:49 ` [PATCH 2/4] python/semanage: Drop hard formating from localized strings Petr Lautrbach
` (3 more replies)
0 siblings, 4 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-05-17 13:49 UTC (permalink / raw)
To: selinux; +Cc: Petr Lautrbach
If a string contains more than one unnamed argument it's hard for
translators to proper localize as they don't know which value is
represented by a unnamed argument. It also blocks them to use a
different order of arguments which would make better sense in other
languages.
Fixes:
$ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py
../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
...
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/chcat/chcat | 2 +-
python/semanage/seobject.py | 92 ++++++++++++++++++-------------------
2 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/python/chcat/chcat b/python/chcat/chcat
index 68718ec5f102..ec34c05ffdfa 100755
--- a/python/chcat/chcat
+++ b/python/chcat/chcat
@@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
else:
cat = ""
else:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
if len(cat) == 0:
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index d82da4942987..8a891ca23bca 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -1175,13 +1175,13 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, p) = semanage_port_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query port %s/%s") % (proto, port))
+ raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port))
con = semanage_port_get_con(p)
@@ -1195,7 +1195,7 @@ class portRecords(semanageRecords):
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify port %s/%s") % (proto, port))
+ raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
semanage_port_free(p)
@@ -1241,19 +1241,19 @@ class portRecords(semanageRecords):
(k, proto_d, low, high) = self.__genkey(port, proto)
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, exists) = semanage_port_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port))
rc = semanage_port_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete port %s/%s") % (proto, port))
+ raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
@@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords):
(rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
return (k, subnet_prefix, low, high)
def __add(self, pkey, subnet_prefix, serange, type):
@@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey))
if exists:
- raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix)
semanage_ibpkey_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_context_free(con)
semanage_ibpkey_key_free(k)
@@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
con = semanage_ibpkey_get_con(p)
@@ -1508,13 +1508,13 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
@@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords):
(rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port)
if rc < 0:
- raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
return (k, ibdev_name, port)
def __add(self, ibendport, ibdev_name, serange, type):
@@ -1638,9 +1638,9 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port))
if exists:
- raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port))
+ raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port))
(rc, p) = semanage_ibendport_create(self.sh)
if rc < 0:
@@ -1650,32 +1650,32 @@ class ibendportRecords(semanageRecords):
semanage_ibendport_set_port(p, port)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_context_free(con)
semanage_ibendport_key_free(k)
@@ -1702,9 +1702,9 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, p) = semanage_ibendport_query(self.sh, k)
if rc < 0:
@@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords):
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
semanage_ibendport_free(p)
@@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords):
port = semanage_ibendport_get_port(ibendport)
(k, ibdev_name, port) = self.__genkey(str(port), ibdev_name)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port))
+ raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port))
+ raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_key_free(k)
self.commit()
@@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords):
(k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name)
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, exists) = semanage_ibendport_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
--
2.40.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 2/4] python/semanage: Drop hard formating from localized strings
2023-05-17 13:49 [PATCH 1/4] python: improve format strings for proper localization Petr Lautrbach
@ 2023-05-17 13:49 ` Petr Lautrbach
2023-06-06 15:20 ` Vit Mojzis
2023-05-17 13:49 ` [PATCH 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
` (2 subsequent siblings)
3 siblings, 1 reply; 26+ messages in thread
From: Petr Lautrbach @ 2023-05-17 13:49 UTC (permalink / raw)
To: selinux; +Cc: Petr Lautrbach
It confuses translators and new lines are dropped by parser module anyway.
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/audit2allow/audit2allow | 14 ++++++++---
python/semanage/semanage | 44 +++++++++++++---------------------
2 files changed, 28 insertions(+), 30 deletions(-)
diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow
index 5587a2dbb006..35b0b151ac86 100644
--- a/python/audit2allow/audit2allow
+++ b/python/audit2allow/audit2allow
@@ -234,9 +234,17 @@ class AuditToPolicy:
print(e)
sys.exit(1)
- sys.stdout.write(_("******************** IMPORTANT ***********************\n"))
- sys.stdout.write((_("To make this policy package active, execute:" +
- "\n\nsemodule -i %s\n\n") % packagename))
+ sys.stdout.write(
+"""******************** {important} ***********************
+{text}
+
+semodule -i {packagename}
+
+""".format(
+ important=_("IMPORTANT"),
+ text=_("To make this policy package active, execute:"),
+ packagename=packagename
+))
def __output_audit2why(self):
import selinux
diff --git a/python/semanage/semanage b/python/semanage/semanage
index e0bd98a95c77..898df4b93c10 100644
--- a/python/semanage/semanage
+++ b/python/semanage/semanage
@@ -238,30 +238,22 @@ def parser_add_level(parser, name):
def parser_add_range(parser, name):
- parser.add_argument('-r', '--range', default='',
- help=_('''
-MLS/MCS Security Range (MLS/MCS Systems only)
-SELinux Range for SELinux login mapping
-defaults to the SELinux user record range.
-SELinux Range for SELinux user defaults to s0.
-'''))
+ parser.add_argument('-r', '--range', default='', help=_(
+ "MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. \
+SELinux Range for SELinux user defaults to s0."
+ ))
def parser_add_proto(parser, name):
- parser.add_argument('-p', '--proto', help=_('''
- Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol
- version for the specified node (ipv4|ipv6).
-'''))
+ parser.add_argument('-p', '--proto', help=_(
+ "Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version for the specified node (ipv4|ipv6)."
+ ))
def parser_add_subnet_prefix(parser, name):
- parser.add_argument('-x', '--subnet_prefix', help=_('''
- Subnet prefix for the specified infiniband ibpkey.
-'''))
+ parser.add_argument('-x', '--subnet_prefix', help=_('Subnet prefix for the specified infiniband ibpkey.'))
def parser_add_ibdev_name(parser, name):
- parser.add_argument('-z', '--ibdev_name', help=_('''
- Name for the specified infiniband end port.
-'''))
+ parser.add_argument('-z', '--ibdev_name', help=_("Name for the specified infiniband end port."))
def parser_add_modify(parser, name):
parser.add_argument('-m', '--modify', dest='action', action='store_const', const='modify', help=_("Modify a record of the %s object type") % name)
@@ -372,10 +364,10 @@ If you do not specify a file type, the file type will default to "all files".
parser_add_extract(fcontext_action, "fcontext")
parser_add_deleteall(fcontext_action, "fcontext")
- fcontextParser.add_argument('-e', '--equal', help=_('''Substitute target path with sourcepath when generating default
- label. This is used with fcontext. Requires source and target
- path arguments. The context labeling for the target subtree is
- made equivalent to that defined for the source.'''))
+ fcontextParser.add_argument('-e', '--equal', help=_(
+ "Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target \
+path arguments. The context labeling for the target subtree is made equivalent to that defined for the source."
+ ))
fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(ftype_help))
parser_add_seuser(fcontextParser, "fcontext")
parser_add_type(fcontextParser, "fcontext")
@@ -426,9 +418,7 @@ def setupUserParser(subparsers):
parser_add_range(userParser, "user")
userParser.add_argument('-R', '--roles', default=[],
action=CheckRole,
- help=_('''
-SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times.
-'''))
+ help=_("SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times."))
userParser.add_argument('-P', '--prefix', default="user", help=argparse.SUPPRESS)
userParser.add_argument('selinux_name', nargs='?', default=None, help=_('selinux_name'))
userParser.set_defaults(func=handleUser)
@@ -901,9 +891,9 @@ def setupImportParser(subparsers):
def createCommandParser():
commandParser = seParser(prog='semanage',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- description='''semanage is used to configure certain elements
- of SELinux policy with-out requiring modification
- to or recompilation from policy source.''')
+ description=_(
+ "semanage is used to configure certain elements of SELinux policy with-out requiring modification or recompilation from policy source."
+ ))
#To add a new subcommand define the parser for it in a function above and call it here.
subparsers = commandParser.add_subparsers(dest='subcommand')
--
2.40.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 3/4] semanage: Drop unnecessary import from seobject
2023-05-17 13:49 [PATCH 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-05-17 13:49 ` [PATCH 2/4] python/semanage: Drop hard formating from localized strings Petr Lautrbach
@ 2023-05-17 13:49 ` Petr Lautrbach
2023-05-17 13:49 ` [PATCH 4/4] python: update python.pot Petr Lautrbach
2023-06-06 15:20 ` [PATCH 1/4] python: improve format strings for proper localization Vit Mojzis
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-05-17 13:49 UTC (permalink / raw)
To: selinux; +Cc: Petr Lautrbach
sepolgen.module is not used for permissive domains
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/semanage/seobject.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index 8a891ca23bca..124bb431464e 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -504,11 +504,6 @@ class permissiveRecords(semanageRecords):
print(t)
def add(self, type):
- try:
- import sepolgen.module as module
- except ImportError:
- raise ValueError(_("The sepolgen python module is required to setup permissive domains.\nIn some distributions it is included in the policycoreutils-devel package.\n# yum install policycoreutils-devel\nOr similar for your distro."))
-
name = "permissive_%s" % type
modtxt = "(typepermissive %s)" % type
--
2.40.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 4/4] python: update python.pot
2023-05-17 13:49 [PATCH 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-05-17 13:49 ` [PATCH 2/4] python/semanage: Drop hard formating from localized strings Petr Lautrbach
2023-05-17 13:49 ` [PATCH 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
@ 2023-05-17 13:49 ` Petr Lautrbach
2023-06-06 15:20 ` [PATCH 1/4] python: improve format strings for proper localization Vit Mojzis
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-05-17 13:49 UTC (permalink / raw)
To: selinux; +Cc: Petr Lautrbach
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/po/python.pot | 895 ++++++++++++++++++++++---------------------
1 file changed, 458 insertions(+), 437 deletions(-)
diff --git a/python/po/python.pot b/python/po/python.pot
index 16d04eb0f18e..874495448404 100644
--- a/python/po/python.pot
+++ b/python/po/python.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-01-18 11:57+0100\n"
+"POT-Creation-Date: 2023-05-17 13:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,17 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../audit2allow/audit2allow:239
-msgid "******************** IMPORTANT ***********************\n"
+#: ../audit2allow/audit2allow:244
+msgid "IMPORTANT"
msgstr ""
-#: ../audit2allow/audit2allow:240
-#, python-format
-msgid ""
-"To make this policy package active, execute:\n"
-"\n"
-"semodule -i %s\n"
-"\n"
+#: ../audit2allow/audit2allow:245
+msgid "To make this policy package active, execute:"
msgstr ""
#: ../chcat/chcat:111 ../chcat/chcat:191
@@ -44,11 +39,16 @@ msgstr ""
msgid "%s is already in %s"
msgstr ""
-#: ../chcat/chcat:210 ../chcat/chcat:220
+#: ../chcat/chcat:210
#, python-format
msgid "%s is not in %s"
msgstr ""
+#: ../chcat/chcat:220
+#, python-brace-format
+msgid "{target} is not in {category}"
+msgstr ""
+
#: ../chcat/chcat:291 ../chcat/chcat:296
msgid "Can not combine +/- with other types of categories"
msgstr ""
@@ -152,218 +152,212 @@ msgstr ""
#: ../semanage/semanage:242
msgid ""
-"\n"
-"MLS/MCS Security Range (MLS/MCS Systems only)\n"
-"SELinux Range for SELinux login mapping\n"
-"defaults to the SELinux user record range.\n"
-"SELinux Range for SELinux user defaults to s0.\n"
+"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
+"login mapping defaults to the SELinux user record range. SELinux Range for "
+"SELinux user defaults to s0."
msgstr ""
-#: ../semanage/semanage:251
+#: ../semanage/semanage:249
msgid ""
-"\n"
-" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
-"protocol\n"
-" version for the specified node (ipv4|ipv6).\n"
+"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
+"version for the specified node (ipv4|ipv6)."
msgstr ""
-#: ../semanage/semanage:257
-msgid ""
-"\n"
-" Subnet prefix for the specified infiniband ibpkey.\n"
+#: ../semanage/semanage:253
+msgid "Subnet prefix for the specified infiniband ibpkey."
msgstr ""
-#: ../semanage/semanage:262
-msgid ""
-"\n"
-" Name for the specified infiniband end port.\n"
+#: ../semanage/semanage:256
+msgid "Name for the specified infiniband end port."
msgstr ""
-#: ../semanage/semanage:267
+#: ../semanage/semanage:259
#, python-format
msgid "Modify a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:271
+#: ../semanage/semanage:263
#, python-format
msgid "List records of the %s object type"
msgstr ""
-#: ../semanage/semanage:275
+#: ../semanage/semanage:267
#, python-format
msgid "Delete a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:279
+#: ../semanage/semanage:271
msgid "Extract customizable commands, for use within a transaction"
msgstr ""
-#: ../semanage/semanage:283
+#: ../semanage/semanage:275
#, python-format
msgid "Remove all %s objects local customizations"
msgstr ""
-#: ../semanage/semanage:287
+#: ../semanage/semanage:279
msgid "SELinux user name"
msgstr ""
-#: ../semanage/semanage:292
+#: ../semanage/semanage:284
msgid "Manage login mappings between linux users and SELinux confined users"
msgstr ""
-#: ../semanage/semanage:309
+#: ../semanage/semanage:301
#, python-format
msgid "login_name | %%groupname"
msgstr ""
-#: ../semanage/semanage:361
+#: ../semanage/semanage:353
msgid "Manage file context mapping definitions"
msgstr ""
-#: ../semanage/semanage:375
+#: ../semanage/semanage:368
msgid ""
-"Substitute target path with sourcepath when generating default\n"
-" label. "
-"This is used with fcontext. Requires source and target\n"
-" path "
-"arguments. The context labeling for the target subtree is\n"
-" made "
-"equivalent to that defined for the source."
+"Substitute target path with sourcepath when generating default label. This "
+"is used with fcontext. Requires source and target path arguments. The "
+"context labeling for the target subtree is made equivalent to that defined "
+"for the source."
msgstr ""
-#: ../semanage/semanage:383
+#: ../semanage/semanage:375
msgid ""
"Path to be labeled (may be in the form of a Perl compatible regular "
"expression)"
msgstr ""
-#: ../semanage/semanage:411
+#: ../semanage/semanage:403
msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
msgstr ""
-#: ../semanage/semanage:429
+#: ../semanage/semanage:421
msgid ""
-"\n"
-"SELinux Roles. You must enclose multiple roles within quotes, separate by "
-"spaces. Or specify -R multiple times.\n"
+"SELinux Roles. You must enclose multiple roles within quotes, separate by "
+"spaces. Or specify -R multiple times."
msgstr ""
-#: ../semanage/semanage:433
+#: ../semanage/semanage:423
msgid "selinux_name"
msgstr ""
-#: ../semanage/semanage:461
+#: ../semanage/semanage:451
msgid "Manage network port type definitions"
msgstr ""
-#: ../semanage/semanage:477
+#: ../semanage/semanage:467
msgid "port | port_range"
msgstr ""
-#: ../semanage/semanage:506
+#: ../semanage/semanage:496
msgid "Manage infiniband ibpkey type definitions"
msgstr ""
-#: ../semanage/semanage:522
+#: ../semanage/semanage:512
msgid "pkey | pkey_range"
msgstr ""
-#: ../semanage/semanage:549
+#: ../semanage/semanage:539
msgid "Manage infiniband end port type definitions"
msgstr ""
-#: ../semanage/semanage:565
+#: ../semanage/semanage:555
msgid "ibendport"
msgstr ""
-#: ../semanage/semanage:592
+#: ../semanage/semanage:582
msgid "Manage network interface type definitions"
msgstr ""
-#: ../semanage/semanage:607
+#: ../semanage/semanage:597
msgid "interface_spec"
msgstr ""
-#: ../semanage/semanage:631
+#: ../semanage/semanage:621
msgid "Manage SELinux policy modules"
msgstr ""
-#: ../semanage/semanage:642
+#: ../semanage/semanage:632
msgid "Add a module"
msgstr ""
-#: ../semanage/semanage:643
+#: ../semanage/semanage:633
msgid "Remove a module"
msgstr ""
-#: ../semanage/semanage:644
+#: ../semanage/semanage:634
msgid "Disable a module"
msgstr ""
-#: ../semanage/semanage:645
+#: ../semanage/semanage:635
msgid "Enable a module"
msgstr ""
-#: ../semanage/semanage:672
+#: ../semanage/semanage:662
msgid "Manage network node type definitions"
msgstr ""
-#: ../semanage/semanage:686
+#: ../semanage/semanage:676
msgid "Network Mask"
msgstr ""
-#: ../semanage/semanage:690
+#: ../semanage/semanage:680
msgid "node"
msgstr ""
-#: ../semanage/semanage:715
+#: ../semanage/semanage:705
msgid "Manage booleans to selectively enable functionality"
msgstr ""
-#: ../semanage/semanage:720
+#: ../semanage/semanage:710
msgid "boolean"
msgstr ""
-#: ../semanage/semanage:730
+#: ../semanage/semanage:720
msgid "Enable the boolean"
msgstr ""
-#: ../semanage/semanage:731
+#: ../semanage/semanage:721
msgid "Disable the boolean"
msgstr ""
-#: ../semanage/semanage:752
+#: ../semanage/semanage:742
msgid "semanage permissive: error: the following argument is required: type\n"
msgstr ""
-#: ../semanage/semanage:756
+#: ../semanage/semanage:746
msgid "Manage process type enforcement mode"
msgstr ""
-#: ../semanage/semanage:768 ../semanage/seobject.py:2677
+#: ../semanage/semanage:758 ../semanage/seobject.py:2672
msgid "type"
msgstr ""
-#: ../semanage/semanage:779
+#: ../semanage/semanage:769
msgid "Disable/Enable dontaudit rules in policy"
msgstr ""
-#: ../semanage/semanage:799
+#: ../semanage/semanage:789
msgid "Output local customizations"
msgstr ""
-#: ../semanage/semanage:801
+#: ../semanage/semanage:791
msgid "Output file"
msgstr ""
-#: ../semanage/semanage:894
+#: ../semanage/semanage:884
msgid "Import local customizations"
msgstr ""
-#: ../semanage/semanage:897
+#: ../semanage/semanage:887
msgid "Input file"
msgstr ""
+#: ../semanage/semanage:895
+msgid ""
+"semanage is used to configure certain elements of SELinux policy with-out "
+"requiring modification or recompilation from policy source."
+msgstr ""
+
#: ../semanage/seobject.py:279
msgid "Could not create semanage handle"
msgstr ""
@@ -485,123 +479,115 @@ msgstr ""
msgid "Customized Permissive Types"
msgstr ""
-#: ../semanage/seobject.py:510
-msgid ""
-"The sepolgen python module is required to setup permissive domains.\n"
-"In some distributions it is included in the policycoreutils-devel package.\n"
-"# yum install policycoreutils-devel\n"
-"Or similar for your distro."
-msgstr ""
-
-#: ../semanage/seobject.py:520
+#: ../semanage/seobject.py:515
#, python-format
msgid "Could not set permissive domain %s (module installation failed)"
msgstr ""
-#: ../semanage/seobject.py:526
+#: ../semanage/seobject.py:521
#, python-format
msgid "Could not remove permissive domain %s (remove failed)"
msgstr ""
-#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
-#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
-#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
-#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
-#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
-#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
-#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
+#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
+#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
+#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
+#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
+#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
+#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
+#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
#, python-format
msgid "Could not create a key for %s"
msgstr ""
-#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
-#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
+#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
+#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
#, python-format
msgid "Could not check if login mapping for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:569
+#: ../semanage/seobject.py:564
#, python-format
msgid "Login mapping for %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:574
+#: ../semanage/seobject.py:569
#, python-format
msgid "Linux Group %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:579
+#: ../semanage/seobject.py:574
#, python-format
msgid "Linux User %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:583
+#: ../semanage/seobject.py:578
#, python-format
msgid "Could not create login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
+#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
#, python-format
msgid "Could not set name for %s"
msgstr ""
-#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
+#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
#, python-format
msgid "Could not set MLS range for %s"
msgstr ""
-#: ../semanage/seobject.py:596
+#: ../semanage/seobject.py:591
#, python-format
msgid "Could not set SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:600
+#: ../semanage/seobject.py:595
#, python-format
msgid "Could not add login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:616
+#: ../semanage/seobject.py:611
msgid "Requires seuser or serange"
msgstr ""
-#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
+#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
#, python-format
msgid "Login mapping for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:643
+#: ../semanage/seobject.py:638
#, python-format
msgid "Could not query seuser for %s"
msgstr ""
-#: ../semanage/seobject.py:658
+#: ../semanage/seobject.py:653
#, python-format
msgid "Could not modify login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:690
+#: ../semanage/seobject.py:685
#, python-format
msgid "Login mapping for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:694
+#: ../semanage/seobject.py:689
#, python-format
msgid "Could not delete login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
-#: ../semanage/seobject.py:991
+#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
+#: ../semanage/seobject.py:986
msgid "Could not list login mappings"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
#: ../sepolicy/sepolicy/sepolicy.glade:1156
#: ../sepolicy/sepolicy/sepolicy.glade:3138
msgid "Login Name"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:1182
#: ../sepolicy/sepolicy/sepolicy.glade:3156
#: ../sepolicy/sepolicy/sepolicy.glade:3242
@@ -609,938 +595,973 @@ msgstr ""
msgid "SELinux User"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "MLS/MCS Range"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "Service"
msgstr ""
-#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
-#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
-#: ../semanage/seobject.py:958
+#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
+#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
+#: ../semanage/seobject.py:953
#, python-format
msgid "Could not check if SELinux user %s is defined"
msgstr ""
-#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
-#: ../semanage/seobject.py:964
+#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
+#: ../semanage/seobject.py:959
#, python-format
msgid "Could not query user for %s"
msgstr ""
-#: ../semanage/seobject.py:823
+#: ../semanage/seobject.py:818
#, python-format
msgid "You must add at least one role for %s"
msgstr ""
-#: ../semanage/seobject.py:833
+#: ../semanage/seobject.py:828
#, python-format
msgid "SELinux user %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:837
+#: ../semanage/seobject.py:832
#, python-format
msgid "Could not create SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:846
+#: ../semanage/seobject.py:841
#, python-format
msgid "Could not add role %s for %s"
msgstr ""
-#: ../semanage/seobject.py:855
+#: ../semanage/seobject.py:850
#, python-format
msgid "Could not set MLS level for %s"
msgstr ""
-#: ../semanage/seobject.py:858
+#: ../semanage/seobject.py:853
#, python-format
msgid "Could not add prefix %s for %s"
msgstr ""
-#: ../semanage/seobject.py:861
+#: ../semanage/seobject.py:856
#, python-format
msgid "Could not extract key for %s"
msgstr ""
-#: ../semanage/seobject.py:865
+#: ../semanage/seobject.py:860
#, python-format
msgid "Could not add SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:886
+#: ../semanage/seobject.py:881
msgid "Requires prefix, roles, level or range"
msgstr ""
-#: ../semanage/seobject.py:888
+#: ../semanage/seobject.py:883
msgid "Requires prefix or roles"
msgstr ""
-#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
+#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
#, python-format
msgid "SELinux user %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:927
+#: ../semanage/seobject.py:922
#, python-format
msgid "Could not modify SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:960
+#: ../semanage/seobject.py:955
#, python-format
msgid "SELinux user %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:971
+#: ../semanage/seobject.py:966
#, python-format
msgid "Could not delete SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:1009
+#: ../semanage/seobject.py:1004
msgid "Could not list SELinux users"
msgstr ""
-#: ../semanage/seobject.py:1015
+#: ../semanage/seobject.py:1010
#, python-format
msgid "Could not list roles for user %s"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "Labeling"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "MLS/"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "Prefix"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Level"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Range"
msgstr ""
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:3262
#: ../sepolicy/sepolicy/sepolicy.glade:5233
#: ../sepolicy/sepolicy/sepolicy.glade:5382
msgid "SELinux Roles"
msgstr ""
-#: ../semanage/seobject.py:1071
+#: ../semanage/seobject.py:1066
msgid "Protocol has to be one of udp, tcp, dccp or sctp"
msgstr ""
-#: ../semanage/seobject.py:1073
+#: ../semanage/seobject.py:1068
msgid "Port is required"
msgstr ""
-#: ../semanage/seobject.py:1087
+#: ../semanage/seobject.py:1082
msgid "Invalid Port"
msgstr ""
-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
+#: ../semanage/seobject.py:1086
#, python-format
msgid "Could not create a key for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
-#: ../semanage/seobject.py:1631
+#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
+#: ../semanage/seobject.py:1626
msgid "Type is required"
msgstr ""
-#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
+#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
#, python-format
msgid "Type %s is invalid, must be a port type"
msgstr ""
-#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
-#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
+#: ../semanage/seobject.py:1108
#, python-format
msgid "Could not check if port %s/%s is defined"
msgstr ""
-#: ../semanage/seobject.py:1115
+#: ../semanage/seobject.py:1110
#, python-format
msgid "Port %s/%s already defined"
msgstr ""
-#: ../semanage/seobject.py:1119
+#: ../semanage/seobject.py:1114
#, python-format
msgid "Could not create port for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
-#: ../semanage/seobject.py:1653
+#: ../semanage/seobject.py:1120
#, python-format
msgid "Could not create context for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1129
+#: ../semanage/seobject.py:1124
#, python-format
msgid "Could not set user in port context for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1133
+#: ../semanage/seobject.py:1128
#, python-format
msgid "Could not set role in port context for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1137
+#: ../semanage/seobject.py:1132
#, python-format
msgid "Could not set type in port context for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1142
+#: ../semanage/seobject.py:1137
#, python-format
msgid "Could not set mls fields in port context for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1146
+#: ../semanage/seobject.py:1141
#, python-format
msgid "Could not set port context for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1150
+#: ../semanage/seobject.py:1145
#, python-format
msgid "Could not add port %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
-#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
-#: ../semanage/seobject.py:2176
+#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
+#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
+#: ../semanage/seobject.py:2171
msgid "Requires setype or serange"
msgstr ""
-#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
-#: ../semanage/seobject.py:1694
+#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
+#: ../semanage/seobject.py:1689
msgid "Requires setype"
msgstr ""
-#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
-#, python-format
-msgid "Port %s/%s is not defined"
+#: ../semanage/seobject.py:1173 ../semanage/seobject.py:1239
+#: ../semanage/seobject.py:1245
+#, python-brace-format
+msgid "Could not check if port {proto}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1184
-#, python-format
-msgid "Could not query port %s/%s"
+#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
+#, python-brace-format
+msgid "Port {proto}/{port} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1198
-#, python-format
-msgid "Could not modify port %s/%s"
+#: ../semanage/seobject.py:1179
+#, python-brace-format
+msgid "Could not query port {proto}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1193
+#, python-brace-format
+msgid "Could not modify port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1213
+#: ../semanage/seobject.py:1208
msgid "Could not list the ports"
msgstr ""
-#: ../semanage/seobject.py:1230
+#: ../semanage/seobject.py:1225
#, python-format
msgid "Could not delete the port %s"
msgstr ""
-#: ../semanage/seobject.py:1252
-#, python-format
-msgid "Port %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1247
+#, python-brace-format
+msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1256
-#, python-format
-msgid "Could not delete port %s/%s"
+#: ../semanage/seobject.py:1251
+#, python-brace-format
+msgid "Could not delete port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
+#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
msgid "Could not list ports"
msgstr ""
-#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
+#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
#: ../sepolicy/sepolicy/sepolicy.glade:2766
#: ../sepolicy/sepolicy/sepolicy.glade:4630
msgid "SELinux Port Type"
msgstr ""
-#: ../semanage/seobject.py:1329
+#: ../semanage/seobject.py:1324
msgid "Proto"
msgstr ""
-#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
#: ../sepolicy/sepolicy/sepolicy.glade:1407
msgid "Port Number"
msgstr ""
-#: ../semanage/seobject.py:1351
+#: ../semanage/seobject.py:1346
msgid "Subnet Prefix is required"
msgstr ""
-#: ../semanage/seobject.py:1361
+#: ../semanage/seobject.py:1356
msgid "Invalid Pkey"
msgstr ""
-#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
+#: ../semanage/seobject.py:1360
+#, python-brace-format
+msgid "Could not create a key for {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
#, python-format
msgid "Type %s is invalid, must be a ibpkey type"
msgstr ""
-#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
-#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
-#, python-format
-msgid "Could not check if ibpkey %s/%s is defined"
+#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
+#: ../semanage/seobject.py:1506
+#, python-brace-format
+msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
msgstr ""
-#: ../semanage/seobject.py:1389
-#, python-format
-msgid "ibpkey %s/%s already defined"
+#: ../semanage/seobject.py:1384
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} already defined"
msgstr ""
-#: ../semanage/seobject.py:1393
-#, python-format
-msgid "Could not create ibpkey for %s/%s"
+#: ../semanage/seobject.py:1388
+#, python-brace-format
+msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1403
-#, python-format
-msgid "Could not set user in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1394
+#, python-brace-format
+msgid "Could not create context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1407
-#, python-format
-msgid "Could not set role in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1398
+#, python-brace-format
+msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1411
-#, python-format
-msgid "Could not set type in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1402
+#, python-brace-format
+msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1416
-#, python-format
-msgid "Could not set mls fields in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1406
+#, python-brace-format
+msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1420
-#, python-format
-msgid "Could not set ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1411
+#, python-brace-format
+msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1424
-#, python-format
-msgid "Could not add ibpkey %s/%s"
+#: ../semanage/seobject.py:1415
+#, python-brace-format
+msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
-#, python-format
-msgid "ibpkey %s/%s is not defined"
+#: ../semanage/seobject.py:1419
+#, python-brace-format
+msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1457
-#, python-format
-msgid "Could not query ibpkey %s/%s"
+#: ../semanage/seobject.py:1448
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
+msgstr ""
+
+#: ../semanage/seobject.py:1452
+#, python-brace-format
+msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1468
+#: ../semanage/seobject.py:1463
#, python-format
msgid "Could not modify ibpkey %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1481
+#: ../semanage/seobject.py:1476
msgid "Could not list the ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1496
+#: ../semanage/seobject.py:1491
#, python-format
msgid "Could not delete the ibpkey %s"
msgstr ""
-#: ../semanage/seobject.py:1513
+#: ../semanage/seobject.py:1500
#, python-format
-msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
+msgid "Could not check if ibpkey %s/%s is defined"
msgstr ""
-#: ../semanage/seobject.py:1517
+#: ../semanage/seobject.py:1502
#, python-format
-msgid "Could not delete ibpkey %s/%s"
+msgid "ibpkey %s/%s is not defined"
+msgstr ""
+
+#: ../semanage/seobject.py:1508
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
+msgstr ""
+
+#: ../semanage/seobject.py:1512
+#, python-brace-format
+msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
+#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
msgid "Could not list ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "SELinux IB Pkey Type"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Subnet_Prefix"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Pkey Number"
msgstr ""
-#: ../semanage/seobject.py:1611
+#: ../semanage/seobject.py:1606
msgid "IB device name is required"
msgstr ""
-#: ../semanage/seobject.py:1616
+#: ../semanage/seobject.py:1611
msgid "Invalid Port Number"
msgstr ""
-#: ../semanage/seobject.py:1620
-#, python-format
-msgid "Could not create a key for ibendport %s/%s"
+#: ../semanage/seobject.py:1615
+#, python-brace-format
+msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
+#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
#, python-format
msgid "Type %s is invalid, must be an ibendport type"
msgstr ""
-#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
-#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
-#, python-format
-msgid "Could not check if ibendport %s/%s is defined"
+#: ../semanage/seobject.py:1636
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1643
-#, python-format
-msgid "ibendport %s/%s already defined"
+#: ../semanage/seobject.py:1638
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1647
+#: ../semanage/seobject.py:1642
#, python-format
msgid "Could not create ibendport for %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1657
-#, python-format
-msgid "Could not set user in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1648
+#, python-brace-format
+msgid "Could not create context for {ibendport}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1661
-#, python-format
-msgid "Could not set role in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1652
+#, python-brace-format
+msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1656
+#, python-brace-format
+msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1660
+#, python-brace-format
+msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
msgstr ""
#: ../semanage/seobject.py:1665
-#, python-format
-msgid "Could not set type in ibendport context for %s/%s"
+#, python-brace-format
+msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1670
-#, python-format
-msgid "Could not set mls fields in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1669
+#, python-brace-format
+msgid "Could not set ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1674
-#, python-format
-msgid "Could not set ibendport context for %s/%s"
+#: ../semanage/seobject.py:1673
+#, python-brace-format
+msgid "Could not add ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1678
-#, python-format
-msgid "Could not add ibendport %s/%s"
+#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
+#: ../semanage/seobject.py:1758
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
msgstr ""
-#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
-#, python-format
-msgid "ibendport %s/%s is not defined"
+#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{ibendport} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1711
+#: ../semanage/seobject.py:1706
#, python-format
msgid "Could not query ibendport %s/%s"
msgstr ""
-#: ../semanage/seobject.py:1722
-#, python-format
-msgid "Could not modify ibendport %s/%s"
+#: ../semanage/seobject.py:1717
+#, python-brace-format
+msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1735
+#: ../semanage/seobject.py:1730
msgid "Could not list the ibendports"
msgstr ""
-#: ../semanage/seobject.py:1744
-#, python-format
-msgid "Could not create a key for %s/%d"
+#: ../semanage/seobject.py:1739
+#, python-brace-format
+msgid "Could not create a key for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1748
-#, python-format
-msgid "Could not delete the ibendport %s/%d"
+#: ../semanage/seobject.py:1743
+#, python-brace-format
+msgid "Could not delete the ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1765
-#, python-format
-msgid "ibendport %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1760
+#, python-brace-format
+msgid ""
+"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1769
-#, python-format
-msgid "Could not delete ibendport %s/%s"
+#: ../semanage/seobject.py:1764
+#, python-brace-format
+msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
+#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
msgid "Could not list ibendports"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "SELinux IB End Port Type"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "IB Device Name"
msgstr ""
-#: ../semanage/seobject.py:1861
+#: ../semanage/seobject.py:1856
msgid "Node Address is required"
msgstr ""
-#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
+#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
msgid "Unknown or missing protocol"
msgstr ""
-#: ../semanage/seobject.py:1899
+#: ../semanage/seobject.py:1894
msgid "SELinux node type is required"
msgstr ""
-#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
+#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
#, python-format
msgid "Type %s is invalid, must be a node type"
msgstr ""
-#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
-#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
-#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
-#: ../semanage/seobject.py:2435
+#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
+#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
+#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
+#: ../semanage/seobject.py:2430
#, python-format
msgid "Could not create key for %s"
msgstr ""
-#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
-#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
+#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
+#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
#, python-format
msgid "Could not check if addr %s is defined"
msgstr ""
-#: ../semanage/seobject.py:1914
+#: ../semanage/seobject.py:1909
#, python-format
msgid "Addr %s already defined"
msgstr ""
-#: ../semanage/seobject.py:1918
+#: ../semanage/seobject.py:1913
#, python-format
msgid "Could not create addr for %s"
msgstr ""
-#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
-#: ../semanage/seobject.py:2389
+#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2384
#, python-format
msgid "Could not create context for %s"
msgstr ""
-#: ../semanage/seobject.py:1928
+#: ../semanage/seobject.py:1923
#, python-format
msgid "Could not set mask for %s"
msgstr ""
-#: ../semanage/seobject.py:1932
+#: ../semanage/seobject.py:1927
#, python-format
msgid "Could not set user in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1936
+#: ../semanage/seobject.py:1931
#, python-format
msgid "Could not set role in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1940
+#: ../semanage/seobject.py:1935
#, python-format
msgid "Could not set type in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1945
+#: ../semanage/seobject.py:1940
#, python-format
msgid "Could not set mls fields in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1949
+#: ../semanage/seobject.py:1944
#, python-format
msgid "Could not set addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1953
+#: ../semanage/seobject.py:1948
#, python-format
msgid "Could not add addr %s"
msgstr ""
-#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
+#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
#, python-format
msgid "Addr %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:1989
+#: ../semanage/seobject.py:1984
#, python-format
msgid "Could not query addr %s"
msgstr ""
-#: ../semanage/seobject.py:1999
+#: ../semanage/seobject.py:1994
#, python-format
msgid "Could not modify addr %s"
msgstr ""
-#: ../semanage/seobject.py:2028
+#: ../semanage/seobject.py:2023
#, python-format
msgid "Addr %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2032
+#: ../semanage/seobject.py:2027
#, python-format
msgid "Could not delete addr %s"
msgstr ""
-#: ../semanage/seobject.py:2046
+#: ../semanage/seobject.py:2041
msgid "Could not deleteall node mappings"
msgstr ""
-#: ../semanage/seobject.py:2060
+#: ../semanage/seobject.py:2055
msgid "Could not list addrs"
msgstr ""
-#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
+#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
msgid "SELinux Type is required"
msgstr ""
-#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
-#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
+#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
+#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
#, python-format
msgid "Could not check if interface %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2123
+#: ../semanage/seobject.py:2118
#, python-format
msgid "Interface %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2122
#, python-format
msgid "Could not create interface for %s"
msgstr ""
-#: ../semanage/seobject.py:2136
+#: ../semanage/seobject.py:2131
#, python-format
msgid "Could not set user in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2140
+#: ../semanage/seobject.py:2135
#, python-format
msgid "Could not set role in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2144
+#: ../semanage/seobject.py:2139
#, python-format
msgid "Could not set type in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2149
+#: ../semanage/seobject.py:2144
#, python-format
msgid "Could not set mls fields in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2153
+#: ../semanage/seobject.py:2148
#, python-format
msgid "Could not set interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2157
+#: ../semanage/seobject.py:2152
#, python-format
msgid "Could not set message context for %s"
msgstr ""
-#: ../semanage/seobject.py:2161
+#: ../semanage/seobject.py:2156
#, python-format
msgid "Could not add interface %s"
msgstr ""
-#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
+#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
#, python-format
msgid "Interface %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2190
+#: ../semanage/seobject.py:2185
#, python-format
msgid "Could not query interface %s"
msgstr ""
-#: ../semanage/seobject.py:2201
+#: ../semanage/seobject.py:2196
#, python-format
msgid "Could not modify interface %s"
msgstr ""
-#: ../semanage/seobject.py:2228
+#: ../semanage/seobject.py:2223
#, python-format
msgid "Interface %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2232
+#: ../semanage/seobject.py:2227
#, python-format
msgid "Could not delete interface %s"
msgstr ""
-#: ../semanage/seobject.py:2246
+#: ../semanage/seobject.py:2241
msgid "Could not delete all interface mappings"
msgstr ""
-#: ../semanage/seobject.py:2260
+#: ../semanage/seobject.py:2255
msgid "Could not list interfaces"
msgstr ""
-#: ../semanage/seobject.py:2285
+#: ../semanage/seobject.py:2280
msgid "SELinux Interface"
msgstr ""
-#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
msgid "Context"
msgstr ""
-#: ../semanage/seobject.py:2355
+#: ../semanage/seobject.py:2350
#, python-format
msgid "Target %s is not valid. Target is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2358
+#: ../semanage/seobject.py:2353
#, python-format
msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2361
+#: ../semanage/seobject.py:2356
#, python-format
msgid "Equivalence class for %s already exists"
msgstr ""
-#: ../semanage/seobject.py:2367
+#: ../semanage/seobject.py:2362
#, python-format
msgid "File spec %s conflicts with equivalency rule '%s %s'"
msgstr ""
-#: ../semanage/seobject.py:2378
+#: ../semanage/seobject.py:2373
#, python-format
msgid "Equivalence class for %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:2395
+#: ../semanage/seobject.py:2390
#, python-format
msgid "Could not set user in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2399
+#: ../semanage/seobject.py:2394
#, python-format
msgid "Could not set role in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
+#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
#, python-format
msgid "Could not set mls fields in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2410
+#: ../semanage/seobject.py:2405
msgid "Invalid file specification"
msgstr ""
-#: ../semanage/seobject.py:2412
+#: ../semanage/seobject.py:2407
msgid "File specification can not include spaces"
msgstr ""
-#: ../semanage/seobject.py:2417
+#: ../semanage/seobject.py:2412
#, python-format
msgid ""
"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
msgstr ""
-#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
+#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
#, python-format
msgid "Type %s is invalid, must be a file or device type"
msgstr ""
-#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
-#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
-#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
+#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
+#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
+#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
#, python-format
msgid "Could not check if file context for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2447
+#: ../semanage/seobject.py:2442
#, python-format
msgid "File context for %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2451
+#: ../semanage/seobject.py:2446
#, python-format
msgid "Could not create file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2459
+#: ../semanage/seobject.py:2454
#, python-format
msgid "Could not set type in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
-#: ../semanage/seobject.py:2543
+#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
+#: ../semanage/seobject.py:2538
#, python-format
msgid "Could not set file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2473
+#: ../semanage/seobject.py:2468
#, python-format
msgid "Could not add file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2492
+#: ../semanage/seobject.py:2487
msgid "Requires setype, serange or seuser"
msgstr ""
-#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
+#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
#, python-format
msgid "Could not query file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
+#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
#, python-format
msgid "File context for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2547
+#: ../semanage/seobject.py:2542
#, python-format
msgid "Could not modify file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2565
+#: ../semanage/seobject.py:2560
msgid "Could not list the file contexts"
msgstr ""
-#: ../semanage/seobject.py:2579
+#: ../semanage/seobject.py:2574
#, python-format
msgid "Could not delete the file context %s"
msgstr ""
-#: ../semanage/seobject.py:2609
+#: ../semanage/seobject.py:2604
#, python-format
msgid "File context for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2615
+#: ../semanage/seobject.py:2610
#, python-format
msgid "Could not delete file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2632
+#: ../semanage/seobject.py:2627
msgid "Could not list file contexts"
msgstr ""
-#: ../semanage/seobject.py:2636
+#: ../semanage/seobject.py:2631
msgid "Could not list file contexts for home directories"
msgstr ""
-#: ../semanage/seobject.py:2640
+#: ../semanage/seobject.py:2635
msgid "Could not list local file contexts"
msgstr ""
-#: ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2672
msgid "SELinux fcontext"
msgstr ""
-#: ../semanage/seobject.py:2690
+#: ../semanage/seobject.py:2685
msgid ""
"\n"
"SELinux Distribution fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2695
+#: ../semanage/seobject.py:2690
msgid ""
"\n"
"SELinux Local fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
-#: ../semanage/seobject.py:2790
+#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
+#: ../semanage/seobject.py:2785
#, python-format
msgid "Could not check if boolean %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
+#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
#, python-format
msgid "Boolean %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2739
+#: ../semanage/seobject.py:2734
#, python-format
msgid "Could not query file context %s"
msgstr ""
-#: ../semanage/seobject.py:2744
+#: ../semanage/seobject.py:2739
#, python-format
msgid "You must specify one of the following values: %s"
msgstr ""
-#: ../semanage/seobject.py:2749
+#: ../semanage/seobject.py:2744
#, python-format
msgid "Could not set active value of boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2752
+#: ../semanage/seobject.py:2747
#, python-format
msgid "Could not modify boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2768
+#: ../semanage/seobject.py:2763
#, python-format
msgid "Bad format %s: Record %s"
msgstr ""
-#: ../semanage/seobject.py:2792
+#: ../semanage/seobject.py:2787
#, python-format
msgid "Boolean %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2796
+#: ../semanage/seobject.py:2791
#, python-format
msgid "Could not delete boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
+#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
msgid "Could not list booleans"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "off"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "on"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "SELinux boolean"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "State"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "Default"
msgstr ""
-#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
+#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
#: ../sepolicy/sepolicy/sepolicy.glade:2510
#: ../sepolicy/sepolicy/sepolicy.glade:5099
msgid "Description"
@@ -1555,151 +1576,151 @@ msgstr ""
msgid "Missing interface definition for %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:140
+#: ../sepolicy/sepolicy/generate.py:138
msgid "Standard Init Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:141
+#: ../sepolicy/sepolicy/generate.py:139
msgid "DBUS System Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:142
+#: ../sepolicy/sepolicy/generate.py:140
msgid "Internet Services Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:143
+#: ../sepolicy/sepolicy/generate.py:141
msgid "Web Application/Script (CGI)"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:144
+#: ../sepolicy/sepolicy/generate.py:142
msgid "Sandbox"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:145
+#: ../sepolicy/sepolicy/generate.py:143
msgid "User Application"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:146
+#: ../sepolicy/sepolicy/generate.py:144
msgid "Existing Domain Type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:147
+#: ../sepolicy/sepolicy/generate.py:145
msgid "Minimal Terminal Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:148
+#: ../sepolicy/sepolicy/generate.py:146
msgid "Minimal X Windows Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:149
+#: ../sepolicy/sepolicy/generate.py:147
msgid "Desktop Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:150
+#: ../sepolicy/sepolicy/generate.py:148
msgid "Administrator Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:151
+#: ../sepolicy/sepolicy/generate.py:149
msgid "Confined Root Administrator Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:152
+#: ../sepolicy/sepolicy/generate.py:150
msgid "Module information for a new type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:158
+#: ../sepolicy/sepolicy/generate.py:156
msgid "Valid Types:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:193
+#: ../sepolicy/sepolicy/generate.py:191
#, python-format
msgid "Ports must be numbers or ranges of numbers from 1 to %d "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:205
+#: ../sepolicy/sepolicy/generate.py:203
msgid "You must enter a valid policy type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:208
+#: ../sepolicy/sepolicy/generate.py:206
#, python-format
msgid "You must enter a name for your policy module for your '%s'."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:346
+#: ../sepolicy/sepolicy/generate.py:344
msgid ""
"Name must be alphanumeric with no spaces. Consider using option \"-n "
"MODULENAME\""
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:438
+#: ../sepolicy/sepolicy/generate.py:436
msgid "User Role types can not be assigned executables."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:444
+#: ../sepolicy/sepolicy/generate.py:442
msgid "Only Daemon apps can use an init script."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:462
+#: ../sepolicy/sepolicy/generate.py:460
msgid "use_resolve must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:468
+#: ../sepolicy/sepolicy/generate.py:466
msgid "use_syslog must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:474
+#: ../sepolicy/sepolicy/generate.py:472
msgid "use_kerberos must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:480
+#: ../sepolicy/sepolicy/generate.py:478
msgid "manage_krb5_rcache must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:510
+#: ../sepolicy/sepolicy/generate.py:508
msgid "USER Types automatically get a tmp type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:847
+#: ../sepolicy/sepolicy/generate.py:845
#, python-format
msgid "'%s' policy modules require existing domains"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:872
+#: ../sepolicy/sepolicy/generate.py:870
msgid "Type field required"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:885
+#: ../sepolicy/sepolicy/generate.py:883
#, python-format
msgid ""
"You need to define a new type which ends with: \n"
" %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1113
+#: ../sepolicy/sepolicy/generate.py:1111
msgid "You must enter the executable path for your confined process"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1378
+#: ../sepolicy/sepolicy/generate.py:1376
msgid "Created the following files:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1379
+#: ../sepolicy/sepolicy/generate.py:1377
msgid "Type Enforcement file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1380
+#: ../sepolicy/sepolicy/generate.py:1378
msgid "Interface file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1381
+#: ../sepolicy/sepolicy/generate.py:1379
msgid "File Contexts file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1383
+#: ../sepolicy/sepolicy/generate.py:1381
msgid "Spec file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1384
+#: ../sepolicy/sepolicy/generate.py:1382
msgid "Setup Script"
msgstr ""
@@ -2367,29 +2388,29 @@ msgstr ""
msgid "named pipe"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:148
+#: ../sepolicy/sepolicy/__init__.py:149
msgid "No SELinux Policy installed"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:184
+#: ../sepolicy/sepolicy/__init__.py:185
#, python-format
msgid "Failed to read %s policy file"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:470
+#: ../sepolicy/sepolicy/__init__.py:471
#, python-format
msgid "-- Allowed %s [ %s ]"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:896
+#: ../sepolicy/sepolicy/__init__.py:897
msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1221
+#: ../sepolicy/sepolicy/__init__.py:1230
msgid "unknown"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1230
+#: ../sepolicy/sepolicy/__init__.py:1239
#, python-brace-format
msgid "Allow {subject} to {rest}"
msgstr ""
--
2.40.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 1/4] python: improve format strings for proper localization
2023-05-17 13:49 [PATCH 1/4] python: improve format strings for proper localization Petr Lautrbach
` (2 preceding siblings ...)
2023-05-17 13:49 ` [PATCH 4/4] python: update python.pot Petr Lautrbach
@ 2023-06-06 15:20 ` Vit Mojzis
2023-06-12 16:21 ` Petr Lautrbach
3 siblings, 1 reply; 26+ messages in thread
From: Vit Mojzis @ 2023-06-06 15:20 UTC (permalink / raw)
To: Petr Lautrbach, selinux
On 5/17/23 15:49, Petr Lautrbach wrote:
> If a string contains more than one unnamed argument it's hard for
> translators to proper localize as they don't know which value is
> represented by a unnamed argument. It also blocks them to use a
> different order of arguments which would make better sense in other
> languages.
>
> Fixes:
>
> $ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py
> ../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
> The translator cannot reorder the arguments.
> Please consider using a format string with named arguments,
> and a mapping instead of a tuple for the arguments.
> ../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
> The translator cannot reorder the arguments.
> Please consider using a format string with named arguments,
> and a mapping instead of a tuple for the arguments.
> ...
>
> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
> ---
> python/chcat/chcat | 2 +-
> python/semanage/seobject.py | 92 ++++++++++++++++++-------------------
> 2 files changed, 47 insertions(+), 47 deletions(-)
>
> diff --git a/python/chcat/chcat b/python/chcat/chcat
> index 68718ec5f102..ec34c05ffdfa 100755
> --- a/python/chcat/chcat
> +++ b/python/chcat/chcat
> @@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
> else:
> cat = ""
> else:
> - print(_("%s is not in %s") % (f, orig))
> + print(_("{target} is not in {category}").format(target=f, category=orig))
> continue
The following (similar) string issues should also be fixed:
128: print(_("%s is already in %s") % (f, orig))
210: print(_("%s is not in %s") % (f, orig))
>
> if len(cat) == 0:
> diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
> index d82da4942987..8a891ca23bca 100644
> --- a/python/semanage/seobject.py
> +++ b/python/semanage/seobject.py
> @@ -1175,13 +1175,13 @@ class portRecords(semanageRecords):
>
> (rc, exists) = semanage_port_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
> if not exists:
> - raise ValueError(_("Port %s/%s is not defined") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
>
> (rc, p) = semanage_port_query(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not query port %s/%s") % (proto, port))
> + raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port))
>
> con = semanage_port_get_con(p)
>
> @@ -1195,7 +1195,7 @@ class portRecords(semanageRecords):
>
> rc = semanage_port_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not modify port %s/%s") % (proto, port))
> + raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port))
>
> semanage_port_key_free(k)
> semanage_port_free(p)
> @@ -1241,19 +1241,19 @@ class portRecords(semanageRecords):
> (k, proto_d, low, high) = self.__genkey(port, proto)
> (rc, exists) = semanage_port_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
> if not exists:
> - raise ValueError(_("Port %s/%s is not defined") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
>
> (rc, exists) = semanage_port_exists_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
> if not exists:
> - raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port))
>
> rc = semanage_port_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete port %s/%s") % (proto, port))
> + raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port))
>
> semanage_port_key_free(k)
>
> @@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high)
> if rc < 0:
> - raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
> return (k, subnet_prefix, low, high)
>
> def __add(self, pkey, subnet_prefix, serange, type):
> @@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, exists) = semanage_ibpkey_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey))
> if exists:
> - raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> (rc, p) = semanage_ibpkey_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix)
> semanage_ibpkey_set_range(p, low, high)
> (rc, con) = semanage_context_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_context_set_user(self.sh, con, "system_u")
> if rc < 0:
> - raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_context_set_role(self.sh, con, "object_r")
> if rc < 0:
> - raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_context_set_type(self.sh, con, type)
> if rc < 0:
> - raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> if (is_mls_enabled == 1) and (serange != ""):
> rc = semanage_context_set_mls(self.sh, con, serange)
> if rc < 0:
> - raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_ibpkey_set_con(self.sh, p, con)
> if rc < 0:
> - raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_ibpkey_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_context_free(con)
> semanage_ibpkey_key_free(k)
> @@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, exists) = semanage_ibpkey_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
> if not exists:
> - raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> (rc, p) = semanage_ibpkey_query(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> con = semanage_ibpkey_get_con(p)
>
> @@ -1508,13 +1508,13 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, exists) = semanage_ibpkey_exists_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
> if not exists:
> - raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_ibpkey_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_ibpkey_key_free(k)
>
> @@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords):
>
> (rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port)
> if rc < 0:
> - raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
> return (k, ibdev_name, port)
>
> def __add(self, ibendport, ibdev_name, serange, type):
> @@ -1638,9 +1638,9 @@ class ibendportRecords(semanageRecords):
>
> (rc, exists) = semanage_ibendport_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port))
> if exists:
> - raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port))
> + raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port))
>
> (rc, p) = semanage_ibendport_create(self.sh)
> if rc < 0:
> @@ -1650,32 +1650,32 @@ class ibendportRecords(semanageRecords):
> semanage_ibendport_set_port(p, port)
> (rc, con) = semanage_context_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_context_set_user(self.sh, con, "system_u")
> if rc < 0:
> - raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_context_set_role(self.sh, con, "object_r")
> if rc < 0:
> - raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_context_set_type(self.sh, con, type)
> if rc < 0:
> - raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> if (is_mls_enabled == 1) and (serange != ""):
> rc = semanage_context_set_mls(self.sh, con, serange)
> if rc < 0:
> - raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_ibendport_set_con(self.sh, p, con)
> if rc < 0:
> - raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_ibendport_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> semanage_context_free(con)
> semanage_ibendport_key_free(k)
> @@ -1702,9 +1702,9 @@ class ibendportRecords(semanageRecords):
>
> (rc, exists) = semanage_ibendport_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
> if not exists:
> - raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
> + raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> (rc, p) = semanage_ibendport_query(self.sh, k)
> if rc < 0:
> @@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords):
>
> rc = semanage_ibendport_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> semanage_ibendport_key_free(k)
> semanage_ibendport_free(p)
> @@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords):
> port = semanage_ibendport_get_port(ibendport)
> (k, ibdev_name, port) = self.__genkey(str(port), ibdev_name)
> if rc < 0:
> - raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port))
> + raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_ibendport_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port))
> + raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
> semanage_ibendport_key_free(k)
>
> self.commit()
> @@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords):
> (k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name)
> (rc, exists) = semanage_ibendport_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
> if not exists:
> - raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
> + raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> (rc, exists) = semanage_ibendport_exists_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
> if not exists:
> - raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport))
> + raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> rc = semanage_ibendport_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> semanage_ibendport_key_free(k)
>
Most of these will probably not help with localization since the order
of the values should not change, but to keep the format consistent, the
following lines should be changed as well:
841: raise ValueError(_("Could not add role %s for %s") % (r, name))
853: raise ValueError(_("Could not add prefix %s for %s") % (r, prefix))
1086: raise ValueError(_("Could not create a key for %s/%s") % (proto,
port))
1114: raise ValueError(_("Could not create port for %s/%s") % (proto, port))
1120: raise ValueError(_("Could not create context for %s/%s") % (proto,
port))
1124: raise ValueError(_("Could not set user in port context for %s/%s")
% (proto, port))
1128: raise ValueError(_("Could not set role in port context for %s/%s")
% (proto, port))
1132: raise ValueError(_("Could not set type in port context for %s/%s")
% (proto, port))
1137: raise ValueError(_("Could not set mls fields in port context for
%s/%s") % (proto, port))
1141: raise ValueError(_("Could not set port context for %s/%s") %
(proto, port))
1145: raise ValueError(_("Could not add port %s/%s") % (proto, port))
1463: raise ValueError(_("Could not modify ibpkey %s/%s") %
(subnet_prefix, pkey))
1642: raise ValueError(_("Could not create ibendport for %s/%s") %
(ibdev_name, port))
1706: raise ValueError(_("Could not query ibendport %s/%s") %
(ibdev_name, ibendport))
2763: raise ValueError(_("Bad format %s: Record %s" % (name, b)))
Otherwise LGTM.
Vit
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/4] python/semanage: Drop hard formating from localized strings
2023-05-17 13:49 ` [PATCH 2/4] python/semanage: Drop hard formating from localized strings Petr Lautrbach
@ 2023-06-06 15:20 ` Vit Mojzis
0 siblings, 0 replies; 26+ messages in thread
From: Vit Mojzis @ 2023-06-06 15:20 UTC (permalink / raw)
To: Petr Lautrbach, selinux
On 5/17/23 15:49, Petr Lautrbach wrote:
> It confuses translators and new lines are dropped by parser module anyway.
>
> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
> ---
> python/audit2allow/audit2allow | 14 ++++++++---
> python/semanage/semanage | 44 +++++++++++++---------------------
> 2 files changed, 28 insertions(+), 30 deletions(-)
>
> diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow
> index 5587a2dbb006..35b0b151ac86 100644
> --- a/python/audit2allow/audit2allow
> +++ b/python/audit2allow/audit2allow
> @@ -234,9 +234,17 @@ class AuditToPolicy:
> print(e)
> sys.exit(1)
>
> - sys.stdout.write(_("******************** IMPORTANT ***********************\n"))
> - sys.stdout.write((_("To make this policy package active, execute:" +
> - "\n\nsemodule -i %s\n\n") % packagename))
> + sys.stdout.write(
> +"""******************** {important} ***********************
> +{text}
> +
> +semodule -i {packagename}
> +
> +""".format(
> + important=_("IMPORTANT"),
> + text=_("To make this policy package active, execute:"),
> + packagename=packagename
> +))
>
> def __output_audit2why(self):
> import selinux
> diff --git a/python/semanage/semanage b/python/semanage/semanage
> index e0bd98a95c77..898df4b93c10 100644
> --- a/python/semanage/semanage
> +++ b/python/semanage/semanage
> @@ -238,30 +238,22 @@ def parser_add_level(parser, name):
>
>
> def parser_add_range(parser, name):
> - parser.add_argument('-r', '--range', default='',
> - help=_('''
> -MLS/MCS Security Range (MLS/MCS Systems only)
> -SELinux Range for SELinux login mapping
> -defaults to the SELinux user record range.
> -SELinux Range for SELinux user defaults to s0.
> -'''))
> + parser.add_argument('-r', '--range', default='', help=_(
> + "MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. \
> +SELinux Range for SELinux user defaults to s0."
> + ))
>
>
> def parser_add_proto(parser, name):
> - parser.add_argument('-p', '--proto', help=_('''
> - Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol
> - version for the specified node (ipv4|ipv6).
> -'''))
> + parser.add_argument('-p', '--proto', help=_(
> + "Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version for the specified node (ipv4|ipv6)."
> + ))
>
> def parser_add_subnet_prefix(parser, name):
> - parser.add_argument('-x', '--subnet_prefix', help=_('''
> - Subnet prefix for the specified infiniband ibpkey.
> -'''))
> + parser.add_argument('-x', '--subnet_prefix', help=_('Subnet prefix for the specified infiniband ibpkey.'))
>
> def parser_add_ibdev_name(parser, name):
> - parser.add_argument('-z', '--ibdev_name', help=_('''
> - Name for the specified infiniband end port.
> -'''))
> + parser.add_argument('-z', '--ibdev_name', help=_("Name for the specified infiniband end port."))
>
> def parser_add_modify(parser, name):
> parser.add_argument('-m', '--modify', dest='action', action='store_const', const='modify', help=_("Modify a record of the %s object type") % name)
> @@ -372,10 +364,10 @@ If you do not specify a file type, the file type will default to "all files".
> parser_add_extract(fcontext_action, "fcontext")
> parser_add_deleteall(fcontext_action, "fcontext")
>
> - fcontextParser.add_argument('-e', '--equal', help=_('''Substitute target path with sourcepath when generating default
> - label. This is used with fcontext. Requires source and target
> - path arguments. The context labeling for the target subtree is
> - made equivalent to that defined for the source.'''))
> + fcontextParser.add_argument('-e', '--equal', help=_(
> + "Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target \
> +path arguments. The context labeling for the target subtree is made equivalent to that defined for the source."
> + ))
> fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(ftype_help))
> parser_add_seuser(fcontextParser, "fcontext")
> parser_add_type(fcontextParser, "fcontext")
> @@ -426,9 +418,7 @@ def setupUserParser(subparsers):
> parser_add_range(userParser, "user")
> userParser.add_argument('-R', '--roles', default=[],
> action=CheckRole,
> - help=_('''
> -SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times.
> -'''))
> + help=_("SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times."))
> userParser.add_argument('-P', '--prefix', default="user", help=argparse.SUPPRESS)
> userParser.add_argument('selinux_name', nargs='?', default=None, help=_('selinux_name'))
> userParser.set_defaults(func=handleUser)
> @@ -901,9 +891,9 @@ def setupImportParser(subparsers):
> def createCommandParser():
> commandParser = seParser(prog='semanage',
> formatter_class=argparse.ArgumentDefaultsHelpFormatter,
> - description='''semanage is used to configure certain elements
> - of SELinux policy with-out requiring modification
> - to or recompilation from policy source.''')
> + description=_(
> + "semanage is used to configure certain elements of SELinux policy with-out requiring modification or recompilation from policy source."
> + ))
>
> #To add a new subcommand define the parser for it in a function above and call it here.
> subparsers = commandParser.add_subparsers(dest='subcommand')
python/semanage/semanage 343: ftype_help = '''
could also use some improvements (multiple double/triple spaces and
missing spaces after commas).
Nitpick: The patch header says "python/semanage", but the patch also
touches python/audit2allow.
Otherwise LGTM.
Vit
^ permalink raw reply [flat|nested] 26+ messages in thread
* (no subject)
2023-06-06 15:20 ` [PATCH 1/4] python: improve format strings for proper localization Vit Mojzis
@ 2023-06-12 16:21 ` Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 1/4] python: improve format strings for proper localization Petr Lautrbach
` (3 more replies)
0 siblings, 4 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-12 16:21 UTC (permalink / raw)
To: selinux; +Cc: vmojzis
Patch 1 and 2 updated based on Vits comments.
Patch 4 regenerated after changes in 1 and 2.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 1/4] python: improve format strings for proper localization
2023-06-12 16:21 ` Petr Lautrbach
@ 2023-06-12 16:21 ` Petr Lautrbach
2023-06-13 9:30 ` Vit Mojzis
2023-06-12 16:21 ` [PATCH v2 2/4] python: Drop hard formating from localized strings Petr Lautrbach
` (2 subsequent siblings)
3 siblings, 1 reply; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-12 16:21 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
If a string contains more than one unnamed argument it's hard for
translators to proper localize as they don't know which value is
represented by a unnamed argument. It also blocks them to use a
different order of arguments which would make better sense in other
languages.
Fixes:
$ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py
../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
...
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/chcat/chcat | 6 +-
python/semanage/seobject.py | 130 ++++++++++++++++++------------------
2 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/python/chcat/chcat b/python/chcat/chcat
index 68718ec5f102..3ff387d88c59 100755
--- a/python/chcat/chcat
+++ b/python/chcat/chcat
@@ -125,7 +125,7 @@ def chcat_add(orig, newcat, objects, login_ind):
if len(clist) > 1:
if cat in clist[1:]:
- print(_("%s is already in %s") % (f, orig))
+ print(_("{target} is already in {category}").format(target=f, category=orig)
continue
clist.append(cat)
cats = clist[1:]
@@ -207,7 +207,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
if len(clist) > 1:
if cat not in clist[1:]:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
clist.remove(cat)
if len(clist) > 1:
@@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
else:
cat = ""
else:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
if len(cat) == 0:
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index d82da4942987..12b20af51f81 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -843,7 +843,7 @@ class seluserRecords(semanageRecords):
for r in roles:
rc = semanage_user_add_role(self.sh, u, r)
if rc < 0:
- raise ValueError(_("Could not add role %s for %s") % (r, name))
+ raise ValueError(_("Could not add role {role} for {name}").format(role=r, name=name))
if is_mls_enabled == 1:
rc = semanage_user_set_mlsrange(self.sh, u, serange)
@@ -855,7 +855,7 @@ class seluserRecords(semanageRecords):
raise ValueError(_("Could not set MLS level for %s") % name)
rc = semanage_user_set_prefix(self.sh, u, prefix)
if rc < 0:
- raise ValueError(_("Could not add prefix %s for %s") % (r, prefix))
+ raise ValueError(_("Could not add prefix {prefix} for {role}").format(role=r, prefix=prefix))
(rc, key) = semanage_user_key_extract(self.sh, u)
if rc < 0:
raise ValueError(_("Could not extract key for %s") % name)
@@ -1088,7 +1088,7 @@ class portRecords(semanageRecords):
(rc, k) = semanage_port_key_create(self.sh, low, high, proto_d)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create a key for {proto}/{port}").format(prot=proto, port=port))
return (k, proto_d, low, high)
def __add(self, port, proto, serange, type):
@@ -1110,44 +1110,44 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(prot=proto, port=port))
if exists:
- raise ValueError(_("Port %s/%s already defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} already defined").format(prot=proto, port=port))
(rc, p) = semanage_port_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create port for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create port for {proto}/{port}").format(prot=proto, port=port))
semanage_port_set_proto(p, proto_d)
semanage_port_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create context for {proto}/{port}").format(prot=proto, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set user in port context for {proto}/{port}").format(prot=proto, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set role in port context for {proto}/{port}").format(prot=proto, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set type in port context for {proto}/{port}").format(prot=proto, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set mls fields in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_port_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add port %s/%s") % (proto, port))
+ raise ValueError(_("Could not add port {proto}/{port}").format(proto=proto, port=port))
semanage_context_free(con)
semanage_port_key_free(k)
@@ -1175,13 +1175,13 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, p) = semanage_port_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query port %s/%s") % (proto, port))
+ raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port))
con = semanage_port_get_con(p)
@@ -1195,7 +1195,7 @@ class portRecords(semanageRecords):
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify port %s/%s") % (proto, port))
+ raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
semanage_port_free(p)
@@ -1241,19 +1241,19 @@ class portRecords(semanageRecords):
(k, proto_d, low, high) = self.__genkey(port, proto)
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, exists) = semanage_port_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port))
rc = semanage_port_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete port %s/%s") % (proto, port))
+ raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
@@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords):
(rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
return (k, subnet_prefix, low, high)
def __add(self, pkey, subnet_prefix, serange, type):
@@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey))
if exists:
- raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix)
semanage_ibpkey_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_context_free(con)
semanage_ibpkey_key_free(k)
@@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
con = semanage_ibpkey_get_con(p)
@@ -1465,7 +1465,7 @@ class ibpkeyRecords(semanageRecords):
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not modify ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
semanage_ibpkey_free(p)
@@ -1502,19 +1502,19 @@ class ibpkeyRecords(semanageRecords):
(k, subnet_prefix, low, high) = self.__genkey(pkey, subnet_prefix)
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, exists) = semanage_ibpkey_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
@@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords):
(rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port)
if rc < 0:
- raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
return (k, ibdev_name, port)
def __add(self, ibendport, ibdev_name, serange, type):
@@ -1638,44 +1638,44 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port))
if exists:
- raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port))
+ raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port))
(rc, p) = semanage_ibendport_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibendport for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create ibendport for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_set_ibdev_name(self.sh, p, ibdev_name)
semanage_ibendport_set_port(p, port)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_context_free(con)
semanage_ibendport_key_free(k)
@@ -1702,13 +1702,13 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, p) = semanage_ibendport_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not query ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
con = semanage_ibendport_get_con(p)
@@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords):
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
semanage_ibendport_free(p)
@@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords):
port = semanage_ibendport_get_port(ibendport)
(k, ibdev_name, port) = self.__genkey(str(port), ibdev_name)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port))
+ raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port))
+ raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_key_free(k)
self.commit()
@@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords):
(k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name)
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, exists) = semanage_ibendport_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
@@ -2765,7 +2765,7 @@ class booleanRecords(semanageRecords):
try:
boolname, val = b.split("=")
except ValueError:
- raise ValueError(_("Bad format %s: Record %s" % (name, b)))
+ raise ValueError(_("Bad format {filename}: Record {record}").format(filename=name, record=b))
self.__mod(boolname.strip(), val.strip())
fd.close()
else:
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 2/4] python: Drop hard formating from localized strings
2023-06-12 16:21 ` Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 1/4] python: improve format strings for proper localization Petr Lautrbach
@ 2023-06-12 16:21 ` Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 4/4] python: update python.pot Petr Lautrbach
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-12 16:21 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
It confuses translators and new lines are dropped by parser module anyway.
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/audit2allow/audit2allow | 14 ++++++--
python/semanage/semanage | 60 +++++++++++++---------------------
2 files changed, 34 insertions(+), 40 deletions(-)
diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow
index 5587a2dbb006..35b0b151ac86 100644
--- a/python/audit2allow/audit2allow
+++ b/python/audit2allow/audit2allow
@@ -234,9 +234,17 @@ class AuditToPolicy:
print(e)
sys.exit(1)
- sys.stdout.write(_("******************** IMPORTANT ***********************\n"))
- sys.stdout.write((_("To make this policy package active, execute:" +
- "\n\nsemodule -i %s\n\n") % packagename))
+ sys.stdout.write(
+"""******************** {important} ***********************
+{text}
+
+semodule -i {packagename}
+
+""".format(
+ important=_("IMPORTANT"),
+ text=_("To make this policy package active, execute:"),
+ packagename=packagename
+))
def __output_audit2why(self):
import selinux
diff --git a/python/semanage/semanage b/python/semanage/semanage
index e0bd98a95c77..4fdb490f7df4 100644
--- a/python/semanage/semanage
+++ b/python/semanage/semanage
@@ -238,30 +238,22 @@ def parser_add_level(parser, name):
def parser_add_range(parser, name):
- parser.add_argument('-r', '--range', default='',
- help=_('''
-MLS/MCS Security Range (MLS/MCS Systems only)
-SELinux Range for SELinux login mapping
-defaults to the SELinux user record range.
-SELinux Range for SELinux user defaults to s0.
-'''))
+ parser.add_argument('-r', '--range', default='', help=_(
+ "MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. \
+SELinux Range for SELinux user defaults to s0."
+ ))
def parser_add_proto(parser, name):
- parser.add_argument('-p', '--proto', help=_('''
- Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol
- version for the specified node (ipv4|ipv6).
-'''))
+ parser.add_argument('-p', '--proto', help=_(
+ "Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version for the specified node (ipv4|ipv6)."
+ ))
def parser_add_subnet_prefix(parser, name):
- parser.add_argument('-x', '--subnet_prefix', help=_('''
- Subnet prefix for the specified infiniband ibpkey.
-'''))
+ parser.add_argument('-x', '--subnet_prefix', help=_('Subnet prefix for the specified infiniband ibpkey.'))
def parser_add_ibdev_name(parser, name):
- parser.add_argument('-z', '--ibdev_name', help=_('''
- Name for the specified infiniband end port.
-'''))
+ parser.add_argument('-z', '--ibdev_name', help=_("Name for the specified infiniband end port."))
def parser_add_modify(parser, name):
parser.add_argument('-m', '--modify', dest='action', action='store_const', const='modify', help=_("Modify a record of the %s object type") % name)
@@ -348,15 +340,6 @@ def handleFcontext(args):
def setupFcontextParser(subparsers):
- ftype_help = '''
-File Type. This is used with fcontext. Requires a file type
-as shown in the mode field by ls, e.g. use d to match only
-directories or f to match only regular files. The following
-file type options can be passed:
-f (regular file),d (directory),c (character device),
-b (block device),s (socket),l (symbolic link),p (named pipe)
-If you do not specify a file type, the file type will default to "all files".
-'''
generate_usage = generate_custom_usage(usage_fcontext, usage_fcontext_dict)
fcontextParser = subparsers.add_parser('fcontext', usage=generate_usage, help=_("Manage file context mapping definitions"))
parser_add_locallist(fcontextParser, "fcontext")
@@ -372,11 +355,16 @@ If you do not specify a file type, the file type will default to "all files".
parser_add_extract(fcontext_action, "fcontext")
parser_add_deleteall(fcontext_action, "fcontext")
- fcontextParser.add_argument('-e', '--equal', help=_('''Substitute target path with sourcepath when generating default
- label. This is used with fcontext. Requires source and target
- path arguments. The context labeling for the target subtree is
- made equivalent to that defined for the source.'''))
- fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(ftype_help))
+ fcontextParser.add_argument('-e', '--equal', help=_(
+ 'Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target \
+path arguments. The context labeling for the target subtree is made equivalent to that defined for the source.'
+ ))
+ fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(
+ 'File Type. This is used with fcontext. Requires a file type as shown in the mode field by ls, e.g. use d to match only \
+directories or f to match only regular files. The following file type options can be passed: f (regular file), d (directory), \
+c (character device), b (block device), s (socket), l (symbolic link), p (named pipe). \
+If you do not specify a file type, the file type will default to "all files".'
+ ))
parser_add_seuser(fcontextParser, "fcontext")
parser_add_type(fcontextParser, "fcontext")
parser_add_range(fcontextParser, "fcontext")
@@ -426,9 +414,7 @@ def setupUserParser(subparsers):
parser_add_range(userParser, "user")
userParser.add_argument('-R', '--roles', default=[],
action=CheckRole,
- help=_('''
-SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times.
-'''))
+ help=_("SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times."))
userParser.add_argument('-P', '--prefix', default="user", help=argparse.SUPPRESS)
userParser.add_argument('selinux_name', nargs='?', default=None, help=_('selinux_name'))
userParser.set_defaults(func=handleUser)
@@ -901,9 +887,9 @@ def setupImportParser(subparsers):
def createCommandParser():
commandParser = seParser(prog='semanage',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- description='''semanage is used to configure certain elements
- of SELinux policy with-out requiring modification
- to or recompilation from policy source.''')
+ description=_(
+ "semanage is used to configure certain elements of SELinux policy with-out requiring modification or recompilation from policy source."
+ ))
#To add a new subcommand define the parser for it in a function above and call it here.
subparsers = commandParser.add_subparsers(dest='subcommand')
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 3/4] semanage: Drop unnecessary import from seobject
2023-06-12 16:21 ` Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 2/4] python: Drop hard formating from localized strings Petr Lautrbach
@ 2023-06-12 16:21 ` Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 4/4] python: update python.pot Petr Lautrbach
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-12 16:21 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
sepolgen.module is not used for permissive domains
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/semanage/seobject.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index 12b20af51f81..f150c9dd4e10 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -504,11 +504,6 @@ class permissiveRecords(semanageRecords):
print(t)
def add(self, type):
- try:
- import sepolgen.module as module
- except ImportError:
- raise ValueError(_("The sepolgen python module is required to setup permissive domains.\nIn some distributions it is included in the policycoreutils-devel package.\n# yum install policycoreutils-devel\nOr similar for your distro."))
-
name = "permissive_%s" % type
modtxt = "(typepermissive %s)" % type
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 4/4] python: update python.pot
2023-06-12 16:21 ` Petr Lautrbach
` (2 preceding siblings ...)
2023-06-12 16:21 ` [PATCH v2 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
@ 2023-06-12 16:21 ` Petr Lautrbach
2023-06-13 9:42 ` Petr Lautrbach
3 siblings, 1 reply; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-12 16:21 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/po/python.pot | 963 ++++++++++++++++++++++---------------------
1 file changed, 487 insertions(+), 476 deletions(-)
diff --git a/python/po/python.pot b/python/po/python.pot
index 16d04eb0f18e..435a1b764e34 100644
--- a/python/po/python.pot
+++ b/python/po/python.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-01-18 11:57+0100\n"
+"POT-Creation-Date: 2023-06-12 18:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,17 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../audit2allow/audit2allow:239
-msgid "******************** IMPORTANT ***********************\n"
+#: ../audit2allow/audit2allow:244
+msgid "IMPORTANT"
msgstr ""
-#: ../audit2allow/audit2allow:240
-#, python-format
-msgid ""
-"To make this policy package active, execute:\n"
-"\n"
-"semodule -i %s\n"
-"\n"
+#: ../audit2allow/audit2allow:245
+msgid "To make this policy package active, execute:"
msgstr ""
#: ../chcat/chcat:111 ../chcat/chcat:191
@@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
msgstr ""
#: ../chcat/chcat:128
-#, python-format
-msgid "%s is already in %s"
+#, python-brace-format
+msgid "{target} is already in {category}"
msgstr ""
#: ../chcat/chcat:210 ../chcat/chcat:220
-#, python-format
-msgid "%s is not in %s"
+#, python-brace-format
+msgid "{target} is not in {category}"
msgstr ""
#: ../chcat/chcat:291 ../chcat/chcat:296
@@ -152,218 +147,222 @@ msgstr ""
#: ../semanage/semanage:242
msgid ""
-"\n"
-"MLS/MCS Security Range (MLS/MCS Systems only)\n"
-"SELinux Range for SELinux login mapping\n"
-"defaults to the SELinux user record range.\n"
-"SELinux Range for SELinux user defaults to s0.\n"
+"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
+"login mapping defaults to the SELinux user record range. SELinux Range for "
+"SELinux user defaults to s0."
msgstr ""
-#: ../semanage/semanage:251
+#: ../semanage/semanage:249
msgid ""
-"\n"
-" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
-"protocol\n"
-" version for the specified node (ipv4|ipv6).\n"
+"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
+"version for the specified node (ipv4|ipv6)."
msgstr ""
-#: ../semanage/semanage:257
-msgid ""
-"\n"
-" Subnet prefix for the specified infiniband ibpkey.\n"
+#: ../semanage/semanage:253
+msgid "Subnet prefix for the specified infiniband ibpkey."
msgstr ""
-#: ../semanage/semanage:262
-msgid ""
-"\n"
-" Name for the specified infiniband end port.\n"
+#: ../semanage/semanage:256
+msgid "Name for the specified infiniband end port."
msgstr ""
-#: ../semanage/semanage:267
+#: ../semanage/semanage:259
#, python-format
msgid "Modify a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:271
+#: ../semanage/semanage:263
#, python-format
msgid "List records of the %s object type"
msgstr ""
-#: ../semanage/semanage:275
+#: ../semanage/semanage:267
#, python-format
msgid "Delete a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:279
+#: ../semanage/semanage:271
msgid "Extract customizable commands, for use within a transaction"
msgstr ""
-#: ../semanage/semanage:283
+#: ../semanage/semanage:275
#, python-format
msgid "Remove all %s objects local customizations"
msgstr ""
-#: ../semanage/semanage:287
+#: ../semanage/semanage:279
msgid "SELinux user name"
msgstr ""
-#: ../semanage/semanage:292
+#: ../semanage/semanage:284
msgid "Manage login mappings between linux users and SELinux confined users"
msgstr ""
-#: ../semanage/semanage:309
+#: ../semanage/semanage:301
#, python-format
msgid "login_name | %%groupname"
msgstr ""
-#: ../semanage/semanage:361
+#: ../semanage/semanage:344
msgid "Manage file context mapping definitions"
msgstr ""
-#: ../semanage/semanage:375
+#: ../semanage/semanage:359
+msgid ""
+"Substitute target path with sourcepath when generating default label. This "
+"is used with fcontext. Requires source and target path arguments. The "
+"context labeling for the target subtree is made equivalent to that defined "
+"for the source."
+msgstr ""
+
+#: ../semanage/semanage:363
msgid ""
-"Substitute target path with sourcepath when generating default\n"
-" label. "
-"This is used with fcontext. Requires source and target\n"
-" path "
-"arguments. The context labeling for the target subtree is\n"
-" made "
-"equivalent to that defined for the source."
+"File Type. This is used with fcontext. Requires a file type as shown in the "
+"mode field by ls, e.g. use d to match only directories or f to match only "
+"regular files. The following file type options can be passed: f (regular "
+"file), d (directory), c (character device), b (block device), s (socket), l "
+"(symbolic link), p (named pipe). If you do not specify a file type, the file "
+"type will default to \"all files\"."
msgstr ""
-#: ../semanage/semanage:383
+#: ../semanage/semanage:371
msgid ""
"Path to be labeled (may be in the form of a Perl compatible regular "
"expression)"
msgstr ""
-#: ../semanage/semanage:411
+#: ../semanage/semanage:399
msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
msgstr ""
-#: ../semanage/semanage:429
+#: ../semanage/semanage:417
msgid ""
-"\n"
-"SELinux Roles. You must enclose multiple roles within quotes, separate by "
-"spaces. Or specify -R multiple times.\n"
+"SELinux Roles. You must enclose multiple roles within quotes, separate by "
+"spaces. Or specify -R multiple times."
msgstr ""
-#: ../semanage/semanage:433
+#: ../semanage/semanage:419
msgid "selinux_name"
msgstr ""
-#: ../semanage/semanage:461
+#: ../semanage/semanage:447
msgid "Manage network port type definitions"
msgstr ""
-#: ../semanage/semanage:477
+#: ../semanage/semanage:463
msgid "port | port_range"
msgstr ""
-#: ../semanage/semanage:506
+#: ../semanage/semanage:492
msgid "Manage infiniband ibpkey type definitions"
msgstr ""
-#: ../semanage/semanage:522
+#: ../semanage/semanage:508
msgid "pkey | pkey_range"
msgstr ""
-#: ../semanage/semanage:549
+#: ../semanage/semanage:535
msgid "Manage infiniband end port type definitions"
msgstr ""
-#: ../semanage/semanage:565
+#: ../semanage/semanage:551
msgid "ibendport"
msgstr ""
-#: ../semanage/semanage:592
+#: ../semanage/semanage:578
msgid "Manage network interface type definitions"
msgstr ""
-#: ../semanage/semanage:607
+#: ../semanage/semanage:593
msgid "interface_spec"
msgstr ""
-#: ../semanage/semanage:631
+#: ../semanage/semanage:617
msgid "Manage SELinux policy modules"
msgstr ""
-#: ../semanage/semanage:642
+#: ../semanage/semanage:628
msgid "Add a module"
msgstr ""
-#: ../semanage/semanage:643
+#: ../semanage/semanage:629
msgid "Remove a module"
msgstr ""
-#: ../semanage/semanage:644
+#: ../semanage/semanage:630
msgid "Disable a module"
msgstr ""
-#: ../semanage/semanage:645
+#: ../semanage/semanage:631
msgid "Enable a module"
msgstr ""
-#: ../semanage/semanage:672
+#: ../semanage/semanage:658
msgid "Manage network node type definitions"
msgstr ""
-#: ../semanage/semanage:686
+#: ../semanage/semanage:672
msgid "Network Mask"
msgstr ""
-#: ../semanage/semanage:690
+#: ../semanage/semanage:676
msgid "node"
msgstr ""
-#: ../semanage/semanage:715
+#: ../semanage/semanage:701
msgid "Manage booleans to selectively enable functionality"
msgstr ""
-#: ../semanage/semanage:720
+#: ../semanage/semanage:706
msgid "boolean"
msgstr ""
-#: ../semanage/semanage:730
+#: ../semanage/semanage:716
msgid "Enable the boolean"
msgstr ""
-#: ../semanage/semanage:731
+#: ../semanage/semanage:717
msgid "Disable the boolean"
msgstr ""
-#: ../semanage/semanage:752
+#: ../semanage/semanage:738
msgid "semanage permissive: error: the following argument is required: type\n"
msgstr ""
-#: ../semanage/semanage:756
+#: ../semanage/semanage:742
msgid "Manage process type enforcement mode"
msgstr ""
-#: ../semanage/semanage:768 ../semanage/seobject.py:2677
+#: ../semanage/semanage:754 ../semanage/seobject.py:2672
msgid "type"
msgstr ""
-#: ../semanage/semanage:779
+#: ../semanage/semanage:765
msgid "Disable/Enable dontaudit rules in policy"
msgstr ""
-#: ../semanage/semanage:799
+#: ../semanage/semanage:785
msgid "Output local customizations"
msgstr ""
-#: ../semanage/semanage:801
+#: ../semanage/semanage:787
msgid "Output file"
msgstr ""
-#: ../semanage/semanage:894
+#: ../semanage/semanage:880
msgid "Import local customizations"
msgstr ""
-#: ../semanage/semanage:897
+#: ../semanage/semanage:883
msgid "Input file"
msgstr ""
+#: ../semanage/semanage:891
+msgid ""
+"semanage is used to configure certain elements of SELinux policy with-out "
+"requiring modification or recompilation from policy source."
+msgstr ""
+
#: ../semanage/seobject.py:279
msgid "Could not create semanage handle"
msgstr ""
@@ -485,123 +484,115 @@ msgstr ""
msgid "Customized Permissive Types"
msgstr ""
-#: ../semanage/seobject.py:510
-msgid ""
-"The sepolgen python module is required to setup permissive domains.\n"
-"In some distributions it is included in the policycoreutils-devel package.\n"
-"# yum install policycoreutils-devel\n"
-"Or similar for your distro."
-msgstr ""
-
-#: ../semanage/seobject.py:520
+#: ../semanage/seobject.py:515
#, python-format
msgid "Could not set permissive domain %s (module installation failed)"
msgstr ""
-#: ../semanage/seobject.py:526
+#: ../semanage/seobject.py:521
#, python-format
msgid "Could not remove permissive domain %s (remove failed)"
msgstr ""
-#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
-#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
-#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
-#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
-#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
-#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
-#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
+#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
+#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
+#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
+#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
+#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
+#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
+#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
#, python-format
msgid "Could not create a key for %s"
msgstr ""
-#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
-#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
+#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
+#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
#, python-format
msgid "Could not check if login mapping for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:569
+#: ../semanage/seobject.py:564
#, python-format
msgid "Login mapping for %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:574
+#: ../semanage/seobject.py:569
#, python-format
msgid "Linux Group %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:579
+#: ../semanage/seobject.py:574
#, python-format
msgid "Linux User %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:583
+#: ../semanage/seobject.py:578
#, python-format
msgid "Could not create login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
+#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
#, python-format
msgid "Could not set name for %s"
msgstr ""
-#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
+#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
#, python-format
msgid "Could not set MLS range for %s"
msgstr ""
-#: ../semanage/seobject.py:596
+#: ../semanage/seobject.py:591
#, python-format
msgid "Could not set SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:600
+#: ../semanage/seobject.py:595
#, python-format
msgid "Could not add login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:616
+#: ../semanage/seobject.py:611
msgid "Requires seuser or serange"
msgstr ""
-#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
+#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
#, python-format
msgid "Login mapping for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:643
+#: ../semanage/seobject.py:638
#, python-format
msgid "Could not query seuser for %s"
msgstr ""
-#: ../semanage/seobject.py:658
+#: ../semanage/seobject.py:653
#, python-format
msgid "Could not modify login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:690
+#: ../semanage/seobject.py:685
#, python-format
msgid "Login mapping for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:694
+#: ../semanage/seobject.py:689
#, python-format
msgid "Could not delete login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
-#: ../semanage/seobject.py:991
+#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
+#: ../semanage/seobject.py:986
msgid "Could not list login mappings"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
#: ../sepolicy/sepolicy/sepolicy.glade:1156
#: ../sepolicy/sepolicy/sepolicy.glade:3138
msgid "Login Name"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:1182
#: ../sepolicy/sepolicy/sepolicy.glade:3156
#: ../sepolicy/sepolicy/sepolicy.glade:3242
@@ -609,938 +600,958 @@ msgstr ""
msgid "SELinux User"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "MLS/MCS Range"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "Service"
msgstr ""
-#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
-#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
-#: ../semanage/seobject.py:958
+#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
+#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
+#: ../semanage/seobject.py:953
#, python-format
msgid "Could not check if SELinux user %s is defined"
msgstr ""
-#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
-#: ../semanage/seobject.py:964
+#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
+#: ../semanage/seobject.py:959
#, python-format
msgid "Could not query user for %s"
msgstr ""
-#: ../semanage/seobject.py:823
+#: ../semanage/seobject.py:818
#, python-format
msgid "You must add at least one role for %s"
msgstr ""
-#: ../semanage/seobject.py:833
+#: ../semanage/seobject.py:828
#, python-format
msgid "SELinux user %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:837
+#: ../semanage/seobject.py:832
#, python-format
msgid "Could not create SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:846
-#, python-format
-msgid "Could not add role %s for %s"
+#: ../semanage/seobject.py:841
+#, python-brace-format
+msgid "Could not add role {role} for {name}"
msgstr ""
-#: ../semanage/seobject.py:855
+#: ../semanage/seobject.py:850
#, python-format
msgid "Could not set MLS level for %s"
msgstr ""
-#: ../semanage/seobject.py:858
-#, python-format
-msgid "Could not add prefix %s for %s"
+#: ../semanage/seobject.py:853
+#, python-brace-format
+msgid "Could not add prefix {prefix} for {role}"
msgstr ""
-#: ../semanage/seobject.py:861
+#: ../semanage/seobject.py:856
#, python-format
msgid "Could not extract key for %s"
msgstr ""
-#: ../semanage/seobject.py:865
+#: ../semanage/seobject.py:860
#, python-format
msgid "Could not add SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:886
+#: ../semanage/seobject.py:881
msgid "Requires prefix, roles, level or range"
msgstr ""
-#: ../semanage/seobject.py:888
+#: ../semanage/seobject.py:883
msgid "Requires prefix or roles"
msgstr ""
-#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
+#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
#, python-format
msgid "SELinux user %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:927
+#: ../semanage/seobject.py:922
#, python-format
msgid "Could not modify SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:960
+#: ../semanage/seobject.py:955
#, python-format
msgid "SELinux user %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:971
+#: ../semanage/seobject.py:966
#, python-format
msgid "Could not delete SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:1009
+#: ../semanage/seobject.py:1004
msgid "Could not list SELinux users"
msgstr ""
-#: ../semanage/seobject.py:1015
+#: ../semanage/seobject.py:1010
#, python-format
msgid "Could not list roles for user %s"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "Labeling"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "MLS/"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "Prefix"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Level"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Range"
msgstr ""
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:3262
#: ../sepolicy/sepolicy/sepolicy.glade:5233
#: ../sepolicy/sepolicy/sepolicy.glade:5382
msgid "SELinux Roles"
msgstr ""
-#: ../semanage/seobject.py:1071
+#: ../semanage/seobject.py:1066
msgid "Protocol has to be one of udp, tcp, dccp or sctp"
msgstr ""
-#: ../semanage/seobject.py:1073
+#: ../semanage/seobject.py:1068
msgid "Port is required"
msgstr ""
-#: ../semanage/seobject.py:1087
+#: ../semanage/seobject.py:1082
msgid "Invalid Port"
msgstr ""
-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
-#, python-format
-msgid "Could not create a key for %s/%s"
+#: ../semanage/seobject.py:1086
+#, python-brace-format
+msgid "Could not create a key for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
-#: ../semanage/seobject.py:1631
+#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
+#: ../semanage/seobject.py:1626
msgid "Type is required"
msgstr ""
-#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
+#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
#, python-format
msgid "Type %s is invalid, must be a port type"
msgstr ""
-#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
-#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
-#, python-format
-msgid "Could not check if port %s/%s is defined"
+#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
+#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
+#, python-brace-format
+msgid "Could not check if port {proto}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1115
-#, python-format
-msgid "Port %s/%s already defined"
+#: ../semanage/seobject.py:1110
+#, python-brace-format
+msgid "Port {proto}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1119
-#, python-format
-msgid "Could not create port for %s/%s"
+#: ../semanage/seobject.py:1114
+#, python-brace-format
+msgid "Could not create port for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
-#: ../semanage/seobject.py:1653
-#, python-format
-msgid "Could not create context for %s/%s"
+#: ../semanage/seobject.py:1120
+#, python-brace-format
+msgid "Could not create context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1129
-#, python-format
-msgid "Could not set user in port context for %s/%s"
+#: ../semanage/seobject.py:1124
+#, python-brace-format
+msgid "Could not set user in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1133
-#, python-format
-msgid "Could not set role in port context for %s/%s"
+#: ../semanage/seobject.py:1128
+#, python-brace-format
+msgid "Could not set role in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1137
-#, python-format
-msgid "Could not set type in port context for %s/%s"
+#: ../semanage/seobject.py:1132
+#, python-brace-format
+msgid "Could not set type in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1142
-#, python-format
-msgid "Could not set mls fields in port context for %s/%s"
+#: ../semanage/seobject.py:1137
+#, python-brace-format
+msgid "Could not set mls fields in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1146
-#, python-format
-msgid "Could not set port context for %s/%s"
+#: ../semanage/seobject.py:1141
+#, python-brace-format
+msgid "Could not set port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1150
-#, python-format
-msgid "Could not add port %s/%s"
+#: ../semanage/seobject.py:1145
+#, python-brace-format
+msgid "Could not add port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
-#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
-#: ../semanage/seobject.py:2176
+#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
+#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
+#: ../semanage/seobject.py:2171
msgid "Requires setype or serange"
msgstr ""
-#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
-#: ../semanage/seobject.py:1694
+#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
+#: ../semanage/seobject.py:1689
msgid "Requires setype"
msgstr ""
-#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
-#, python-format
-msgid "Port %s/%s is not defined"
+#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
+#, python-brace-format
+msgid "Port {proto}/{port} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1184
-#, python-format
-msgid "Could not query port %s/%s"
+#: ../semanage/seobject.py:1179
+#, python-brace-format
+msgid "Could not query port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1198
-#, python-format
-msgid "Could not modify port %s/%s"
+#: ../semanage/seobject.py:1193
+#, python-brace-format
+msgid "Could not modify port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1213
+#: ../semanage/seobject.py:1208
msgid "Could not list the ports"
msgstr ""
-#: ../semanage/seobject.py:1230
+#: ../semanage/seobject.py:1225
#, python-format
msgid "Could not delete the port %s"
msgstr ""
-#: ../semanage/seobject.py:1252
-#, python-format
-msgid "Port %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1247
+#, python-brace-format
+msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1256
-#, python-format
-msgid "Could not delete port %s/%s"
+#: ../semanage/seobject.py:1251
+#, python-brace-format
+msgid "Could not delete port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
+#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
msgid "Could not list ports"
msgstr ""
-#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
+#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
#: ../sepolicy/sepolicy/sepolicy.glade:2766
#: ../sepolicy/sepolicy/sepolicy.glade:4630
msgid "SELinux Port Type"
msgstr ""
-#: ../semanage/seobject.py:1329
+#: ../semanage/seobject.py:1324
msgid "Proto"
msgstr ""
-#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
#: ../sepolicy/sepolicy/sepolicy.glade:1407
msgid "Port Number"
msgstr ""
-#: ../semanage/seobject.py:1351
+#: ../semanage/seobject.py:1346
msgid "Subnet Prefix is required"
msgstr ""
-#: ../semanage/seobject.py:1361
+#: ../semanage/seobject.py:1356
msgid "Invalid Pkey"
msgstr ""
-#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
+#: ../semanage/seobject.py:1360
+#, python-brace-format
+msgid "Could not create a key for {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
#, python-format
msgid "Type %s is invalid, must be a ibpkey type"
msgstr ""
-#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
-#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
-#, python-format
-msgid "Could not check if ibpkey %s/%s is defined"
+#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
+#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
+#, python-brace-format
+msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
msgstr ""
-#: ../semanage/seobject.py:1389
-#, python-format
-msgid "ibpkey %s/%s already defined"
+#: ../semanage/seobject.py:1384
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} already defined"
msgstr ""
-#: ../semanage/seobject.py:1393
-#, python-format
-msgid "Could not create ibpkey for %s/%s"
+#: ../semanage/seobject.py:1388
+#, python-brace-format
+msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1403
-#, python-format
-msgid "Could not set user in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1394
+#, python-brace-format
+msgid "Could not create context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1407
-#, python-format
-msgid "Could not set role in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1398
+#, python-brace-format
+msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1411
-#, python-format
-msgid "Could not set type in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1402
+#, python-brace-format
+msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1416
-#, python-format
-msgid "Could not set mls fields in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1406
+#, python-brace-format
+msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1420
-#, python-format
-msgid "Could not set ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1411
+#, python-brace-format
+msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1424
-#, python-format
-msgid "Could not add ibpkey %s/%s"
+#: ../semanage/seobject.py:1415
+#, python-brace-format
+msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
-#, python-format
-msgid "ibpkey %s/%s is not defined"
+#: ../semanage/seobject.py:1419
+#, python-brace-format
+msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1457
-#, python-format
-msgid "Could not query ibpkey %s/%s"
+#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1468
-#, python-format
-msgid "Could not modify ibpkey %s/%s"
+#: ../semanage/seobject.py:1452
+#, python-brace-format
+msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1481
+#: ../semanage/seobject.py:1463
+#, python-brace-format
+msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1476
msgid "Could not list the ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1496
+#: ../semanage/seobject.py:1491
#, python-format
msgid "Could not delete the ibpkey %s"
msgstr ""
-#: ../semanage/seobject.py:1513
-#, python-format
-msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1508
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1517
-#, python-format
-msgid "Could not delete ibpkey %s/%s"
+#: ../semanage/seobject.py:1512
+#, python-brace-format
+msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
+#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
msgid "Could not list ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "SELinux IB Pkey Type"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Subnet_Prefix"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Pkey Number"
msgstr ""
-#: ../semanage/seobject.py:1611
+#: ../semanage/seobject.py:1606
msgid "IB device name is required"
msgstr ""
-#: ../semanage/seobject.py:1616
+#: ../semanage/seobject.py:1611
msgid "Invalid Port Number"
msgstr ""
-#: ../semanage/seobject.py:1620
-#, python-format
-msgid "Could not create a key for ibendport %s/%s"
+#: ../semanage/seobject.py:1615
+#, python-brace-format
+msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
+#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
#, python-format
msgid "Type %s is invalid, must be an ibendport type"
msgstr ""
-#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
-#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
-#, python-format
-msgid "Could not check if ibendport %s/%s is defined"
+#: ../semanage/seobject.py:1636
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1643
-#, python-format
-msgid "ibendport %s/%s already defined"
+#: ../semanage/seobject.py:1638
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1647
-#, python-format
-msgid "Could not create ibendport for %s/%s"
+#: ../semanage/seobject.py:1642
+#, python-brace-format
+msgid "Could not create ibendport for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1657
-#, python-format
-msgid "Could not set user in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1648
+#, python-brace-format
+msgid "Could not create context for {ibendport}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1661
-#, python-format
-msgid "Could not set role in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1652
+#, python-brace-format
+msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1656
+#, python-brace-format
+msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1660
+#, python-brace-format
+msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
msgstr ""
#: ../semanage/seobject.py:1665
-#, python-format
-msgid "Could not set type in ibendport context for %s/%s"
+#, python-brace-format
+msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1670
-#, python-format
-msgid "Could not set mls fields in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1669
+#, python-brace-format
+msgid "Could not set ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1674
-#, python-format
-msgid "Could not set ibendport context for %s/%s"
+#: ../semanage/seobject.py:1673
+#, python-brace-format
+msgid "Could not add ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1678
-#, python-format
-msgid "Could not add ibendport %s/%s"
+#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
+#: ../semanage/seobject.py:1758
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
msgstr ""
-#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
-#, python-format
-msgid "ibendport %s/%s is not defined"
+#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{ibendport} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1711
-#, python-format
-msgid "Could not query ibendport %s/%s"
+#: ../semanage/seobject.py:1706
+#, python-brace-format
+msgid "Could not query ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1722
-#, python-format
-msgid "Could not modify ibendport %s/%s"
+#: ../semanage/seobject.py:1717
+#, python-brace-format
+msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1735
+#: ../semanage/seobject.py:1730
msgid "Could not list the ibendports"
msgstr ""
-#: ../semanage/seobject.py:1744
-#, python-format
-msgid "Could not create a key for %s/%d"
+#: ../semanage/seobject.py:1739
+#, python-brace-format
+msgid "Could not create a key for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1748
-#, python-format
-msgid "Could not delete the ibendport %s/%d"
+#: ../semanage/seobject.py:1743
+#, python-brace-format
+msgid "Could not delete the ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1765
-#, python-format
-msgid "ibendport %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1760
+#, python-brace-format
+msgid ""
+"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1769
-#, python-format
-msgid "Could not delete ibendport %s/%s"
+#: ../semanage/seobject.py:1764
+#, python-brace-format
+msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
+#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
msgid "Could not list ibendports"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "SELinux IB End Port Type"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "IB Device Name"
msgstr ""
-#: ../semanage/seobject.py:1861
+#: ../semanage/seobject.py:1856
msgid "Node Address is required"
msgstr ""
-#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
+#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
msgid "Unknown or missing protocol"
msgstr ""
-#: ../semanage/seobject.py:1899
+#: ../semanage/seobject.py:1894
msgid "SELinux node type is required"
msgstr ""
-#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
+#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
#, python-format
msgid "Type %s is invalid, must be a node type"
msgstr ""
-#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
-#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
-#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
-#: ../semanage/seobject.py:2435
+#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
+#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
+#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
+#: ../semanage/seobject.py:2430
#, python-format
msgid "Could not create key for %s"
msgstr ""
-#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
-#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
+#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
+#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
#, python-format
msgid "Could not check if addr %s is defined"
msgstr ""
-#: ../semanage/seobject.py:1914
+#: ../semanage/seobject.py:1909
#, python-format
msgid "Addr %s already defined"
msgstr ""
-#: ../semanage/seobject.py:1918
+#: ../semanage/seobject.py:1913
#, python-format
msgid "Could not create addr for %s"
msgstr ""
-#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
-#: ../semanage/seobject.py:2389
+#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2384
#, python-format
msgid "Could not create context for %s"
msgstr ""
-#: ../semanage/seobject.py:1928
+#: ../semanage/seobject.py:1923
#, python-format
msgid "Could not set mask for %s"
msgstr ""
-#: ../semanage/seobject.py:1932
+#: ../semanage/seobject.py:1927
#, python-format
msgid "Could not set user in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1936
+#: ../semanage/seobject.py:1931
#, python-format
msgid "Could not set role in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1940
+#: ../semanage/seobject.py:1935
#, python-format
msgid "Could not set type in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1945
+#: ../semanage/seobject.py:1940
#, python-format
msgid "Could not set mls fields in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1949
+#: ../semanage/seobject.py:1944
#, python-format
msgid "Could not set addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1953
+#: ../semanage/seobject.py:1948
#, python-format
msgid "Could not add addr %s"
msgstr ""
-#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
+#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
#, python-format
msgid "Addr %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:1989
+#: ../semanage/seobject.py:1984
#, python-format
msgid "Could not query addr %s"
msgstr ""
-#: ../semanage/seobject.py:1999
+#: ../semanage/seobject.py:1994
#, python-format
msgid "Could not modify addr %s"
msgstr ""
-#: ../semanage/seobject.py:2028
+#: ../semanage/seobject.py:2023
#, python-format
msgid "Addr %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2032
+#: ../semanage/seobject.py:2027
#, python-format
msgid "Could not delete addr %s"
msgstr ""
-#: ../semanage/seobject.py:2046
+#: ../semanage/seobject.py:2041
msgid "Could not deleteall node mappings"
msgstr ""
-#: ../semanage/seobject.py:2060
+#: ../semanage/seobject.py:2055
msgid "Could not list addrs"
msgstr ""
-#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
+#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
msgid "SELinux Type is required"
msgstr ""
-#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
-#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
+#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
+#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
#, python-format
msgid "Could not check if interface %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2123
+#: ../semanage/seobject.py:2118
#, python-format
msgid "Interface %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2122
#, python-format
msgid "Could not create interface for %s"
msgstr ""
-#: ../semanage/seobject.py:2136
+#: ../semanage/seobject.py:2131
#, python-format
msgid "Could not set user in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2140
+#: ../semanage/seobject.py:2135
#, python-format
msgid "Could not set role in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2144
+#: ../semanage/seobject.py:2139
#, python-format
msgid "Could not set type in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2149
+#: ../semanage/seobject.py:2144
#, python-format
msgid "Could not set mls fields in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2153
+#: ../semanage/seobject.py:2148
#, python-format
msgid "Could not set interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2157
+#: ../semanage/seobject.py:2152
#, python-format
msgid "Could not set message context for %s"
msgstr ""
-#: ../semanage/seobject.py:2161
+#: ../semanage/seobject.py:2156
#, python-format
msgid "Could not add interface %s"
msgstr ""
-#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
+#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
#, python-format
msgid "Interface %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2190
+#: ../semanage/seobject.py:2185
#, python-format
msgid "Could not query interface %s"
msgstr ""
-#: ../semanage/seobject.py:2201
+#: ../semanage/seobject.py:2196
#, python-format
msgid "Could not modify interface %s"
msgstr ""
-#: ../semanage/seobject.py:2228
+#: ../semanage/seobject.py:2223
#, python-format
msgid "Interface %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2232
+#: ../semanage/seobject.py:2227
#, python-format
msgid "Could not delete interface %s"
msgstr ""
-#: ../semanage/seobject.py:2246
+#: ../semanage/seobject.py:2241
msgid "Could not delete all interface mappings"
msgstr ""
-#: ../semanage/seobject.py:2260
+#: ../semanage/seobject.py:2255
msgid "Could not list interfaces"
msgstr ""
-#: ../semanage/seobject.py:2285
+#: ../semanage/seobject.py:2280
msgid "SELinux Interface"
msgstr ""
-#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
msgid "Context"
msgstr ""
-#: ../semanage/seobject.py:2355
+#: ../semanage/seobject.py:2350
#, python-format
msgid "Target %s is not valid. Target is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2358
+#: ../semanage/seobject.py:2353
#, python-format
msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2361
+#: ../semanage/seobject.py:2356
#, python-format
msgid "Equivalence class for %s already exists"
msgstr ""
-#: ../semanage/seobject.py:2367
+#: ../semanage/seobject.py:2362
#, python-format
msgid "File spec %s conflicts with equivalency rule '%s %s'"
msgstr ""
-#: ../semanage/seobject.py:2378
+#: ../semanage/seobject.py:2373
#, python-format
msgid "Equivalence class for %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:2395
+#: ../semanage/seobject.py:2390
#, python-format
msgid "Could not set user in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2399
+#: ../semanage/seobject.py:2394
#, python-format
msgid "Could not set role in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
+#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
#, python-format
msgid "Could not set mls fields in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2410
+#: ../semanage/seobject.py:2405
msgid "Invalid file specification"
msgstr ""
-#: ../semanage/seobject.py:2412
+#: ../semanage/seobject.py:2407
msgid "File specification can not include spaces"
msgstr ""
-#: ../semanage/seobject.py:2417
+#: ../semanage/seobject.py:2412
#, python-format
msgid ""
"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
msgstr ""
-#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
+#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
#, python-format
msgid "Type %s is invalid, must be a file or device type"
msgstr ""
-#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
-#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
-#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
+#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
+#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
+#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
#, python-format
msgid "Could not check if file context for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2447
+#: ../semanage/seobject.py:2442
#, python-format
msgid "File context for %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2451
+#: ../semanage/seobject.py:2446
#, python-format
msgid "Could not create file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2459
+#: ../semanage/seobject.py:2454
#, python-format
msgid "Could not set type in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
-#: ../semanage/seobject.py:2543
+#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
+#: ../semanage/seobject.py:2538
#, python-format
msgid "Could not set file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2473
+#: ../semanage/seobject.py:2468
#, python-format
msgid "Could not add file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2492
+#: ../semanage/seobject.py:2487
msgid "Requires setype, serange or seuser"
msgstr ""
-#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
+#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
#, python-format
msgid "Could not query file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
+#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
#, python-format
msgid "File context for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2547
+#: ../semanage/seobject.py:2542
#, python-format
msgid "Could not modify file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2565
+#: ../semanage/seobject.py:2560
msgid "Could not list the file contexts"
msgstr ""
-#: ../semanage/seobject.py:2579
+#: ../semanage/seobject.py:2574
#, python-format
msgid "Could not delete the file context %s"
msgstr ""
-#: ../semanage/seobject.py:2609
+#: ../semanage/seobject.py:2604
#, python-format
msgid "File context for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2615
+#: ../semanage/seobject.py:2610
#, python-format
msgid "Could not delete file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2632
+#: ../semanage/seobject.py:2627
msgid "Could not list file contexts"
msgstr ""
-#: ../semanage/seobject.py:2636
+#: ../semanage/seobject.py:2631
msgid "Could not list file contexts for home directories"
msgstr ""
-#: ../semanage/seobject.py:2640
+#: ../semanage/seobject.py:2635
msgid "Could not list local file contexts"
msgstr ""
-#: ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2672
msgid "SELinux fcontext"
msgstr ""
-#: ../semanage/seobject.py:2690
+#: ../semanage/seobject.py:2685
msgid ""
"\n"
"SELinux Distribution fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2695
+#: ../semanage/seobject.py:2690
msgid ""
"\n"
"SELinux Local fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
-#: ../semanage/seobject.py:2790
+#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
+#: ../semanage/seobject.py:2785
#, python-format
msgid "Could not check if boolean %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
+#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
#, python-format
msgid "Boolean %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2739
+#: ../semanage/seobject.py:2734
#, python-format
msgid "Could not query file context %s"
msgstr ""
-#: ../semanage/seobject.py:2744
+#: ../semanage/seobject.py:2739
#, python-format
msgid "You must specify one of the following values: %s"
msgstr ""
-#: ../semanage/seobject.py:2749
+#: ../semanage/seobject.py:2744
#, python-format
msgid "Could not set active value of boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2752
+#: ../semanage/seobject.py:2747
#, python-format
msgid "Could not modify boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2768
-#, python-format
-msgid "Bad format %s: Record %s"
+#: ../semanage/seobject.py:2763
+#, python-brace-format
+msgid "Bad format {filename}: Record {record}"
msgstr ""
-#: ../semanage/seobject.py:2792
+#: ../semanage/seobject.py:2787
#, python-format
msgid "Boolean %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2796
+#: ../semanage/seobject.py:2791
#, python-format
msgid "Could not delete boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
+#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
msgid "Could not list booleans"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "off"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "on"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "SELinux boolean"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "State"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "Default"
msgstr ""
-#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
+#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
#: ../sepolicy/sepolicy/sepolicy.glade:2510
#: ../sepolicy/sepolicy/sepolicy.glade:5099
msgid "Description"
@@ -1555,151 +1566,151 @@ msgstr ""
msgid "Missing interface definition for %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:140
+#: ../sepolicy/sepolicy/generate.py:138
msgid "Standard Init Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:141
+#: ../sepolicy/sepolicy/generate.py:139
msgid "DBUS System Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:142
+#: ../sepolicy/sepolicy/generate.py:140
msgid "Internet Services Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:143
+#: ../sepolicy/sepolicy/generate.py:141
msgid "Web Application/Script (CGI)"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:144
+#: ../sepolicy/sepolicy/generate.py:142
msgid "Sandbox"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:145
+#: ../sepolicy/sepolicy/generate.py:143
msgid "User Application"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:146
+#: ../sepolicy/sepolicy/generate.py:144
msgid "Existing Domain Type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:147
+#: ../sepolicy/sepolicy/generate.py:145
msgid "Minimal Terminal Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:148
+#: ../sepolicy/sepolicy/generate.py:146
msgid "Minimal X Windows Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:149
+#: ../sepolicy/sepolicy/generate.py:147
msgid "Desktop Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:150
+#: ../sepolicy/sepolicy/generate.py:148
msgid "Administrator Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:151
+#: ../sepolicy/sepolicy/generate.py:149
msgid "Confined Root Administrator Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:152
+#: ../sepolicy/sepolicy/generate.py:150
msgid "Module information for a new type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:158
+#: ../sepolicy/sepolicy/generate.py:156
msgid "Valid Types:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:193
+#: ../sepolicy/sepolicy/generate.py:191
#, python-format
msgid "Ports must be numbers or ranges of numbers from 1 to %d "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:205
+#: ../sepolicy/sepolicy/generate.py:203
msgid "You must enter a valid policy type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:208
+#: ../sepolicy/sepolicy/generate.py:206
#, python-format
msgid "You must enter a name for your policy module for your '%s'."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:346
+#: ../sepolicy/sepolicy/generate.py:344
msgid ""
"Name must be alphanumeric with no spaces. Consider using option \"-n "
"MODULENAME\""
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:438
+#: ../sepolicy/sepolicy/generate.py:436
msgid "User Role types can not be assigned executables."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:444
+#: ../sepolicy/sepolicy/generate.py:442
msgid "Only Daemon apps can use an init script."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:462
+#: ../sepolicy/sepolicy/generate.py:460
msgid "use_resolve must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:468
+#: ../sepolicy/sepolicy/generate.py:466
msgid "use_syslog must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:474
+#: ../sepolicy/sepolicy/generate.py:472
msgid "use_kerberos must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:480
+#: ../sepolicy/sepolicy/generate.py:478
msgid "manage_krb5_rcache must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:510
+#: ../sepolicy/sepolicy/generate.py:508
msgid "USER Types automatically get a tmp type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:847
+#: ../sepolicy/sepolicy/generate.py:845
#, python-format
msgid "'%s' policy modules require existing domains"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:872
+#: ../sepolicy/sepolicy/generate.py:870
msgid "Type field required"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:885
+#: ../sepolicy/sepolicy/generate.py:883
#, python-format
msgid ""
"You need to define a new type which ends with: \n"
" %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1113
+#: ../sepolicy/sepolicy/generate.py:1111
msgid "You must enter the executable path for your confined process"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1378
+#: ../sepolicy/sepolicy/generate.py:1376
msgid "Created the following files:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1379
+#: ../sepolicy/sepolicy/generate.py:1377
msgid "Type Enforcement file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1380
+#: ../sepolicy/sepolicy/generate.py:1378
msgid "Interface file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1381
+#: ../sepolicy/sepolicy/generate.py:1379
msgid "File Contexts file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1383
+#: ../sepolicy/sepolicy/generate.py:1381
msgid "Spec file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1384
+#: ../sepolicy/sepolicy/generate.py:1382
msgid "Setup Script"
msgstr ""
@@ -2367,29 +2378,29 @@ msgstr ""
msgid "named pipe"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:148
+#: ../sepolicy/sepolicy/__init__.py:149
msgid "No SELinux Policy installed"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:184
+#: ../sepolicy/sepolicy/__init__.py:185
#, python-format
msgid "Failed to read %s policy file"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:470
+#: ../sepolicy/sepolicy/__init__.py:471
#, python-format
msgid "-- Allowed %s [ %s ]"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:896
+#: ../sepolicy/sepolicy/__init__.py:897
msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1221
+#: ../sepolicy/sepolicy/__init__.py:1230
msgid "unknown"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1230
+#: ../sepolicy/sepolicy/__init__.py:1239
#, python-brace-format
msgid "Allow {subject} to {rest}"
msgstr ""
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2 1/4] python: improve format strings for proper localization
2023-06-12 16:21 ` [PATCH v2 1/4] python: improve format strings for proper localization Petr Lautrbach
@ 2023-06-13 9:30 ` Vit Mojzis
0 siblings, 0 replies; 26+ messages in thread
From: Vit Mojzis @ 2023-06-13 9:30 UTC (permalink / raw)
To: Petr Lautrbach, selinux
On 6/12/23 18:21, Petr Lautrbach wrote:
> If a string contains more than one unnamed argument it's hard for
> translators to proper localize as they don't know which value is
> represented by a unnamed argument. It also blocks them to use a
> different order of arguments which would make better sense in other
> languages.
>
> Fixes:
>
> $ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py
> ../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
> The translator cannot reorder the arguments.
> Please consider using a format string with named arguments,
> and a mapping instead of a tuple for the arguments.
> ../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
> The translator cannot reorder the arguments.
> Please consider using a format string with named arguments,
> and a mapping instead of a tuple for the arguments.
> ...
>
> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
> ---
> python/chcat/chcat | 6 +-
> python/semanage/seobject.py | 130 ++++++++++++++++++------------------
> 2 files changed, 68 insertions(+), 68 deletions(-)
>
> diff --git a/python/chcat/chcat b/python/chcat/chcat
> index 68718ec5f102..3ff387d88c59 100755
> --- a/python/chcat/chcat
> +++ b/python/chcat/chcat
> @@ -125,7 +125,7 @@ def chcat_add(orig, newcat, objects, login_ind):
>
> if len(clist) > 1:
> if cat in clist[1:]:
> - print(_("%s is already in %s") % (f, orig))
> + print(_("{target} is already in {category}").format(target=f, category=orig)
> continue
> clist.append(cat)
> cats = clist[1:]
> @@ -207,7 +207,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
>
> if len(clist) > 1:
> if cat not in clist[1:]:
> - print(_("%s is not in %s") % (f, orig))
> + print(_("{target} is not in {category}").format(target=f, category=orig))
> continue
> clist.remove(cat)
> if len(clist) > 1:
> @@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
> else:
> cat = ""
> else:
> - print(_("%s is not in %s") % (f, orig))
> + print(_("{target} is not in {category}").format(target=f, category=orig))
> continue
>
> if len(cat) == 0:
> diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
> index d82da4942987..12b20af51f81 100644
> --- a/python/semanage/seobject.py
> +++ b/python/semanage/seobject.py
> @@ -843,7 +843,7 @@ class seluserRecords(semanageRecords):
> for r in roles:
> rc = semanage_user_add_role(self.sh, u, r)
> if rc < 0:
> - raise ValueError(_("Could not add role %s for %s") % (r, name))
> + raise ValueError(_("Could not add role {role} for {name}").format(role=r, name=name))
>
> if is_mls_enabled == 1:
> rc = semanage_user_set_mlsrange(self.sh, u, serange)
> @@ -855,7 +855,7 @@ class seluserRecords(semanageRecords):
> raise ValueError(_("Could not set MLS level for %s") % name)
> rc = semanage_user_set_prefix(self.sh, u, prefix)
> if rc < 0:
> - raise ValueError(_("Could not add prefix %s for %s") % (r, prefix))
> + raise ValueError(_("Could not add prefix {prefix} for {role}").format(role=r, prefix=prefix))
> (rc, key) = semanage_user_key_extract(self.sh, u)
> if rc < 0:
> raise ValueError(_("Could not extract key for %s") % name)
> @@ -1088,7 +1088,7 @@ class portRecords(semanageRecords):
>
> (rc, k) = semanage_port_key_create(self.sh, low, high, proto_d)
> if rc < 0:
> - raise ValueError(_("Could not create a key for %s/%s") % (proto, port))
> + raise ValueError(_("Could not create a key for {proto}/{port}").format(prot=proto, port=port))
You seem to have added a typo (in all occurences of ".format(prot=proto,
port=port)" ). This needs to be:
.format(proto=proto, port=port)
Vit
> return (k, proto_d, low, high)
>
> def __add(self, port, proto, serange, type):
> @@ -1110,44 +1110,44 @@ class portRecords(semanageRecords):
>
> (rc, exists) = semanage_port_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(prot=proto, port=port))
> if exists:
> - raise ValueError(_("Port %s/%s already defined") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} already defined").format(prot=proto, port=port))
>
> (rc, p) = semanage_port_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create port for %s/%s") % (proto, port))
> + raise ValueError(_("Could not create port for {proto}/{port}").format(prot=proto, port=port))
>
> semanage_port_set_proto(p, proto_d)
> semanage_port_set_range(p, low, high)
> (rc, con) = semanage_context_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create context for %s/%s") % (proto, port))
> + raise ValueError(_("Could not create context for {proto}/{port}").format(prot=proto, port=port))
>
> rc = semanage_context_set_user(self.sh, con, "system_u")
> if rc < 0:
> - raise ValueError(_("Could not set user in port context for %s/%s") % (proto, port))
> + raise ValueError(_("Could not set user in port context for {proto}/{port}").format(prot=proto, port=port))
>
> rc = semanage_context_set_role(self.sh, con, "object_r")
> if rc < 0:
> - raise ValueError(_("Could not set role in port context for %s/%s") % (proto, port))
> + raise ValueError(_("Could not set role in port context for {proto}/{port}").format(prot=proto, port=port))
>
> rc = semanage_context_set_type(self.sh, con, type)
> if rc < 0:
> - raise ValueError(_("Could not set type in port context for %s/%s") % (proto, port))
> + raise ValueError(_("Could not set type in port context for {proto}/{port}").format(prot=proto, port=port))
>
> if (is_mls_enabled == 1) and (serange != ""):
> rc = semanage_context_set_mls(self.sh, con, serange)
> if rc < 0:
> - raise ValueError(_("Could not set mls fields in port context for %s/%s") % (proto, port))
> + raise ValueError(_("Could not set mls fields in port context for {proto}/{port}").format(proto=proto, port=port))
>
> rc = semanage_port_set_con(self.sh, p, con)
> if rc < 0:
> - raise ValueError(_("Could not set port context for %s/%s") % (proto, port))
> + raise ValueError(_("Could not set port context for {proto}/{port}").format(proto=proto, port=port))
>
> rc = semanage_port_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not add port %s/%s") % (proto, port))
> + raise ValueError(_("Could not add port {proto}/{port}").format(proto=proto, port=port))
>
> semanage_context_free(con)
> semanage_port_key_free(k)
> @@ -1175,13 +1175,13 @@ class portRecords(semanageRecords):
>
> (rc, exists) = semanage_port_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
> if not exists:
> - raise ValueError(_("Port %s/%s is not defined") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
>
> (rc, p) = semanage_port_query(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not query port %s/%s") % (proto, port))
> + raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port))
>
> con = semanage_port_get_con(p)
>
> @@ -1195,7 +1195,7 @@ class portRecords(semanageRecords):
>
> rc = semanage_port_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not modify port %s/%s") % (proto, port))
> + raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port))
>
> semanage_port_key_free(k)
> semanage_port_free(p)
> @@ -1241,19 +1241,19 @@ class portRecords(semanageRecords):
> (k, proto_d, low, high) = self.__genkey(port, proto)
> (rc, exists) = semanage_port_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
> if not exists:
> - raise ValueError(_("Port %s/%s is not defined") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
>
> (rc, exists) = semanage_port_exists_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
> + raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
> if not exists:
> - raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port))
> + raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port))
>
> rc = semanage_port_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete port %s/%s") % (proto, port))
> + raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port))
>
> semanage_port_key_free(k)
>
> @@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high)
> if rc < 0:
> - raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
> return (k, subnet_prefix, low, high)
>
> def __add(self, pkey, subnet_prefix, serange, type):
> @@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, exists) = semanage_ibpkey_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey))
> if exists:
> - raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> (rc, p) = semanage_ibpkey_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix)
> semanage_ibpkey_set_range(p, low, high)
> (rc, con) = semanage_context_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_context_set_user(self.sh, con, "system_u")
> if rc < 0:
> - raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_context_set_role(self.sh, con, "object_r")
> if rc < 0:
> - raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_context_set_type(self.sh, con, type)
> if rc < 0:
> - raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> if (is_mls_enabled == 1) and (serange != ""):
> rc = semanage_context_set_mls(self.sh, con, serange)
> if rc < 0:
> - raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_ibpkey_set_con(self.sh, p, con)
> if rc < 0:
> - raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_ibpkey_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_context_free(con)
> semanage_ibpkey_key_free(k)
> @@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords):
>
> (rc, exists) = semanage_ibpkey_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
> if not exists:
> - raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> (rc, p) = semanage_ibpkey_query(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> con = semanage_ibpkey_get_con(p)
>
> @@ -1465,7 +1465,7 @@ class ibpkeyRecords(semanageRecords):
>
> rc = semanage_ibpkey_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not modify ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not modify ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_ibpkey_key_free(k)
> semanage_ibpkey_free(p)
> @@ -1502,19 +1502,19 @@ class ibpkeyRecords(semanageRecords):
> (k, subnet_prefix, low, high) = self.__genkey(pkey, subnet_prefix)
> (rc, exists) = semanage_ibpkey_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
> if not exists:
> - raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> (rc, exists) = semanage_ibpkey_exists_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
> if not exists:
> - raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey))
> + raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> rc = semanage_ibpkey_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey))
> + raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
>
> semanage_ibpkey_key_free(k)
>
> @@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords):
>
> (rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port)
> if rc < 0:
> - raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
> return (k, ibdev_name, port)
>
> def __add(self, ibendport, ibdev_name, serange, type):
> @@ -1638,44 +1638,44 @@ class ibendportRecords(semanageRecords):
>
> (rc, exists) = semanage_ibendport_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port))
> if exists:
> - raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port))
> + raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port))
>
> (rc, p) = semanage_ibendport_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create ibendport for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not create ibendport for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> semanage_ibendport_set_ibdev_name(self.sh, p, ibdev_name)
> semanage_ibendport_set_port(p, port)
> (rc, con) = semanage_context_create(self.sh)
> if rc < 0:
> - raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_context_set_user(self.sh, con, "system_u")
> if rc < 0:
> - raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_context_set_role(self.sh, con, "object_r")
> if rc < 0:
> - raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_context_set_type(self.sh, con, type)
> if rc < 0:
> - raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> if (is_mls_enabled == 1) and (serange != ""):
> rc = semanage_context_set_mls(self.sh, con, serange)
> if rc < 0:
> - raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_ibendport_set_con(self.sh, p, con)
> if rc < 0:
> - raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_ibendport_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port))
> + raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> semanage_context_free(con)
> semanage_ibendport_key_free(k)
> @@ -1702,13 +1702,13 @@ class ibendportRecords(semanageRecords):
>
> (rc, exists) = semanage_ibendport_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
> if not exists:
> - raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
> + raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> (rc, p) = semanage_ibendport_query(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not query ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not query ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> con = semanage_ibendport_get_con(p)
>
> @@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords):
>
> rc = semanage_ibendport_modify_local(self.sh, k, p)
> if rc < 0:
> - raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> semanage_ibendport_key_free(k)
> semanage_ibendport_free(p)
> @@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords):
> port = semanage_ibendport_get_port(ibendport)
> (k, ibdev_name, port) = self.__genkey(str(port), ibdev_name)
> if rc < 0:
> - raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port))
> + raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
>
> rc = semanage_ibendport_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port))
> + raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
> semanage_ibendport_key_free(k)
>
> self.commit()
> @@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords):
> (k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name)
> (rc, exists) = semanage_ibendport_exists(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
> if not exists:
> - raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
> + raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> (rc, exists) = semanage_ibendport_exists_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
> if not exists:
> - raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport))
> + raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> rc = semanage_ibendport_del_local(self.sh, k)
> if rc < 0:
> - raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport))
> + raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
>
> semanage_ibendport_key_free(k)
>
> @@ -2765,7 +2765,7 @@ class booleanRecords(semanageRecords):
> try:
> boolname, val = b.split("=")
> except ValueError:
> - raise ValueError(_("Bad format %s: Record %s" % (name, b)))
> + raise ValueError(_("Bad format {filename}: Record {record}").format(filename=name, record=b))
> self.__mod(boolname.strip(), val.strip())
> fd.close()
> else:
^ permalink raw reply [flat|nested] 26+ messages in thread
* (no subject)
2023-06-12 16:21 ` [PATCH v2 4/4] python: update python.pot Petr Lautrbach
@ 2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 1/4] python: improve format strings for proper localization Petr Lautrbach
` (3 more replies)
0 siblings, 4 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 9:42 UTC (permalink / raw)
To: selinux; +Cc: vmojzis
Fixed typo in 1/4: prot=proto => proto=proto
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v3 1/4] python: improve format strings for proper localization
2023-06-13 9:42 ` Petr Lautrbach
@ 2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 2/4] python: Drop hard formating from localized strings Petr Lautrbach
` (2 subsequent siblings)
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 9:42 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
If a string contains more than one unnamed argument it's hard for
translators to proper localize as they don't know which value is
represented by a unnamed argument. It also blocks them to use a
different order of arguments which would make better sense in other
languages.
Fixes:
$ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py
../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
...
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/chcat/chcat | 6 +-
python/semanage/seobject.py | 130 ++++++++++++++++++------------------
2 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/python/chcat/chcat b/python/chcat/chcat
index 68718ec5f102..3ff387d88c59 100755
--- a/python/chcat/chcat
+++ b/python/chcat/chcat
@@ -125,7 +125,7 @@ def chcat_add(orig, newcat, objects, login_ind):
if len(clist) > 1:
if cat in clist[1:]:
- print(_("%s is already in %s") % (f, orig))
+ print(_("{target} is already in {category}").format(target=f, category=orig)
continue
clist.append(cat)
cats = clist[1:]
@@ -207,7 +207,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
if len(clist) > 1:
if cat not in clist[1:]:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
clist.remove(cat)
if len(clist) > 1:
@@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
else:
cat = ""
else:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
if len(cat) == 0:
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index d82da4942987..2b1eb44ce8a3 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -843,7 +843,7 @@ class seluserRecords(semanageRecords):
for r in roles:
rc = semanage_user_add_role(self.sh, u, r)
if rc < 0:
- raise ValueError(_("Could not add role %s for %s") % (r, name))
+ raise ValueError(_("Could not add role {role} for {name}").format(role=r, name=name))
if is_mls_enabled == 1:
rc = semanage_user_set_mlsrange(self.sh, u, serange)
@@ -855,7 +855,7 @@ class seluserRecords(semanageRecords):
raise ValueError(_("Could not set MLS level for %s") % name)
rc = semanage_user_set_prefix(self.sh, u, prefix)
if rc < 0:
- raise ValueError(_("Could not add prefix %s for %s") % (r, prefix))
+ raise ValueError(_("Could not add prefix {prefix} for {role}").format(role=r, prefix=prefix))
(rc, key) = semanage_user_key_extract(self.sh, u)
if rc < 0:
raise ValueError(_("Could not extract key for %s") % name)
@@ -1088,7 +1088,7 @@ class portRecords(semanageRecords):
(rc, k) = semanage_port_key_create(self.sh, low, high, proto_d)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create a key for {proto}/{port}").format(proto=proto, port=port))
return (k, proto_d, low, high)
def __add(self, port, proto, serange, type):
@@ -1110,44 +1110,44 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if exists:
- raise ValueError(_("Port %s/%s already defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} already defined").format(proto=proto, port=port))
(rc, p) = semanage_port_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create port for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create port for {proto}/{port}").format(proto=proto, port=port))
semanage_port_set_proto(p, proto_d)
semanage_port_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set user in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set role in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set type in port context for {proto}/{port}").format(proto=proto, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set mls fields in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_port_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add port %s/%s") % (proto, port))
+ raise ValueError(_("Could not add port {proto}/{port}").format(proto=proto, port=port))
semanage_context_free(con)
semanage_port_key_free(k)
@@ -1175,13 +1175,13 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, p) = semanage_port_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query port %s/%s") % (proto, port))
+ raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port))
con = semanage_port_get_con(p)
@@ -1195,7 +1195,7 @@ class portRecords(semanageRecords):
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify port %s/%s") % (proto, port))
+ raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
semanage_port_free(p)
@@ -1241,19 +1241,19 @@ class portRecords(semanageRecords):
(k, proto_d, low, high) = self.__genkey(port, proto)
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, exists) = semanage_port_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port))
rc = semanage_port_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete port %s/%s") % (proto, port))
+ raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
@@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords):
(rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
return (k, subnet_prefix, low, high)
def __add(self, pkey, subnet_prefix, serange, type):
@@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey))
if exists:
- raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix)
semanage_ibpkey_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_context_free(con)
semanage_ibpkey_key_free(k)
@@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
con = semanage_ibpkey_get_con(p)
@@ -1465,7 +1465,7 @@ class ibpkeyRecords(semanageRecords):
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not modify ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
semanage_ibpkey_free(p)
@@ -1502,19 +1502,19 @@ class ibpkeyRecords(semanageRecords):
(k, subnet_prefix, low, high) = self.__genkey(pkey, subnet_prefix)
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, exists) = semanage_ibpkey_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
@@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords):
(rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port)
if rc < 0:
- raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
return (k, ibdev_name, port)
def __add(self, ibendport, ibdev_name, serange, type):
@@ -1638,44 +1638,44 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port))
if exists:
- raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port))
+ raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port))
(rc, p) = semanage_ibendport_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibendport for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create ibendport for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_set_ibdev_name(self.sh, p, ibdev_name)
semanage_ibendport_set_port(p, port)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_context_free(con)
semanage_ibendport_key_free(k)
@@ -1702,13 +1702,13 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, p) = semanage_ibendport_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not query ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
con = semanage_ibendport_get_con(p)
@@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords):
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
semanage_ibendport_free(p)
@@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords):
port = semanage_ibendport_get_port(ibendport)
(k, ibdev_name, port) = self.__genkey(str(port), ibdev_name)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port))
+ raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port))
+ raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_key_free(k)
self.commit()
@@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords):
(k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name)
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, exists) = semanage_ibendport_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
@@ -2765,7 +2765,7 @@ class booleanRecords(semanageRecords):
try:
boolname, val = b.split("=")
except ValueError:
- raise ValueError(_("Bad format %s: Record %s" % (name, b)))
+ raise ValueError(_("Bad format {filename}: Record {record}").format(filename=name, record=b))
self.__mod(boolname.strip(), val.strip())
fd.close()
else:
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v3 2/4] python: Drop hard formating from localized strings
2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 1/4] python: improve format strings for proper localization Petr Lautrbach
@ 2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 4/4] python: update python.pot Petr Lautrbach
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 9:42 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
It confuses translators and new lines are dropped by parser module anyway.
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/audit2allow/audit2allow | 14 ++++++--
python/semanage/semanage | 60 +++++++++++++---------------------
2 files changed, 34 insertions(+), 40 deletions(-)
diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow
index 5587a2dbb006..35b0b151ac86 100644
--- a/python/audit2allow/audit2allow
+++ b/python/audit2allow/audit2allow
@@ -234,9 +234,17 @@ class AuditToPolicy:
print(e)
sys.exit(1)
- sys.stdout.write(_("******************** IMPORTANT ***********************\n"))
- sys.stdout.write((_("To make this policy package active, execute:" +
- "\n\nsemodule -i %s\n\n") % packagename))
+ sys.stdout.write(
+"""******************** {important} ***********************
+{text}
+
+semodule -i {packagename}
+
+""".format(
+ important=_("IMPORTANT"),
+ text=_("To make this policy package active, execute:"),
+ packagename=packagename
+))
def __output_audit2why(self):
import selinux
diff --git a/python/semanage/semanage b/python/semanage/semanage
index e0bd98a95c77..4fdb490f7df4 100644
--- a/python/semanage/semanage
+++ b/python/semanage/semanage
@@ -238,30 +238,22 @@ def parser_add_level(parser, name):
def parser_add_range(parser, name):
- parser.add_argument('-r', '--range', default='',
- help=_('''
-MLS/MCS Security Range (MLS/MCS Systems only)
-SELinux Range for SELinux login mapping
-defaults to the SELinux user record range.
-SELinux Range for SELinux user defaults to s0.
-'''))
+ parser.add_argument('-r', '--range', default='', help=_(
+ "MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. \
+SELinux Range for SELinux user defaults to s0."
+ ))
def parser_add_proto(parser, name):
- parser.add_argument('-p', '--proto', help=_('''
- Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol
- version for the specified node (ipv4|ipv6).
-'''))
+ parser.add_argument('-p', '--proto', help=_(
+ "Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version for the specified node (ipv4|ipv6)."
+ ))
def parser_add_subnet_prefix(parser, name):
- parser.add_argument('-x', '--subnet_prefix', help=_('''
- Subnet prefix for the specified infiniband ibpkey.
-'''))
+ parser.add_argument('-x', '--subnet_prefix', help=_('Subnet prefix for the specified infiniband ibpkey.'))
def parser_add_ibdev_name(parser, name):
- parser.add_argument('-z', '--ibdev_name', help=_('''
- Name for the specified infiniband end port.
-'''))
+ parser.add_argument('-z', '--ibdev_name', help=_("Name for the specified infiniband end port."))
def parser_add_modify(parser, name):
parser.add_argument('-m', '--modify', dest='action', action='store_const', const='modify', help=_("Modify a record of the %s object type") % name)
@@ -348,15 +340,6 @@ def handleFcontext(args):
def setupFcontextParser(subparsers):
- ftype_help = '''
-File Type. This is used with fcontext. Requires a file type
-as shown in the mode field by ls, e.g. use d to match only
-directories or f to match only regular files. The following
-file type options can be passed:
-f (regular file),d (directory),c (character device),
-b (block device),s (socket),l (symbolic link),p (named pipe)
-If you do not specify a file type, the file type will default to "all files".
-'''
generate_usage = generate_custom_usage(usage_fcontext, usage_fcontext_dict)
fcontextParser = subparsers.add_parser('fcontext', usage=generate_usage, help=_("Manage file context mapping definitions"))
parser_add_locallist(fcontextParser, "fcontext")
@@ -372,11 +355,16 @@ If you do not specify a file type, the file type will default to "all files".
parser_add_extract(fcontext_action, "fcontext")
parser_add_deleteall(fcontext_action, "fcontext")
- fcontextParser.add_argument('-e', '--equal', help=_('''Substitute target path with sourcepath when generating default
- label. This is used with fcontext. Requires source and target
- path arguments. The context labeling for the target subtree is
- made equivalent to that defined for the source.'''))
- fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(ftype_help))
+ fcontextParser.add_argument('-e', '--equal', help=_(
+ 'Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target \
+path arguments. The context labeling for the target subtree is made equivalent to that defined for the source.'
+ ))
+ fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(
+ 'File Type. This is used with fcontext. Requires a file type as shown in the mode field by ls, e.g. use d to match only \
+directories or f to match only regular files. The following file type options can be passed: f (regular file), d (directory), \
+c (character device), b (block device), s (socket), l (symbolic link), p (named pipe). \
+If you do not specify a file type, the file type will default to "all files".'
+ ))
parser_add_seuser(fcontextParser, "fcontext")
parser_add_type(fcontextParser, "fcontext")
parser_add_range(fcontextParser, "fcontext")
@@ -426,9 +414,7 @@ def setupUserParser(subparsers):
parser_add_range(userParser, "user")
userParser.add_argument('-R', '--roles', default=[],
action=CheckRole,
- help=_('''
-SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times.
-'''))
+ help=_("SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times."))
userParser.add_argument('-P', '--prefix', default="user", help=argparse.SUPPRESS)
userParser.add_argument('selinux_name', nargs='?', default=None, help=_('selinux_name'))
userParser.set_defaults(func=handleUser)
@@ -901,9 +887,9 @@ def setupImportParser(subparsers):
def createCommandParser():
commandParser = seParser(prog='semanage',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- description='''semanage is used to configure certain elements
- of SELinux policy with-out requiring modification
- to or recompilation from policy source.''')
+ description=_(
+ "semanage is used to configure certain elements of SELinux policy with-out requiring modification or recompilation from policy source."
+ ))
#To add a new subcommand define the parser for it in a function above and call it here.
subparsers = commandParser.add_subparsers(dest='subcommand')
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v3 3/4] semanage: Drop unnecessary import from seobject
2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 2/4] python: Drop hard formating from localized strings Petr Lautrbach
@ 2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 4/4] python: update python.pot Petr Lautrbach
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 9:42 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
sepolgen.module is not used for permissive domains
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/semanage/seobject.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index 2b1eb44ce8a3..361205d11c10 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -504,11 +504,6 @@ class permissiveRecords(semanageRecords):
print(t)
def add(self, type):
- try:
- import sepolgen.module as module
- except ImportError:
- raise ValueError(_("The sepolgen python module is required to setup permissive domains.\nIn some distributions it is included in the policycoreutils-devel package.\n# yum install policycoreutils-devel\nOr similar for your distro."))
-
name = "permissive_%s" % type
modtxt = "(typepermissive %s)" % type
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v3 4/4] python: update python.pot
2023-06-13 9:42 ` Petr Lautrbach
` (2 preceding siblings ...)
2023-06-13 9:42 ` [PATCH v3 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
@ 2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 11:20 ` Petr Lautrbach
3 siblings, 1 reply; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 9:42 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/po/python.pot | 963 ++++++++++++++++++++++---------------------
1 file changed, 487 insertions(+), 476 deletions(-)
diff --git a/python/po/python.pot b/python/po/python.pot
index 16d04eb0f18e..435a1b764e34 100644
--- a/python/po/python.pot
+++ b/python/po/python.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-01-18 11:57+0100\n"
+"POT-Creation-Date: 2023-06-12 18:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,17 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../audit2allow/audit2allow:239
-msgid "******************** IMPORTANT ***********************\n"
+#: ../audit2allow/audit2allow:244
+msgid "IMPORTANT"
msgstr ""
-#: ../audit2allow/audit2allow:240
-#, python-format
-msgid ""
-"To make this policy package active, execute:\n"
-"\n"
-"semodule -i %s\n"
-"\n"
+#: ../audit2allow/audit2allow:245
+msgid "To make this policy package active, execute:"
msgstr ""
#: ../chcat/chcat:111 ../chcat/chcat:191
@@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
msgstr ""
#: ../chcat/chcat:128
-#, python-format
-msgid "%s is already in %s"
+#, python-brace-format
+msgid "{target} is already in {category}"
msgstr ""
#: ../chcat/chcat:210 ../chcat/chcat:220
-#, python-format
-msgid "%s is not in %s"
+#, python-brace-format
+msgid "{target} is not in {category}"
msgstr ""
#: ../chcat/chcat:291 ../chcat/chcat:296
@@ -152,218 +147,222 @@ msgstr ""
#: ../semanage/semanage:242
msgid ""
-"\n"
-"MLS/MCS Security Range (MLS/MCS Systems only)\n"
-"SELinux Range for SELinux login mapping\n"
-"defaults to the SELinux user record range.\n"
-"SELinux Range for SELinux user defaults to s0.\n"
+"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
+"login mapping defaults to the SELinux user record range. SELinux Range for "
+"SELinux user defaults to s0."
msgstr ""
-#: ../semanage/semanage:251
+#: ../semanage/semanage:249
msgid ""
-"\n"
-" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
-"protocol\n"
-" version for the specified node (ipv4|ipv6).\n"
+"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
+"version for the specified node (ipv4|ipv6)."
msgstr ""
-#: ../semanage/semanage:257
-msgid ""
-"\n"
-" Subnet prefix for the specified infiniband ibpkey.\n"
+#: ../semanage/semanage:253
+msgid "Subnet prefix for the specified infiniband ibpkey."
msgstr ""
-#: ../semanage/semanage:262
-msgid ""
-"\n"
-" Name for the specified infiniband end port.\n"
+#: ../semanage/semanage:256
+msgid "Name for the specified infiniband end port."
msgstr ""
-#: ../semanage/semanage:267
+#: ../semanage/semanage:259
#, python-format
msgid "Modify a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:271
+#: ../semanage/semanage:263
#, python-format
msgid "List records of the %s object type"
msgstr ""
-#: ../semanage/semanage:275
+#: ../semanage/semanage:267
#, python-format
msgid "Delete a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:279
+#: ../semanage/semanage:271
msgid "Extract customizable commands, for use within a transaction"
msgstr ""
-#: ../semanage/semanage:283
+#: ../semanage/semanage:275
#, python-format
msgid "Remove all %s objects local customizations"
msgstr ""
-#: ../semanage/semanage:287
+#: ../semanage/semanage:279
msgid "SELinux user name"
msgstr ""
-#: ../semanage/semanage:292
+#: ../semanage/semanage:284
msgid "Manage login mappings between linux users and SELinux confined users"
msgstr ""
-#: ../semanage/semanage:309
+#: ../semanage/semanage:301
#, python-format
msgid "login_name | %%groupname"
msgstr ""
-#: ../semanage/semanage:361
+#: ../semanage/semanage:344
msgid "Manage file context mapping definitions"
msgstr ""
-#: ../semanage/semanage:375
+#: ../semanage/semanage:359
+msgid ""
+"Substitute target path with sourcepath when generating default label. This "
+"is used with fcontext. Requires source and target path arguments. The "
+"context labeling for the target subtree is made equivalent to that defined "
+"for the source."
+msgstr ""
+
+#: ../semanage/semanage:363
msgid ""
-"Substitute target path with sourcepath when generating default\n"
-" label. "
-"This is used with fcontext. Requires source and target\n"
-" path "
-"arguments. The context labeling for the target subtree is\n"
-" made "
-"equivalent to that defined for the source."
+"File Type. This is used with fcontext. Requires a file type as shown in the "
+"mode field by ls, e.g. use d to match only directories or f to match only "
+"regular files. The following file type options can be passed: f (regular "
+"file), d (directory), c (character device), b (block device), s (socket), l "
+"(symbolic link), p (named pipe). If you do not specify a file type, the file "
+"type will default to \"all files\"."
msgstr ""
-#: ../semanage/semanage:383
+#: ../semanage/semanage:371
msgid ""
"Path to be labeled (may be in the form of a Perl compatible regular "
"expression)"
msgstr ""
-#: ../semanage/semanage:411
+#: ../semanage/semanage:399
msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
msgstr ""
-#: ../semanage/semanage:429
+#: ../semanage/semanage:417
msgid ""
-"\n"
-"SELinux Roles. You must enclose multiple roles within quotes, separate by "
-"spaces. Or specify -R multiple times.\n"
+"SELinux Roles. You must enclose multiple roles within quotes, separate by "
+"spaces. Or specify -R multiple times."
msgstr ""
-#: ../semanage/semanage:433
+#: ../semanage/semanage:419
msgid "selinux_name"
msgstr ""
-#: ../semanage/semanage:461
+#: ../semanage/semanage:447
msgid "Manage network port type definitions"
msgstr ""
-#: ../semanage/semanage:477
+#: ../semanage/semanage:463
msgid "port | port_range"
msgstr ""
-#: ../semanage/semanage:506
+#: ../semanage/semanage:492
msgid "Manage infiniband ibpkey type definitions"
msgstr ""
-#: ../semanage/semanage:522
+#: ../semanage/semanage:508
msgid "pkey | pkey_range"
msgstr ""
-#: ../semanage/semanage:549
+#: ../semanage/semanage:535
msgid "Manage infiniband end port type definitions"
msgstr ""
-#: ../semanage/semanage:565
+#: ../semanage/semanage:551
msgid "ibendport"
msgstr ""
-#: ../semanage/semanage:592
+#: ../semanage/semanage:578
msgid "Manage network interface type definitions"
msgstr ""
-#: ../semanage/semanage:607
+#: ../semanage/semanage:593
msgid "interface_spec"
msgstr ""
-#: ../semanage/semanage:631
+#: ../semanage/semanage:617
msgid "Manage SELinux policy modules"
msgstr ""
-#: ../semanage/semanage:642
+#: ../semanage/semanage:628
msgid "Add a module"
msgstr ""
-#: ../semanage/semanage:643
+#: ../semanage/semanage:629
msgid "Remove a module"
msgstr ""
-#: ../semanage/semanage:644
+#: ../semanage/semanage:630
msgid "Disable a module"
msgstr ""
-#: ../semanage/semanage:645
+#: ../semanage/semanage:631
msgid "Enable a module"
msgstr ""
-#: ../semanage/semanage:672
+#: ../semanage/semanage:658
msgid "Manage network node type definitions"
msgstr ""
-#: ../semanage/semanage:686
+#: ../semanage/semanage:672
msgid "Network Mask"
msgstr ""
-#: ../semanage/semanage:690
+#: ../semanage/semanage:676
msgid "node"
msgstr ""
-#: ../semanage/semanage:715
+#: ../semanage/semanage:701
msgid "Manage booleans to selectively enable functionality"
msgstr ""
-#: ../semanage/semanage:720
+#: ../semanage/semanage:706
msgid "boolean"
msgstr ""
-#: ../semanage/semanage:730
+#: ../semanage/semanage:716
msgid "Enable the boolean"
msgstr ""
-#: ../semanage/semanage:731
+#: ../semanage/semanage:717
msgid "Disable the boolean"
msgstr ""
-#: ../semanage/semanage:752
+#: ../semanage/semanage:738
msgid "semanage permissive: error: the following argument is required: type\n"
msgstr ""
-#: ../semanage/semanage:756
+#: ../semanage/semanage:742
msgid "Manage process type enforcement mode"
msgstr ""
-#: ../semanage/semanage:768 ../semanage/seobject.py:2677
+#: ../semanage/semanage:754 ../semanage/seobject.py:2672
msgid "type"
msgstr ""
-#: ../semanage/semanage:779
+#: ../semanage/semanage:765
msgid "Disable/Enable dontaudit rules in policy"
msgstr ""
-#: ../semanage/semanage:799
+#: ../semanage/semanage:785
msgid "Output local customizations"
msgstr ""
-#: ../semanage/semanage:801
+#: ../semanage/semanage:787
msgid "Output file"
msgstr ""
-#: ../semanage/semanage:894
+#: ../semanage/semanage:880
msgid "Import local customizations"
msgstr ""
-#: ../semanage/semanage:897
+#: ../semanage/semanage:883
msgid "Input file"
msgstr ""
+#: ../semanage/semanage:891
+msgid ""
+"semanage is used to configure certain elements of SELinux policy with-out "
+"requiring modification or recompilation from policy source."
+msgstr ""
+
#: ../semanage/seobject.py:279
msgid "Could not create semanage handle"
msgstr ""
@@ -485,123 +484,115 @@ msgstr ""
msgid "Customized Permissive Types"
msgstr ""
-#: ../semanage/seobject.py:510
-msgid ""
-"The sepolgen python module is required to setup permissive domains.\n"
-"In some distributions it is included in the policycoreutils-devel package.\n"
-"# yum install policycoreutils-devel\n"
-"Or similar for your distro."
-msgstr ""
-
-#: ../semanage/seobject.py:520
+#: ../semanage/seobject.py:515
#, python-format
msgid "Could not set permissive domain %s (module installation failed)"
msgstr ""
-#: ../semanage/seobject.py:526
+#: ../semanage/seobject.py:521
#, python-format
msgid "Could not remove permissive domain %s (remove failed)"
msgstr ""
-#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
-#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
-#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
-#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
-#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
-#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
-#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
+#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
+#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
+#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
+#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
+#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
+#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
+#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
#, python-format
msgid "Could not create a key for %s"
msgstr ""
-#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
-#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
+#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
+#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
#, python-format
msgid "Could not check if login mapping for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:569
+#: ../semanage/seobject.py:564
#, python-format
msgid "Login mapping for %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:574
+#: ../semanage/seobject.py:569
#, python-format
msgid "Linux Group %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:579
+#: ../semanage/seobject.py:574
#, python-format
msgid "Linux User %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:583
+#: ../semanage/seobject.py:578
#, python-format
msgid "Could not create login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
+#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
#, python-format
msgid "Could not set name for %s"
msgstr ""
-#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
+#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
#, python-format
msgid "Could not set MLS range for %s"
msgstr ""
-#: ../semanage/seobject.py:596
+#: ../semanage/seobject.py:591
#, python-format
msgid "Could not set SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:600
+#: ../semanage/seobject.py:595
#, python-format
msgid "Could not add login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:616
+#: ../semanage/seobject.py:611
msgid "Requires seuser or serange"
msgstr ""
-#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
+#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
#, python-format
msgid "Login mapping for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:643
+#: ../semanage/seobject.py:638
#, python-format
msgid "Could not query seuser for %s"
msgstr ""
-#: ../semanage/seobject.py:658
+#: ../semanage/seobject.py:653
#, python-format
msgid "Could not modify login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:690
+#: ../semanage/seobject.py:685
#, python-format
msgid "Login mapping for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:694
+#: ../semanage/seobject.py:689
#, python-format
msgid "Could not delete login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
-#: ../semanage/seobject.py:991
+#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
+#: ../semanage/seobject.py:986
msgid "Could not list login mappings"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
#: ../sepolicy/sepolicy/sepolicy.glade:1156
#: ../sepolicy/sepolicy/sepolicy.glade:3138
msgid "Login Name"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:1182
#: ../sepolicy/sepolicy/sepolicy.glade:3156
#: ../sepolicy/sepolicy/sepolicy.glade:3242
@@ -609,938 +600,958 @@ msgstr ""
msgid "SELinux User"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "MLS/MCS Range"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "Service"
msgstr ""
-#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
-#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
-#: ../semanage/seobject.py:958
+#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
+#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
+#: ../semanage/seobject.py:953
#, python-format
msgid "Could not check if SELinux user %s is defined"
msgstr ""
-#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
-#: ../semanage/seobject.py:964
+#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
+#: ../semanage/seobject.py:959
#, python-format
msgid "Could not query user for %s"
msgstr ""
-#: ../semanage/seobject.py:823
+#: ../semanage/seobject.py:818
#, python-format
msgid "You must add at least one role for %s"
msgstr ""
-#: ../semanage/seobject.py:833
+#: ../semanage/seobject.py:828
#, python-format
msgid "SELinux user %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:837
+#: ../semanage/seobject.py:832
#, python-format
msgid "Could not create SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:846
-#, python-format
-msgid "Could not add role %s for %s"
+#: ../semanage/seobject.py:841
+#, python-brace-format
+msgid "Could not add role {role} for {name}"
msgstr ""
-#: ../semanage/seobject.py:855
+#: ../semanage/seobject.py:850
#, python-format
msgid "Could not set MLS level for %s"
msgstr ""
-#: ../semanage/seobject.py:858
-#, python-format
-msgid "Could not add prefix %s for %s"
+#: ../semanage/seobject.py:853
+#, python-brace-format
+msgid "Could not add prefix {prefix} for {role}"
msgstr ""
-#: ../semanage/seobject.py:861
+#: ../semanage/seobject.py:856
#, python-format
msgid "Could not extract key for %s"
msgstr ""
-#: ../semanage/seobject.py:865
+#: ../semanage/seobject.py:860
#, python-format
msgid "Could not add SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:886
+#: ../semanage/seobject.py:881
msgid "Requires prefix, roles, level or range"
msgstr ""
-#: ../semanage/seobject.py:888
+#: ../semanage/seobject.py:883
msgid "Requires prefix or roles"
msgstr ""
-#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
+#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
#, python-format
msgid "SELinux user %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:927
+#: ../semanage/seobject.py:922
#, python-format
msgid "Could not modify SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:960
+#: ../semanage/seobject.py:955
#, python-format
msgid "SELinux user %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:971
+#: ../semanage/seobject.py:966
#, python-format
msgid "Could not delete SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:1009
+#: ../semanage/seobject.py:1004
msgid "Could not list SELinux users"
msgstr ""
-#: ../semanage/seobject.py:1015
+#: ../semanage/seobject.py:1010
#, python-format
msgid "Could not list roles for user %s"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "Labeling"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "MLS/"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "Prefix"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Level"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Range"
msgstr ""
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:3262
#: ../sepolicy/sepolicy/sepolicy.glade:5233
#: ../sepolicy/sepolicy/sepolicy.glade:5382
msgid "SELinux Roles"
msgstr ""
-#: ../semanage/seobject.py:1071
+#: ../semanage/seobject.py:1066
msgid "Protocol has to be one of udp, tcp, dccp or sctp"
msgstr ""
-#: ../semanage/seobject.py:1073
+#: ../semanage/seobject.py:1068
msgid "Port is required"
msgstr ""
-#: ../semanage/seobject.py:1087
+#: ../semanage/seobject.py:1082
msgid "Invalid Port"
msgstr ""
-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
-#, python-format
-msgid "Could not create a key for %s/%s"
+#: ../semanage/seobject.py:1086
+#, python-brace-format
+msgid "Could not create a key for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
-#: ../semanage/seobject.py:1631
+#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
+#: ../semanage/seobject.py:1626
msgid "Type is required"
msgstr ""
-#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
+#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
#, python-format
msgid "Type %s is invalid, must be a port type"
msgstr ""
-#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
-#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
-#, python-format
-msgid "Could not check if port %s/%s is defined"
+#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
+#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
+#, python-brace-format
+msgid "Could not check if port {proto}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1115
-#, python-format
-msgid "Port %s/%s already defined"
+#: ../semanage/seobject.py:1110
+#, python-brace-format
+msgid "Port {proto}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1119
-#, python-format
-msgid "Could not create port for %s/%s"
+#: ../semanage/seobject.py:1114
+#, python-brace-format
+msgid "Could not create port for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
-#: ../semanage/seobject.py:1653
-#, python-format
-msgid "Could not create context for %s/%s"
+#: ../semanage/seobject.py:1120
+#, python-brace-format
+msgid "Could not create context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1129
-#, python-format
-msgid "Could not set user in port context for %s/%s"
+#: ../semanage/seobject.py:1124
+#, python-brace-format
+msgid "Could not set user in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1133
-#, python-format
-msgid "Could not set role in port context for %s/%s"
+#: ../semanage/seobject.py:1128
+#, python-brace-format
+msgid "Could not set role in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1137
-#, python-format
-msgid "Could not set type in port context for %s/%s"
+#: ../semanage/seobject.py:1132
+#, python-brace-format
+msgid "Could not set type in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1142
-#, python-format
-msgid "Could not set mls fields in port context for %s/%s"
+#: ../semanage/seobject.py:1137
+#, python-brace-format
+msgid "Could not set mls fields in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1146
-#, python-format
-msgid "Could not set port context for %s/%s"
+#: ../semanage/seobject.py:1141
+#, python-brace-format
+msgid "Could not set port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1150
-#, python-format
-msgid "Could not add port %s/%s"
+#: ../semanage/seobject.py:1145
+#, python-brace-format
+msgid "Could not add port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
-#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
-#: ../semanage/seobject.py:2176
+#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
+#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
+#: ../semanage/seobject.py:2171
msgid "Requires setype or serange"
msgstr ""
-#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
-#: ../semanage/seobject.py:1694
+#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
+#: ../semanage/seobject.py:1689
msgid "Requires setype"
msgstr ""
-#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
-#, python-format
-msgid "Port %s/%s is not defined"
+#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
+#, python-brace-format
+msgid "Port {proto}/{port} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1184
-#, python-format
-msgid "Could not query port %s/%s"
+#: ../semanage/seobject.py:1179
+#, python-brace-format
+msgid "Could not query port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1198
-#, python-format
-msgid "Could not modify port %s/%s"
+#: ../semanage/seobject.py:1193
+#, python-brace-format
+msgid "Could not modify port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1213
+#: ../semanage/seobject.py:1208
msgid "Could not list the ports"
msgstr ""
-#: ../semanage/seobject.py:1230
+#: ../semanage/seobject.py:1225
#, python-format
msgid "Could not delete the port %s"
msgstr ""
-#: ../semanage/seobject.py:1252
-#, python-format
-msgid "Port %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1247
+#, python-brace-format
+msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1256
-#, python-format
-msgid "Could not delete port %s/%s"
+#: ../semanage/seobject.py:1251
+#, python-brace-format
+msgid "Could not delete port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
+#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
msgid "Could not list ports"
msgstr ""
-#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
+#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
#: ../sepolicy/sepolicy/sepolicy.glade:2766
#: ../sepolicy/sepolicy/sepolicy.glade:4630
msgid "SELinux Port Type"
msgstr ""
-#: ../semanage/seobject.py:1329
+#: ../semanage/seobject.py:1324
msgid "Proto"
msgstr ""
-#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
#: ../sepolicy/sepolicy/sepolicy.glade:1407
msgid "Port Number"
msgstr ""
-#: ../semanage/seobject.py:1351
+#: ../semanage/seobject.py:1346
msgid "Subnet Prefix is required"
msgstr ""
-#: ../semanage/seobject.py:1361
+#: ../semanage/seobject.py:1356
msgid "Invalid Pkey"
msgstr ""
-#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
+#: ../semanage/seobject.py:1360
+#, python-brace-format
+msgid "Could not create a key for {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
#, python-format
msgid "Type %s is invalid, must be a ibpkey type"
msgstr ""
-#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
-#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
-#, python-format
-msgid "Could not check if ibpkey %s/%s is defined"
+#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
+#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
+#, python-brace-format
+msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
msgstr ""
-#: ../semanage/seobject.py:1389
-#, python-format
-msgid "ibpkey %s/%s already defined"
+#: ../semanage/seobject.py:1384
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} already defined"
msgstr ""
-#: ../semanage/seobject.py:1393
-#, python-format
-msgid "Could not create ibpkey for %s/%s"
+#: ../semanage/seobject.py:1388
+#, python-brace-format
+msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1403
-#, python-format
-msgid "Could not set user in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1394
+#, python-brace-format
+msgid "Could not create context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1407
-#, python-format
-msgid "Could not set role in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1398
+#, python-brace-format
+msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1411
-#, python-format
-msgid "Could not set type in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1402
+#, python-brace-format
+msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1416
-#, python-format
-msgid "Could not set mls fields in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1406
+#, python-brace-format
+msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1420
-#, python-format
-msgid "Could not set ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1411
+#, python-brace-format
+msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1424
-#, python-format
-msgid "Could not add ibpkey %s/%s"
+#: ../semanage/seobject.py:1415
+#, python-brace-format
+msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
-#, python-format
-msgid "ibpkey %s/%s is not defined"
+#: ../semanage/seobject.py:1419
+#, python-brace-format
+msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1457
-#, python-format
-msgid "Could not query ibpkey %s/%s"
+#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1468
-#, python-format
-msgid "Could not modify ibpkey %s/%s"
+#: ../semanage/seobject.py:1452
+#, python-brace-format
+msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1481
+#: ../semanage/seobject.py:1463
+#, python-brace-format
+msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1476
msgid "Could not list the ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1496
+#: ../semanage/seobject.py:1491
#, python-format
msgid "Could not delete the ibpkey %s"
msgstr ""
-#: ../semanage/seobject.py:1513
-#, python-format
-msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1508
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1517
-#, python-format
-msgid "Could not delete ibpkey %s/%s"
+#: ../semanage/seobject.py:1512
+#, python-brace-format
+msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
+#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
msgid "Could not list ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "SELinux IB Pkey Type"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Subnet_Prefix"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Pkey Number"
msgstr ""
-#: ../semanage/seobject.py:1611
+#: ../semanage/seobject.py:1606
msgid "IB device name is required"
msgstr ""
-#: ../semanage/seobject.py:1616
+#: ../semanage/seobject.py:1611
msgid "Invalid Port Number"
msgstr ""
-#: ../semanage/seobject.py:1620
-#, python-format
-msgid "Could not create a key for ibendport %s/%s"
+#: ../semanage/seobject.py:1615
+#, python-brace-format
+msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
+#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
#, python-format
msgid "Type %s is invalid, must be an ibendport type"
msgstr ""
-#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
-#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
-#, python-format
-msgid "Could not check if ibendport %s/%s is defined"
+#: ../semanage/seobject.py:1636
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1643
-#, python-format
-msgid "ibendport %s/%s already defined"
+#: ../semanage/seobject.py:1638
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1647
-#, python-format
-msgid "Could not create ibendport for %s/%s"
+#: ../semanage/seobject.py:1642
+#, python-brace-format
+msgid "Could not create ibendport for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1657
-#, python-format
-msgid "Could not set user in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1648
+#, python-brace-format
+msgid "Could not create context for {ibendport}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1661
-#, python-format
-msgid "Could not set role in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1652
+#, python-brace-format
+msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1656
+#, python-brace-format
+msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1660
+#, python-brace-format
+msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
msgstr ""
#: ../semanage/seobject.py:1665
-#, python-format
-msgid "Could not set type in ibendport context for %s/%s"
+#, python-brace-format
+msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1670
-#, python-format
-msgid "Could not set mls fields in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1669
+#, python-brace-format
+msgid "Could not set ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1674
-#, python-format
-msgid "Could not set ibendport context for %s/%s"
+#: ../semanage/seobject.py:1673
+#, python-brace-format
+msgid "Could not add ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1678
-#, python-format
-msgid "Could not add ibendport %s/%s"
+#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
+#: ../semanage/seobject.py:1758
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
msgstr ""
-#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
-#, python-format
-msgid "ibendport %s/%s is not defined"
+#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{ibendport} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1711
-#, python-format
-msgid "Could not query ibendport %s/%s"
+#: ../semanage/seobject.py:1706
+#, python-brace-format
+msgid "Could not query ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1722
-#, python-format
-msgid "Could not modify ibendport %s/%s"
+#: ../semanage/seobject.py:1717
+#, python-brace-format
+msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1735
+#: ../semanage/seobject.py:1730
msgid "Could not list the ibendports"
msgstr ""
-#: ../semanage/seobject.py:1744
-#, python-format
-msgid "Could not create a key for %s/%d"
+#: ../semanage/seobject.py:1739
+#, python-brace-format
+msgid "Could not create a key for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1748
-#, python-format
-msgid "Could not delete the ibendport %s/%d"
+#: ../semanage/seobject.py:1743
+#, python-brace-format
+msgid "Could not delete the ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1765
-#, python-format
-msgid "ibendport %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1760
+#, python-brace-format
+msgid ""
+"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1769
-#, python-format
-msgid "Could not delete ibendport %s/%s"
+#: ../semanage/seobject.py:1764
+#, python-brace-format
+msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
+#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
msgid "Could not list ibendports"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "SELinux IB End Port Type"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "IB Device Name"
msgstr ""
-#: ../semanage/seobject.py:1861
+#: ../semanage/seobject.py:1856
msgid "Node Address is required"
msgstr ""
-#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
+#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
msgid "Unknown or missing protocol"
msgstr ""
-#: ../semanage/seobject.py:1899
+#: ../semanage/seobject.py:1894
msgid "SELinux node type is required"
msgstr ""
-#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
+#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
#, python-format
msgid "Type %s is invalid, must be a node type"
msgstr ""
-#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
-#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
-#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
-#: ../semanage/seobject.py:2435
+#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
+#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
+#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
+#: ../semanage/seobject.py:2430
#, python-format
msgid "Could not create key for %s"
msgstr ""
-#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
-#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
+#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
+#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
#, python-format
msgid "Could not check if addr %s is defined"
msgstr ""
-#: ../semanage/seobject.py:1914
+#: ../semanage/seobject.py:1909
#, python-format
msgid "Addr %s already defined"
msgstr ""
-#: ../semanage/seobject.py:1918
+#: ../semanage/seobject.py:1913
#, python-format
msgid "Could not create addr for %s"
msgstr ""
-#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
-#: ../semanage/seobject.py:2389
+#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2384
#, python-format
msgid "Could not create context for %s"
msgstr ""
-#: ../semanage/seobject.py:1928
+#: ../semanage/seobject.py:1923
#, python-format
msgid "Could not set mask for %s"
msgstr ""
-#: ../semanage/seobject.py:1932
+#: ../semanage/seobject.py:1927
#, python-format
msgid "Could not set user in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1936
+#: ../semanage/seobject.py:1931
#, python-format
msgid "Could not set role in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1940
+#: ../semanage/seobject.py:1935
#, python-format
msgid "Could not set type in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1945
+#: ../semanage/seobject.py:1940
#, python-format
msgid "Could not set mls fields in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1949
+#: ../semanage/seobject.py:1944
#, python-format
msgid "Could not set addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1953
+#: ../semanage/seobject.py:1948
#, python-format
msgid "Could not add addr %s"
msgstr ""
-#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
+#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
#, python-format
msgid "Addr %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:1989
+#: ../semanage/seobject.py:1984
#, python-format
msgid "Could not query addr %s"
msgstr ""
-#: ../semanage/seobject.py:1999
+#: ../semanage/seobject.py:1994
#, python-format
msgid "Could not modify addr %s"
msgstr ""
-#: ../semanage/seobject.py:2028
+#: ../semanage/seobject.py:2023
#, python-format
msgid "Addr %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2032
+#: ../semanage/seobject.py:2027
#, python-format
msgid "Could not delete addr %s"
msgstr ""
-#: ../semanage/seobject.py:2046
+#: ../semanage/seobject.py:2041
msgid "Could not deleteall node mappings"
msgstr ""
-#: ../semanage/seobject.py:2060
+#: ../semanage/seobject.py:2055
msgid "Could not list addrs"
msgstr ""
-#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
+#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
msgid "SELinux Type is required"
msgstr ""
-#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
-#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
+#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
+#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
#, python-format
msgid "Could not check if interface %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2123
+#: ../semanage/seobject.py:2118
#, python-format
msgid "Interface %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2122
#, python-format
msgid "Could not create interface for %s"
msgstr ""
-#: ../semanage/seobject.py:2136
+#: ../semanage/seobject.py:2131
#, python-format
msgid "Could not set user in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2140
+#: ../semanage/seobject.py:2135
#, python-format
msgid "Could not set role in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2144
+#: ../semanage/seobject.py:2139
#, python-format
msgid "Could not set type in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2149
+#: ../semanage/seobject.py:2144
#, python-format
msgid "Could not set mls fields in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2153
+#: ../semanage/seobject.py:2148
#, python-format
msgid "Could not set interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2157
+#: ../semanage/seobject.py:2152
#, python-format
msgid "Could not set message context for %s"
msgstr ""
-#: ../semanage/seobject.py:2161
+#: ../semanage/seobject.py:2156
#, python-format
msgid "Could not add interface %s"
msgstr ""
-#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
+#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
#, python-format
msgid "Interface %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2190
+#: ../semanage/seobject.py:2185
#, python-format
msgid "Could not query interface %s"
msgstr ""
-#: ../semanage/seobject.py:2201
+#: ../semanage/seobject.py:2196
#, python-format
msgid "Could not modify interface %s"
msgstr ""
-#: ../semanage/seobject.py:2228
+#: ../semanage/seobject.py:2223
#, python-format
msgid "Interface %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2232
+#: ../semanage/seobject.py:2227
#, python-format
msgid "Could not delete interface %s"
msgstr ""
-#: ../semanage/seobject.py:2246
+#: ../semanage/seobject.py:2241
msgid "Could not delete all interface mappings"
msgstr ""
-#: ../semanage/seobject.py:2260
+#: ../semanage/seobject.py:2255
msgid "Could not list interfaces"
msgstr ""
-#: ../semanage/seobject.py:2285
+#: ../semanage/seobject.py:2280
msgid "SELinux Interface"
msgstr ""
-#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
msgid "Context"
msgstr ""
-#: ../semanage/seobject.py:2355
+#: ../semanage/seobject.py:2350
#, python-format
msgid "Target %s is not valid. Target is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2358
+#: ../semanage/seobject.py:2353
#, python-format
msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2361
+#: ../semanage/seobject.py:2356
#, python-format
msgid "Equivalence class for %s already exists"
msgstr ""
-#: ../semanage/seobject.py:2367
+#: ../semanage/seobject.py:2362
#, python-format
msgid "File spec %s conflicts with equivalency rule '%s %s'"
msgstr ""
-#: ../semanage/seobject.py:2378
+#: ../semanage/seobject.py:2373
#, python-format
msgid "Equivalence class for %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:2395
+#: ../semanage/seobject.py:2390
#, python-format
msgid "Could not set user in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2399
+#: ../semanage/seobject.py:2394
#, python-format
msgid "Could not set role in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
+#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
#, python-format
msgid "Could not set mls fields in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2410
+#: ../semanage/seobject.py:2405
msgid "Invalid file specification"
msgstr ""
-#: ../semanage/seobject.py:2412
+#: ../semanage/seobject.py:2407
msgid "File specification can not include spaces"
msgstr ""
-#: ../semanage/seobject.py:2417
+#: ../semanage/seobject.py:2412
#, python-format
msgid ""
"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
msgstr ""
-#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
+#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
#, python-format
msgid "Type %s is invalid, must be a file or device type"
msgstr ""
-#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
-#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
-#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
+#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
+#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
+#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
#, python-format
msgid "Could not check if file context for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2447
+#: ../semanage/seobject.py:2442
#, python-format
msgid "File context for %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2451
+#: ../semanage/seobject.py:2446
#, python-format
msgid "Could not create file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2459
+#: ../semanage/seobject.py:2454
#, python-format
msgid "Could not set type in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
-#: ../semanage/seobject.py:2543
+#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
+#: ../semanage/seobject.py:2538
#, python-format
msgid "Could not set file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2473
+#: ../semanage/seobject.py:2468
#, python-format
msgid "Could not add file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2492
+#: ../semanage/seobject.py:2487
msgid "Requires setype, serange or seuser"
msgstr ""
-#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
+#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
#, python-format
msgid "Could not query file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
+#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
#, python-format
msgid "File context for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2547
+#: ../semanage/seobject.py:2542
#, python-format
msgid "Could not modify file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2565
+#: ../semanage/seobject.py:2560
msgid "Could not list the file contexts"
msgstr ""
-#: ../semanage/seobject.py:2579
+#: ../semanage/seobject.py:2574
#, python-format
msgid "Could not delete the file context %s"
msgstr ""
-#: ../semanage/seobject.py:2609
+#: ../semanage/seobject.py:2604
#, python-format
msgid "File context for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2615
+#: ../semanage/seobject.py:2610
#, python-format
msgid "Could not delete file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2632
+#: ../semanage/seobject.py:2627
msgid "Could not list file contexts"
msgstr ""
-#: ../semanage/seobject.py:2636
+#: ../semanage/seobject.py:2631
msgid "Could not list file contexts for home directories"
msgstr ""
-#: ../semanage/seobject.py:2640
+#: ../semanage/seobject.py:2635
msgid "Could not list local file contexts"
msgstr ""
-#: ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2672
msgid "SELinux fcontext"
msgstr ""
-#: ../semanage/seobject.py:2690
+#: ../semanage/seobject.py:2685
msgid ""
"\n"
"SELinux Distribution fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2695
+#: ../semanage/seobject.py:2690
msgid ""
"\n"
"SELinux Local fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
-#: ../semanage/seobject.py:2790
+#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
+#: ../semanage/seobject.py:2785
#, python-format
msgid "Could not check if boolean %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
+#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
#, python-format
msgid "Boolean %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2739
+#: ../semanage/seobject.py:2734
#, python-format
msgid "Could not query file context %s"
msgstr ""
-#: ../semanage/seobject.py:2744
+#: ../semanage/seobject.py:2739
#, python-format
msgid "You must specify one of the following values: %s"
msgstr ""
-#: ../semanage/seobject.py:2749
+#: ../semanage/seobject.py:2744
#, python-format
msgid "Could not set active value of boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2752
+#: ../semanage/seobject.py:2747
#, python-format
msgid "Could not modify boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2768
-#, python-format
-msgid "Bad format %s: Record %s"
+#: ../semanage/seobject.py:2763
+#, python-brace-format
+msgid "Bad format {filename}: Record {record}"
msgstr ""
-#: ../semanage/seobject.py:2792
+#: ../semanage/seobject.py:2787
#, python-format
msgid "Boolean %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2796
+#: ../semanage/seobject.py:2791
#, python-format
msgid "Could not delete boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
+#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
msgid "Could not list booleans"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "off"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "on"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "SELinux boolean"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "State"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "Default"
msgstr ""
-#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
+#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
#: ../sepolicy/sepolicy/sepolicy.glade:2510
#: ../sepolicy/sepolicy/sepolicy.glade:5099
msgid "Description"
@@ -1555,151 +1566,151 @@ msgstr ""
msgid "Missing interface definition for %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:140
+#: ../sepolicy/sepolicy/generate.py:138
msgid "Standard Init Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:141
+#: ../sepolicy/sepolicy/generate.py:139
msgid "DBUS System Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:142
+#: ../sepolicy/sepolicy/generate.py:140
msgid "Internet Services Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:143
+#: ../sepolicy/sepolicy/generate.py:141
msgid "Web Application/Script (CGI)"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:144
+#: ../sepolicy/sepolicy/generate.py:142
msgid "Sandbox"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:145
+#: ../sepolicy/sepolicy/generate.py:143
msgid "User Application"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:146
+#: ../sepolicy/sepolicy/generate.py:144
msgid "Existing Domain Type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:147
+#: ../sepolicy/sepolicy/generate.py:145
msgid "Minimal Terminal Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:148
+#: ../sepolicy/sepolicy/generate.py:146
msgid "Minimal X Windows Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:149
+#: ../sepolicy/sepolicy/generate.py:147
msgid "Desktop Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:150
+#: ../sepolicy/sepolicy/generate.py:148
msgid "Administrator Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:151
+#: ../sepolicy/sepolicy/generate.py:149
msgid "Confined Root Administrator Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:152
+#: ../sepolicy/sepolicy/generate.py:150
msgid "Module information for a new type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:158
+#: ../sepolicy/sepolicy/generate.py:156
msgid "Valid Types:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:193
+#: ../sepolicy/sepolicy/generate.py:191
#, python-format
msgid "Ports must be numbers or ranges of numbers from 1 to %d "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:205
+#: ../sepolicy/sepolicy/generate.py:203
msgid "You must enter a valid policy type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:208
+#: ../sepolicy/sepolicy/generate.py:206
#, python-format
msgid "You must enter a name for your policy module for your '%s'."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:346
+#: ../sepolicy/sepolicy/generate.py:344
msgid ""
"Name must be alphanumeric with no spaces. Consider using option \"-n "
"MODULENAME\""
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:438
+#: ../sepolicy/sepolicy/generate.py:436
msgid "User Role types can not be assigned executables."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:444
+#: ../sepolicy/sepolicy/generate.py:442
msgid "Only Daemon apps can use an init script."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:462
+#: ../sepolicy/sepolicy/generate.py:460
msgid "use_resolve must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:468
+#: ../sepolicy/sepolicy/generate.py:466
msgid "use_syslog must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:474
+#: ../sepolicy/sepolicy/generate.py:472
msgid "use_kerberos must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:480
+#: ../sepolicy/sepolicy/generate.py:478
msgid "manage_krb5_rcache must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:510
+#: ../sepolicy/sepolicy/generate.py:508
msgid "USER Types automatically get a tmp type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:847
+#: ../sepolicy/sepolicy/generate.py:845
#, python-format
msgid "'%s' policy modules require existing domains"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:872
+#: ../sepolicy/sepolicy/generate.py:870
msgid "Type field required"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:885
+#: ../sepolicy/sepolicy/generate.py:883
#, python-format
msgid ""
"You need to define a new type which ends with: \n"
" %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1113
+#: ../sepolicy/sepolicy/generate.py:1111
msgid "You must enter the executable path for your confined process"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1378
+#: ../sepolicy/sepolicy/generate.py:1376
msgid "Created the following files:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1379
+#: ../sepolicy/sepolicy/generate.py:1377
msgid "Type Enforcement file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1380
+#: ../sepolicy/sepolicy/generate.py:1378
msgid "Interface file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1381
+#: ../sepolicy/sepolicy/generate.py:1379
msgid "File Contexts file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1383
+#: ../sepolicy/sepolicy/generate.py:1381
msgid "Spec file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1384
+#: ../sepolicy/sepolicy/generate.py:1382
msgid "Setup Script"
msgstr ""
@@ -2367,29 +2378,29 @@ msgstr ""
msgid "named pipe"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:148
+#: ../sepolicy/sepolicy/__init__.py:149
msgid "No SELinux Policy installed"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:184
+#: ../sepolicy/sepolicy/__init__.py:185
#, python-format
msgid "Failed to read %s policy file"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:470
+#: ../sepolicy/sepolicy/__init__.py:471
#, python-format
msgid "-- Allowed %s [ %s ]"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:896
+#: ../sepolicy/sepolicy/__init__.py:897
msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1221
+#: ../sepolicy/sepolicy/__init__.py:1230
msgid "unknown"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1230
+#: ../sepolicy/sepolicy/__init__.py:1239
#, python-brace-format
msgid "Allow {subject} to {rest}"
msgstr ""
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* (no subject)
2023-06-13 9:42 ` [PATCH v3 4/4] python: update python.pot Petr Lautrbach
@ 2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 1/4] python: improve format strings for proper localization Petr Lautrbach
` (3 more replies)
0 siblings, 4 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 11:20 UTC (permalink / raw)
To: selinux; +Cc: vmojzis
Fixed missing ')' in 1/4:
python/chcat/chcat:125 print(_("{target} is already in {category}").format(target=f, category=orig)
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v4 1/4] python: improve format strings for proper localization
2023-06-13 11:20 ` Petr Lautrbach
@ 2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 2/4] python: Drop hard formating from localized strings Petr Lautrbach
` (2 subsequent siblings)
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 11:20 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
If a string contains more than one unnamed argument it's hard for
translators to proper localize as they don't know which value is
represented by a unnamed argument. It also blocks them to use a
different order of arguments which would make better sense in other
languages.
Fixes:
$ xgettext --default-domain=python -L Python --keyword=_ --keyword=N_ ../audit2allow/audit2allow ../chcat/chcat ../semanage/semanage ../semanage/seobject.py ../sepolgen/src/sepolgen/interfaces.py ../sepolicy/sepolicy/generate.py ../sepolicy/sepolicy/gui.py ../sepolicy/sepolicy/__init__.py ../sepolicy/sepolicy/interface.py ../sepolicy/sepolicy.py
../chcat/chcat:220: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
../semanage/seobject.py:1178: warning: 'msgid' format string with unnamed arguments cannot be properly localized:
The translator cannot reorder the arguments.
Please consider using a format string with named arguments,
and a mapping instead of a tuple for the arguments.
...
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/chcat/chcat | 6 +-
python/semanage/seobject.py | 130 ++++++++++++++++++------------------
2 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/python/chcat/chcat b/python/chcat/chcat
index 68718ec5f102..c4f592291821 100755
--- a/python/chcat/chcat
+++ b/python/chcat/chcat
@@ -125,7 +125,7 @@ def chcat_add(orig, newcat, objects, login_ind):
if len(clist) > 1:
if cat in clist[1:]:
- print(_("%s is already in %s") % (f, orig))
+ print(_("{target} is already in {category}").format(target=f, category=orig))
continue
clist.append(cat)
cats = clist[1:]
@@ -207,7 +207,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
if len(clist) > 1:
if cat not in clist[1:]:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
clist.remove(cat)
if len(clist) > 1:
@@ -217,7 +217,7 @@ def chcat_remove(orig, newcat, objects, login_ind):
else:
cat = ""
else:
- print(_("%s is not in %s") % (f, orig))
+ print(_("{target} is not in {category}").format(target=f, category=orig))
continue
if len(cat) == 0:
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index d82da4942987..2b1eb44ce8a3 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -843,7 +843,7 @@ class seluserRecords(semanageRecords):
for r in roles:
rc = semanage_user_add_role(self.sh, u, r)
if rc < 0:
- raise ValueError(_("Could not add role %s for %s") % (r, name))
+ raise ValueError(_("Could not add role {role} for {name}").format(role=r, name=name))
if is_mls_enabled == 1:
rc = semanage_user_set_mlsrange(self.sh, u, serange)
@@ -855,7 +855,7 @@ class seluserRecords(semanageRecords):
raise ValueError(_("Could not set MLS level for %s") % name)
rc = semanage_user_set_prefix(self.sh, u, prefix)
if rc < 0:
- raise ValueError(_("Could not add prefix %s for %s") % (r, prefix))
+ raise ValueError(_("Could not add prefix {prefix} for {role}").format(role=r, prefix=prefix))
(rc, key) = semanage_user_key_extract(self.sh, u)
if rc < 0:
raise ValueError(_("Could not extract key for %s") % name)
@@ -1088,7 +1088,7 @@ class portRecords(semanageRecords):
(rc, k) = semanage_port_key_create(self.sh, low, high, proto_d)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create a key for {proto}/{port}").format(proto=proto, port=port))
return (k, proto_d, low, high)
def __add(self, port, proto, serange, type):
@@ -1110,44 +1110,44 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if exists:
- raise ValueError(_("Port %s/%s already defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} already defined").format(proto=proto, port=port))
(rc, p) = semanage_port_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create port for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create port for {proto}/{port}").format(proto=proto, port=port))
semanage_port_set_proto(p, proto_d)
semanage_port_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not create context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set user in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set role in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set type in port context for {proto}/{port}").format(proto=proto, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set mls fields in port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_port_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set port context for %s/%s") % (proto, port))
+ raise ValueError(_("Could not set port context for {proto}/{port}").format(proto=proto, port=port))
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add port %s/%s") % (proto, port))
+ raise ValueError(_("Could not add port {proto}/{port}").format(proto=proto, port=port))
semanage_context_free(con)
semanage_port_key_free(k)
@@ -1175,13 +1175,13 @@ class portRecords(semanageRecords):
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, p) = semanage_port_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query port %s/%s") % (proto, port))
+ raise ValueError(_("Could not query port {proto}/{port}").format(proto=proto, port=port))
con = semanage_port_get_con(p)
@@ -1195,7 +1195,7 @@ class portRecords(semanageRecords):
rc = semanage_port_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify port %s/%s") % (proto, port))
+ raise ValueError(_("Could not modify port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
semanage_port_free(p)
@@ -1241,19 +1241,19 @@ class portRecords(semanageRecords):
(k, proto_d, low, high) = self.__genkey(port, proto)
(rc, exists) = semanage_port_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is not defined") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is not defined").format(proto=proto, port=port))
(rc, exists) = semanage_port_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if port %s/%s is defined") % (proto, port))
+ raise ValueError(_("Could not check if port {proto}/{port} is defined").format(proto=proto, port=port))
if not exists:
- raise ValueError(_("Port %s/%s is defined in policy, cannot be deleted") % (proto, port))
+ raise ValueError(_("Port {proto}/{port} is defined in policy, cannot be deleted").format(proto=proto, port=port))
rc = semanage_port_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete port %s/%s") % (proto, port))
+ raise ValueError(_("Could not delete port {proto}/{port}").format(proto=proto, port=port))
semanage_port_key_free(k)
@@ -1362,7 +1362,7 @@ class ibpkeyRecords(semanageRecords):
(rc, k) = semanage_ibpkey_key_create(self.sh, subnet_prefix, low, high)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create a key for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
return (k, subnet_prefix, low, high)
def __add(self, pkey, subnet_prefix, serange, type):
@@ -1384,44 +1384,44 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").formnat(subnet_prefix=subnet_prefix, pkey=pkey))
if exists:
- raise ValueError(_("ibpkey %s/%s already defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} already defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibpkey for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create ibpkey for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_set_subnet_prefix(self.sh, p, subnet_prefix)
semanage_ibpkey_set_range(p, low, high)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not create context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set user in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set role in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set type in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibpkey context for %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not set ibpkey context for {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not add ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_context_free(con)
semanage_ibpkey_key_free(k)
@@ -1448,13 +1448,13 @@ class ibpkeyRecords(semanageRecords):
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, p) = semanage_ibpkey_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not query ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
con = semanage_ibpkey_get_con(p)
@@ -1465,7 +1465,7 @@ class ibpkeyRecords(semanageRecords):
rc = semanage_ibpkey_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not modify ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
semanage_ibpkey_free(p)
@@ -1502,19 +1502,19 @@ class ibpkeyRecords(semanageRecords):
(k, subnet_prefix, low, high) = self.__genkey(pkey, subnet_prefix)
(rc, exists) = semanage_ibpkey_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is not defined") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is not defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
(rc, exists) = semanage_ibpkey_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibpkey %s/%s is defined") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not check if ibpkey {subnet_prefix}/{pkey} is defined").format(subnet_prefix=subnet_prefix, pkey=pkey))
if not exists:
- raise ValueError(_("ibpkey %s/%s is defined in policy, cannot be deleted") % (subnet_prefix, pkey))
+ raise ValueError(_("ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted").format(subnet_prefix=subnet_prefix, pkey=pkey))
rc = semanage_ibpkey_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibpkey %s/%s") % (subnet_prefix, pkey))
+ raise ValueError(_("Could not delete ibpkey {subnet_prefix}/{pkey}").format(subnet_prefix=subnet_prefix, pkey=pkey))
semanage_ibpkey_key_free(k)
@@ -1617,7 +1617,7 @@ class ibendportRecords(semanageRecords):
(rc, k) = semanage_ibendport_key_create(self.sh, ibdev_name, port)
if rc < 0:
- raise ValueError(_("Could not create a key for ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not create a key for ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
return (k, ibdev_name, port)
def __add(self, ibendport, ibdev_name, serange, type):
@@ -1638,44 +1638,44 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, port))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{port} is defined").format(ibdev_name=ibdev_name, port=port))
if exists:
- raise ValueError(_("ibendport %s/%s already defined") % (ibdev_name, port))
+ raise ValueError(_("ibendport {ibdev_name}/{port} already defined").format(ibdev_name=ibdev_name, port=port))
(rc, p) = semanage_ibendport_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create ibendport for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create ibendport for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_set_ibdev_name(self.sh, p, ibdev_name)
semanage_ibendport_set_port(p, port)
(rc, con) = semanage_context_create(self.sh)
if rc < 0:
- raise ValueError(_("Could not create context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not create context for {ibendport}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_user(self.sh, con, "system_u")
if rc < 0:
- raise ValueError(_("Could not set user in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set user in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_role(self.sh, con, "object_r")
if rc < 0:
- raise ValueError(_("Could not set role in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set role in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_context_set_type(self.sh, con, type)
if rc < 0:
- raise ValueError(_("Could not set type in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set type in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
if (is_mls_enabled == 1) and (serange != ""):
rc = semanage_context_set_mls(self.sh, con, serange)
if rc < 0:
- raise ValueError(_("Could not set mls fields in ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set mls fields in ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_set_con(self.sh, p, con)
if rc < 0:
- raise ValueError(_("Could not set ibendport context for %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not set ibendport context for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not add ibendport %s/%s") % (ibdev_name, port))
+ raise ValueError(_("Could not add ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_context_free(con)
semanage_ibendport_key_free(k)
@@ -1702,13 +1702,13 @@ class ibendportRecords(semanageRecords):
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, p) = semanage_ibendport_query(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not query ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not query ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
con = semanage_ibendport_get_con(p)
@@ -1719,7 +1719,7 @@ class ibendportRecords(semanageRecords):
rc = semanage_ibendport_modify_local(self.sh, k, p)
if rc < 0:
- raise ValueError(_("Could not modify ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not modify ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
semanage_ibendport_free(p)
@@ -1741,11 +1741,11 @@ class ibendportRecords(semanageRecords):
port = semanage_ibendport_get_port(ibendport)
(k, ibdev_name, port) = self.__genkey(str(port), ibdev_name)
if rc < 0:
- raise ValueError(_("Could not create a key for %s/%d") % (ibdevname, port))
+ raise ValueError(_("Could not create a key for {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete the ibendport %s/%d") % (ibdev_name, port))
+ raise ValueError(_("Could not delete the ibendport {ibdev_name}/{port}").format(ibdev_name=ibdev_name, port=port))
semanage_ibendport_key_free(k)
self.commit()
@@ -1754,19 +1754,19 @@ class ibendportRecords(semanageRecords):
(k, ibdev_name, port) = self.__genkey(ibendport, ibdev_name)
(rc, exists) = semanage_ibendport_exists(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is not defined") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is not defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
(rc, exists) = semanage_ibendport_exists_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not check if ibendport %s/%s is defined") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not check if ibendport {ibdev_name}/{ibendport} is defined").format(ibdev_name=ibdev_name, ibendport=ibendport))
if not exists:
- raise ValueError(_("ibendport %s/%s is defined in policy, cannot be deleted") % (ibdev_name, ibendport))
+ raise ValueError(_("ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted").format(ibdev_name=ibdev_name, ibendport=ibendport))
rc = semanage_ibendport_del_local(self.sh, k)
if rc < 0:
- raise ValueError(_("Could not delete ibendport %s/%s") % (ibdev_name, ibendport))
+ raise ValueError(_("Could not delete ibendport {ibdev_name}/{ibendport}").format(ibdev_name=ibdev_name, ibendport=ibendport))
semanage_ibendport_key_free(k)
@@ -2765,7 +2765,7 @@ class booleanRecords(semanageRecords):
try:
boolname, val = b.split("=")
except ValueError:
- raise ValueError(_("Bad format %s: Record %s" % (name, b)))
+ raise ValueError(_("Bad format {filename}: Record {record}").format(filename=name, record=b))
self.__mod(boolname.strip(), val.strip())
fd.close()
else:
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v4 2/4] python: Drop hard formating from localized strings
2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 1/4] python: improve format strings for proper localization Petr Lautrbach
@ 2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 4/4] python: update python.pot Petr Lautrbach
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 11:20 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
It confuses translators and new lines are dropped by parser module anyway.
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/audit2allow/audit2allow | 14 ++++++--
python/semanage/semanage | 60 +++++++++++++---------------------
2 files changed, 34 insertions(+), 40 deletions(-)
diff --git a/python/audit2allow/audit2allow b/python/audit2allow/audit2allow
index 5587a2dbb006..35b0b151ac86 100644
--- a/python/audit2allow/audit2allow
+++ b/python/audit2allow/audit2allow
@@ -234,9 +234,17 @@ class AuditToPolicy:
print(e)
sys.exit(1)
- sys.stdout.write(_("******************** IMPORTANT ***********************\n"))
- sys.stdout.write((_("To make this policy package active, execute:" +
- "\n\nsemodule -i %s\n\n") % packagename))
+ sys.stdout.write(
+"""******************** {important} ***********************
+{text}
+
+semodule -i {packagename}
+
+""".format(
+ important=_("IMPORTANT"),
+ text=_("To make this policy package active, execute:"),
+ packagename=packagename
+))
def __output_audit2why(self):
import selinux
diff --git a/python/semanage/semanage b/python/semanage/semanage
index e0bd98a95c77..4fdb490f7df4 100644
--- a/python/semanage/semanage
+++ b/python/semanage/semanage
@@ -238,30 +238,22 @@ def parser_add_level(parser, name):
def parser_add_range(parser, name):
- parser.add_argument('-r', '--range', default='',
- help=_('''
-MLS/MCS Security Range (MLS/MCS Systems only)
-SELinux Range for SELinux login mapping
-defaults to the SELinux user record range.
-SELinux Range for SELinux user defaults to s0.
-'''))
+ parser.add_argument('-r', '--range', default='', help=_(
+ "MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux login mapping defaults to the SELinux user record range. \
+SELinux Range for SELinux user defaults to s0."
+ ))
def parser_add_proto(parser, name):
- parser.add_argument('-p', '--proto', help=_('''
- Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol
- version for the specified node (ipv4|ipv6).
-'''))
+ parser.add_argument('-p', '--proto', help=_(
+ "Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol version for the specified node (ipv4|ipv6)."
+ ))
def parser_add_subnet_prefix(parser, name):
- parser.add_argument('-x', '--subnet_prefix', help=_('''
- Subnet prefix for the specified infiniband ibpkey.
-'''))
+ parser.add_argument('-x', '--subnet_prefix', help=_('Subnet prefix for the specified infiniband ibpkey.'))
def parser_add_ibdev_name(parser, name):
- parser.add_argument('-z', '--ibdev_name', help=_('''
- Name for the specified infiniband end port.
-'''))
+ parser.add_argument('-z', '--ibdev_name', help=_("Name for the specified infiniband end port."))
def parser_add_modify(parser, name):
parser.add_argument('-m', '--modify', dest='action', action='store_const', const='modify', help=_("Modify a record of the %s object type") % name)
@@ -348,15 +340,6 @@ def handleFcontext(args):
def setupFcontextParser(subparsers):
- ftype_help = '''
-File Type. This is used with fcontext. Requires a file type
-as shown in the mode field by ls, e.g. use d to match only
-directories or f to match only regular files. The following
-file type options can be passed:
-f (regular file),d (directory),c (character device),
-b (block device),s (socket),l (symbolic link),p (named pipe)
-If you do not specify a file type, the file type will default to "all files".
-'''
generate_usage = generate_custom_usage(usage_fcontext, usage_fcontext_dict)
fcontextParser = subparsers.add_parser('fcontext', usage=generate_usage, help=_("Manage file context mapping definitions"))
parser_add_locallist(fcontextParser, "fcontext")
@@ -372,11 +355,16 @@ If you do not specify a file type, the file type will default to "all files".
parser_add_extract(fcontext_action, "fcontext")
parser_add_deleteall(fcontext_action, "fcontext")
- fcontextParser.add_argument('-e', '--equal', help=_('''Substitute target path with sourcepath when generating default
- label. This is used with fcontext. Requires source and target
- path arguments. The context labeling for the target subtree is
- made equivalent to that defined for the source.'''))
- fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(ftype_help))
+ fcontextParser.add_argument('-e', '--equal', help=_(
+ 'Substitute target path with sourcepath when generating default label. This is used with fcontext. Requires source and target \
+path arguments. The context labeling for the target subtree is made equivalent to that defined for the source.'
+ ))
+ fcontextParser.add_argument('-f', '--ftype', default="", choices=["a", "f", "d", "c", "b", "s", "l", "p"], help=_(
+ 'File Type. This is used with fcontext. Requires a file type as shown in the mode field by ls, e.g. use d to match only \
+directories or f to match only regular files. The following file type options can be passed: f (regular file), d (directory), \
+c (character device), b (block device), s (socket), l (symbolic link), p (named pipe). \
+If you do not specify a file type, the file type will default to "all files".'
+ ))
parser_add_seuser(fcontextParser, "fcontext")
parser_add_type(fcontextParser, "fcontext")
parser_add_range(fcontextParser, "fcontext")
@@ -426,9 +414,7 @@ def setupUserParser(subparsers):
parser_add_range(userParser, "user")
userParser.add_argument('-R', '--roles', default=[],
action=CheckRole,
- help=_('''
-SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times.
-'''))
+ help=_("SELinux Roles. You must enclose multiple roles within quotes, separate by spaces. Or specify -R multiple times."))
userParser.add_argument('-P', '--prefix', default="user", help=argparse.SUPPRESS)
userParser.add_argument('selinux_name', nargs='?', default=None, help=_('selinux_name'))
userParser.set_defaults(func=handleUser)
@@ -901,9 +887,9 @@ def setupImportParser(subparsers):
def createCommandParser():
commandParser = seParser(prog='semanage',
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- description='''semanage is used to configure certain elements
- of SELinux policy with-out requiring modification
- to or recompilation from policy source.''')
+ description=_(
+ "semanage is used to configure certain elements of SELinux policy with-out requiring modification or recompilation from policy source."
+ ))
#To add a new subcommand define the parser for it in a function above and call it here.
subparsers = commandParser.add_subparsers(dest='subcommand')
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v4 3/4] semanage: Drop unnecessary import from seobject
2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 2/4] python: Drop hard formating from localized strings Petr Lautrbach
@ 2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 4/4] python: update python.pot Petr Lautrbach
3 siblings, 0 replies; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 11:20 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
sepolgen.module is not used for permissive domains
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/semanage/seobject.py | 5 -----
1 file changed, 5 deletions(-)
diff --git a/python/semanage/seobject.py b/python/semanage/seobject.py
index 2b1eb44ce8a3..361205d11c10 100644
--- a/python/semanage/seobject.py
+++ b/python/semanage/seobject.py
@@ -504,11 +504,6 @@ class permissiveRecords(semanageRecords):
print(t)
def add(self, type):
- try:
- import sepolgen.module as module
- except ImportError:
- raise ValueError(_("The sepolgen python module is required to setup permissive domains.\nIn some distributions it is included in the policycoreutils-devel package.\n# yum install policycoreutils-devel\nOr similar for your distro."))
-
name = "permissive_%s" % type
modtxt = "(typepermissive %s)" % type
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v4 4/4] python: update python.pot
2023-06-13 11:20 ` Petr Lautrbach
` (2 preceding siblings ...)
2023-06-13 11:20 ` [PATCH v4 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
@ 2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 12:37 ` Vit Mojzis
3 siblings, 1 reply; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-13 11:20 UTC (permalink / raw)
To: selinux; +Cc: vmojzis, Petr Lautrbach
Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
---
python/po/python.pot | 963 ++++++++++++++++++++++---------------------
1 file changed, 487 insertions(+), 476 deletions(-)
diff --git a/python/po/python.pot b/python/po/python.pot
index 16d04eb0f18e..435a1b764e34 100644
--- a/python/po/python.pot
+++ b/python/po/python.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-01-18 11:57+0100\n"
+"POT-Creation-Date: 2023-06-12 18:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,17 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../audit2allow/audit2allow:239
-msgid "******************** IMPORTANT ***********************\n"
+#: ../audit2allow/audit2allow:244
+msgid "IMPORTANT"
msgstr ""
-#: ../audit2allow/audit2allow:240
-#, python-format
-msgid ""
-"To make this policy package active, execute:\n"
-"\n"
-"semodule -i %s\n"
-"\n"
+#: ../audit2allow/audit2allow:245
+msgid "To make this policy package active, execute:"
msgstr ""
#: ../chcat/chcat:111 ../chcat/chcat:191
@@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
msgstr ""
#: ../chcat/chcat:128
-#, python-format
-msgid "%s is already in %s"
+#, python-brace-format
+msgid "{target} is already in {category}"
msgstr ""
#: ../chcat/chcat:210 ../chcat/chcat:220
-#, python-format
-msgid "%s is not in %s"
+#, python-brace-format
+msgid "{target} is not in {category}"
msgstr ""
#: ../chcat/chcat:291 ../chcat/chcat:296
@@ -152,218 +147,222 @@ msgstr ""
#: ../semanage/semanage:242
msgid ""
-"\n"
-"MLS/MCS Security Range (MLS/MCS Systems only)\n"
-"SELinux Range for SELinux login mapping\n"
-"defaults to the SELinux user record range.\n"
-"SELinux Range for SELinux user defaults to s0.\n"
+"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
+"login mapping defaults to the SELinux user record range. SELinux Range for "
+"SELinux user defaults to s0."
msgstr ""
-#: ../semanage/semanage:251
+#: ../semanage/semanage:249
msgid ""
-"\n"
-" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
-"protocol\n"
-" version for the specified node (ipv4|ipv6).\n"
+"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
+"version for the specified node (ipv4|ipv6)."
msgstr ""
-#: ../semanage/semanage:257
-msgid ""
-"\n"
-" Subnet prefix for the specified infiniband ibpkey.\n"
+#: ../semanage/semanage:253
+msgid "Subnet prefix for the specified infiniband ibpkey."
msgstr ""
-#: ../semanage/semanage:262
-msgid ""
-"\n"
-" Name for the specified infiniband end port.\n"
+#: ../semanage/semanage:256
+msgid "Name for the specified infiniband end port."
msgstr ""
-#: ../semanage/semanage:267
+#: ../semanage/semanage:259
#, python-format
msgid "Modify a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:271
+#: ../semanage/semanage:263
#, python-format
msgid "List records of the %s object type"
msgstr ""
-#: ../semanage/semanage:275
+#: ../semanage/semanage:267
#, python-format
msgid "Delete a record of the %s object type"
msgstr ""
-#: ../semanage/semanage:279
+#: ../semanage/semanage:271
msgid "Extract customizable commands, for use within a transaction"
msgstr ""
-#: ../semanage/semanage:283
+#: ../semanage/semanage:275
#, python-format
msgid "Remove all %s objects local customizations"
msgstr ""
-#: ../semanage/semanage:287
+#: ../semanage/semanage:279
msgid "SELinux user name"
msgstr ""
-#: ../semanage/semanage:292
+#: ../semanage/semanage:284
msgid "Manage login mappings between linux users and SELinux confined users"
msgstr ""
-#: ../semanage/semanage:309
+#: ../semanage/semanage:301
#, python-format
msgid "login_name | %%groupname"
msgstr ""
-#: ../semanage/semanage:361
+#: ../semanage/semanage:344
msgid "Manage file context mapping definitions"
msgstr ""
-#: ../semanage/semanage:375
+#: ../semanage/semanage:359
+msgid ""
+"Substitute target path with sourcepath when generating default label. This "
+"is used with fcontext. Requires source and target path arguments. The "
+"context labeling for the target subtree is made equivalent to that defined "
+"for the source."
+msgstr ""
+
+#: ../semanage/semanage:363
msgid ""
-"Substitute target path with sourcepath when generating default\n"
-" label. "
-"This is used with fcontext. Requires source and target\n"
-" path "
-"arguments. The context labeling for the target subtree is\n"
-" made "
-"equivalent to that defined for the source."
+"File Type. This is used with fcontext. Requires a file type as shown in the "
+"mode field by ls, e.g. use d to match only directories or f to match only "
+"regular files. The following file type options can be passed: f (regular "
+"file), d (directory), c (character device), b (block device), s (socket), l "
+"(symbolic link), p (named pipe). If you do not specify a file type, the file "
+"type will default to \"all files\"."
msgstr ""
-#: ../semanage/semanage:383
+#: ../semanage/semanage:371
msgid ""
"Path to be labeled (may be in the form of a Perl compatible regular "
"expression)"
msgstr ""
-#: ../semanage/semanage:411
+#: ../semanage/semanage:399
msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
msgstr ""
-#: ../semanage/semanage:429
+#: ../semanage/semanage:417
msgid ""
-"\n"
-"SELinux Roles. You must enclose multiple roles within quotes, separate by "
-"spaces. Or specify -R multiple times.\n"
+"SELinux Roles. You must enclose multiple roles within quotes, separate by "
+"spaces. Or specify -R multiple times."
msgstr ""
-#: ../semanage/semanage:433
+#: ../semanage/semanage:419
msgid "selinux_name"
msgstr ""
-#: ../semanage/semanage:461
+#: ../semanage/semanage:447
msgid "Manage network port type definitions"
msgstr ""
-#: ../semanage/semanage:477
+#: ../semanage/semanage:463
msgid "port | port_range"
msgstr ""
-#: ../semanage/semanage:506
+#: ../semanage/semanage:492
msgid "Manage infiniband ibpkey type definitions"
msgstr ""
-#: ../semanage/semanage:522
+#: ../semanage/semanage:508
msgid "pkey | pkey_range"
msgstr ""
-#: ../semanage/semanage:549
+#: ../semanage/semanage:535
msgid "Manage infiniband end port type definitions"
msgstr ""
-#: ../semanage/semanage:565
+#: ../semanage/semanage:551
msgid "ibendport"
msgstr ""
-#: ../semanage/semanage:592
+#: ../semanage/semanage:578
msgid "Manage network interface type definitions"
msgstr ""
-#: ../semanage/semanage:607
+#: ../semanage/semanage:593
msgid "interface_spec"
msgstr ""
-#: ../semanage/semanage:631
+#: ../semanage/semanage:617
msgid "Manage SELinux policy modules"
msgstr ""
-#: ../semanage/semanage:642
+#: ../semanage/semanage:628
msgid "Add a module"
msgstr ""
-#: ../semanage/semanage:643
+#: ../semanage/semanage:629
msgid "Remove a module"
msgstr ""
-#: ../semanage/semanage:644
+#: ../semanage/semanage:630
msgid "Disable a module"
msgstr ""
-#: ../semanage/semanage:645
+#: ../semanage/semanage:631
msgid "Enable a module"
msgstr ""
-#: ../semanage/semanage:672
+#: ../semanage/semanage:658
msgid "Manage network node type definitions"
msgstr ""
-#: ../semanage/semanage:686
+#: ../semanage/semanage:672
msgid "Network Mask"
msgstr ""
-#: ../semanage/semanage:690
+#: ../semanage/semanage:676
msgid "node"
msgstr ""
-#: ../semanage/semanage:715
+#: ../semanage/semanage:701
msgid "Manage booleans to selectively enable functionality"
msgstr ""
-#: ../semanage/semanage:720
+#: ../semanage/semanage:706
msgid "boolean"
msgstr ""
-#: ../semanage/semanage:730
+#: ../semanage/semanage:716
msgid "Enable the boolean"
msgstr ""
-#: ../semanage/semanage:731
+#: ../semanage/semanage:717
msgid "Disable the boolean"
msgstr ""
-#: ../semanage/semanage:752
+#: ../semanage/semanage:738
msgid "semanage permissive: error: the following argument is required: type\n"
msgstr ""
-#: ../semanage/semanage:756
+#: ../semanage/semanage:742
msgid "Manage process type enforcement mode"
msgstr ""
-#: ../semanage/semanage:768 ../semanage/seobject.py:2677
+#: ../semanage/semanage:754 ../semanage/seobject.py:2672
msgid "type"
msgstr ""
-#: ../semanage/semanage:779
+#: ../semanage/semanage:765
msgid "Disable/Enable dontaudit rules in policy"
msgstr ""
-#: ../semanage/semanage:799
+#: ../semanage/semanage:785
msgid "Output local customizations"
msgstr ""
-#: ../semanage/semanage:801
+#: ../semanage/semanage:787
msgid "Output file"
msgstr ""
-#: ../semanage/semanage:894
+#: ../semanage/semanage:880
msgid "Import local customizations"
msgstr ""
-#: ../semanage/semanage:897
+#: ../semanage/semanage:883
msgid "Input file"
msgstr ""
+#: ../semanage/semanage:891
+msgid ""
+"semanage is used to configure certain elements of SELinux policy with-out "
+"requiring modification or recompilation from policy source."
+msgstr ""
+
#: ../semanage/seobject.py:279
msgid "Could not create semanage handle"
msgstr ""
@@ -485,123 +484,115 @@ msgstr ""
msgid "Customized Permissive Types"
msgstr ""
-#: ../semanage/seobject.py:510
-msgid ""
-"The sepolgen python module is required to setup permissive domains.\n"
-"In some distributions it is included in the policycoreutils-devel package.\n"
-"# yum install policycoreutils-devel\n"
-"Or similar for your distro."
-msgstr ""
-
-#: ../semanage/seobject.py:520
+#: ../semanage/seobject.py:515
#, python-format
msgid "Could not set permissive domain %s (module installation failed)"
msgstr ""
-#: ../semanage/seobject.py:526
+#: ../semanage/seobject.py:521
#, python-format
msgid "Could not remove permissive domain %s (remove failed)"
msgstr ""
-#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
-#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
-#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
-#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
-#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
-#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
-#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
+#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
+#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
+#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
+#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
+#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
+#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
+#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
#, python-format
msgid "Could not create a key for %s"
msgstr ""
-#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
-#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
+#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
+#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
#, python-format
msgid "Could not check if login mapping for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:569
+#: ../semanage/seobject.py:564
#, python-format
msgid "Login mapping for %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:574
+#: ../semanage/seobject.py:569
#, python-format
msgid "Linux Group %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:579
+#: ../semanage/seobject.py:574
#, python-format
msgid "Linux User %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:583
+#: ../semanage/seobject.py:578
#, python-format
msgid "Could not create login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
+#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
#, python-format
msgid "Could not set name for %s"
msgstr ""
-#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
+#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
#, python-format
msgid "Could not set MLS range for %s"
msgstr ""
-#: ../semanage/seobject.py:596
+#: ../semanage/seobject.py:591
#, python-format
msgid "Could not set SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:600
+#: ../semanage/seobject.py:595
#, python-format
msgid "Could not add login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:616
+#: ../semanage/seobject.py:611
msgid "Requires seuser or serange"
msgstr ""
-#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
+#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
#, python-format
msgid "Login mapping for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:643
+#: ../semanage/seobject.py:638
#, python-format
msgid "Could not query seuser for %s"
msgstr ""
-#: ../semanage/seobject.py:658
+#: ../semanage/seobject.py:653
#, python-format
msgid "Could not modify login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:690
+#: ../semanage/seobject.py:685
#, python-format
msgid "Login mapping for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:694
+#: ../semanage/seobject.py:689
#, python-format
msgid "Could not delete login mapping for %s"
msgstr ""
-#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
-#: ../semanage/seobject.py:991
+#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
+#: ../semanage/seobject.py:986
msgid "Could not list login mappings"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
#: ../sepolicy/sepolicy/sepolicy.glade:1156
#: ../sepolicy/sepolicy/sepolicy.glade:3138
msgid "Login Name"
msgstr ""
-#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:1182
#: ../sepolicy/sepolicy/sepolicy.glade:3156
#: ../sepolicy/sepolicy/sepolicy.glade:3242
@@ -609,938 +600,958 @@ msgstr ""
msgid "SELinux User"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "MLS/MCS Range"
msgstr ""
-#: ../semanage/seobject.py:772
+#: ../semanage/seobject.py:767
msgid "Service"
msgstr ""
-#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
-#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
-#: ../semanage/seobject.py:958
+#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
+#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
+#: ../semanage/seobject.py:953
#, python-format
msgid "Could not check if SELinux user %s is defined"
msgstr ""
-#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
-#: ../semanage/seobject.py:964
+#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
+#: ../semanage/seobject.py:959
#, python-format
msgid "Could not query user for %s"
msgstr ""
-#: ../semanage/seobject.py:823
+#: ../semanage/seobject.py:818
#, python-format
msgid "You must add at least one role for %s"
msgstr ""
-#: ../semanage/seobject.py:833
+#: ../semanage/seobject.py:828
#, python-format
msgid "SELinux user %s is already defined"
msgstr ""
-#: ../semanage/seobject.py:837
+#: ../semanage/seobject.py:832
#, python-format
msgid "Could not create SELinux user for %s"
msgstr ""
-#: ../semanage/seobject.py:846
-#, python-format
-msgid "Could not add role %s for %s"
+#: ../semanage/seobject.py:841
+#, python-brace-format
+msgid "Could not add role {role} for {name}"
msgstr ""
-#: ../semanage/seobject.py:855
+#: ../semanage/seobject.py:850
#, python-format
msgid "Could not set MLS level for %s"
msgstr ""
-#: ../semanage/seobject.py:858
-#, python-format
-msgid "Could not add prefix %s for %s"
+#: ../semanage/seobject.py:853
+#, python-brace-format
+msgid "Could not add prefix {prefix} for {role}"
msgstr ""
-#: ../semanage/seobject.py:861
+#: ../semanage/seobject.py:856
#, python-format
msgid "Could not extract key for %s"
msgstr ""
-#: ../semanage/seobject.py:865
+#: ../semanage/seobject.py:860
#, python-format
msgid "Could not add SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:886
+#: ../semanage/seobject.py:881
msgid "Requires prefix, roles, level or range"
msgstr ""
-#: ../semanage/seobject.py:888
+#: ../semanage/seobject.py:883
msgid "Requires prefix or roles"
msgstr ""
-#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
+#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
#, python-format
msgid "SELinux user %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:927
+#: ../semanage/seobject.py:922
#, python-format
msgid "Could not modify SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:960
+#: ../semanage/seobject.py:955
#, python-format
msgid "SELinux user %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:971
+#: ../semanage/seobject.py:966
#, python-format
msgid "Could not delete SELinux user %s"
msgstr ""
-#: ../semanage/seobject.py:1009
+#: ../semanage/seobject.py:1004
msgid "Could not list SELinux users"
msgstr ""
-#: ../semanage/seobject.py:1015
+#: ../semanage/seobject.py:1010
#, python-format
msgid "Could not list roles for user %s"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "Labeling"
msgstr ""
-#: ../semanage/seobject.py:1040
+#: ../semanage/seobject.py:1035
msgid "MLS/"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "Prefix"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Level"
msgstr ""
-#: ../semanage/seobject.py:1041
+#: ../semanage/seobject.py:1036
msgid "MCS Range"
msgstr ""
-#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
+#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
#: ../sepolicy/sepolicy/sepolicy.glade:3262
#: ../sepolicy/sepolicy/sepolicy.glade:5233
#: ../sepolicy/sepolicy/sepolicy.glade:5382
msgid "SELinux Roles"
msgstr ""
-#: ../semanage/seobject.py:1071
+#: ../semanage/seobject.py:1066
msgid "Protocol has to be one of udp, tcp, dccp or sctp"
msgstr ""
-#: ../semanage/seobject.py:1073
+#: ../semanage/seobject.py:1068
msgid "Port is required"
msgstr ""
-#: ../semanage/seobject.py:1087
+#: ../semanage/seobject.py:1082
msgid "Invalid Port"
msgstr ""
-#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
-#, python-format
-msgid "Could not create a key for %s/%s"
+#: ../semanage/seobject.py:1086
+#, python-brace-format
+msgid "Could not create a key for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
-#: ../semanage/seobject.py:1631
+#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
+#: ../semanage/seobject.py:1626
msgid "Type is required"
msgstr ""
-#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
+#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
#, python-format
msgid "Type %s is invalid, must be a port type"
msgstr ""
-#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
-#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
-#, python-format
-msgid "Could not check if port %s/%s is defined"
+#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
+#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
+#, python-brace-format
+msgid "Could not check if port {proto}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1115
-#, python-format
-msgid "Port %s/%s already defined"
+#: ../semanage/seobject.py:1110
+#, python-brace-format
+msgid "Port {proto}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1119
-#, python-format
-msgid "Could not create port for %s/%s"
+#: ../semanage/seobject.py:1114
+#, python-brace-format
+msgid "Could not create port for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
-#: ../semanage/seobject.py:1653
-#, python-format
-msgid "Could not create context for %s/%s"
+#: ../semanage/seobject.py:1120
+#, python-brace-format
+msgid "Could not create context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1129
-#, python-format
-msgid "Could not set user in port context for %s/%s"
+#: ../semanage/seobject.py:1124
+#, python-brace-format
+msgid "Could not set user in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1133
-#, python-format
-msgid "Could not set role in port context for %s/%s"
+#: ../semanage/seobject.py:1128
+#, python-brace-format
+msgid "Could not set role in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1137
-#, python-format
-msgid "Could not set type in port context for %s/%s"
+#: ../semanage/seobject.py:1132
+#, python-brace-format
+msgid "Could not set type in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1142
-#, python-format
-msgid "Could not set mls fields in port context for %s/%s"
+#: ../semanage/seobject.py:1137
+#, python-brace-format
+msgid "Could not set mls fields in port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1146
-#, python-format
-msgid "Could not set port context for %s/%s"
+#: ../semanage/seobject.py:1141
+#, python-brace-format
+msgid "Could not set port context for {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1150
-#, python-format
-msgid "Could not add port %s/%s"
+#: ../semanage/seobject.py:1145
+#, python-brace-format
+msgid "Could not add port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
-#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
-#: ../semanage/seobject.py:2176
+#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
+#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
+#: ../semanage/seobject.py:2171
msgid "Requires setype or serange"
msgstr ""
-#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
-#: ../semanage/seobject.py:1694
+#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
+#: ../semanage/seobject.py:1689
msgid "Requires setype"
msgstr ""
-#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
-#, python-format
-msgid "Port %s/%s is not defined"
+#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
+#, python-brace-format
+msgid "Port {proto}/{port} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1184
-#, python-format
-msgid "Could not query port %s/%s"
+#: ../semanage/seobject.py:1179
+#, python-brace-format
+msgid "Could not query port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1198
-#, python-format
-msgid "Could not modify port %s/%s"
+#: ../semanage/seobject.py:1193
+#, python-brace-format
+msgid "Could not modify port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1213
+#: ../semanage/seobject.py:1208
msgid "Could not list the ports"
msgstr ""
-#: ../semanage/seobject.py:1230
+#: ../semanage/seobject.py:1225
#, python-format
msgid "Could not delete the port %s"
msgstr ""
-#: ../semanage/seobject.py:1252
-#, python-format
-msgid "Port %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1247
+#, python-brace-format
+msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1256
-#, python-format
-msgid "Could not delete port %s/%s"
+#: ../semanage/seobject.py:1251
+#, python-brace-format
+msgid "Could not delete port {proto}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
+#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
msgid "Could not list ports"
msgstr ""
-#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
+#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
#: ../sepolicy/sepolicy/sepolicy.glade:2766
#: ../sepolicy/sepolicy/sepolicy.glade:4630
msgid "SELinux Port Type"
msgstr ""
-#: ../semanage/seobject.py:1329
+#: ../semanage/seobject.py:1324
msgid "Proto"
msgstr ""
-#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
#: ../sepolicy/sepolicy/sepolicy.glade:1407
msgid "Port Number"
msgstr ""
-#: ../semanage/seobject.py:1351
+#: ../semanage/seobject.py:1346
msgid "Subnet Prefix is required"
msgstr ""
-#: ../semanage/seobject.py:1361
+#: ../semanage/seobject.py:1356
msgid "Invalid Pkey"
msgstr ""
-#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
+#: ../semanage/seobject.py:1360
+#, python-brace-format
+msgid "Could not create a key for {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
#, python-format
msgid "Type %s is invalid, must be a ibpkey type"
msgstr ""
-#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
-#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
-#, python-format
-msgid "Could not check if ibpkey %s/%s is defined"
+#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
+#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
+#, python-brace-format
+msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
msgstr ""
-#: ../semanage/seobject.py:1389
-#, python-format
-msgid "ibpkey %s/%s already defined"
+#: ../semanage/seobject.py:1384
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} already defined"
msgstr ""
-#: ../semanage/seobject.py:1393
-#, python-format
-msgid "Could not create ibpkey for %s/%s"
+#: ../semanage/seobject.py:1388
+#, python-brace-format
+msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1403
-#, python-format
-msgid "Could not set user in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1394
+#, python-brace-format
+msgid "Could not create context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1407
-#, python-format
-msgid "Could not set role in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1398
+#, python-brace-format
+msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1411
-#, python-format
-msgid "Could not set type in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1402
+#, python-brace-format
+msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1416
-#, python-format
-msgid "Could not set mls fields in ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1406
+#, python-brace-format
+msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1420
-#, python-format
-msgid "Could not set ibpkey context for %s/%s"
+#: ../semanage/seobject.py:1411
+#, python-brace-format
+msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1424
-#, python-format
-msgid "Could not add ibpkey %s/%s"
+#: ../semanage/seobject.py:1415
+#, python-brace-format
+msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
-#, python-format
-msgid "ibpkey %s/%s is not defined"
+#: ../semanage/seobject.py:1419
+#, python-brace-format
+msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1457
-#, python-format
-msgid "Could not query ibpkey %s/%s"
+#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1468
-#, python-format
-msgid "Could not modify ibpkey %s/%s"
+#: ../semanage/seobject.py:1452
+#, python-brace-format
+msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1481
+#: ../semanage/seobject.py:1463
+#, python-brace-format
+msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
+msgstr ""
+
+#: ../semanage/seobject.py:1476
msgid "Could not list the ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1496
+#: ../semanage/seobject.py:1491
#, python-format
msgid "Could not delete the ibpkey %s"
msgstr ""
-#: ../semanage/seobject.py:1513
-#, python-format
-msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1508
+#, python-brace-format
+msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1517
-#, python-format
-msgid "Could not delete ibpkey %s/%s"
+#: ../semanage/seobject.py:1512
+#, python-brace-format
+msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
msgstr ""
-#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
+#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
msgid "Could not list ibpkeys"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "SELinux IB Pkey Type"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Subnet_Prefix"
msgstr ""
-#: ../semanage/seobject.py:1589
+#: ../semanage/seobject.py:1584
msgid "Pkey Number"
msgstr ""
-#: ../semanage/seobject.py:1611
+#: ../semanage/seobject.py:1606
msgid "IB device name is required"
msgstr ""
-#: ../semanage/seobject.py:1616
+#: ../semanage/seobject.py:1611
msgid "Invalid Port Number"
msgstr ""
-#: ../semanage/seobject.py:1620
-#, python-format
-msgid "Could not create a key for ibendport %s/%s"
+#: ../semanage/seobject.py:1615
+#, python-brace-format
+msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
+#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
#, python-format
msgid "Type %s is invalid, must be an ibendport type"
msgstr ""
-#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
-#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
-#, python-format
-msgid "Could not check if ibendport %s/%s is defined"
+#: ../semanage/seobject.py:1636
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
msgstr ""
-#: ../semanage/seobject.py:1643
-#, python-format
-msgid "ibendport %s/%s already defined"
+#: ../semanage/seobject.py:1638
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{port} already defined"
msgstr ""
-#: ../semanage/seobject.py:1647
-#, python-format
-msgid "Could not create ibendport for %s/%s"
+#: ../semanage/seobject.py:1642
+#, python-brace-format
+msgid "Could not create ibendport for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1657
-#, python-format
-msgid "Could not set user in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1648
+#, python-brace-format
+msgid "Could not create context for {ibendport}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1661
-#, python-format
-msgid "Could not set role in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1652
+#, python-brace-format
+msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1656
+#, python-brace-format
+msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
+msgstr ""
+
+#: ../semanage/seobject.py:1660
+#, python-brace-format
+msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
msgstr ""
#: ../semanage/seobject.py:1665
-#, python-format
-msgid "Could not set type in ibendport context for %s/%s"
+#, python-brace-format
+msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1670
-#, python-format
-msgid "Could not set mls fields in ibendport context for %s/%s"
+#: ../semanage/seobject.py:1669
+#, python-brace-format
+msgid "Could not set ibendport context for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1674
-#, python-format
-msgid "Could not set ibendport context for %s/%s"
+#: ../semanage/seobject.py:1673
+#, python-brace-format
+msgid "Could not add ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1678
-#, python-format
-msgid "Could not add ibendport %s/%s"
+#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
+#: ../semanage/seobject.py:1758
+#, python-brace-format
+msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
msgstr ""
-#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
-#, python-format
-msgid "ibendport %s/%s is not defined"
+#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
+#, python-brace-format
+msgid "ibendport {ibdev_name}/{ibendport} is not defined"
msgstr ""
-#: ../semanage/seobject.py:1711
-#, python-format
-msgid "Could not query ibendport %s/%s"
+#: ../semanage/seobject.py:1706
+#, python-brace-format
+msgid "Could not query ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1722
-#, python-format
-msgid "Could not modify ibendport %s/%s"
+#: ../semanage/seobject.py:1717
+#, python-brace-format
+msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1735
+#: ../semanage/seobject.py:1730
msgid "Could not list the ibendports"
msgstr ""
-#: ../semanage/seobject.py:1744
-#, python-format
-msgid "Could not create a key for %s/%d"
+#: ../semanage/seobject.py:1739
+#, python-brace-format
+msgid "Could not create a key for {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1748
-#, python-format
-msgid "Could not delete the ibendport %s/%d"
+#: ../semanage/seobject.py:1743
+#, python-brace-format
+msgid "Could not delete the ibendport {ibdev_name}/{port}"
msgstr ""
-#: ../semanage/seobject.py:1765
-#, python-format
-msgid "ibendport %s/%s is defined in policy, cannot be deleted"
+#: ../semanage/seobject.py:1760
+#, python-brace-format
+msgid ""
+"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:1769
-#, python-format
-msgid "Could not delete ibendport %s/%s"
+#: ../semanage/seobject.py:1764
+#, python-brace-format
+msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
msgstr ""
-#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
+#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
msgid "Could not list ibendports"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "SELinux IB End Port Type"
msgstr ""
-#: ../semanage/seobject.py:1835
+#: ../semanage/seobject.py:1830
msgid "IB Device Name"
msgstr ""
-#: ../semanage/seobject.py:1861
+#: ../semanage/seobject.py:1856
msgid "Node Address is required"
msgstr ""
-#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
+#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
msgid "Unknown or missing protocol"
msgstr ""
-#: ../semanage/seobject.py:1899
+#: ../semanage/seobject.py:1894
msgid "SELinux node type is required"
msgstr ""
-#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
+#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
#, python-format
msgid "Type %s is invalid, must be a node type"
msgstr ""
-#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
-#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
-#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
-#: ../semanage/seobject.py:2435
+#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
+#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
+#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
+#: ../semanage/seobject.py:2430
#, python-format
msgid "Could not create key for %s"
msgstr ""
-#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
-#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
+#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
+#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
#, python-format
msgid "Could not check if addr %s is defined"
msgstr ""
-#: ../semanage/seobject.py:1914
+#: ../semanage/seobject.py:1909
#, python-format
msgid "Addr %s already defined"
msgstr ""
-#: ../semanage/seobject.py:1918
+#: ../semanage/seobject.py:1913
#, python-format
msgid "Could not create addr for %s"
msgstr ""
-#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
-#: ../semanage/seobject.py:2389
+#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2384
#, python-format
msgid "Could not create context for %s"
msgstr ""
-#: ../semanage/seobject.py:1928
+#: ../semanage/seobject.py:1923
#, python-format
msgid "Could not set mask for %s"
msgstr ""
-#: ../semanage/seobject.py:1932
+#: ../semanage/seobject.py:1927
#, python-format
msgid "Could not set user in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1936
+#: ../semanage/seobject.py:1931
#, python-format
msgid "Could not set role in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1940
+#: ../semanage/seobject.py:1935
#, python-format
msgid "Could not set type in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1945
+#: ../semanage/seobject.py:1940
#, python-format
msgid "Could not set mls fields in addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1949
+#: ../semanage/seobject.py:1944
#, python-format
msgid "Could not set addr context for %s"
msgstr ""
-#: ../semanage/seobject.py:1953
+#: ../semanage/seobject.py:1948
#, python-format
msgid "Could not add addr %s"
msgstr ""
-#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
+#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
#, python-format
msgid "Addr %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:1989
+#: ../semanage/seobject.py:1984
#, python-format
msgid "Could not query addr %s"
msgstr ""
-#: ../semanage/seobject.py:1999
+#: ../semanage/seobject.py:1994
#, python-format
msgid "Could not modify addr %s"
msgstr ""
-#: ../semanage/seobject.py:2028
+#: ../semanage/seobject.py:2023
#, python-format
msgid "Addr %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2032
+#: ../semanage/seobject.py:2027
#, python-format
msgid "Could not delete addr %s"
msgstr ""
-#: ../semanage/seobject.py:2046
+#: ../semanage/seobject.py:2041
msgid "Could not deleteall node mappings"
msgstr ""
-#: ../semanage/seobject.py:2060
+#: ../semanage/seobject.py:2055
msgid "Could not list addrs"
msgstr ""
-#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
+#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
msgid "SELinux Type is required"
msgstr ""
-#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
-#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
+#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
+#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
#, python-format
msgid "Could not check if interface %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2123
+#: ../semanage/seobject.py:2118
#, python-format
msgid "Interface %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2127
+#: ../semanage/seobject.py:2122
#, python-format
msgid "Could not create interface for %s"
msgstr ""
-#: ../semanage/seobject.py:2136
+#: ../semanage/seobject.py:2131
#, python-format
msgid "Could not set user in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2140
+#: ../semanage/seobject.py:2135
#, python-format
msgid "Could not set role in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2144
+#: ../semanage/seobject.py:2139
#, python-format
msgid "Could not set type in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2149
+#: ../semanage/seobject.py:2144
#, python-format
msgid "Could not set mls fields in interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2153
+#: ../semanage/seobject.py:2148
#, python-format
msgid "Could not set interface context for %s"
msgstr ""
-#: ../semanage/seobject.py:2157
+#: ../semanage/seobject.py:2152
#, python-format
msgid "Could not set message context for %s"
msgstr ""
-#: ../semanage/seobject.py:2161
+#: ../semanage/seobject.py:2156
#, python-format
msgid "Could not add interface %s"
msgstr ""
-#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
+#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
#, python-format
msgid "Interface %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2190
+#: ../semanage/seobject.py:2185
#, python-format
msgid "Could not query interface %s"
msgstr ""
-#: ../semanage/seobject.py:2201
+#: ../semanage/seobject.py:2196
#, python-format
msgid "Could not modify interface %s"
msgstr ""
-#: ../semanage/seobject.py:2228
+#: ../semanage/seobject.py:2223
#, python-format
msgid "Interface %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2232
+#: ../semanage/seobject.py:2227
#, python-format
msgid "Could not delete interface %s"
msgstr ""
-#: ../semanage/seobject.py:2246
+#: ../semanage/seobject.py:2241
msgid "Could not delete all interface mappings"
msgstr ""
-#: ../semanage/seobject.py:2260
+#: ../semanage/seobject.py:2255
msgid "Could not list interfaces"
msgstr ""
-#: ../semanage/seobject.py:2285
+#: ../semanage/seobject.py:2280
msgid "SELinux Interface"
msgstr ""
-#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
msgid "Context"
msgstr ""
-#: ../semanage/seobject.py:2355
+#: ../semanage/seobject.py:2350
#, python-format
msgid "Target %s is not valid. Target is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2358
+#: ../semanage/seobject.py:2353
#, python-format
msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
msgstr ""
-#: ../semanage/seobject.py:2361
+#: ../semanage/seobject.py:2356
#, python-format
msgid "Equivalence class for %s already exists"
msgstr ""
-#: ../semanage/seobject.py:2367
+#: ../semanage/seobject.py:2362
#, python-format
msgid "File spec %s conflicts with equivalency rule '%s %s'"
msgstr ""
-#: ../semanage/seobject.py:2378
+#: ../semanage/seobject.py:2373
#, python-format
msgid "Equivalence class for %s does not exist"
msgstr ""
-#: ../semanage/seobject.py:2395
+#: ../semanage/seobject.py:2390
#, python-format
msgid "Could not set user in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2399
+#: ../semanage/seobject.py:2394
#, python-format
msgid "Could not set role in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
+#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
#, python-format
msgid "Could not set mls fields in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2410
+#: ../semanage/seobject.py:2405
msgid "Invalid file specification"
msgstr ""
-#: ../semanage/seobject.py:2412
+#: ../semanage/seobject.py:2407
msgid "File specification can not include spaces"
msgstr ""
-#: ../semanage/seobject.py:2417
+#: ../semanage/seobject.py:2412
#, python-format
msgid ""
"File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
msgstr ""
-#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
+#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
#, python-format
msgid "Type %s is invalid, must be a file or device type"
msgstr ""
-#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
-#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
-#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
+#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
+#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
+#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
#, python-format
msgid "Could not check if file context for %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2447
+#: ../semanage/seobject.py:2442
#, python-format
msgid "File context for %s already defined"
msgstr ""
-#: ../semanage/seobject.py:2451
+#: ../semanage/seobject.py:2446
#, python-format
msgid "Could not create file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2459
+#: ../semanage/seobject.py:2454
#, python-format
msgid "Could not set type in file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
-#: ../semanage/seobject.py:2543
+#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
+#: ../semanage/seobject.py:2538
#, python-format
msgid "Could not set file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2473
+#: ../semanage/seobject.py:2468
#, python-format
msgid "Could not add file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2492
+#: ../semanage/seobject.py:2487
msgid "Requires setype, serange or seuser"
msgstr ""
-#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
+#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
#, python-format
msgid "Could not query file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
+#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
#, python-format
msgid "File context for %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2547
+#: ../semanage/seobject.py:2542
#, python-format
msgid "Could not modify file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2565
+#: ../semanage/seobject.py:2560
msgid "Could not list the file contexts"
msgstr ""
-#: ../semanage/seobject.py:2579
+#: ../semanage/seobject.py:2574
#, python-format
msgid "Could not delete the file context %s"
msgstr ""
-#: ../semanage/seobject.py:2609
+#: ../semanage/seobject.py:2604
#, python-format
msgid "File context for %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2615
+#: ../semanage/seobject.py:2610
#, python-format
msgid "Could not delete file context for %s"
msgstr ""
-#: ../semanage/seobject.py:2632
+#: ../semanage/seobject.py:2627
msgid "Could not list file contexts"
msgstr ""
-#: ../semanage/seobject.py:2636
+#: ../semanage/seobject.py:2631
msgid "Could not list file contexts for home directories"
msgstr ""
-#: ../semanage/seobject.py:2640
+#: ../semanage/seobject.py:2635
msgid "Could not list local file contexts"
msgstr ""
-#: ../semanage/seobject.py:2677
+#: ../semanage/seobject.py:2672
msgid "SELinux fcontext"
msgstr ""
-#: ../semanage/seobject.py:2690
+#: ../semanage/seobject.py:2685
msgid ""
"\n"
"SELinux Distribution fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2695
+#: ../semanage/seobject.py:2690
msgid ""
"\n"
"SELinux Local fcontext Equivalence \n"
msgstr ""
-#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
-#: ../semanage/seobject.py:2790
+#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
+#: ../semanage/seobject.py:2785
#, python-format
msgid "Could not check if boolean %s is defined"
msgstr ""
-#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
+#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
#, python-format
msgid "Boolean %s is not defined"
msgstr ""
-#: ../semanage/seobject.py:2739
+#: ../semanage/seobject.py:2734
#, python-format
msgid "Could not query file context %s"
msgstr ""
-#: ../semanage/seobject.py:2744
+#: ../semanage/seobject.py:2739
#, python-format
msgid "You must specify one of the following values: %s"
msgstr ""
-#: ../semanage/seobject.py:2749
+#: ../semanage/seobject.py:2744
#, python-format
msgid "Could not set active value of boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2752
+#: ../semanage/seobject.py:2747
#, python-format
msgid "Could not modify boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2768
-#, python-format
-msgid "Bad format %s: Record %s"
+#: ../semanage/seobject.py:2763
+#, python-brace-format
+msgid "Bad format {filename}: Record {record}"
msgstr ""
-#: ../semanage/seobject.py:2792
+#: ../semanage/seobject.py:2787
#, python-format
msgid "Boolean %s is defined in policy, cannot be deleted"
msgstr ""
-#: ../semanage/seobject.py:2796
+#: ../semanage/seobject.py:2791
#, python-format
msgid "Could not delete boolean %s"
msgstr ""
-#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
+#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
msgid "Could not list booleans"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "off"
msgstr ""
-#: ../semanage/seobject.py:2858
+#: ../semanage/seobject.py:2853
msgid "on"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "SELinux boolean"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "State"
msgstr ""
-#: ../semanage/seobject.py:2870
+#: ../semanage/seobject.py:2865
msgid "Default"
msgstr ""
-#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
+#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
#: ../sepolicy/sepolicy/sepolicy.glade:2510
#: ../sepolicy/sepolicy/sepolicy.glade:5099
msgid "Description"
@@ -1555,151 +1566,151 @@ msgstr ""
msgid "Missing interface definition for %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:140
+#: ../sepolicy/sepolicy/generate.py:138
msgid "Standard Init Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:141
+#: ../sepolicy/sepolicy/generate.py:139
msgid "DBUS System Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:142
+#: ../sepolicy/sepolicy/generate.py:140
msgid "Internet Services Daemon"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:143
+#: ../sepolicy/sepolicy/generate.py:141
msgid "Web Application/Script (CGI)"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:144
+#: ../sepolicy/sepolicy/generate.py:142
msgid "Sandbox"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:145
+#: ../sepolicy/sepolicy/generate.py:143
msgid "User Application"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:146
+#: ../sepolicy/sepolicy/generate.py:144
msgid "Existing Domain Type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:147
+#: ../sepolicy/sepolicy/generate.py:145
msgid "Minimal Terminal Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:148
+#: ../sepolicy/sepolicy/generate.py:146
msgid "Minimal X Windows Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:149
+#: ../sepolicy/sepolicy/generate.py:147
msgid "Desktop Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:150
+#: ../sepolicy/sepolicy/generate.py:148
msgid "Administrator Login User Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:151
+#: ../sepolicy/sepolicy/generate.py:149
msgid "Confined Root Administrator Role"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:152
+#: ../sepolicy/sepolicy/generate.py:150
msgid "Module information for a new type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:158
+#: ../sepolicy/sepolicy/generate.py:156
msgid "Valid Types:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:193
+#: ../sepolicy/sepolicy/generate.py:191
#, python-format
msgid "Ports must be numbers or ranges of numbers from 1 to %d "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:205
+#: ../sepolicy/sepolicy/generate.py:203
msgid "You must enter a valid policy type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:208
+#: ../sepolicy/sepolicy/generate.py:206
#, python-format
msgid "You must enter a name for your policy module for your '%s'."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:346
+#: ../sepolicy/sepolicy/generate.py:344
msgid ""
"Name must be alphanumeric with no spaces. Consider using option \"-n "
"MODULENAME\""
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:438
+#: ../sepolicy/sepolicy/generate.py:436
msgid "User Role types can not be assigned executables."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:444
+#: ../sepolicy/sepolicy/generate.py:442
msgid "Only Daemon apps can use an init script."
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:462
+#: ../sepolicy/sepolicy/generate.py:460
msgid "use_resolve must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:468
+#: ../sepolicy/sepolicy/generate.py:466
msgid "use_syslog must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:474
+#: ../sepolicy/sepolicy/generate.py:472
msgid "use_kerberos must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:480
+#: ../sepolicy/sepolicy/generate.py:478
msgid "manage_krb5_rcache must be a boolean value "
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:510
+#: ../sepolicy/sepolicy/generate.py:508
msgid "USER Types automatically get a tmp type"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:847
+#: ../sepolicy/sepolicy/generate.py:845
#, python-format
msgid "'%s' policy modules require existing domains"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:872
+#: ../sepolicy/sepolicy/generate.py:870
msgid "Type field required"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:885
+#: ../sepolicy/sepolicy/generate.py:883
#, python-format
msgid ""
"You need to define a new type which ends with: \n"
" %s"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1113
+#: ../sepolicy/sepolicy/generate.py:1111
msgid "You must enter the executable path for your confined process"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1378
+#: ../sepolicy/sepolicy/generate.py:1376
msgid "Created the following files:\n"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1379
+#: ../sepolicy/sepolicy/generate.py:1377
msgid "Type Enforcement file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1380
+#: ../sepolicy/sepolicy/generate.py:1378
msgid "Interface file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1381
+#: ../sepolicy/sepolicy/generate.py:1379
msgid "File Contexts file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1383
+#: ../sepolicy/sepolicy/generate.py:1381
msgid "Spec file"
msgstr ""
-#: ../sepolicy/sepolicy/generate.py:1384
+#: ../sepolicy/sepolicy/generate.py:1382
msgid "Setup Script"
msgstr ""
@@ -2367,29 +2378,29 @@ msgstr ""
msgid "named pipe"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:148
+#: ../sepolicy/sepolicy/__init__.py:149
msgid "No SELinux Policy installed"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:184
+#: ../sepolicy/sepolicy/__init__.py:185
#, python-format
msgid "Failed to read %s policy file"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:470
+#: ../sepolicy/sepolicy/__init__.py:471
#, python-format
msgid "-- Allowed %s [ %s ]"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:896
+#: ../sepolicy/sepolicy/__init__.py:897
msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1221
+#: ../sepolicy/sepolicy/__init__.py:1230
msgid "unknown"
msgstr ""
-#: ../sepolicy/sepolicy/__init__.py:1230
+#: ../sepolicy/sepolicy/__init__.py:1239
#, python-brace-format
msgid "Allow {subject} to {rest}"
msgstr ""
--
2.41.0.rc2
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v4 4/4] python: update python.pot
2023-06-13 11:20 ` [PATCH v4 4/4] python: update python.pot Petr Lautrbach
@ 2023-06-13 12:37 ` Vit Mojzis
2023-06-27 13:55 ` Petr Lautrbach
0 siblings, 1 reply; 26+ messages in thread
From: Vit Mojzis @ 2023-06-13 12:37 UTC (permalink / raw)
To: Petr Lautrbach, selinux
On 6/13/23 13:20, Petr Lautrbach wrote:
> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
> ---
> python/po/python.pot | 963 ++++++++++++++++++++++---------------------
> 1 file changed, 487 insertions(+), 476 deletions(-)
>
> diff --git a/python/po/python.pot b/python/po/python.pot
> index 16d04eb0f18e..435a1b764e34 100644
> --- a/python/po/python.pot
> +++ b/python/po/python.pot
> @@ -8,7 +8,7 @@ msgid ""
> msgstr ""
> "Project-Id-Version: PACKAGE VERSION\n"
> "Report-Msgid-Bugs-To: \n"
> -"POT-Creation-Date: 2023-01-18 11:57+0100\n"
> +"POT-Creation-Date: 2023-06-12 18:13+0200\n"
> "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
> "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
> "Language-Team: LANGUAGE <LL@li.org>\n"
> @@ -17,17 +17,12 @@ msgstr ""
> "Content-Type: text/plain; charset=UTF-8\n"
> "Content-Transfer-Encoding: 8bit\n"
>
> -#: ../audit2allow/audit2allow:239
> -msgid "******************** IMPORTANT ***********************\n"
> +#: ../audit2allow/audit2allow:244
> +msgid "IMPORTANT"
> msgstr ""
>
> -#: ../audit2allow/audit2allow:240
> -#, python-format
> -msgid ""
> -"To make this policy package active, execute:\n"
> -"\n"
> -"semodule -i %s\n"
> -"\n"
> +#: ../audit2allow/audit2allow:245
> +msgid "To make this policy package active, execute:"
> msgstr ""
>
> #: ../chcat/chcat:111 ../chcat/chcat:191
> @@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
> msgstr ""
>
> #: ../chcat/chcat:128
> -#, python-format
> -msgid "%s is already in %s"
> +#, python-brace-format
> +msgid "{target} is already in {category}"
> msgstr ""
>
> #: ../chcat/chcat:210 ../chcat/chcat:220
> -#, python-format
> -msgid "%s is not in %s"
> +#, python-brace-format
> +msgid "{target} is not in {category}"
> msgstr ""
>
> #: ../chcat/chcat:291 ../chcat/chcat:296
> @@ -152,218 +147,222 @@ msgstr ""
>
> #: ../semanage/semanage:242
> msgid ""
> -"\n"
> -"MLS/MCS Security Range (MLS/MCS Systems only)\n"
> -"SELinux Range for SELinux login mapping\n"
> -"defaults to the SELinux user record range.\n"
> -"SELinux Range for SELinux user defaults to s0.\n"
> +"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
> +"login mapping defaults to the SELinux user record range. SELinux Range for "
> +"SELinux user defaults to s0."
> msgstr ""
>
> -#: ../semanage/semanage:251
> +#: ../semanage/semanage:249
> msgid ""
> -"\n"
> -" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
> -"protocol\n"
> -" version for the specified node (ipv4|ipv6).\n"
> +"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
> +"version for the specified node (ipv4|ipv6)."
> msgstr ""
>
> -#: ../semanage/semanage:257
> -msgid ""
> -"\n"
> -" Subnet prefix for the specified infiniband ibpkey.\n"
> +#: ../semanage/semanage:253
> +msgid "Subnet prefix for the specified infiniband ibpkey."
> msgstr ""
>
> -#: ../semanage/semanage:262
> -msgid ""
> -"\n"
> -" Name for the specified infiniband end port.\n"
> +#: ../semanage/semanage:256
> +msgid "Name for the specified infiniband end port."
> msgstr ""
>
> -#: ../semanage/semanage:267
> +#: ../semanage/semanage:259
> #, python-format
> msgid "Modify a record of the %s object type"
> msgstr ""
>
> -#: ../semanage/semanage:271
> +#: ../semanage/semanage:263
> #, python-format
> msgid "List records of the %s object type"
> msgstr ""
>
> -#: ../semanage/semanage:275
> +#: ../semanage/semanage:267
> #, python-format
> msgid "Delete a record of the %s object type"
> msgstr ""
>
> -#: ../semanage/semanage:279
> +#: ../semanage/semanage:271
> msgid "Extract customizable commands, for use within a transaction"
> msgstr ""
>
> -#: ../semanage/semanage:283
> +#: ../semanage/semanage:275
> #, python-format
> msgid "Remove all %s objects local customizations"
> msgstr ""
>
> -#: ../semanage/semanage:287
> +#: ../semanage/semanage:279
> msgid "SELinux user name"
> msgstr ""
>
> -#: ../semanage/semanage:292
> +#: ../semanage/semanage:284
> msgid "Manage login mappings between linux users and SELinux confined users"
> msgstr ""
>
> -#: ../semanage/semanage:309
> +#: ../semanage/semanage:301
> #, python-format
> msgid "login_name | %%groupname"
> msgstr ""
>
> -#: ../semanage/semanage:361
> +#: ../semanage/semanage:344
> msgid "Manage file context mapping definitions"
> msgstr ""
>
> -#: ../semanage/semanage:375
> +#: ../semanage/semanage:359
> +msgid ""
> +"Substitute target path with sourcepath when generating default label. This "
> +"is used with fcontext. Requires source and target path arguments. The "
> +"context labeling for the target subtree is made equivalent to that defined "
> +"for the source."
> +msgstr ""
> +
> +#: ../semanage/semanage:363
> msgid ""
> -"Substitute target path with sourcepath when generating default\n"
> -" label. "
> -"This is used with fcontext. Requires source and target\n"
> -" path "
> -"arguments. The context labeling for the target subtree is\n"
> -" made "
> -"equivalent to that defined for the source."
> +"File Type. This is used with fcontext. Requires a file type as shown in the "
> +"mode field by ls, e.g. use d to match only directories or f to match only "
> +"regular files. The following file type options can be passed: f (regular "
> +"file), d (directory), c (character device), b (block device), s (socket), l "
> +"(symbolic link), p (named pipe). If you do not specify a file type, the file "
> +"type will default to \"all files\"."
> msgstr ""
>
> -#: ../semanage/semanage:383
> +#: ../semanage/semanage:371
> msgid ""
> "Path to be labeled (may be in the form of a Perl compatible regular "
> "expression)"
> msgstr ""
>
> -#: ../semanage/semanage:411
> +#: ../semanage/semanage:399
> msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
> msgstr ""
>
> -#: ../semanage/semanage:429
> +#: ../semanage/semanage:417
> msgid ""
> -"\n"
> -"SELinux Roles. You must enclose multiple roles within quotes, separate by "
> -"spaces. Or specify -R multiple times.\n"
> +"SELinux Roles. You must enclose multiple roles within quotes, separate by "
> +"spaces. Or specify -R multiple times."
> msgstr ""
>
> -#: ../semanage/semanage:433
> +#: ../semanage/semanage:419
> msgid "selinux_name"
> msgstr ""
>
> -#: ../semanage/semanage:461
> +#: ../semanage/semanage:447
> msgid "Manage network port type definitions"
> msgstr ""
>
> -#: ../semanage/semanage:477
> +#: ../semanage/semanage:463
> msgid "port | port_range"
> msgstr ""
>
> -#: ../semanage/semanage:506
> +#: ../semanage/semanage:492
> msgid "Manage infiniband ibpkey type definitions"
> msgstr ""
>
> -#: ../semanage/semanage:522
> +#: ../semanage/semanage:508
> msgid "pkey | pkey_range"
> msgstr ""
>
> -#: ../semanage/semanage:549
> +#: ../semanage/semanage:535
> msgid "Manage infiniband end port type definitions"
> msgstr ""
>
> -#: ../semanage/semanage:565
> +#: ../semanage/semanage:551
> msgid "ibendport"
> msgstr ""
>
> -#: ../semanage/semanage:592
> +#: ../semanage/semanage:578
> msgid "Manage network interface type definitions"
> msgstr ""
>
> -#: ../semanage/semanage:607
> +#: ../semanage/semanage:593
> msgid "interface_spec"
> msgstr ""
>
> -#: ../semanage/semanage:631
> +#: ../semanage/semanage:617
> msgid "Manage SELinux policy modules"
> msgstr ""
>
> -#: ../semanage/semanage:642
> +#: ../semanage/semanage:628
> msgid "Add a module"
> msgstr ""
>
> -#: ../semanage/semanage:643
> +#: ../semanage/semanage:629
> msgid "Remove a module"
> msgstr ""
>
> -#: ../semanage/semanage:644
> +#: ../semanage/semanage:630
> msgid "Disable a module"
> msgstr ""
>
> -#: ../semanage/semanage:645
> +#: ../semanage/semanage:631
> msgid "Enable a module"
> msgstr ""
>
> -#: ../semanage/semanage:672
> +#: ../semanage/semanage:658
> msgid "Manage network node type definitions"
> msgstr ""
>
> -#: ../semanage/semanage:686
> +#: ../semanage/semanage:672
> msgid "Network Mask"
> msgstr ""
>
> -#: ../semanage/semanage:690
> +#: ../semanage/semanage:676
> msgid "node"
> msgstr ""
>
> -#: ../semanage/semanage:715
> +#: ../semanage/semanage:701
> msgid "Manage booleans to selectively enable functionality"
> msgstr ""
>
> -#: ../semanage/semanage:720
> +#: ../semanage/semanage:706
> msgid "boolean"
> msgstr ""
>
> -#: ../semanage/semanage:730
> +#: ../semanage/semanage:716
> msgid "Enable the boolean"
> msgstr ""
>
> -#: ../semanage/semanage:731
> +#: ../semanage/semanage:717
> msgid "Disable the boolean"
> msgstr ""
>
> -#: ../semanage/semanage:752
> +#: ../semanage/semanage:738
> msgid "semanage permissive: error: the following argument is required: type\n"
> msgstr ""
>
> -#: ../semanage/semanage:756
> +#: ../semanage/semanage:742
> msgid "Manage process type enforcement mode"
> msgstr ""
>
> -#: ../semanage/semanage:768 ../semanage/seobject.py:2677
> +#: ../semanage/semanage:754 ../semanage/seobject.py:2672
> msgid "type"
> msgstr ""
>
> -#: ../semanage/semanage:779
> +#: ../semanage/semanage:765
> msgid "Disable/Enable dontaudit rules in policy"
> msgstr ""
>
> -#: ../semanage/semanage:799
> +#: ../semanage/semanage:785
> msgid "Output local customizations"
> msgstr ""
>
> -#: ../semanage/semanage:801
> +#: ../semanage/semanage:787
> msgid "Output file"
> msgstr ""
>
> -#: ../semanage/semanage:894
> +#: ../semanage/semanage:880
> msgid "Import local customizations"
> msgstr ""
>
> -#: ../semanage/semanage:897
> +#: ../semanage/semanage:883
> msgid "Input file"
> msgstr ""
>
> +#: ../semanage/semanage:891
> +msgid ""
> +"semanage is used to configure certain elements of SELinux policy with-out "
> +"requiring modification or recompilation from policy source."
> +msgstr ""
> +
> #: ../semanage/seobject.py:279
> msgid "Could not create semanage handle"
> msgstr ""
> @@ -485,123 +484,115 @@ msgstr ""
> msgid "Customized Permissive Types"
> msgstr ""
>
> -#: ../semanage/seobject.py:510
> -msgid ""
> -"The sepolgen python module is required to setup permissive domains.\n"
> -"In some distributions it is included in the policycoreutils-devel package.\n"
> -"# yum install policycoreutils-devel\n"
> -"Or similar for your distro."
> -msgstr ""
> -
> -#: ../semanage/seobject.py:520
> +#: ../semanage/seobject.py:515
> #, python-format
> msgid "Could not set permissive domain %s (module installation failed)"
> msgstr ""
>
> -#: ../semanage/seobject.py:526
> +#: ../semanage/seobject.py:521
> #, python-format
> msgid "Could not remove permissive domain %s (remove failed)"
> msgstr ""
>
> -#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
> -#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
> -#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
> -#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
> -#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
> -#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
> -#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
> +#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
> +#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
> +#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
> +#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
> +#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
> +#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
> +#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
> #, python-format
> msgid "Could not create a key for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
> -#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
> +#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
> +#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
> #, python-format
> msgid "Could not check if login mapping for %s is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:569
> +#: ../semanage/seobject.py:564
> #, python-format
> msgid "Login mapping for %s is already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:574
> +#: ../semanage/seobject.py:569
> #, python-format
> msgid "Linux Group %s does not exist"
> msgstr ""
>
> -#: ../semanage/seobject.py:579
> +#: ../semanage/seobject.py:574
> #, python-format
> msgid "Linux User %s does not exist"
> msgstr ""
>
> -#: ../semanage/seobject.py:583
> +#: ../semanage/seobject.py:578
> #, python-format
> msgid "Could not create login mapping for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
> +#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
> #, python-format
> msgid "Could not set name for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
> +#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
> #, python-format
> msgid "Could not set MLS range for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:596
> +#: ../semanage/seobject.py:591
> #, python-format
> msgid "Could not set SELinux user for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:600
> +#: ../semanage/seobject.py:595
> #, python-format
> msgid "Could not add login mapping for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:616
> +#: ../semanage/seobject.py:611
> msgid "Requires seuser or serange"
> msgstr ""
>
> -#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
> +#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
> #, python-format
> msgid "Login mapping for %s is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:643
> +#: ../semanage/seobject.py:638
> #, python-format
> msgid "Could not query seuser for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:658
> +#: ../semanage/seobject.py:653
> #, python-format
> msgid "Could not modify login mapping for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:690
> +#: ../semanage/seobject.py:685
> #, python-format
> msgid "Login mapping for %s is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:694
> +#: ../semanage/seobject.py:689
> #, python-format
> msgid "Could not delete login mapping for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
> -#: ../semanage/seobject.py:991
> +#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
> +#: ../semanage/seobject.py:986
> msgid "Could not list login mappings"
> msgstr ""
>
> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
> #: ../sepolicy/sepolicy/sepolicy.glade:1156
> #: ../sepolicy/sepolicy/sepolicy.glade:3138
> msgid "Login Name"
> msgstr ""
>
> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
> #: ../sepolicy/sepolicy/sepolicy.glade:1182
> #: ../sepolicy/sepolicy/sepolicy.glade:3156
> #: ../sepolicy/sepolicy/sepolicy.glade:3242
> @@ -609,938 +600,958 @@ msgstr ""
> msgid "SELinux User"
> msgstr ""
>
> -#: ../semanage/seobject.py:772
> +#: ../semanage/seobject.py:767
> msgid "MLS/MCS Range"
> msgstr ""
>
> -#: ../semanage/seobject.py:772
> +#: ../semanage/seobject.py:767
> msgid "Service"
> msgstr ""
>
> -#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
> -#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
> -#: ../semanage/seobject.py:958
> +#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
> +#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
> +#: ../semanage/seobject.py:953
> #, python-format
> msgid "Could not check if SELinux user %s is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
> -#: ../semanage/seobject.py:964
> +#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
> +#: ../semanage/seobject.py:959
> #, python-format
> msgid "Could not query user for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:823
> +#: ../semanage/seobject.py:818
> #, python-format
> msgid "You must add at least one role for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:833
> +#: ../semanage/seobject.py:828
> #, python-format
> msgid "SELinux user %s is already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:837
> +#: ../semanage/seobject.py:832
> #, python-format
> msgid "Could not create SELinux user for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:846
> -#, python-format
> -msgid "Could not add role %s for %s"
> +#: ../semanage/seobject.py:841
> +#, python-brace-format
> +msgid "Could not add role {role} for {name}"
> msgstr ""
>
> -#: ../semanage/seobject.py:855
> +#: ../semanage/seobject.py:850
> #, python-format
> msgid "Could not set MLS level for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:858
> -#, python-format
> -msgid "Could not add prefix %s for %s"
> +#: ../semanage/seobject.py:853
> +#, python-brace-format
> +msgid "Could not add prefix {prefix} for {role}"
> msgstr ""
>
> -#: ../semanage/seobject.py:861
> +#: ../semanage/seobject.py:856
> #, python-format
> msgid "Could not extract key for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:865
> +#: ../semanage/seobject.py:860
> #, python-format
> msgid "Could not add SELinux user %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:886
> +#: ../semanage/seobject.py:881
> msgid "Requires prefix, roles, level or range"
> msgstr ""
>
> -#: ../semanage/seobject.py:888
> +#: ../semanage/seobject.py:883
> msgid "Requires prefix or roles"
> msgstr ""
>
> -#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
> +#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
> #, python-format
> msgid "SELinux user %s is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:927
> +#: ../semanage/seobject.py:922
> #, python-format
> msgid "Could not modify SELinux user %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:960
> +#: ../semanage/seobject.py:955
> #, python-format
> msgid "SELinux user %s is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:971
> +#: ../semanage/seobject.py:966
> #, python-format
> msgid "Could not delete SELinux user %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1009
> +#: ../semanage/seobject.py:1004
> msgid "Could not list SELinux users"
> msgstr ""
>
> -#: ../semanage/seobject.py:1015
> +#: ../semanage/seobject.py:1010
> #, python-format
> msgid "Could not list roles for user %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1040
> +#: ../semanage/seobject.py:1035
> msgid "Labeling"
> msgstr ""
>
> -#: ../semanage/seobject.py:1040
> +#: ../semanage/seobject.py:1035
> msgid "MLS/"
> msgstr ""
>
> -#: ../semanage/seobject.py:1041
> +#: ../semanage/seobject.py:1036
> msgid "Prefix"
> msgstr ""
>
> -#: ../semanage/seobject.py:1041
> +#: ../semanage/seobject.py:1036
> msgid "MCS Level"
> msgstr ""
>
> -#: ../semanage/seobject.py:1041
> +#: ../semanage/seobject.py:1036
> msgid "MCS Range"
> msgstr ""
>
> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
> #: ../sepolicy/sepolicy/sepolicy.glade:3262
> #: ../sepolicy/sepolicy/sepolicy.glade:5233
> #: ../sepolicy/sepolicy/sepolicy.glade:5382
> msgid "SELinux Roles"
> msgstr ""
>
> -#: ../semanage/seobject.py:1071
> +#: ../semanage/seobject.py:1066
> msgid "Protocol has to be one of udp, tcp, dccp or sctp"
> msgstr ""
>
> -#: ../semanage/seobject.py:1073
> +#: ../semanage/seobject.py:1068
> msgid "Port is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:1087
> +#: ../semanage/seobject.py:1082
> msgid "Invalid Port"
> msgstr ""
>
> -#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
> -#, python-format
> -msgid "Could not create a key for %s/%s"
> +#: ../semanage/seobject.py:1086
> +#, python-brace-format
> +msgid "Could not create a key for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
> -#: ../semanage/seobject.py:1631
> +#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
> +#: ../semanage/seobject.py:1626
> msgid "Type is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
> +#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
> #, python-format
> msgid "Type %s is invalid, must be a port type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
> -#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
> -#, python-format
> -msgid "Could not check if port %s/%s is defined"
> +#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
> +#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
> +#, python-brace-format
> +msgid "Could not check if port {proto}/{port} is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1115
> -#, python-format
> -msgid "Port %s/%s already defined"
> +#: ../semanage/seobject.py:1110
> +#, python-brace-format
> +msgid "Port {proto}/{port} already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1119
> -#, python-format
> -msgid "Could not create port for %s/%s"
> +#: ../semanage/seobject.py:1114
> +#, python-brace-format
> +msgid "Could not create port for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
> -#: ../semanage/seobject.py:1653
> -#, python-format
> -msgid "Could not create context for %s/%s"
> +#: ../semanage/seobject.py:1120
> +#, python-brace-format
> +msgid "Could not create context for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1129
> -#, python-format
> -msgid "Could not set user in port context for %s/%s"
> +#: ../semanage/seobject.py:1124
> +#, python-brace-format
> +msgid "Could not set user in port context for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1133
> -#, python-format
> -msgid "Could not set role in port context for %s/%s"
> +#: ../semanage/seobject.py:1128
> +#, python-brace-format
> +msgid "Could not set role in port context for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1137
> -#, python-format
> -msgid "Could not set type in port context for %s/%s"
> +#: ../semanage/seobject.py:1132
> +#, python-brace-format
> +msgid "Could not set type in port context for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1142
> -#, python-format
> -msgid "Could not set mls fields in port context for %s/%s"
> +#: ../semanage/seobject.py:1137
> +#, python-brace-format
> +msgid "Could not set mls fields in port context for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1146
> -#, python-format
> -msgid "Could not set port context for %s/%s"
> +#: ../semanage/seobject.py:1141
> +#, python-brace-format
> +msgid "Could not set port context for {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1150
> -#, python-format
> -msgid "Could not add port %s/%s"
> +#: ../semanage/seobject.py:1145
> +#, python-brace-format
> +msgid "Could not add port {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
> -#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
> -#: ../semanage/seobject.py:2176
> +#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
> +#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
> +#: ../semanage/seobject.py:2171
> msgid "Requires setype or serange"
> msgstr ""
>
> -#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
> -#: ../semanage/seobject.py:1694
> +#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
> +#: ../semanage/seobject.py:1689
> msgid "Requires setype"
> msgstr ""
>
> -#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
> -#, python-format
> -msgid "Port %s/%s is not defined"
> +#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
> +#, python-brace-format
> +msgid "Port {proto}/{port} is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1184
> -#, python-format
> -msgid "Could not query port %s/%s"
> +#: ../semanage/seobject.py:1179
> +#, python-brace-format
> +msgid "Could not query port {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1198
> -#, python-format
> -msgid "Could not modify port %s/%s"
> +#: ../semanage/seobject.py:1193
> +#, python-brace-format
> +msgid "Could not modify port {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1213
> +#: ../semanage/seobject.py:1208
> msgid "Could not list the ports"
> msgstr ""
>
> -#: ../semanage/seobject.py:1230
> +#: ../semanage/seobject.py:1225
> #, python-format
> msgid "Could not delete the port %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1252
> -#, python-format
> -msgid "Port %s/%s is defined in policy, cannot be deleted"
> +#: ../semanage/seobject.py:1247
> +#, python-brace-format
> +msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:1256
> -#, python-format
> -msgid "Could not delete port %s/%s"
> +#: ../semanage/seobject.py:1251
> +#, python-brace-format
> +msgid "Could not delete port {proto}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
> +#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
> msgid "Could not list ports"
> msgstr ""
>
> -#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
> +#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
> #: ../sepolicy/sepolicy/sepolicy.glade:2766
> #: ../sepolicy/sepolicy/sepolicy.glade:4630
> msgid "SELinux Port Type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1329
> +#: ../semanage/seobject.py:1324
> msgid "Proto"
> msgstr ""
>
> -#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
> +#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
> #: ../sepolicy/sepolicy/sepolicy.glade:1407
> msgid "Port Number"
> msgstr ""
>
> -#: ../semanage/seobject.py:1351
> +#: ../semanage/seobject.py:1346
> msgid "Subnet Prefix is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:1361
> +#: ../semanage/seobject.py:1356
> msgid "Invalid Pkey"
> msgstr ""
>
> -#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
> +#: ../semanage/seobject.py:1360
> +#, python-brace-format
> +msgid "Could not create a key for {subnet_prefix}/{pkey}"
> +msgstr ""
> +
> +#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
> #, python-format
> msgid "Type %s is invalid, must be a ibpkey type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
> -#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
> -#, python-format
> -msgid "Could not check if ibpkey %s/%s is defined"
> +#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
> +#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
> +#, python-brace-format
> +msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1389
> -#, python-format
> -msgid "ibpkey %s/%s already defined"
> +#: ../semanage/seobject.py:1384
> +#, python-brace-format
> +msgid "ibpkey {subnet_prefix}/{pkey} already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1393
> -#, python-format
> -msgid "Could not create ibpkey for %s/%s"
> +#: ../semanage/seobject.py:1388
> +#, python-brace-format
> +msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1403
> -#, python-format
> -msgid "Could not set user in ibpkey context for %s/%s"
> +#: ../semanage/seobject.py:1394
> +#, python-brace-format
> +msgid "Could not create context for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1407
> -#, python-format
> -msgid "Could not set role in ibpkey context for %s/%s"
> +#: ../semanage/seobject.py:1398
> +#, python-brace-format
> +msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1411
> -#, python-format
> -msgid "Could not set type in ibpkey context for %s/%s"
> +#: ../semanage/seobject.py:1402
> +#, python-brace-format
> +msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1416
> -#, python-format
> -msgid "Could not set mls fields in ibpkey context for %s/%s"
> +#: ../semanage/seobject.py:1406
> +#, python-brace-format
> +msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1420
> -#, python-format
> -msgid "Could not set ibpkey context for %s/%s"
> +#: ../semanage/seobject.py:1411
> +#, python-brace-format
> +msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1424
> -#, python-format
> -msgid "Could not add ibpkey %s/%s"
> +#: ../semanage/seobject.py:1415
> +#, python-brace-format
> +msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
> -#, python-format
> -msgid "ibpkey %s/%s is not defined"
> +#: ../semanage/seobject.py:1419
> +#, python-brace-format
> +msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1457
> -#, python-format
> -msgid "Could not query ibpkey %s/%s"
> +#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
> +#, python-brace-format
> +msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1468
> -#, python-format
> -msgid "Could not modify ibpkey %s/%s"
> +#: ../semanage/seobject.py:1452
> +#, python-brace-format
> +msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1481
> +#: ../semanage/seobject.py:1463
> +#, python-brace-format
> +msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
> +msgstr ""
> +
> +#: ../semanage/seobject.py:1476
> msgid "Could not list the ibpkeys"
> msgstr ""
>
> -#: ../semanage/seobject.py:1496
> +#: ../semanage/seobject.py:1491
> #, python-format
> msgid "Could not delete the ibpkey %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1513
> -#, python-format
> -msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
> +#: ../semanage/seobject.py:1508
> +#, python-brace-format
> +msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:1517
> -#, python-format
> -msgid "Could not delete ibpkey %s/%s"
> +#: ../semanage/seobject.py:1512
> +#, python-brace-format
> +msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
> +#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
> msgid "Could not list ibpkeys"
> msgstr ""
>
> -#: ../semanage/seobject.py:1589
> +#: ../semanage/seobject.py:1584
> msgid "SELinux IB Pkey Type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1589
> +#: ../semanage/seobject.py:1584
> msgid "Subnet_Prefix"
> msgstr ""
>
> -#: ../semanage/seobject.py:1589
> +#: ../semanage/seobject.py:1584
> msgid "Pkey Number"
> msgstr ""
>
> -#: ../semanage/seobject.py:1611
> +#: ../semanage/seobject.py:1606
> msgid "IB device name is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:1616
> +#: ../semanage/seobject.py:1611
> msgid "Invalid Port Number"
> msgstr ""
>
> -#: ../semanage/seobject.py:1620
> -#, python-format
> -msgid "Could not create a key for ibendport %s/%s"
> +#: ../semanage/seobject.py:1615
> +#, python-brace-format
> +msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
> +#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
> #, python-format
> msgid "Type %s is invalid, must be an ibendport type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
> -#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
> -#, python-format
> -msgid "Could not check if ibendport %s/%s is defined"
> +#: ../semanage/seobject.py:1636
> +#, python-brace-format
> +msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1643
> -#, python-format
> -msgid "ibendport %s/%s already defined"
> +#: ../semanage/seobject.py:1638
> +#, python-brace-format
> +msgid "ibendport {ibdev_name}/{port} already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1647
> -#, python-format
> -msgid "Could not create ibendport for %s/%s"
> +#: ../semanage/seobject.py:1642
> +#, python-brace-format
> +msgid "Could not create ibendport for {ibdev_name}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1657
> -#, python-format
> -msgid "Could not set user in ibendport context for %s/%s"
> +#: ../semanage/seobject.py:1648
> +#, python-brace-format
> +msgid "Could not create context for {ibendport}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1661
> -#, python-format
> -msgid "Could not set role in ibendport context for %s/%s"
> +#: ../semanage/seobject.py:1652
> +#, python-brace-format
> +msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
> +msgstr ""
> +
> +#: ../semanage/seobject.py:1656
> +#, python-brace-format
> +msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
> +msgstr ""
> +
> +#: ../semanage/seobject.py:1660
> +#, python-brace-format
> +msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
> msgstr ""
>
> #: ../semanage/seobject.py:1665
> -#, python-format
> -msgid "Could not set type in ibendport context for %s/%s"
> +#, python-brace-format
> +msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1670
> -#, python-format
> -msgid "Could not set mls fields in ibendport context for %s/%s"
> +#: ../semanage/seobject.py:1669
> +#, python-brace-format
> +msgid "Could not set ibendport context for {ibdev_name}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1674
> -#, python-format
> -msgid "Could not set ibendport context for %s/%s"
> +#: ../semanage/seobject.py:1673
> +#, python-brace-format
> +msgid "Could not add ibendport {ibdev_name}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1678
> -#, python-format
> -msgid "Could not add ibendport %s/%s"
> +#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
> +#: ../semanage/seobject.py:1758
> +#, python-brace-format
> +msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
> -#, python-format
> -msgid "ibendport %s/%s is not defined"
> +#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
> +#, python-brace-format
> +msgid "ibendport {ibdev_name}/{ibendport} is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1711
> -#, python-format
> -msgid "Could not query ibendport %s/%s"
> +#: ../semanage/seobject.py:1706
> +#, python-brace-format
> +msgid "Could not query ibendport {ibdev_name}/{ibendport}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1722
> -#, python-format
> -msgid "Could not modify ibendport %s/%s"
> +#: ../semanage/seobject.py:1717
> +#, python-brace-format
> +msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1735
> +#: ../semanage/seobject.py:1730
> msgid "Could not list the ibendports"
> msgstr ""
>
> -#: ../semanage/seobject.py:1744
> -#, python-format
> -msgid "Could not create a key for %s/%d"
> +#: ../semanage/seobject.py:1739
> +#, python-brace-format
> +msgid "Could not create a key for {ibdev_name}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1748
> -#, python-format
> -msgid "Could not delete the ibendport %s/%d"
> +#: ../semanage/seobject.py:1743
> +#, python-brace-format
> +msgid "Could not delete the ibendport {ibdev_name}/{port}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1765
> -#, python-format
> -msgid "ibendport %s/%s is defined in policy, cannot be deleted"
> +#: ../semanage/seobject.py:1760
> +#, python-brace-format
> +msgid ""
> +"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:1769
> -#, python-format
> -msgid "Could not delete ibendport %s/%s"
> +#: ../semanage/seobject.py:1764
> +#, python-brace-format
> +msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
> msgstr ""
>
> -#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
> +#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
> msgid "Could not list ibendports"
> msgstr ""
>
> -#: ../semanage/seobject.py:1835
> +#: ../semanage/seobject.py:1830
> msgid "SELinux IB End Port Type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1835
> +#: ../semanage/seobject.py:1830
> msgid "IB Device Name"
> msgstr ""
>
> -#: ../semanage/seobject.py:1861
> +#: ../semanage/seobject.py:1856
> msgid "Node Address is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
> +#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
> msgid "Unknown or missing protocol"
> msgstr ""
>
> -#: ../semanage/seobject.py:1899
> +#: ../semanage/seobject.py:1894
> msgid "SELinux node type is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
> +#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
> #, python-format
> msgid "Type %s is invalid, must be a node type"
> msgstr ""
>
> -#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
> -#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
> -#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
> -#: ../semanage/seobject.py:2435
> +#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
> +#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
> +#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
> +#: ../semanage/seobject.py:2430
> #, python-format
> msgid "Could not create key for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
> -#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
> +#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
> +#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
> #, python-format
> msgid "Could not check if addr %s is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1914
> +#: ../semanage/seobject.py:1909
> #, python-format
> msgid "Addr %s already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1918
> +#: ../semanage/seobject.py:1913
> #, python-format
> msgid "Could not create addr for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
> -#: ../semanage/seobject.py:2389
> +#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
> +#: ../semanage/seobject.py:2384
> #, python-format
> msgid "Could not create context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1928
> +#: ../semanage/seobject.py:1923
> #, python-format
> msgid "Could not set mask for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1932
> +#: ../semanage/seobject.py:1927
> #, python-format
> msgid "Could not set user in addr context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1936
> +#: ../semanage/seobject.py:1931
> #, python-format
> msgid "Could not set role in addr context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1940
> +#: ../semanage/seobject.py:1935
> #, python-format
> msgid "Could not set type in addr context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1945
> +#: ../semanage/seobject.py:1940
> #, python-format
> msgid "Could not set mls fields in addr context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1949
> +#: ../semanage/seobject.py:1944
> #, python-format
> msgid "Could not set addr context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1953
> +#: ../semanage/seobject.py:1948
> #, python-format
> msgid "Could not add addr %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
> +#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
> #, python-format
> msgid "Addr %s is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:1989
> +#: ../semanage/seobject.py:1984
> #, python-format
> msgid "Could not query addr %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:1999
> +#: ../semanage/seobject.py:1994
> #, python-format
> msgid "Could not modify addr %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2028
> +#: ../semanage/seobject.py:2023
> #, python-format
> msgid "Addr %s is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:2032
> +#: ../semanage/seobject.py:2027
> #, python-format
> msgid "Could not delete addr %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2046
> +#: ../semanage/seobject.py:2041
> msgid "Could not deleteall node mappings"
> msgstr ""
>
> -#: ../semanage/seobject.py:2060
> +#: ../semanage/seobject.py:2055
> msgid "Could not list addrs"
> msgstr ""
>
> -#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
> +#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
> msgid "SELinux Type is required"
> msgstr ""
>
> -#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
> -#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
> +#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
> +#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
> #, python-format
> msgid "Could not check if interface %s is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2123
> +#: ../semanage/seobject.py:2118
> #, python-format
> msgid "Interface %s already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2127
> +#: ../semanage/seobject.py:2122
> #, python-format
> msgid "Could not create interface for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2136
> +#: ../semanage/seobject.py:2131
> #, python-format
> msgid "Could not set user in interface context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2140
> +#: ../semanage/seobject.py:2135
> #, python-format
> msgid "Could not set role in interface context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2144
> +#: ../semanage/seobject.py:2139
> #, python-format
> msgid "Could not set type in interface context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2149
> +#: ../semanage/seobject.py:2144
> #, python-format
> msgid "Could not set mls fields in interface context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2153
> +#: ../semanage/seobject.py:2148
> #, python-format
> msgid "Could not set interface context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2157
> +#: ../semanage/seobject.py:2152
> #, python-format
> msgid "Could not set message context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2161
> +#: ../semanage/seobject.py:2156
> #, python-format
> msgid "Could not add interface %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
> +#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
> #, python-format
> msgid "Interface %s is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2190
> +#: ../semanage/seobject.py:2185
> #, python-format
> msgid "Could not query interface %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2201
> +#: ../semanage/seobject.py:2196
> #, python-format
> msgid "Could not modify interface %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2228
> +#: ../semanage/seobject.py:2223
> #, python-format
> msgid "Interface %s is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:2232
> +#: ../semanage/seobject.py:2227
> #, python-format
> msgid "Could not delete interface %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2246
> +#: ../semanage/seobject.py:2241
> msgid "Could not delete all interface mappings"
> msgstr ""
>
> -#: ../semanage/seobject.py:2260
> +#: ../semanage/seobject.py:2255
> msgid "Could not list interfaces"
> msgstr ""
>
> -#: ../semanage/seobject.py:2285
> +#: ../semanage/seobject.py:2280
> msgid "SELinux Interface"
> msgstr ""
>
> -#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
> +#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
> msgid "Context"
> msgstr ""
>
> -#: ../semanage/seobject.py:2355
> +#: ../semanage/seobject.py:2350
> #, python-format
> msgid "Target %s is not valid. Target is not allowed to end with '/'"
> msgstr ""
>
> -#: ../semanage/seobject.py:2358
> +#: ../semanage/seobject.py:2353
> #, python-format
> msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
> msgstr ""
>
> -#: ../semanage/seobject.py:2361
> +#: ../semanage/seobject.py:2356
> #, python-format
> msgid "Equivalence class for %s already exists"
> msgstr ""
>
> -#: ../semanage/seobject.py:2367
> +#: ../semanage/seobject.py:2362
> #, python-format
> msgid "File spec %s conflicts with equivalency rule '%s %s'"
> msgstr ""
>
> -#: ../semanage/seobject.py:2378
> +#: ../semanage/seobject.py:2373
> #, python-format
> msgid "Equivalence class for %s does not exist"
> msgstr ""
>
> -#: ../semanage/seobject.py:2395
> +#: ../semanage/seobject.py:2390
> #, python-format
> msgid "Could not set user in file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2399
> +#: ../semanage/seobject.py:2394
> #, python-format
> msgid "Could not set role in file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
> +#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
> #, python-format
> msgid "Could not set mls fields in file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2410
> +#: ../semanage/seobject.py:2405
> msgid "Invalid file specification"
> msgstr ""
>
> -#: ../semanage/seobject.py:2412
> +#: ../semanage/seobject.py:2407
> msgid "File specification can not include spaces"
> msgstr ""
>
> -#: ../semanage/seobject.py:2417
> +#: ../semanage/seobject.py:2412
> #, python-format
> msgid ""
> "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
> msgstr ""
>
> -#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
> +#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
> #, python-format
> msgid "Type %s is invalid, must be a file or device type"
> msgstr ""
>
> -#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
> -#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
> -#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
> +#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
> +#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
> +#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
> #, python-format
> msgid "Could not check if file context for %s is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2447
> +#: ../semanage/seobject.py:2442
> #, python-format
> msgid "File context for %s already defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2451
> +#: ../semanage/seobject.py:2446
> #, python-format
> msgid "Could not create file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2459
> +#: ../semanage/seobject.py:2454
> #, python-format
> msgid "Could not set type in file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
> -#: ../semanage/seobject.py:2543
> +#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
> +#: ../semanage/seobject.py:2538
> #, python-format
> msgid "Could not set file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2473
> +#: ../semanage/seobject.py:2468
> #, python-format
> msgid "Could not add file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2492
> +#: ../semanage/seobject.py:2487
> msgid "Requires setype, serange or seuser"
> msgstr ""
>
> -#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
> +#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
> #, python-format
> msgid "Could not query file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
> +#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
> #, python-format
> msgid "File context for %s is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2547
> +#: ../semanage/seobject.py:2542
> #, python-format
> msgid "Could not modify file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2565
> +#: ../semanage/seobject.py:2560
> msgid "Could not list the file contexts"
> msgstr ""
>
> -#: ../semanage/seobject.py:2579
> +#: ../semanage/seobject.py:2574
> #, python-format
> msgid "Could not delete the file context %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2609
> +#: ../semanage/seobject.py:2604
> #, python-format
> msgid "File context for %s is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:2615
> +#: ../semanage/seobject.py:2610
> #, python-format
> msgid "Could not delete file context for %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2632
> +#: ../semanage/seobject.py:2627
> msgid "Could not list file contexts"
> msgstr ""
>
> -#: ../semanage/seobject.py:2636
> +#: ../semanage/seobject.py:2631
> msgid "Could not list file contexts for home directories"
> msgstr ""
>
> -#: ../semanage/seobject.py:2640
> +#: ../semanage/seobject.py:2635
> msgid "Could not list local file contexts"
> msgstr ""
>
> -#: ../semanage/seobject.py:2677
> +#: ../semanage/seobject.py:2672
> msgid "SELinux fcontext"
> msgstr ""
>
> -#: ../semanage/seobject.py:2690
> +#: ../semanage/seobject.py:2685
> msgid ""
> "\n"
> "SELinux Distribution fcontext Equivalence \n"
> msgstr ""
>
> -#: ../semanage/seobject.py:2695
> +#: ../semanage/seobject.py:2690
> msgid ""
> "\n"
> "SELinux Local fcontext Equivalence \n"
> msgstr ""
>
> -#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
> -#: ../semanage/seobject.py:2790
> +#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
> +#: ../semanage/seobject.py:2785
> #, python-format
> msgid "Could not check if boolean %s is defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
> +#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
> #, python-format
> msgid "Boolean %s is not defined"
> msgstr ""
>
> -#: ../semanage/seobject.py:2739
> +#: ../semanage/seobject.py:2734
> #, python-format
> msgid "Could not query file context %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2744
> +#: ../semanage/seobject.py:2739
> #, python-format
> msgid "You must specify one of the following values: %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2749
> +#: ../semanage/seobject.py:2744
> #, python-format
> msgid "Could not set active value of boolean %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2752
> +#: ../semanage/seobject.py:2747
> #, python-format
> msgid "Could not modify boolean %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2768
> -#, python-format
> -msgid "Bad format %s: Record %s"
> +#: ../semanage/seobject.py:2763
> +#, python-brace-format
> +msgid "Bad format {filename}: Record {record}"
> msgstr ""
>
> -#: ../semanage/seobject.py:2792
> +#: ../semanage/seobject.py:2787
> #, python-format
> msgid "Boolean %s is defined in policy, cannot be deleted"
> msgstr ""
>
> -#: ../semanage/seobject.py:2796
> +#: ../semanage/seobject.py:2791
> #, python-format
> msgid "Could not delete boolean %s"
> msgstr ""
>
> -#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
> +#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
> msgid "Could not list booleans"
> msgstr ""
>
> -#: ../semanage/seobject.py:2858
> +#: ../semanage/seobject.py:2853
> msgid "off"
> msgstr ""
>
> -#: ../semanage/seobject.py:2858
> +#: ../semanage/seobject.py:2853
> msgid "on"
> msgstr ""
>
> -#: ../semanage/seobject.py:2870
> +#: ../semanage/seobject.py:2865
> msgid "SELinux boolean"
> msgstr ""
>
> -#: ../semanage/seobject.py:2870
> +#: ../semanage/seobject.py:2865
> msgid "State"
> msgstr ""
>
> -#: ../semanage/seobject.py:2870
> +#: ../semanage/seobject.py:2865
> msgid "Default"
> msgstr ""
>
> -#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
> +#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
> #: ../sepolicy/sepolicy/sepolicy.glade:2510
> #: ../sepolicy/sepolicy/sepolicy.glade:5099
> msgid "Description"
> @@ -1555,151 +1566,151 @@ msgstr ""
> msgid "Missing interface definition for %s"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:140
> +#: ../sepolicy/sepolicy/generate.py:138
> msgid "Standard Init Daemon"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:141
> +#: ../sepolicy/sepolicy/generate.py:139
> msgid "DBUS System Daemon"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:142
> +#: ../sepolicy/sepolicy/generate.py:140
> msgid "Internet Services Daemon"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:143
> +#: ../sepolicy/sepolicy/generate.py:141
> msgid "Web Application/Script (CGI)"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:144
> +#: ../sepolicy/sepolicy/generate.py:142
> msgid "Sandbox"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:145
> +#: ../sepolicy/sepolicy/generate.py:143
> msgid "User Application"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:146
> +#: ../sepolicy/sepolicy/generate.py:144
> msgid "Existing Domain Type"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:147
> +#: ../sepolicy/sepolicy/generate.py:145
> msgid "Minimal Terminal Login User Role"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:148
> +#: ../sepolicy/sepolicy/generate.py:146
> msgid "Minimal X Windows Login User Role"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:149
> +#: ../sepolicy/sepolicy/generate.py:147
> msgid "Desktop Login User Role"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:150
> +#: ../sepolicy/sepolicy/generate.py:148
> msgid "Administrator Login User Role"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:151
> +#: ../sepolicy/sepolicy/generate.py:149
> msgid "Confined Root Administrator Role"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:152
> +#: ../sepolicy/sepolicy/generate.py:150
> msgid "Module information for a new type"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:158
> +#: ../sepolicy/sepolicy/generate.py:156
> msgid "Valid Types:\n"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:193
> +#: ../sepolicy/sepolicy/generate.py:191
> #, python-format
> msgid "Ports must be numbers or ranges of numbers from 1 to %d "
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:205
> +#: ../sepolicy/sepolicy/generate.py:203
> msgid "You must enter a valid policy type"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:208
> +#: ../sepolicy/sepolicy/generate.py:206
> #, python-format
> msgid "You must enter a name for your policy module for your '%s'."
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:346
> +#: ../sepolicy/sepolicy/generate.py:344
> msgid ""
> "Name must be alphanumeric with no spaces. Consider using option \"-n "
> "MODULENAME\""
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:438
> +#: ../sepolicy/sepolicy/generate.py:436
> msgid "User Role types can not be assigned executables."
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:444
> +#: ../sepolicy/sepolicy/generate.py:442
> msgid "Only Daemon apps can use an init script."
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:462
> +#: ../sepolicy/sepolicy/generate.py:460
> msgid "use_resolve must be a boolean value "
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:468
> +#: ../sepolicy/sepolicy/generate.py:466
> msgid "use_syslog must be a boolean value "
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:474
> +#: ../sepolicy/sepolicy/generate.py:472
> msgid "use_kerberos must be a boolean value "
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:480
> +#: ../sepolicy/sepolicy/generate.py:478
> msgid "manage_krb5_rcache must be a boolean value "
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:510
> +#: ../sepolicy/sepolicy/generate.py:508
> msgid "USER Types automatically get a tmp type"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:847
> +#: ../sepolicy/sepolicy/generate.py:845
> #, python-format
> msgid "'%s' policy modules require existing domains"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:872
> +#: ../sepolicy/sepolicy/generate.py:870
> msgid "Type field required"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:885
> +#: ../sepolicy/sepolicy/generate.py:883
> #, python-format
> msgid ""
> "You need to define a new type which ends with: \n"
> " %s"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1113
> +#: ../sepolicy/sepolicy/generate.py:1111
> msgid "You must enter the executable path for your confined process"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1378
> +#: ../sepolicy/sepolicy/generate.py:1376
> msgid "Created the following files:\n"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1379
> +#: ../sepolicy/sepolicy/generate.py:1377
> msgid "Type Enforcement file"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1380
> +#: ../sepolicy/sepolicy/generate.py:1378
> msgid "Interface file"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1381
> +#: ../sepolicy/sepolicy/generate.py:1379
> msgid "File Contexts file"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1383
> +#: ../sepolicy/sepolicy/generate.py:1381
> msgid "Spec file"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/generate.py:1384
> +#: ../sepolicy/sepolicy/generate.py:1382
> msgid "Setup Script"
> msgstr ""
>
> @@ -2367,29 +2378,29 @@ msgstr ""
> msgid "named pipe"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/__init__.py:148
> +#: ../sepolicy/sepolicy/__init__.py:149
> msgid "No SELinux Policy installed"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/__init__.py:184
> +#: ../sepolicy/sepolicy/__init__.py:185
> #, python-format
> msgid "Failed to read %s policy file"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/__init__.py:470
> +#: ../sepolicy/sepolicy/__init__.py:471
> #, python-format
> msgid "-- Allowed %s [ %s ]"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/__init__.py:896
> +#: ../sepolicy/sepolicy/__init__.py:897
> msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/__init__.py:1221
> +#: ../sepolicy/sepolicy/__init__.py:1230
> msgid "unknown"
> msgstr ""
>
> -#: ../sepolicy/sepolicy/__init__.py:1230
> +#: ../sepolicy/sepolicy/__init__.py:1239
> #, python-brace-format
> msgid "Allow {subject} to {rest}"
> msgstr ""
For all four patches:
Reviewed-by: Vit Mojzis <vmojzis@redhat.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v4 4/4] python: update python.pot
2023-06-13 12:37 ` Vit Mojzis
@ 2023-06-27 13:55 ` Petr Lautrbach
2023-07-06 13:39 ` James Carter
0 siblings, 1 reply; 26+ messages in thread
From: Petr Lautrbach @ 2023-06-27 13:55 UTC (permalink / raw)
To: Vit Mojzis, selinux
Vit Mojzis <vmojzis@redhat.com> writes:
> On 6/13/23 13:20, Petr Lautrbach wrote:
>> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
> For all four patches:
> Reviewed-by: Vit Mojzis <vmojzis@redhat.com>
Thanks.
If there's no objection I'd like to merge this soon.
>> ---
>> python/po/python.pot | 963 ++++++++++++++++++++++---------------------
>> 1 file changed, 487 insertions(+), 476 deletions(-)
>>
>> diff --git a/python/po/python.pot b/python/po/python.pot
>> index 16d04eb0f18e..435a1b764e34 100644
>> --- a/python/po/python.pot
>> +++ b/python/po/python.pot
>> @@ -8,7 +8,7 @@ msgid ""
>> msgstr ""
>> "Project-Id-Version: PACKAGE VERSION\n"
>> "Report-Msgid-Bugs-To: \n"
>> -"POT-Creation-Date: 2023-01-18 11:57+0100\n"
>> +"POT-Creation-Date: 2023-06-12 18:13+0200\n"
>> "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
>> "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
>> "Language-Team: LANGUAGE <LL@li.org>\n"
>> @@ -17,17 +17,12 @@ msgstr ""
>> "Content-Type: text/plain; charset=UTF-8\n"
>> "Content-Transfer-Encoding: 8bit\n"
>>
>> -#: ../audit2allow/audit2allow:239
>> -msgid "******************** IMPORTANT ***********************\n"
>> +#: ../audit2allow/audit2allow:244
>> +msgid "IMPORTANT"
>> msgstr ""
>>
>> -#: ../audit2allow/audit2allow:240
>> -#, python-format
>> -msgid ""
>> -"To make this policy package active, execute:\n"
>> -"\n"
>> -"semodule -i %s\n"
>> -"\n"
>> +#: ../audit2allow/audit2allow:245
>> +msgid "To make this policy package active, execute:"
>> msgstr ""
>>
>> #: ../chcat/chcat:111 ../chcat/chcat:191
>> @@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
>> msgstr ""
>>
>> #: ../chcat/chcat:128
>> -#, python-format
>> -msgid "%s is already in %s"
>> +#, python-brace-format
>> +msgid "{target} is already in {category}"
>> msgstr ""
>>
>> #: ../chcat/chcat:210 ../chcat/chcat:220
>> -#, python-format
>> -msgid "%s is not in %s"
>> +#, python-brace-format
>> +msgid "{target} is not in {category}"
>> msgstr ""
>>
>> #: ../chcat/chcat:291 ../chcat/chcat:296
>> @@ -152,218 +147,222 @@ msgstr ""
>>
>> #: ../semanage/semanage:242
>> msgid ""
>> -"\n"
>> -"MLS/MCS Security Range (MLS/MCS Systems only)\n"
>> -"SELinux Range for SELinux login mapping\n"
>> -"defaults to the SELinux user record range.\n"
>> -"SELinux Range for SELinux user defaults to s0.\n"
>> +"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
>> +"login mapping defaults to the SELinux user record range. SELinux Range for "
>> +"SELinux user defaults to s0."
>> msgstr ""
>>
>> -#: ../semanage/semanage:251
>> +#: ../semanage/semanage:249
>> msgid ""
>> -"\n"
>> -" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
>> -"protocol\n"
>> -" version for the specified node (ipv4|ipv6).\n"
>> +"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
>> +"version for the specified node (ipv4|ipv6)."
>> msgstr ""
>>
>> -#: ../semanage/semanage:257
>> -msgid ""
>> -"\n"
>> -" Subnet prefix for the specified infiniband ibpkey.\n"
>> +#: ../semanage/semanage:253
>> +msgid "Subnet prefix for the specified infiniband ibpkey."
>> msgstr ""
>>
>> -#: ../semanage/semanage:262
>> -msgid ""
>> -"\n"
>> -" Name for the specified infiniband end port.\n"
>> +#: ../semanage/semanage:256
>> +msgid "Name for the specified infiniband end port."
>> msgstr ""
>>
>> -#: ../semanage/semanage:267
>> +#: ../semanage/semanage:259
>> #, python-format
>> msgid "Modify a record of the %s object type"
>> msgstr ""
>>
>> -#: ../semanage/semanage:271
>> +#: ../semanage/semanage:263
>> #, python-format
>> msgid "List records of the %s object type"
>> msgstr ""
>>
>> -#: ../semanage/semanage:275
>> +#: ../semanage/semanage:267
>> #, python-format
>> msgid "Delete a record of the %s object type"
>> msgstr ""
>>
>> -#: ../semanage/semanage:279
>> +#: ../semanage/semanage:271
>> msgid "Extract customizable commands, for use within a transaction"
>> msgstr ""
>>
>> -#: ../semanage/semanage:283
>> +#: ../semanage/semanage:275
>> #, python-format
>> msgid "Remove all %s objects local customizations"
>> msgstr ""
>>
>> -#: ../semanage/semanage:287
>> +#: ../semanage/semanage:279
>> msgid "SELinux user name"
>> msgstr ""
>>
>> -#: ../semanage/semanage:292
>> +#: ../semanage/semanage:284
>> msgid "Manage login mappings between linux users and SELinux confined users"
>> msgstr ""
>>
>> -#: ../semanage/semanage:309
>> +#: ../semanage/semanage:301
>> #, python-format
>> msgid "login_name | %%groupname"
>> msgstr ""
>>
>> -#: ../semanage/semanage:361
>> +#: ../semanage/semanage:344
>> msgid "Manage file context mapping definitions"
>> msgstr ""
>>
>> -#: ../semanage/semanage:375
>> +#: ../semanage/semanage:359
>> +msgid ""
>> +"Substitute target path with sourcepath when generating default label. This "
>> +"is used with fcontext. Requires source and target path arguments. The "
>> +"context labeling for the target subtree is made equivalent to that defined "
>> +"for the source."
>> +msgstr ""
>> +
>> +#: ../semanage/semanage:363
>> msgid ""
>> -"Substitute target path with sourcepath when generating default\n"
>> -" label. "
>> -"This is used with fcontext. Requires source and target\n"
>> -" path "
>> -"arguments. The context labeling for the target subtree is\n"
>> -" made "
>> -"equivalent to that defined for the source."
>> +"File Type. This is used with fcontext. Requires a file type as shown in the "
>> +"mode field by ls, e.g. use d to match only directories or f to match only "
>> +"regular files. The following file type options can be passed: f (regular "
>> +"file), d (directory), c (character device), b (block device), s (socket), l "
>> +"(symbolic link), p (named pipe). If you do not specify a file type, the file "
>> +"type will default to \"all files\"."
>> msgstr ""
>>
>> -#: ../semanage/semanage:383
>> +#: ../semanage/semanage:371
>> msgid ""
>> "Path to be labeled (may be in the form of a Perl compatible regular "
>> "expression)"
>> msgstr ""
>>
>> -#: ../semanage/semanage:411
>> +#: ../semanage/semanage:399
>> msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
>> msgstr ""
>>
>> -#: ../semanage/semanage:429
>> +#: ../semanage/semanage:417
>> msgid ""
>> -"\n"
>> -"SELinux Roles. You must enclose multiple roles within quotes, separate by "
>> -"spaces. Or specify -R multiple times.\n"
>> +"SELinux Roles. You must enclose multiple roles within quotes, separate by "
>> +"spaces. Or specify -R multiple times."
>> msgstr ""
>>
>> -#: ../semanage/semanage:433
>> +#: ../semanage/semanage:419
>> msgid "selinux_name"
>> msgstr ""
>>
>> -#: ../semanage/semanage:461
>> +#: ../semanage/semanage:447
>> msgid "Manage network port type definitions"
>> msgstr ""
>>
>> -#: ../semanage/semanage:477
>> +#: ../semanage/semanage:463
>> msgid "port | port_range"
>> msgstr ""
>>
>> -#: ../semanage/semanage:506
>> +#: ../semanage/semanage:492
>> msgid "Manage infiniband ibpkey type definitions"
>> msgstr ""
>>
>> -#: ../semanage/semanage:522
>> +#: ../semanage/semanage:508
>> msgid "pkey | pkey_range"
>> msgstr ""
>>
>> -#: ../semanage/semanage:549
>> +#: ../semanage/semanage:535
>> msgid "Manage infiniband end port type definitions"
>> msgstr ""
>>
>> -#: ../semanage/semanage:565
>> +#: ../semanage/semanage:551
>> msgid "ibendport"
>> msgstr ""
>>
>> -#: ../semanage/semanage:592
>> +#: ../semanage/semanage:578
>> msgid "Manage network interface type definitions"
>> msgstr ""
>>
>> -#: ../semanage/semanage:607
>> +#: ../semanage/semanage:593
>> msgid "interface_spec"
>> msgstr ""
>>
>> -#: ../semanage/semanage:631
>> +#: ../semanage/semanage:617
>> msgid "Manage SELinux policy modules"
>> msgstr ""
>>
>> -#: ../semanage/semanage:642
>> +#: ../semanage/semanage:628
>> msgid "Add a module"
>> msgstr ""
>>
>> -#: ../semanage/semanage:643
>> +#: ../semanage/semanage:629
>> msgid "Remove a module"
>> msgstr ""
>>
>> -#: ../semanage/semanage:644
>> +#: ../semanage/semanage:630
>> msgid "Disable a module"
>> msgstr ""
>>
>> -#: ../semanage/semanage:645
>> +#: ../semanage/semanage:631
>> msgid "Enable a module"
>> msgstr ""
>>
>> -#: ../semanage/semanage:672
>> +#: ../semanage/semanage:658
>> msgid "Manage network node type definitions"
>> msgstr ""
>>
>> -#: ../semanage/semanage:686
>> +#: ../semanage/semanage:672
>> msgid "Network Mask"
>> msgstr ""
>>
>> -#: ../semanage/semanage:690
>> +#: ../semanage/semanage:676
>> msgid "node"
>> msgstr ""
>>
>> -#: ../semanage/semanage:715
>> +#: ../semanage/semanage:701
>> msgid "Manage booleans to selectively enable functionality"
>> msgstr ""
>>
>> -#: ../semanage/semanage:720
>> +#: ../semanage/semanage:706
>> msgid "boolean"
>> msgstr ""
>>
>> -#: ../semanage/semanage:730
>> +#: ../semanage/semanage:716
>> msgid "Enable the boolean"
>> msgstr ""
>>
>> -#: ../semanage/semanage:731
>> +#: ../semanage/semanage:717
>> msgid "Disable the boolean"
>> msgstr ""
>>
>> -#: ../semanage/semanage:752
>> +#: ../semanage/semanage:738
>> msgid "semanage permissive: error: the following argument is required: type\n"
>> msgstr ""
>>
>> -#: ../semanage/semanage:756
>> +#: ../semanage/semanage:742
>> msgid "Manage process type enforcement mode"
>> msgstr ""
>>
>> -#: ../semanage/semanage:768 ../semanage/seobject.py:2677
>> +#: ../semanage/semanage:754 ../semanage/seobject.py:2672
>> msgid "type"
>> msgstr ""
>>
>> -#: ../semanage/semanage:779
>> +#: ../semanage/semanage:765
>> msgid "Disable/Enable dontaudit rules in policy"
>> msgstr ""
>>
>> -#: ../semanage/semanage:799
>> +#: ../semanage/semanage:785
>> msgid "Output local customizations"
>> msgstr ""
>>
>> -#: ../semanage/semanage:801
>> +#: ../semanage/semanage:787
>> msgid "Output file"
>> msgstr ""
>>
>> -#: ../semanage/semanage:894
>> +#: ../semanage/semanage:880
>> msgid "Import local customizations"
>> msgstr ""
>>
>> -#: ../semanage/semanage:897
>> +#: ../semanage/semanage:883
>> msgid "Input file"
>> msgstr ""
>>
>> +#: ../semanage/semanage:891
>> +msgid ""
>> +"semanage is used to configure certain elements of SELinux policy with-out "
>> +"requiring modification or recompilation from policy source."
>> +msgstr ""
>> +
>> #: ../semanage/seobject.py:279
>> msgid "Could not create semanage handle"
>> msgstr ""
>> @@ -485,123 +484,115 @@ msgstr ""
>> msgid "Customized Permissive Types"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:510
>> -msgid ""
>> -"The sepolgen python module is required to setup permissive domains.\n"
>> -"In some distributions it is included in the policycoreutils-devel package.\n"
>> -"# yum install policycoreutils-devel\n"
>> -"Or similar for your distro."
>> -msgstr ""
>> -
>> -#: ../semanage/seobject.py:520
>> +#: ../semanage/seobject.py:515
>> #, python-format
>> msgid "Could not set permissive domain %s (module installation failed)"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:526
>> +#: ../semanage/seobject.py:521
>> #, python-format
>> msgid "Could not remove permissive domain %s (remove failed)"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
>> -#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
>> -#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
>> -#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
>> -#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
>> -#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
>> -#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
>> +#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
>> +#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
>> +#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
>> +#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
>> +#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
>> +#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
>> +#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
>> #, python-format
>> msgid "Could not create a key for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
>> -#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
>> +#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
>> +#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
>> #, python-format
>> msgid "Could not check if login mapping for %s is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:569
>> +#: ../semanage/seobject.py:564
>> #, python-format
>> msgid "Login mapping for %s is already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:574
>> +#: ../semanage/seobject.py:569
>> #, python-format
>> msgid "Linux Group %s does not exist"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:579
>> +#: ../semanage/seobject.py:574
>> #, python-format
>> msgid "Linux User %s does not exist"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:583
>> +#: ../semanage/seobject.py:578
>> #, python-format
>> msgid "Could not create login mapping for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
>> +#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
>> #, python-format
>> msgid "Could not set name for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
>> +#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
>> #, python-format
>> msgid "Could not set MLS range for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:596
>> +#: ../semanage/seobject.py:591
>> #, python-format
>> msgid "Could not set SELinux user for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:600
>> +#: ../semanage/seobject.py:595
>> #, python-format
>> msgid "Could not add login mapping for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:616
>> +#: ../semanage/seobject.py:611
>> msgid "Requires seuser or serange"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
>> +#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
>> #, python-format
>> msgid "Login mapping for %s is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:643
>> +#: ../semanage/seobject.py:638
>> #, python-format
>> msgid "Could not query seuser for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:658
>> +#: ../semanage/seobject.py:653
>> #, python-format
>> msgid "Could not modify login mapping for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:690
>> +#: ../semanage/seobject.py:685
>> #, python-format
>> msgid "Login mapping for %s is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:694
>> +#: ../semanage/seobject.py:689
>> #, python-format
>> msgid "Could not delete login mapping for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
>> -#: ../semanage/seobject.py:991
>> +#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
>> +#: ../semanage/seobject.py:986
>> msgid "Could not list login mappings"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
>> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
>> #: ../sepolicy/sepolicy/sepolicy.glade:1156
>> #: ../sepolicy/sepolicy/sepolicy.glade:3138
>> msgid "Login Name"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
>> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
>> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
>> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
>> #: ../sepolicy/sepolicy/sepolicy.glade:1182
>> #: ../sepolicy/sepolicy/sepolicy.glade:3156
>> #: ../sepolicy/sepolicy/sepolicy.glade:3242
>> @@ -609,938 +600,958 @@ msgstr ""
>> msgid "SELinux User"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:772
>> +#: ../semanage/seobject.py:767
>> msgid "MLS/MCS Range"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:772
>> +#: ../semanage/seobject.py:767
>> msgid "Service"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
>> -#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
>> -#: ../semanage/seobject.py:958
>> +#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
>> +#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
>> +#: ../semanage/seobject.py:953
>> #, python-format
>> msgid "Could not check if SELinux user %s is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
>> -#: ../semanage/seobject.py:964
>> +#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
>> +#: ../semanage/seobject.py:959
>> #, python-format
>> msgid "Could not query user for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:823
>> +#: ../semanage/seobject.py:818
>> #, python-format
>> msgid "You must add at least one role for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:833
>> +#: ../semanage/seobject.py:828
>> #, python-format
>> msgid "SELinux user %s is already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:837
>> +#: ../semanage/seobject.py:832
>> #, python-format
>> msgid "Could not create SELinux user for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:846
>> -#, python-format
>> -msgid "Could not add role %s for %s"
>> +#: ../semanage/seobject.py:841
>> +#, python-brace-format
>> +msgid "Could not add role {role} for {name}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:855
>> +#: ../semanage/seobject.py:850
>> #, python-format
>> msgid "Could not set MLS level for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:858
>> -#, python-format
>> -msgid "Could not add prefix %s for %s"
>> +#: ../semanage/seobject.py:853
>> +#, python-brace-format
>> +msgid "Could not add prefix {prefix} for {role}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:861
>> +#: ../semanage/seobject.py:856
>> #, python-format
>> msgid "Could not extract key for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:865
>> +#: ../semanage/seobject.py:860
>> #, python-format
>> msgid "Could not add SELinux user %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:886
>> +#: ../semanage/seobject.py:881
>> msgid "Requires prefix, roles, level or range"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:888
>> +#: ../semanage/seobject.py:883
>> msgid "Requires prefix or roles"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
>> +#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
>> #, python-format
>> msgid "SELinux user %s is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:927
>> +#: ../semanage/seobject.py:922
>> #, python-format
>> msgid "Could not modify SELinux user %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:960
>> +#: ../semanage/seobject.py:955
>> #, python-format
>> msgid "SELinux user %s is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:971
>> +#: ../semanage/seobject.py:966
>> #, python-format
>> msgid "Could not delete SELinux user %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1009
>> +#: ../semanage/seobject.py:1004
>> msgid "Could not list SELinux users"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1015
>> +#: ../semanage/seobject.py:1010
>> #, python-format
>> msgid "Could not list roles for user %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1040
>> +#: ../semanage/seobject.py:1035
>> msgid "Labeling"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1040
>> +#: ../semanage/seobject.py:1035
>> msgid "MLS/"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1041
>> +#: ../semanage/seobject.py:1036
>> msgid "Prefix"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1041
>> +#: ../semanage/seobject.py:1036
>> msgid "MCS Level"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1041
>> +#: ../semanage/seobject.py:1036
>> msgid "MCS Range"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
>> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
>> #: ../sepolicy/sepolicy/sepolicy.glade:3262
>> #: ../sepolicy/sepolicy/sepolicy.glade:5233
>> #: ../sepolicy/sepolicy/sepolicy.glade:5382
>> msgid "SELinux Roles"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1071
>> +#: ../semanage/seobject.py:1066
>> msgid "Protocol has to be one of udp, tcp, dccp or sctp"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1073
>> +#: ../semanage/seobject.py:1068
>> msgid "Port is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1087
>> +#: ../semanage/seobject.py:1082
>> msgid "Invalid Port"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
>> -#, python-format
>> -msgid "Could not create a key for %s/%s"
>> +#: ../semanage/seobject.py:1086
>> +#, python-brace-format
>> +msgid "Could not create a key for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
>> -#: ../semanage/seobject.py:1631
>> +#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
>> +#: ../semanage/seobject.py:1626
>> msgid "Type is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
>> +#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
>> #, python-format
>> msgid "Type %s is invalid, must be a port type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
>> -#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
>> -#, python-format
>> -msgid "Could not check if port %s/%s is defined"
>> +#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
>> +#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
>> +#, python-brace-format
>> +msgid "Could not check if port {proto}/{port} is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1115
>> -#, python-format
>> -msgid "Port %s/%s already defined"
>> +#: ../semanage/seobject.py:1110
>> +#, python-brace-format
>> +msgid "Port {proto}/{port} already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1119
>> -#, python-format
>> -msgid "Could not create port for %s/%s"
>> +#: ../semanage/seobject.py:1114
>> +#, python-brace-format
>> +msgid "Could not create port for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
>> -#: ../semanage/seobject.py:1653
>> -#, python-format
>> -msgid "Could not create context for %s/%s"
>> +#: ../semanage/seobject.py:1120
>> +#, python-brace-format
>> +msgid "Could not create context for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1129
>> -#, python-format
>> -msgid "Could not set user in port context for %s/%s"
>> +#: ../semanage/seobject.py:1124
>> +#, python-brace-format
>> +msgid "Could not set user in port context for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1133
>> -#, python-format
>> -msgid "Could not set role in port context for %s/%s"
>> +#: ../semanage/seobject.py:1128
>> +#, python-brace-format
>> +msgid "Could not set role in port context for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1137
>> -#, python-format
>> -msgid "Could not set type in port context for %s/%s"
>> +#: ../semanage/seobject.py:1132
>> +#, python-brace-format
>> +msgid "Could not set type in port context for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1142
>> -#, python-format
>> -msgid "Could not set mls fields in port context for %s/%s"
>> +#: ../semanage/seobject.py:1137
>> +#, python-brace-format
>> +msgid "Could not set mls fields in port context for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1146
>> -#, python-format
>> -msgid "Could not set port context for %s/%s"
>> +#: ../semanage/seobject.py:1141
>> +#, python-brace-format
>> +msgid "Could not set port context for {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1150
>> -#, python-format
>> -msgid "Could not add port %s/%s"
>> +#: ../semanage/seobject.py:1145
>> +#, python-brace-format
>> +msgid "Could not add port {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
>> -#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
>> -#: ../semanage/seobject.py:2176
>> +#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
>> +#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
>> +#: ../semanage/seobject.py:2171
>> msgid "Requires setype or serange"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
>> -#: ../semanage/seobject.py:1694
>> +#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
>> +#: ../semanage/seobject.py:1689
>> msgid "Requires setype"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
>> -#, python-format
>> -msgid "Port %s/%s is not defined"
>> +#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
>> +#, python-brace-format
>> +msgid "Port {proto}/{port} is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1184
>> -#, python-format
>> -msgid "Could not query port %s/%s"
>> +#: ../semanage/seobject.py:1179
>> +#, python-brace-format
>> +msgid "Could not query port {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1198
>> -#, python-format
>> -msgid "Could not modify port %s/%s"
>> +#: ../semanage/seobject.py:1193
>> +#, python-brace-format
>> +msgid "Could not modify port {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1213
>> +#: ../semanage/seobject.py:1208
>> msgid "Could not list the ports"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1230
>> +#: ../semanage/seobject.py:1225
>> #, python-format
>> msgid "Could not delete the port %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1252
>> -#, python-format
>> -msgid "Port %s/%s is defined in policy, cannot be deleted"
>> +#: ../semanage/seobject.py:1247
>> +#, python-brace-format
>> +msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1256
>> -#, python-format
>> -msgid "Could not delete port %s/%s"
>> +#: ../semanage/seobject.py:1251
>> +#, python-brace-format
>> +msgid "Could not delete port {proto}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
>> +#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
>> msgid "Could not list ports"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
>> +#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
>> #: ../sepolicy/sepolicy/sepolicy.glade:2766
>> #: ../sepolicy/sepolicy/sepolicy.glade:4630
>> msgid "SELinux Port Type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1329
>> +#: ../semanage/seobject.py:1324
>> msgid "Proto"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
>> +#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
>> #: ../sepolicy/sepolicy/sepolicy.glade:1407
>> msgid "Port Number"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1351
>> +#: ../semanage/seobject.py:1346
>> msgid "Subnet Prefix is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1361
>> +#: ../semanage/seobject.py:1356
>> msgid "Invalid Pkey"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
>> +#: ../semanage/seobject.py:1360
>> +#, python-brace-format
>> +msgid "Could not create a key for {subnet_prefix}/{pkey}"
>> +msgstr ""
>> +
>> +#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
>> #, python-format
>> msgid "Type %s is invalid, must be a ibpkey type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
>> -#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
>> -#, python-format
>> -msgid "Could not check if ibpkey %s/%s is defined"
>> +#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
>> +#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
>> +#, python-brace-format
>> +msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1389
>> -#, python-format
>> -msgid "ibpkey %s/%s already defined"
>> +#: ../semanage/seobject.py:1384
>> +#, python-brace-format
>> +msgid "ibpkey {subnet_prefix}/{pkey} already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1393
>> -#, python-format
>> -msgid "Could not create ibpkey for %s/%s"
>> +#: ../semanage/seobject.py:1388
>> +#, python-brace-format
>> +msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1403
>> -#, python-format
>> -msgid "Could not set user in ibpkey context for %s/%s"
>> +#: ../semanage/seobject.py:1394
>> +#, python-brace-format
>> +msgid "Could not create context for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1407
>> -#, python-format
>> -msgid "Could not set role in ibpkey context for %s/%s"
>> +#: ../semanage/seobject.py:1398
>> +#, python-brace-format
>> +msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1411
>> -#, python-format
>> -msgid "Could not set type in ibpkey context for %s/%s"
>> +#: ../semanage/seobject.py:1402
>> +#, python-brace-format
>> +msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1416
>> -#, python-format
>> -msgid "Could not set mls fields in ibpkey context for %s/%s"
>> +#: ../semanage/seobject.py:1406
>> +#, python-brace-format
>> +msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1420
>> -#, python-format
>> -msgid "Could not set ibpkey context for %s/%s"
>> +#: ../semanage/seobject.py:1411
>> +#, python-brace-format
>> +msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1424
>> -#, python-format
>> -msgid "Could not add ibpkey %s/%s"
>> +#: ../semanage/seobject.py:1415
>> +#, python-brace-format
>> +msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
>> -#, python-format
>> -msgid "ibpkey %s/%s is not defined"
>> +#: ../semanage/seobject.py:1419
>> +#, python-brace-format
>> +msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1457
>> -#, python-format
>> -msgid "Could not query ibpkey %s/%s"
>> +#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
>> +#, python-brace-format
>> +msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1468
>> -#, python-format
>> -msgid "Could not modify ibpkey %s/%s"
>> +#: ../semanage/seobject.py:1452
>> +#, python-brace-format
>> +msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1481
>> +#: ../semanage/seobject.py:1463
>> +#, python-brace-format
>> +msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
>> +msgstr ""
>> +
>> +#: ../semanage/seobject.py:1476
>> msgid "Could not list the ibpkeys"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1496
>> +#: ../semanage/seobject.py:1491
>> #, python-format
>> msgid "Could not delete the ibpkey %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1513
>> -#, python-format
>> -msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
>> +#: ../semanage/seobject.py:1508
>> +#, python-brace-format
>> +msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1517
>> -#, python-format
>> -msgid "Could not delete ibpkey %s/%s"
>> +#: ../semanage/seobject.py:1512
>> +#, python-brace-format
>> +msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
>> +#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
>> msgid "Could not list ibpkeys"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1589
>> +#: ../semanage/seobject.py:1584
>> msgid "SELinux IB Pkey Type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1589
>> +#: ../semanage/seobject.py:1584
>> msgid "Subnet_Prefix"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1589
>> +#: ../semanage/seobject.py:1584
>> msgid "Pkey Number"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1611
>> +#: ../semanage/seobject.py:1606
>> msgid "IB device name is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1616
>> +#: ../semanage/seobject.py:1611
>> msgid "Invalid Port Number"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1620
>> -#, python-format
>> -msgid "Could not create a key for ibendport %s/%s"
>> +#: ../semanage/seobject.py:1615
>> +#, python-brace-format
>> +msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
>> +#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
>> #, python-format
>> msgid "Type %s is invalid, must be an ibendport type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
>> -#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
>> -#, python-format
>> -msgid "Could not check if ibendport %s/%s is defined"
>> +#: ../semanage/seobject.py:1636
>> +#, python-brace-format
>> +msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1643
>> -#, python-format
>> -msgid "ibendport %s/%s already defined"
>> +#: ../semanage/seobject.py:1638
>> +#, python-brace-format
>> +msgid "ibendport {ibdev_name}/{port} already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1647
>> -#, python-format
>> -msgid "Could not create ibendport for %s/%s"
>> +#: ../semanage/seobject.py:1642
>> +#, python-brace-format
>> +msgid "Could not create ibendport for {ibdev_name}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1657
>> -#, python-format
>> -msgid "Could not set user in ibendport context for %s/%s"
>> +#: ../semanage/seobject.py:1648
>> +#, python-brace-format
>> +msgid "Could not create context for {ibendport}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1661
>> -#, python-format
>> -msgid "Could not set role in ibendport context for %s/%s"
>> +#: ../semanage/seobject.py:1652
>> +#, python-brace-format
>> +msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
>> +msgstr ""
>> +
>> +#: ../semanage/seobject.py:1656
>> +#, python-brace-format
>> +msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
>> +msgstr ""
>> +
>> +#: ../semanage/seobject.py:1660
>> +#, python-brace-format
>> +msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
>> msgstr ""
>>
>> #: ../semanage/seobject.py:1665
>> -#, python-format
>> -msgid "Could not set type in ibendport context for %s/%s"
>> +#, python-brace-format
>> +msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1670
>> -#, python-format
>> -msgid "Could not set mls fields in ibendport context for %s/%s"
>> +#: ../semanage/seobject.py:1669
>> +#, python-brace-format
>> +msgid "Could not set ibendport context for {ibdev_name}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1674
>> -#, python-format
>> -msgid "Could not set ibendport context for %s/%s"
>> +#: ../semanage/seobject.py:1673
>> +#, python-brace-format
>> +msgid "Could not add ibendport {ibdev_name}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1678
>> -#, python-format
>> -msgid "Could not add ibendport %s/%s"
>> +#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
>> +#: ../semanage/seobject.py:1758
>> +#, python-brace-format
>> +msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
>> -#, python-format
>> -msgid "ibendport %s/%s is not defined"
>> +#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
>> +#, python-brace-format
>> +msgid "ibendport {ibdev_name}/{ibendport} is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1711
>> -#, python-format
>> -msgid "Could not query ibendport %s/%s"
>> +#: ../semanage/seobject.py:1706
>> +#, python-brace-format
>> +msgid "Could not query ibendport {ibdev_name}/{ibendport}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1722
>> -#, python-format
>> -msgid "Could not modify ibendport %s/%s"
>> +#: ../semanage/seobject.py:1717
>> +#, python-brace-format
>> +msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1735
>> +#: ../semanage/seobject.py:1730
>> msgid "Could not list the ibendports"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1744
>> -#, python-format
>> -msgid "Could not create a key for %s/%d"
>> +#: ../semanage/seobject.py:1739
>> +#, python-brace-format
>> +msgid "Could not create a key for {ibdev_name}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1748
>> -#, python-format
>> -msgid "Could not delete the ibendport %s/%d"
>> +#: ../semanage/seobject.py:1743
>> +#, python-brace-format
>> +msgid "Could not delete the ibendport {ibdev_name}/{port}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1765
>> -#, python-format
>> -msgid "ibendport %s/%s is defined in policy, cannot be deleted"
>> +#: ../semanage/seobject.py:1760
>> +#, python-brace-format
>> +msgid ""
>> +"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1769
>> -#, python-format
>> -msgid "Could not delete ibendport %s/%s"
>> +#: ../semanage/seobject.py:1764
>> +#, python-brace-format
>> +msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
>> +#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
>> msgid "Could not list ibendports"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1835
>> +#: ../semanage/seobject.py:1830
>> msgid "SELinux IB End Port Type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1835
>> +#: ../semanage/seobject.py:1830
>> msgid "IB Device Name"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1861
>> +#: ../semanage/seobject.py:1856
>> msgid "Node Address is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
>> +#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
>> msgid "Unknown or missing protocol"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1899
>> +#: ../semanage/seobject.py:1894
>> msgid "SELinux node type is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
>> +#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
>> #, python-format
>> msgid "Type %s is invalid, must be a node type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
>> -#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
>> -#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
>> -#: ../semanage/seobject.py:2435
>> +#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
>> +#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
>> +#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
>> +#: ../semanage/seobject.py:2430
>> #, python-format
>> msgid "Could not create key for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
>> -#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
>> +#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
>> +#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
>> #, python-format
>> msgid "Could not check if addr %s is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1914
>> +#: ../semanage/seobject.py:1909
>> #, python-format
>> msgid "Addr %s already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1918
>> +#: ../semanage/seobject.py:1913
>> #, python-format
>> msgid "Could not create addr for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
>> -#: ../semanage/seobject.py:2389
>> +#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
>> +#: ../semanage/seobject.py:2384
>> #, python-format
>> msgid "Could not create context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1928
>> +#: ../semanage/seobject.py:1923
>> #, python-format
>> msgid "Could not set mask for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1932
>> +#: ../semanage/seobject.py:1927
>> #, python-format
>> msgid "Could not set user in addr context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1936
>> +#: ../semanage/seobject.py:1931
>> #, python-format
>> msgid "Could not set role in addr context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1940
>> +#: ../semanage/seobject.py:1935
>> #, python-format
>> msgid "Could not set type in addr context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1945
>> +#: ../semanage/seobject.py:1940
>> #, python-format
>> msgid "Could not set mls fields in addr context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1949
>> +#: ../semanage/seobject.py:1944
>> #, python-format
>> msgid "Could not set addr context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1953
>> +#: ../semanage/seobject.py:1948
>> #, python-format
>> msgid "Could not add addr %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
>> +#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
>> #, python-format
>> msgid "Addr %s is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1989
>> +#: ../semanage/seobject.py:1984
>> #, python-format
>> msgid "Could not query addr %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:1999
>> +#: ../semanage/seobject.py:1994
>> #, python-format
>> msgid "Could not modify addr %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2028
>> +#: ../semanage/seobject.py:2023
>> #, python-format
>> msgid "Addr %s is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2032
>> +#: ../semanage/seobject.py:2027
>> #, python-format
>> msgid "Could not delete addr %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2046
>> +#: ../semanage/seobject.py:2041
>> msgid "Could not deleteall node mappings"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2060
>> +#: ../semanage/seobject.py:2055
>> msgid "Could not list addrs"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
>> +#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
>> msgid "SELinux Type is required"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
>> -#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
>> +#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
>> +#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
>> #, python-format
>> msgid "Could not check if interface %s is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2123
>> +#: ../semanage/seobject.py:2118
>> #, python-format
>> msgid "Interface %s already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2127
>> +#: ../semanage/seobject.py:2122
>> #, python-format
>> msgid "Could not create interface for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2136
>> +#: ../semanage/seobject.py:2131
>> #, python-format
>> msgid "Could not set user in interface context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2140
>> +#: ../semanage/seobject.py:2135
>> #, python-format
>> msgid "Could not set role in interface context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2144
>> +#: ../semanage/seobject.py:2139
>> #, python-format
>> msgid "Could not set type in interface context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2149
>> +#: ../semanage/seobject.py:2144
>> #, python-format
>> msgid "Could not set mls fields in interface context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2153
>> +#: ../semanage/seobject.py:2148
>> #, python-format
>> msgid "Could not set interface context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2157
>> +#: ../semanage/seobject.py:2152
>> #, python-format
>> msgid "Could not set message context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2161
>> +#: ../semanage/seobject.py:2156
>> #, python-format
>> msgid "Could not add interface %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
>> +#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
>> #, python-format
>> msgid "Interface %s is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2190
>> +#: ../semanage/seobject.py:2185
>> #, python-format
>> msgid "Could not query interface %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2201
>> +#: ../semanage/seobject.py:2196
>> #, python-format
>> msgid "Could not modify interface %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2228
>> +#: ../semanage/seobject.py:2223
>> #, python-format
>> msgid "Interface %s is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2232
>> +#: ../semanage/seobject.py:2227
>> #, python-format
>> msgid "Could not delete interface %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2246
>> +#: ../semanage/seobject.py:2241
>> msgid "Could not delete all interface mappings"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2260
>> +#: ../semanage/seobject.py:2255
>> msgid "Could not list interfaces"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2285
>> +#: ../semanage/seobject.py:2280
>> msgid "SELinux Interface"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
>> +#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
>> msgid "Context"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2355
>> +#: ../semanage/seobject.py:2350
>> #, python-format
>> msgid "Target %s is not valid. Target is not allowed to end with '/'"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2358
>> +#: ../semanage/seobject.py:2353
>> #, python-format
>> msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2361
>> +#: ../semanage/seobject.py:2356
>> #, python-format
>> msgid "Equivalence class for %s already exists"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2367
>> +#: ../semanage/seobject.py:2362
>> #, python-format
>> msgid "File spec %s conflicts with equivalency rule '%s %s'"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2378
>> +#: ../semanage/seobject.py:2373
>> #, python-format
>> msgid "Equivalence class for %s does not exist"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2395
>> +#: ../semanage/seobject.py:2390
>> #, python-format
>> msgid "Could not set user in file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2399
>> +#: ../semanage/seobject.py:2394
>> #, python-format
>> msgid "Could not set role in file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
>> +#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
>> #, python-format
>> msgid "Could not set mls fields in file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2410
>> +#: ../semanage/seobject.py:2405
>> msgid "Invalid file specification"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2412
>> +#: ../semanage/seobject.py:2407
>> msgid "File specification can not include spaces"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2417
>> +#: ../semanage/seobject.py:2412
>> #, python-format
>> msgid ""
>> "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
>> +#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
>> #, python-format
>> msgid "Type %s is invalid, must be a file or device type"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
>> -#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
>> -#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
>> +#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
>> +#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
>> +#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
>> #, python-format
>> msgid "Could not check if file context for %s is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2447
>> +#: ../semanage/seobject.py:2442
>> #, python-format
>> msgid "File context for %s already defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2451
>> +#: ../semanage/seobject.py:2446
>> #, python-format
>> msgid "Could not create file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2459
>> +#: ../semanage/seobject.py:2454
>> #, python-format
>> msgid "Could not set type in file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
>> -#: ../semanage/seobject.py:2543
>> +#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
>> +#: ../semanage/seobject.py:2538
>> #, python-format
>> msgid "Could not set file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2473
>> +#: ../semanage/seobject.py:2468
>> #, python-format
>> msgid "Could not add file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2492
>> +#: ../semanage/seobject.py:2487
>> msgid "Requires setype, serange or seuser"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
>> +#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
>> #, python-format
>> msgid "Could not query file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
>> +#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
>> #, python-format
>> msgid "File context for %s is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2547
>> +#: ../semanage/seobject.py:2542
>> #, python-format
>> msgid "Could not modify file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2565
>> +#: ../semanage/seobject.py:2560
>> msgid "Could not list the file contexts"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2579
>> +#: ../semanage/seobject.py:2574
>> #, python-format
>> msgid "Could not delete the file context %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2609
>> +#: ../semanage/seobject.py:2604
>> #, python-format
>> msgid "File context for %s is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2615
>> +#: ../semanage/seobject.py:2610
>> #, python-format
>> msgid "Could not delete file context for %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2632
>> +#: ../semanage/seobject.py:2627
>> msgid "Could not list file contexts"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2636
>> +#: ../semanage/seobject.py:2631
>> msgid "Could not list file contexts for home directories"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2640
>> +#: ../semanage/seobject.py:2635
>> msgid "Could not list local file contexts"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2677
>> +#: ../semanage/seobject.py:2672
>> msgid "SELinux fcontext"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2690
>> +#: ../semanage/seobject.py:2685
>> msgid ""
>> "\n"
>> "SELinux Distribution fcontext Equivalence \n"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2695
>> +#: ../semanage/seobject.py:2690
>> msgid ""
>> "\n"
>> "SELinux Local fcontext Equivalence \n"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
>> -#: ../semanage/seobject.py:2790
>> +#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
>> +#: ../semanage/seobject.py:2785
>> #, python-format
>> msgid "Could not check if boolean %s is defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
>> +#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
>> #, python-format
>> msgid "Boolean %s is not defined"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2739
>> +#: ../semanage/seobject.py:2734
>> #, python-format
>> msgid "Could not query file context %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2744
>> +#: ../semanage/seobject.py:2739
>> #, python-format
>> msgid "You must specify one of the following values: %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2749
>> +#: ../semanage/seobject.py:2744
>> #, python-format
>> msgid "Could not set active value of boolean %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2752
>> +#: ../semanage/seobject.py:2747
>> #, python-format
>> msgid "Could not modify boolean %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2768
>> -#, python-format
>> -msgid "Bad format %s: Record %s"
>> +#: ../semanage/seobject.py:2763
>> +#, python-brace-format
>> +msgid "Bad format {filename}: Record {record}"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2792
>> +#: ../semanage/seobject.py:2787
>> #, python-format
>> msgid "Boolean %s is defined in policy, cannot be deleted"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2796
>> +#: ../semanage/seobject.py:2791
>> #, python-format
>> msgid "Could not delete boolean %s"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
>> +#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
>> msgid "Could not list booleans"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2858
>> +#: ../semanage/seobject.py:2853
>> msgid "off"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2858
>> +#: ../semanage/seobject.py:2853
>> msgid "on"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2870
>> +#: ../semanage/seobject.py:2865
>> msgid "SELinux boolean"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2870
>> +#: ../semanage/seobject.py:2865
>> msgid "State"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2870
>> +#: ../semanage/seobject.py:2865
>> msgid "Default"
>> msgstr ""
>>
>> -#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
>> +#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
>> #: ../sepolicy/sepolicy/sepolicy.glade:2510
>> #: ../sepolicy/sepolicy/sepolicy.glade:5099
>> msgid "Description"
>> @@ -1555,151 +1566,151 @@ msgstr ""
>> msgid "Missing interface definition for %s"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:140
>> +#: ../sepolicy/sepolicy/generate.py:138
>> msgid "Standard Init Daemon"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:141
>> +#: ../sepolicy/sepolicy/generate.py:139
>> msgid "DBUS System Daemon"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:142
>> +#: ../sepolicy/sepolicy/generate.py:140
>> msgid "Internet Services Daemon"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:143
>> +#: ../sepolicy/sepolicy/generate.py:141
>> msgid "Web Application/Script (CGI)"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:144
>> +#: ../sepolicy/sepolicy/generate.py:142
>> msgid "Sandbox"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:145
>> +#: ../sepolicy/sepolicy/generate.py:143
>> msgid "User Application"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:146
>> +#: ../sepolicy/sepolicy/generate.py:144
>> msgid "Existing Domain Type"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:147
>> +#: ../sepolicy/sepolicy/generate.py:145
>> msgid "Minimal Terminal Login User Role"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:148
>> +#: ../sepolicy/sepolicy/generate.py:146
>> msgid "Minimal X Windows Login User Role"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:149
>> +#: ../sepolicy/sepolicy/generate.py:147
>> msgid "Desktop Login User Role"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:150
>> +#: ../sepolicy/sepolicy/generate.py:148
>> msgid "Administrator Login User Role"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:151
>> +#: ../sepolicy/sepolicy/generate.py:149
>> msgid "Confined Root Administrator Role"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:152
>> +#: ../sepolicy/sepolicy/generate.py:150
>> msgid "Module information for a new type"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:158
>> +#: ../sepolicy/sepolicy/generate.py:156
>> msgid "Valid Types:\n"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:193
>> +#: ../sepolicy/sepolicy/generate.py:191
>> #, python-format
>> msgid "Ports must be numbers or ranges of numbers from 1 to %d "
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:205
>> +#: ../sepolicy/sepolicy/generate.py:203
>> msgid "You must enter a valid policy type"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:208
>> +#: ../sepolicy/sepolicy/generate.py:206
>> #, python-format
>> msgid "You must enter a name for your policy module for your '%s'."
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:346
>> +#: ../sepolicy/sepolicy/generate.py:344
>> msgid ""
>> "Name must be alphanumeric with no spaces. Consider using option \"-n "
>> "MODULENAME\""
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:438
>> +#: ../sepolicy/sepolicy/generate.py:436
>> msgid "User Role types can not be assigned executables."
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:444
>> +#: ../sepolicy/sepolicy/generate.py:442
>> msgid "Only Daemon apps can use an init script."
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:462
>> +#: ../sepolicy/sepolicy/generate.py:460
>> msgid "use_resolve must be a boolean value "
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:468
>> +#: ../sepolicy/sepolicy/generate.py:466
>> msgid "use_syslog must be a boolean value "
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:474
>> +#: ../sepolicy/sepolicy/generate.py:472
>> msgid "use_kerberos must be a boolean value "
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:480
>> +#: ../sepolicy/sepolicy/generate.py:478
>> msgid "manage_krb5_rcache must be a boolean value "
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:510
>> +#: ../sepolicy/sepolicy/generate.py:508
>> msgid "USER Types automatically get a tmp type"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:847
>> +#: ../sepolicy/sepolicy/generate.py:845
>> #, python-format
>> msgid "'%s' policy modules require existing domains"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:872
>> +#: ../sepolicy/sepolicy/generate.py:870
>> msgid "Type field required"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:885
>> +#: ../sepolicy/sepolicy/generate.py:883
>> #, python-format
>> msgid ""
>> "You need to define a new type which ends with: \n"
>> " %s"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1113
>> +#: ../sepolicy/sepolicy/generate.py:1111
>> msgid "You must enter the executable path for your confined process"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1378
>> +#: ../sepolicy/sepolicy/generate.py:1376
>> msgid "Created the following files:\n"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1379
>> +#: ../sepolicy/sepolicy/generate.py:1377
>> msgid "Type Enforcement file"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1380
>> +#: ../sepolicy/sepolicy/generate.py:1378
>> msgid "Interface file"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1381
>> +#: ../sepolicy/sepolicy/generate.py:1379
>> msgid "File Contexts file"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1383
>> +#: ../sepolicy/sepolicy/generate.py:1381
>> msgid "Spec file"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/generate.py:1384
>> +#: ../sepolicy/sepolicy/generate.py:1382
>> msgid "Setup Script"
>> msgstr ""
>>
>> @@ -2367,29 +2378,29 @@ msgstr ""
>> msgid "named pipe"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/__init__.py:148
>> +#: ../sepolicy/sepolicy/__init__.py:149
>> msgid "No SELinux Policy installed"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/__init__.py:184
>> +#: ../sepolicy/sepolicy/__init__.py:185
>> #, python-format
>> msgid "Failed to read %s policy file"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/__init__.py:470
>> +#: ../sepolicy/sepolicy/__init__.py:471
>> #, python-format
>> msgid "-- Allowed %s [ %s ]"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/__init__.py:896
>> +#: ../sepolicy/sepolicy/__init__.py:897
>> msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/__init__.py:1221
>> +#: ../sepolicy/sepolicy/__init__.py:1230
>> msgid "unknown"
>> msgstr ""
>>
>> -#: ../sepolicy/sepolicy/__init__.py:1230
>> +#: ../sepolicy/sepolicy/__init__.py:1239
>> #, python-brace-format
>> msgid "Allow {subject} to {rest}"
>> msgstr ""
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v4 4/4] python: update python.pot
2023-06-27 13:55 ` Petr Lautrbach
@ 2023-07-06 13:39 ` James Carter
2023-07-12 17:33 ` James Carter
0 siblings, 1 reply; 26+ messages in thread
From: James Carter @ 2023-07-06 13:39 UTC (permalink / raw)
To: Petr Lautrbach; +Cc: Vit Mojzis, selinux
On Tue, Jun 27, 2023 at 10:12 AM Petr Lautrbach <lautrbach@redhat.com> wrote:
>
> Vit Mojzis <vmojzis@redhat.com> writes:
>
> > On 6/13/23 13:20, Petr Lautrbach wrote:
> >> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
>
> > For all four patches:
> > Reviewed-by: Vit Mojzis <vmojzis@redhat.com>
>
> Thanks.
>
>
> If there's no objection I'd like to merge this soon.
>
I have no objections.
For these four patches,
Acked-by: James Carter <jwcart2@gmail.com>
>
> >> ---
> >> python/po/python.pot | 963 ++++++++++++++++++++++---------------------
> >> 1 file changed, 487 insertions(+), 476 deletions(-)
> >>
> >> diff --git a/python/po/python.pot b/python/po/python.pot
> >> index 16d04eb0f18e..435a1b764e34 100644
> >> --- a/python/po/python.pot
> >> +++ b/python/po/python.pot
> >> @@ -8,7 +8,7 @@ msgid ""
> >> msgstr ""
> >> "Project-Id-Version: PACKAGE VERSION\n"
> >> "Report-Msgid-Bugs-To: \n"
> >> -"POT-Creation-Date: 2023-01-18 11:57+0100\n"
> >> +"POT-Creation-Date: 2023-06-12 18:13+0200\n"
> >> "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
> >> "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
> >> "Language-Team: LANGUAGE <LL@li.org>\n"
> >> @@ -17,17 +17,12 @@ msgstr ""
> >> "Content-Type: text/plain; charset=UTF-8\n"
> >> "Content-Transfer-Encoding: 8bit\n"
> >>
> >> -#: ../audit2allow/audit2allow:239
> >> -msgid "******************** IMPORTANT ***********************\n"
> >> +#: ../audit2allow/audit2allow:244
> >> +msgid "IMPORTANT"
> >> msgstr ""
> >>
> >> -#: ../audit2allow/audit2allow:240
> >> -#, python-format
> >> -msgid ""
> >> -"To make this policy package active, execute:\n"
> >> -"\n"
> >> -"semodule -i %s\n"
> >> -"\n"
> >> +#: ../audit2allow/audit2allow:245
> >> +msgid "To make this policy package active, execute:"
> >> msgstr ""
> >>
> >> #: ../chcat/chcat:111 ../chcat/chcat:191
> >> @@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
> >> msgstr ""
> >>
> >> #: ../chcat/chcat:128
> >> -#, python-format
> >> -msgid "%s is already in %s"
> >> +#, python-brace-format
> >> +msgid "{target} is already in {category}"
> >> msgstr ""
> >>
> >> #: ../chcat/chcat:210 ../chcat/chcat:220
> >> -#, python-format
> >> -msgid "%s is not in %s"
> >> +#, python-brace-format
> >> +msgid "{target} is not in {category}"
> >> msgstr ""
> >>
> >> #: ../chcat/chcat:291 ../chcat/chcat:296
> >> @@ -152,218 +147,222 @@ msgstr ""
> >>
> >> #: ../semanage/semanage:242
> >> msgid ""
> >> -"\n"
> >> -"MLS/MCS Security Range (MLS/MCS Systems only)\n"
> >> -"SELinux Range for SELinux login mapping\n"
> >> -"defaults to the SELinux user record range.\n"
> >> -"SELinux Range for SELinux user defaults to s0.\n"
> >> +"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
> >> +"login mapping defaults to the SELinux user record range. SELinux Range for "
> >> +"SELinux user defaults to s0."
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:251
> >> +#: ../semanage/semanage:249
> >> msgid ""
> >> -"\n"
> >> -" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
> >> -"protocol\n"
> >> -" version for the specified node (ipv4|ipv6).\n"
> >> +"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
> >> +"version for the specified node (ipv4|ipv6)."
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:257
> >> -msgid ""
> >> -"\n"
> >> -" Subnet prefix for the specified infiniband ibpkey.\n"
> >> +#: ../semanage/semanage:253
> >> +msgid "Subnet prefix for the specified infiniband ibpkey."
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:262
> >> -msgid ""
> >> -"\n"
> >> -" Name for the specified infiniband end port.\n"
> >> +#: ../semanage/semanage:256
> >> +msgid "Name for the specified infiniband end port."
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:267
> >> +#: ../semanage/semanage:259
> >> #, python-format
> >> msgid "Modify a record of the %s object type"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:271
> >> +#: ../semanage/semanage:263
> >> #, python-format
> >> msgid "List records of the %s object type"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:275
> >> +#: ../semanage/semanage:267
> >> #, python-format
> >> msgid "Delete a record of the %s object type"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:279
> >> +#: ../semanage/semanage:271
> >> msgid "Extract customizable commands, for use within a transaction"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:283
> >> +#: ../semanage/semanage:275
> >> #, python-format
> >> msgid "Remove all %s objects local customizations"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:287
> >> +#: ../semanage/semanage:279
> >> msgid "SELinux user name"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:292
> >> +#: ../semanage/semanage:284
> >> msgid "Manage login mappings between linux users and SELinux confined users"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:309
> >> +#: ../semanage/semanage:301
> >> #, python-format
> >> msgid "login_name | %%groupname"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:361
> >> +#: ../semanage/semanage:344
> >> msgid "Manage file context mapping definitions"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:375
> >> +#: ../semanage/semanage:359
> >> +msgid ""
> >> +"Substitute target path with sourcepath when generating default label. This "
> >> +"is used with fcontext. Requires source and target path arguments. The "
> >> +"context labeling for the target subtree is made equivalent to that defined "
> >> +"for the source."
> >> +msgstr ""
> >> +
> >> +#: ../semanage/semanage:363
> >> msgid ""
> >> -"Substitute target path with sourcepath when generating default\n"
> >> -" label. "
> >> -"This is used with fcontext. Requires source and target\n"
> >> -" path "
> >> -"arguments. The context labeling for the target subtree is\n"
> >> -" made "
> >> -"equivalent to that defined for the source."
> >> +"File Type. This is used with fcontext. Requires a file type as shown in the "
> >> +"mode field by ls, e.g. use d to match only directories or f to match only "
> >> +"regular files. The following file type options can be passed: f (regular "
> >> +"file), d (directory), c (character device), b (block device), s (socket), l "
> >> +"(symbolic link), p (named pipe). If you do not specify a file type, the file "
> >> +"type will default to \"all files\"."
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:383
> >> +#: ../semanage/semanage:371
> >> msgid ""
> >> "Path to be labeled (may be in the form of a Perl compatible regular "
> >> "expression)"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:411
> >> +#: ../semanage/semanage:399
> >> msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:429
> >> +#: ../semanage/semanage:417
> >> msgid ""
> >> -"\n"
> >> -"SELinux Roles. You must enclose multiple roles within quotes, separate by "
> >> -"spaces. Or specify -R multiple times.\n"
> >> +"SELinux Roles. You must enclose multiple roles within quotes, separate by "
> >> +"spaces. Or specify -R multiple times."
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:433
> >> +#: ../semanage/semanage:419
> >> msgid "selinux_name"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:461
> >> +#: ../semanage/semanage:447
> >> msgid "Manage network port type definitions"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:477
> >> +#: ../semanage/semanage:463
> >> msgid "port | port_range"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:506
> >> +#: ../semanage/semanage:492
> >> msgid "Manage infiniband ibpkey type definitions"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:522
> >> +#: ../semanage/semanage:508
> >> msgid "pkey | pkey_range"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:549
> >> +#: ../semanage/semanage:535
> >> msgid "Manage infiniband end port type definitions"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:565
> >> +#: ../semanage/semanage:551
> >> msgid "ibendport"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:592
> >> +#: ../semanage/semanage:578
> >> msgid "Manage network interface type definitions"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:607
> >> +#: ../semanage/semanage:593
> >> msgid "interface_spec"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:631
> >> +#: ../semanage/semanage:617
> >> msgid "Manage SELinux policy modules"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:642
> >> +#: ../semanage/semanage:628
> >> msgid "Add a module"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:643
> >> +#: ../semanage/semanage:629
> >> msgid "Remove a module"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:644
> >> +#: ../semanage/semanage:630
> >> msgid "Disable a module"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:645
> >> +#: ../semanage/semanage:631
> >> msgid "Enable a module"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:672
> >> +#: ../semanage/semanage:658
> >> msgid "Manage network node type definitions"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:686
> >> +#: ../semanage/semanage:672
> >> msgid "Network Mask"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:690
> >> +#: ../semanage/semanage:676
> >> msgid "node"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:715
> >> +#: ../semanage/semanage:701
> >> msgid "Manage booleans to selectively enable functionality"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:720
> >> +#: ../semanage/semanage:706
> >> msgid "boolean"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:730
> >> +#: ../semanage/semanage:716
> >> msgid "Enable the boolean"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:731
> >> +#: ../semanage/semanage:717
> >> msgid "Disable the boolean"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:752
> >> +#: ../semanage/semanage:738
> >> msgid "semanage permissive: error: the following argument is required: type\n"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:756
> >> +#: ../semanage/semanage:742
> >> msgid "Manage process type enforcement mode"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:768 ../semanage/seobject.py:2677
> >> +#: ../semanage/semanage:754 ../semanage/seobject.py:2672
> >> msgid "type"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:779
> >> +#: ../semanage/semanage:765
> >> msgid "Disable/Enable dontaudit rules in policy"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:799
> >> +#: ../semanage/semanage:785
> >> msgid "Output local customizations"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:801
> >> +#: ../semanage/semanage:787
> >> msgid "Output file"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:894
> >> +#: ../semanage/semanage:880
> >> msgid "Import local customizations"
> >> msgstr ""
> >>
> >> -#: ../semanage/semanage:897
> >> +#: ../semanage/semanage:883
> >> msgid "Input file"
> >> msgstr ""
> >>
> >> +#: ../semanage/semanage:891
> >> +msgid ""
> >> +"semanage is used to configure certain elements of SELinux policy with-out "
> >> +"requiring modification or recompilation from policy source."
> >> +msgstr ""
> >> +
> >> #: ../semanage/seobject.py:279
> >> msgid "Could not create semanage handle"
> >> msgstr ""
> >> @@ -485,123 +484,115 @@ msgstr ""
> >> msgid "Customized Permissive Types"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:510
> >> -msgid ""
> >> -"The sepolgen python module is required to setup permissive domains.\n"
> >> -"In some distributions it is included in the policycoreutils-devel package.\n"
> >> -"# yum install policycoreutils-devel\n"
> >> -"Or similar for your distro."
> >> -msgstr ""
> >> -
> >> -#: ../semanage/seobject.py:520
> >> +#: ../semanage/seobject.py:515
> >> #, python-format
> >> msgid "Could not set permissive domain %s (module installation failed)"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:526
> >> +#: ../semanage/seobject.py:521
> >> #, python-format
> >> msgid "Could not remove permissive domain %s (remove failed)"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
> >> -#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
> >> -#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
> >> -#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
> >> -#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
> >> -#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
> >> -#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
> >> +#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
> >> +#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
> >> +#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
> >> +#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
> >> +#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
> >> +#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
> >> +#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
> >> #, python-format
> >> msgid "Could not create a key for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
> >> -#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
> >> +#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
> >> +#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
> >> #, python-format
> >> msgid "Could not check if login mapping for %s is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:569
> >> +#: ../semanage/seobject.py:564
> >> #, python-format
> >> msgid "Login mapping for %s is already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:574
> >> +#: ../semanage/seobject.py:569
> >> #, python-format
> >> msgid "Linux Group %s does not exist"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:579
> >> +#: ../semanage/seobject.py:574
> >> #, python-format
> >> msgid "Linux User %s does not exist"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:583
> >> +#: ../semanage/seobject.py:578
> >> #, python-format
> >> msgid "Could not create login mapping for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
> >> +#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
> >> #, python-format
> >> msgid "Could not set name for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
> >> +#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
> >> #, python-format
> >> msgid "Could not set MLS range for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:596
> >> +#: ../semanage/seobject.py:591
> >> #, python-format
> >> msgid "Could not set SELinux user for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:600
> >> +#: ../semanage/seobject.py:595
> >> #, python-format
> >> msgid "Could not add login mapping for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:616
> >> +#: ../semanage/seobject.py:611
> >> msgid "Requires seuser or serange"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
> >> +#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
> >> #, python-format
> >> msgid "Login mapping for %s is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:643
> >> +#: ../semanage/seobject.py:638
> >> #, python-format
> >> msgid "Could not query seuser for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:658
> >> +#: ../semanage/seobject.py:653
> >> #, python-format
> >> msgid "Could not modify login mapping for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:690
> >> +#: ../semanage/seobject.py:685
> >> #, python-format
> >> msgid "Login mapping for %s is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:694
> >> +#: ../semanage/seobject.py:689
> >> #, python-format
> >> msgid "Could not delete login mapping for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
> >> -#: ../semanage/seobject.py:991
> >> +#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
> >> +#: ../semanage/seobject.py:986
> >> msgid "Could not list login mappings"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
> >> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
> >> #: ../sepolicy/sepolicy/sepolicy.glade:1156
> >> #: ../sepolicy/sepolicy/sepolicy.glade:3138
> >> msgid "Login Name"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
> >> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
> >> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
> >> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
> >> #: ../sepolicy/sepolicy/sepolicy.glade:1182
> >> #: ../sepolicy/sepolicy/sepolicy.glade:3156
> >> #: ../sepolicy/sepolicy/sepolicy.glade:3242
> >> @@ -609,938 +600,958 @@ msgstr ""
> >> msgid "SELinux User"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:772
> >> +#: ../semanage/seobject.py:767
> >> msgid "MLS/MCS Range"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:772
> >> +#: ../semanage/seobject.py:767
> >> msgid "Service"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
> >> -#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
> >> -#: ../semanage/seobject.py:958
> >> +#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
> >> +#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
> >> +#: ../semanage/seobject.py:953
> >> #, python-format
> >> msgid "Could not check if SELinux user %s is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
> >> -#: ../semanage/seobject.py:964
> >> +#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
> >> +#: ../semanage/seobject.py:959
> >> #, python-format
> >> msgid "Could not query user for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:823
> >> +#: ../semanage/seobject.py:818
> >> #, python-format
> >> msgid "You must add at least one role for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:833
> >> +#: ../semanage/seobject.py:828
> >> #, python-format
> >> msgid "SELinux user %s is already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:837
> >> +#: ../semanage/seobject.py:832
> >> #, python-format
> >> msgid "Could not create SELinux user for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:846
> >> -#, python-format
> >> -msgid "Could not add role %s for %s"
> >> +#: ../semanage/seobject.py:841
> >> +#, python-brace-format
> >> +msgid "Could not add role {role} for {name}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:855
> >> +#: ../semanage/seobject.py:850
> >> #, python-format
> >> msgid "Could not set MLS level for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:858
> >> -#, python-format
> >> -msgid "Could not add prefix %s for %s"
> >> +#: ../semanage/seobject.py:853
> >> +#, python-brace-format
> >> +msgid "Could not add prefix {prefix} for {role}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:861
> >> +#: ../semanage/seobject.py:856
> >> #, python-format
> >> msgid "Could not extract key for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:865
> >> +#: ../semanage/seobject.py:860
> >> #, python-format
> >> msgid "Could not add SELinux user %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:886
> >> +#: ../semanage/seobject.py:881
> >> msgid "Requires prefix, roles, level or range"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:888
> >> +#: ../semanage/seobject.py:883
> >> msgid "Requires prefix or roles"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
> >> +#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
> >> #, python-format
> >> msgid "SELinux user %s is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:927
> >> +#: ../semanage/seobject.py:922
> >> #, python-format
> >> msgid "Could not modify SELinux user %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:960
> >> +#: ../semanage/seobject.py:955
> >> #, python-format
> >> msgid "SELinux user %s is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:971
> >> +#: ../semanage/seobject.py:966
> >> #, python-format
> >> msgid "Could not delete SELinux user %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1009
> >> +#: ../semanage/seobject.py:1004
> >> msgid "Could not list SELinux users"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1015
> >> +#: ../semanage/seobject.py:1010
> >> #, python-format
> >> msgid "Could not list roles for user %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1040
> >> +#: ../semanage/seobject.py:1035
> >> msgid "Labeling"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1040
> >> +#: ../semanage/seobject.py:1035
> >> msgid "MLS/"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1041
> >> +#: ../semanage/seobject.py:1036
> >> msgid "Prefix"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1041
> >> +#: ../semanage/seobject.py:1036
> >> msgid "MCS Level"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1041
> >> +#: ../semanage/seobject.py:1036
> >> msgid "MCS Range"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
> >> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
> >> #: ../sepolicy/sepolicy/sepolicy.glade:3262
> >> #: ../sepolicy/sepolicy/sepolicy.glade:5233
> >> #: ../sepolicy/sepolicy/sepolicy.glade:5382
> >> msgid "SELinux Roles"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1071
> >> +#: ../semanage/seobject.py:1066
> >> msgid "Protocol has to be one of udp, tcp, dccp or sctp"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1073
> >> +#: ../semanage/seobject.py:1068
> >> msgid "Port is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1087
> >> +#: ../semanage/seobject.py:1082
> >> msgid "Invalid Port"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
> >> -#, python-format
> >> -msgid "Could not create a key for %s/%s"
> >> +#: ../semanage/seobject.py:1086
> >> +#, python-brace-format
> >> +msgid "Could not create a key for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
> >> -#: ../semanage/seobject.py:1631
> >> +#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
> >> +#: ../semanage/seobject.py:1626
> >> msgid "Type is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
> >> +#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
> >> #, python-format
> >> msgid "Type %s is invalid, must be a port type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
> >> -#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
> >> -#, python-format
> >> -msgid "Could not check if port %s/%s is defined"
> >> +#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
> >> +#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
> >> +#, python-brace-format
> >> +msgid "Could not check if port {proto}/{port} is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1115
> >> -#, python-format
> >> -msgid "Port %s/%s already defined"
> >> +#: ../semanage/seobject.py:1110
> >> +#, python-brace-format
> >> +msgid "Port {proto}/{port} already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1119
> >> -#, python-format
> >> -msgid "Could not create port for %s/%s"
> >> +#: ../semanage/seobject.py:1114
> >> +#, python-brace-format
> >> +msgid "Could not create port for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
> >> -#: ../semanage/seobject.py:1653
> >> -#, python-format
> >> -msgid "Could not create context for %s/%s"
> >> +#: ../semanage/seobject.py:1120
> >> +#, python-brace-format
> >> +msgid "Could not create context for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1129
> >> -#, python-format
> >> -msgid "Could not set user in port context for %s/%s"
> >> +#: ../semanage/seobject.py:1124
> >> +#, python-brace-format
> >> +msgid "Could not set user in port context for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1133
> >> -#, python-format
> >> -msgid "Could not set role in port context for %s/%s"
> >> +#: ../semanage/seobject.py:1128
> >> +#, python-brace-format
> >> +msgid "Could not set role in port context for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1137
> >> -#, python-format
> >> -msgid "Could not set type in port context for %s/%s"
> >> +#: ../semanage/seobject.py:1132
> >> +#, python-brace-format
> >> +msgid "Could not set type in port context for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1142
> >> -#, python-format
> >> -msgid "Could not set mls fields in port context for %s/%s"
> >> +#: ../semanage/seobject.py:1137
> >> +#, python-brace-format
> >> +msgid "Could not set mls fields in port context for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1146
> >> -#, python-format
> >> -msgid "Could not set port context for %s/%s"
> >> +#: ../semanage/seobject.py:1141
> >> +#, python-brace-format
> >> +msgid "Could not set port context for {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1150
> >> -#, python-format
> >> -msgid "Could not add port %s/%s"
> >> +#: ../semanage/seobject.py:1145
> >> +#, python-brace-format
> >> +msgid "Could not add port {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
> >> -#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
> >> -#: ../semanage/seobject.py:2176
> >> +#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
> >> +#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
> >> +#: ../semanage/seobject.py:2171
> >> msgid "Requires setype or serange"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
> >> -#: ../semanage/seobject.py:1694
> >> +#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
> >> +#: ../semanage/seobject.py:1689
> >> msgid "Requires setype"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
> >> -#, python-format
> >> -msgid "Port %s/%s is not defined"
> >> +#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
> >> +#, python-brace-format
> >> +msgid "Port {proto}/{port} is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1184
> >> -#, python-format
> >> -msgid "Could not query port %s/%s"
> >> +#: ../semanage/seobject.py:1179
> >> +#, python-brace-format
> >> +msgid "Could not query port {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1198
> >> -#, python-format
> >> -msgid "Could not modify port %s/%s"
> >> +#: ../semanage/seobject.py:1193
> >> +#, python-brace-format
> >> +msgid "Could not modify port {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1213
> >> +#: ../semanage/seobject.py:1208
> >> msgid "Could not list the ports"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1230
> >> +#: ../semanage/seobject.py:1225
> >> #, python-format
> >> msgid "Could not delete the port %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1252
> >> -#, python-format
> >> -msgid "Port %s/%s is defined in policy, cannot be deleted"
> >> +#: ../semanage/seobject.py:1247
> >> +#, python-brace-format
> >> +msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1256
> >> -#, python-format
> >> -msgid "Could not delete port %s/%s"
> >> +#: ../semanage/seobject.py:1251
> >> +#, python-brace-format
> >> +msgid "Could not delete port {proto}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
> >> +#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
> >> msgid "Could not list ports"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
> >> +#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
> >> #: ../sepolicy/sepolicy/sepolicy.glade:2766
> >> #: ../sepolicy/sepolicy/sepolicy.glade:4630
> >> msgid "SELinux Port Type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1329
> >> +#: ../semanage/seobject.py:1324
> >> msgid "Proto"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
> >> +#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
> >> #: ../sepolicy/sepolicy/sepolicy.glade:1407
> >> msgid "Port Number"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1351
> >> +#: ../semanage/seobject.py:1346
> >> msgid "Subnet Prefix is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1361
> >> +#: ../semanage/seobject.py:1356
> >> msgid "Invalid Pkey"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
> >> +#: ../semanage/seobject.py:1360
> >> +#, python-brace-format
> >> +msgid "Could not create a key for {subnet_prefix}/{pkey}"
> >> +msgstr ""
> >> +
> >> +#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
> >> #, python-format
> >> msgid "Type %s is invalid, must be a ibpkey type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
> >> -#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
> >> -#, python-format
> >> -msgid "Could not check if ibpkey %s/%s is defined"
> >> +#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
> >> +#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
> >> +#, python-brace-format
> >> +msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1389
> >> -#, python-format
> >> -msgid "ibpkey %s/%s already defined"
> >> +#: ../semanage/seobject.py:1384
> >> +#, python-brace-format
> >> +msgid "ibpkey {subnet_prefix}/{pkey} already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1393
> >> -#, python-format
> >> -msgid "Could not create ibpkey for %s/%s"
> >> +#: ../semanage/seobject.py:1388
> >> +#, python-brace-format
> >> +msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1403
> >> -#, python-format
> >> -msgid "Could not set user in ibpkey context for %s/%s"
> >> +#: ../semanage/seobject.py:1394
> >> +#, python-brace-format
> >> +msgid "Could not create context for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1407
> >> -#, python-format
> >> -msgid "Could not set role in ibpkey context for %s/%s"
> >> +#: ../semanage/seobject.py:1398
> >> +#, python-brace-format
> >> +msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1411
> >> -#, python-format
> >> -msgid "Could not set type in ibpkey context for %s/%s"
> >> +#: ../semanage/seobject.py:1402
> >> +#, python-brace-format
> >> +msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1416
> >> -#, python-format
> >> -msgid "Could not set mls fields in ibpkey context for %s/%s"
> >> +#: ../semanage/seobject.py:1406
> >> +#, python-brace-format
> >> +msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1420
> >> -#, python-format
> >> -msgid "Could not set ibpkey context for %s/%s"
> >> +#: ../semanage/seobject.py:1411
> >> +#, python-brace-format
> >> +msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1424
> >> -#, python-format
> >> -msgid "Could not add ibpkey %s/%s"
> >> +#: ../semanage/seobject.py:1415
> >> +#, python-brace-format
> >> +msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
> >> -#, python-format
> >> -msgid "ibpkey %s/%s is not defined"
> >> +#: ../semanage/seobject.py:1419
> >> +#, python-brace-format
> >> +msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1457
> >> -#, python-format
> >> -msgid "Could not query ibpkey %s/%s"
> >> +#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
> >> +#, python-brace-format
> >> +msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1468
> >> -#, python-format
> >> -msgid "Could not modify ibpkey %s/%s"
> >> +#: ../semanage/seobject.py:1452
> >> +#, python-brace-format
> >> +msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1481
> >> +#: ../semanage/seobject.py:1463
> >> +#, python-brace-format
> >> +msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
> >> +msgstr ""
> >> +
> >> +#: ../semanage/seobject.py:1476
> >> msgid "Could not list the ibpkeys"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1496
> >> +#: ../semanage/seobject.py:1491
> >> #, python-format
> >> msgid "Could not delete the ibpkey %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1513
> >> -#, python-format
> >> -msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
> >> +#: ../semanage/seobject.py:1508
> >> +#, python-brace-format
> >> +msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1517
> >> -#, python-format
> >> -msgid "Could not delete ibpkey %s/%s"
> >> +#: ../semanage/seobject.py:1512
> >> +#, python-brace-format
> >> +msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
> >> +#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
> >> msgid "Could not list ibpkeys"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1589
> >> +#: ../semanage/seobject.py:1584
> >> msgid "SELinux IB Pkey Type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1589
> >> +#: ../semanage/seobject.py:1584
> >> msgid "Subnet_Prefix"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1589
> >> +#: ../semanage/seobject.py:1584
> >> msgid "Pkey Number"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1611
> >> +#: ../semanage/seobject.py:1606
> >> msgid "IB device name is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1616
> >> +#: ../semanage/seobject.py:1611
> >> msgid "Invalid Port Number"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1620
> >> -#, python-format
> >> -msgid "Could not create a key for ibendport %s/%s"
> >> +#: ../semanage/seobject.py:1615
> >> +#, python-brace-format
> >> +msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
> >> +#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
> >> #, python-format
> >> msgid "Type %s is invalid, must be an ibendport type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
> >> -#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
> >> -#, python-format
> >> -msgid "Could not check if ibendport %s/%s is defined"
> >> +#: ../semanage/seobject.py:1636
> >> +#, python-brace-format
> >> +msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1643
> >> -#, python-format
> >> -msgid "ibendport %s/%s already defined"
> >> +#: ../semanage/seobject.py:1638
> >> +#, python-brace-format
> >> +msgid "ibendport {ibdev_name}/{port} already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1647
> >> -#, python-format
> >> -msgid "Could not create ibendport for %s/%s"
> >> +#: ../semanage/seobject.py:1642
> >> +#, python-brace-format
> >> +msgid "Could not create ibendport for {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1657
> >> -#, python-format
> >> -msgid "Could not set user in ibendport context for %s/%s"
> >> +#: ../semanage/seobject.py:1648
> >> +#, python-brace-format
> >> +msgid "Could not create context for {ibendport}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1661
> >> -#, python-format
> >> -msgid "Could not set role in ibendport context for %s/%s"
> >> +#: ../semanage/seobject.py:1652
> >> +#, python-brace-format
> >> +msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
> >> +msgstr ""
> >> +
> >> +#: ../semanage/seobject.py:1656
> >> +#, python-brace-format
> >> +msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
> >> +msgstr ""
> >> +
> >> +#: ../semanage/seobject.py:1660
> >> +#, python-brace-format
> >> +msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> #: ../semanage/seobject.py:1665
> >> -#, python-format
> >> -msgid "Could not set type in ibendport context for %s/%s"
> >> +#, python-brace-format
> >> +msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1670
> >> -#, python-format
> >> -msgid "Could not set mls fields in ibendport context for %s/%s"
> >> +#: ../semanage/seobject.py:1669
> >> +#, python-brace-format
> >> +msgid "Could not set ibendport context for {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1674
> >> -#, python-format
> >> -msgid "Could not set ibendport context for %s/%s"
> >> +#: ../semanage/seobject.py:1673
> >> +#, python-brace-format
> >> +msgid "Could not add ibendport {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1678
> >> -#, python-format
> >> -msgid "Could not add ibendport %s/%s"
> >> +#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
> >> +#: ../semanage/seobject.py:1758
> >> +#, python-brace-format
> >> +msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
> >> -#, python-format
> >> -msgid "ibendport %s/%s is not defined"
> >> +#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
> >> +#, python-brace-format
> >> +msgid "ibendport {ibdev_name}/{ibendport} is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1711
> >> -#, python-format
> >> -msgid "Could not query ibendport %s/%s"
> >> +#: ../semanage/seobject.py:1706
> >> +#, python-brace-format
> >> +msgid "Could not query ibendport {ibdev_name}/{ibendport}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1722
> >> -#, python-format
> >> -msgid "Could not modify ibendport %s/%s"
> >> +#: ../semanage/seobject.py:1717
> >> +#, python-brace-format
> >> +msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1735
> >> +#: ../semanage/seobject.py:1730
> >> msgid "Could not list the ibendports"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1744
> >> -#, python-format
> >> -msgid "Could not create a key for %s/%d"
> >> +#: ../semanage/seobject.py:1739
> >> +#, python-brace-format
> >> +msgid "Could not create a key for {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1748
> >> -#, python-format
> >> -msgid "Could not delete the ibendport %s/%d"
> >> +#: ../semanage/seobject.py:1743
> >> +#, python-brace-format
> >> +msgid "Could not delete the ibendport {ibdev_name}/{port}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1765
> >> -#, python-format
> >> -msgid "ibendport %s/%s is defined in policy, cannot be deleted"
> >> +#: ../semanage/seobject.py:1760
> >> +#, python-brace-format
> >> +msgid ""
> >> +"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1769
> >> -#, python-format
> >> -msgid "Could not delete ibendport %s/%s"
> >> +#: ../semanage/seobject.py:1764
> >> +#, python-brace-format
> >> +msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
> >> +#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
> >> msgid "Could not list ibendports"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1835
> >> +#: ../semanage/seobject.py:1830
> >> msgid "SELinux IB End Port Type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1835
> >> +#: ../semanage/seobject.py:1830
> >> msgid "IB Device Name"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1861
> >> +#: ../semanage/seobject.py:1856
> >> msgid "Node Address is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
> >> +#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
> >> msgid "Unknown or missing protocol"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1899
> >> +#: ../semanage/seobject.py:1894
> >> msgid "SELinux node type is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
> >> +#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
> >> #, python-format
> >> msgid "Type %s is invalid, must be a node type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
> >> -#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
> >> -#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
> >> -#: ../semanage/seobject.py:2435
> >> +#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
> >> +#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
> >> +#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
> >> +#: ../semanage/seobject.py:2430
> >> #, python-format
> >> msgid "Could not create key for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
> >> -#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
> >> +#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
> >> +#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
> >> #, python-format
> >> msgid "Could not check if addr %s is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1914
> >> +#: ../semanage/seobject.py:1909
> >> #, python-format
> >> msgid "Addr %s already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1918
> >> +#: ../semanage/seobject.py:1913
> >> #, python-format
> >> msgid "Could not create addr for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
> >> -#: ../semanage/seobject.py:2389
> >> +#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
> >> +#: ../semanage/seobject.py:2384
> >> #, python-format
> >> msgid "Could not create context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1928
> >> +#: ../semanage/seobject.py:1923
> >> #, python-format
> >> msgid "Could not set mask for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1932
> >> +#: ../semanage/seobject.py:1927
> >> #, python-format
> >> msgid "Could not set user in addr context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1936
> >> +#: ../semanage/seobject.py:1931
> >> #, python-format
> >> msgid "Could not set role in addr context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1940
> >> +#: ../semanage/seobject.py:1935
> >> #, python-format
> >> msgid "Could not set type in addr context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1945
> >> +#: ../semanage/seobject.py:1940
> >> #, python-format
> >> msgid "Could not set mls fields in addr context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1949
> >> +#: ../semanage/seobject.py:1944
> >> #, python-format
> >> msgid "Could not set addr context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1953
> >> +#: ../semanage/seobject.py:1948
> >> #, python-format
> >> msgid "Could not add addr %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
> >> +#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
> >> #, python-format
> >> msgid "Addr %s is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1989
> >> +#: ../semanage/seobject.py:1984
> >> #, python-format
> >> msgid "Could not query addr %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:1999
> >> +#: ../semanage/seobject.py:1994
> >> #, python-format
> >> msgid "Could not modify addr %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2028
> >> +#: ../semanage/seobject.py:2023
> >> #, python-format
> >> msgid "Addr %s is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2032
> >> +#: ../semanage/seobject.py:2027
> >> #, python-format
> >> msgid "Could not delete addr %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2046
> >> +#: ../semanage/seobject.py:2041
> >> msgid "Could not deleteall node mappings"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2060
> >> +#: ../semanage/seobject.py:2055
> >> msgid "Could not list addrs"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
> >> +#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
> >> msgid "SELinux Type is required"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
> >> -#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
> >> +#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
> >> +#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
> >> #, python-format
> >> msgid "Could not check if interface %s is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2123
> >> +#: ../semanage/seobject.py:2118
> >> #, python-format
> >> msgid "Interface %s already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2127
> >> +#: ../semanage/seobject.py:2122
> >> #, python-format
> >> msgid "Could not create interface for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2136
> >> +#: ../semanage/seobject.py:2131
> >> #, python-format
> >> msgid "Could not set user in interface context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2140
> >> +#: ../semanage/seobject.py:2135
> >> #, python-format
> >> msgid "Could not set role in interface context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2144
> >> +#: ../semanage/seobject.py:2139
> >> #, python-format
> >> msgid "Could not set type in interface context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2149
> >> +#: ../semanage/seobject.py:2144
> >> #, python-format
> >> msgid "Could not set mls fields in interface context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2153
> >> +#: ../semanage/seobject.py:2148
> >> #, python-format
> >> msgid "Could not set interface context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2157
> >> +#: ../semanage/seobject.py:2152
> >> #, python-format
> >> msgid "Could not set message context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2161
> >> +#: ../semanage/seobject.py:2156
> >> #, python-format
> >> msgid "Could not add interface %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
> >> +#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
> >> #, python-format
> >> msgid "Interface %s is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2190
> >> +#: ../semanage/seobject.py:2185
> >> #, python-format
> >> msgid "Could not query interface %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2201
> >> +#: ../semanage/seobject.py:2196
> >> #, python-format
> >> msgid "Could not modify interface %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2228
> >> +#: ../semanage/seobject.py:2223
> >> #, python-format
> >> msgid "Interface %s is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2232
> >> +#: ../semanage/seobject.py:2227
> >> #, python-format
> >> msgid "Could not delete interface %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2246
> >> +#: ../semanage/seobject.py:2241
> >> msgid "Could not delete all interface mappings"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2260
> >> +#: ../semanage/seobject.py:2255
> >> msgid "Could not list interfaces"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2285
> >> +#: ../semanage/seobject.py:2280
> >> msgid "SELinux Interface"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
> >> +#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
> >> msgid "Context"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2355
> >> +#: ../semanage/seobject.py:2350
> >> #, python-format
> >> msgid "Target %s is not valid. Target is not allowed to end with '/'"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2358
> >> +#: ../semanage/seobject.py:2353
> >> #, python-format
> >> msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2361
> >> +#: ../semanage/seobject.py:2356
> >> #, python-format
> >> msgid "Equivalence class for %s already exists"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2367
> >> +#: ../semanage/seobject.py:2362
> >> #, python-format
> >> msgid "File spec %s conflicts with equivalency rule '%s %s'"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2378
> >> +#: ../semanage/seobject.py:2373
> >> #, python-format
> >> msgid "Equivalence class for %s does not exist"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2395
> >> +#: ../semanage/seobject.py:2390
> >> #, python-format
> >> msgid "Could not set user in file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2399
> >> +#: ../semanage/seobject.py:2394
> >> #, python-format
> >> msgid "Could not set role in file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
> >> +#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
> >> #, python-format
> >> msgid "Could not set mls fields in file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2410
> >> +#: ../semanage/seobject.py:2405
> >> msgid "Invalid file specification"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2412
> >> +#: ../semanage/seobject.py:2407
> >> msgid "File specification can not include spaces"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2417
> >> +#: ../semanage/seobject.py:2412
> >> #, python-format
> >> msgid ""
> >> "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
> >> +#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
> >> #, python-format
> >> msgid "Type %s is invalid, must be a file or device type"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
> >> -#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
> >> -#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
> >> +#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
> >> +#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
> >> +#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
> >> #, python-format
> >> msgid "Could not check if file context for %s is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2447
> >> +#: ../semanage/seobject.py:2442
> >> #, python-format
> >> msgid "File context for %s already defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2451
> >> +#: ../semanage/seobject.py:2446
> >> #, python-format
> >> msgid "Could not create file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2459
> >> +#: ../semanage/seobject.py:2454
> >> #, python-format
> >> msgid "Could not set type in file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
> >> -#: ../semanage/seobject.py:2543
> >> +#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
> >> +#: ../semanage/seobject.py:2538
> >> #, python-format
> >> msgid "Could not set file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2473
> >> +#: ../semanage/seobject.py:2468
> >> #, python-format
> >> msgid "Could not add file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2492
> >> +#: ../semanage/seobject.py:2487
> >> msgid "Requires setype, serange or seuser"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
> >> +#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
> >> #, python-format
> >> msgid "Could not query file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
> >> +#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
> >> #, python-format
> >> msgid "File context for %s is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2547
> >> +#: ../semanage/seobject.py:2542
> >> #, python-format
> >> msgid "Could not modify file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2565
> >> +#: ../semanage/seobject.py:2560
> >> msgid "Could not list the file contexts"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2579
> >> +#: ../semanage/seobject.py:2574
> >> #, python-format
> >> msgid "Could not delete the file context %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2609
> >> +#: ../semanage/seobject.py:2604
> >> #, python-format
> >> msgid "File context for %s is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2615
> >> +#: ../semanage/seobject.py:2610
> >> #, python-format
> >> msgid "Could not delete file context for %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2632
> >> +#: ../semanage/seobject.py:2627
> >> msgid "Could not list file contexts"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2636
> >> +#: ../semanage/seobject.py:2631
> >> msgid "Could not list file contexts for home directories"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2640
> >> +#: ../semanage/seobject.py:2635
> >> msgid "Could not list local file contexts"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2677
> >> +#: ../semanage/seobject.py:2672
> >> msgid "SELinux fcontext"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2690
> >> +#: ../semanage/seobject.py:2685
> >> msgid ""
> >> "\n"
> >> "SELinux Distribution fcontext Equivalence \n"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2695
> >> +#: ../semanage/seobject.py:2690
> >> msgid ""
> >> "\n"
> >> "SELinux Local fcontext Equivalence \n"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
> >> -#: ../semanage/seobject.py:2790
> >> +#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
> >> +#: ../semanage/seobject.py:2785
> >> #, python-format
> >> msgid "Could not check if boolean %s is defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
> >> +#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
> >> #, python-format
> >> msgid "Boolean %s is not defined"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2739
> >> +#: ../semanage/seobject.py:2734
> >> #, python-format
> >> msgid "Could not query file context %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2744
> >> +#: ../semanage/seobject.py:2739
> >> #, python-format
> >> msgid "You must specify one of the following values: %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2749
> >> +#: ../semanage/seobject.py:2744
> >> #, python-format
> >> msgid "Could not set active value of boolean %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2752
> >> +#: ../semanage/seobject.py:2747
> >> #, python-format
> >> msgid "Could not modify boolean %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2768
> >> -#, python-format
> >> -msgid "Bad format %s: Record %s"
> >> +#: ../semanage/seobject.py:2763
> >> +#, python-brace-format
> >> +msgid "Bad format {filename}: Record {record}"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2792
> >> +#: ../semanage/seobject.py:2787
> >> #, python-format
> >> msgid "Boolean %s is defined in policy, cannot be deleted"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2796
> >> +#: ../semanage/seobject.py:2791
> >> #, python-format
> >> msgid "Could not delete boolean %s"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
> >> +#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
> >> msgid "Could not list booleans"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2858
> >> +#: ../semanage/seobject.py:2853
> >> msgid "off"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2858
> >> +#: ../semanage/seobject.py:2853
> >> msgid "on"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2870
> >> +#: ../semanage/seobject.py:2865
> >> msgid "SELinux boolean"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2870
> >> +#: ../semanage/seobject.py:2865
> >> msgid "State"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2870
> >> +#: ../semanage/seobject.py:2865
> >> msgid "Default"
> >> msgstr ""
> >>
> >> -#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
> >> +#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
> >> #: ../sepolicy/sepolicy/sepolicy.glade:2510
> >> #: ../sepolicy/sepolicy/sepolicy.glade:5099
> >> msgid "Description"
> >> @@ -1555,151 +1566,151 @@ msgstr ""
> >> msgid "Missing interface definition for %s"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:140
> >> +#: ../sepolicy/sepolicy/generate.py:138
> >> msgid "Standard Init Daemon"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:141
> >> +#: ../sepolicy/sepolicy/generate.py:139
> >> msgid "DBUS System Daemon"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:142
> >> +#: ../sepolicy/sepolicy/generate.py:140
> >> msgid "Internet Services Daemon"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:143
> >> +#: ../sepolicy/sepolicy/generate.py:141
> >> msgid "Web Application/Script (CGI)"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:144
> >> +#: ../sepolicy/sepolicy/generate.py:142
> >> msgid "Sandbox"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:145
> >> +#: ../sepolicy/sepolicy/generate.py:143
> >> msgid "User Application"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:146
> >> +#: ../sepolicy/sepolicy/generate.py:144
> >> msgid "Existing Domain Type"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:147
> >> +#: ../sepolicy/sepolicy/generate.py:145
> >> msgid "Minimal Terminal Login User Role"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:148
> >> +#: ../sepolicy/sepolicy/generate.py:146
> >> msgid "Minimal X Windows Login User Role"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:149
> >> +#: ../sepolicy/sepolicy/generate.py:147
> >> msgid "Desktop Login User Role"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:150
> >> +#: ../sepolicy/sepolicy/generate.py:148
> >> msgid "Administrator Login User Role"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:151
> >> +#: ../sepolicy/sepolicy/generate.py:149
> >> msgid "Confined Root Administrator Role"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:152
> >> +#: ../sepolicy/sepolicy/generate.py:150
> >> msgid "Module information for a new type"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:158
> >> +#: ../sepolicy/sepolicy/generate.py:156
> >> msgid "Valid Types:\n"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:193
> >> +#: ../sepolicy/sepolicy/generate.py:191
> >> #, python-format
> >> msgid "Ports must be numbers or ranges of numbers from 1 to %d "
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:205
> >> +#: ../sepolicy/sepolicy/generate.py:203
> >> msgid "You must enter a valid policy type"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:208
> >> +#: ../sepolicy/sepolicy/generate.py:206
> >> #, python-format
> >> msgid "You must enter a name for your policy module for your '%s'."
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:346
> >> +#: ../sepolicy/sepolicy/generate.py:344
> >> msgid ""
> >> "Name must be alphanumeric with no spaces. Consider using option \"-n "
> >> "MODULENAME\""
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:438
> >> +#: ../sepolicy/sepolicy/generate.py:436
> >> msgid "User Role types can not be assigned executables."
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:444
> >> +#: ../sepolicy/sepolicy/generate.py:442
> >> msgid "Only Daemon apps can use an init script."
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:462
> >> +#: ../sepolicy/sepolicy/generate.py:460
> >> msgid "use_resolve must be a boolean value "
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:468
> >> +#: ../sepolicy/sepolicy/generate.py:466
> >> msgid "use_syslog must be a boolean value "
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:474
> >> +#: ../sepolicy/sepolicy/generate.py:472
> >> msgid "use_kerberos must be a boolean value "
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:480
> >> +#: ../sepolicy/sepolicy/generate.py:478
> >> msgid "manage_krb5_rcache must be a boolean value "
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:510
> >> +#: ../sepolicy/sepolicy/generate.py:508
> >> msgid "USER Types automatically get a tmp type"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:847
> >> +#: ../sepolicy/sepolicy/generate.py:845
> >> #, python-format
> >> msgid "'%s' policy modules require existing domains"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:872
> >> +#: ../sepolicy/sepolicy/generate.py:870
> >> msgid "Type field required"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:885
> >> +#: ../sepolicy/sepolicy/generate.py:883
> >> #, python-format
> >> msgid ""
> >> "You need to define a new type which ends with: \n"
> >> " %s"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1113
> >> +#: ../sepolicy/sepolicy/generate.py:1111
> >> msgid "You must enter the executable path for your confined process"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1378
> >> +#: ../sepolicy/sepolicy/generate.py:1376
> >> msgid "Created the following files:\n"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1379
> >> +#: ../sepolicy/sepolicy/generate.py:1377
> >> msgid "Type Enforcement file"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1380
> >> +#: ../sepolicy/sepolicy/generate.py:1378
> >> msgid "Interface file"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1381
> >> +#: ../sepolicy/sepolicy/generate.py:1379
> >> msgid "File Contexts file"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1383
> >> +#: ../sepolicy/sepolicy/generate.py:1381
> >> msgid "Spec file"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/generate.py:1384
> >> +#: ../sepolicy/sepolicy/generate.py:1382
> >> msgid "Setup Script"
> >> msgstr ""
> >>
> >> @@ -2367,29 +2378,29 @@ msgstr ""
> >> msgid "named pipe"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/__init__.py:148
> >> +#: ../sepolicy/sepolicy/__init__.py:149
> >> msgid "No SELinux Policy installed"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/__init__.py:184
> >> +#: ../sepolicy/sepolicy/__init__.py:185
> >> #, python-format
> >> msgid "Failed to read %s policy file"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/__init__.py:470
> >> +#: ../sepolicy/sepolicy/__init__.py:471
> >> #, python-format
> >> msgid "-- Allowed %s [ %s ]"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/__init__.py:896
> >> +#: ../sepolicy/sepolicy/__init__.py:897
> >> msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/__init__.py:1221
> >> +#: ../sepolicy/sepolicy/__init__.py:1230
> >> msgid "unknown"
> >> msgstr ""
> >>
> >> -#: ../sepolicy/sepolicy/__init__.py:1230
> >> +#: ../sepolicy/sepolicy/__init__.py:1239
> >> #, python-brace-format
> >> msgid "Allow {subject} to {rest}"
> >> msgstr ""
> >
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v4 4/4] python: update python.pot
2023-07-06 13:39 ` James Carter
@ 2023-07-12 17:33 ` James Carter
0 siblings, 0 replies; 26+ messages in thread
From: James Carter @ 2023-07-12 17:33 UTC (permalink / raw)
To: Petr Lautrbach; +Cc: Vit Mojzis, selinux
On Thu, Jul 6, 2023 at 9:39 AM James Carter <jwcart2@gmail.com> wrote:
>
> On Tue, Jun 27, 2023 at 10:12 AM Petr Lautrbach <lautrbach@redhat.com> wrote:
> >
> > Vit Mojzis <vmojzis@redhat.com> writes:
> >
> > > On 6/13/23 13:20, Petr Lautrbach wrote:
> > >> Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
> >
> > > For all four patches:
> > > Reviewed-by: Vit Mojzis <vmojzis@redhat.com>
> >
> > Thanks.
> >
> >
> > If there's no objection I'd like to merge this soon.
> >
>
> I have no objections.
> For these four patches,
> Acked-by: James Carter <jwcart2@gmail.com>
>
These four patches have been merged.
Thanks,
Jim
> >
> > >> ---
> > >> python/po/python.pot | 963 ++++++++++++++++++++++---------------------
> > >> 1 file changed, 487 insertions(+), 476 deletions(-)
> > >>
> > >> diff --git a/python/po/python.pot b/python/po/python.pot
> > >> index 16d04eb0f18e..435a1b764e34 100644
> > >> --- a/python/po/python.pot
> > >> +++ b/python/po/python.pot
> > >> @@ -8,7 +8,7 @@ msgid ""
> > >> msgstr ""
> > >> "Project-Id-Version: PACKAGE VERSION\n"
> > >> "Report-Msgid-Bugs-To: \n"
> > >> -"POT-Creation-Date: 2023-01-18 11:57+0100\n"
> > >> +"POT-Creation-Date: 2023-06-12 18:13+0200\n"
> > >> "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
> > >> "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
> > >> "Language-Team: LANGUAGE <LL@li.org>\n"
> > >> @@ -17,17 +17,12 @@ msgstr ""
> > >> "Content-Type: text/plain; charset=UTF-8\n"
> > >> "Content-Transfer-Encoding: 8bit\n"
> > >>
> > >> -#: ../audit2allow/audit2allow:239
> > >> -msgid "******************** IMPORTANT ***********************\n"
> > >> +#: ../audit2allow/audit2allow:244
> > >> +msgid "IMPORTANT"
> > >> msgstr ""
> > >>
> > >> -#: ../audit2allow/audit2allow:240
> > >> -#, python-format
> > >> -msgid ""
> > >> -"To make this policy package active, execute:\n"
> > >> -"\n"
> > >> -"semodule -i %s\n"
> > >> -"\n"
> > >> +#: ../audit2allow/audit2allow:245
> > >> +msgid "To make this policy package active, execute:"
> > >> msgstr ""
> > >>
> > >> #: ../chcat/chcat:111 ../chcat/chcat:191
> > >> @@ -40,13 +35,13 @@ msgid "Can not modify sensitivity levels using '+' on %s"
> > >> msgstr ""
> > >>
> > >> #: ../chcat/chcat:128
> > >> -#, python-format
> > >> -msgid "%s is already in %s"
> > >> +#, python-brace-format
> > >> +msgid "{target} is already in {category}"
> > >> msgstr ""
> > >>
> > >> #: ../chcat/chcat:210 ../chcat/chcat:220
> > >> -#, python-format
> > >> -msgid "%s is not in %s"
> > >> +#, python-brace-format
> > >> +msgid "{target} is not in {category}"
> > >> msgstr ""
> > >>
> > >> #: ../chcat/chcat:291 ../chcat/chcat:296
> > >> @@ -152,218 +147,222 @@ msgstr ""
> > >>
> > >> #: ../semanage/semanage:242
> > >> msgid ""
> > >> -"\n"
> > >> -"MLS/MCS Security Range (MLS/MCS Systems only)\n"
> > >> -"SELinux Range for SELinux login mapping\n"
> > >> -"defaults to the SELinux user record range.\n"
> > >> -"SELinux Range for SELinux user defaults to s0.\n"
> > >> +"MLS/MCS Security Range (MLS/MCS Systems only) SELinux Range for SELinux "
> > >> +"login mapping defaults to the SELinux user record range. SELinux Range for "
> > >> +"SELinux user defaults to s0."
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:251
> > >> +#: ../semanage/semanage:249
> > >> msgid ""
> > >> -"\n"
> > >> -" Protocol for the specified port (tcp|udp|dccp|sctp) or internet "
> > >> -"protocol\n"
> > >> -" version for the specified node (ipv4|ipv6).\n"
> > >> +"Protocol for the specified port (tcp|udp|dccp|sctp) or internet protocol "
> > >> +"version for the specified node (ipv4|ipv6)."
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:257
> > >> -msgid ""
> > >> -"\n"
> > >> -" Subnet prefix for the specified infiniband ibpkey.\n"
> > >> +#: ../semanage/semanage:253
> > >> +msgid "Subnet prefix for the specified infiniband ibpkey."
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:262
> > >> -msgid ""
> > >> -"\n"
> > >> -" Name for the specified infiniband end port.\n"
> > >> +#: ../semanage/semanage:256
> > >> +msgid "Name for the specified infiniband end port."
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:267
> > >> +#: ../semanage/semanage:259
> > >> #, python-format
> > >> msgid "Modify a record of the %s object type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:271
> > >> +#: ../semanage/semanage:263
> > >> #, python-format
> > >> msgid "List records of the %s object type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:275
> > >> +#: ../semanage/semanage:267
> > >> #, python-format
> > >> msgid "Delete a record of the %s object type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:279
> > >> +#: ../semanage/semanage:271
> > >> msgid "Extract customizable commands, for use within a transaction"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:283
> > >> +#: ../semanage/semanage:275
> > >> #, python-format
> > >> msgid "Remove all %s objects local customizations"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:287
> > >> +#: ../semanage/semanage:279
> > >> msgid "SELinux user name"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:292
> > >> +#: ../semanage/semanage:284
> > >> msgid "Manage login mappings between linux users and SELinux confined users"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:309
> > >> +#: ../semanage/semanage:301
> > >> #, python-format
> > >> msgid "login_name | %%groupname"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:361
> > >> +#: ../semanage/semanage:344
> > >> msgid "Manage file context mapping definitions"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:375
> > >> +#: ../semanage/semanage:359
> > >> +msgid ""
> > >> +"Substitute target path with sourcepath when generating default label. This "
> > >> +"is used with fcontext. Requires source and target path arguments. The "
> > >> +"context labeling for the target subtree is made equivalent to that defined "
> > >> +"for the source."
> > >> +msgstr ""
> > >> +
> > >> +#: ../semanage/semanage:363
> > >> msgid ""
> > >> -"Substitute target path with sourcepath when generating default\n"
> > >> -" label. "
> > >> -"This is used with fcontext. Requires source and target\n"
> > >> -" path "
> > >> -"arguments. The context labeling for the target subtree is\n"
> > >> -" made "
> > >> -"equivalent to that defined for the source."
> > >> +"File Type. This is used with fcontext. Requires a file type as shown in the "
> > >> +"mode field by ls, e.g. use d to match only directories or f to match only "
> > >> +"regular files. The following file type options can be passed: f (regular "
> > >> +"file), d (directory), c (character device), b (block device), s (socket), l "
> > >> +"(symbolic link), p (named pipe). If you do not specify a file type, the file "
> > >> +"type will default to \"all files\"."
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:383
> > >> +#: ../semanage/semanage:371
> > >> msgid ""
> > >> "Path to be labeled (may be in the form of a Perl compatible regular "
> > >> "expression)"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:411
> > >> +#: ../semanage/semanage:399
> > >> msgid "Manage SELinux confined users (Roles and levels for an SELinux user)"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:429
> > >> +#: ../semanage/semanage:417
> > >> msgid ""
> > >> -"\n"
> > >> -"SELinux Roles. You must enclose multiple roles within quotes, separate by "
> > >> -"spaces. Or specify -R multiple times.\n"
> > >> +"SELinux Roles. You must enclose multiple roles within quotes, separate by "
> > >> +"spaces. Or specify -R multiple times."
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:433
> > >> +#: ../semanage/semanage:419
> > >> msgid "selinux_name"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:461
> > >> +#: ../semanage/semanage:447
> > >> msgid "Manage network port type definitions"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:477
> > >> +#: ../semanage/semanage:463
> > >> msgid "port | port_range"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:506
> > >> +#: ../semanage/semanage:492
> > >> msgid "Manage infiniband ibpkey type definitions"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:522
> > >> +#: ../semanage/semanage:508
> > >> msgid "pkey | pkey_range"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:549
> > >> +#: ../semanage/semanage:535
> > >> msgid "Manage infiniband end port type definitions"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:565
> > >> +#: ../semanage/semanage:551
> > >> msgid "ibendport"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:592
> > >> +#: ../semanage/semanage:578
> > >> msgid "Manage network interface type definitions"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:607
> > >> +#: ../semanage/semanage:593
> > >> msgid "interface_spec"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:631
> > >> +#: ../semanage/semanage:617
> > >> msgid "Manage SELinux policy modules"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:642
> > >> +#: ../semanage/semanage:628
> > >> msgid "Add a module"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:643
> > >> +#: ../semanage/semanage:629
> > >> msgid "Remove a module"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:644
> > >> +#: ../semanage/semanage:630
> > >> msgid "Disable a module"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:645
> > >> +#: ../semanage/semanage:631
> > >> msgid "Enable a module"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:672
> > >> +#: ../semanage/semanage:658
> > >> msgid "Manage network node type definitions"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:686
> > >> +#: ../semanage/semanage:672
> > >> msgid "Network Mask"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:690
> > >> +#: ../semanage/semanage:676
> > >> msgid "node"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:715
> > >> +#: ../semanage/semanage:701
> > >> msgid "Manage booleans to selectively enable functionality"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:720
> > >> +#: ../semanage/semanage:706
> > >> msgid "boolean"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:730
> > >> +#: ../semanage/semanage:716
> > >> msgid "Enable the boolean"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:731
> > >> +#: ../semanage/semanage:717
> > >> msgid "Disable the boolean"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:752
> > >> +#: ../semanage/semanage:738
> > >> msgid "semanage permissive: error: the following argument is required: type\n"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:756
> > >> +#: ../semanage/semanage:742
> > >> msgid "Manage process type enforcement mode"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:768 ../semanage/seobject.py:2677
> > >> +#: ../semanage/semanage:754 ../semanage/seobject.py:2672
> > >> msgid "type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:779
> > >> +#: ../semanage/semanage:765
> > >> msgid "Disable/Enable dontaudit rules in policy"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:799
> > >> +#: ../semanage/semanage:785
> > >> msgid "Output local customizations"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:801
> > >> +#: ../semanage/semanage:787
> > >> msgid "Output file"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:894
> > >> +#: ../semanage/semanage:880
> > >> msgid "Import local customizations"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/semanage:897
> > >> +#: ../semanage/semanage:883
> > >> msgid "Input file"
> > >> msgstr ""
> > >>
> > >> +#: ../semanage/semanage:891
> > >> +msgid ""
> > >> +"semanage is used to configure certain elements of SELinux policy with-out "
> > >> +"requiring modification or recompilation from policy source."
> > >> +msgstr ""
> > >> +
> > >> #: ../semanage/seobject.py:279
> > >> msgid "Could not create semanage handle"
> > >> msgstr ""
> > >> @@ -485,123 +484,115 @@ msgstr ""
> > >> msgid "Customized Permissive Types"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:510
> > >> -msgid ""
> > >> -"The sepolgen python module is required to setup permissive domains.\n"
> > >> -"In some distributions it is included in the policycoreutils-devel package.\n"
> > >> -"# yum install policycoreutils-devel\n"
> > >> -"Or similar for your distro."
> > >> -msgstr ""
> > >> -
> > >> -#: ../semanage/seobject.py:520
> > >> +#: ../semanage/seobject.py:515
> > >> #, python-format
> > >> msgid "Could not set permissive domain %s (module installation failed)"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:526
> > >> +#: ../semanage/seobject.py:521
> > >> #, python-format
> > >> msgid "Could not remove permissive domain %s (remove failed)"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:563 ../semanage/seobject.py:633
> > >> -#: ../semanage/seobject.py:678 ../semanage/seobject.py:797
> > >> -#: ../semanage/seobject.py:827 ../semanage/seobject.py:892
> > >> -#: ../semanage/seobject.py:948 ../semanage/seobject.py:1226
> > >> -#: ../semanage/seobject.py:1492 ../semanage/seobject.py:2502
> > >> -#: ../semanage/seobject.py:2575 ../semanage/seobject.py:2599
> > >> -#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
> > >> +#: ../semanage/seobject.py:558 ../semanage/seobject.py:628
> > >> +#: ../semanage/seobject.py:673 ../semanage/seobject.py:792
> > >> +#: ../semanage/seobject.py:822 ../semanage/seobject.py:887
> > >> +#: ../semanage/seobject.py:943 ../semanage/seobject.py:1221
> > >> +#: ../semanage/seobject.py:1487 ../semanage/seobject.py:2497
> > >> +#: ../semanage/seobject.py:2570 ../semanage/seobject.py:2594
> > >> +#: ../semanage/seobject.py:2725 ../semanage/seobject.py:2776
> > >> #, python-format
> > >> msgid "Could not create a key for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:567 ../semanage/seobject.py:637
> > >> -#: ../semanage/seobject.py:682 ../semanage/seobject.py:688
> > >> +#: ../semanage/seobject.py:562 ../semanage/seobject.py:632
> > >> +#: ../semanage/seobject.py:677 ../semanage/seobject.py:683
> > >> #, python-format
> > >> msgid "Could not check if login mapping for %s is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:569
> > >> +#: ../semanage/seobject.py:564
> > >> #, python-format
> > >> msgid "Login mapping for %s is already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:574
> > >> +#: ../semanage/seobject.py:569
> > >> #, python-format
> > >> msgid "Linux Group %s does not exist"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:579
> > >> +#: ../semanage/seobject.py:574
> > >> #, python-format
> > >> msgid "Linux User %s does not exist"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:583
> > >> +#: ../semanage/seobject.py:578
> > >> #, python-format
> > >> msgid "Could not create login mapping for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:587 ../semanage/seobject.py:841
> > >> +#: ../semanage/seobject.py:582 ../semanage/seobject.py:836
> > >> #, python-format
> > >> msgid "Could not set name for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:592 ../semanage/seobject.py:851
> > >> +#: ../semanage/seobject.py:587 ../semanage/seobject.py:846
> > >> #, python-format
> > >> msgid "Could not set MLS range for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:596
> > >> +#: ../semanage/seobject.py:591
> > >> #, python-format
> > >> msgid "Could not set SELinux user for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:600
> > >> +#: ../semanage/seobject.py:595
> > >> #, python-format
> > >> msgid "Could not add login mapping for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:616
> > >> +#: ../semanage/seobject.py:611
> > >> msgid "Requires seuser or serange"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:639 ../semanage/seobject.py:684
> > >> +#: ../semanage/seobject.py:634 ../semanage/seobject.py:679
> > >> #, python-format
> > >> msgid "Login mapping for %s is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:643
> > >> +#: ../semanage/seobject.py:638
> > >> #, python-format
> > >> msgid "Could not query seuser for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:658
> > >> +#: ../semanage/seobject.py:653
> > >> #, python-format
> > >> msgid "Could not modify login mapping for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:690
> > >> +#: ../semanage/seobject.py:685
> > >> #, python-format
> > >> msgid "Login mapping for %s is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:694
> > >> +#: ../semanage/seobject.py:689
> > >> #, python-format
> > >> msgid "Could not delete login mapping for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:713 ../semanage/seobject.py:745
> > >> -#: ../semanage/seobject.py:991
> > >> +#: ../semanage/seobject.py:708 ../semanage/seobject.py:740
> > >> +#: ../semanage/seobject.py:986
> > >> msgid "Could not list login mappings"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
> > >> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:1156
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:3138
> > >> msgid "Login Name"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:772 ../semanage/seobject.py:784
> > >> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
> > >> +#: ../semanage/seobject.py:767 ../semanage/seobject.py:779
> > >> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:1182
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:3156
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:3242
> > >> @@ -609,938 +600,958 @@ msgstr ""
> > >> msgid "SELinux User"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:772
> > >> +#: ../semanage/seobject.py:767
> > >> msgid "MLS/MCS Range"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:772
> > >> +#: ../semanage/seobject.py:767
> > >> msgid "Service"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:800 ../semanage/seobject.py:831
> > >> -#: ../semanage/seobject.py:896 ../semanage/seobject.py:952
> > >> -#: ../semanage/seobject.py:958
> > >> +#: ../semanage/seobject.py:795 ../semanage/seobject.py:826
> > >> +#: ../semanage/seobject.py:891 ../semanage/seobject.py:947
> > >> +#: ../semanage/seobject.py:953
> > >> #, python-format
> > >> msgid "Could not check if SELinux user %s is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:803 ../semanage/seobject.py:902
> > >> -#: ../semanage/seobject.py:964
> > >> +#: ../semanage/seobject.py:798 ../semanage/seobject.py:897
> > >> +#: ../semanage/seobject.py:959
> > >> #, python-format
> > >> msgid "Could not query user for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:823
> > >> +#: ../semanage/seobject.py:818
> > >> #, python-format
> > >> msgid "You must add at least one role for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:833
> > >> +#: ../semanage/seobject.py:828
> > >> #, python-format
> > >> msgid "SELinux user %s is already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:837
> > >> +#: ../semanage/seobject.py:832
> > >> #, python-format
> > >> msgid "Could not create SELinux user for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:846
> > >> -#, python-format
> > >> -msgid "Could not add role %s for %s"
> > >> +#: ../semanage/seobject.py:841
> > >> +#, python-brace-format
> > >> +msgid "Could not add role {role} for {name}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:855
> > >> +#: ../semanage/seobject.py:850
> > >> #, python-format
> > >> msgid "Could not set MLS level for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:858
> > >> -#, python-format
> > >> -msgid "Could not add prefix %s for %s"
> > >> +#: ../semanage/seobject.py:853
> > >> +#, python-brace-format
> > >> +msgid "Could not add prefix {prefix} for {role}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:861
> > >> +#: ../semanage/seobject.py:856
> > >> #, python-format
> > >> msgid "Could not extract key for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:865
> > >> +#: ../semanage/seobject.py:860
> > >> #, python-format
> > >> msgid "Could not add SELinux user %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:886
> > >> +#: ../semanage/seobject.py:881
> > >> msgid "Requires prefix, roles, level or range"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:888
> > >> +#: ../semanage/seobject.py:883
> > >> msgid "Requires prefix or roles"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:898 ../semanage/seobject.py:954
> > >> +#: ../semanage/seobject.py:893 ../semanage/seobject.py:949
> > >> #, python-format
> > >> msgid "SELinux user %s is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:927
> > >> +#: ../semanage/seobject.py:922
> > >> #, python-format
> > >> msgid "Could not modify SELinux user %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:960
> > >> +#: ../semanage/seobject.py:955
> > >> #, python-format
> > >> msgid "SELinux user %s is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:971
> > >> +#: ../semanage/seobject.py:966
> > >> #, python-format
> > >> msgid "Could not delete SELinux user %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1009
> > >> +#: ../semanage/seobject.py:1004
> > >> msgid "Could not list SELinux users"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1015
> > >> +#: ../semanage/seobject.py:1010
> > >> #, python-format
> > >> msgid "Could not list roles for user %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1040
> > >> +#: ../semanage/seobject.py:1035
> > >> msgid "Labeling"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1040
> > >> +#: ../semanage/seobject.py:1035
> > >> msgid "MLS/"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1041
> > >> +#: ../semanage/seobject.py:1036
> > >> msgid "Prefix"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1041
> > >> +#: ../semanage/seobject.py:1036
> > >> msgid "MCS Level"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1041
> > >> +#: ../semanage/seobject.py:1036
> > >> msgid "MCS Range"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1041 ../semanage/seobject.py:1046
> > >> +#: ../semanage/seobject.py:1036 ../semanage/seobject.py:1041
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:3262
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:5233
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:5382
> > >> msgid "SELinux Roles"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1071
> > >> +#: ../semanage/seobject.py:1066
> > >> msgid "Protocol has to be one of udp, tcp, dccp or sctp"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1073
> > >> +#: ../semanage/seobject.py:1068
> > >> msgid "Port is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1087
> > >> +#: ../semanage/seobject.py:1082
> > >> msgid "Invalid Port"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1091 ../semanage/seobject.py:1365
> > >> -#, python-format
> > >> -msgid "Could not create a key for %s/%s"
> > >> +#: ../semanage/seobject.py:1086
> > >> +#, python-brace-format
> > >> +msgid "Could not create a key for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1376
> > >> -#: ../semanage/seobject.py:1631
> > >> +#: ../semanage/seobject.py:1097 ../semanage/seobject.py:1371
> > >> +#: ../semanage/seobject.py:1626
> > >> msgid "Type is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1107 ../semanage/seobject.py:1172
> > >> +#: ../semanage/seobject.py:1102 ../semanage/seobject.py:1167
> > >> #, python-format
> > >> msgid "Type %s is invalid, must be a port type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1113 ../semanage/seobject.py:1178
> > >> -#: ../semanage/seobject.py:1244 ../semanage/seobject.py:1250
> > >> -#, python-format
> > >> -msgid "Could not check if port %s/%s is defined"
> > >> +#: ../semanage/seobject.py:1108 ../semanage/seobject.py:1173
> > >> +#: ../semanage/seobject.py:1239 ../semanage/seobject.py:1245
> > >> +#, python-brace-format
> > >> +msgid "Could not check if port {proto}/{port} is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1115
> > >> -#, python-format
> > >> -msgid "Port %s/%s already defined"
> > >> +#: ../semanage/seobject.py:1110
> > >> +#, python-brace-format
> > >> +msgid "Port {proto}/{port} already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1119
> > >> -#, python-format
> > >> -msgid "Could not create port for %s/%s"
> > >> +#: ../semanage/seobject.py:1114
> > >> +#, python-brace-format
> > >> +msgid "Could not create port for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1125 ../semanage/seobject.py:1399
> > >> -#: ../semanage/seobject.py:1653
> > >> -#, python-format
> > >> -msgid "Could not create context for %s/%s"
> > >> +#: ../semanage/seobject.py:1120
> > >> +#, python-brace-format
> > >> +msgid "Could not create context for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1129
> > >> -#, python-format
> > >> -msgid "Could not set user in port context for %s/%s"
> > >> +#: ../semanage/seobject.py:1124
> > >> +#, python-brace-format
> > >> +msgid "Could not set user in port context for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1133
> > >> -#, python-format
> > >> -msgid "Could not set role in port context for %s/%s"
> > >> +#: ../semanage/seobject.py:1128
> > >> +#, python-brace-format
> > >> +msgid "Could not set role in port context for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1137
> > >> -#, python-format
> > >> -msgid "Could not set type in port context for %s/%s"
> > >> +#: ../semanage/seobject.py:1132
> > >> +#, python-brace-format
> > >> +msgid "Could not set type in port context for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1142
> > >> -#, python-format
> > >> -msgid "Could not set mls fields in port context for %s/%s"
> > >> +#: ../semanage/seobject.py:1137
> > >> +#, python-brace-format
> > >> +msgid "Could not set mls fields in port context for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1146
> > >> -#, python-format
> > >> -msgid "Could not set port context for %s/%s"
> > >> +#: ../semanage/seobject.py:1141
> > >> +#, python-brace-format
> > >> +msgid "Could not set port context for {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1150
> > >> -#, python-format
> > >> -msgid "Could not add port %s/%s"
> > >> +#: ../semanage/seobject.py:1145
> > >> +#, python-brace-format
> > >> +msgid "Could not add port {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1166 ../semanage/seobject.py:1438
> > >> -#: ../semanage/seobject.py:1692 ../semanage/seobject.py:1970
> > >> -#: ../semanage/seobject.py:2176
> > >> +#: ../semanage/seobject.py:1161 ../semanage/seobject.py:1433
> > >> +#: ../semanage/seobject.py:1687 ../semanage/seobject.py:1965
> > >> +#: ../semanage/seobject.py:2171
> > >> msgid "Requires setype or serange"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1168 ../semanage/seobject.py:1440
> > >> -#: ../semanage/seobject.py:1694
> > >> +#: ../semanage/seobject.py:1163 ../semanage/seobject.py:1435
> > >> +#: ../semanage/seobject.py:1689
> > >> msgid "Requires setype"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1180 ../semanage/seobject.py:1246
> > >> -#, python-format
> > >> -msgid "Port %s/%s is not defined"
> > >> +#: ../semanage/seobject.py:1175 ../semanage/seobject.py:1241
> > >> +#, python-brace-format
> > >> +msgid "Port {proto}/{port} is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1184
> > >> -#, python-format
> > >> -msgid "Could not query port %s/%s"
> > >> +#: ../semanage/seobject.py:1179
> > >> +#, python-brace-format
> > >> +msgid "Could not query port {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1198
> > >> -#, python-format
> > >> -msgid "Could not modify port %s/%s"
> > >> +#: ../semanage/seobject.py:1193
> > >> +#, python-brace-format
> > >> +msgid "Could not modify port {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1213
> > >> +#: ../semanage/seobject.py:1208
> > >> msgid "Could not list the ports"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1230
> > >> +#: ../semanage/seobject.py:1225
> > >> #, python-format
> > >> msgid "Could not delete the port %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1252
> > >> -#, python-format
> > >> -msgid "Port %s/%s is defined in policy, cannot be deleted"
> > >> +#: ../semanage/seobject.py:1247
> > >> +#, python-brace-format
> > >> +msgid "Port {proto}/{port} is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1256
> > >> -#, python-format
> > >> -msgid "Could not delete port %s/%s"
> > >> +#: ../semanage/seobject.py:1251
> > >> +#, python-brace-format
> > >> +msgid "Could not delete port {proto}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1274 ../semanage/seobject.py:1294
> > >> +#: ../semanage/seobject.py:1269 ../semanage/seobject.py:1289
> > >> msgid "Could not list ports"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1329 ../sepolicy/sepolicy/sepolicy.glade:2668
> > >> +#: ../semanage/seobject.py:1324 ../sepolicy/sepolicy/sepolicy.glade:2668
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:2766
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:4630
> > >> msgid "SELinux Port Type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1329
> > >> +#: ../semanage/seobject.py:1324
> > >> msgid "Proto"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1329 ../semanage/seobject.py:1835
> > >> +#: ../semanage/seobject.py:1324 ../semanage/seobject.py:1830
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:1407
> > >> msgid "Port Number"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1351
> > >> +#: ../semanage/seobject.py:1346
> > >> msgid "Subnet Prefix is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1361
> > >> +#: ../semanage/seobject.py:1356
> > >> msgid "Invalid Pkey"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1381 ../semanage/seobject.py:1445
> > >> +#: ../semanage/seobject.py:1360
> > >> +#, python-brace-format
> > >> +msgid "Could not create a key for {subnet_prefix}/{pkey}"
> > >> +msgstr ""
> > >> +
> > >> +#: ../semanage/seobject.py:1376 ../semanage/seobject.py:1440
> > >> #, python-format
> > >> msgid "Type %s is invalid, must be a ibpkey type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1387 ../semanage/seobject.py:1451
> > >> -#: ../semanage/seobject.py:1505 ../semanage/seobject.py:1511
> > >> -#, python-format
> > >> -msgid "Could not check if ibpkey %s/%s is defined"
> > >> +#: ../semanage/seobject.py:1382 ../semanage/seobject.py:1446
> > >> +#: ../semanage/seobject.py:1500 ../semanage/seobject.py:1506
> > >> +#, python-brace-format
> > >> +msgid "Could not check if ibpkey {subnet_prefix}/{pkey} is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1389
> > >> -#, python-format
> > >> -msgid "ibpkey %s/%s already defined"
> > >> +#: ../semanage/seobject.py:1384
> > >> +#, python-brace-format
> > >> +msgid "ibpkey {subnet_prefix}/{pkey} already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1393
> > >> -#, python-format
> > >> -msgid "Could not create ibpkey for %s/%s"
> > >> +#: ../semanage/seobject.py:1388
> > >> +#, python-brace-format
> > >> +msgid "Could not create ibpkey for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1403
> > >> -#, python-format
> > >> -msgid "Could not set user in ibpkey context for %s/%s"
> > >> +#: ../semanage/seobject.py:1394
> > >> +#, python-brace-format
> > >> +msgid "Could not create context for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1407
> > >> -#, python-format
> > >> -msgid "Could not set role in ibpkey context for %s/%s"
> > >> +#: ../semanage/seobject.py:1398
> > >> +#, python-brace-format
> > >> +msgid "Could not set user in ibpkey context for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1411
> > >> -#, python-format
> > >> -msgid "Could not set type in ibpkey context for %s/%s"
> > >> +#: ../semanage/seobject.py:1402
> > >> +#, python-brace-format
> > >> +msgid "Could not set role in ibpkey context for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1416
> > >> -#, python-format
> > >> -msgid "Could not set mls fields in ibpkey context for %s/%s"
> > >> +#: ../semanage/seobject.py:1406
> > >> +#, python-brace-format
> > >> +msgid "Could not set type in ibpkey context for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1420
> > >> -#, python-format
> > >> -msgid "Could not set ibpkey context for %s/%s"
> > >> +#: ../semanage/seobject.py:1411
> > >> +#, python-brace-format
> > >> +msgid "Could not set mls fields in ibpkey context for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1424
> > >> -#, python-format
> > >> -msgid "Could not add ibpkey %s/%s"
> > >> +#: ../semanage/seobject.py:1415
> > >> +#, python-brace-format
> > >> +msgid "Could not set ibpkey context for {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1453 ../semanage/seobject.py:1507
> > >> -#, python-format
> > >> -msgid "ibpkey %s/%s is not defined"
> > >> +#: ../semanage/seobject.py:1419
> > >> +#, python-brace-format
> > >> +msgid "Could not add ibpkey {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1457
> > >> -#, python-format
> > >> -msgid "Could not query ibpkey %s/%s"
> > >> +#: ../semanage/seobject.py:1448 ../semanage/seobject.py:1502
> > >> +#, python-brace-format
> > >> +msgid "ibpkey {subnet_prefix}/{pkey} is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1468
> > >> -#, python-format
> > >> -msgid "Could not modify ibpkey %s/%s"
> > >> +#: ../semanage/seobject.py:1452
> > >> +#, python-brace-format
> > >> +msgid "Could not query ibpkey {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1481
> > >> +#: ../semanage/seobject.py:1463
> > >> +#, python-brace-format
> > >> +msgid "Could not modify ibpkey {subnet_prefix}/{pkey}"
> > >> +msgstr ""
> > >> +
> > >> +#: ../semanage/seobject.py:1476
> > >> msgid "Could not list the ibpkeys"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1496
> > >> +#: ../semanage/seobject.py:1491
> > >> #, python-format
> > >> msgid "Could not delete the ibpkey %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1513
> > >> -#, python-format
> > >> -msgid "ibpkey %s/%s is defined in policy, cannot be deleted"
> > >> +#: ../semanage/seobject.py:1508
> > >> +#, python-brace-format
> > >> +msgid "ibpkey {subnet_prefix}/{pkey} is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1517
> > >> -#, python-format
> > >> -msgid "Could not delete ibpkey %s/%s"
> > >> +#: ../semanage/seobject.py:1512
> > >> +#, python-brace-format
> > >> +msgid "Could not delete ibpkey {subnet_prefix}/{pkey}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1533 ../semanage/seobject.py:1554
> > >> +#: ../semanage/seobject.py:1528 ../semanage/seobject.py:1549
> > >> msgid "Could not list ibpkeys"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1589
> > >> +#: ../semanage/seobject.py:1584
> > >> msgid "SELinux IB Pkey Type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1589
> > >> +#: ../semanage/seobject.py:1584
> > >> msgid "Subnet_Prefix"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1589
> > >> +#: ../semanage/seobject.py:1584
> > >> msgid "Pkey Number"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1611
> > >> +#: ../semanage/seobject.py:1606
> > >> msgid "IB device name is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1616
> > >> +#: ../semanage/seobject.py:1611
> > >> msgid "Invalid Port Number"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1620
> > >> -#, python-format
> > >> -msgid "Could not create a key for ibendport %s/%s"
> > >> +#: ../semanage/seobject.py:1615
> > >> +#, python-brace-format
> > >> +msgid "Could not create a key for ibendport {ibdev_name}/{ibendport}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1636 ../semanage/seobject.py:1699
> > >> +#: ../semanage/seobject.py:1631 ../semanage/seobject.py:1694
> > >> #, python-format
> > >> msgid "Type %s is invalid, must be an ibendport type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1641 ../semanage/seobject.py:1705
> > >> -#: ../semanage/seobject.py:1757 ../semanage/seobject.py:1763
> > >> -#, python-format
> > >> -msgid "Could not check if ibendport %s/%s is defined"
> > >> +#: ../semanage/seobject.py:1636
> > >> +#, python-brace-format
> > >> +msgid "Could not check if ibendport {ibdev_name}/{port} is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1643
> > >> -#, python-format
> > >> -msgid "ibendport %s/%s already defined"
> > >> +#: ../semanage/seobject.py:1638
> > >> +#, python-brace-format
> > >> +msgid "ibendport {ibdev_name}/{port} already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1647
> > >> -#, python-format
> > >> -msgid "Could not create ibendport for %s/%s"
> > >> +#: ../semanage/seobject.py:1642
> > >> +#, python-brace-format
> > >> +msgid "Could not create ibendport for {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1657
> > >> -#, python-format
> > >> -msgid "Could not set user in ibendport context for %s/%s"
> > >> +#: ../semanage/seobject.py:1648
> > >> +#, python-brace-format
> > >> +msgid "Could not create context for {ibendport}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1661
> > >> -#, python-format
> > >> -msgid "Could not set role in ibendport context for %s/%s"
> > >> +#: ../semanage/seobject.py:1652
> > >> +#, python-brace-format
> > >> +msgid "Could not set user in ibendport context for {ibdev_name}/{port}"
> > >> +msgstr ""
> > >> +
> > >> +#: ../semanage/seobject.py:1656
> > >> +#, python-brace-format
> > >> +msgid "Could not set role in ibendport context for {ibdev_name}/{port}"
> > >> +msgstr ""
> > >> +
> > >> +#: ../semanage/seobject.py:1660
> > >> +#, python-brace-format
> > >> +msgid "Could not set type in ibendport context for {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> #: ../semanage/seobject.py:1665
> > >> -#, python-format
> > >> -msgid "Could not set type in ibendport context for %s/%s"
> > >> +#, python-brace-format
> > >> +msgid "Could not set mls fields in ibendport context for {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1670
> > >> -#, python-format
> > >> -msgid "Could not set mls fields in ibendport context for %s/%s"
> > >> +#: ../semanage/seobject.py:1669
> > >> +#, python-brace-format
> > >> +msgid "Could not set ibendport context for {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1674
> > >> -#, python-format
> > >> -msgid "Could not set ibendport context for %s/%s"
> > >> +#: ../semanage/seobject.py:1673
> > >> +#, python-brace-format
> > >> +msgid "Could not add ibendport {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1678
> > >> -#, python-format
> > >> -msgid "Could not add ibendport %s/%s"
> > >> +#: ../semanage/seobject.py:1700 ../semanage/seobject.py:1752
> > >> +#: ../semanage/seobject.py:1758
> > >> +#, python-brace-format
> > >> +msgid "Could not check if ibendport {ibdev_name}/{ibendport} is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1707 ../semanage/seobject.py:1759
> > >> -#, python-format
> > >> -msgid "ibendport %s/%s is not defined"
> > >> +#: ../semanage/seobject.py:1702 ../semanage/seobject.py:1754
> > >> +#, python-brace-format
> > >> +msgid "ibendport {ibdev_name}/{ibendport} is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1711
> > >> -#, python-format
> > >> -msgid "Could not query ibendport %s/%s"
> > >> +#: ../semanage/seobject.py:1706
> > >> +#, python-brace-format
> > >> +msgid "Could not query ibendport {ibdev_name}/{ibendport}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1722
> > >> -#, python-format
> > >> -msgid "Could not modify ibendport %s/%s"
> > >> +#: ../semanage/seobject.py:1717
> > >> +#, python-brace-format
> > >> +msgid "Could not modify ibendport {ibdev_name}/{ibendport}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1735
> > >> +#: ../semanage/seobject.py:1730
> > >> msgid "Could not list the ibendports"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1744
> > >> -#, python-format
> > >> -msgid "Could not create a key for %s/%d"
> > >> +#: ../semanage/seobject.py:1739
> > >> +#, python-brace-format
> > >> +msgid "Could not create a key for {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1748
> > >> -#, python-format
> > >> -msgid "Could not delete the ibendport %s/%d"
> > >> +#: ../semanage/seobject.py:1743
> > >> +#, python-brace-format
> > >> +msgid "Could not delete the ibendport {ibdev_name}/{port}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1765
> > >> -#, python-format
> > >> -msgid "ibendport %s/%s is defined in policy, cannot be deleted"
> > >> +#: ../semanage/seobject.py:1760
> > >> +#, python-brace-format
> > >> +msgid ""
> > >> +"ibendport {ibdev_name}/{ibendport} is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1769
> > >> -#, python-format
> > >> -msgid "Could not delete ibendport %s/%s"
> > >> +#: ../semanage/seobject.py:1764
> > >> +#, python-brace-format
> > >> +msgid "Could not delete ibendport {ibdev_name}/{ibendport}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1785 ../semanage/seobject.py:1805
> > >> +#: ../semanage/seobject.py:1780 ../semanage/seobject.py:1800
> > >> msgid "Could not list ibendports"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1835
> > >> +#: ../semanage/seobject.py:1830
> > >> msgid "SELinux IB End Port Type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1835
> > >> +#: ../semanage/seobject.py:1830
> > >> msgid "IB Device Name"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1861
> > >> +#: ../semanage/seobject.py:1856
> > >> msgid "Node Address is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1873 ../semanage/seobject.py:1885
> > >> +#: ../semanage/seobject.py:1868 ../semanage/seobject.py:1880
> > >> msgid "Unknown or missing protocol"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1899
> > >> +#: ../semanage/seobject.py:1894
> > >> msgid "SELinux node type is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1904 ../semanage/seobject.py:1975
> > >> +#: ../semanage/seobject.py:1899 ../semanage/seobject.py:1970
> > >> #, python-format
> > >> msgid "Type %s is invalid, must be a node type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1908 ../semanage/seobject.py:1979
> > >> -#: ../semanage/seobject.py:2016 ../semanage/seobject.py:2117
> > >> -#: ../semanage/seobject.py:2180 ../semanage/seobject.py:2216
> > >> -#: ../semanage/seobject.py:2435
> > >> +#: ../semanage/seobject.py:1903 ../semanage/seobject.py:1974
> > >> +#: ../semanage/seobject.py:2011 ../semanage/seobject.py:2112
> > >> +#: ../semanage/seobject.py:2175 ../semanage/seobject.py:2211
> > >> +#: ../semanage/seobject.py:2430
> > >> #, python-format
> > >> msgid "Could not create key for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1912 ../semanage/seobject.py:1983
> > >> -#: ../semanage/seobject.py:2020 ../semanage/seobject.py:2026
> > >> +#: ../semanage/seobject.py:1907 ../semanage/seobject.py:1978
> > >> +#: ../semanage/seobject.py:2015 ../semanage/seobject.py:2021
> > >> #, python-format
> > >> msgid "Could not check if addr %s is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1914
> > >> +#: ../semanage/seobject.py:1909
> > >> #, python-format
> > >> msgid "Addr %s already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1918
> > >> +#: ../semanage/seobject.py:1913
> > >> #, python-format
> > >> msgid "Could not create addr for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1924 ../semanage/seobject.py:2132
> > >> -#: ../semanage/seobject.py:2389
> > >> +#: ../semanage/seobject.py:1919 ../semanage/seobject.py:2127
> > >> +#: ../semanage/seobject.py:2384
> > >> #, python-format
> > >> msgid "Could not create context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1928
> > >> +#: ../semanage/seobject.py:1923
> > >> #, python-format
> > >> msgid "Could not set mask for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1932
> > >> +#: ../semanage/seobject.py:1927
> > >> #, python-format
> > >> msgid "Could not set user in addr context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1936
> > >> +#: ../semanage/seobject.py:1931
> > >> #, python-format
> > >> msgid "Could not set role in addr context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1940
> > >> +#: ../semanage/seobject.py:1935
> > >> #, python-format
> > >> msgid "Could not set type in addr context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1945
> > >> +#: ../semanage/seobject.py:1940
> > >> #, python-format
> > >> msgid "Could not set mls fields in addr context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1949
> > >> +#: ../semanage/seobject.py:1944
> > >> #, python-format
> > >> msgid "Could not set addr context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1953
> > >> +#: ../semanage/seobject.py:1948
> > >> #, python-format
> > >> msgid "Could not add addr %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1985 ../semanage/seobject.py:2022
> > >> +#: ../semanage/seobject.py:1980 ../semanage/seobject.py:2017
> > >> #, python-format
> > >> msgid "Addr %s is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1989
> > >> +#: ../semanage/seobject.py:1984
> > >> #, python-format
> > >> msgid "Could not query addr %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:1999
> > >> +#: ../semanage/seobject.py:1994
> > >> #, python-format
> > >> msgid "Could not modify addr %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2028
> > >> +#: ../semanage/seobject.py:2023
> > >> #, python-format
> > >> msgid "Addr %s is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2032
> > >> +#: ../semanage/seobject.py:2027
> > >> #, python-format
> > >> msgid "Could not delete addr %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2046
> > >> +#: ../semanage/seobject.py:2041
> > >> msgid "Could not deleteall node mappings"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2060
> > >> +#: ../semanage/seobject.py:2055
> > >> msgid "Could not list addrs"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2113 ../semanage/seobject.py:2426
> > >> +#: ../semanage/seobject.py:2108 ../semanage/seobject.py:2421
> > >> msgid "SELinux Type is required"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2121 ../semanage/seobject.py:2184
> > >> -#: ../semanage/seobject.py:2220 ../semanage/seobject.py:2226
> > >> +#: ../semanage/seobject.py:2116 ../semanage/seobject.py:2179
> > >> +#: ../semanage/seobject.py:2215 ../semanage/seobject.py:2221
> > >> #, python-format
> > >> msgid "Could not check if interface %s is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2123
> > >> +#: ../semanage/seobject.py:2118
> > >> #, python-format
> > >> msgid "Interface %s already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2127
> > >> +#: ../semanage/seobject.py:2122
> > >> #, python-format
> > >> msgid "Could not create interface for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2136
> > >> +#: ../semanage/seobject.py:2131
> > >> #, python-format
> > >> msgid "Could not set user in interface context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2140
> > >> +#: ../semanage/seobject.py:2135
> > >> #, python-format
> > >> msgid "Could not set role in interface context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2144
> > >> +#: ../semanage/seobject.py:2139
> > >> #, python-format
> > >> msgid "Could not set type in interface context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2149
> > >> +#: ../semanage/seobject.py:2144
> > >> #, python-format
> > >> msgid "Could not set mls fields in interface context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2153
> > >> +#: ../semanage/seobject.py:2148
> > >> #, python-format
> > >> msgid "Could not set interface context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2157
> > >> +#: ../semanage/seobject.py:2152
> > >> #, python-format
> > >> msgid "Could not set message context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2161
> > >> +#: ../semanage/seobject.py:2156
> > >> #, python-format
> > >> msgid "Could not add interface %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2186 ../semanage/seobject.py:2222
> > >> +#: ../semanage/seobject.py:2181 ../semanage/seobject.py:2217
> > >> #, python-format
> > >> msgid "Interface %s is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2190
> > >> +#: ../semanage/seobject.py:2185
> > >> #, python-format
> > >> msgid "Could not query interface %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2201
> > >> +#: ../semanage/seobject.py:2196
> > >> #, python-format
> > >> msgid "Could not modify interface %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2228
> > >> +#: ../semanage/seobject.py:2223
> > >> #, python-format
> > >> msgid "Interface %s is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2232
> > >> +#: ../semanage/seobject.py:2227
> > >> #, python-format
> > >> msgid "Could not delete interface %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2246
> > >> +#: ../semanage/seobject.py:2241
> > >> msgid "Could not delete all interface mappings"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2260
> > >> +#: ../semanage/seobject.py:2255
> > >> msgid "Could not list interfaces"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2285
> > >> +#: ../semanage/seobject.py:2280
> > >> msgid "SELinux Interface"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2285 ../semanage/seobject.py:2677
> > >> +#: ../semanage/seobject.py:2280 ../semanage/seobject.py:2672
> > >> msgid "Context"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2355
> > >> +#: ../semanage/seobject.py:2350
> > >> #, python-format
> > >> msgid "Target %s is not valid. Target is not allowed to end with '/'"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2358
> > >> +#: ../semanage/seobject.py:2353
> > >> #, python-format
> > >> msgid "Substitute %s is not valid. Substitute is not allowed to end with '/'"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2361
> > >> +#: ../semanage/seobject.py:2356
> > >> #, python-format
> > >> msgid "Equivalence class for %s already exists"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2367
> > >> +#: ../semanage/seobject.py:2362
> > >> #, python-format
> > >> msgid "File spec %s conflicts with equivalency rule '%s %s'"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2378
> > >> +#: ../semanage/seobject.py:2373
> > >> #, python-format
> > >> msgid "Equivalence class for %s does not exist"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2395
> > >> +#: ../semanage/seobject.py:2390
> > >> #, python-format
> > >> msgid "Could not set user in file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2399
> > >> +#: ../semanage/seobject.py:2394
> > >> #, python-format
> > >> msgid "Could not set role in file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2404 ../semanage/seobject.py:2464
> > >> +#: ../semanage/seobject.py:2399 ../semanage/seobject.py:2459
> > >> #, python-format
> > >> msgid "Could not set mls fields in file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2410
> > >> +#: ../semanage/seobject.py:2405
> > >> msgid "Invalid file specification"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2412
> > >> +#: ../semanage/seobject.py:2407
> > >> msgid "File specification can not include spaces"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2417
> > >> +#: ../semanage/seobject.py:2412
> > >> #, python-format
> > >> msgid ""
> > >> "File spec %s conflicts with equivalency rule '%s %s'; Try adding '%s' instead"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2431 ../semanage/seobject.py:2496
> > >> +#: ../semanage/seobject.py:2426 ../semanage/seobject.py:2491
> > >> #, python-format
> > >> msgid "Type %s is invalid, must be a file or device type"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2439 ../semanage/seobject.py:2444
> > >> -#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2515
> > >> -#: ../semanage/seobject.py:2603 ../semanage/seobject.py:2607
> > >> +#: ../semanage/seobject.py:2434 ../semanage/seobject.py:2439
> > >> +#: ../semanage/seobject.py:2501 ../semanage/seobject.py:2510
> > >> +#: ../semanage/seobject.py:2598 ../semanage/seobject.py:2602
> > >> #, python-format
> > >> msgid "Could not check if file context for %s is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2447
> > >> +#: ../semanage/seobject.py:2442
> > >> #, python-format
> > >> msgid "File context for %s already defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2451
> > >> +#: ../semanage/seobject.py:2446
> > >> #, python-format
> > >> msgid "Could not create file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2459
> > >> +#: ../semanage/seobject.py:2454
> > >> #, python-format
> > >> msgid "Could not set type in file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2467 ../semanage/seobject.py:2539
> > >> -#: ../semanage/seobject.py:2543
> > >> +#: ../semanage/seobject.py:2462 ../semanage/seobject.py:2534
> > >> +#: ../semanage/seobject.py:2538
> > >> #, python-format
> > >> msgid "Could not set file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2473
> > >> +#: ../semanage/seobject.py:2468
> > >> #, python-format
> > >> msgid "Could not add file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2492
> > >> +#: ../semanage/seobject.py:2487
> > >> msgid "Requires setype, serange or seuser"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2511 ../semanage/seobject.py:2521
> > >> +#: ../semanage/seobject.py:2506 ../semanage/seobject.py:2516
> > >> #, python-format
> > >> msgid "Could not query file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2517 ../semanage/seobject.py:2611
> > >> +#: ../semanage/seobject.py:2512 ../semanage/seobject.py:2606
> > >> #, python-format
> > >> msgid "File context for %s is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2547
> > >> +#: ../semanage/seobject.py:2542
> > >> #, python-format
> > >> msgid "Could not modify file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2565
> > >> +#: ../semanage/seobject.py:2560
> > >> msgid "Could not list the file contexts"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2579
> > >> +#: ../semanage/seobject.py:2574
> > >> #, python-format
> > >> msgid "Could not delete the file context %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2609
> > >> +#: ../semanage/seobject.py:2604
> > >> #, python-format
> > >> msgid "File context for %s is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2615
> > >> +#: ../semanage/seobject.py:2610
> > >> #, python-format
> > >> msgid "Could not delete file context for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2632
> > >> +#: ../semanage/seobject.py:2627
> > >> msgid "Could not list file contexts"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2636
> > >> +#: ../semanage/seobject.py:2631
> > >> msgid "Could not list file contexts for home directories"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2640
> > >> +#: ../semanage/seobject.py:2635
> > >> msgid "Could not list local file contexts"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2677
> > >> +#: ../semanage/seobject.py:2672
> > >> msgid "SELinux fcontext"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2690
> > >> +#: ../semanage/seobject.py:2685
> > >> msgid ""
> > >> "\n"
> > >> "SELinux Distribution fcontext Equivalence \n"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2695
> > >> +#: ../semanage/seobject.py:2690
> > >> msgid ""
> > >> "\n"
> > >> "SELinux Local fcontext Equivalence \n"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2733 ../semanage/seobject.py:2784
> > >> -#: ../semanage/seobject.py:2790
> > >> +#: ../semanage/seobject.py:2728 ../semanage/seobject.py:2779
> > >> +#: ../semanage/seobject.py:2785
> > >> #, python-format
> > >> msgid "Could not check if boolean %s is defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2735 ../semanage/seobject.py:2786
> > >> +#: ../semanage/seobject.py:2730 ../semanage/seobject.py:2781
> > >> #, python-format
> > >> msgid "Boolean %s is not defined"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2739
> > >> +#: ../semanage/seobject.py:2734
> > >> #, python-format
> > >> msgid "Could not query file context %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2744
> > >> +#: ../semanage/seobject.py:2739
> > >> #, python-format
> > >> msgid "You must specify one of the following values: %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2749
> > >> +#: ../semanage/seobject.py:2744
> > >> #, python-format
> > >> msgid "Could not set active value of boolean %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2752
> > >> +#: ../semanage/seobject.py:2747
> > >> #, python-format
> > >> msgid "Could not modify boolean %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2768
> > >> -#, python-format
> > >> -msgid "Bad format %s: Record %s"
> > >> +#: ../semanage/seobject.py:2763
> > >> +#, python-brace-format
> > >> +msgid "Bad format {filename}: Record {record}"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2792
> > >> +#: ../semanage/seobject.py:2787
> > >> #, python-format
> > >> msgid "Boolean %s is defined in policy, cannot be deleted"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2796
> > >> +#: ../semanage/seobject.py:2791
> > >> #, python-format
> > >> msgid "Could not delete boolean %s"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2808 ../semanage/seobject.py:2825
> > >> +#: ../semanage/seobject.py:2803 ../semanage/seobject.py:2820
> > >> msgid "Could not list booleans"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2858
> > >> +#: ../semanage/seobject.py:2853
> > >> msgid "off"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2858
> > >> +#: ../semanage/seobject.py:2853
> > >> msgid "on"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2870
> > >> +#: ../semanage/seobject.py:2865
> > >> msgid "SELinux boolean"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2870
> > >> +#: ../semanage/seobject.py:2865
> > >> msgid "State"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2870
> > >> +#: ../semanage/seobject.py:2865
> > >> msgid "Default"
> > >> msgstr ""
> > >>
> > >> -#: ../semanage/seobject.py:2870 ../sepolicy/sepolicy/sepolicy.glade:2140
> > >> +#: ../semanage/seobject.py:2865 ../sepolicy/sepolicy/sepolicy.glade:2140
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:2510
> > >> #: ../sepolicy/sepolicy/sepolicy.glade:5099
> > >> msgid "Description"
> > >> @@ -1555,151 +1566,151 @@ msgstr ""
> > >> msgid "Missing interface definition for %s"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:140
> > >> +#: ../sepolicy/sepolicy/generate.py:138
> > >> msgid "Standard Init Daemon"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:141
> > >> +#: ../sepolicy/sepolicy/generate.py:139
> > >> msgid "DBUS System Daemon"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:142
> > >> +#: ../sepolicy/sepolicy/generate.py:140
> > >> msgid "Internet Services Daemon"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:143
> > >> +#: ../sepolicy/sepolicy/generate.py:141
> > >> msgid "Web Application/Script (CGI)"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:144
> > >> +#: ../sepolicy/sepolicy/generate.py:142
> > >> msgid "Sandbox"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:145
> > >> +#: ../sepolicy/sepolicy/generate.py:143
> > >> msgid "User Application"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:146
> > >> +#: ../sepolicy/sepolicy/generate.py:144
> > >> msgid "Existing Domain Type"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:147
> > >> +#: ../sepolicy/sepolicy/generate.py:145
> > >> msgid "Minimal Terminal Login User Role"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:148
> > >> +#: ../sepolicy/sepolicy/generate.py:146
> > >> msgid "Minimal X Windows Login User Role"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:149
> > >> +#: ../sepolicy/sepolicy/generate.py:147
> > >> msgid "Desktop Login User Role"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:150
> > >> +#: ../sepolicy/sepolicy/generate.py:148
> > >> msgid "Administrator Login User Role"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:151
> > >> +#: ../sepolicy/sepolicy/generate.py:149
> > >> msgid "Confined Root Administrator Role"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:152
> > >> +#: ../sepolicy/sepolicy/generate.py:150
> > >> msgid "Module information for a new type"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:158
> > >> +#: ../sepolicy/sepolicy/generate.py:156
> > >> msgid "Valid Types:\n"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:193
> > >> +#: ../sepolicy/sepolicy/generate.py:191
> > >> #, python-format
> > >> msgid "Ports must be numbers or ranges of numbers from 1 to %d "
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:205
> > >> +#: ../sepolicy/sepolicy/generate.py:203
> > >> msgid "You must enter a valid policy type"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:208
> > >> +#: ../sepolicy/sepolicy/generate.py:206
> > >> #, python-format
> > >> msgid "You must enter a name for your policy module for your '%s'."
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:346
> > >> +#: ../sepolicy/sepolicy/generate.py:344
> > >> msgid ""
> > >> "Name must be alphanumeric with no spaces. Consider using option \"-n "
> > >> "MODULENAME\""
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:438
> > >> +#: ../sepolicy/sepolicy/generate.py:436
> > >> msgid "User Role types can not be assigned executables."
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:444
> > >> +#: ../sepolicy/sepolicy/generate.py:442
> > >> msgid "Only Daemon apps can use an init script."
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:462
> > >> +#: ../sepolicy/sepolicy/generate.py:460
> > >> msgid "use_resolve must be a boolean value "
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:468
> > >> +#: ../sepolicy/sepolicy/generate.py:466
> > >> msgid "use_syslog must be a boolean value "
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:474
> > >> +#: ../sepolicy/sepolicy/generate.py:472
> > >> msgid "use_kerberos must be a boolean value "
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:480
> > >> +#: ../sepolicy/sepolicy/generate.py:478
> > >> msgid "manage_krb5_rcache must be a boolean value "
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:510
> > >> +#: ../sepolicy/sepolicy/generate.py:508
> > >> msgid "USER Types automatically get a tmp type"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:847
> > >> +#: ../sepolicy/sepolicy/generate.py:845
> > >> #, python-format
> > >> msgid "'%s' policy modules require existing domains"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:872
> > >> +#: ../sepolicy/sepolicy/generate.py:870
> > >> msgid "Type field required"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:885
> > >> +#: ../sepolicy/sepolicy/generate.py:883
> > >> #, python-format
> > >> msgid ""
> > >> "You need to define a new type which ends with: \n"
> > >> " %s"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1113
> > >> +#: ../sepolicy/sepolicy/generate.py:1111
> > >> msgid "You must enter the executable path for your confined process"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1378
> > >> +#: ../sepolicy/sepolicy/generate.py:1376
> > >> msgid "Created the following files:\n"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1379
> > >> +#: ../sepolicy/sepolicy/generate.py:1377
> > >> msgid "Type Enforcement file"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1380
> > >> +#: ../sepolicy/sepolicy/generate.py:1378
> > >> msgid "Interface file"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1381
> > >> +#: ../sepolicy/sepolicy/generate.py:1379
> > >> msgid "File Contexts file"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1383
> > >> +#: ../sepolicy/sepolicy/generate.py:1381
> > >> msgid "Spec file"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/generate.py:1384
> > >> +#: ../sepolicy/sepolicy/generate.py:1382
> > >> msgid "Setup Script"
> > >> msgstr ""
> > >>
> > >> @@ -2367,29 +2378,29 @@ msgstr ""
> > >> msgid "named pipe"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/__init__.py:148
> > >> +#: ../sepolicy/sepolicy/__init__.py:149
> > >> msgid "No SELinux Policy installed"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/__init__.py:184
> > >> +#: ../sepolicy/sepolicy/__init__.py:185
> > >> #, python-format
> > >> msgid "Failed to read %s policy file"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/__init__.py:470
> > >> +#: ../sepolicy/sepolicy/__init__.py:471
> > >> #, python-format
> > >> msgid "-- Allowed %s [ %s ]"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/__init__.py:896
> > >> +#: ../sepolicy/sepolicy/__init__.py:897
> > >> msgid "You must regenerate interface info by running /usr/bin/sepolgen-ifgen"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/__init__.py:1221
> > >> +#: ../sepolicy/sepolicy/__init__.py:1230
> > >> msgid "unknown"
> > >> msgstr ""
> > >>
> > >> -#: ../sepolicy/sepolicy/__init__.py:1230
> > >> +#: ../sepolicy/sepolicy/__init__.py:1239
> > >> #, python-brace-format
> > >> msgid "Allow {subject} to {rest}"
> > >> msgstr ""
> > >
> >
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2023-07-12 17:33 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-17 13:49 [PATCH 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-05-17 13:49 ` [PATCH 2/4] python/semanage: Drop hard formating from localized strings Petr Lautrbach
2023-06-06 15:20 ` Vit Mojzis
2023-05-17 13:49 ` [PATCH 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-05-17 13:49 ` [PATCH 4/4] python: update python.pot Petr Lautrbach
2023-06-06 15:20 ` [PATCH 1/4] python: improve format strings for proper localization Vit Mojzis
2023-06-12 16:21 ` Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-06-13 9:30 ` Vit Mojzis
2023-06-12 16:21 ` [PATCH v2 2/4] python: Drop hard formating from localized strings Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-06-12 16:21 ` [PATCH v2 4/4] python: update python.pot Petr Lautrbach
2023-06-13 9:42 ` Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 2/4] python: Drop hard formating from localized strings Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-06-13 9:42 ` [PATCH v3 4/4] python: update python.pot Petr Lautrbach
2023-06-13 11:20 ` Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 1/4] python: improve format strings for proper localization Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 2/4] python: Drop hard formating from localized strings Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 3/4] semanage: Drop unnecessary import from seobject Petr Lautrbach
2023-06-13 11:20 ` [PATCH v4 4/4] python: update python.pot Petr Lautrbach
2023-06-13 12:37 ` Vit Mojzis
2023-06-27 13:55 ` Petr Lautrbach
2023-07-06 13:39 ` James Carter
2023-07-12 17:33 ` James Carter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).