[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59913: [tentative PATCH] Failure to guix pull on aarch64 since recen
From: |
Pierre Langlois |
Subject: |
bug#59913: [tentative PATCH] Failure to guix pull on aarch64 since recent make-linux-libre* |
Date: |
Thu, 08 Dec 2022 23:59:11 +0000 |
User-agent: |
mu4e 1.8.11; emacs 28.2 |
Pierre Langlois <pierre.langlois@gmx.com> writes:
(snip)
> What seems to happen is that the `kernel-config' function now receive an
> `arch' argument for an architecture that isn't actually supported by
> that kernel, as is the case for linux-libre@4.14.300. And, correctly,
> the function should not expect to ever get such arch value to begin
> with, so we get a `(local-file #f)'.
>
> (define* (kernel-config arch #:key variant)
> "Return a file-like object of the Linux-Libre build configuration file for
> ARCH and optionally VARIANT, or #f if there is no such configuration."
I pasted this bit of code but didn't read it properly, it specificaly
says that it should return #f if the config doesn't exist. I guess
that's now a bug? We could either fix the docstring and apply the fix I
proposed, or returning #f probably works.
> (let* ((name (string-append (if variant (string-append variant "-") "")
> (if (string=? "i386" arch) "i686" arch)
> ".conf"))
> (file (string-append "linux-libre/" name)))
> (local-file (search-auxiliary-file file))))
>
> I think it's fair for that function expect the arch to be valid (why
> would you ask the config for an unsupported arch?).
>
> I think it should be possible to fix this by checking the arch is
> supported at the call site:
>
> [[End of PGP Signed Part]]
> From 77829140f14928e30cbe4e53c625be3ba2f5895f Mon Sep 17 00:00:00 2001
> From: Pierre Langlois <pierre.langlois@gmx.com>
> Date: Thu, 8 Dec 2022 23:41:40 +0000
> Subject: [PATCH] gnu: make-linux-libre*: Do not get config for unsupported
> systems.
>
> * gnu/packages/linux.scm (make-linux-libre*)[phases] <configure>: Check
> arch is in supported-systems before calling configuration-file.
> ---
> gnu/packages/linux.scm | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index 5ae6366593..87fc9fe94c 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -983,6 +983,7 @@ (define* (make-linux-libre* version gnu-revision source
> supported-systems
> (or (%current-target-system)
> (%current-system))))))
> (and configuration-file arch
> + (member arch supported-systems)
> (configuration-file
> arch
> #:variant (version-major+minor
> version))))
signature.asc
Description: PGP signature