gnu: python-dbusmock: Fix and improve packages.

* gnu/packages/python-xyz.scm
(python-dbusmock-check-phase): Drop variable.
(python-dbusmock-patch-paths-phase): New variable.
(python-dbusmock): Refactor phases accordingly.
(python-dbusmock-minimal): Update to 0.37.2.
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[native-inputs]: Add python-setuptools.
[arguments]<#:phases>: Drop 'check phase replacement.  Refactor
'patch-paths phase.
[native-inputs]: Add python-setuptools.

Change-Id: Id32561d8d1b15f96726a6c4099d64c6937dad506
Reviewed-by: Nguyễn Gia Phong <cnx@loang.net>
Reviewed-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
This commit is contained in:
Nicolas Graves 2026-01-19 02:57:28 +01:00 committed by Sharlatan Hellseher
parent bfb25e3a91
commit 1a204fe84b
No known key found for this signature in database
GPG key ID: 76D727BFF62CD2B5

View file

@ -28675,24 +28675,15 @@ Its algorithms are based on the kakasi library, which is written in C.")
implementation of the D-Bus protocol.")
(license license:expat)))
(define python-dbusmock-check-phase
#~(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(match (primitive-fork)
(0 ;child process
(execlp "pytest" "pytest" "-vv"))
(pytest-pid
(let loop ()
;; Reap child processes; otherwise, python-dbusmock
;; would waste time polling for the dbus processes
;; it spawns to be reaped, in vain.
(match (waitpid WAIT_ANY)
((pid . status)
(if (= pid pytest-pid)
(unless (zero? status)
(error "`pytest' exited with status"
status))
(loop))))))))))
(define python-dbusmock-patch-paths-phase
#~(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_api.py"
(("/usr/bin/python3")
(which "python3")))
(substitute* "dbusmock/testcase.py"
(("\"dbus-daemon\"")
(object->string
(search-input-file inputs "/bin/dbus-daemon"))))))
(define-public python-dbusmock
(package
@ -28716,15 +28707,25 @@ implementation of the D-Bus protocol.")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_api.py"
(("/usr/bin/python3")
(which "python3")))
(substitute* "dbusmock/testcase.py"
(("\"dbus-daemon\"")
(object->string
(search-input-file inputs "/bin/dbus-daemon"))))))
(replace 'check #$python-dbusmock-check-phase))))
#$python-dbusmock-patch-paths-phase)
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(match (primitive-fork)
(0 ;child process
(execlp "pytest" "pytest" "-vv"))
(pytest-pid
(let loop ()
;; Reap child processes; otherwise, python-dbusmock
;; would waste time polling for the dbus processes
;; it spawns to be reaped, in vain.
(match (waitpid WAIT_ANY)
((pid . status)
(if (= pid pytest-pid)
(unless (zero? status)
(error "`pytest' exited with status"
status))
(loop)))))))))))))
(native-inputs (list python-pytest python-setuptools upower which))
(inputs (list dbus))
(propagated-inputs (list python-dbus-python python-pygobject))
@ -28742,41 +28743,24 @@ what you expect in your tests.")
(package
(inherit python-dbusmock)
(name "python-dbusmock-minimal")
(version "0.30.0")
(version "0.37.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-dbusmock" version))
(method git-fetch)
(uri (git-reference
(url "https://github.com/martinpitt/python-dbusmock")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1hanz6x76jq66ypdirga5h15zjs67kwysl6rmsf0i22dbdqrxdfv"))))
(build-system python-build-system)
(base32 "1a70gi3qgjblg9z9id9z0fy3vlhb1cqbmmny14bqhv79qqskspj3"))))
(arguments
(list
#:tests? #f
#:modules `((guix build python-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_api.py"
(("/usr/bin/python3")
(which "python3")))
(substitute* "tests/test_code.py"
(("/bin/bash")
(which "bash")))
(substitute* "dbusmock/testcase.py"
(("'dbus-daemon'")
(object->string
(search-input-file inputs "/bin/dbus-daemon"))))))
(replace 'check #$python-dbusmock-check-phase))))
(native-inputs (list which))
(inputs
(list dbus))
(propagated-inputs
(list python-dbus-python python-pygobject))
#$python-dbusmock-patch-paths-phase))))
(native-inputs (list python-setuptools which))
(properties '((hidden? . #t)))))
(define-public python-jsonplus