Sean Dilda created ARROW-5553: --------------------------------- Summary: red-arrow gem does not compile on ruby:2.5 docker image Key: ARROW-5553 URL: https://issues.apache.org/jira/browse/ARROW-5553 Project: Apache Arrow Issue Type: Bug Components: Ruby Affects Versions: 0.13.0 Reporter: Sean Dilda
I'm attempting to install the red-arrow gem in a docker container based on the ruby:2.5 image on docker hub. I followed the debian instructions on [https://github.com/red-data-tools/packages.red-data-tools.org] to install libarrow-dev. I then ran 'gem install red-arrow' The output is as follows: Building native extensions. This could take a while... ERROR: Error installing red-arrow: ERROR: Failed to build gem native extension. current directory: /usr/local/bundle/gems/red-arrow-0.13.0/ext/arrow /usr/local/bin/ruby -I /usr/local/lib/ruby/site_ruby/2.5.0 -r ./siteconf20190611-1782-1gg8bpn.rb extconf.rb checking --enable-debug-build option... no checking C++ compiler... g++ checking g++ version... 6.3 (gnu++14) checking for --enable-debug-build option... no checking for -Wall option to compiler... yes checking for -Waggregate-return option to compiler... yes checking for -Wcast-align option to compiler... yes checking for -Wextra option to compiler... yes checking for -Wformat=2 option to compiler... yes checking for -Winit-self option to compiler... yes checking for -Wlarger-than-65500 option to compiler... yes checking for -Wmissing-declarations option to compiler... yes checking for -Wmissing-format-attribute option to compiler... yes checking for -Wmissing-include-dirs option to compiler... yes checking for -Wmissing-noreturn option to compiler... yes checking for -Wmissing-prototypes option to compiler... yes checking for -Wnested-externs option to compiler... yes checking for -Wold-style-definition option to compiler... yes checking for -Wpacked option to compiler... yes checking for -Wp,-D_FORTIFY_SOURCE=2 option to compiler... yes checking for -Wpointer-arith option to compiler... yes checking for -Wswitch-default option to compiler... yes checking for -Wswitch-enum option to compiler... yes checking for -Wundef option to compiler... yes checking for -Wout-of-line-declaration option to compiler... no checking for -Wunsafe-loop-optimizations option to compiler... yes checking for -Wwrite-strings option to compiler... yes checking for Homebrew... no checking for arrow... yes checking for arrow-glib... yes creating Makefile current directory: /usr/local/bundle/gems/red-arrow-0.13.0/ext/arrow make "DESTDIR=" clean current directory: /usr/local/bundle/gems/red-arrow-0.13.0/ext/arrow make "DESTDIR=" compiling arrow.cpp compiling record-batch.cpp record-batch.cpp: In member function 'VALUE red_arrow::{anonymous}::StructArrayValueConverter::convert(const arrow::StructArray&, int64_t)': record-batch.cpp:344:40: error: 'const class arrow::StructArray' has no member named 'struct_type' const auto struct_type = array.struct_type(); ^~~~~~~~~~~ In file included from /usr/local/include/ruby-2.5.0/ruby/ruby.h:29:0, from /usr/local/include/ruby-2.5.0/ruby.h:33, from /usr/local/bundle/gems/glib2-3.3.6/ext/glib2/rbgobject.h:26, from red-arrow.hpp:33, from record-batch.cpp:20: /usr/local/include/ruby-2.5.0/ruby/defines.h:105:57: error: void value not ignored as it ought to be #define RB_GNUC_EXTENSION_BLOCK(x) __extension__ ({ x; }) ^ /usr/local/include/ruby-2.5.0/ruby/intern.h:788:35: note: in expansion of macro 'RB_GNUC_EXTENSION_BLOCK' #define rb_utf8_str_new(str, len) RB_GNUC_EXTENSION_BLOCK( \ ^~~~~~~~~~~~~~~~~~~~~~~ record-batch.cpp:350:18: note: in expansion of macro 'rb_utf8_str_new' key_ = rb_utf8_str_new(field_name.data(), field_name.length()); ^~~~~~~~~~~~~~~ record-batch.cpp: In member function 'uint8_t red_arrow::{anonymous}::UnionArrayValueConverter::compute_child_index(const arrow::UnionArray&, arrow::UnionType*, const char*)': record-batch.cpp:516:66: error: no matching function for call to 'arrow::Status::Invalid(const char [18], const unsigned char&)' check_status(Status::Invalid("Unknown type ID: ", type_id), ^ In file included from /usr/include/arrow/buffer.h:30:0, from /usr/include/arrow/array.h:28, from /usr/include/arrow/api.h:23, from red-arrow.hpp:22, from record-batch.cpp:20: /usr/include/arrow/status.h:150:17: note: candidate: static arrow::Status arrow::Status::Invalid(const string&) static Status Invalid(const std::string& msg) { ^~~~~~~ /usr/include/arrow/status.h:150:17: note: candidate expects 1 argument, 2 provided Makefile:234: recipe for target 'record-batch.o' failed make: *** [record-batch.o] Error 1 make failed, exit code 2 Gem files will remain installed in /usr/local/bundle/gems/red-arrow-0.13.0 for inspection. Results logged to /usr/local/bundle/extensions/x86_64-linux/2.5.0/red-arrow-0.13.0/gem_make.out -- This message was sent by Atlassian JIRA (v7.6.3#76005)