Package: guix-patches;
Reported by: Nicolas Graves <ngraves <at> ngraves.fr>
Date: Sun, 6 Apr 2025 12:34:02 UTC
Severity: normal
Tags: patch
Done: Andreas Enge <andreas <at> enge.fr>
Bug is archived. No further changes may be made.
Message #68 received at 77575 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Graves <ngraves <at> ngraves.fr> To: 77575 <at> debbugs.gnu.org Cc: Nicolas Graves <ngraves <at> ngraves.fr> Subject: [PATCH 21/21] gnu: python-wxpython: Update to 4.2.2. Date: Sun, 6 Apr 2025 14:37:23 +0200
* 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. --- gnu/local.mk | 1 - .../python-wxwidgets-type-errors.patch | 42 --------------- gnu/packages/wxwidgets.scm | 51 +++++++++++++++---- 3 files changed, 40 insertions(+), 54 deletions(-) delete mode 100644 gnu/packages/patches/python-wxwidgets-type-errors.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6c2466114d..01dd31c328 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -2023,7 +2023,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 <at> 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 <at> gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer <at> gmail.com> ;;; Copyright © 2025 Ekaitz Zarraga <ekaitz <at> elenq.tech> +;;; Copyright © 2025 Nicolas Graves <ngraves <at> ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +38,7 @@ (define-module (gnu packages wxwidgets) #: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 @@ (define-module (gnu packages wxwidgets) #: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 @@ (define-public prusa-wxwidgets (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 @@ (define-public python-wxpython (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/") -- 2.49.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.