From 0933b6b86b8e3a1cb6c82c1cce51974dff2a5205 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 19 Feb 2024 21:11:04 -0500 Subject: [PATCH] gnu: inkscape: Fix Python support. * 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.