emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#44170: closed ([PATCH] gnu: Correct Inkscape extension dependencies)


From: GNU bug Tracking System
Subject: bug#44170: closed ([PATCH] gnu: Correct Inkscape extension dependencies)
Date: Mon, 26 Oct 2020 15:57:02 +0000

Your message dated Mon, 26 Oct 2020 15:56:21 +0000
with message-id <87r1plyo9m.fsf@cbaines.net>
and subject line Re: [bug#44170] [PATCH] gnu: Correct Inkscape extension 
dependencies
has caused the debbugs.gnu.org bug report #44170,
regarding [PATCH] gnu: Correct Inkscape extension dependencies
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
44170: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=44170
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- 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

Attachment: signature.asc
Description: PGP signature


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]