From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nils Gillmann Subject: Re: Updating librsvg Date: Wed, 9 May 2018 18:28:39 +0000 Message-ID: <20180509182839.cqeadst4nd4oupfv@abyayala> References: <87sh70g4se.fsf@fastmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:33012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGTp0-0007Pt-B6 for guix-devel@gnu.org; Wed, 09 May 2018 14:28:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGToy-0002BN-PE for guix-devel@gnu.org; Wed, 09 May 2018 14:28:14 -0400 Received: from conspiracy.of.n0.is ([2a01:4f8:1c0c:7ad0::1]:53584) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fGToy-0002AP-Et for guix-devel@gnu.org; Wed, 09 May 2018 14:28:12 -0400 Content-Disposition: inline In-Reply-To: <87sh70g4se.fsf@fastmail.com> 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: Marius Bakke Cc: guix-devel@gnu.org 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: . > * 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?