[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’.
- Re: Cross-compilation broken on canonical packages.,
Ludovic Courtès <=