Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-5553

[Ruby] red-arrow gem does not compile on ruby:2.5 docker image

    XMLWordPrintableJSON

Details

    Description

      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 _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

       

       

      Attachments

        Issue Links

          Activity

            People

              kou Kouhei Sutou
              seand Sean Dilda
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m