| Summary: | thermostat shell gets broken by TERM=dumb env. variable | ||
|---|---|---|---|
| Product: | Red Hat Software Collections | Reporter: | zzambers |
| Component: | thermostat1 | Assignee: | Omair Majid <omajid> |
| Status: | CLOSED WONTFIX | QA Contact: | zzambers |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | thermostat1 | CC: | sgehwolf |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-04-26 16:02:26 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
zzambers
2016-04-12 18:16:34 UTC
'dumb' is an actual valid terminal name: $ file /usr/share/terminfo/d/dumb /usr/share/terminfo/d/dumb: Compiled terminfo entry 3. step should have been echo -en 'help\nexit\n' | scl enable thermostat1 "thermostat shell" even though it doesn't really matter (wrong input works as well) Seems to be a bug in jline. I can reproduce with thermostat1-jline2-2.10-70.5.el7.noarch but not if I replace /opt/rh/thermostat1/root/usr/share/java/jline2/jline.jar with the jline-2.9.jar from an upstream build of thermostat-1.4. This might be caused by this fix: https://github.com/jline/jline2/commit/6f69925f53c07b0b5a8ecf45c18371413703b947 This actually fixes jline to detect TERM=dumb correctly (which it then handles by not echoing input?) Here's a few examples of how other readline-using programs behave. I didn't set TERM here (my default is screen-256color).
calc:
$ echo -e '(1 + 2)\nexit\n' | calc
3
gdb:
$ echo -e 'print $1\nquit\n' | gdb
GNU gdb (GDB) Fedora 7.10.1-31.fc23
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
(gdb) History has not yet reached $1.
(gdb)
guile:
$ echo -e '(write "Hi")\n(exit)\n' | guile
GNU Guile 2.0.11
Copyright (C) 1995-2014 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
"Hi"
sqlite3:
$ echo -e '.help\n.exit\n' | sqlite3
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail on|off Stop after hitting an error. Default OFF
.binary on|off Turn binary output on or off. Default OFF
.changes on|off Show number of rows changed by SQL
<output deleted>
vfsname ?AUX? Print the name of the VFS stack
.width NUM1 NUM2 ... Set column widths for "column" mode
Negative values right-justify
None of them display the input when the input is piped.
Perhaps, from a sensible design point of view, we should do the same in Thermostat?
This bug happens in a very rare case (setting TERM to dumb), only affects the input being displayed - not the output - and occurs because of an upstream project (jline). Given the low impact and high amount of effort needed to fix this bug, I am closing this as WONTFIX in this release. |