Subject: Re: [bug#50615] [PATCH] gnu: grokmirror: Update to 2.0.11.

From: Xinglu Chen <[email-masked]>
Date: Fri, 17 Sep 2021 10:33:22 +0200

On Thu, Sep 16 2021, Kyle Meyer wrote:

> Xinglu Chen writes:
>
>> * gnu/packages/version-control.scm (grokmirror): Update to 2.0.11.
>> [arguments]<#:phases>: Don’t return #t.
>
> Thanks for keeping grokmirror up to date.

You are welcome!

>>  (define-public grokmirror
> [...]
>> @@ -2487,8 +2487,7 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.")
>
> Unrelated sidenote: you could get a more informative hunk header for
> your patches by defining a custom one (more details in the gitattributes
> manpage).

Ah, thanks for the tip!

>>                                          "/man/man1/")))
>>                 (mkdir-p man)
>>                 (for-each (lambda (file) (install-file file man))
>> -                         (find-files "." "\\.1$")))
>> -             #t)))))
>> +                         (find-files "." "\\.1$"))))))))
>
> Oops, sorry about the unnecessary #t.  I did a quick search of the
> lists/manual but didn't find any pointers/discussion.  What's the way to
> decide when a custom phase should return #t (like in the below snippet
> from the manual)?
>
> --8<---------------cut here---------------start------------->8---
> (modify-phases %standard-phases
>   (add-after 'install 'fix-egrep-and-fgrep
>     ;; Patch 'egrep' and 'fgrep' to execute 'grep' via its
>     ;; absolute file name instead of searching for it in $PATH.
>     (lambda* (#:key outputs #:allow-other-keys)
>       (let* ((out (assoc-ref outputs "out"))
>              (bin (string-append out "/bin")))
>         (substitute* (list (string-append bin "/egrep")
>                            (string-append bin "/fgrep"))
>           (("^exec grep")
>            (string-append "exec " bin "/grep")))
>         #t))))
> --8<---------------cut here---------------end--------------->8---

I don’t think it documented in the manual, but on ‘master’, phases have
to return #t, otherwise, you will get a warning message about it.  But
once the ‘core-updates-frozen’ branch gets merged (should be soon™),
phases don’t have to return #t anymore.  Since the boilerplate won’t be
needed once ‘core-updates-frozen’ gets merged, I thought it would be a
good idea to just remove the #t.  :-)