diff options
author | Nicolas Graves via Guix-patches via <guix-patches@gnu.org> | 2025-04-06 14:37:23 +0200 |
---|---|---|
committer | Andreas Enge <andreas@enge.fr> | 2025-04-16 11:46:32 +0200 |
commit | 08c613ecb7fa1f1cfb741f75c7f9fad743dfb4ba (patch) | |
tree | 273190642ff3fc940b6013f38ff02642d8e3bcd1 | |
parent | 239c9d829d6360d8c58ce84a66054cd09617d67e (diff) | |
download | guix-08c613ecb7fa1f1cfb741f75c7f9fad743dfb4ba.tar.gz guix-08c613ecb7fa1f1cfb741f75c7f9fad743dfb4ba.zip |
gnu: python-wxpython: Update to 4.2.2.
* gnu/packages/wxwidgets.scm (python-wxpython): Update to 4.2.2.
[source]: Remove uneeded patch.
[arguments]{phases}: Add phase 'patch-avoid-circular-import. Add phase
'add-missing.so.
{modules}: Add necessary modules for new phases.
[native-inputs]: Add python-setuptools, python-wheel.
* gnu/packages/patches/python-wxwidgets-type-errors.patch: Remove
patch.
* gnu/local.mk: Unregister patch.
Signed-off-by: Steve George <steve@futurile.net>
-rw-r--r-- | gnu/local.mk | 1 | ||||
-rw-r--r-- | gnu/packages/patches/python-wxwidgets-type-errors.patch | 42 | ||||
-rw-r--r-- | gnu/packages/wxwidgets.scm | 51 |
3 files changed, 40 insertions, 54 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index aa9f279a3c..b23c53521c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2024,7 +2024,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-sgmllib3k-assertions.patch \ %D%/packages/patches/python-sphobjinv-defer-ssl-import.patch \ %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch \ - %D%/packages/patches/python-wxwidgets-type-errors.patch \ %D%/packages/patches/qcodeeditor-qt6.patch \ %D%/packages/patches/qtdeclarative-5-disable-qmlcache.patch \ %D%/packages/patches/qtdeclarative-disable-qmlcache.patch \ diff --git a/gnu/packages/patches/python-wxwidgets-type-errors.patch b/gnu/packages/patches/python-wxwidgets-type-errors.patch deleted file mode 100644 index 53e48c0886..0000000000 --- a/gnu/packages/patches/python-wxwidgets-type-errors.patch +++ /dev/null @@ -1,42 +0,0 @@ -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 7bbdafeb89..2f806482f9 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2023 Malte Frank Gerdes <malte.f.gerdes@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2025 Ekaitz Zarraga <ekaitz@elenq.tech> +;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +38,7 @@ #:use-module ((guix licenses) #:prefix l:) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix utils) #:use-module (gnu packages) @@ -57,7 +59,9 @@ #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-build) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages qt) #:use-module (gnu packages sdl) #:use-module (gnu packages video) #:use-module (gnu packages web) @@ -318,26 +322,38 @@ and many other languages.") (define-public python-wxpython (package (name "python-wxpython") - (version "4.2.0") + (version "4.2.2") (source (origin (method url-fetch) (uri (pypi-uri "wxPython" version)) (sha256 - (base32 - "1iw6xp76b3fmdqwbqmsx9i1razzpfki5z1hq6l8mszlxa32fng36")) + (base32 "1fp2717a96hd5pdai6hlzc4pngdazxas55apjv2w5zb71xjv1g2x")) (modules '((guix build utils))) - (snippet - '(begin - ;; Remove bundled wxwidgets - (delete-file-recursively "ext/wxWidgets"))) - (patches (search-patches "python-wxwidgets-type-errors.patch")))) - (build-system python-build-system) + (snippet #~(begin + ;; Remove bundled wxWidgets + (delete-file-recursively "ext/wxWidgets"))))) + (build-system pyproject-build-system) (outputs '("out" "debug")) (arguments (list + #:modules '((guix build pyproject-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match) + (srfi srfi-26)) #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'patch-avoid-circular-import + (lambda _ + (substitute* "wx/__init__.py" + (("^import wx\\.__version__.*$") "\ +try: + import wx.__version__ +except ImportError: + pass\n") + (("^__version__ = .*") + (format #f "__version__ = ~s~%" #$version))))) (add-before 'build 'configure (lambda* (#:key inputs #:allow-other-keys) ;; Configure the build options provided to the 'build.py' build @@ -357,11 +373,24 @@ and many other languages.") (string-append "#" all))) ;; The build script tries to write to demo/version.py. So, we set ;; correct write permissions. - (chmod "demo/version.py" #o644)))))) + (chmod "demo/version.py" #o644))) + (add-before 'check 'add-missing-.so + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((site (site-packages inputs outputs))) + (with-directory-excursion (string-append site "/wx") + (for-each + (match-lambda + ("siplib" + (rename-file "siplib" "siplib.so")) + ((? (cut string-prefix? "_" <>) file) + (unless (string-prefix? "__" file) + (rename-file file (string-append file ".so")))) + (_ #t)) + (scandir "."))))))))) (inputs (list gtk+ wxwidgets)) (native-inputs - (list pkg-config python-waf)) + (list pkg-config python-setuptools python-waf python-wheel)) (propagated-inputs (list python-attrdict3 python-numpy python-pillow python-six)) (home-page "https://wxpython.org/") |