Chris Marusich writes: > Christopher Baines writes: > >> Chris Marusich writes: >> >>> I've noticed that the emacs package only supports x86_64-linux, at least >>> on core-updates. Is that intended? >> >> The relevant commit [1] does mention the intent "Remove "i686-linux" >> from supported systems.", but that does differ from my interpretation of >> the change, which is only support x86_64-linux. >> >> 1: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=0ed631866cc0b7cece2b0a0b50e39b37ae91bb67 >> >> I've sent a patch that should add back "support" for other systems: >> >> https://issues.guix.gnu.org/46987 >> >> That's for master at least, I haven't looked in to what the situation is >> on core-updates. It's worth there checking if the build still fails. > > That patch doesn't apply on core-updates because that rust version > doesn't seem to exist any more on core-updates. However, the same > change applied to the right rust on core-updates does the trick, like > this: > > From e36c4cab40c5b97ffedc72acc586c0b560e7868e Mon Sep 17 00:00:00 2001 > From: Chris Marusich > Date: Sun, 7 Mar 2021 15:58:19 -0800 > Subject: [PATCH] gnu: rust: Make it "supported" on all systems but i686-linux. > > * gnu/packages/rust.scm (rust-1.30)[supported-systems]: Instead of hard-coding > this to just "x86_64-linux", calculate the supported systems by deleting > "i686-linux" from %supported-systems. > --- > gnu/packages/rust.scm | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm > index 70d19e089ab..98c553cb913 100644 > --- a/gnu/packages/rust.scm > +++ b/gnu/packages/rust.scm > @@ -448,7 +448,9 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\" > (search-path-specification > (variable "LIBRARY_PATH") > (files '("lib" "lib64"))))) > - (supported-systems '("x86_64-linux")) > + (supported-systems > + (delete "i686-linux" ; fails to build, see bug #35519 > + %supported-systems)) > (synopsis "Compiler for the Rust progamming language") > (description "Rust is a systems programming language that provides memory > safety and thread safety guarantees.") > -- > 2.26.2 > > > Both of these patches fix the issue for me. After applying either one > in isolation (on the wip-ppc64le branch, which was recently rebased onto > core-updates), the list of supported systems for the emacs package > correctly includes other systems, including powerpc64le-linux, and thus > the tests/guix-package.sh test passes on my powerpc64le-linux system. > > I think both of these patches are important and needed. The patch to > restore supported systems to the rust package is important because we > will want rust to build successfully on many systems. The patch to only > add gtk+ and librsvg inputs to emacs when the system is x86_64-linux is > important because it would be advantageous to be able to use emacs > without depending on rust on systems like powerpc64le-linux, where Rust > support may not be great yet. > > It's also convenient for me, personally, because I don't really want to > deal with Rust right now just to get Emacs working on powerpc64le-linux. > Once I can build a Guix release binary for powerpc64le-linux, then I > think I can start worrying more about Rust. I have taken the liberty of > applying these patches to the wip-ppc64le branch as-is, since they work > for me. I can remove them later if we don't like it. > > We will undoubtedly run into a similar situation with other packages > going forward, like Mark mentioned. Debian ran into this very issue > some time ago, and apparently it caused a bit of consternation: > > https://lwn.net/Articles/771355/ > > Apparently, powerpc64le-unknown-linux-gnu is a "Tier 2" Rust platform, > which I guess means it's pretty well supported, but not as well as "Tier > 1". I hope that we can get it all working, since librsvg is depended > upon in some way or another by about 2700 packages (about 17% of the > total Guix package collection). In the meantime, limiting the blast > radius as needed, like Mark suggested, seems like the right thing to do > until Rust support improves on other architectures. I've gone ahead and pushed the patch I proposed to master, I think it's a step forward. As you say, adapting the change for core-updates might be good as well. I want to check though if rust builds for i686-linux on core-updates, as the path is different to master, so it may well work. So yeah, once I've found out whether rust works on i686-linux on core-updates, I might make a change there too. Chris