diff mbox series

[bug#57429,1/3] gnu: piper: Fix runtime.

Message ID 15561be9725d1c50253afb227acf25e285aa3dfe.1661501683.git.tobias.kortkamp@gmail.com
State Accepted
Headers show
Series gnu: piper: Fix runtime and update to 0.7 | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git-branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Tobias Kortkamp Aug. 26, 2022, 2:37 p.m. UTC
The wrapper script does not add piper's own Python files to
GUIX_PYTHONPATH. Copy the approach from gtg to solve this.

Traceback (most recent call last):
  File "/gnu/store/9fq062kva6ffidilg0qn8liqn6a8yf1w-piper-0.6/bin/.piper-real", line 36, in <module>
    from piper.application import Application
ModuleNotFoundError: No module named 'piper'

* gnu/packages/gnome.scm (piper): Fix runtime.
---
 gnu/packages/gnome.scm | 39 +++++++++++++++++++--------------------
 1 file changed, 19 insertions(+), 20 deletions(-)
diff mbox series

Patch

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ae46e55c51..fe822eb035 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -12122,26 +12122,25 @@  (define-public piper
            python-pycairo
            python-pygobject))
     (arguments
-     `(#:imported-modules ((guix build python-build-system)
-                           ,@%meson-build-system-modules)
-       #:modules (((guix build python-build-system) #:prefix python:)
-                  (guix build meson-build-system)
-                  (guix build utils))
-       #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'dont-update-gtk-icon-cache
-           (lambda _
-             (substitute* "meson.build"
-               (("meson.add_install_script('meson_install.sh')") ""))))
-         ;; TODO: Switch to wrap-script when it is fixed.
-         (add-after 'install 'wrap-python
-           (assoc-ref python:%standard-phases 'wrap))
-         (add-after 'wrap-python 'wrap
-           (lambda* (#:key outputs #:allow-other-keys)
-             (wrap-program
-                 (string-append (assoc-ref outputs "out" )"/bin/piper")
-               `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
+     (list #:glib-or-gtk? #t
+           #:tests? #f ;; The flake8 test fails trying to validate piper.in as code.
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'dont-update-gtk-icon-cache
+                 (lambda _
+                   (substitute* "meson.build"
+                     (("meson.add_install_script('meson_install.sh')") ""))))
+               (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+                 (lambda _
+                   (let ((pylib (string-append #$output
+                                               "/lib/python"
+                                               #$(version-major+minor
+                                                  (package-version python))
+                                               "/site-packages")))
+                     (wrap-program
+                         (string-append #$output "/bin/piper")
+                       `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
+                       `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
     (home-page "https://github.com/libratbag/piper/")
     (synopsis "Configure bindings and LEDs on gaming mice")
     (description "Piper is a GTK+ application for configuring gaming mice with