bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-20 Thread Ludovic Courtès
Attila Lendvai skribis: > Without this the git-fetch GEXP is run in an environment that uses ASCII > character encoding when strings are crossing the Guile - C boundary. It means > that e.g. tag names that have Unicode chars in them will cause problems, > e.g. when walking and deleting the .git

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-20 Thread Ludovic Courtès
Hi, Attila Lendvai skribis: > Without this the git-fetch GEXP is run in an environment that uses ASCII > character encoding when strings are crossing the Guile - C boundary. It means > that e.g. tag names that have Unicode chars in them will cause problems, > e.g. when walking and deleting the

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-19 Thread Maxime Devos
Attila Lendvai schreef op di 19-04-2022 om 11:38 [+]: > so, is such an idempotent locale available/embedded in glibc without > any external dependencies? searching the web suggests that there isn't. Try: $ LC_CTYPE=anything.ISO-8859-2 guix repl é hint: Consider installing the

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-19 Thread Maxime Devos
Attila Lendvai schreef op di 19-04-2022 om 11:38 [+]: > > thank you, this works indeed as a band aid: > > > > (setenv "GUIX_LOCPATH" #+(file-append glibc-locales "/lib/locale")) > > (setlocale LC_ALL "en_US.utf8") > > > i spoke too early. this works in a git checkout of guix, but it fails >

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-19 Thread Attila Lendvai
> thank you, this works indeed as a band aid: > > (setenv "GUIX_LOCPATH" #+(file-append glibc-locales "/lib/locale")) > (setlocale LC_ALL "en_US.utf8") i spoke too early. this works in a git checkout of guix, but it fails to compile when i try to guix pull it. even if i declare the dependency

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Maxime Devos
Liliana Marie Prikler schreef op wo 13-04-2022 om 12:40 [+0200]: > You are first encoding a non-ASCII byte to ASCII, which has no glyph > for "I have no idea what this is", so a question mark (#\?) is used. > When converting from invalid ASCII to UTF-8 on the other hand, you do > have #\� as the

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Liliana Marie Prikler
Am Mittwoch, dem 13.04.2022 um 10:22 +0200 schrieb Maxime Devos: > [...] > Let's test this (in a new REPL with an UTF-8 locale): > > ((@ (ice-9 iconv) string->bytevector) "é" "ANSI_X3.4-1968") > ice-9/boot-9.scm:1669:16: In procedure raise-exception: > Throw to key `encoding-error' with args

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Attila Lendvai
> I don't expect /run/current-system/locale to exist inside the build > container. Maybe try > > (setenv "GUIX_LOCPATH" #+(file-append glibc-locales "/lib/locale")) > ;; for testing > ((@ (guix build utils) invoke) > #+(file-append coreutils "/bin/ls") (getenv "GUIX_LOCPATH")) > > instead? thank

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Maxime Devos
Attila Lendvai schreef op wo 13-04-2022 om 07:51 [+]: > hrm... this is not relevant here, only a related thought: things > can go wrong in the GEXP serialization, too: if the writing side > and the reading side doesn't use the same character encoding. > locale should be set explicitly at the

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Maxime Devos
Attila Lendvai schreef op wo 13-04-2022 om 07:51 [+]: > i'm not sure why the wrong locale breaks file-system walking and deleting, > though. > > i assume if every function in guile uses/assumes the same locale (character > encoding), then both directions through the guile FFI should be

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Maxime Devos
Attila Lendvai schreef op wo 13-04-2022 om 07:51 [+]: > i don't understand why the setlocale call in gnu-build-system's > install-locale works, but my setlocale kludge in git-download doesn't. I don't expect /run/current-system/locale to exist inside the build container. Maybe try

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-13 Thread Attila Lendvai
> * LANG should be set, because it is in #:leaked-env-vars (see > guix/git-download.scm). I don't know whose LANG it is though > -- the user's, or the daemon's? if i add this to the gexp: (simple-format (current-error-port) "LANG is '~A'~%" (getenv "LANG")) (setenv

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-12 Thread Maxime Devos
Attila Lendvai schreef op di 12-04-2022 om 19:47 [+]: > and i can't get rid of this^ warning. i installed glibc-locales to > root and my user, reconfigured, restarted the guix-daemon. > > which is probably the cause of the ultimate error: > > warning: failed to delete .git/refs/tags/v??.2.0:

bug#54893: guix-daemon, locale, LANG, and unicode in git tag names

2022-04-12 Thread Attila Lendvai
i'm trying to build a golang package that i have just imported. its repo has a tag with unicode in it, namely v½.2.0, as observable at https://github.com/klauspost/pgzip/tags (define-public the-pkg (package (name "go-github-com-klauspost-pgzip") (version