summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/audio.scm37
-rw-r--r--gnu/packages/bioinformatics.scm45
-rw-r--r--gnu/packages/cran.scm4
-rw-r--r--gnu/packages/documentation.scm15
-rw-r--r--gnu/packages/electronics.scm29
-rw-r--r--gnu/packages/emulators.scm10
-rw-r--r--gnu/packages/gambas.scm4
-rw-r--r--gnu/packages/gnunet.scm4
-rw-r--r--gnu/packages/image-processing.scm23
-rw-r--r--gnu/packages/jupyter.scm13
-rw-r--r--gnu/packages/kde-education.scm2
-rw-r--r--gnu/packages/kde-frameworks.scm9
-rw-r--r--gnu/packages/kde-games.scm2
-rw-r--r--gnu/packages/kde-graphics.scm9
-rw-r--r--gnu/packages/kde-internet.scm2
-rw-r--r--gnu/packages/kde-multimedia.scm1
-rw-r--r--gnu/packages/kde-pim.scm5
-rw-r--r--gnu/packages/kde-systemtools.scm3
-rw-r--r--gnu/packages/kodi.scm44
-rw-r--r--gnu/packages/lisp-xyz.scm71
-rw-r--r--gnu/packages/orange.scm140
-rw-r--r--gnu/packages/prolog.scm4
-rw-r--r--gnu/packages/python-check.scm20
-rw-r--r--gnu/packages/python-science.scm29
-rw-r--r--gnu/packages/python-web.scm120
-rw-r--r--gnu/packages/python-xyz.scm733
-rw-r--r--gnu/packages/simulation.scm3
-rw-r--r--gnu/packages/statistics.scm3
-rw-r--r--gnu/packages/time.scm19
-rw-r--r--gnu/packages/video.scm30
-rw-r--r--gnu/packages/vpn.scm2
31 files changed, 891 insertions, 544 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index b03d2d4fe5..634ca92990 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -57,6 +57,7 @@
;;; Copyright © 2025 Kjartan Oli Agustsson <kjartanoli@outlook.com>
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Antoine Côté <antoine.cote@posteo.net>
+;;; Copyright © 2025 Isidor Zeuner <guix@quidecco.pl>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -5623,6 +5624,42 @@ encoder used for an MPEG Layer III (MP3) file, as well as scan any MPEG audio
file (any layer) and print a lot of useful information.")
(license license:lgpl2.1+)))
+(define-public mp3cat
+ (package
+ (name "mp3cat")
+ (version "0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tomclegg/mp3cat")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0n6hjg2wgd06m561zc3ib5w2m3pwpf74njv2b2w4sqqh5md2ymfr"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;upstream defines no tests
+ #:make-flags
+ #~(list (string-append "PREFIX="
+ #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (add-before 'build 'patch-makefile
+ (lambda _args
+ (substitute* "Makefile"
+ (("cc")
+ #$(cc-for-target))))))))
+ (home-page "http://tomclegg.net/mp3cat")
+ (synopsis "MP3 stream copier and concatenator")
+ (description
+ "Copies a stream, skipping everything except MP3 frames with valid
+headers. This can be used to copy and concatenate streams, even if
+they contain extra garbage.")
+ (license license:gpl2+)))
+
(define-public shntool
(package
(name "shntool")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index eac62ffcc1..41a0ead9d0 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -20178,26 +20178,31 @@ set.")
(define-public instrain
(package
(name "instrain")
- (version "1.9.0")
+ ;; Git repository does not tag releases, use the latest commit from master
+ ;; branch.
+ (properties '((commit . "6180be7b49a61b7e1ffe9f1489da5c6aa2ff9ac3")
+ (revision . "0")))
+ (version (git-version "1.10.0"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/MrOlm/instrain")
- ;; There are no tags.
- (commit "168f3f777b45139a9f6099f68974105b45e2d8ba")))
+ (url "https://github.com/MrOlm/instrain")
+ (commit (assoc-ref properties 'commit))))
(file-name (git-file-name name version))
(sha256
- (base32
- "1wc69ggyiacm1slb678239lqmf1g5dlb4alwsbp14gi6393gj9fg"))))
+ (base32 "1njsxjf3248121yw3q1ig6asf6b3wa5fgjfyc6dkgk6nd4ih8wni"))))
(build-system pyproject-build-system)
(arguments
(list
;; Tests assume that test files exist (they don't) and are located in
- ;; the developer's home directory.
+ ;; the developer's home directory, see:
+ ;; <https://github.com/MrOlm/inStrain/issues/218>.
#:tests? #false
#:phases
- '(modify-phases %standard-phases
+ #~(modify-phases %standard-phases
(add-after 'unpack 'patch-relative-imports
(lambda _
(substitute* (find-files "test/tests" "test_.*\\.py")
@@ -20208,7 +20213,11 @@ set.")
(("from s3_utils")
"from .s3_utils")
(("from job_utils")
- "from .job_utils")))))))
+ "from .job_utils"))))
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "setup.py"
+ ((".*pytest.*") "")))))))
(propagated-inputs
(list python-biopython-1.73
python-h5py
@@ -20222,10 +20231,7 @@ set.")
python-seaborn
python-tqdm))
(native-inputs
- (list python-boto3
- python-pytest
- python-setuptools
- python-wheel))
+ (list python-setuptools))
(home-page "https://github.com/MrOlm/inStrain")
(synopsis "Calculation of strain-level metrics")
(description
@@ -23528,15 +23534,16 @@ The output is in SAM format.")
(define-public libsbml
(package
(name "libsbml")
- (version "5.18.0")
+ (version "5.20.5")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/sbml/libsbml/"
- version "/stable/libSBML-"
- version "-core-src.tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sbmlteam/libsbml")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0slkagrk3nfi2qsksv6b1brj6zhx4bj4bkib2sdycvrcd10ql2lh"))))
+ "1bzsgwblh5l15xxy7kpdwiya5kwm26sj6daqr9i93h04manpqmfw"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index 9fae9575e8..397ffd1c27 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -11060,13 +11060,13 @@ matrix) for the double-truncated multinormal case.")
(define-public r-rvest
(package
(name "r-rvest")
- (version "1.0.4")
+ (version "1.0.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "rvest" version))
(sha256
- (base32 "19lw0jk8d8x88z247hz761gwbx9f5n3yqnv63mn7pkwl55mpqw3x"))))
+ (base32 "005wadzdhxf6hgr8vl4nl0nfi2crj6467mhwbccqfy26njh38z0y"))))
(build-system r-build-system)
(arguments
(list
diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm
index b18e62e3db..06dbd4973c 100644
--- a/gnu/packages/documentation.scm
+++ b/gnu/packages/documentation.scm
@@ -410,7 +410,7 @@ the Net to search for documents which are not on the local system.")
(define-public zeal
(package
(name "zeal")
- (version "0.7.1")
+ (version "0.7.2")
(source
(origin
(method git-fetch)
@@ -419,10 +419,11 @@ the Net to search for documents which are not on the local system.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1yz9zz18rh1d67w40ib4pna70vqkwa9i9nyj423rjysv5rdj2pzp"))))
+ (base32 "1slq3asssszim9y4lvqx08svilmyisk3cl35mmb676fsx7pningn"))))
(build-system qt-build-system)
(arguments
(list
+ #:qtbase qtbase
#:tests? #f)) ;no tests
(native-inputs
(list extra-cmake-modules pkg-config))
@@ -430,12 +431,10 @@ the Net to search for documents which are not on the local system.")
(list bash-minimal
libarchive
sqlite
- qtbase-5
- qtdeclarative-5
- qtwayland-5
- qtwebchannel-5
- qtwebengine-5
- qtquickcontrols-5
+ qtdeclarative
+ qtwayland
+ qtwebchannel
+ qtwebengine
qtx11extras
xcb-util-keysyms))
(home-page "https://zealdocs.org/")
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm
index 56cae54c14..a2c9e3cf09 100644
--- a/gnu/packages/electronics.scm
+++ b/gnu/packages/electronics.scm
@@ -1518,6 +1518,35 @@ verification.")
#~(modify-phases #$phases
(delete 'fix-scripts)))))))
+(define-public python-pyucis
+ (package
+ (name "python-pyucis")
+ (version "0.1.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fvutils/pyucis/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19bxmhqkdmhbibkbzcjqvzvcni1kzg28nqz9vh6zj73hl26lf2ij"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-setuptools))
+ (propagated-inputs
+ (list python-jsonschema-objects
+ python-lxml
+ python-pyyaml))
+ (home-page "https://fvutils.github.io/pyucis//")
+ (synopsis "Python interface to UCIS data")
+ (description
+ "The code{PyUCIS} library provides two APIs for creating and accessing
+coverage data via the @acronym{UCIS, Unified Coverage Interoperability
+Standard} data mode.")
+ (license license:asl2.0)))
+
(define-public python-cocotb
(package
(name "python-cocotb")
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index 362e38a231..e89c7261d9 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -4653,14 +4653,14 @@ device contains a @code{exec} port to interface with the host system.")
(sha256
(base32 "1xahdr6bh3dw5swrc2r8kqa8ljhqlb7k2kxv5mrw5rhcmcnzcyig"))))
(build-system pyproject-build-system)
- (arguments
- (list #:tests? #f)) ;no tests in PyPI archive
+ ;; Tests either require kstool, or Python 2, or are 10 years old and fail.
+ (arguments (list #:tests? #f)) ; no tests
(native-inputs
(list cmake-minimal
- python-setuptools
- python-wheel))
+ python-setuptools))
(home-page "https://www.keystone-engine.org")
- (synopsis "Lightweight multi-platform, multi-architecture assembler framework")
+ (synopsis
+ "Lightweight multi-platform, multi-architecture assembler framework")
(description
"Keystone is a lightweight multi-platform, multi-architecture
assembler framework. It supports a wide-range of different architectures
diff --git a/gnu/packages/gambas.scm b/gnu/packages/gambas.scm
index 76a8b0cc9e..f7b3862bb8 100644
--- a/gnu/packages/gambas.scm
+++ b/gnu/packages/gambas.scm
@@ -55,7 +55,7 @@
(define-public gambas
(package
(name "gambas")
- (version "3.20.2")
+ (version "3.21.0")
(source
(origin
(method git-fetch)
@@ -64,7 +64,7 @@
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "060f8w19jf78mappqgy11873ss3h97gi47ga3c1ws1bazix9x7rk"))))
+ (base32 "0lkm4fbxqmkqpk2f2z660m77xshhmvj4pnlv0z43zrarsij8l6gf"))))
(build-system gnu-build-system)
(arguments
(list
diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm
index a45546b62c..b483f620c0 100644
--- a/gnu/packages/gnunet.scm
+++ b/gnu/packages/gnunet.scm
@@ -193,7 +193,7 @@ authentication and support for SSL3 and TLS.")
(define-public gnunet
(package
(name "gnunet")
- (version "0.25.1")
+ (version "0.25.2")
(source
(origin
(method url-fetch)
@@ -201,7 +201,7 @@ authentication and support for SSL3 and TLS.")
".tar.gz"))
(sha256
(base32
- "0p4gcv67rh9832vgi5k31pgpq6hmv6198dfmbyfizyaprlb6qcr1"))))
+ "1rn24rm6z5p0vnk5lwq0jihnbh956n24yd5nmmgv2firbp1nzdza"))))
(build-system meson-build-system)
(inputs
(list bluez
diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm
index 6f57c3a557..8899272d33 100644
--- a/gnu/packages/image-processing.scm
+++ b/gnu/packages/image-processing.scm
@@ -1025,6 +1025,7 @@ recalculates.")
(build-system qt-build-system)
(arguments
(list
+ #:qtbase qtbase
#:build-type "Release" ; 542 MiB in release mode
#:tests? #f ; Downloads test data
#:configure-flags
@@ -1173,6 +1174,7 @@ recalculates.")
libtiff
libxcursor
libxml2
+ libxslt
libxt
lz4
lzip
@@ -1190,15 +1192,13 @@ recalculates.")
python-mpi4py
python-numpy
python-wrapper
- qtbase-5
- qtdeclarative-5
- qtmultimedia-5
- qtsvg-5
- qttools-5
- qtwebchannel-5
- qtwebengine-5
- qtx11extras
- qtxmlpatterns-5
+ qt5compat
+ qtdeclarative
+ qtmultimedia
+ qtsvg
+ qttools
+ qtwebchannel
+ qtwebengine
sdl2
sqlite
tbb
@@ -2061,14 +2061,15 @@ processing pipelines.")
(native-inputs
(list python-pytest
python-pytest-qt
- xorg-server-for-tests
- python-wheel))
+ python-setuptools
+ xorg-server-for-tests))
(propagated-inputs
(list python-imgviz
python-matplotlib
python-natsort
python-numpy
python-pillow
+ python-pyqt
python-pyyaml
python-qtpy
python-termcolor))
diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm
index ec0f7872d7..e484e1b7f2 100644
--- a/gnu/packages/jupyter.scm
+++ b/gnu/packages/jupyter.scm
@@ -1399,13 +1399,13 @@ analyzing Jupyter Notebooks.")
(define-public python-qtconsole
(package
(name "python-qtconsole")
- (version "5.6.1")
+ (version "5.7.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "qtconsole" version))
(sha256
- (base32 "1r8bznf8mlajh8rcrhikp694naq653nx4zw58f0yzlvmdiz1rbaw"))))
+ (base32 "0w9i0s70dm39cxgn3vh4wcaxdywzp9j0ac7f49q4qmggx4f3fcqd"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -1423,22 +1423,23 @@ analyzing Jupyter Notebooks.")
#~(modify-phases %standard-phases
(add-before 'check 'pre-check
(lambda _
- (setenv "PYTEST_QT_API" "pyqt5")
- (setenv "QT_LIB" "pyqt5")
+ (setenv "PYTEST_QT_API" "pyqt6")
+ (setenv "QT_LIB" "pyqt6")
(setenv "QT_QPA_PLATFORM" "offscreen")
(system "Xvfb :1 -screen 0 640x480x24 &")
(setenv "DISPLAY" ":1")
(setenv "HOME" "/tmp"))))))
(native-inputs
(list python-flaky
- python-pyqt
+ python-pyqt-6
python-pytest
+ python-pytest-asyncio
python-pytest-qt
python-setuptools
- python-wheel
xorg-server-for-tests))
(propagated-inputs
(list python-ipykernel
+ python-ipython-pygments-lexers
python-jupyter-client
python-jupyter-core
python-packaging
diff --git a/gnu/packages/kde-education.scm b/gnu/packages/kde-education.scm
index 5415d2c400..0e4a0a10db 100644
--- a/gnu/packages/kde-education.scm
+++ b/gnu/packages/kde-education.scm
@@ -187,6 +187,7 @@ Currently available boards include:
(build-system qt-build-system)
(arguments
(list
+ #:qtbase qtbase
#:tests? #f
#:phases
#~(modify-phases %standard-phases
@@ -211,7 +212,6 @@ Currently available boards include:
kxmlgui
libplasma
ncurses
- qtbase
qtdeclarative
qtsvg
qtwayland
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 3367834775..453f940da6 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -4201,7 +4201,8 @@ notifications which can be embedded in your application.")
"1n2hwgpkq32xprg4dgirb22rijplvp4rf6brllgz98y09xm3pp6d"))))
(build-system qt-build-system)
(arguments
- (list #:phases
+ (list #:qtbase qtbase
+ #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-partloader-test
(lambda _
@@ -4222,8 +4223,7 @@ notifications which can be embedded in your application.")
kitemviews
ki18n
kjobwidgets
- kwidgetsaddons
- qtbase))
+ kwidgetsaddons))
(home-page "https://community.kde.org/Frameworks")
(synopsis "Plugin framework for user interface components")
(description "This library implements the framework for KDE parts, which are
@@ -4244,6 +4244,9 @@ widgets with a user-interface defined in terms of actions.")
(sha256
(base32
"0czrlqh5cxnj1mlbz839c7hifhnpzl476d92lv4hxji50wnjlfqr"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments kparts)
+ ((#:qtbase _ #f) qtbase-5)))
(propagated-inputs
(list kio-5 ktextwidgets-5 kxmlgui-5))
(native-inputs
diff --git a/gnu/packages/kde-games.scm b/gnu/packages/kde-games.scm
index 4ca8a17d62..26cde3a2eb 100644
--- a/gnu/packages/kde-games.scm
+++ b/gnu/packages/kde-games.scm
@@ -416,7 +416,7 @@ This package is part of the KDE games module.")
ki18n
libkmahjongg
python
- python-pyqt
+ python-pyqt-6
python-twisted
python-qtpy
python-zope-interface
diff --git a/gnu/packages/kde-graphics.scm b/gnu/packages/kde-graphics.scm
index bad92269e6..bc54a521b7 100644
--- a/gnu/packages/kde-graphics.scm
+++ b/gnu/packages/kde-graphics.scm
@@ -472,10 +472,9 @@ illustrate project schedules.")
(sha256
(base32
"0s9b3q7wvrbz52d500mcaflkrfjwhbzh5bsf5gxzgxjdzdiywaw7"))))
- (build-system cmake-build-system)
+ (build-system qt-build-system)
(inputs
- (list qtbase
- boost
+ (list boost
graphviz
ki18n
kiconthemes
@@ -485,7 +484,9 @@ illustrate project schedules.")
qtwayland))
(native-inputs
(list pkg-config extra-cmake-modules kdoctools))
- (arguments (list #:tests? #f))
+ (arguments
+ (list #:qtbase qtbase
+ #:tests? #f))
(home-page "https://apps.kde.org/kgraphviewer/")
(synopsis "Graphviz dot graph viewer for KDE")
(description "KGraphViewer is a Graphviz DOT graph file viewer, aimed to
diff --git a/gnu/packages/kde-internet.scm b/gnu/packages/kde-internet.scm
index 17c012041a..79cb263661 100644
--- a/gnu/packages/kde-internet.scm
+++ b/gnu/packages/kde-internet.scm
@@ -187,6 +187,8 @@ different notification systems.")
(base32
"0lqirjirjxin4b2bkf9raalygvjp35qs1r51ydmgf97gjk6nhzzv"))))
(build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase))
(native-inputs
(list extra-cmake-modules pkg-config qttools))
(inputs
diff --git a/gnu/packages/kde-multimedia.scm b/gnu/packages/kde-multimedia.scm
index 2e48ac6db3..d22a47f7fe 100644
--- a/gnu/packages/kde-multimedia.scm
+++ b/gnu/packages/kde-multimedia.scm
@@ -548,7 +548,6 @@ This package is part of the KDE multimedia module.")
kwindowsystem
kxmlgui
breeze-icons ; default icon set
- qtbase
qtmultimedia
qtsvg
qtwayland
diff --git a/gnu/packages/kde-pim.scm b/gnu/packages/kde-pim.scm
index 497d1f0e10..b351a02b0a 100644
--- a/gnu/packages/kde-pim.scm
+++ b/gnu/packages/kde-pim.scm
@@ -2414,7 +2414,7 @@ transport data and for performing public transport journey queries.")
"/src/libgravatar-" version ".tar.xz"))
(sha256
(base32 "1rn1dc994xff9bha59155ardib0mshj18h9jj1dhf8qhs0nv1nrb"))))
- (build-system qt-build-system)
+ (build-system cmake-build-system)
(native-inputs (list extra-cmake-modules))
(inputs (list kconfig
ki18n
@@ -2427,8 +2427,7 @@ transport data and for performing public transport journey queries.")
kwidgetsaddons
qtbase))
(arguments
- (list #:qtbase qtbase
- #:tests? #f)) ;; 2/7 tests fail (due to network issues?)
+ (list #:tests? #f)) ;; 2/7 tests fail (due to network issues?)
(home-page "https://invent.kde.org/pim/libgravatar")
(synopsis "Online avatar lookup library")
(description "This library retrieves avatar images based on a
diff --git a/gnu/packages/kde-systemtools.scm b/gnu/packages/kde-systemtools.scm
index 5c306190e2..b007ab1f13 100644
--- a/gnu/packages/kde-systemtools.scm
+++ b/gnu/packages/kde-systemtools.scm
@@ -227,6 +227,8 @@ unmount drives and view them in a file manager.")
(sha256
(base32 "1nmhg3v73p8yapmvp3chac3vi6jpjwmc0jj28ksbmdrp952yaygb"))))
(build-system qt-build-system)
+ (arguments
+ (list #:qtbase qtbase))
(native-inputs
(list extra-cmake-modules kdoctools perl))
(inputs
@@ -244,7 +246,6 @@ unmount drives and view them in a file manager.")
kwindowsystem
libxml2
breeze-icons ;; default icon set
- qtbase
xapian
qtwayland
qtwebengine))
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 73417fabe2..dec1a6f998 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -30,6 +30,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
@@ -525,7 +526,7 @@ plug-in system.")
(revision "1")) ; `$HOME/.kodirc'.
(package
(name "kodi-cli")
- (version (string-append "1.1-" revision "." (string-take commit 7)))
+ (version (git-version "1.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference (url "https://github.com/nawar/kodi-cli")
@@ -533,29 +534,30 @@ plug-in system.")
(sha256
(base32
"1xjhasc5gngfxpr1dlzy6q24w0wpdfjx12p43fanjppxw4i49n5p"))
- (file-name (string-append name "-" version "-checkout"))))
+ (file-name (git-file-name name version))))
(build-system trivial-build-system)
(inputs
- (list bash curl mps-youtube))
+ (list bash-minimal curl python-yewtube))
(arguments
- `(#:modules ((guix build utils))
- #:builder
- (begin
- (use-modules (guix build utils))
- (copy-recursively (assoc-ref %build-inputs "source") ".")
- (substitute* "kodi-cli"
- (("/bin/bash")
- (search-input-file %build-inputs "/bin/bash"))
- (("output=\\$\\((curl)" all curl)
- (string-append "output=$("
- (assoc-ref %build-inputs "curl")
- "/bin/" curl))
- (("play_youtube `(mpsyt)" all mpsyt)
- (string-append "play_youtube `"
- (assoc-ref %build-inputs "mps-youtube")
- "/bin/" mpsyt)))
- (install-file "kodi-cli" (string-append %output "/bin"))
- #t)))
+ (list
+ #:modules '((guix build utils))
+ #:builder
+ #~(begin
+ (use-modules (guix build utils))
+ (copy-recursively (assoc-ref %build-inputs "source") ".")
+ (substitute* "kodi-cli"
+ (("/bin/bash")
+ (search-input-file %build-inputs "/bin/bash"))
+ (("output=\\$\\((curl)" all curl)
+ (string-append "output=$("
+ #$(this-package-input "curl")
+ "/bin/" curl))
+ ;; Executable is just called yt with yewtube.
+ (("play_youtube `mpsyt")
+ (string-append "play_youtube `"
+ #$(this-package-input "python-yewtube")
+ "/bin/yt")))
+ (install-file "kodi-cli" (string-append %output "/bin")))))
(home-page "https://github.com/nawar/kodi-cli")
(synopsis "Control Kodi from the command line")
(description "@code{kodi-cli} is a tool for sending commands to a Kodi
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 8a8b36e455..54f7ba9f02 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -330,8 +330,8 @@ compatible, and adds new functionality.")
(sbcl-package->ecl-package sbcl-3d-math))
(define-public sbcl-3d-matrices
- (let ((commit "b4f5a58299f8437fad2d77f0879c374e3430f4b5")
- (revision "2"))
+ (let ((commit "bc1ffa08dcf4732523e09adcf9deba4ddeb559ff")
+ (revision "3"))
(package
(name "sbcl-3d-matrices")
(version (git-version "1.0.0" revision commit))
@@ -339,17 +339,17 @@ compatible, and adds new functionality.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Shinmera/3d-matrices")
+ (url "https://codeberg.org/shinmera/3d-matrices")
(commit commit)))
(file-name (git-file-name "cl-3d-matrices" version))
(sha256
- (base32 "1s8b4zlmqwyplghs73riz1khf0c5sk64w6b12jd599091d5nr6sr"))))
+ (base32 "0jzckgb5lsmh1gn1f4mczjfc5ckkw01a73wrl1shyb9sil93a751"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-parachute))
(inputs
(list sbcl-3d-vectors sbcl-documentation-utils))
- (home-page "https://shinmera.github.io/3d-matrices/")
+ (home-page "https://codeberg.org/shinmera/3d-matrices")
(synopsis "Utility library implementing 2x2, 3x3, 4x4 and NxM matrices")
(description
"@code{3D-MATRICES} is a library implementing common matrix operations,
@@ -492,8 +492,8 @@ alternative 4x4 matrix representation.")
(sbcl-package->clasp-package sbcl-3d-transforms))
(define-public sbcl-3d-vectors
- (let ((commit "257969402864ac3859d77b981abf0aa5373c4e78")
- (revision "2"))
+ (let ((commit "fc751c65b2285e971c348539bfbc3cbb58b253b0")
+ (revision "3"))
(package
(name "sbcl-3d-vectors")
(version (git-version "3.1.0" revision commit))
@@ -501,11 +501,11 @@ alternative 4x4 matrix representation.")
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Shinmera/3d-vectors")
+ (url "https://codeberg.org/shinmera/3d-vectors")
(commit commit)))
(file-name (git-file-name "cl-3d-vectors" version))
(sha256
- (base32 "0vmf7nycc49ydcy0dfs25cgs655kwjc6jcjvpwxw61jq4gl2fh7x"))))
+ (base32 "0im0c4yv3bmlipbpfqfcbkdpqknr4468xjvdmrr01pchc8r4m11j"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-parachute))
@@ -4296,20 +4296,20 @@ operating on them.")
(sbcl-package->ecl-package sbcl-cl-algebraic-data-type))
(define-public sbcl-cl-all
- (let ((commit "4ce1ea9d9f33c0dd6212044e7952a0c854757ace")
- (revision "0"))
+ (let ((commit "8db710a4a92a25ca7c8f09fe1ad91a48ad6bd0c9")
+ (revision "1"))
(package
(name "sbcl-cl-all")
- (version (git-version "1.0.0" revision commit))
+ (version (git-version "2.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/Shinmera/cl-all")
+ (url "https://codeberg.org/shinmera/cl-all")
(commit commit)))
(file-name (git-file-name "cl-all" version))
(sha256
- (base32 "0n4sjarj373zpxn78m32rmhxnsnr8qahdslrd9vrkkwjpzar2bwp"))))
+ (base32 "08jsbnkapijn0v4n5h9g6s87i279xmg4fnbw6jajylrg512n38cx"))))
(build-system asdf-build-system/sbcl)
(outputs '("out" "bin"))
(arguments
@@ -4323,7 +4323,7 @@ operating on them.")
outputs
#:entry-program '((cl-all:toplevel arguments))
#:compress? #t))))))
- (home-page "https://github.com/Shinmera/cl-all")
+ (home-page "https://shinmera.com/docs/cl-all")
(synopsis "Evaluate Common Lisp expressions in multiple implementations")
(description "@samp{cl-all} is a library and script for evaluating Common
Lisp expressions in multiple implementations.")
@@ -14253,11 +14253,11 @@ database files (dbf and db3 files).")
(sbcl-package->ecl-package sbcl-db3))
(define-public sbcl-dbi
- (let ((commit "738a74dd69adb2a7c21fa67e140d89c7df25b227")
- (revision "2"))
+ (let ((commit "be4df4f236391f4e4150a1fe77f8acc92b9f3996")
+ (revision "3"))
(package
(name "sbcl-dbi")
- (version (git-version "0.9.5" revision commit))
+ (version (git-version "0.11.1" revision commit))
(source
(origin
(method git-fetch)
@@ -14266,7 +14266,7 @@ database files (dbf and db3 files).")
(commit commit)))
(file-name (git-file-name "cl-dbi" version))
(sha256
- (base32 "0f8z7an8ssg8mdf9k781r4ygdppv798v6f08ibgpd8mv8a6491fg"))))
+ (base32 "0n3lh0rng5gbbb9aqcrszvc99f80j5zk1hdrcvz20qg6c31hhjl6"))))
(build-system asdf-build-system/sbcl)
(native-inputs
`(("alexandria" ,sbcl-alexandria)
@@ -22962,11 +22962,11 @@ extensions to Common Lisp. It contains:
(sbcl-package->clasp-package sbcl-misc-extensions))
(define-public sbcl-mito
- (let ((commit "47ba4865ca4bb2894b53703a49a299e973f8eb86")
- (revision "3"))
+ (let ((commit "10c22b64047053b079beb5168d21222abe4d4b1d")
+ (revision "4"))
(package
(name "sbcl-mito")
- (version (git-version "0.1" revision commit))
+ (version (git-version "0.2.0" revision commit))
(home-page "https://github.com/fukamachi/mito")
(source
(origin
@@ -22976,23 +22976,24 @@ extensions to Common Lisp. It contains:
(commit commit)))
(file-name (git-file-name "mito" version))
(sha256
- (base32 "0313nxlj1zqw6zyc23xpf85v0jk32sg0543ql8363jki0pmg7yhs"))))
+ (base32 "0yx1hf22k3wgl0b274i25i6cnshijzy7wppi6clgmhi2y5svgddr"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-prove))
(inputs
- `(("alexandria" ,sbcl-alexandria)
- ("cl-package-locks" ,sbcl-cl-package-locks)
- ("cl-ppcre" ,sbcl-cl-ppcre)
- ("cl-reexport" ,sbcl-cl-reexport)
- ("closer-mop" ,sbcl-closer-mop)
- ("dbi" ,sbcl-dbi)
- ("dissect" ,sbcl-dissect)
- ("esrap" ,sbcl-esrap)
- ("local-time" ,sbcl-local-time)
- ("sxql" ,sbcl-sxql)
- ("trivia" ,sbcl-trivia)
- ("uuid" ,sbcl-uuid)))
+ (list sbcl-alexandria
+ sbcl-chipz
+ sbcl-cl-package-locks
+ sbcl-cl-ppcre
+ sbcl-cl-reexport
+ sbcl-closer-mop
+ sbcl-dbi
+ sbcl-dissect
+ sbcl-esrap
+ sbcl-local-time
+ sbcl-sxql
+ sbcl-trivia
+ sbcl-uuid))
(arguments
'(#:phases
(modify-phases %standard-phases
diff --git a/gnu/packages/orange.scm b/gnu/packages/orange.scm
index 28a066bbfb..3b741e7dbb 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)
@@ -42,38 +43,32 @@
(define-public python-orange-canvas-core
(package
(name "python-orange-canvas-core")
- (version "0.2.5")
+ (version "0.2.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "orange_canvas_core" version))
(sha256
- (base32 "0bp6c5y4a4fzr1hg7aijlbfwp6bqacxxcqhwb2swc21aj846ns0n"))))
+ (base32 "1h0p6p36h9vwmgs7xa7x0qa06zjxjyj8pr1p8d4iykbvl60s3dq0"))))
(build-system pyproject-build-system)
(arguments
(list
+ ;; tests: 227 passed, 4 skipped, 13 deselected, 15 warnings
#:test-flags
#~(list "-k" (string-join
- (list
- ;; AttributeError: 'NoneType' object has no attribute
- ;; 'trigger'
- "not test_context_menu_delete"
- "test_copy_cut_paste"
- ;; AttributeError: 'NoneType' object has no attribute
- ;; 'isEnabled'
- "test_item_context_menu"
- ;; Tests fail with error: Failed: CALL ERROR: Exceptions
- ;; caught in Qt event loop.
- "test_create_new_window"
- "test_new_window"
- "test_dont_load_swp_on_new_window"
- "test_toolbox"
- "test_widgettoolgrid"
- "test_editlinksnode"
- "test_links_edit"
- "test_links_edit_widget"
- "test_flattened"
- "test_tooltree_registry")
+ ;; Tests fail with error: Failed: CALL ERROR: Exceptions
+ ;; caught in Qt event loop.
+ (list "not test_create_new_window"
+ "test_dont_load_swp_on_new_window"
+ "test_editlinksnode"
+ "test_links_edit"
+ "test_links_edit_widget"
+ "test_new_window"
+ "test_toolbox"
+ "test_widgettoolgrid"
+ ;; AssertionError: Lists differ
+ "test_create_normal"
+ "test_create_on_demand")
" and not "))
#:phases
#~(modify-phases %standard-phases
@@ -85,28 +80,23 @@
(add-before 'check 'pre-check
(lambda _
(setenv "HOME" "/tmp")
- (setenv "QT_PLUGIN_PATH"
- (string-append #$(this-package-input "qtbase") "/lib/qt6/plugins:"
- (getenv "QT_PLUGIN_PATH")))
(setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list python-pytest
python-pytest-qt
python-setuptools
- python-trubar
- python-wheel))
- (inputs
- (list qtbase))
+ python-trubar))
(propagated-inputs
(list python-anyqt
- python-cachecontrol
python-commonmark
python-dictdiffer
python-docutils
python-numpy
+ python-packaging
python-qasync
python-requests
python-requests-cache
+ python-truststore
python-typing-extensions))
(home-page "https://github.com/biolab/orange-canvas-core")
(synopsis "Core component of Orange Canvas")
@@ -166,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
@@ -223,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")
diff --git a/gnu/packages/prolog.scm b/gnu/packages/prolog.scm
index cc81f7400d..6a11852bc7 100644
--- a/gnu/packages/prolog.scm
+++ b/gnu/packages/prolog.scm
@@ -189,7 +189,7 @@ it.")
(define-public trealla
(package
(name "trealla")
- (version "2.83.21")
+ (version "2.83.23")
(source
(origin
(method git-fetch)
@@ -198,7 +198,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
- (base32 "18qa91g395kqi7a7rrhrfbrx2w5yil3rg8k3fmfng47i8i7522hm"))
+ (base32 "18j824bvypk4z36xd59gafwb3ssl5fh6jlfrrzskpcllbpslcajl"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 126b8f1c71..97b3f83a5f 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -3104,28 +3104,28 @@ types (i.e. Convention, Warn, and Error) fail the build.")
(define-public python-pytest-qt
(package
(name "python-pytest-qt")
- (version "4.4.0")
+ (version "4.5.0")
(source
(origin
(method url-fetch)
- (uri (pypi-uri "pytest-qt" version))
+ (uri (pypi-uri "pytest_qt" version))
(sha256
- (base32 "0i38qp2rqb44grbk9rn7zr5ffjvdlcl6k380759ji920m51632bn"))))
+ (base32 "17ridbk4gsr1aclgs1ai55r6k2ngrg0wn9b40g96bw48qh0hwqji"))))
(build-system pyproject-build-system)
(arguments
(list
- ;;#:test-target "pytest"
#:phases
- '(modify-phases %standard-phases
+ #~(modify-phases %standard-phases
(add-before 'check 'set-qpa
(lambda _ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
- (propagated-inputs
- (list python-pluggy python-pyqt python-pytest))
(native-inputs
- (list python-pre-commit
+ (list python-pyqt-6
+ python-pytest-bootstrap
python-setuptools
- python-setuptools-scm
- python-wheel))
+ python-setuptools-scm))
+ (propagated-inputs
+ (list python-pluggy
+ python-typing-extensions))
(home-page "https://github.com/pytest-dev/pytest-qt")
(synopsis "Pytest support for PyQt and PySide applications")
(description
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index c514e0ab46..12a0dc7d20 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -5465,6 +5465,7 @@ visual integration of spatially referenced datasets.")
(native-inputs (list python-ipython
python-matplotlib
python-numpy
+ python-pyqt-6
python-pytest
python-pytest-cov
python-pytest-qt
@@ -5876,11 +5877,15 @@ abstractions to use in dvc and dvc-data.")
(base32 "1qyr461hcvhgy02slfkgrbip2xwa8zz6dvmi1476v6f66lclzy34"))))
(build-system pyproject-build-system)
(arguments
+ ;; tests: 949 passed, 1356 skipped, 2 deselected, 8 xfailed, 130 warnings
(list #:test-flags
- ;; The test_reload test fails. It suggests to disable assert
- ;; rewriting in Pytest, but it still doesn't pass.
- #~(list "-k" "not test_reload"
- "-n" (number->string (parallel-job-count)))
+ ;; Failed: CALL ERROR: Exceptions caught in Qt event loop.
+ #~(list "--deselect=tests/exporters/test_svg.py::test_plotscene"
+ ;; The test_reload test fails. It suggests to disable
+ ;; assert rewriting in Pytest, but it still doesn't pass.
+ "-k" "not test_reload"
+ ;; Run unit tets only.
+ "tests")
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'set-qpa
@@ -5888,18 +5893,18 @@ abstractions to use in dvc and dvc-data.")
(setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list python-pytest
- python-pytest-cov
- python-pytest-xdist
- python-setuptools
- python-wheel))
- (inputs
- (list qtbase-5))
+ ;; Do not propagate Qt5/Qt6 let the user of the package to select
+ ;; any supported one, see
+ ;; <https://pyqtgraph.readthedocs.io/en/pyqtgraph-0.13.7>
+ ;; </getting_started/how_to_use.html#pyqt-and-pyside>.
+ python-pyqt-6
+ python-pytest-qt
+ python-setuptools))
(propagated-inputs
(list python-h5py
python-numpy
python-pyopengl
- python-scipy
- python-pyqt))
+ python-scipy))
(home-page "https://www.pyqtgraph.org")
(synopsis "Scientific graphics and GUI library for Python")
(description
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 0beff7d6e0..5ba7fa7094 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -2977,6 +2977,63 @@ other HTTP libraries.")
"Cheroot is a high-performance, pure-Python HTTP server.")
(license license:bsd-3)))
+(define-public python-cherrypy
+ (package
+ (name "python-cherrypy")
+ (version "18.10.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cherrypy/cherrypy")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mhs64z75mj3rk4rgxc3xm1yksaj253rj9czhk4632blz5yi0kbn"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(map
+ (lambda (test)
+ (string-append "--deselect=cherrypy/test/" test))
+ (list
+ ;; XXX: Unraisable exceptions.
+ "test_config_server.py::ServerConfigTests::testMaxRequestSize"
+ "test_core.py::CoreRequestHandlingTest::testRanges"
+ "test_core.py::CoreRequestHandlingTest::testRedirect"
+ "test_encoding.py::EncodingTests::\
+test_multipart_decoding_bigger_maxrambytes"
+ "test_encoding.py::EncodingTests::\
+test_test_http.py::HTTPTests::test_post_filename_with_special_characters"
+ "test_http.py::HTTPTests::test_post_multipart"
+ "test_http.py::HTTPTests::test_post_filename_with_special_characters"
+ "test_mime.py::SafeMultipartHandlingTest::test_Flash_Upload"
+ "test_tutorials.py::TutorialTest::test09Files"))))
+ (propagated-inputs
+ (list python-cheroot
+ python-jaraco-collections
+ python-more-itertools
+ python-portend
+ python-zc-lockfile))
+ (native-inputs
+ (list python-objgraph
+ python-path
+ python-pytest
+ python-pytest-cov
+ python-pytest-forked
+ python-pytest-services
+ python-pytest-sugar
+ python-requests-toolbelt
+ python-setuptools))
+ (home-page "https://www.cherrypy.dev")
+ (synopsis "Object-Oriented HTTP framework")
+ (description
+ "CherryPy is a pythonic, object-oriented web framework. It helps in
+building web applications in the same way any other object-oriented Python
+program would be built.")
+ (license license:bsd-3)))
+
(define-public httpie
(package
(name "httpie")
@@ -6078,23 +6135,42 @@ HTTP via a UNIX domain socket.")
(define-public python-requests-unixsocket
(deprecated-package "python-requests-unixsocket" python-requests-unixsocket2))
-(define-public python-requests_ntlm
+(define-public python-requests-ntlm
(package
- (name "python-requests_ntlm")
- (version "1.2.0")
+ (name "python-requests-ntlm")
+ (version "1.3.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "requests_ntlm" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/requests/requests-ntlm")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "1a0np7lk8ma1plv1s4aw5q9h2z3aljprkl9qsfypqcaf0zsqbhik"))))
- (build-system python-build-system)
+ (base32 "0snsk66zdihdlyfjz2zgpyfgdyjg814m3cc4g3my09hdnb5xvagv"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ ;; XXX: Connection refused.
+ #~(list "-k" (string-join
+ (list "not test_ntlm_http_with_cbt"
+ "test_ntlm_http_without_cbt"
+ "test_ntlm_https_with_cbt"
+ "test_ntlm_https_without_cbt")
+ " and not "))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'spawn-test-server
+ (lambda _
+ ;; Taken from .github/workflows/ci.yml.
+ (spawn "python"
+ (list "python" "-m" "tests.test_server")))))))
(propagated-inputs
(list python-cryptography python-pyspnego python-requests))
+ (native-inputs (list python-flask python-pytest python-setuptools))
(home-page "https://github.com/requests/requests-ntlm")
- (synopsis
- "NTLM authentication support for Requests")
+ (synopsis "NTLM authentication support for Requests")
(description
"This package allows for HTTP NTLM authentication using the requests
library.")
@@ -10107,6 +10183,30 @@ conflicts detected by that mechanism.")
for Python. It is mainly used by the ZODB.")
(license license:zpl2.1)))
+(define-public python-truststore
+ (package
+ (name "python-truststore")
+ (version "0.10.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "truststore" version))
+ (sha256
+ (base32 "00f3xc7720rkddsn291yrw871kfnimi6d9xbwi75xbb3ci1vv4cx"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list #:tests? #f)) ;all tests require Internet access
+ (native-inputs
+ (list python-flit-core))
+ (home-page "https://github.com/sethmlarson/truststore")
+ (synopsis "Verify certificates using native system trust stores")
+ (description
+ "Truststore is a library which exposes native system certificate stores (ie
+\"trust stores\") through an @code{ssl.SSLContext-like} API. This means that
+Python applications no longer need to rely on certifi as a root certificate
+store.")
+ (license license:expat)))
+
(define-public python-robot-detection
(package
(name "python-robot-detection")
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b5aa148e14..b46bd16e3d 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -2618,6 +2618,39 @@ decorators, including variants of the Python standard library's
(sha256
(base32 "1m20wqipm50zvcgs3z2xksb96qwx1xc1jbhvaxcnglkmj6m1qrhs"))))))
+(define-public python-colorclass
+ (package
+ (name "python-colorclass")
+ (version "2.2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/matthewdeanmartin/colorclass")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ylj167lfh8yzms30qrkiznv6737hdxra5lk8mhijcjm3hi1cl9l"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" "not test_piped") ; Unclear why this test fails.
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-poetry-core
+ (lambda _
+ ;; Patch to use the core poetry API.
+ (substitute* "pyproject.toml"
+ (("poetry.masonry.api") "poetry.core.masonry.api")))))))
+ (native-inputs (list python-poetry-core python-pytest))
+ (home-page "https://github.com/matthewdeanmartin/colorclass")
+ (synopsis "Colorful console applications with Python")
+ (description
+ "This package provides an ANSI color text library for Python. It
+provides automatic coloring for dark or light terminals.")
+ (license license:expat)))
+
(define-public python-colorcet
(package
(name "python-colorcet")
@@ -7746,6 +7779,35 @@ you traverse a schema like paths and access a schema on demand with separate
dereferencing accessor layer.")
(license license:asl2.0)))
+(define-public python-jsonschema-objects
+ (package
+ (name "python-jsonschema-objects")
+ (version "0.5.7")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cwacek/python-jsonschema-objects/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0p3m0fbj25brhfma4bl47xjq6x4ay14yx284qwrki96dwd6v46xd"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest
+ python-pytest-mock
+ python-setuptools))
+ (propagated-inputs
+ (list python-inflection
+ python-jsonschema
+ python-markdown))
+ (home-page "http://python-jsonschema-objects.readthedocs.org/")
+ (synopsis "Automatic Python binding generation from JSON schemas")
+ (description
+ "This package provides an automatic class-based binding to JSON
+Schemas for use in python.")
+ (license license:expat)))
+
(define-public python-jsonschema-specifications
(package
(name "python-jsonschema-specifications")
@@ -12965,50 +13027,52 @@ that requires its specific capabilities.")
(define-public python-ffmpeg-python
;; The latest release (0.2.0) is old and its test suite crashs on Python 3.10.
- (let ((commit "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6") (revision "0"))
- (package
- (name "python-ffmpeg-python")
- (version (git-version "0.2.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/kkroening/ffmpeg-python.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1zj4ac37n4igfj21zy405mdlvbpv6jyb12wfpszf8zkhhj2qby4c"))))
- (build-system python-build-system)
- (arguments
- (list
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'hardcode-ffmpeg
- (lambda* (#:key inputs #:allow-other-keys)
- (define ffmpeg (search-input-file inputs "bin/ffmpeg"))
+ (package
+ (name "python-ffmpeg-python")
+ (properties '((commit . "df129c7ba30aaa9ffffb81a48f53aa7253b0b4e6")
+ (revision . "0")))
+ (version (git-version "0.2.0"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/kkroening/ffmpeg-python.git")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zj4ac37n4igfj21zy405mdlvbpv6jyb12wfpszf8zkhhj2qby4c"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k" "not test_pipe and not test__probe")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'hardcode-ffmpeg
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((ffmpeg (search-input-file inputs "bin/ffmpeg")))
(substitute* "ffmpeg/_run.py"
(("cmd='ffmpeg'")
(string-append "cmd='" ffmpeg "'")))
(substitute* "ffmpeg/tests/test_ffmpeg.py"
(("out_file.compile\\(\\) == \\['ffmpeg'")
- (string-append "out_file.compile() == ['" ffmpeg "'")))))
- ;; Some tests fail with ffmpeg 5+
- (replace 'check
- (lambda* (#:key tests? #:allow-other-keys)
- (when tests?
- (invoke "pytest" "-vv"
- "-k" "not test_pipe and not test__probe")))))))
- (inputs (list ffmpeg))
- (propagated-inputs (list python-future))
- (native-inputs (list python-future python-numpy python-pytest
- python-pytest-mock python-pytest-runner))
- (home-page "https://github.com/kkroening/ffmpeg-python")
- (synopsis "Python bindings for FFmpeg with complex filtering support")
- (description
- "ffmpeg-python allows you to write FFmpeg filtergraphs in familiar
+ (format #f "out_file.compile() == [~s" ffmpeg)))))))))
+ (inputs (list ffmpeg))
+ (propagated-inputs (list python-future))
+ (native-inputs (list python-future
+ python-numpy
+ python-pytest
+ python-pytest-mock
+ python-setuptools))
+ (home-page "https://github.com/kkroening/ffmpeg-python")
+ (synopsis "Python bindings for FFmpeg with complex filtering support")
+ (description
+ "ffmpeg-python allows you to write FFmpeg filtergraphs in familiar
Python terms, taking care of running ffmpeg with the correct command-line
arguments. It handles arbitrarily large (directed-acyclic) signal graphs.")
- (license license:asl2.0))))
+ (license license:asl2.0)))
(define-public python-imageio-ffmpeg
(package
@@ -13358,23 +13422,23 @@ all of your favorite programs.")
(define-public python-pywinrm
(package
(name "python-pywinrm")
- (version "0.4.1")
+ (version "0.5.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "pywinrm" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/diyan/pywinrm/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "10gabhhg3rgacd5ahmi2r128z99fzbrbx6mz1nnq0dxmhmn5rpjf"))))
- (build-system python-build-system)
+ (base32 "0jp7rps6zg5b6n98lfkwbhv72982sxxnqc4v4i6hjlq1ycjmmb8r"))))
+ (build-system pyproject-build-system)
(propagated-inputs
- (list python-six python-requests_ntlm python-xmltodict
- python-kerberos))
+ (list python-requests python-requests-ntlm python-xmltodict))
(native-inputs
- (list python-mock python-pytest))
+ (list python-mock python-pytest python-setuptools))
(home-page "https://github.com/diyan/pywinrm/")
- (synopsis
- "Python library for Windows Remote Management (WinRM)")
+ (synopsis "Python library for Windows Remote Management (WinRM)")
(description
"pywinrm is a Python client for the Windows Remote Management (WinRM)
service. It allows you to invoke commands on target Windows machines from
@@ -13533,16 +13597,19 @@ etc. The core of this module is a decorator factory.")
(uri (pypi-uri "drmaa" version))
(sha256
(base32 "0xzqriqyvk5b8hszbavsyxd29wm3sxirm8zvvdm73rs2iq7w4hkx"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
;; The test suite requires libdrmaa which is provided by the cluster
;; environment. At runtime the environment variable DRMAA_LIBRARY_PATH
;; should be set to the path of the libdrmaa library.
(arguments
- '(#:tests? #f
- #:phases (modify-phases %standard-phases
- ;; Loading the library fails because DRMAA_LIBRARY_PATH
- ;; is not configured.
- (delete 'sanity-check))))
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; Loading the library fails because DRMAA_LIBRARY_PATH
+ ;; is not configured.
+ (delete 'sanity-check))))
+ (native-inputs (list python-setuptools))
(home-page "https://pypi.org/project/drmaa/")
(synopsis "Python bindings for the DRMAA library")
(description
@@ -13570,11 +13637,11 @@ Python language binding specification.")
(substitute* '("grako/util.py"
"grako/walkers.py")
(("collections\\.Mapping") "collections.abc.Mapping"))))))
- (build-system python-build-system)
- (arguments '(#:tests? #f)) ; Test file 'grako.ebnf' is missing from archive.
- (native-inputs
- (list unzip python-pytest python-pytest-runner))
- (home-page "https://bitbucket.org/neogeny/grako")
+ (build-system pyproject-build-system)
+ ;; XXX: Test file 'grako.ebnf' is missing from archive.
+ (arguments (list #:tests? #f))
+ (native-inputs (list unzip python-pytest python-setuptools))
+ (home-page "https://pypi.org/project/grako")
(synopsis "EBNF parser generator")
(description
"Grako takes a grammar in a variation of EBNF as input, and outputs a
@@ -13639,7 +13706,7 @@ you to actually draw things with your favorite toolkit.")
(define-public python-gridmap
(package
(name "python-gridmap")
- (version "0.14.0")
+ (version "0.15.0")
(source
(origin
(method git-fetch)
@@ -13648,15 +13715,20 @@ you to actually draw things with your favorite toolkit.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0v0sgpg6pz8h61f9aqjf5xk0ipr512bbz8dxzjjylksj135qr19l"))))
- (build-system python-build-system)
+ (base32 "0w1sxvhv5ldbzkx70q7036yvny0zsylc4zj7nzmp3nhjdl8whlrm"))))
+ (build-system pyproject-build-system)
(arguments
- '(#:tests? #f ;FIXME: Requires python-cherrypy.
- #:phases (modify-phases %standard-phases
- ;; Importing the web server module requires cherrypy, too.
- (delete 'sanity-check))))
+ (list #:tests? #f ;XXX: freezes or timeout
+ #:test-backend #~'nose))
+ (native-inputs
+ (list ;; python-pynose
+ python-setuptools))
(propagated-inputs
- (list python-psutil python-drmaa python-pyzmq))
+ (list python-cherrypy
+ python-cloudpickle
+ python-psutil
+ python-drmaa
+ python-pyzmq))
(home-page "https://github.com/pygridtools/gridmap")
(synopsis "Create jobs on a cluster directly from Python")
(description
@@ -18444,7 +18516,7 @@ $ rm -rf /tmp/env
(file-name (git-file-name name version))
(sha256
(base32 "1gb5j73nw3nmx030rf8pm75rns5syxhv44zxr6i74kjicyly1i9w"))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
@@ -18459,7 +18531,7 @@ $ rm -rf /tmp/env
(when tests?
(with-directory-excursion "../Testing"
(invoke "./python_test.sh"))))))))
- (native-inputs (list cmake-minimal))
+ (native-inputs (list cmake-minimal python-setuptools))
(synopsis "Fuzzy matching library for Python")
(description
"Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
@@ -18516,12 +18588,21 @@ a hash value.")
(version "3.1.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "terminaltables" version))
- (sha256
- (base32
- "109vhldk6nv1z3hzp4dyqf6rjvlhl0y2k5k7qcm9fcrq5swhxszk"))))
- (build-system python-build-system)
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Robpol86/terminaltables")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256 (base32 "1jlm7n6kxypbr8mvwpd7hf9hbfk0a002ad03wqgxlri4aw8pk39a"))))
+ (build-system pyproject-build-system)
+ ;; XXX: A lot of test fail with flaky behavior.
+ (arguments (list #:tests? #f))
+ (native-inputs
+ (list python-colorclass
+ python-colorama
+ python-pytest
+ python-setuptools
+ python-termcolor))
(home-page "https://github.com/Robpol86/terminaltables")
(synopsis
"Generate simple tables in terminals from a nested list of strings")
@@ -18598,26 +18679,26 @@ Python's @code{ctypes} foreign function interface (FFI).")
(define-public python-file
(package/inherit file
(name "python-file")
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(arguments
- '(#:tests? #f ;no tests
- #:configure-flags '("--single-version-externally-managed" "--root=/")
- #:phases (modify-phases %standard-phases
- (add-before 'build 'change-directory
- (lambda _
- (chdir "python")
- #t))
- (add-before 'build 'set-library-file-name
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((file (assoc-ref inputs "file")))
- (substitute* "magic.py"
- (("find_library\\('magic'\\)")
- (string-append "'" file "/lib/libmagic.so'")))
- #t))))))
- (inputs `(("file" ,file)))
- (native-inputs (if (%current-target-system)
- `(("self" ,this-package))
- '()))
+ (list
+ #:tests? #f ;no tests
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'change-directory
+ (lambda _
+ (chdir "python")))
+ (add-before 'build 'set-library-file-name
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "magic.py"
+ (("find_library\\('magic'\\)")
+ (format #f "~s" (search-input-file inputs
+ "lib/libmagic.so")))))))))
+ (inputs (list file))
+ (native-inputs (cons* python-setuptools
+ (if (%current-target-system)
+ (list this-package)
+ '())))
(synopsis "Python bindings to the libmagic file type guesser")
(description "This package provides Python bindings to the libmagic file
type guesser.
@@ -18823,9 +18904,9 @@ Python.")
(copy-file "lib/debian/_version.py.in" "lib/debian/_version.py")
(substitute* "lib/debian/_version.py"
(("__CHANGELOG_VERSION__") #$version))))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
(native-inputs
- (list python-pytest))
+ (list python-pytest python-setuptools))
(propagated-inputs
(list python-six python-chardet))
(synopsis "Debian package related modules")
@@ -19057,19 +19138,24 @@ functions to find and load entry points.")
(define-public python-epc
(package
(name "python-epc")
- (version "0.0.5")
+ (properties '((commit . "f3673ae5c35f20a0f71546ab34c28e3dde3595c1")
+ (revision . "0")))
+ (version (git-version "0.0.5"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "epc" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tkf/python-epc")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "09bx1ln1bwa00917dndlgs4k589h8qx2x080xch5m58p92kjwkd1"))))
- (build-system python-build-system)
- (propagated-inputs
- (list python-sexpdata))
- (native-inputs
- (list python-nose))
+ (base32 "0q27bj49yan2qg6i8m5czs5b5jv26ff42yz7j4r5652s7j3f42mm"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'nose))
+ (propagated-inputs (list python-sexpdata))
+ (native-inputs (list python-pynose python-setuptools))
(home-page "https://github.com/tkf/python-epc")
(synopsis "Remote procedure call (RPC) stack for Emacs Lisp and Python")
(description
@@ -19083,17 +19169,17 @@ from elisp.")
(version "1.5")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "forex-python" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/MicroPyramid/forex-python")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1ma8cl1i2dh8aa99pifnlilyy4d1gd1s07fj0yd17wcbpsh532cj"))))
- (build-system python-build-system)
- (arguments
- ;; Tests are not included in the PyPI tarball. Also, the tests in the
- ;; repository require online data.
- `(#:tests? #f))
- (propagated-inputs
- (list python-requests python-simplejson))
+ (base32 "0pl5sfd0wkv1a2y324l518h6sing7wkadrbr5xcf6hjykn2mbi5h"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ; Tests require online data.
+ (native-inputs (list python-setuptools))
+ (propagated-inputs (list python-requests python-simplejson))
(home-page "https://github.com/MicroPyramid/forex-python")
(synopsis "Foreign exchange rates and currency conversion")
(description
@@ -19119,11 +19205,15 @@ Features:
(version "0.9.12")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "simpleeval" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/danthedeckie/simpleeval")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0diysdzvx865yy2rjfah75ha2qfxaxz7r108kp7j2kkd903ya2ry"))))
- (build-system python-build-system)
+ (base32 "0khgl729q5133fgc00d550f4r77707rkkn7r56az4v8bvx0q8xp4"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/danthedeckie/simpleeval")
(synopsis "Simple, safe single expression evaluator library")
(description
@@ -19382,39 +19472,32 @@ Jupyter kernels such as IJulia and IRKernel.")
(define-public python-jsbeautifier
(package
(name "python-jsbeautifier")
- (version "1.10.2")
+ (version "1.15.3")
(home-page "https://github.com/beautify-web/js-beautify")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0wawb070ki1axb3jc9xvsrgpji52vcfif3zmjzc3z4g98m5xw4kg"))))
- (build-system python-build-system)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zl1g6w5zn2hxk5qq83j52cxa1ig75ryjwsjxv9wiwkar4qq88zg"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'chdir
- (lambda _
- ;; The upstream Git repository contains all the code,
- ;; but this package only builds the python code.
- (chdir "python")
- #t))
- (add-after 'unpack 'patch-python-six-requirements
- (lambda _
- (substitute* "python/setup.py"
- (("six>=1.12.0")
- "six>=1.11.0"))
- #t)))))
- (propagated-inputs
- (list python-editorconfig python-six))
- (native-inputs
- (list python-pytest))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "python")
+ (rename-file "setup-js.py" "setup.py"))))))
+ (propagated-inputs (list python-editorconfig python-six))
+ (native-inputs (list python-pytest python-setuptools))
(synopsis "JavaScript unobfuscator and beautifier")
- (description "Beautify, unpack or deobfuscate JavaScript, leveraging
-popular online obfuscators.")
+ (description
+ "This packages provides tooling to beautify, unpack or deobfuscate
+JavaScript, leveraging popular online obfuscators.")
(license license:expat)))
(define-public python-chardet
@@ -19623,38 +19706,45 @@ tutorial.")
@code{PythonAnywhere} services.")
(license license:expat)))
-(define-public python-pythondialog
+(define-public python-dialog
(package
- (name "python-pythondialog")
- (version "3.4.0")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "pythondialog" version))
- (sha256
- (base32
- "1728ghsran47jczn9bhlnkvk5bvqmmbihabgif5h705b84r1272c"))))
- (build-system python-build-system)
+ (name "python-dialog")
+ (version "3.5.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pythondialog" version))
+ (sha256
+ (base32 "08v3flvbhpc0p20drniiaalc3ijghlxk9ka5vz5mqqm6y254m8xj"))
+ (modules '((guix build utils)))
+ (snippet #~(delete-file-recursively "doc"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'patch-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((dialog (assoc-ref inputs "dialog")))
- (substitute* "dialog.py"
- (("os.getenv\\(\"PATH\", \":/bin:/usr/bin\"\\)") (string-append
- "os.getenv(\"PATH\") + \":"
- dialog
- "/bin\"")))
- #t))))
- #:tests? #f))
- (propagated-inputs (list dialog))
+ (list
+ ;; XXX: There are no tests, but some examples. However, they need to
+ ;; be run on a terminal.
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "dialog.py"
+ (("_path_to_executable\\(dialog\\)")
+ (format #f "os.path.realpath(~s)"
+ (search-input-file inputs "bin/dialog")))))))))
+ (native-inputs (list python-setuptools))
+ (inputs (list dialog))
(home-page "https://pythondialog.sourceforge.net/")
(synopsis "Python interface to the UNIX dialog utility")
(description
- "A Python wrapper for the dialog utility. Its purpose is to
-provide an easy to use, pythonic and comprehensive Python interface to dialog.
-This allows one to make simple text-mode user interfaces on Unix-like systems")
+ "A Python wrapper for the dialog utility. Its purpose is to provide an
+easy to use, pythonic and comprehensive Python interface to dialog. This
+allows one to make simple text-mode user interfaces on Unix-like systems")
(license license:lgpl2.1)))
+(define-public python-pythondialog
+ (deprecated-package "python-pythondialog" python-dialog))
+
(define-public python-confection
(package
(name "python-confection")
@@ -20760,40 +20850,53 @@ manipulation library.")
(define-public python-asteval
(package
(name "python-asteval")
- (version "0.9.23")
+ (version "1.0.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "asteval" version))
(sha256
- (base32
- "0f54sd4w1a72ij1bcxs2x7dk9xf8bzclawijf1z18bqx9f96l2gm"))))
- (build-system python-build-system)
+ (base32 "17x1qk07cixj1nn59pp5dzjc9jna92v6kljdss81l5rf9cqfga0s"))))
+ (build-system pyproject-build-system)
(native-inputs
- (list python-pytest))
+ (list python-pytest
+ python-pytest-cov
+ python-setuptools
+ python-setuptools-scm))
(home-page "https://github.com/newville/asteval")
(synopsis "Minimalistic evaluator of Python expressions")
(description
"This package provides a minimalistic evaluator of Python expression
-using the @code{ast} module")
+using the @code{ast} module.")
(license license:expat)))
(define-public python-lmfit
(package
(name "python-lmfit")
- (version "1.0.2")
+ (version "1.3.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "lmfit" version))
(sha256
(base32
- "0iab33jjb60f8kn0k0cqb0vjp1mdskks2n3kpn97zkw5cvjhq2b7"))))
- (build-system python-build-system)
+ "15z4zcyc4crfdw22qnbaq8wrf552jgl83gd3nk2zc5zp8f6c48iw"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ ;; Costly tests that may fail with multiprocessing.context.TimeoutError.
+ #~(list "--ignore=tests/test_jacobian_pickling.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; XXX: Unclear why, but the phase seems broken.
+ ;; asteval>=1.0 is not understood correctly.
+ (delete 'sanity-check))))
(propagated-inputs
- (list python-asteval python-numpy python-scipy python-uncertainties))
+ (list python-asteval python-dill python-numpy python-scipy
+ python-uncertainties))
(native-inputs
- (list python-pytest))
+ (list python-pytest python-pytest-cov python-setuptools))
(home-page "https://lmfit.github.io/lmfit-py/")
(synopsis "Least-Squares minimization with bounds and constraints")
(description
@@ -20999,19 +21102,32 @@ Amazon Web Services (AWS) API.")
(define-public python-pyfiglet
(package
(name "python-pyfiglet")
- (version "0.8.post1")
+ (version "1.0.4")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "pyfiglet" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pwaller/pyfiglet")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "0f9n2076ga2ccsg174k2d7n0z4d44ml96yzc72s6g4nhalbk5hn6"))))
- (build-system python-build-system)
+ (base32 "1r1fyphz99jar2xfk761cl740zxk4b0gygajgjfx6i1kf0dxdv40"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'fallback-on-default-build
+ (lambda _
+ ;; This pyproject has little value and fails because of the
+ ;; :__legacy__ suffix. Removing it to rely on defaults.
+ (delete-file "pyproject.toml"))))))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/pwaller/pyfiglet")
(synopsis "Draw ASCII art big letters in Python")
- (description "This module lets you draw large letter from ordinary characters
-in pure Python.")
+ (description
+ "This module lets you draw large letter from ordinary characters in pure
+ Python.")
(license license:expat)))
(define-public python-mako
@@ -21334,21 +21450,20 @@ synchronously (wait until ready).")
(define-public python-translitcodec
(package
(name "python-translitcodec")
- (version "0.4.0")
+ (version "0.7.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "translitcodec" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/claudep/translitcodec")
+ (commit (string-append "version-" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "10x6pvblkzky1zhjs8nmx64nb9jdzxad4bxhq4iwv0j4z2aqjnki"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ; no tests provided
- (home-page
- "https://github.com/claudep/translitcodec")
- (synopsis
- "Unicode to 8-bit charset transliteration codec")
+ (base32 "1cj11sa5hy8ga7p0dgwi4g4gv0qx6c1yi2csgnvxiir16ywslhpw"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-pytest python-setuptools))
+ (home-page "https://github.com/claudep/translitcodec")
+ (synopsis "Unicode to 8-bit charset transliteration codec")
(description
"This package contains codecs for transliterating ISO 10646 texts into
best-effort representations using smaller coded character sets (ASCII,
@@ -21358,56 +21473,69 @@ ISO 8859, etc.).")
(define-public python-anyqt
(package
(name "python-anyqt")
- (version "0.2.0")
+ (version "0.2.1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "AnyQt" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ales-erjavec/anyqt")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0fvnhdk0nzhlm1xydisvdq1w7lwaakdkbwb1rkyz4vd232wji4jb"))))
- (build-system python-build-system)
+ (base32 "0dci4sx53icd3jxv5gm22yr5g4dcyqbyvkkwliqpmbkxxjxj0dc8"))))
+ (build-system pyproject-build-system)
(arguments
- `(#:tests? #f ;there are no tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'delete-files
- ;; Delete files related to other operating systems.
- (lambda _
- (delete-file "AnyQt/QtMacExtras.py")
- (delete-file "AnyQt/QtWinExtras.py"))))))
+ (list
+ ;; XXX: Qt tests require Qt modules, see test/test_import.py.
+ ;; TODO Add/configure the right Qt inputs.
+ #:test-flags
+ #~(list "--ignore-glob=tests/test_q*.py")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'delete-files
+ ;; Delete files related to other operating systems.
+ (lambda _
+ (delete-file "AnyQt/QtMacExtras.py")
+ (delete-file "AnyQt/QtWinExtras.py"))))))
+ (native-inputs
+ (list python-pyqt-6
+ python-pytest
+ python-pytest-qt
+ python-setuptools))
(home-page "https://github.com/ales-erjavec/anyqt")
- (synopsis "PyQt4/PyQt5 compatibility layer")
- (description "AnyQt is a PyQt4/PyQt5 compatibility layer.")
+ (synopsis "PyQt compatibility layer")
+ (description
+ "This package provides a PyQt/PySide compatibility layer. More precisely,
+it provides compatibility for the following modules: PyQt4, PyQt5, PyQt6,
+PySide, PySide2.")
(license license:gpl3)))
(define-public python-qasync
(package
(name "python-qasync")
- (version "0.27.1")
+ (version "0.28.0")
(source
(origin
- ;; There are no tests in the PyPI tarball.
(method git-fetch)
(uri (git-reference
- (url "https://github.com/CabbageDevelopment/qasync/")
- (commit (string-append "v" version))))
+ (url "https://github.com/CabbageDevelopment/qasync/")
+ (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0j6ksfnq9qfjdfppbkdz7jh6w0gnslwnckhafmlgim29b25g0z51"))))
+ (base32 "13i5riq7ig4csxlx61fzb8xl12ny0dkwj4h8f8r95xz5rii7a0kr"))))
(build-system pyproject-build-system)
(arguments
- (list #:test-flags
- ;; XXX: Added with python@3.11, not fixed upstream.
- #~(list "-k" "not test_regression_bug13")
- #:phases
- #~(modify-phases %standard-phases
- (add-before 'check 'set-qpa
- (lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen"))))))
+ (list
+ #:build-backend "poetry.core.masonry.api" ;XXX: python-uv-build is required
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'check 'set-qpa
+ (lambda _
+ (setenv "QT_QPA_PLATFORM" "offscreen"))))))
(native-inputs
(list python-poetry-core python-pytest))
(propagated-inputs
- (list python-pyqt))
+ (list python-pyqt-6))
(home-page "https://github.com/CabbageDevelopment/qasync")
(synopsis "Implementation of the PEP 3156 Event-Loop with Qt")
(description
@@ -21417,40 +21545,44 @@ by providing an implementation of the PEP 3156 event-loop.")
(define-public python-editor
(package
- (name "python-editor")
- (version "1.0.4")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "python-editor" version))
- (sha256
- (base32
- "0yrjh8w72ivqxi4i7xsg5b1vz15x8fg51xra7c3bgfyxqnyadzai"))))
- (build-system python-build-system)
- (arguments
- '(#:tests? #f)) ;XXX: needs a TTY and an editor
- (home-page "https://github.com/fmoo/python-editor")
- (synopsis "Programmatically open an editor, capture the result")
- (description
- "python-editor is a library that provides the editor module for
-programmatically interfacing with your system's $EDITOR.")
- (license license:asl2.0)))
+ (name "python-editor")
+ (version "1.0.4")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fmoo/python-editor")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0hm5gcz5117dsq39bqfxpwazk4khqd272ran0n12x0x84mnqvfxa"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:tests? #f)) ;XXX: needs a TTY and an editor
+ (native-inputs (list python-setuptools))
+ (home-page "https://github.com/fmoo/python-editor")
+ (synopsis "Programmatically open an editor, capture the result")
+ (description
+ "This package provides the editor module for programmatically interfacing
+with your system's $EDITOR.")
+ (license license:asl2.0)))
(define-public python-multiprocessing-logging
(package
(name "python-multiprocessing-logging")
- (version "0.3.1")
+ (version "0.3.4")
(home-page "https://github.com/jruere/multiprocessing-logging")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url home-page)
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1625wy3djlr3b2fpd3vi822f8gw6b75mnls5a4318dbi9za5pf0y"))))
- (build-system python-build-system)
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ib1plsyi4g68n0crc2cqhk54fccsmcijzh66g89fd3lgababgxd"))))
+ (build-system pyproject-build-system)
+ (arguments (list #:test-backend #~'unittest))
+ (native-inputs (list python-setuptools))
(synopsis "Manage logs from multiple processes")
(description
"This Python module implements a multiprocessing-aware @code{Handler}
@@ -21462,33 +21594,27 @@ main process so that they are handled correctly.")
(package
(name "python-munkres")
(version "1.1.4")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "munkres" version))
- (sha256
- (base32
- "00yvj8bxmhhhhd74v7j0x673is7vizmxwgb3dd5xmnkr74ybyi7w"))))
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "munkres" version))
+ (sha256
+ (base32 "00yvj8bxmhhhhd74v7j0x673is7vizmxwgb3dd5xmnkr74ybyi7w"))))
+ (build-system pyproject-build-system)
(arguments
(list
- #:phases
- '(modify-phases %standard-phases
- (add-after 'unpack 'disable-test
- (lambda _
- ;; See https://github.com/bmc/munkres/issues/40
- (substitute* "test/test_munkres.py"
- (("^def test_profit_float" m)
- (string-append "\
-import platform
-@pytest.mark.skipif(platform.architecture()[0] == \"32bit\",
- reason=\"Fails on 32 bit architectures\")
-" m))))))))
- (build-system python-build-system)
- (native-inputs (list python-pytest))
+ ;; See https://github.com/bmc/munkres/issues/40
+ #:test-flags
+ (if (member (%current-system) %32bit-supported-systems)
+ #~(list "-k" "not test_profit_float")
+ #~(list))))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://software.clapper.org/munkres/")
(synopsis "Implementation of the Munkres algorithm")
- (description "The Munkres module provides an implementation of the Munkres
-algorithm (also called the Hungarian algorithm or the Kuhn-Munkres algorithm),
-useful for solving the Assignment Problem.")
+ (description
+ "The Munkres module provides an implementation of the Munkres algorithm
+(also called the Hungarian algorithm or the Kuhn-Munkres algorithm), useful
+for solving the Assignment Problem.")
(license license:bsd-3)))
(define-public python-codespell
@@ -34582,18 +34708,39 @@ were local.")
(define-public python-nampa
(package
(name "python-nampa")
- (version "0.1.1")
+ ;; PyPI version is 0.1.1 from 2017. Tag 1.0 on git is from 2020 and still
+ ;; has 0.1.1 as version. Latest commit is from 2024.
+ (properties '((commit . "cb6a63aae64324f57bdc296064bc6aa2b99ff99a")
+ (revision . "0")))
+ (version (git-version "1.0.0"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "nampa" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thebabush/nampa")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0k6cq2gflpkm40qhgqbbcjmq5lq589c15bmk567qyh3d08062hvd"))))
+ (base32 "0a3fx0wpch4il1fwv1nan6nsd7bv84b0bs2xxxjacisw3spizlg0"))))
(build-system pyproject-build-system)
(arguments
- (list #:tests? #f)) ;no tests in PyPI archvie, no 0.1.1 tag in Git
+ (list
+ #:test-flags
+ #~(list "-k test_random_values")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-tests
+ (lambda _
+ ;; Unclear why this top-level __init__.py is here. It seems to
+ ;; setup a plugin for binaryninja, which Guix does not package.
+ (delete-file "__init__.py")
+ ;; Yields tests, which is not allowed anymore.
+ (substitute* "tests/test_crc.py"
+ (("yield") "#yield")))))))
(propagated-inputs (list python-future))
- (native-inputs (list python-setuptools))
+ (native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/thebabush/nampa")
(synopsis "Python implementation of IDA Pro's FLIRT technology")
(description
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index 82512f80e6..efd307aea1 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -414,9 +414,6 @@ problems for efficient solution on parallel systems.")
(license license:gpl3+)
(home-page "https://openfoam.org")))
-(define-public openfoam
- (deprecated-package "openfoam" openfoam-org))
-
(define-public openfoam-com
;; This is a fork of 'openfoam-org', maintained separately.
(package
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index 688db00783..87e40e1177 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -244,12 +244,13 @@ This package also provides @command{xls2csv} to export Excel files to CSV.")
pango
readline
gtk+
- gtksourceview-3
+ gtksourceview-4
spread-sheet-widget
zlib))
(native-inputs
(list autoconf ;for tests
`(,glib "bin") ;for glib-genmarshal
+ glibc-locales ;for test 1597: tex non-ascii
perl
pkg-config
python-3 ;for tests
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index c1ad2ba86f..d1a6d90507 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -76,18 +76,17 @@
(version "1.18.0")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "termdown" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trehn/termdown")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32
- "07nxsqpwnpr9jkvif2ngjlcq05z0ldnmqxd15d1l593lzmxdyrci"))))
+ (base32 "15i7ilwzwdj831bcd1gjnirydcdbr1b10d7jw5syjv0xwqq3yy8y"))))
(build-system pyproject-build-system)
- (native-inputs
- (list python-setuptools python-wheel))
- (propagated-inputs
- (list python-click
- python-pyfiglet
- python-dateutil))
+ (arguments (list #:tests? #f)) ; No tests.
+ (native-inputs (list python-pytest python-setuptools))
+ (propagated-inputs (list python-click python-pyfiglet python-dateutil))
(home-page "https://github.com/trehn/termdown")
(synopsis "Countdown timer for your terminal")
(description
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2ef3e4ea3e..c621104bd4 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -3134,7 +3134,7 @@ video streaming services of the Finnish national broadcasting company Yle.")
(define-public yt-dlp
(package
(name "yt-dlp")
- (version "2025.10.14")
+ (version "2025.10.22")
(source
(origin
(method git-fetch)
@@ -3146,7 +3146,7 @@ video streaming services of the Finnish national broadcasting company Yle.")
(snippet #~(substitute* "pyproject.toml"
(("^.*Programming Language :: Python :: 3\\.13.*$") "")))
(sha256
- (base32 "187rwpdh881m922h6m32pikqah1wlxjqww73ijw511i2fnwykfy7"))))
+ (base32 "19viqfk3gnl6yk9p17kp0a21w18yr32qii4grm3mys758ws881ld"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -6605,17 +6605,31 @@ downloader. It does not require a Youtube API key.")
(define-public python-youtube-search
(package
(name "python-youtube-search")
- (version "1.6.6")
+ ;; Original repository is archived, see
+ ;; https://github.com/alexmercerind/youtube-search-python/issues/189
+ ;; The most promising fork (in the sense that it works) is
+ ;; https://github.com/ahmedayyad-dev/youtube-search-python-fork,
+ ;; which is therefor packaged in Guix.
+ (properties '((commit . "6d7e16ebcdc90032392749c2f30f8e29ea0956ae")
+ (revision . "0")))
+ (version (git-version "1.6.6"
+ (assoc-ref properties 'revision)
+ (assoc-ref properties 'commit)))
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "youtube-search-python" version))
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/ahmedayyad-dev/youtube-search-python-fork")
+ (commit (assoc-ref properties 'commit))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1xgw6nqypnj3ymjkfyzc1vvwar73qvp08prnp15ypmzcd7bx2s25"))))
+ (base32 "1b2sc0v0xw8kqrqy1844xkdsss70npkyk26fprpw3yhz09az5k3q"))))
+ (arguments (list #:tests? #f)) ;no tests in repository
(build-system pyproject-build-system)
(propagated-inputs (list python-httpx))
- (native-inputs (list python-setuptools python-wheel))
- (home-page "https://github.com/alexmercerind/youtube-search-python")
+ (native-inputs (list python-setuptools))
+ (home-page "https://github.com/ahmedayyad-dev/youtube-search-python-fork")
(synopsis "Search for YouTube videos, channels & playlists")
(description
"This package provides tools to search for @code{YouTube} videos,
diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm
index 1c98d8828c..689b91551b 100644
--- a/gnu/packages/vpn.scm
+++ b/gnu/packages/vpn.scm
@@ -942,8 +942,8 @@ traversing network address translators (@dfn{NAT}s) and firewalls.")
ncurses
openvpn
procps
+ python-dialog
python-jinja2
- python-pythondialog
python-requests
which))
(synopsis "Command-line client for ProtonVPN")