Subject: Re: bug#36438: git-fetch issue

From: Ludovic Courtès <[email-masked]>
Date: Wed, 17 Jul 2019 22:00:43 +0200

Hello,

Julien Lepiller <[email-masked]> skribis:

> HEAD is now at 2f47e30a1a1 Fixed UnsupportedOperationException when a
> namespace is used in place of an expression. warning: failed to
> delete .git/refs/tags/rc1.0.0-IJ143-5-143.???2072: No such file or
> directory warning: failed to
> delete .git/refs/tags/1.0.3-eap-13-IJ143-2-143.???2167.???2: No such
> file or directory Backtrace: 11 (primitive-load
> "/gnu/store/21xc0h6f0c1zngfgza7526w32i0?") In ice-9/eval.scm: 293:34 10
> (_ #<directory (guile-user) 5ce140>) In ice-9/boot-9.scm:
>     829:9  9 (catch _ _ #<procedure 87d360 at ./guix/build/git.scm:?> ?)
> In ./guix/build/git.scm:
>      76:6  8 (_)
> In ice-9/ftw.scm:
>    452:32  7 (loop _ _ #(64768 20746206 16877 7 999 30000 0 4096 # ?) ?)
> In srfi/srfi-1.scm:
>    466:18  6 (fold #<procedure 8812e0 at ice-9/ftw.scm:452:38 (subd?> ?)
> In unknown file:
>            5 (_ #<procedure 6da7b0 at ice-9/ftw.scm:454:44 ()> #<pr?> ?)
> In ice-9/ftw.scm:
>    452:32  4 (loop _ _ #(64768 20746213 16877 5 999 30000 0 4096 # ?) ?)
> In srfi/srfi-1.scm:
>    466:18  3 (fold #<procedure 528f60 at ice-9/ftw.scm:452:38 (subd?> ?)
> In unknown file:
>            2 (_ #<procedure 6da780 at ice-9/ftw.scm:454:44 ()> #<pr?> ?)
> In ice-9/ftw.scm:
>    463:35  1 (loop _ _ _ _ _)
> In unknown file:
>            0 (rmdir ".git/refs/tags")
>
> ERROR: In procedure rmdir:
> In procedure rmdir: Directory not empty

It looks like .git/refs/tags contains a file with a non-ASCII name.

The ‘git-fetch’ derivation, in (guix git-download), runs in the C
locale, so Guile ends up substituting question marks to non-ASCII
characters.  Thus, ‘delete-file-recursively’ fails to delete the
offending file, and the whole operation fails.

The fix, as usual, would be to set GUIX_LOCPATH there to point to
(file-append glibc-utf8-locale "/lib/locale").

Is it worth it, though?

Thanks,
Ludo’.