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

[RUBY] Gem does not install on macOS due to glib2 3.3.7 compilation failure

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 0.15.0
    • 0.15.1, 0.16.0
    • Ruby
    • None
    • macOS Mojave 10.14.6
      Ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
      Xcode 10.3

    Description

      System information:

      • macOS Mojave 10.14.6
      • Ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18] managed via rbenv

      Reproduction steps:
      Run gem install red-arrow

      Observe:
      The following compilation errors occur during compilation of dependent gem glib2 3.3.7:

      Building native extensions. This could take a while...
      ERROR:  Error installing red-arrow:
      	ERROR: Failed to build gem native extension.
      
          current directory: /Users/kwedinger/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/glib2-3.3.7/ext/glib2
      /Users/kwedinger/.rbenv/versions/2.6.3/bin/ruby -I /Users/kwedinger/.rbenv/versions/2.6.3/lib/ruby/2.6.0 -r ./siteconf20191007-84053-1y4ly2q.rb extconf.rb
      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... no
      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... yes
      checking for -Wunsafe-loop-optimizations option to compiler... no
      checking for -Wwrite-strings option to compiler... yes
      checking for Homebrew... yes
      checking for gobject-2.0 version (>= 2.12.0)... yes
      checking for gthread-2.0... yes
      checking for unistd.h... yes
      checking for io.h... no
      checking for g_spawn_close_pid() in glib.h... yes
      checking for g_thread_init() in glib.h... yes
      checking for g_main_depth() in glib.h... yes
      checking for g_listenv() in glib.h... yes
      checking for rb_check_array_type() in ruby.h... yes
      checking for rb_check_hash_type() in ruby.h... yes
      checking for rb_exec_recursive() in ruby.h... yes
      checking for rb_errinfo() in ruby.h... yes
      checking for rb_thread_call_without_gvl() in ruby.h... yes
      checking for ruby_native_thread_p() in ruby.h... yes
      checking for rb_thread_call_with_gvl() in ruby.h... yes
      checking for rb_gc_register_mark_object() in ruby.h... yes
      checking for rb_exc_new_str() in ruby.h... yes
      checking for rb_enc_str_new_static() in ruby.h... yes
      checking for curr_thread in ruby.h,node.h... no
      checking for rb_curr_thread in ruby.h,node.h... no
      creating ruby-glib2.pc
      creating glib-enum-types.c
      creating glib-enum-types.h
      creating Makefile
      
      current directory: /Users/kwedinger/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/glib2-3.3.7/ext/glib2
      make "DESTDIR=" clean
      
      current directory: /Users/kwedinger/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0/gems/glib2-3.3.7/ext/glib2
      make "DESTDIR="
      compiling rbglib-gc.c
      compiling rbgobj_signal.c
      compiling rbglib_int64.c
      compiling rbglib_convert.c
      compiling rbglib_bookmarkfile.c
      compiling rbglib-variant.c
      compiling glib-enum-types.c
      glib-enum-types.c:632:9: warning: 'G_SPAWN_ERROR_2BIG' is deprecated: Use 'G_SPAWN_ERROR_TOO_BIG' instead [-Wdeprecated-declarations]
            { G_SPAWN_ERROR_2BIG, "G_SPAWN_ERROR_2BIG", "2big" },
              ^
      /usr/local/Cellar/glib/2.62.1/include/glib-2.0/glib/gspawn.h:76:22: note: 'G_SPAWN_ERROR_2BIG' has been explicitly marked deprecated here
        G_SPAWN_ERROR_2BIG GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(G_SPAWN_ERROR_TOO_BIG) = G_SPAWN_ERROR_TOO_BIG,
                           ^
      /usr/local/Cellar/glib/2.62.1/include/glib-2.0/glib/gversionmacros.h:421:54: note: expanded from macro 'GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR'
      # define GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f)   GLIB_DEPRECATED_ENUMERATOR_FOR(f)
                                                           ^
      /usr/local/Cellar/glib/2.62.1/include/glib-2.0/glib/gmacros.h:1002:43: note: expanded from macro 'GLIB_DEPRECATED_ENUMERATOR_FOR'
      #define GLIB_DEPRECATED_ENUMERATOR_FOR(f) G_DEPRECATED_FOR(f)
                                                ^
      /usr/local/Cellar/glib/2.62.1/include/glib-2.0/glib/gmacros.h:950:44: note: expanded from macro 'G_DEPRECATED_FOR'
      #define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead")))
                                                 ^
      glib-enum-types.c:729:12: warning: incompatible pointer to integer conversion initializing 'guint' (aka 'unsigned int') with an expression of type 'const char [2]' [-Wint-conversion]
            { }, "}", "}" },
                 ^~~
      glib-enum-types.c:729:12: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            { }, "}", "}" },
                 ^~~~~~~~
                 {       }
      glib-enum-types.c:729:12: error: initializer element is not a compile-time constant
            { }, "}", "}" },
                 ^~~
      glib-enum-types.c:729:22: error: expected ';' at end of declaration
            { }, "}", "}" },
                           ^
                           ;
      glib-enum-types.c:730:41: error: expected expression
            { G_GNUC_BEGIN_IGNORE_DEPRECATIONS, "G_GNUC_BEGIN_IGNORE_DEPRECATIONS", "g-gnuc-begin-ignore-deprecations" },
                                              ^
      glib-enum-types.c:730:115: error: expected expression
            { G_GNUC_BEGIN_IGNORE_DEPRECATIONS, "G_GNUC_BEGIN_IGNORE_DEPRECATIONS", "g-gnuc-begin-ignore-deprecations" },
                                                                                                                        ^
      glib-enum-types.c:741:62: error: use of undeclared identifier 'values'
          etype = g_flags_register_static ("GTestSubprocessFlags", values);
                                                                   ^
      glib-enum-types.c:743:3: error: expected identifier or '('
        return etype;
        ^
      glib-enum-types.c:744:1: error: extraneous closing brace ('}')
      }
      ^
      3 warnings and 7 errors generated.
      make: *** [glib-enum-types.o] Error 1
      
      make failed, exit code 2
      

      This appears to be related to https://github.com/ruby-gnome/ruby-gnome/issues/1294 which is fixed in glib2 3.3.8.

      Attachments

        Activity

          People

            kou Kouhei Sutou
            jkwuc89 Keith Wedinger
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: