Re: nosh: User-space virtual terminal test and questions

2019-01-06 Thread Guillermo
El dom., 6 ene. 2019 a las 8:27, Jonathan de Boyne Pollard escribió:
>
> > The combination of vboxvideo with |console-fb-realizer| was explosive,
> > I got a (guest) kernel panic.
> >
> [...]
> so I'm initially going to lay that one at the door of the driver.

Yeah, I'm suspicious about the kernel module too. I didn't spend too
much time with this, I just blacklisted the module for the
console-fb-realizer tests, which gave me the VESA framebuffer device.
But I thought I should mention that it happened in case anyone else
wanted to try that, or had not experienced it.

> Try the --80-columns option
> (which prevents console-fb-realizer trying to switch to some of the
> more exciting high-resolution modes)

The option is not present if console-fb-realizer is built on
[GNU/]Linux, right? 'console-fb-realizer --help' doesn't show it, and
the C++ source file seems to have the relevant code contained inside
an #if defined(__FreeBSD__) || defined(__DragonFly__) ||
defined(__OpenBSD__) - #endif block.

> > I [...] managed to deal with the BSDness of the requirements on font
> > and keyboard map files with the help of FreeBSD's SVN repository :)
> >
> For those reading this, there is a whole chapter in the Guide on the
> multiplicity of places whence one can obtain fonts, keyboard maps, and
> input methods.  The toolset does not come with them for two major
> reasons.

Oh, I don't expect nosh to ship font and keyboard map files. That was
a humorous remark about them either having to be in a BSD-specific
format, or in a format that a BSD program (vtfontcvt) outputs.

> First, it is a deliberate design decision to use existing
> formats and not require new ones be created from scratch.

That's fine.

> > 3) More strangely, Ctrl + x (e.g. to exit from GNU nano) did not work
> > with |console-termio-realizer|, but did with |console-fb-realizer|.
> >
> Control+X is ␘ (cancel, U+0018) which cancels an in-progress ECMA-48
> escape or control sequence.
> [...]
> console-termio-realizer decodes its input with a fully-fledged ECMA-48
> decoder, [...]

So, how does one get the control character delivered to the
application? Is it possible with console-termio-realizer?

> > 4) With console-termio-realizer, green is blue and blue is green :D
> >
> Part of my usual Z shell prompt is green, so I am confident that I would
> have noticed it being blue in error.  (-:

I noticed it with GNU ls's colorized output (directories showed up
green and executable files showed up blue), and Bash's prompt, which
also happens to be green and blue, and looked reversed. This is the
value of PS1:

\[\033[01;32m\]\u@\h\[\033[01;34m\] w $\[\033[00m\]

> What terminal type is console-termio-realizer outputting to?  Is this
> a GUI terminal emulator with a colour palette that has been altered from
> the standard colour set?

Straight to a kernel VT, and I don't think the color palette is
changed from the default. This is how I lauhched
console-termio-realizer:

/etc/inittab:
us2:3:respawn:/home/guillermo/bin/start-termio-realizer

/home/guillermo/bin/start-termio-realizer:
#!/bin/nosh
foreground sleep 1 ;
vc-get-tty tty8
open-controlling-tty
vc-reset-tty
/lib/nosh/setuidgid -s user-vt-realizer
console-termio-realizer /run/dev/vc1

(Yeah, that's van Smoorenburg init. Minimal setup for ease of
troubleshooting, remember :)  )

I didn't see a console-termio-realizer (or console-ncurses-realizer)
example in nosh-bundles, maybe simple file descriptor redirections
would have sufficed, but that worked, so...

>  Is it a 24-bit-colour-capable terminal? Use
> console-control-sequence --foreground blue|console-decode-ecma48 from
> version 1.39 on that terminal.  What do you see?  SGR 34?  SGR 38;5;4?
> Or SGR 38;2;... ?

I'd have to build in-development 1.39 for that. I'll post the result
when I do that.

Thanks,
G.


Re: s6-ps

2019-01-06 Thread Colin Booth
On Sun, Jan 06, 2019 at 07:30:21AM +, Laurent Bercot wrote:
> 
>  - The execline library is required to build a few of s6's utilities
> (typically: s6-ftrig-listen).
>  - The execlineb binary is required for use of the !processor directive
> in s6-log.
>  - Some of the other binaries provided by execline are used by
> s6 utilities, for instance s6-fdholder-store.
>
Ah, good point. I was misremembering and thought s6-log processed the
command string itself but used libexecline to teach it how, similar to
s6-ftrig-listen's dependency.

Looking a bit closer, the one that's going to break the hardest for
people using s6 solely as a supervisor is s6-notifyoncheck since you can
inline a check program with the -c option. I'm not sure how many people
go that route who aren't already going to have execline installed, but
it's something that will definitely cause some ill will.
> 
>  "Recommends" is a mistake. Without execline, parts of the s6 suite
> of programs will break.
>
> --
>  Laurent
> 

-- 
Colin Booth


Re: Can s6 be enough?: was s6-ps

2019-01-06 Thread Brett Neumeier
On Sat, Jan 5, 2019 at 2:30 PM Steve Litt  wrote:

> So what do you all think? Is s6 a useful init system without s6-rc?
>

My 0.02 USD -- based on my experience of setting up a simple GNU/Linux
distribution from the ground up using s6, s6-rc, and s6-linux-init...

- s6-rc provides useful functionality: it is really handy, when defining
the way that the system should start up, to have bundles and oneshots; it
is also really handy to be able to start up or shut down groups of
processes via bundles.
- The cost of using s6-rc is negligible. As installed on my x86_64 system
with documentation, it consumes around 576 *kilobytes* of storage space. It
compiles and installs in substantially less than a minute. Learning how to
craft s6-rc service definition directories is no more difficult than
learning how to craft s6 servicedirs.
- You don't lose any capability provided by s6 if you also use s6-rc. You
can send whatever signals you want to the supervised processes by using
s6-svc directly.

So ... costs ~= 0, benefits > 0, to me the question of whether s6 is useful
_without_ s6-rc is kind of pointless.

I'm inclined to turn the question around: what leads you to want to avoid
s6-rc? Is there some other system that provides more benefits at lower cost?

Cheers!

Brett

-- 
Brett Neumeier (bneume...@gmail.com)


Re: nosh: User-space virtual terminal test and questions

2019-01-06 Thread Jonathan de Boyne Pollard

Guillermo:

The combination of vboxvideo with |console-fb-realizer| was explosive, 
I got a (guest) kernel panic.


|console-fb-realizer| does not employ the arcana of framebuffer I/O, it 
just using little more than the mode setting API and memory mapped I/O, 
so I'm initially going to lay that one at the door of the driver.  I 
have had poor experiences with it myself.  Try the |--80-columns| option 
(which prevents |console-fb-realizer| trying to switch to some of the 
more exciting high-resolution modes) and ensure that your driver exactly 
matches your kernel version.


I currently test |console-fb-realizer| on real hardware.  (-:

Guillermo:

I [...] managed to deal with the BSDness of the requirements on font 
and keyboard map files with the help of FreeBSD's SVN repository :)


For those reading this, there is a whole chapter in the _Guide_ on the 
multiplicity of places whence one can obtain fonts, keyboard maps, and 
input methods.  The toolset does not come with them for two major 
reasons.  First, it is a deliberate design decision to use existing 
formats and not require new ones be created from scratch.  Second, they 
come under a variety of copyright licences, and it is simpler to just 
keep those separate.  Quite a few of them are already packaged up for 
operating systems.  I discovered /yet another/ collection of input 
method files just recently ... in a Debian package.


Guillermo:

1) What is the proper way (if any) to switch between kernel VTs and 
user-space VTs?


|console-fb-realizer| does not have hot key chords for initiating KVT 
switching that get stripped out of input processing and enacted 
locally.  All such chords are sent down the input FIFO to a /user-space/ 
VT multiplexor.  It could have, as there is room for such a specialized 
type of actions in the keyboard map.  Since I need to do more work on 
having multiple keyboard maps in a single |console-fb-realizer| 
instance, I might look into it.  But at the moment 
|console-multiplexor-control| pointed at a KVT is the tool, and I am not 
going to hold off 1.39 specifically for this.  I was going to do that 
work in 1.40.


Guillermo:

2) Key combinations with Alt (e.g. Alt + f or Alt + b to move forward 
or backward one word on Bash) did not work with neither 
|console-fb-realizer| nor |console-termio-realizer|. Any idea why, or 
does this just happen to me?


I have an idea why.  I have put improving it on the to-do list. It's not 
you.  (-:


Guillermo:

3) More strangely, Ctrl + x (e.g. to exit from GNU nano) did not work 
with |console-termio-realizer|, but did with |console-fb-realizer|.


Control+X is ␘ (cancel, U+0018) which cancels an in-progress ECMA-48 
escape or control sequence.  This is documented in ECMA-48:1991 § 8.3.6 
and in § 4.3.5 of DEC's _VT520/VT525 Video Terminal Programmer Information_.


|console-termio-realizer| decodes its input with a fully-fledged ECMA-48 
decoder, that implements the DEC/ECMA-documented behaviours of both ␘ 
and ␛ on the decoding state machine; rather than with a perennially 
incomplete collection of ad-hoc pattern recognitions as 
|console-ncurses-realizer| does.  It's the same decoder that 
|console-terminal-emulator| uses for output.  You can see ␘ in action 
with the new |console-decode-ecma48| tool in 1.39, which also uses the 
same decoder.  Type in an incomplete CSI sequence by hand, and cancel it 
with ␘.  It will be discarded.  The same will happen if you print one 
and cancel it, as output to the terminal emulator.


Although it would be entirely legitimate for a terminal to send ␘ in the 
middle of (say) a DECFNK control sequence in order to cancel it, it 
would be unusual, so I'll add another exception to ECMA-48 decoding for 
this, that |console-termio-realizer| can select.


ECMA-48 is of course nothing to do with the input protocols that 
|console-fb-realizer| speaks with its input devices.


Guillermo:

4) With |console-termio-realizer|, green is blue and blue is green :D 
Not with |console-fb-realizer|, though.


Part of my usual Z shell prompt is green, so I am confident that I would 
have noticed it being blue in error.  (-:


What terminal type is |console-termio-realizer| outputting to?  Is this 
a GUI terminal emulator with a colour palette that has been altered from 
the standard colour set?  Is it a 24-bit-colour-capable terminal?  Use 
|console-control-sequence --foreground blue|console-decode-ecma48| from 
version 1.39 on that terminal.  What do you see?  SGR 34?  SGR 38;5;4?  
Or SGR 38;2;... ?