aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-05-01 13:59:08 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-05-01 17:13:53 -0400
commit39ba8a10971f15264966823e8696d63c2995df86 (patch)
tree24760456ca1b1082985a0313a49d7d09a6dbe17c /gnu/packages
parentf21007ce4aceeacf5bbfc7cd45d526073141f194 (diff)
downloadguix-39ba8a10971f15264966823e8696d63c2995df86.tar.gz
guix-39ba8a10971f15264966823e8696d63c2995df86.zip
gnu: python-wxpython: Apply patch to fix TypeError exceptions.
This is caused by Python 3.10's new behavior of native extension now rejecting float values as input when the expected type is an integer. * gnu/packages/patches/python-wxwidgets-type-errors.patch: New patch. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/wxwidgets.scm (python-wxpython) [source]: Apply it. Delete trailing #t. [arguments]: Delete trailing #t.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/patches/python-wxwidgets-type-errors.patch42
-rw-r--r--gnu/packages/wxwidgets.scm7
2 files changed, 45 insertions, 4 deletions
diff --git a/gnu/packages/patches/python-wxwidgets-type-errors.patch b/gnu/packages/patches/python-wxwidgets-type-errors.patch
new file mode 100644
index 0000000000..53e48c0886
--- /dev/null
+++ b/gnu/packages/patches/python-wxwidgets-type-errors.patch
@@ -0,0 +1,42 @@
+Merged upstream but not yet released (see:
+https://github.com/wxWidgets/Phoenix/pull/2387/commits/5d9f7aa185cd18da3e93ae1d0033fb9172d7a714).
+
+From 5d9f7aa185cd18da3e93ae1d0033fb9172d7a714 Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Mon, 1 May 2023 13:53:55 -0400
+Subject: [PATCH] agw: Fix TypeError caused by floats with Python 3.10
+ extensions.
+
+This fixes the following error:
+
+ File "/lib/python3.10/site-packages/wx/lib/agw/pygauge.py", line 380, in OnPaint
+ dc.DrawText(drawString, textXPos, textYPos)
+ TypeError: DC.DrawText(): arguments did not match any overloaded call:
+ overload 1: argument 2 has unexpected type 'float'
+ overload 2: argument 2 has unexpected type 'float'
+ TimeLeft: 3.0
+
+Visible when using Python 3.10 or newer.
+---
+ wx/lib/agw/pygauge.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/wx/lib/agw/pygauge.py b/wx/lib/agw/pygauge.py
+index b8654436a..da42e6f61 100644
+--- a/wx/lib/agw/pygauge.py
++++ b/wx/lib/agw/pygauge.py
+@@ -367,12 +367,12 @@ def OnPaint(self, event):
+ drawString = self._drawIndicatorText_formatString.format(drawValue)
+ rect = self.GetClientRect()
+ (textWidth, textHeight, descent, extraLeading) = dc.GetFullTextExtent(drawString)
+- textYPos = (rect.height-textHeight)/2
++ textYPos = (rect.height-textHeight)//2
+
+ if textHeight > rect.height:
+ textYPos = 0-descent+extraLeading
+
+- textXPos = (rect.width-textWidth)/2
++ textXPos = (rect.width-textWidth)//2
+
+ if textWidth>rect.width:
+ textXPos = 0
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index b226aa4e83..5415f47f55 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -276,8 +276,8 @@ and many other languages.")
(snippet
'(begin
;; Remove bundled wxwidgets
- (delete-file-recursively "ext/wxWidgets")
- #t))))
+ (delete-file-recursively "ext/wxWidgets")))
+ (patches (search-patches "python-wxwidgets-type-errors.patch"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -300,8 +300,7 @@ and many other languages.")
(chmod "demo/version.py" #o644)
;; Build only the python bindings, not wxwidgets also.
(substitute* "setup.py"
- (("'build']") "'build_py', '--use_syswx']"))
- #t)))))
+ (("'build']") "'build_py', '--use_syswx']")))))))
(inputs
(list gtk+ wxwidgets))
(native-inputs