I'm attempting to install the bzip2-ruby gem on my Xubuntu 13.04 x64 system.
I'm using RVM (Using ruby 2.0.0), and installing via the following command:
gem install bzip2-ruby
It fails to install, and this is the output I receive (taken from the compilation log):
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb
checking for bzlib.h... yes
checking for BZ2_bzWriteOpen() in -lbz2... yes
creating Makefile
make
compiling bzip2.c
In file included from bzip2.c:5:0:
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:2:2: warning: #warning use "ruby/io.h" instead of "rubyio.h" [-Wcpp]
bzip2.c: In function ‘bz_find_struct’:
bzip2.c:117:71: error: ‘OpenFile’ undeclared (first use in this function)
bzip2.c:117:71: note: each undeclared identifier is reported only once for each function it appears in
bzip2.c:117:81: error: expected expression before ‘)’ token
bzip2.c: In function ‘bz_io_data_finalize’:
bzip2.c:297:13: error: unknown type name ‘OpenFile’
bzip2.c:297:31: error: ‘OpenFile’ undeclared (first use in this function)
bzip2.c:297:41: error: expected expression before ‘)’ token
bzip2.c:298:21: error: request for member ‘f’ in something not a structure or union
bzip2.c:299:28: error: request for member ‘f’ in something not a structure or union
bzip2.c:300:21: error: request for member ‘f’ in something not a structure or union
bzip2.c:302:21: error: request for member ‘f2’ in something not a structure or union
bzip2.c:303:28: error: request for member ‘f2’ in something not a structure or union
bzip2.c:304:21: error: request for member ‘f2’ in something not a structure or union
bzip2.c: In function ‘bz_writer_init’:
bzip2.c:473:9: error: unknown type name ‘OpenFile’
bzip2.c:483:13: warning: assignment from incompatible pointer type [enabled by default]
bzip2.c:483:13: warning: passing argument 1 of ‘rb_io_check_closed’ from incompatible pointer type [enabled by default]
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0,
from bzip2.c:5:
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:179:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’
bzip2.c:484:13: warning: passing argument 1 of ‘rb_io_check_writable’ from incompatible pointer type [enabled by default]
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0,
from bzip2.c:5:
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:172:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’
bzip2.c: In function ‘bz_reader_init’:
bzip2.c:698:13: error: unknown type name ‘OpenFile’
bzip2.c:703:13: warning: assignment from incompatible pointer type [enabled by default]
bzip2.c:703:13: warning: passing argument 1 of ‘rb_io_check_closed’ from incompatible pointer type [enabled by default]
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0,
from bzip2.c:5:
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:179:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’
bzip2.c:704:13: warning: passing argument 1 of ‘rb_io_check_readable’ from incompatible pointer type [enabled by default]
In file included from /home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/backward/rubyio.h:6:0,
from bzip2.c:5:
/home/misutowolf/.rvm/rubies/ruby-2.0.0-p247/include/ruby-2.0.0/ruby/io.h:173:6: note: expected ‘struct rb_io_t *’ but argument is of type ‘int *’
bzip2.c: In function ‘bz_next_available’:
bzip2.c:779:18: warning: operation on ‘bzf->buf’ may be undefined [-Wsequence-point]
bzip2.c: In function ‘bz_reader_ungetc’:
bzip2.c:981:18: warning: operation on ‘bzf->buf’ may be undefined [-Wsequence-point]
bzip2.c: In function ‘bz_reader_ungets’:
bzip2.c:1025:18: warning: operation on ‘bzf->buf’ may be undefined [-Wsequence-point]
bzip2.c: In function ‘Init_bzip2_ext’:
bzip2.c:1726:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
make: *** [bzip2.o] Error 1
Now, I have pretty much no experience with C/C++, so I couldn't even begin to debug the C code that it's compiling...but...anyone have any ideas? I need a Ruby BZip2 gem library for a project that I'm working on, and this was the first one I found, not sure if there are any alternatives I could try.