Hi Janneke, Janneke Nieuwenhuizen <jann...@gnu.org> writes:
> Maxim Cournoyer writes: > > Hi, > >> Efraim Flashner <efr...@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