Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

`tigetstr': can't find capability: kend (Reline::Terminfo::TerminfoError) #384

Closed
remimeunier opened this issue Oct 29, 2021 · 6 comments · Fixed by #385
Closed

`tigetstr': can't find capability: kend (Reline::Terminfo::TerminfoError) #384

remimeunier opened this issue Oct 29, 2021 · 6 comments · Fixed by #385

Comments

@remimeunier
Copy link

remimeunier commented Oct 29, 2021

Description

I have the following error when starting irb :

/Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/reline-0.2.7/lib/reline/terminfo.rb:104:in `tigetstr': can't find capability: kend (Reline::Terminfo::TerminfoError)
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/reline-0.2.7/lib/reline/ansi.rb:48:in `set_default_key_bindings_terminfo'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/reline-0.2.7/lib/reline/ansi.rb:21:in `set_default_key_bindings'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/reline-0.2.7/lib/reline.rb:237:in `inner_readline'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/reline-0.2.7/lib/reline.rb:178:in `readmultiline'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/input-method.rb:319:in `gets'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:529:in `block (2 levels) in eval_input'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:758:in `signal_status'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:528:in `block in eval_input'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:282:in `lex'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:251:in `block (2 levels) in each_top_level_statement'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:248:in `loop'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:248:in `block in each_top_level_statement'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:247:in `catch'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb/ruby-lex.rb:247:in `each_top_level_statement'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:547:in `eval_input'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:481:in `block in run'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:480:in `catch'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:480:in `run'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/lib/irb.rb:409:in `start'
	from /Users/remi/.asdf/installs/ruby/3.0.2/lib/ruby/gems/3.0.0/gems/irb-1.3.7/exe/irb:11:in `<top (required)>'
	from /Users/remi/.asdf/installs/ruby/3.0.2/bin/irb:23:in `load'
	from /Users/remi/.asdf/installs/ruby/3.0.2/bin/irb:23:in `<main>'

I'm using :
IRB : irb 1.3.5 (2021-04-03)
RUBY : ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-darwin19]
MAC OS :11.6 with Bash terminal

I'm not sure to understand where it come from.
Thanks for your help

@Imitat
Copy link

Imitat commented Nov 2, 2021

+1. Note that on macOS 11.6.1 and Ruby 2.6.5p114... The error is no longer present if one uninstalls irb 1.3.7 and installs irb 1.3.6, and uninstalls reline 0.2.7 and installs reline 0.2.6.

@ima1zumi
Copy link
Member

ima1zumi commented Nov 3, 2021

Would you see if it reproduce with the latest version of irb and reline? You can install it with gem install irb --pre.

@Imitat
Copy link

Imitat commented Nov 3, 2021

Hi, thank you for your time and unfortunately, I'm not seeing this resolved...

~$ gem uninstall irb
Successfully uninstalled irb-1.3.6

~$ gem uninstall reline
Successfully uninstalled reline-0.2.6

~$ gem install irb --pre
Fetching reline-0.2.8.pre.11.gem
Fetching irb-1.3.8.pre.11.gem
Successfully installed reline-0.2.8.pre.11
Successfully installed irb-1.3.8.pre.11
Parsing documentation for reline-0.2.8.pre.11
Installing ri documentation for reline-0.2.8.pre.11
Parsing documentation for irb-1.3.8.pre.11
Installing ri documentation for irb-1.3.8.pre.11
Done installing documentation for reline, irb after 1 seconds
2 gems installed

~$ irb
Traceback (most recent call last):
	26: from /Users/imitat/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:22:in `<main>'
	25: from /Users/imitat/.rvm/gems/ruby-2.6.5/bin/ruby_executable_hooks:22:in `eval'
	24: from /Users/imitat/.rvm/gems/ruby-2.6.5/bin/irb:23:in `<main>'
	23: from /Users/imitat/.rvm/gems/ruby-2.6.5/bin/irb:23:in `load'
	22: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/exe/irb:11:in `<top (required)>'
	21: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:418:in `start'
	20: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:489:in `run'
	19: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:489:in `catch'
	18: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:490:in `block in run'
	17: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:556:in `eval_input'
	16: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/ruby-lex.rb:247:in `each_top_level_statement'
	15: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/ruby-lex.rb:247:in `catch'
	14: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/ruby-lex.rb:248:in `block in each_top_level_statement'
	13: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/ruby-lex.rb:248:in `loop'
	12: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/ruby-lex.rb:251:in `block (2 levels) in each_top_level_statement'
	11: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/ruby-lex.rb:282:in `lex'
	10: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:537:in `block in eval_input'
	 9: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:769:in `signal_status'
	 8: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb.rb:538:in `block (2 levels) in eval_input'
	 7: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/irb-1.3.8.pre.11/lib/irb/input-method.rb:414:in `gets'
	 6: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/forwardable-1.3.2/lib/forwardable.rb:238:in `readmultiline'
	 5: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/forwardable-1.3.2/lib/forwardable.rb:238:in `readmultiline'
	 4: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/reline-0.2.8.pre.11/lib/reline.rb:249:in `readmultiline'
	 3: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/reline-0.2.8.pre.11/lib/reline.rb:312:in `inner_readline'
	 2: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/reline-0.2.8.pre.11/lib/reline/ansi.rb:21:in `set_default_key_bindings'
	 1: from /Users/imitat/.rvm/gems/ruby-2.6.5/gems/reline-0.2.8.pre.11/lib/reline/ansi.rb:53:in `set_default_key_bindings_terminfo'
/Users/imitat/.rvm/gems/ruby-2.6.5/gems/reline-0.2.8.pre.11/lib/reline/terminfo.rb:104:in `tigetstr': can't find capability: khome (Reline::Terminfo::TerminfoError)

@remimeunier
Copy link
Author

Thanks for you answers. The error remain with the last version of reline and irb.
No issue with irb 1.3.6 and reline 0.2.6 even with my version of ruby.

@ima1zumi
Copy link
Member

ima1zumi commented Nov 8, 2021

Thank you for your answer. But I was not able to reproduce this on my macOS 11.3. 🤔
What terminal emulator are you using? (e.g. Terminal.app, Alacritty, iTerm2, etc...)
Just to be sure, please let me know the results of running irb_info on a version of irb that can run.

📝 I'm trying version

  • macOS: 10.15.7 and 11.3.1
  • Terminal emulator: Alacritty
  • Ruby: 2.6.6 and 3.0.2
  • irb: 1.3.8.pre.11 (2021-10-09)
  • Reline: 0.2.8.pre.11
  • RUBY_PLATFORM: x86_64-darwin20

@Imitat
Copy link

Imitat commented Nov 8, 2021

Hi, I'm using /Applications/Utilities/Terminal.app (shown as version 2.11) under macOS 11.6.1. Fwiw, Ruby is 2.6.5p114 via RVM. These reports are still true for me: 1, 2. Many thanks again for your time!

ima1zumi added a commit to ima1zumi/reline that referenced this issue Nov 9, 2021
fix ruby#384

If `$TERM` is `vt102`, there are no `kend`, `khome`, `civis`, or `cnorm` in capabilities.
`TerminfoError` is raised in `Reline::Terminfo.tigetstr(capname)`, so it is rescued if it does not exist.
ima1zumi added a commit to ima1zumi/reline that referenced this issue Nov 24, 2021
fix ruby#384

If `$TERM` is `vt102`, there are no `kend`, `khome`, `civis`, or `cnorm` in capabilities.
`TerminfoError` is raised in `Reline::Terminfo.tigetstr(capname)`, so it is rescued if it does not exist.
matzbot pushed a commit to ruby/ruby that referenced this issue Dec 2, 2021
fix ruby/reline#384

If `$TERM` is `vt102`, there are no `kend`, `khome`, `civis`, or `cnorm` in capabilities.
`TerminfoError` is raised in `Reline::Terminfo.tigetstr(capname)`, so it is rescued if it does not exist.

ruby/reline@c9f5112702
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

3 participants