unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Updating librsvg
@ 2018-05-09 16:41 Marius Bakke
  2018-05-09 17:14 ` Pierre Neidhardt
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Marius Bakke @ 2018-05-09 16:41 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 1683 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?

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


[-- Attachment #1.2: librsvg.scm --]
[-- Type: text/plain, Size: 2582 bytes --]

(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

[-- Attachment #1.3: Type: text/plain, Size: 240 bytes --]


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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-05-10 16:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-09 16:41 Updating librsvg Marius Bakke
2018-05-09 17:14 ` Pierre Neidhardt
2018-05-10 12:00   ` Marius Bakke
2018-05-09 17:38 ` Ricardo Wurmus
2018-05-10 12:01   ` Marius Bakke
2018-05-10 16:53     ` Mark H Weaver
2018-05-09 18:23 ` Danny Milosavljevic
2018-05-09 18:28 ` Nils Gillmann

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).