Subject: Re: [bug#78437] [PATCH] gnu: git-minimal: Fix ugly output of git submodule -h.

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 25 Jun 2025 23:04:06 +0900

Hi,

Ian Eure <[email-masked]> writes:

> Hi Nicolas,
>
> Nicolas Graves <[email-masked]> writes:
>
>> * gnu/packages/version-control.scm (git-minimal)[arguments]<phases>:
>> Adjust the snippet patching git-submodule.sh to avoid the ugly
>> ".git submodule-real" from git submodule -h.
>> ---
>>  gnu/packages/version-control.scm | 10 ++++------
>>  1 file changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/gnu/packages/version-control.scm
>> b/gnu/packages/version-control.scm
>> index ed96b524f83..f4bae91906d 100644
>> --- a/gnu/packages/version-control.scm
>> +++ b/gnu/packages/version-control.scm
>> @@ -437,13 +437,11 @@ (define PATH-variable-definition
>>                       "GNU")))           ;matched against '*'
>>                 ;; git-submodule sources 'git-sh-setup.sh', but
>> not before
>> -              ;; invoking the basename and sed commands... patch
>> them to their
>> -              ;; absolute location.
>> +              ;; invoking the basename and sed commands... Using
>> those
>> +              ;; leads to some ugly .git submodule-real, hardcode
>> instead.
>
> The ".real" in the output is caused by the git package (which inherits
> from git-minimal) using `wrap-program' (which is what creates the
> ".real" files):
>
>      ;; Tell 'git-submodule' where Perl is.
>      (wrap-program git-sm
>        `("PATH" ":" prefix
>          (,(dirname (search-input-file inputs "bin/perl")))))
>
> The git-minimal package has normal output:
>
>    meson!ieure:~$ guix shell --pure git-minimal -- git submodule
>    -h
>    usage: git submodule [--quiet] [--cached]
>
> Since the problem is created by the git package, I think that’s were
> the fix should go.  WDYT?
>
> Adding, the git-submodule script doesn’t call perl directly, so this
> must be due to it calling another git plumbing command which does --
> `git-filter-branch' seems a likely suspect.  Though if that’s the
> case, git-minimal’s `git-filter-branch' is broken.  I’m not sure what
> the rationale is for doing it this way, but it might be worth checking
> if the wrapper can be eliminated altogether.

I investigated a bit, and git submodules seems to work fine without this
2014 perl wrapping thing, even in a container.  So, I've pushed

45ec6e0e0a gnu: git: Remove extraneous git-submodule wrapper.

which should fix that, along a git update and related commits.

-- 
Thanks,
Maxim