summaryrefslogtreecommitdiff
path: root/dev-python/twisted/files/twisted-21.7.0-force-gtk3.patch
blob: a2e40559ec5945bf3187f1a93aa6c52a2574e126 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
From eec6b60116e12e015387fe1fa3a729553d3848bf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sat, 22 May 2021 01:11:48 +0200
Subject: [PATCH] Force using GTK+3 in twisted.internet.gireactor

Modify twisted.internet.gireactor to explicitly request GTK+ version 3.
Otherwise it uses the newest version installed which could be GTK+4
that gireactor is currently incompatible with.
---
 src/twisted/internet/gireactor.py           | 3 +++
 src/twisted/internet/test/test_gireactor.py | 3 +++
 src/twisted/newsfragments/10200.bugfix      | 1 +
 3 files changed, 7 insertions(+)
 create mode 100644 src/twisted/newsfragments/10200.bugfix

diff --git a/src/twisted/internet/gireactor.py b/src/twisted/internet/gireactor.py
index 92596db1d..a577825a8 100644
--- a/src/twisted/internet/gireactor.py
+++ b/src/twisted/internet/gireactor.py
@@ -24,6 +24,7 @@ On Python 3, pygobject v3.4 or later is required.
 from twisted.internet.error import ReactorAlreadyRunning
 from twisted.internet import _glibbase
 from twisted.python import runtime
+import gi  # type: ignore[import]
 import gi.pygtkcompat  # type: ignore[import]
 from gi.repository import GLib  # type: ignore[import]
 
@@ -68,6 +69,7 @@ class GIReactor(_glibbase.GlibReactorBase):
     def __init__(self, useGtk=False):
         _gtk = None
         if useGtk is True:
+            gi.require_version("Gtk", "3.0")
             from gi.repository import Gtk as _gtk
 
         _glibbase.GlibReactorBase.__init__(self, GLib, _gtk, useGtk=useGtk)
@@ -112,6 +114,7 @@ class PortableGIReactor(_glibbase.PortableGlibReactorBase):
     def __init__(self, useGtk=False):
         _gtk = None
         if useGtk is True:
+            gi.require_version("Gtk", "3.0")
             from gi.repository import Gtk as _gtk
 
         _glibbase.PortableGlibReactorBase.__init__(self, GLib, _gtk, useGtk=useGtk)
diff --git a/src/twisted/internet/test/test_gireactor.py b/src/twisted/internet/test/test_gireactor.py
index d15a92622..af5092a36 100644
--- a/src/twisted/internet/test/test_gireactor.py
+++ b/src/twisted/internet/test/test_gireactor.py
@@ -25,6 +25,9 @@ else:
         gtk3reactor = None
     else:
         gtk3reactor = _gtk3reactor
+        import gi  # type: ignore[import]
+
+        gi.require_version("Gtk", "3.0")
         from gi.repository import Gtk
 
 from twisted.internet.error import ReactorAlreadyRunning
diff --git a/src/twisted/newsfragments/10200.bugfix b/src/twisted/newsfragments/10200.bugfix
new file mode 100644
index 000000000..7afb343be
--- /dev/null
+++ b/src/twisted/newsfragments/10200.bugfix
@@ -0,0 +1 @@
+twisted.internet.gireactor was fixed to force GTK+3 in order to fix use of incompatible GTK+4 API when installed
-- 
2.32.0