guix-devel
[Top][All Lists]
Advanced

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

Re: Inkscape 1.0 upgrade


From: Maxim Cournoyer
Subject: Re: Inkscape 1.0 upgrade
Date: Thu, 07 May 2020 00:39:24 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello!

It seems we're now at least 3 people to have worked toward Inkscape 1.0
:-).  I've posted a patch series adding a Inkscape 1.0 and various other
dependencies at http://bugs.gnu.org/41118, if you'd like to compare.

Nicolò Balzarotti <address@hidden> writes:

> Hi, I wanted the same. My package is working but I cannot replace the
> current inkscape as there's a dependency loop, so I called it
> inkscape-1.0.

The loop was caused by the gtk-doc package part of gdl.  I've worked
around this by creating a gdl-minimal package, which doesn't include
such input.

> But in today's blogpost Ludo installed inkscape 1.0, so
> maybe he already solved it.  Here's my working definition btw, if you
> want to submit it please go ahead :)

He's confirmed that this was aspirational.  The version seen in the
derivation output is what is in master :-).

> Nicolò
> [1] https://guix.gnu.org/blog/2020/grafts-continued/
>
> (define-public libgdl
>   (package
>     (name "libgdl")
>     (version "3.34.0")
>     (source (origin
>             (method url-fetch)
>             (uri (string-append "mirror://gnome/sources/gdl/"
>                            (version-major+minor version)  "/gdl-"
>                          version ".tar.xz"))
>             (sha256
>              (base32
>               "00ldva6wg6s4wlxmisiqzyz8ihsprra7sninx2rlqk6frpq312w5"))))
>     (build-system gnu-build-system)
>     (native-inputs
>      `(("automake" ,automake)
>        ("autoconf" ,autoconf)
>        ("intltool" ,intltool)
>        ("libtool" ,libtool)
>        ("pkg-config" ,pkg-config)
>        ("gtk-doc" ,gtk-doc)
>        ("gtk+" ,gtk+)

gtk+ should be propagated in this case, because it is marked as
"Required" in the pkg-config gdl-3.0.pc file.

>        ("which" ,which)))
>     (inputs
>      `(
>        ("libxml2" ,libxml2)
>        ;; ("boost" ,boost)
>        ))
>     ;; (native-inputs
>     ;;  `(("intltool" ,intltool)
>     ;;    ("glib" ,glib "bin")
>     ;;    ("perl" ,perl)
>     ;;    ("pkg-config" ,pkg-config)))
>     ;; (arguments
>     ;;  `(#:phases
>     ;;    (modify-phases %standard-phases
>     ;;         (add-before 'bootstrap 'disable-maintainer-mode
>     ;;           (lambda _
>     ;;             (substitute* "autogen.sh"
>     ;;               (("/bin/sh") (which "sh")))
>     ;;             #t))
>     ;;         (replace 'bootstrap
>     ;;           (lambda _
>     ;;             (system* "./autogen.sh")
>     ;;             (substitute* "./configure"
>     ;;               (("/bin/sh") (which "sh")))
>     ;;             (invoke "./autogen.sh")

I remember struggling with this as well, and found some neat example
somewhere else in our package collection that causes the gnome-common
autogen.sh to *not* run configure itself.  This is done by setting
NOCONFIGURE before invoking autogen.sh.

>     ;;             #t)))))
>     (home-page "https://inkscape.org/";)
>     (synopsis "Vector graphics editor")
>     (description "Inkscape is a vector graphics editor.  What sets Inkscape
> apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,
> as the native format.")
>     (license license:gpl2+)))

It seems this part was not finished :-)

>
> (define-public inkscape-1.0
>   (package
>     (name "inkscape")
>     (version "1.0")
>     (source (origin
>             (method git-fetch)
>             (uri (git-reference
>                   (url "https://gitlab.com/inkscape/inkscape.git";)
>                   (commit "INKSCAPE_1_0")
>                   (recursive? #t)))

When using recursive, this usually means there are bundled libraries,
which calls for a justification or FIXME comment.

>             ;; (patches (search-patches "inkscape-poppler-0.76.patch"))

This patch is no longer needed

>             (sha256
>              (base32
>               "119j1yhjgjh49dhlxzy9xmprkgw2d8q8ypvr23wac0ppv2kklp57"))))
>     (build-system cmake-build-system)
>     (inputs
>      `(("aspell" ,aspell)
>        ("double-conversion" ,double-conversion)
>        ("gtkmm" ,gtkmm)
>        ("gtk" ,gtk+)
>        ("gsl" ,gsl)
>        ("poppler" ,poppler)
>        ("libpng" ,libpng)
>        ("libxml2" ,libxml2)
>        ("libxslt" ,libxslt)
>        ("libgc" ,libgc)
>        ("libgdl" ,libgdl)
>        ("libjpeg" ,libjpeg)

I think libjpeg is deprecated in favor of libjpeg-turbo, at least in
core-updates.

>        ("libsoup" ,libsoup)

I've used libsoup-minimal here, I don't remember if there was a cycle
problem otherwise.

>        ("libvisio" ,libvisio)
>        ("libwpg" ,libwpg)
>        ("libwpd" ,libwpd)
>        ("libcdr" ,libcdr)
>        ("freetype" ,freetype)
>        ("gtkspell3" ,gtkspell3)

I've missed the gtkspell3, libcdr, libwpd, libwpg and libvisio optional
dependencies.  I'll add them, as we usually try to support as much
features as we can in the Guix packages.  Nice!

>        ("imagemagick" ,imagemagick)
>        ("popt" ,popt)
>        ("potrace" ,potrace)
>        ("python" ,python-3)
>        ("lcms" ,lcms)
>        ("boost" ,boost)))
>     (native-inputs
>      `(("intltool" ,intltool)
>        ("glib" ,glib "bin")
>        ("googletest" ,googletest)
>        ("perl" ,perl)
>        ("pkg-config" ,pkg-config)))
>     (arguments
>      ;; RE-enable
>      `(#:tests? #f

Next time, please eave a comment saying why the test suite is disabled.  I've 
managed to
have the test run in my series; it was a bit of a pain :-).

>        ;; Defaults to RelWithDebInfo
>        #:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
>        #:phases
>        (modify-phases %standard-phases
>        ;; (add-after 'unpack 'patch-icon-cache-generator
>        ;;   (lambda _
>        ;;     (substitute* "share/icons/application/CMakeLists.txt"
>        ;;       (("gtk-update-icon-cache") "true"))
>        ;;     #t))
>        (add-before 'configure 'dont-use-system-includes
>          (lambda _
>            ;; Don't add redundant -isystem includes which confuses GCC7.
>            (substitute* "CMakeScripts/DefineDependsandFlags.cmake"
>              (("include_directories\\(SYSTEM")
>               "include_directories("))
>            #t))
>        (add-before 'configure 'dont-use-werror-format
>          (lambda _
>            ;; Don't add redundant -isystem includes which confuses GCC7.
>            (substitute* "CMakeScripts/DefineDependsandFlags.cmake"
>              (("-Werror=format\"") "\"")
>              (("-Werror=format-security\"") "\""))
>            #t)))))

These two new phases are not needed when working on core-updates (which
will soon be merged into master), as the CPATH problem is resolved there
(we're now back to using C_INCLUDE_PATH and CPLUS_INCLUDE_PATH).

>     (home-page "https://inkscape.org/";)
>     (synopsis "Vector graphics editor")
>     (description "Inkscape is a vector graphics editor.  What sets Inkscape
> apart is its use of Scalable Vector Graphics (SVG), an XML-based W3C standard,
> as the native format.")
>     (license license:gpl2+)))
>
> Ekaitz Zarraga <address@hidden> writes:

Thanks for sharing this patch!

Maxim



reply via email to

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