Subject: Re: bug#33999: CP437: Invalid Argument on init

From: Bryan Ferris <[email-masked]>
Date: Wed, 16 Jan 2019 07:43:30 -0800

Hey Danny,

Sorry for the delay in response. I saw no behavior change until I added the
(mount? #f) line. This fixed a number of services, but d-bus fails to
start. I encounter further issues including X Server failing to start and
the inability to log in (when I type in a valid username it immediately
fails 3 times and prints the standard message... I don't have password
hashes in my config, but IIRC last time I installed guix I was able to log
in without setting a password either imperatively or declaratively). Due to
the latter issue I was unable to test the program you posted, but it sounds
like Ludovic was able to describe what would happen if I had been able to?
I assume the non-d-bus errors are related to the lack of d-bus.

I uploaded a new video of my startup at
https://drive.google.com/file/d/1bVdiCM1BKAmY-1y1XydI4ol7BCCkQ2Xk/view?usp=drivesdk
It's ~50s long, but seconds 20-45 are the system retrying d-bus a number of
times.

On Thu, Jan 10, 2019 at 10:21 AM Danny Milosavljevic <[email-masked]>
wrote:

> Also, if you want, please try the following program on the booted guix
> system:
>
> #include <stdio.h>
> #include <locale.h>
> #include <iconv.h>
> #include <langinfo.h>
>
> static iconv_t iconv_init_codepage(int codepage)
> {
>     iconv_t result;
>     char codepage_name[16];
>     snprintf(codepage_name, sizeof(codepage_name), "CP%d", codepage);
>     result = iconv_open(nl_langinfo(CODESET), codepage_name);
>     if (result == (iconv_t) - 1) {
>         printf("FOO\n");
>         perror(codepage_name);
>         printf("BAR\n");
>     }
>     return result;
> }
>
> int main() {
>         setlocale(LC_ALL, "");
>         iconv_init_codepage(437);
>         return 0;
> }
>
> You'd have to put the above text into a file called "a.c", then invoke
>
> guix package -i gcc-toolchain
>
> Then invoke
>
> gcc -o a a.c
>
> Then invoke
>
> ./a
>
> I suspect it will also fail with the same error message.
>
> After that, please invoke
>
> iconv -l |grep -i cp437
>
> It will probably either return nothing or even fail with an error message.
>

On Thu, Jan 10, 2019 at 10:21 AM Danny Milosavljevic <[email-masked]>
wrote:

> Also, if you want, please try the following program on the booted guix
> system:
>
> #include <stdio.h>
> #include <locale.h>
> #include <iconv.h>
> #include <langinfo.h>
>
> static iconv_t iconv_init_codepage(int codepage)
> {
>     iconv_t result;
>     char codepage_name[16];
>     snprintf(codepage_name, sizeof(codepage_name), "CP%d", codepage);
>     result = iconv_open(nl_langinfo(CODESET), codepage_name);
>     if (result == (iconv_t) - 1) {
>         printf("FOO\n");
>         perror(codepage_name);
>         printf("BAR\n");
>     }
>     return result;
> }
>
> int main() {
>         setlocale(LC_ALL, "");
>         iconv_init_codepage(437);
>         return 0;
> }
>
> You'd have to put the above text into a file called "a.c", then invoke
>
> guix package -i gcc-toolchain
>
> Then invoke
>
> gcc -o a a.c
>
> Then invoke
>
> ./a
>
> I suspect it will also fail with the same error message.
>
> After that, please invoke
>
> iconv -l |grep -i cp437
>
> It will probably either return nothing or even fail with an error message.
>