guix-devel
[Top][All Lists]
Advanced

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

Re: Updating librsvg


From: Nils Gillmann
Subject: Re: Updating librsvg
Date: Wed, 9 May 2018 18:28:39 +0000

Marius Bakke transcribed 5.2K bytes:
> Hello!
> 
> Our current version of librsvg is officially unmaintained, and the
> latest version requires Rust.
> 
> I've succeeded in making the latest version build, but there are a
> couple of problems.
> 
> * Module dependency cycle: <https://bugs.gnu.org/31392>.
> * librsvg requires Cairo 1.15, which is not a "stable" release branch.
> * It bundles 59 Rust libraries.
> 
> Here are the Rust libs:
> 
> aho-corasick/                bitflags/
> bitflags-0.9.1/              cairo-rs/
> cairo-sys-rs/                cssparser/
> cssparser-macros/            c_vec/
> downcast-rs/                 dtoa/
> dtoa-short/                  either/
> float-cmp/                   fuchsia-zircon/
> fuchsia-zircon-sys/          glib/
> glib-sys/                    gobject-sys/
> itertools/                   itoa/
> lazy_static/                 libc/
> matches/                     memchr/
> num-traits/                  pango/
> pangocairo/                  pangocairo-sys/
> pango-sys/                   phf/
> phf_codegen/                 phf_generator/
> phf_shared/                  pkg-config/
> procedural-masquerade/       proc-macro2/
> quote/                       quote-0.3.15/
> rand/                        rand-0.3.22/
> regex/                       regex-syntax/
> siphasher/                   smallvec/
> syn/                         syn-0.11.11/
> synom/                       thread_local/
> ucd-util/                    unicode-xid/
> unicode-xid-0.0.4/           unreachable/
> utf8-ranges/                 void/
> winapi/                      winapi-0.2.8/
> winapi-i686-pc-windows-gnu/  winapi-x86_64-pc-windows-gnu/
> 
> Have anyone packaged any of these?  Or made a Rust importer?

I think if Chris has the same amount of crates as I have, we have half
of them ready to be packaged. The remaining issues with the rust build-system
felt so obvious (since I have the email on guix-devel bookmarked) that I never
reported the list of things to be fixed, but I would not try anything above
0 dependency crates before crates can build properly.

I'll try and open tickets tomorrow.


> Here is a package definition for librsvg (use with guix package -f).
> 

> (use-modules (guix packages)
>              (guix download)
>              (guix utils)
>              (gnu packages)
>              (gnu packages gnome)
>              (gnu packages gtk)
>              (gnu packages rust)
>              (srfi srfi-1))
> 
> ;; XXX: Cairo 1.15 is a development branch, yet recent librsvg depends on it.
> (define-public cairo-1.15
>   (package
>     (inherit cairo)
>     (version "1.15.12")
>     (source (origin
>               (method url-fetch)
>               (uri (string-append "https://cairographics.org/snapshots/cairo-";
>                                   version ".tar.xz"))
>               (sha256
>                (base32
>                 "1jcl0mnqq6j2xip8p506g2cj54sfycm339rrd3p4g2jljhdhh8vn"))
>               ))))
> 
> (define pango-for-librsvg
>   (package
>     (inherit pango)
>     (propagated-inputs
>      `(("cairo" ,cairo-1.15)
>        ,@(alist-delete "cairo" (package-propagated-inputs pango))))))
> 
> (define-public librsvg-2.42
>   (package
>     (inherit librsvg)
>     (name "librsvg")
>     (version "2.42.4")
>     (source (origin
>               (method url-fetch)
>               (uri (string-append "mirror://gnome/sources/" name "/"
>                                   (version-major+minor version)  "/"
>                                   name "-" version ".tar.xz"))
>               (sha256
>                (base32
>                 "1qsd0j7s97ab5fzy5b5gix5b7hbw57cr46ia8pkcrr4ylsi80li2"))))
>     (native-inputs
>      `(("cargo" ,rust "cargo")
>        ("rust" ,rust)
>        ,@(package-native-inputs librsvg)))
>     (inputs
>      `(("pango" ,pango-for-librsvg)
>        ,@(alist-delete "pango" (package-inputs librsvg))))
>     (propagated-inputs
>      `(("cairo" ,cairo-1.15)
>        ,@(alist-delete "cairo" (package-propagated-inputs librsvg))))
>     (arguments
>      (substitute-keyword-arguments (package-arguments librsvg)
>        ((#:phases phases)
>         `(modify-phases ,phases
>            (add-after 'remove-failing-tests 'disable-yet-another-test
>              (lambda _
>                ;; FIXME: This fails since the update to 2.42.4.
>                (delete-file 
> "tests/fixtures/reftests/svg1.1/coords-viewattr-02-b.svg")
>                #t))
>            ;; XXX: Shebang patching causes Cargo to error out due to checksum
>            ;; mismatches.  Luckily we don't need it until the check phase.
>            ;; This can be removed once all vendored libs are in Guix proper.
>            (delete 'patch-source-shebangs)
>            (delete 'patch-generated-file-shebangs)
>            (add-before 'check 'patch-shebangs
>              (assoc-ref %standard-phases 'patch-source-shebangs))))))))
> 
> librsvg-2.42

> 
> Feedback welcome.  I'd like to get this into the next 'staging' cycle
> and will attempt to package some of the Rust libs separately.
> 
> Propagating this Cairo variant is unfortunate however, perhaps we should
> make it a regular input for now?






reply via email to

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