From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marius Bakke Subject: Updating librsvg Date: Wed, 09 May 2018 18:41:37 +0200 Message-ID: <87sh70g4se.fsf@fastmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56433) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGS9v-0004MG-EP for guix-devel@gnu.org; Wed, 09 May 2018 12:41:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGS9s-0005mq-QJ for guix-devel@gnu.org; Wed, 09 May 2018 12:41:43 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:35491) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fGS9s-0005lU-F5 for guix-devel@gnu.org; Wed, 09 May 2018 12:41:40 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id D853322931 for ; Wed, 9 May 2018 12:41:39 -0400 (EDT) Received: from localhost (95.92-221-151.customer.lyse.net [92.221.151.95]) by mail.messagingengine.com (Postfix) with ESMTPA id 58037E4076 for ; Wed, 9 May 2018 12:41:39 -0400 (EDT) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain 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: . * 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). --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=librsvg.scm (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 --=-=-= Content-Type: text/plain 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? --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlrzJMEACgkQoqBt8qM6 VPpHyAf/RQ/dmkvm7SVPR3yCJB+M7O6RA3fMtALLOmHY1cmjeaHDzcCYqkMVl4IU VjJOPq7VWDW8JIBL2kgM4MQk86RmjXyRK/1J9ftqnOzPZxQuiUiRLORT0IvGjuC/ LkwTFl8zfN5lGCEsNuiQk+rmSi8oBscHaTFUvthiqjyrJ9bmB1Z0wQKU1V7V0YTg MI8sLHzoj1nYx1QLnDqAoDPZ/N94b/b8coHlJpNfTVvIIPdIgghE3gBSNJMWkhHm xNAyBRmfVMaxNhtWlhfBodwDRwMZcby7YfnEGvBg1aXdrYN805vqkgdvP+blxJJx ioBh1TeDZfB32zj8WoVLOBbdb9180g== =SBBg -----END PGP SIGNATURE----- --==-=-=--