All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dominick Grift <dac.override@gmail.com>
To: selinux@tycho.nsa.gov
Subject: Re: [PATCH 09/12] policycoreutils: gettext compat for py2 and 3
Date: Fri, 5 Aug 2016 10:47:55 +0200	[thread overview]
Message-ID: <f44147c5-6246-beb7-39ca-78c9f7ea6409@gmail.com> (raw)
In-Reply-To: <1470335645-24224-10-git-send-email-jason@perfinion.com>


[-- Attachment #1.1: Type: text/plain, Size: 26536 bytes --]

On 08/04/2016 08:34 PM, Jason Zaman wrote:
> Install gettext the same way everywhere and have fallbacks to use
> str/unicode depending on python version.

Speaking of gettext. gettext is actually a buildrequire but it is
currently not in the list of build requires for selinux

> ---
>  policycoreutils/gui/booleansPage.py            | 22 +++++++++++++---------
>  policycoreutils/gui/domainsPage.py             | 21 +++++++++++++--------
>  policycoreutils/gui/fcontextPage.py            | 22 +++++++++++++---------
>  policycoreutils/gui/loginsPage.py              | 21 +++++++++++++--------
>  policycoreutils/gui/mappingsPage.py            | 21 +++++++++++++--------
>  policycoreutils/gui/modulesPage.py             | 21 +++++++++++++--------
>  policycoreutils/gui/polgengui.py               | 22 +++++++++++++---------
>  policycoreutils/gui/portsPage.py               | 25 +++++++++++++------------
>  policycoreutils/gui/semanagePage.py            | 21 +++++++++++++--------
>  policycoreutils/gui/statusPage.py              | 24 ++++++++++++++++--------
>  policycoreutils/gui/system-config-selinux.py   | 22 +++++++++++++---------
>  policycoreutils/gui/usersPage.py               | 22 +++++++++++++++-------
>  policycoreutils/sandbox/sandbox                | 15 ++++++++-------
>  policycoreutils/scripts/chcat                  | 13 ++++++++++---
>  policycoreutils/semanage/semanage              |  4 ++--
>  policycoreutils/semanage/seobject.py           | 23 ++++++++++++++++-------
>  policycoreutils/sepolicy/sepolicy.py           | 21 +++++++++++++--------
>  policycoreutils/sepolicy/sepolicy/__init__.py  | 23 ++++++++++++++---------
>  policycoreutils/sepolicy/sepolicy/generate.py  | 22 +++++++++++++---------
>  policycoreutils/sepolicy/sepolicy/gui.py       | 21 +++++++++++++--------
>  policycoreutils/sepolicy/sepolicy/interface.py | 22 +++++++++++++---------
>  21 files changed, 263 insertions(+), 165 deletions(-)
> 
> diff --git a/policycoreutils/gui/booleansPage.py b/policycoreutils/gui/booleansPage.py
> index 507a79d..7057ff4 100644
> --- a/policycoreutils/gui/booleansPage.py
> +++ b/policycoreutils/gui/booleansPage.py
> @@ -40,18 +40,22 @@ DISABLED = 2
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  from glob import fnmatch
>  
> diff --git a/policycoreutils/gui/domainsPage.py b/policycoreutils/gui/domainsPage.py
> index 9992d00..8f113ce 100644
> --- a/policycoreutils/gui/domainsPage.py
> +++ b/policycoreutils/gui/domainsPage.py
> @@ -32,17 +32,22 @@ from semanagePage import *
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class domainsPage(semanagePage):
> diff --git a/policycoreutils/gui/fcontextPage.py b/policycoreutils/gui/fcontextPage.py
> index c8d6ba8..2b95099 100644
> --- a/policycoreutils/gui/fcontextPage.py
> +++ b/policycoreutils/gui/fcontextPage.py
> @@ -47,18 +47,22 @@ class context:
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class fcontextPage(semanagePage):
> diff --git a/policycoreutils/gui/loginsPage.py b/policycoreutils/gui/loginsPage.py
> index 982e252..8e0b7a2 100644
> --- a/policycoreutils/gui/loginsPage.py
> +++ b/policycoreutils/gui/loginsPage.py
> @@ -30,17 +30,22 @@ from semanagePage import *
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class loginsPage(semanagePage):
> diff --git a/policycoreutils/gui/mappingsPage.py b/policycoreutils/gui/mappingsPage.py
> index 1429bf7..3b4ceb6 100644
> --- a/policycoreutils/gui/mappingsPage.py
> +++ b/policycoreutils/gui/mappingsPage.py
> @@ -28,17 +28,22 @@ import seobject
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class loginsPage:
> diff --git a/policycoreutils/gui/modulesPage.py b/policycoreutils/gui/modulesPage.py
> index 3b83e45..c7c7848 100644
> --- a/policycoreutils/gui/modulesPage.py
> +++ b/policycoreutils/gui/modulesPage.py
> @@ -32,17 +32,22 @@ from subprocess import Popen, PIPE
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class modulesPage(semanagePage):
> diff --git a/policycoreutils/gui/polgengui.py b/policycoreutils/gui/polgengui.py
> index 1c349a7..1f97ada 100644
> --- a/policycoreutils/gui/polgengui.py
> +++ b/policycoreutils/gui/polgengui.py
> @@ -58,18 +58,22 @@ def get_all_modules():
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  gnome.program_init("SELinux Policy Generation Tool", "5")
>  
> diff --git a/policycoreutils/gui/portsPage.py b/policycoreutils/gui/portsPage.py
> index 8e74ac0..7e7a653 100644
> --- a/policycoreutils/gui/portsPage.py
> +++ b/policycoreutils/gui/portsPage.py
> @@ -30,21 +30,22 @@ from semanagePage import *
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
> -TYPE_COL = 0
> -PROTOCOL_COL = 1
> -MLS_COL = 2
> -PORT_COL = 3
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class portsPage(semanagePage):
> diff --git a/policycoreutils/gui/semanagePage.py b/policycoreutils/gui/semanagePage.py
> index 5d7f2cf..d07ce27 100644
> --- a/policycoreutils/gui/semanagePage.py
> +++ b/policycoreutils/gui/semanagePage.py
> @@ -28,17 +28,22 @@ import seobject
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  def idle_func():
> diff --git a/policycoreutils/gui/statusPage.py b/policycoreutils/gui/statusPage.py
> index 991d8f3..de27752 100644
> --- a/policycoreutils/gui/statusPage.py
> +++ b/policycoreutils/gui/statusPage.py
> @@ -23,6 +23,7 @@ import os
>  import gobject
>  import sys
>  import tempfile
> +import selinux
>  
>  INSTALLPATH = '/usr/share/system-config-selinux'
>  sys.path.append(INSTALLPATH)
> @@ -40,15 +41,22 @@ RELABELFILE = "/.autorelabel"
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
> -import selinux
>  try:
> -    gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
> +    gettext.install(PROGNAME,
> +                    localedir="/usr/share/locale",
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class statusPage:
> diff --git a/policycoreutils/gui/system-config-selinux.py b/policycoreutils/gui/system-config-selinux.py
> index 7d342d0..8d2be13 100644
> --- a/policycoreutils/gui/system-config-selinux.py
> +++ b/policycoreutils/gui/system-config-selinux.py
> @@ -47,18 +47,22 @@ import selinux
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  gnome.program_init("SELinux Management Tool", "5")
>  
> diff --git a/policycoreutils/gui/usersPage.py b/policycoreutils/gui/usersPage.py
> index abf8d3b..eb978ea 100644
> --- a/policycoreutils/gui/usersPage.py
> +++ b/policycoreutils/gui/usersPage.py
> @@ -30,14 +30,22 @@ from semanagePage import *
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> -    gettext.install(PROGNAME, localedir="/usr/share/locale", unicode=1)
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
> +    gettext.install(PROGNAME,
> +                    localedir="/usr/share/locale",
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  class usersPage(semanagePage):
> diff --git a/policycoreutils/sandbox/sandbox b/policycoreutils/sandbox/sandbox
> index 9e0024f..4f5128a 100644
> --- a/policycoreutils/sandbox/sandbox
> +++ b/policycoreutils/sandbox/sandbox
> @@ -35,18 +35,19 @@ from tempfile import mkdtemp
>  import pwd
>  import sepolicy
>  
> -PROGNAME = "policycoreutils"
>  SEUNSHARE = "/usr/sbin/seunshare"
>  SANDBOXSH = "/usr/share/sandbox/sandboxX.sh"
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
> -
> +PROGNAME = "policycoreutils"
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    codeset='utf-8')
> -except IOError:
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
>      try:
>          import builtins
>          builtins.__dict__['_'] = str
> diff --git a/policycoreutils/scripts/chcat b/policycoreutils/scripts/chcat
> index 267390e..2269ee0 100755
> --- a/policycoreutils/scripts/chcat
> +++ b/policycoreutils/scripts/chcat
> @@ -30,11 +30,18 @@ import string
>  import getopt
>  import selinux
>  import seobject
> -import gettext
>  
> +PROGNAME = "policycoreutils"
>  try:
> -    gettext.install('policycoreutils')
> -except IOError:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
> +    gettext.install(PROGNAME,
> +                    localedir="/usr/share/locale",
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
>      try:
>          import builtins
>          builtins.__dict__['_'] = str
> diff --git a/policycoreutils/semanage/semanage b/policycoreutils/semanage/semanage
> index e6e3a49..d945243 100644
> --- a/policycoreutils/semanage/semanage
> +++ b/policycoreutils/semanage/semanage
> @@ -27,9 +27,9 @@ import traceback
>  import argparse
>  import seobject
>  import sys
> -import gettext
>  PROGNAME = "policycoreutils"
>  try:
> +    import gettext
>      kwargs = {}
>      if sys.version_info < (3,):
>          kwargs['unicode'] = True
> @@ -37,7 +37,7 @@ try:
>                      localedir="/usr/share/locale",
>                      codeset='utf-8',
>                      **kwargs)
> -except IOError:
> +except:
>      try:
>          import builtins
>          builtins.__dict__['_'] = str
> diff --git a/policycoreutils/semanage/seobject.py b/policycoreutils/semanage/seobject.py
> index 2cc56d9..bd261df 100644
> --- a/policycoreutils/semanage/seobject.py
> +++ b/policycoreutils/semanage/seobject.py
> @@ -34,13 +34,22 @@ import sepolicy
>  sepolicy.gen_bool_dict()
>  from IPy import IP
>  
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
> -
> -import gettext
> -translation = gettext.translation(PROGNAME, localedir="/usr/share/locale", fallback=True)
> -_ = translation.ugettext
> +try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
> +    gettext.install(PROGNAME,
> +                    localedir="/usr/share/locale",
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  import syslog
>  
> diff --git a/policycoreutils/sepolicy/sepolicy.py b/policycoreutils/sepolicy/sepolicy.py
> index 7d57f6e..3e502a7 100755
> --- a/policycoreutils/sepolicy/sepolicy.py
> +++ b/policycoreutils/sepolicy/sepolicy.py
> @@ -27,18 +27,23 @@ import selinux
>  import sepolicy
>  from sepolicy import get_os_version, get_conditionals, get_conditionals_format_text
>  import argparse
> -import gettext
>  PROGNAME = "policycoreutils"
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  usage = "sepolicy generate [-h] [-n NAME] [-p PATH] ["
>  usage_dict = {' --newtype': ('-t [TYPES [TYPES ...]]',), ' --customize': ('-d DOMAIN', '-a  ADMIN_DOMAIN', "[ -w WRITEPATHS ]",), ' --admin_user': ('[-r TRANSITION_ROLE ]', "[ -w WRITEPATHS ]",), ' --application': ('COMMAND', "[ -w WRITEPATHS ]",), ' --cgi': ('COMMAND', "[ -w WRITEPATHS ]",), ' --confined_admin': ('-a  ADMIN_DOMAIN', "[ -w WRITEPATHS ]",), ' --dbus': ('COMMAND', "[ -w WRITEPATHS ]",), ' --desktop_user': ('', "[ -w WRITEPATHS ]",), ' --inetd': ('COMMAND', "[ -w WRITEPATHS ]",), ' --init': ('COMMAND', "[ -w WRITEPATHS ]",), ' --sandbox': ("[ -w WRITEPATHS ]",), ' --term_user': ("[ -w WRITEPATHS ]",), ' --x_user': ("[ -w WRITEPATHS ]",)}
> diff --git a/policycoreutils/sepolicy/sepolicy/__init__.py b/policycoreutils/sepolicy/sepolicy/__init__.py
> index 6aec4c0..c8d3b90 100644
> --- a/policycoreutils/sepolicy/sepolicy/__init__.py
> +++ b/policycoreutils/sepolicy/sepolicy/__init__.py
> @@ -6,8 +6,6 @@
>  from . import _policy
>  import selinux
>  import glob
> -PROGNAME = "policycoreutils"
> -import gettext
>  import sepolgen.defaults as defaults
>  import sepolgen.interfaces as interfaces
>  import sys
> @@ -15,16 +13,23 @@ import os
>  import re
>  import gzip
>  
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
> +PROGNAME = "policycoreutils"
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  TYPE = _policy.TYPE
>  ROLE = _policy.ROLE
> diff --git a/policycoreutils/sepolicy/sepolicy/generate.py b/policycoreutils/sepolicy/sepolicy/generate.py
> index 2d83702..00361c6 100644
> --- a/policycoreutils/sepolicy/sepolicy/generate.py
> +++ b/policycoreutils/sepolicy/sepolicy/generate.py
> @@ -53,18 +53,22 @@ import sepolgen.defaults as defaults
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  def get_rpm_nvr_from_header(hdr):
> diff --git a/policycoreutils/sepolicy/sepolicy/gui.py b/policycoreutils/sepolicy/sepolicy/gui.py
> index 0ffe9ee..7f1888c 100644
> --- a/policycoreutils/sepolicy/sepolicy/gui.py
> +++ b/policycoreutils/sepolicy/sepolicy/gui.py
> @@ -39,20 +39,25 @@ import sepolicy.manpage
>  import dbus
>  import os
>  import re
> -import gettext
>  import unicodedata
>  
>  PROGNAME = "policycoreutils"
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  reverse_file_type_str = {}
>  for f in sepolicy.file_type_str:
> diff --git a/policycoreutils/sepolicy/sepolicy/interface.py b/policycoreutils/sepolicy/sepolicy/interface.py
> index 85f7351..c2cb971 100644
> --- a/policycoreutils/sepolicy/sepolicy/interface.py
> +++ b/policycoreutils/sepolicy/sepolicy/interface.py
> @@ -33,18 +33,22 @@ __all__ = ['get_all_interfaces', 'get_interfaces_from_xml', 'get_admin', 'get_us
>  ## I18N
>  ##
>  PROGNAME = "policycoreutils"
> -
> -import gettext
> -gettext.bindtextdomain(PROGNAME, "/usr/share/locale")
> -gettext.textdomain(PROGNAME)
>  try:
> +    import gettext
> +    kwargs = {}
> +    if sys.version_info < (3,):
> +        kwargs['unicode'] = True
>      gettext.install(PROGNAME,
>                      localedir="/usr/share/locale",
> -                    unicode=False,
> -                    codeset='utf-8')
> -except IOError:
> -    import __builtin__
> -    __builtin__.__dict__['_'] = unicode
> +                    codeset='utf-8',
> +                    **kwargs)
> +except:
> +    try:
> +        import builtins
> +        builtins.__dict__['_'] = str
> +    except ImportError:
> +        import __builtin__
> +        __builtin__.__dict__['_'] = unicode
>  
>  
>  def get_interfaces_from_xml(path):
> 


-- 
Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8  02D5 3B6C 5F1D 2C7B 6B02
https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02
Dominick Grift


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 648 bytes --]

  reply	other threads:[~2016-08-05  8:48 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-04 18:33 Python3 support in policycoreutils Jason Zaman
2016-08-04 18:33 ` [PATCH 01/12] semanage: py3 support for print function and map/filter Jason Zaman
2016-08-04 18:33 ` [PATCH 02/12] seobject: use sorted() instead of .sort() Jason Zaman
2016-08-04 18:33 ` [PATCH 03/12] semanage: misc style issues Jason Zaman
2016-08-04 18:33 ` [PATCH 04/12] sepolicy: Add python3 PyInt and PyString defs Jason Zaman
2016-08-04 18:33 ` [PATCH 05/12] sepolicy: C Module init for python3 Jason Zaman
2016-08-04 18:33 ` [PATCH 06/12] sepolicy: update exceptions and print " Jason Zaman
2016-08-04 18:34 ` [PATCH 07/12] sepolicy: dont alias sepolicy.search and sepolicy.info Jason Zaman
2016-08-04 18:34 ` [PATCH 08/12] policycoreutils: import sepolicy directly Jason Zaman
2016-08-18 16:21   ` Stephen Smalley
2016-08-04 18:34 ` [PATCH 09/12] policycoreutils: gettext compat for py2 and 3 Jason Zaman
2016-08-05  8:47   ` Dominick Grift [this message]
2016-08-04 18:34 ` [PATCH 10/12] policycoreutils/gui: update to python3 Jason Zaman
2016-08-04 18:34 ` [PATCH 11/12] policycoreutils/gui: py3 support for modules that changed name Jason Zaman
2016-08-04 18:34 ` [PATCH 12/12] semanage: Print usage when no args Jason Zaman
2016-08-08 19:59 ` Python3 support in policycoreutils James Carter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f44147c5-6246-beb7-39ca-78c9f7ea6409@gmail.com \
    --to=dac.override@gmail.com \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.