Subject: Re: [bug#43647] [PATCH 2/3] gnu: icedove: Update to 78.3.0.

From: Mark H Weaver <[email-masked]>
Date: Sun, 27 Sep 2020 19:25:11 -0400

Hi Jonathan,

> * gnu/packages/gnuzilla.scm (icedove): Update to 78.3.0.
> [source]: Use source from Icecat 78.
> [arguments]: Use more flexible approach for generating cargo checksums
> from icecat. Update files in 'rename-to-icedove phase. Remove gone
> configure flags and rename `--disable-ion` to `--disable-jit`.
> [inputs]: Update icu4c to version 67 and nss to 3.56.
> [native-inputs]: Use ESR 78 mercurial repo for thunderbird soruces.
> Update rust and cargo to 1.41, rust-cbindgen to 0.14 and
> node to 10.22.
> 
> Tested-by: Jonathan Brielmaier <[email-masked]>

Thanks very much for this, Jonathan!

It looks good to me except for one minor issue which is my fault:

> diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
> index 85ad9678d0..873cccaa9c 100644
> --- a/gnu/packages/gnuzilla.scm
> +++ b/gnu/packages/gnuzilla.scm
[...]
>             (lambda _
>               (use-modules (guix build cargo-utils))
>               (let ((null-hash "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"))
> -               (substitute* '("Cargo.lock" "gfx/wr/Cargo.lock")
> -                 (("(\"checksum .* = )\".*\"" all name)
> -                  (string-append name "\"" null-hash "\"")))
> -               (generate-all-checksums "third_party/rust"))
> +               (for-each (lambda (file)
> +                           (format #t "patching checksums in ~a~%" file)
> +                           (substitute* (find-files "." "Cargo.lock$")
> +                             (("^checksum = \".*\"")
> +                              (string-append "checksum = \"" null-hash "\""))))
> +                         (find-files "." "Cargo.lock$"))
> +               (for-each generate-all-checksums
> +                         '("third_party/rust"
> +                           "toolkit/library/rust")))
>               #t))

This change was inherited from a change I made in the IceCat 78 update
(commit c7011ff850420fdbe1319b3d218bd362f2f9d618), and as Zhu Zihao
<[email-masked]> recently pointed out on guix-devel, it has a
problem which turns out to be harmless but wasteful: the argument to the
second call to 'substitute*' should be 'files' instead of
(find-files "." "Cargo.lock$").

I'm currently testing the 'icedove' build with this minor fix applied.

     Thank you!
        Mark