commit:     993d5771169f5fcfbf0b82ae58db1f28bca1918a
Author:     Nick Sarnie <sarnex <AT> gentoo <DOT> org>
AuthorDate: Tue May  2 01:06:49 2023 +0000
Commit:     Nick Sarnie <sarnex <AT> gentoo <DOT> org>
CommitDate: Tue May  2 01:10:29 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=993d5771

media-gfx/displaycal-py3: Enable python 3.11

Closes: https://bugs.gentoo.org/896984

Signed-off-by: Nick Sarnie <sarnex <AT> gentoo.org>

 .../displaycal-py3/displaycal-py3-3.9.10-r1.ebuild | 69 ++++++++++++++++++
 .../files/displaycal-py3-3.9.10-python-3.11.patch  | 83 ++++++++++++++++++++++
 2 files changed, 152 insertions(+)

diff --git a/media-gfx/displaycal-py3/displaycal-py3-3.9.10-r1.ebuild 
b/media-gfx/displaycal-py3/displaycal-py3-3.9.10-r1.ebuild
new file mode 100644
index 000000000000..570bbc0db81d
--- /dev/null
+++ b/media-gfx/displaycal-py3/displaycal-py3-3.9.10-r1.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 xdg
+
+MY_PN="DisplayCAL"
+MY_P="${MY_PN}-${PV}"
+
+SRC_URI="https://github.com/eoyilmaz/displaycal-py3/releases/download/${PV}/${MY_P}.tar.gz";
+KEYWORDS="~amd64"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="Modernize the DisplayCAL code including Python 3 support"
+HOMEPAGE="https://github.com/eoyilmaz/displaycal-py3";
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+PATCHES="${FILESDIR}/${P}-python-3.11.patch"
+
+DEPEND="
+       dev-python/build[${PYTHON_USEDEP}]
+       dev-python/certifi:0[${PYTHON_USEDEP}]
+       dev-python/dbus-python[${PYTHON_USEDEP}]
+       dev-python/distro[${PYTHON_USEDEP}]
+       dev-python/numpy[${PYTHON_USEDEP}]
+       dev-python/pillow[${PYTHON_USEDEP}]
+       dev-python/pychromecast[${PYTHON_USEDEP}]
+       dev-python/send2trash[${PYTHON_USEDEP}]
+       dev-python/zeroconf[${PYTHON_USEDEP}]
+       >=dev-python/wxpython-4.2.0[${PYTHON_USEDEP}]
+       media-gfx/argyllcms
+       x11-libs/libXxf86vm"
+
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+       # Fix QA warning
+       sed -e 's/license_file/license_files/g' -i setup.cfg || die
+
+       # Remove x-world MIME
+       sed -i 's|x-world/x-vrml;||g' \
+               misc/displaycal-vrml-to-x3d-converter.desktop || die
+
+       distutils-r1_src_prepare
+}
+
+src_install() {
+       distutils-r1_src_install
+
+       # Use Gentoo package name for doc folder
+       mv "${ED}/usr/share/doc/${MY_P}" "${ED}/usr/share/doc/${P}" || die
+}
+
+pkg_postinst() {
+       xdg_pkg_postinst
+}
+
+pkg_postrm() {
+       xdg_pkg_postrm
+}

diff --git 
a/media-gfx/displaycal-py3/files/displaycal-py3-3.9.10-python-3.11.patch 
b/media-gfx/displaycal-py3/files/displaycal-py3-3.9.10-python-3.11.patch
new file mode 100644
index 000000000000..d8e7d05abfb4
--- /dev/null
+++ b/media-gfx/displaycal-py3/files/displaycal-py3-3.9.10-python-3.11.patch
@@ -0,0 +1,83 @@
+Based on
+https://github.com/eoyilmaz/displaycal-py3/commit/3762e7be0368484d68c4a90923672fdb0f51a5fc
+and
+https://github.com/eoyilmaz/displaycal-py3/commit/97f0c91f5855e4d21f47181ef596251eb03cb835
+
+diff --git a/DisplayCAL/RealDisplaySizeMM.py b/DisplayCAL/RealDisplaySizeMM.py
+index 00957692c..25b730d05 100644
+--- a/DisplayCAL/RealDisplaySizeMM.py
++++ b/DisplayCAL/RealDisplaySizeMM.py
+@@ -25,6 +25,8 @@
+         from DisplayCAL.lib64.python39.RealDisplaySizeMM import *
+     elif sys.version_info[:2] == (3, 10):
+         from DisplayCAL.lib64.python310.RealDisplaySizeMM import *
++    elif sys.version_info[:2] == (3, 11):
++        from DisplayCAL.lib64.python311.RealDisplaySizeMM import *
+ # else:
+ #     pass
+ 
+diff --git a/DisplayCAL/defaultpaths.py b/DisplayCAL/defaultpaths.py
+index cd11d6d75..59258e79d 100644
+--- a/DisplayCAL/defaultpaths.py
++++ b/DisplayCAL/defaultpaths.py
+@@ -235,9 +235,14 @@ def set_translation(obj):
+                     obj.GETTEXT_PACKAGE, locale_dir, codeset="UTF-8"
+                 )
+             except TypeError:
+-                obj.translation = gettext.translation(
+-                    obj.GETTEXT_PACKAGE, locale_dir
+-                )
++                try:
++                    obj.translation = gettext.translation(
++                        obj.GETTEXT_PACKAGE, locale_dir
++                    )
++                except FileNotFoundError as exc:
++                    print("XDG:", exc)
++                    obj.translation = gettext.NullTranslations()
++                    return False
+             except IOError as exception:
+                 print("XDG:", exception)
+                 obj.translation = gettext.NullTranslations()
+@@ -261,11 +266,7 @@ def get_config_files(filename):
+ 
+         @staticmethod
+         def shell_unescape(s):
+-            a = []
+-            for i, c in enumerate(s):
+-                if c == "\\" and len(s) > i + 1:
+-                    continue
+-                a.append(c)
++            a = [c for i, c in enumerate(s) if c != "\\" or len(s) <= i + 1]
+             return "".join(a)
+ 
+         @staticmethod
+diff --git a/DisplayCAL/lib64/python311/__init__.py 
b/DisplayCAL/lib64/python311/__init__.py
+new file mode 100644
+index 000000000..e69de29bb
+diff --git a/README.md b/README.md
+index 3ff3c4ec4..4119ace70 100644
+--- a/README.md
++++ b/README.md
+@@ -25,7 +25,7 @@ Here is a screenshots showing the tool working with Python 
3.10:
+ 
+ 
![image](https://user-images.githubusercontent.com/1786804/169152229-e06ff549-55fe-4149-8742-405446e6b01f.png)
+ 
+-Currently, DisplayCAL is working with Python 3.8, 3.9 and 3.10 and wxPython 
4.1.1 or 4.2.0.
++Currently, DisplayCAL is working with Python 3.8, 3.9, 3.10 and 3.11 and 
wxPython 4.1.1 or 4.2.0.
+ 
+ Here is a list of things that is working:
+ 
+
+diff --git a/DisplayCAL/meta.py b/DisplayCAL/meta.py
+index 00b9c82c..30797cdf 100644
+--- a/DisplayCAL/meta.py
++++ b/DisplayCAL/meta.py
+@@ -62,7 +62,7 @@
+ name_html = '<span class="appname">Display<span>CAL</span></span>'
+ 
+ py_minversion = (3, 8)
+-py_maxversion = (3, 10)
++py_maxversion = (3, 11)
+ 
+ version = VERSION_STRING
+ version_lin = VERSION_STRING  # Linux

Reply via email to