I don't understand why checking $DISPLAY should fail when tested from xterm. Works here.
The point is that launchApp will be called and it detaches the program it's trying to run.
Suppose you're like me and realise that the editor that busybox calls vi is a horrible pile of poo. The real vi that you get on VAX Ultrix from 1995 is a better editor than that. It's
the sort ... Enough! So you want to have vim available but it's big and you don't want other configure scripts to see it's dependencies. So you make it an ondemand program, except the first time you run it (and after that if you forget to do "hash -r") it fails stating that the standard input is not a terminal ... because launchApp ran it in the background.
That's the failure.
Except that Core is in many ways different to what people expect. :p
Well, yes, but it's security weirdness seems to be a sort of lip service to the
"You must not run as root" subverted by making almost everything writable by a non-root. This defeats it both ways, the "root analogue" isn't actually as powerful as root so you still need to sudo, but when you actually need to it comes as a surprise. On the other hand the "tc" user provides almost none of the guarantees that running as a non-root usually would; for example you can delete anything in /dev by 'accident'.
I tend to work both ways, for some machines (including Windows!) working as non-root (non-Administrator) is exactly what I want. On other machines there is only the root user. As the things I'm looking at TinyCore for are the "root only" class I'm not really worried. But in reality it is an issue.