--- Begin Message ---
Subject: |
[PATCH] gnu: Correct Inkscape extension dependencies |
Date: |
Fri, 23 Oct 2020 10:32:35 +0000 |
Hi,
This patch is the result of the guix-devel discussion about Inkscape's errors
during import-export. Looks like the Inkscape package was not fully packaged
because the extensions' dependencies were not included. This patch includes
python-scour package, one missing dependency needed for optimized SVG exports
and adds the needed dependencies to the inkscape package.
Thanks!
>From 47b9eaec1715ad44e0156bf29362af47c103d02e Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Wed, 21 Oct 2020 19:08:20 +0200
Subject: [PATCH] gnu: Correct Inkscape extension dependencies
* gnu/packages/inkscape.scm (inkscape@1.0.1): Add dependencies.
* gnu/packages/python-xyz.scm (python-scour): New variable.
---
gnu/packages/inkscape.scm | 28 ++++++++++++++++++++++++++--
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
index 4ac3cf3966..85b4b5020f 100644
--- a/gnu/packages/inkscape.scm
+++ b/gnu/packages/inkscape.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -44,6 +45,7 @@
#:use-module (gnu packages pdf)
#:use-module (gnu packages popt)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
#:use-module (gnu packages xml)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages fontutils)
@@ -250,7 +252,25 @@ endif()~%~%"
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases
'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
- (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+ (add-after 'install 'wrap-program
+ ;; Ensure correct Python at runtime.
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (python (assoc-ref inputs "python"))
+ (file (string-append out "/bin/inkscape"))
+ (path (string-append
+ out
+ "/lib/python"
+ ,(version-major+minor
+ (package-version python))
+ "/site-packages:"
+ (getenv "PYTHONPATH"))))
+ (wrap-program file
+ `("PYTHONPATH" ":" prefix (,path))
+ `("PATH" ":" prefix
+ (,(string-append python "/bin:")))))
+ #t)))))
(inputs
`(("aspell" ,aspell)
("autotrace" ,autotrace)
@@ -283,7 +303,11 @@ endif()~%~%"
("googletest" ,googletest)
("perl" ,perl)
("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)))
+ ("python" ,python-wrapper)
+ ("python-scour" ,python-scour)
+ ("python-pyserial" ,python-pyserial)
+ ("python-numpy" ,python-numpy)
+ ("python-lxml" ,python-lxml)))
(home-page "https://inkscape.org/")
(synopsis "Vector graphics editor")
(description "Inkscape is a vector graphics editor. What sets Inkscape
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 575ce40ac8..fe2e77a338 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -88,6 +88,7 @@
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
+;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22524,3 +22525,28 @@ applications with variable CPU loads).")
(define-public python2-parallel
(package-with-python2 python-parallel))
+
+(define-public python-scour
+ (package
+ (name "python-scour")
+ (version "038.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/scour-project/scour")
+ (commit
+ (string-append "v" version))))
+ (sha256
+ (base32 "0rgiypb9ig8x4rl3hfzpy7kwnx1q3064nvlrv4fk0dnp84girn0v"))))
+ (propagated-inputs
+ `(("python-six" ,python-six)))
+ (build-system python-build-system)
+ (home-page "https://github.com/scour-project/scour")
+ (synopsis "Scour is an SVG optimizer/cleaner written in Python")
+ (description "The goal of Scour is to output a file that renderes
+identically at a fraction of the size by removing a lot of redundant
+information created by most SVG editors. Optimization options are typically
+lossless but can be tweaked for more agressive cleaning.")
+ (license license:asl2.0)))
--
2.28.0
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#44170] [PATCH] gnu: Correct Inkscape extension dependencies |
Date: |
Mon, 26 Oct 2020 15:56:21 +0000 |
User-agent: |
mu4e 1.4.13; emacs 27.1 |
Ekaitz Zarraga <ekaitz@elenq.tech> writes:
> Hi Christopher,
>
> Thanks for elaborating further
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>> → export
>> PATH="/gnu/store/11l2qmzfgsp7k345mv6x1vn64q8330kw-python-wrapper-3.8.2/bin:${PATH:+:}$PATH"
>>
>> → echo $PATH
>> /gnu/store/11l2qmzfgsp7k345mv6x1vn64q8330kw-python-wrapper-3.8.2/bin::/gnu/store/hgh67ilwsbx6v2irc7vgrnv354cv4h8a-profile/bin
>>
>> Note the double colon, I don't think it's a problem in terms of
>> functionality, but just in case someone copies this from inkscape as an
>> example, it would be good not to do the same here.
>>
>> Note, there's no need to fix this in kicad. If you do want to, I'd
>> submit a separate commit under a seperate bug.
>>
>
> I see! thanks!
>
>> > wasn't an input before? is it just an error?
>>
>> Well, error is a strong word, in this case, given the build system
>> doesn't support building for a non-native architecture, it's sort of a
>> non-issue. But I would view it as something you're fixing in addition to
>> the changes you're making.
>>
>> It didn't (and still doesn't to some extent) matter that the Python
>> stuff was/is in native-inputs, because cross building this package is
>> impossible because of the build system.
>>
>> However, in case the build system changes to support this, to be
>> consistent with other package definitions, and to be consistent with the
>> general rule that you don't reference native-inputs from the outputs (at
>> least I think that's a rule or at least strong convention), having the
>> Python stuff in inputs is better. Even if the package builds just the
>> same.
>
>
> I see what you mean, great.
> I just moved python-wrapper to inputs and separated the commit so now
> it's just inkscape's changes.
>
> Thanks for your patience!
You're welcome :) I made some tweaks (described below) and pushed this
as 24b233d45c2a04a7a011397234b29fd5d7133110.
> From 5c3043aea4d98823089b8438bb4573d32e28d899 Mon Sep 17 00:00:00 2001
> From: Ekaitz Zarraga <ekaitz@elenq.tech>
> Date: Sun, 25 Oct 2020 13:04:15 +0100
> Subject: [PATCH] gnu: Correct Inkscape extension dependencies
>
> * gnu/packages/inkscape.scm (inkscape@1.0.1): Add dependencies.
I rewrote the commit message to the following, I think this is more in
line with the style.
gnu: inkscape: Correct extension dependencies.
* gnu/packages/inkscape.scm (inkscape-1.0)[arguments]: Add wrap-program phase.
[inputs]: Move python-wrapper to inputs, and add several python libraries.
[native-inputs]: Remove python-wrapper, as it has moved to inputs.
> ---
> gnu/packages/inkscape.scm | 30 ++++++++++++++++++++++++++----
> 1 file changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
> index 4ac3cf3966..66756b70a6 100644
> --- a/gnu/packages/inkscape.scm
> +++ b/gnu/packages/inkscape.scm
> @@ -6,6 +6,7 @@
> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
> ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
> ;;; Copyright © 2020 Boris A. Dekshteyn <boris.dekshteyn@gmail.com>
> +;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -44,6 +45,7 @@
> #:use-module (gnu packages pdf)
> #:use-module (gnu packages popt)
> #:use-module (gnu packages python)
> + #:use-module (gnu packages python-xyz)
> #:use-module (gnu packages xml)
> #:use-module (gnu packages ghostscript)
> #:use-module (gnu packages fontutils)
> @@ -250,7 +252,23 @@ endif()~%~%"
> (add-after 'install 'glib-or-gtk-compile-schemas
> (assoc-ref glib-or-gtk:%standard-phases
> 'glib-or-gtk-compile-schemas))
> (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
> - (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
> + (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
> + (add-after 'install 'wrap-program
> + ;; Ensure correct Python at runtime.
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (python (assoc-ref inputs "python"))
> + (file (string-append out "/bin/inkscape"))
> + (path (string-append
> + out
> + "/lib/python"
> + ,(version-major+minor
> + (package-version python))
> + "/site-packages:"
> + (getenv "PYTHONPATH"))))
> + (wrap-program file
> + `("PYTHONPATH" ":" prefix (,path))))
> + #t)))))
As before, because inkscape's lib doesn't contain anything Python
related, I just wrapped with the PYTHONPATH.
> (inputs
> `(("aspell" ,aspell)
> ("autotrace" ,autotrace)
> @@ -275,15 +293,19 @@ endif()~%~%"
> ("popt" ,popt)
> ("potrace" ,potrace)
> ("lcms" ,lcms)
> - ("boost" ,boost)))
> + ("boost" ,boost)
> + ("python" ,python-wrapper)
> + ("python-scour" ,python-scour)
> + ("python-pyserial" ,python-pyserial)
> + ("python-numpy" ,python-numpy)
> + ("python-lxml" ,python-lxml)))
> (native-inputs
> `(("imagemagick" ,imagemagick) ;for tests
> ("intltool" ,intltool)
> ("glib" ,glib "bin")
> ("googletest" ,googletest)
> ("perl" ,perl)
> - ("pkg-config" ,pkg-config)
> - ("python" ,python-wrapper)))
> + ("pkg-config" ,pkg-config)))
> (home-page "https://inkscape.org/")
> (synopsis "Vector graphics editor")
> (description "Inkscape is a vector graphics editor. What sets Inkscape
signature.asc
Description: PGP signature
--- End Message ---