guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: core-updates: Emacs is only supported on x86_64-linux?


From: Christopher Baines
Subject: Re: core-updates: Emacs is only supported on x86_64-linux?
Date: Mon, 08 Mar 2021 22:33:00 +0000
User-agent: mu4e 1.4.15; emacs 27.1

Chris Marusich <cmmarusich@gmail.com> writes:

> Christopher Baines <mail@cbaines.net> writes:
>
>> Chris Marusich <cmmarusich@gmail.com> 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 <cmmarusich@gmail.com>
> 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

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]