guix-devel
[Top][All Lists]
Advanced

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

Updating librsvg


From: Marius Bakke
Subject: Updating librsvg
Date: Wed, 09 May 2018 18:41:37 +0200
User-agent: Notmuch/0.26.2 (https://notmuchmail.org) Emacs/25.3.1 (x86_64-pc-linux-gnu)

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?

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?

Attachment: signature.asc
Description: PGP signature


reply via email to

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