On Sun, Nov 14, 2021 at 06:27:02PM +0100, Liliana Marie Prikler wrote: > Hi, > > Am Sonntag, den 14.11.2021, 16:07 +0200 schrieb Efraim Flashner: > > librsvg is an input for emacs, gtk+@2 and gtk+@3. With the rust > > inputs this leads to (unknown) rust libraries causing the rebuild of > > over 3000 packages on core-updates-frozen. Rather than hunt them down > > I tracked down the packages which would have many rebuilds and added > > a copy of librsvg for them to use. > In my opinion, one of the selling points of Guix is that of > bootstrappability. I don't think adding big blobs to Emacs of all > things is a great way of delivering on that promise. I think we ought > to rather "invest" in alternatives to Rust and Rust-locked libraries or > make Rust packaging itself sane (if it can at all). > > I think librsvg is optional already and people who want to save on > compilation time can decide to replace it with e.g. GNU hello using the > --input option. In the similar case of mozjs, a replacement with > duktape is discussed on guix-devel, at least for polkit. It seems I was wrong about emacs; both emacs-minimal and emacs-no-x are built without librsvg. > As a temporary resolution to the rebuild issue, we could pin the > dependencies of librsvg to some specific versions and only bump them > when something awful happens. I'm not sure whether librsvg exposes any > of the Rust nastiness to its dependencies, ideally hoping that it would > not. I don't believe librsvg exposes any rust-y stuff. > WDYT? (ins)efraim@3900XT /tmp/librsvg-2.50.7$ ls vendor/ | wc -l 226 There are 226 crates that upstream bundles with their source. I suppose we could pare it down to about 200 by careful pruning but it's part of librsvg and not going away. (ins)efraim@3900XT ~/workspace/guix-core-updates$ git grep \,librsvg | wc -l 103 I'm suggesting that for gtk+@2 and gtk+@3 we use the bundled crates and for the other 101 packages we continue to use our current version, where we replace all of the bundled crates with our own copies, which get updated more often than librsvg does. With our current rust tooling I don't think it'd be that easy to find the ~226 crates that librsvg depends on, and it wouldn't be great to lock them due to librsvg being an input for gtk2/3. -- Efraim Flashner רנשלפ םירפא GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted