From faac2082a69d0e9a1c2c21b38489cc65ee509416 Mon Sep 17 00:00:00 2001 From: Sharlatan Hellseher Date: Thu, 23 Oct 2025 09:53:54 +0100 Subject: [PATCH] gnu: orange: Update to 3.39.0-0.44e6628. * gnu/packages/orange.scm (orange): Update to 44e66283aff4132614ef64a877f9ceef963588a7 commit, providing comparability with GCC 14 and more. Use G-Expressions. [source]: Switch to git-fetch. [arguments] : Disable for now. [phases]{wrap-executable}: Place after 'wrap; adjust to include qtbase and qtwayland. [inputs]: Remove python-pyqt, python-pyqtwebengine, python-qtconsole, qtbase-5, and qtsvg-5; add python-pyqt-6, python-pyqtwebengine-6, python-packaging, python-xgboost, qtbase, qtsvg, and qtwayand. [native-inputs]: Add python-recommonmark, python-setuptools, and python-trubar. Fixes: guix/guix#2938 Change-Id: I1aeda03087367df1611209738630333eb8a63f67 --- gnu/packages/orange.scm | 91 +++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 39 deletions(-) diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm index 5528579187d7f258a1e6ccccf4617e06e0a627cb..3b741e7dbba720629dfa188eadb534f08c4a69fd 100644 --- a/gnu/packages/orange.scm +++ b/gnu/packages/orange.scm @@ -22,6 +22,7 @@ #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (gnu packages) @@ -155,47 +156,56 @@ GUI based workflow. It is primarily used in the Orange framework.") (define-public orange (package (name "orange") - (version "3.32.0") + ;; XXX: The latest commit provides comparability with GCC 14, revert to + ;; git tag in the next refresh cycle. + (properties '((commit . "44e66283aff4132614ef64a877f9ceef963588a7") + (revision . "0"))) + (version (git-version "3.39.0" + (assoc-ref properties 'revision) + (assoc-ref properties 'commit))) (source (origin - (method url-fetch) - (uri (pypi-uri "Orange3" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/biolab/orange3") + (commit (assoc-ref properties 'commit)))) + (file-name (git-file-name name version)) (sha256 - (base32 "0pxjwisc209cdgpqlqazc2vlmr0iqz8ry862w7jx95zic54d9p5l")))) - (build-system python-build-system) + (base32 "0d2ws64y8chj77yw689pr98wndpiapbh0msxyjah5ki8lygflizs")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'preparations - (lambda _ - ;; Delete test that opens an outgoing connection. - (delete-file "Orange/tests/test_url_reader.py") - ;; This is a binary data file and it breaks runpath validation. - (delete-file "Orange/tests/datasets/binary-blob.tab") - ;; Skip the test which uses that binary file. - (substitute* "Orange/tests/test_txt_reader.py" - (("test_read_nonutf8_encoding") "_test_read_nonutf8_encoding")) - ;; We use a correct version of PyQtWebEngine, but the build scripts - ;; consider it incorrect anyways. Remove the constraint entirely to - ;; work around this bug. - (substitute* "requirements-pyqt.txt" (("PyQtWebEngine>=5.12") "")))) - (add-before 'check 'pre-check - ;; Tests need a writable home. - (lambda _ - (setenv "HOME" "/tmp") - (setenv "QT_QPA_PLATFORM" "offscreen"))) - (add-after 'install 'wrap-executable - ;; Ensure that icons are found at runtime. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (wrap-program (string-append out "/bin/orange-canvas") - `("QT_PLUGIN_PATH" prefix - ,(list (string-append (assoc-ref inputs "qtsvg") - "/lib/qt5/plugins/")))))))))) + (list + ;; TODO: Figure out how to enable/fix tests: ImportError: cannot import + ;; name '_variable' from partially initialized module 'Orange.data' + #:tests? #f + #:test-backend #~'unittest + #:test-flags #~(list "-v" "Orange.tests" "Orange.widgets.tests") + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'pre-check + ;; Tests need a writable home. + (lambda _ + (setenv "HOME" "/tmp") + (setenv "QT_QPA_PLATFORM" "offscreen"))) + (add-after 'wrap 'wrap-executable + ;; Ensure that icons are found at runtime. + (lambda _ + (wrap-program (string-append #$output "/bin/orange-canvas") + `("QT_PLUGIN_PATH" prefix + ,(list (string-append + (string-join + (list #$(this-package-input "qtbase") + #$(this-package-input "qtsvg") + #$(this-package-input "qtwayland")) + "/lib/qt6/plugins:") + "/lib/qt6/plugins"))))))))) (native-inputs - (list python-cython)) + (list python-cython + python-recommonmark + python-setuptools + python-trubar)) (inputs - (list bash-minimal + (list bash-minimal ;for wrap python-anyqt python-baycomp python-bottleneck @@ -212,21 +222,24 @@ GUI based workflow. It is primarily used in the Orange framework.") python-opentsne python-orange-canvas-core python-orange-widget-base + python-packaging python-pandas python-pygments - python-pyqt + python-pyqt-6 python-pyqtgraph - python-pyqtwebengine + python-pyqtwebengine-6 python-pyyaml python-qtconsole python-requests python-scikit-learn python-scipy python-serverfiles + python-xgboost python-xlrd python-xlsxwriter - qtbase-5 - qtsvg-5 + qtbase + qtsvg + qtwayland xdg-utils)) (home-page "https://orangedatamining.com/") (synopsis "Component-based data mining framework")