summaryrefslogtreecommitdiff
path: root/media-gfx/mypaint/files/mypaint-2.0.1-python3.11.patch
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx/mypaint/files/mypaint-2.0.1-python3.11.patch')
-rw-r--r--media-gfx/mypaint/files/mypaint-2.0.1-python3.11.patch92
1 files changed, 92 insertions, 0 deletions
diff --git a/media-gfx/mypaint/files/mypaint-2.0.1-python3.11.patch b/media-gfx/mypaint/files/mypaint-2.0.1-python3.11.patch
new file mode 100644
index 000000000000..7a652754204d
--- /dev/null
+++ b/media-gfx/mypaint/files/mypaint-2.0.1-python3.11.patch
@@ -0,0 +1,92 @@
+https://github.com/mypaint/mypaint/pull/1193
+
+From 032a155b72f2b021f66a994050d83f07342d04af Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
+ <congdanhqx@gmail.com>
+Date: Wed, 9 Nov 2022 11:24:33 +0700
+Subject: [PATCH] python: fix for Python 3.11
+
+- python 3 always open in universal mode, U is default mode in 3.0,
+ and removed in 3.11
+- mypaint doesn't use ld?n?gettext, so bind_textdomain_codeset isn't
+ needed, that function is deprecated in 3.8 and is no-ops in 3.10 and
+ removed in 3.11
+--- a/lib/gettext_setup.py
++++ b/lib/gettext_setup.py
+@@ -82,13 +82,11 @@ def init_gettext(localepath):
+ # yanked in over GI.
+ # https://bugzilla.gnome.org/show_bug.cgi?id=574520#c26
+ bindtextdomain = None
+- bind_textdomain_codeset = None
+ textdomain = None
+
+ # Try the POSIX/Linux way first.
+ try:
+ bindtextdomain = locale.bindtextdomain
+- bind_textdomain_codeset = locale.bind_textdomain_codeset
+ textdomain = locale.textdomain
+ except AttributeError:
+ logger.warning(
+@@ -117,12 +115,6 @@ def init_gettext(localepath):
+ ctypes.c_char_p,
+ )
+ bindtextdomain.restype = ctypes.c_char_p
+- bind_textdomain_codeset = libintl.bind_textdomain_codeset
+- bind_textdomain_codeset.argtypes = (
+- ctypes.c_char_p,
+- ctypes.c_char_p,
+- )
+- bind_textdomain_codeset.restype = ctypes.c_char_p
+ textdomain = libintl.textdomain
+ textdomain.argtypes = (
+ ctypes.c_char_p,
+@@ -177,35 +169,22 @@ def init_gettext(localepath):
+ # complete set from the same source.
+ # Required for translatable strings in GtkBuilder XML
+ # to be translated.
+- if bindtextdomain and bind_textdomain_codeset and textdomain:
++ if bindtextdomain and textdomain:
+ assert os.path.exists(path)
+ assert os.path.isdir(path)
+ if sys.platform == 'win32':
+ p = bindtextdomain(dom.encode('utf-8'), path.encode('utf-8'))
+- c = bind_textdomain_codeset(
+- dom.encode('utf-8'), codeset.encode('utf-8')
+- )
+ else:
+ p = bindtextdomain(dom, path)
+- c = bind_textdomain_codeset(dom, codeset)
+ logger.debug("C bindtextdomain(%r, %r): %r", dom, path, p)
+- logger.debug(
+- "C bind_textdomain_codeset(%r, %r): %r",
+- dom, codeset, c,
+- )
+ # Call the implementations in Python's standard gettext module
+ # too. This has proper cross-platform support, but it only
+ # initializes the native Python "gettext" module.
+ # Required for marked strings in Python source to be translated.
+ # See http://docs.python.org/release/2.7/library/locale.html
+ p = gettext.bindtextdomain(dom, path)
+- c = gettext.bind_textdomain_codeset(dom, codeset)
+ logger.debug("Python bindtextdomain(%r, %r): %r", dom, path, p)
+- logger.debug(
+- "Python bind_textdomain_codeset(%r, %r): %r",
+- dom, codeset, c,
+- )
+- if bindtextdomain and bind_textdomain_codeset and textdomain:
++ if bindtextdomain and textdomain:
+ if sys.platform == 'win32':
+ d = textdomain(defaultdom.encode('utf-8'))
+ else:
+--- a/setup.py
++++ b/setup.py
+@@ -679,7 +679,7 @@ def _install_script(self, src, header):
+ self.announce("installing %s as %s" % (src, targ_basename), level=2)
+ if self.dry_run:
+ return []
+- with open(src, "rU") as in_fp:
++ with open(src, "r") as in_fp:
+ with open(targ, "w") as out_fp:
+ line = in_fp.readline().rstrip()
+ if line.startswith("#!"):
+