guix-devel
[Top][All Lists]
Advanced

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

Re: Cross-compilation broken on canonical packages.


From: Ludovic Courtès
Subject: Re: Cross-compilation broken on canonical packages.
Date: Thu, 02 Jan 2020 19:07:00 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hola!

Mathieu Othacehe <address@hidden> skribis:

>> Two simple solutions here, I think:
>>
>>   1. Make ‘packages’ a thunked field.
>>
>>   2. Stop using ‘canonical-package’ altogether in ‘%base-packages’.
>>
>> I actually have a preference for #2.  We’d need to check what impact it
>> has on the system closure size, but I suspect it’s going to be minimal.
>>
>> Thoughts?
>
> Option #2 seems nicer. There are other canonical-package calls when
> building services. I have a patch attached that removes all those calls.
>
> The image produced when running "guix system disk-image bare-bones.tmpl"
> increases by:
>
> * 30MB when removing the canonical-package of %base-packages
> * 30MB for all other calls.

OK.  (It may be slightly more accurate to look at the output of:
guix size $(guix system build …).)

> So altogether, that's a 60MB increase on a 1.5GB image (4%). I find it
> acceptable, WDYT?

It’s more than I thought but I think it’s OK.  (Also, how come
bare-bones takes 1.5 GiB?!)

> From a55eb86975c5f1c2783b0af265364821259e3351 Mon Sep 17 00:00:00 2001
> From: Mathieu Othacehe <address@hidden>
> Date: Tue, 31 Dec 2019 09:56:51 +0100
> Subject: [PATCH] system: Stop using canonical-package.
>
> Usage of canonical-package outside of thunked fields breaks cross-compilation,
> see: https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00410.html.
>
> * gnu/installer.scm (installer-program): Remove canonical-package.
> * gnu/services/base.scm (<nscd-cache>): Ditto,
> (%base-services): ditto.
> * gnu/services/xorg.scm: Remove useless canonical-package import.
> * gnu/system.scm (%base-packages): Remove canonical-package.
> * gnu/system/install.scm (%installation-services): Ditto,
> (installation-os): ditto.
> * gnu/system/locale.scm (single-locale-directory): Ditto,
> (%default-locale-libcs): ditto.

[...]

> --- a/gnu/system/locale.scm
> +++ b/gnu/system/locale.scm
> @@ -86,7 +86,7 @@ or #f on failure."
>       #f)))
>  
>  (define* (single-locale-directory locales
> -                                  #:key (libc (canonical-package glibc)))
> +                                  #:key (libc glibc))
>    "Return a directory containing all of LOCALES for LIBC compiled.
>  
>  Because locale data formats are incompatible when switching from one libc to
> @@ -147,7 +147,7 @@ data format changes between libc versions."
>  
>  (define %default-locale-libcs
>    ;; The libcs for which we build locales by default.
> -  (list (canonical-package glibc)))
> +  (list glibc))

I would leave this bit unchanged if possible, because that way the glibc
used would really match that programs are linked against.

The rest LGTM, thanks!

Ludo’.



reply via email to

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