Project

General

Profile

Actions

Bug #19704

closed

Unable to install readline-ext since 18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2

Added by yahonda (Yasuo Honda) 11 months ago. Updated 11 months ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 3.3.0dev (2023-05-30T01:02:40Z master 18e55fc1e1) [x86_64-linux]
[ruby-core:113720]

Description

Rails CI against Ruby 3.3.0dev fails to install readline-ext recenty.
https://buildkite.com/rails/rails/builds/96780#01886e3f-eaef-405c-b58a-e90c66c3036b

According to git bisect, it is triggered by 18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2

Steps to reproduce

Install ruby 3.3.0dev
gem install readline-ext

Expected behavior

It should install readline-ext as the previous commit of Ruby 7ddcd0622f does.

$ ruby -v
ruby 3.3.0dev (2023-05-29T21:24:22Z master 7ddcd0622f) [x86_64-linux]
$ gem install readline-ext
Building native extensions. This could take a while...
Successfully installed readline-ext-0.1.5
Ignoring rbs-3.0.4 because its extensions are not built. Try: gem pristine rbs --version 3.0.4
Parsing documentation for readline-ext-0.1.5
Installing ri documentation for readline-ext-0.1.5
Done installing documentation for readline-ext after 0 seconds
1 gem installed
$

Actual result

$ ruby -v
ruby 3.3.0dev (2023-05-30T01:02:40Z master 18e55fc1e1) [x86_64-linux]
$ gem install readline-ext
Building native extensions. This could take a while...
ERROR:  Error installing readline-ext:
	ERROR: Failed to build gem native extension.

    current directory: /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.3.0+0/gems/readline-ext-0.1.5/ext/readline
/home/yahonda/.rbenv/versions/trunk/bin/ruby extconf.rb
checking for tgetnum() in -lncurses... yes
checking for readline/readline.h... yes
checking for readline/history.h... yes
checking for readline() in -lreadline... yes
checking for rl_getc() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_getc_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_username_completion_function() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_matches() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_refresh_line() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_deprep_term_function in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_append_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completion_quote_character in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_basic_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_word_break_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_basic_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_completer_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_filename_quote_characters in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_attempted_completion_over in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_library_version in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_editing_mode in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_line_buffer in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_point in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_char_is_quoted_p in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_event_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_sigwinch in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_catch_signals in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_pre_input_hook in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_special_prefixes in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_cleanup_after_signal() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_free_line_state() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_clear_signals() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_set_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_get_screen_size() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_vi_editing_mode() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_emacs_editing_mode() in stdio.h,readline/readline.h,readline/history.h... yes
checking for replace_history_entry() in stdio.h,readline/readline.h,readline/history.h... yes
checking for remove_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for clear_history() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_redisplay() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_insert_text() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_delete_text() in stdio.h,readline/readline.h,readline/history.h... yes
checking for rl_hook_func_t* in stdio.h,readline/readline.h,readline/history.h... yes
creating Makefile

current directory: /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.3.0+0/gems/readline-ext-0.1.5/ext/readline
make DESTDIR\= sitearchdir\=./.gem.20230601-64629-eyixt9 sitelibdir\=./.gem.20230601-64629-eyixt9 clean

current directory: /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.3.0+0/gems/readline-ext-0.1.5/ext/readline
make DESTDIR\= sitearchdir\=./.gem.20230601-64629-eyixt9 sitelibdir\=./.gem.20230601-64629-eyixt9
compiling readline.c
readline.c: In function prepare_readline:
readline.c:386:16: error: invalid use of incomplete typedef rb_io_t {aka struct rb_io}
  386 |         if (ifp->fd < 0) {
      |                ^~
readline.c:395:16: error: invalid use of incomplete typedef rb_io_t {aka struct rb_io}
  395 |         if (ofp->fd < 0) {
      |                ^~
readline.c: In function readline_s_set_input:
readline.c:565:32: error: invalid use of incomplete typedef rb_io_t {aka struct rb_io}
  565 |         fd = rb_cloexec_dup(ifp->fd);
      |                                ^~
readline.c: In function readline_s_set_output:
readline.c:601:32: error: invalid use of incomplete typedef rb_io_t {aka struct rb_io}
  601 |         fd = rb_cloexec_dup(ofp->fd);
      |                                ^~
readline.c: At top level:
cc1: note: unrecognized command-line option -Wno-self-assign may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option -Wno-parentheses-equality may have been intended to silence earlier diagnostics
cc1: note: unrecognized command-line option -Wno-constant-logical-operand may have been intended to silence earlier diagnostics
make: *** [Makefile:248: readline.o] Error 1

make failed, exit code 2

Gem files will remain installed in /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.3.0+0/gems/readline-ext-0.1.5 for inspection.
Results logged to /home/yahonda/.rbenv/versions/trunk/lib/ruby/gems/3.3.0+0/extensions/x86_64-linux/3.3.0+0-static/readline-ext-0.1.5/gem_make.out

Related issues 1 (1 open0 closed)

Related to Ruby master - Feature #19057: Hide implementation of `rb_io_t`.Assignedioquatix (Samuel Williams)Actions
Actions #1

Updated by hsbt (Hiroshi SHIBATA) 11 months ago

Updated by hsbt (Hiroshi SHIBATA) 11 months ago

  • Status changed from Open to Assigned
  • Assignee set to ioquatix (Samuel Williams)

Updated by hsbt (Hiroshi SHIBATA) 11 months ago

https://github.com/ruby/stringio is also build failure since 18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2.

Actions #4

Updated by naruse (Yui NARUSE) 11 months ago

  • Status changed from Assigned to Closed

Applied in changeset git|85dcc4866d9ff29834596e9186cc97d622ee06f8.


Revert "Hide most of the implementation of struct rb_io. (#6511)"

This reverts commit 18e55fc1e1ec20e8f3166e3059e76c885fc9f8f2.

fix [Bug #19704]
https://bugs.ruby-lang.org/issues/19704
This breaks compatibility for extension libraries. Such changes
need a discussion.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0