guix-devel
[Top][All Lists]
Advanced

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

Re: Desktops on non-x86_64 systems


From: Maxim Cournoyer
Subject: Re: Desktops on non-x86_64 systems
Date: Sat, 27 Nov 2021 22:05:27 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hello,

Ricardo Wurmus <rekado@elephly.net> writes:

> Ludovic Courtès <ludo@gnu.org> writes:
>
>> As you may know, librsvg 2.50 on ‘core-updates-frozen’ depends on
>> Rust.
>> However mrustc, which we use to build the first Rust compiler,
>> currently
>> only works on x86_64.  This means that ~28% of the packages on
>> ‘core-updates-frozen’ are x86_64-only (vs. ~15% on ‘master’).
>>
>> Among these, the most problematic missing packages are desktop
>> environments: Xfce, GNOME, etc.  So far our “pledge”, encoded in
>> ‘etc/release-manifest.scm’, was that all the desktop environments
>> would
>> be available on x86_64 and i686, so that one could install Guix
>> System
>> just the same way on both.  Currently this is no longer possible on
>> ‘core-updates-frozen’, and I think that’s a problem.
>>
>> The patch below does something unorthodox: it reintroduces librsvg
>> 2.40
>> (written in C) and uses it selectively so we can have a desktop
>> environment with Xfce on i686.  It’s not enough to get GDM though;
>> there’s a couple of GNOME packages that depend on librsvg and I
>> haven’t
>> checked whether they work with the old librsvg.
>
> There is also the unpleasant option to introduce a rust binary for
> architectures other than x86_64, because we can’t bootstrap it 
> there.  It should be noted that this would not be unprecedented. We
> have bootstrap binaries for some compilers such as Free Pascal or GHC.
>
> Adding an old version of librsvg is not obviously the better option.

I agree with Ricardo here.  We've tried hard to get Rust bootstrapped,
but that is only viable for x86_64 so far.  When bootstrapping is not
possible, there is already a precedent of using bootstrap binaries as
Ricardo pointed out.  So it seems that Rust falls into this category for
now.

It'd be much easier in my opinion to do so than trying to get GNOME to
build an obsolete versions that it will reject without us going at
length with it (not to mention the security vulnerabilities that'd need
to be patched by our own).  With mrustc and gcc-rust improving quickly,
hopefully that'd be a temporary solution.

I'll still try to get mrustc to build on i686 by specifying -O0 to gcc
while it builds it, to see if the memory usage can be brought below the
4 GiB limit.

Thanks,

Maxim



reply via email to

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