Subject: Re: bug#23194: Benign error in installation image: "stty: standard input: Input/output error"
From: [email-masked] (Ludovic Courtès)
To: Chris Marusich <[email-masked]>
Cc: [email-masked]
Date: Thu, 07 Dec 2017 10:18:16 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Chris,

[email-masked] (Ludovic Courtès) skribis:

> Chris Marusich <[email-masked]> skribis:
>
>> In the installation image for GuixSD v0.10.0, I get some I/O errors on
>> the terminal just before/during/after the MOTD is displayed:
>>
>> "stty: standard input: Input/output error"
>
> These appear to come from the ‘unicode_start’ command, run by the
> ‘console-font’ services.  ‘unicode_start’ is a shell script in the ‘kbd’
> package that does:
>
>   stty iutf8
>
> In a ‘guix system vm gnu/system/install.scm’ VM in current master, I
> sometimes get a different message:
>
>   unicode_start skipped on not a tty
>
> The “not a tty” string comes from the ‘tty’ command (Coreutils).  We get
> it when:
>
>   ttyname (STDIN_FILENO);
>
> returns NULL; this can happen if ‘tcgetattr’ returns NULL (see ttyname.c
> in libc.)

I’m happy to say that this is fixed in the 0.14.0 installation image:

  https://git.savannah.gnu.org/cgit/guix.git/commit/?h=version-0.14.0&id=787e8a80d54d8bd5320d76276dc5f4bafe5b86c0

We now use our ‘tcsetattr’ bindings directly instead of invoking
‘unicode_start’.  Additionally, we wait until the TTY really exists
(i.e., mingetty has become its session leader) by checking the return
value of ‘ttyname’.

Ludo’.