Subject: [bug#68813] [core-updates PATCH 19/20] gnu: inkscape: Fix Python support.

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 22 Feb 2024 11:10:18 -0500

* gnu/packages/inkscape.scm (inkscape/stable)
[phases]: Wrap with PATH and GI_TYPELIB_PATH.
[inputs]: Sort inputs.  Add python-appdirs, python-cssselect, python-pygobject
and python-requests.
(inkscape) [inputs]: Do not append python-cssselect.

Fixes: https://issues.guix.gnu.org/63938
Change-Id: I90a39a04a35dbcafe413726107d100c78d173fd0
---

 gnu/packages/inkscape.scm | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 5449bf8d92..aa33a0a4a3 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -245,14 +245,19 @@ (define-public inkscape/stable
              (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
            (add-after 'install 'wrap-program
              ;; Ensure Python is available at runtime.
-             (lambda _
+             (lambda* (#:key inputs #:allow-other-keys)
                (wrap-program (string-append #$output "/bin/inkscape")
+                 `("PATH" prefix
+                   (,(dirname (search-input-file inputs "bin/python"))))
                  `("GUIX_PYTHONPATH" prefix
                    (,(getenv "GUIX_PYTHONPATH")))
                  ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Inkscape to load
                  ;; its own icons in pure environments.
                  `("GDK_PIXBUF_MODULE_FILE" =
-                   (,(getenv "GDK_PIXBUF_MODULE_FILE")))))))))
+                   (,(getenv "GDK_PIXBUF_MODULE_FILE")))
+                 ;; Ensure GObject Introspection typelibs are found.
+                 `("GI_TYPELIB_PATH" ":" prefix
+                   (,(getenv "GI_TYPELIB_PATH")))))))))
      (inputs
       (list (librsvg-for-system)        ;for the pixbuf loader
             autotrace
@@ -279,9 +284,16 @@ (define-public inkscape/stable
             poppler
             popt
             potrace
+            ;; These Python dependencies are used by the Inkscape extension
+            ;; management system.  To verify that it is working, visit the
+            ;; Extensions -> Manage Extensions... menu.
+            python-appdirs
+            python-cssselect
             python-lxml
             python-numpy
+            python-pygobject
             python-pyserial
+            python-requests
             python-scour
             python-wrapper
             readline))
@@ -337,8 +349,7 @@ (define-public inkscape
                   `("GDK_PIXBUF_MODULE_FILE" =
                     (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))))
     (inputs (modify-inputs (package-inputs inkscape/stable)
-              (append imagemagick         ;for libMagickCore and libMagickWand
-                      python-cssselect))) ;to render qrcode
+              (append imagemagick)))    ;for libMagickCore and libMagickWand
     (native-inputs
      (modify-inputs (package-native-inputs inkscape/stable)
                     ;; Only use 1 imagemagick across the package build.
-- 
2.41.0