guix-patches
[Top][All Lists]
Advanced

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

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


From: Christopher Baines
Subject: 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


reply via email to

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