Subject: [bug#61464] [PATCH 2/2] gnu: python-capablerobot-usbhub: Update to 0.5.0.

From: Sharlatan Hellseher <[email-masked]>
Date: Sun, 12 Feb 2023 23:49:57 +0000

* gnu/packages/libusb.scm (python-capablerobot-usbhub): Fix build and update to 0.5.0.
  [source]: Use git checkout which allows to pass build the package.
  [build-system]: Use pyproject-build-system.
  [arguments]{tests}: Disable them as not provided.
  [phases]{use-poetry-core}: New phase.
  [phases]{install-udev-rules}: Remove trailing #t from lambda.
  [native-inputs]: Add python-poetry-core.
  [propagated-inputs]: python-click -> python-click-7, python-pyyaml -> python-pyyaml-5.
---
 gnu/packages/libusb.scm | 34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm
index d46f1f8cc2..468f7b1753 100644
--- a/gnu/packages/libusb.scm
+++ b/gnu/packages/libusb.scm
@@ -12,6 +12,7 @@
 ;;; Copyright © 2020 Christopher Howard <[email-masked]>
 ;;; Copyright © 2021 Guillaume Le Vaillant <[email-masked]>
 ;;; Copyright © 2022 Jacob Hrbek <[email-masked]>
+;;; Copyright © 2023 Sharlatan Hellseher <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +41,7 @@ (define-module (gnu packages libusb)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system glib-or-gtk)
+  #:use-module (guix build-system pyproject)
   #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
@@ -51,6 +53,7 @@ (define-module (gnu packages libusb)
   #:use-module (gnu packages mp3)
   #: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 readline)
   #:use-module (gnu packages tls)
@@ -310,18 +313,28 @@ (define-public python-pyusb
 (define-public python-capablerobot-usbhub
   (package
     (name "python-capablerobot-usbhub")
-    (version "0.2.7")
+    (version "0.5.0")
     (source
      (origin
-       (method url-fetch)
-       (uri (pypi-uri "capablerobot_usbhub" version))
+       ;; PyPI tarball fails to build.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/CapableRobot/CapableRobot_USBHub_Driver")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1priic4iq2vn1rc711kzxwhxrwa508rkxrr193qdz2lw26kdhvix"))))
-    (build-system python-build-system)
+        (base32 "1nfd12612z9a9hby5dxg7lfqw5jcv3wcyqqagbg5izragni646mc"))))
+    (build-system pyproject-build-system)
     (arguments
-     `(#:phases
+     `(#:tests? #f ; No tests provided.
+       #: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"))))
          (add-after 'install 'install-udev-rules
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
@@ -329,10 +342,11 @@ (define-public python-capablerobot-usbhub
                (copy-file "50-capablerobot-usbhub.rules"
                           (string-append out
                                          "/lib/udev/rules.d/"
-                                         "50-capablerobot-usbhub.rules"))
-               #t))))))
+                                         "50-capablerobot-usbhub.rules"))))))))
+    (native-inputs
+     (list python-poetry-core))
     (propagated-inputs
-     (list python-click python-construct python-pyusb python-pyyaml))
+     (list python-click-7 python-construct python-pyusb python-pyyaml-5))
     (home-page
      "https://github.com/CapableRobot/CapableRobot_USBHub_Driver")
     (synopsis
-- 
2.39.1