guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/01: gnu: python-pyatspi: Fix loading libraries.


From: guix-commits
Subject: 01/01: gnu: python-pyatspi: Fix loading libraries.
Date: Sat, 22 Jun 2019 11:21:30 -0400 (EDT)

roptat pushed a commit to branch master
in repository guix.

commit b95af3f6ab6a55641260b8f9743496ec12992717
Author: Julien Lepiller <address@hidden>
Date:   Sat Jun 22 17:17:06 2019 +0200

    gnu: python-pyatspi: Fix loading libraries.
    
    * gnu/package/gnome.scm (python-pyatspi): Fix loading dependencies.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/gnome.scm                             | 15 +++-
 .../patches/python-pyatspi-python-37.patch         | 82 ++++++++++++++++++++++
 3 files changed, 97 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index a467501..8be4d74 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1218,6 +1218,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/python-mox3-python3.6-compat.patch      \
   %D%/packages/patches/python-testtools.patch                  \
   %D%/packages/patches/python-paste-remove-timing-test.patch   \
+  %D%/packages/patches/python-pyatspi-python-37.patch  \
   %D%/packages/patches/python-pycrypto-CVE-2013-7459.patch     \
   %D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
   %D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ad6b920..2820be0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7397,8 +7397,21 @@ kill/reinice processes.")
                     "/pyatspi-" version ".tar.xz"))
               (sha256
                (base32
-                "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))))
+                "0xdnix7gxzgf75xy9ris4dd6b05mqwicw190b98xqmypydyf95n6"))
+              ;; Patch from upstream, fixed in newer versions.
+              (patches (search-patches "python-pyatspi-python-37.patch"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'fix-atk-load
+           (lambda _
+             (substitute* "pyatspi/__init__.py"
+               (("from gi.repository import Atspi")
+                "gi.require_version('Gtk', '3.0')
+from gi.repository import Gtk
+from gi.repository import Atspi"))
+             #t)))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
diff --git a/gnu/packages/patches/python-pyatspi-python-37.patch 
b/gnu/packages/patches/python-pyatspi-python-37.patch
new file mode 100644
index 0000000..caa6aea
--- /dev/null
+++ b/gnu/packages/patches/python-pyatspi-python-37.patch
@@ -0,0 +1,82 @@
+From 29a7b929f7f1160b643dc5f5911533887173fcff Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <address@hidden>
+Date: Thu, 28 Jun 2018 17:10:33 +0200
+Subject: [PATCH] Rename async to asynchronous, keep backwards comaptibility
+
+async is a keyword in Python 3.7 and keeping it results in SyntaxError.
+
+Fixes https://gitlab.gnome.org/GNOME/pyatspi2/issues/1
+---
+ pyatspi/registry.py | 35 +++++++++++++++++++++++++++--------
+ 1 file changed, 27 insertions(+), 8 deletions(-)
+
+diff --git a/pyatspi/registry.py b/pyatspi/registry.py
+index cb28395..f73ee16 100644
+--- a/pyatspi/registry.py
++++ b/pyatspi/registry.py
+@@ -50,9 +50,9 @@ class Registry(object):
+         reference to the Accessibility.Registry singleton. Doing so is 
harmless and
+         has no point.
+ 
+-        @@ivar async: Should event dispatch to local listeners be decoupled 
from event
+-                receiving from the registry?
+-        @@type async: boolean
++        @@ivar asynchronous: Should event dispatch to local listeners be 
decoupled
++                from event receiving from the registry?
++        @@type asynchronous: boolean
+         @@ivar reg: Reference to the real, wrapped registry object
+         @@type reg: Accessibility.Registry
+         @@ivar dev: Reference to the device controller
+@@ -111,25 +111,44 @@ class Registry(object):
+ 
+                 self.has_implementations = True
+ 
+-                self.async = False    # not fully supported yet
++                self.asynchronous = False     # not fully supported yet
+                 self.started = False
+                 self.event_listeners = dict()
+ 
++        def __getattr__(self, name):
++            """
++            For backwards compatibility with old API
++            """
++            if name == 'async':
++                return self.asynchronous
++            return object.__getattr__(self, name)
++
++        def __setattr__(self, name, value):
++            """
++            For backwards compatibility with old API
++            """
++            if name == 'async':
++                self.asynchronous = value
++            object.__setattr__(self, name, value)
++
+         def _set_default_registry (self):
+                 self._set_registry (MAIN_LOOP_GLIB)
+ 
+-        def start(self, async=False, gil=True):
++        def start(self, asynchronous=False, gil=True, **kwargs):
+                 """
+                 Enter the main loop to start receiving and dispatching events.
+ 
+-                @@param async: Should event dispatch be asynchronous 
(decoupled) from 
+-                        event receiving from the AT-SPI registry?
+-                @@type async: boolean
++                @@param asynchronous: Should event dispatch be asynchronous
++                        (decoupled) from event receiving from the AT-SPI 
registry?
++                @@type asynchronous: boolean
+                 @@param gil: Add an idle callback which releases the Python 
GIL for a few
+                         milliseconds to allow other threads to run? Necessary 
if other threads
+                         will be used in this process.
+                 @@type gil: boolean
+                 """
++                if 'async' in kwargs:
++                    # support previous API
++                    asynchronous = kwargs['async']
+                 if not self.has_implementations:
+                         self._set_default_registry ()
+                 self.started = True
+-- 
+2.22.0
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]