rowland / fb

Firebird Extension Library for Ruby
64 stars 35 forks source link

Cannot be installed in Ruby 3.2... #78

Closed adrianlmm closed 1 year ago

adrianlmm commented 1 year ago

I get this error when I try to install it wih Ruby 3.2 using Ubuntu 22.04

$ gem install fb Building native extensions. This could take a while... ERROR: Error installing fb: ERROR: Failed to build gem native extension.

current directory: /usr/share/rvm/gems/ruby-3.2.0/gems/fb-0.9.3

/usr/share/rvm/rubies/ruby-3.2.0/bin/ruby -I /usr/share/rvm/rubies/ruby-3.2.0/lib/ruby/3.2.0 extconf.rb checking for isc_attach_database() in -lfbclient... yes creating Makefile

current directory: /usr/share/rvm/gems/ruby-3.2.0/gems/fb-0.9.3 make DESTDIR\= sitearchdir\=./.gem.20221230-12771-mo0e24 sitelibdir\=./.gem.20221230-12771-mo0e24 clean

current directory: /usr/share/rvm/gems/ruby-3.2.0/gems/fb-0.9.3 make DESTDIR\= sitearchdir\=./.gem.20221230-12771-mo0e24 sitelibdir\=./.gem.20221230-12771-mo0e24 compiling fb.c fb.c: In function ‘fb_cursor_fields_ary’: fb.c:1675:32: warning: implicit declaration of function ‘rb_tainted_str_new’; did you mean ‘rb_utf8_str_new’? [-Wimplicit-function-declaration] 1675 | name = rb_tainted_str_new(var->aliasname, var->aliasname_length); | ^~~~~~ | rb_utf8_str_new fb.c: In function ‘Init_fb’: fb.c:2938:6: warning: old-style function definition [-Wold-style-definition] 2938 | void Init_fb() | ^~~ fb.c:2944:68: error: ‘rb_cData’ undeclared (first use in this function); did you mean ‘rb_cDate’? 2944 | rb_cFbDatabase = rb_define_class_under(rb_mFb, "Database", rb_cData); | ^~~~ | rb_cDate fb.c:2944:68: note: each undeclared identifier is reported only once for each function it appears in fb.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: fb.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/share/rvm/gems/ruby-3.2.0/gems/fb-0.9.3 for inspection. Results logged to /usr/share/rvm/gems/ruby-3.2.0/extensions/x86_64-linux/3.2.0/fb-0.9.3/gem_make.out

golirev commented 1 year ago

I created a pull request. https://github.com/rowland/fb/pull/79 Please try it.

adrianlmm commented 1 year ago

I can confirm that the patch works with both 32 and 64 bits of Ruby and Firebird.

adrianlmm commented 1 year ago

Solved.