guix-devel
[Top][All Lists]
Advanced

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

Re: [core-updates] Native build of make-boot0 fails on missing zstd


From: Maxim Cournoyer
Subject: Re: [core-updates] Native build of make-boot0 fails on missing zstd
Date: Sun, 21 Jan 2024 12:58:27 -0500
User-agent: Gnus/5.13 (Gnus v5.13)

Hi Janneke,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

> Maxim Cournoyer writes:
>
> Hi,
>
>> Efraim Flashner <efraim@flashner.co.il> writes:
>>
>>> On Sun, Jan 21, 2024 at 10:33:37AM +0100, Janneke Nieuwenhuizen wrote:
>>>> Hi!
>>>> 
>>>> On core-updates, running
>>>> 
>>>>     ./pre-inst-env guix build --system=i586-gnu -e '(@@ (gnu packages 
>>>> commencement) gnu-make-boot0)'
>>>> 
>>>> fails for me with
>>>> 
>>>>     sh: zstd: command not found
>>>> 
>>>> See log below.  FWIW, using --system=i686-linux for example, works fine.
>>
>> I don't know what it'd only affect non-x86 systems, but I've noticed one
>> bug in my recent "default to zstd" repack logic, which would name a xz
>> tarball as .tar.zst.  Perhaps tar then try to use zstd to decompress it,
>> even if it's really a xz compressed archive?
>
> Ah, that could be...

My previous diff included yet another bug... here's one that seems to
work fine:

--8<---------------cut here---------------start------------->8---
modified   guix/packages.scm
@@ -949,10 +949,7 @@ (define* (patch-and-repack source patches
          (bzip2   (lookup-input "bzip2"))
          (lzip    (lookup-input "lzip"))
          (xz      (lookup-input "xz"))
-         (zstd    (or (lookup-input "zstd")
-                      ;; Fallback to xz in case zstd is not available, such as
-                      ;; for bootstrap packages.
-                      xz))
+         (zstd    (lookup-input "zstd"))
          (patch   (lookup-input "patch"))
          (comp    (and=> (compressor source-file-name) lookup-input))
          (patches (map instantiate-patch patches)))
@@ -1033,10 +1030,13 @@ (define* (patch-and-repack source patches
                           locale (system-error-errno args)))))
 
             (setenv "PATH"
-                    (string-append #+zstd "/bin"
-                                   (if #+comp
-                                       (string-append ":" #+comp "/bin")
-                                       "")))
+                    (string-join
+                     (map (cut string-append <> "/bin")
+                          ;; Fallback to xz in case zstd is not
+                          ;; available, such as for bootstrap packages.
+                          (delete-duplicates
+                           (filter-map identity (list #+zstd #+xz #+comp))))
+                     ":"))
--8<---------------cut here---------------end--------------->8---

I'll push this to core-updates along a list of cherry-picked changes
from our tracker destined for core-updates, if it tests good on your
side.

-- 
Thanks,
Maxim



reply via email to

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