zenhob / hcl

Command-line tool for manipulating Harvest timesheets
http://zenhob.github.io/hcl
MIT License
223 stars 45 forks source link

make: *** [yajl_ext.o] Error 1, failed, exit code 2 #81

Closed andergmartins closed 4 years ago

andergmartins commented 7 years ago

I was trying to install and got the following:

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

    current directory: /Users/anderson/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl
/Users/anderson/.rbenv/versions/2.4.0/bin/ruby -r ./siteconf20170303-28576-4k4zdh.rb extconf.rb
creating Makefile

current directory: /Users/anderson/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl
make "DESTDIR=" clean

current directory: /Users/anderson/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl
make "DESTDIR="
compiling yajl.c
compiling yajl_alloc.c
compiling yajl_buf.c
compiling yajl_encode.c
compiling yajl_ext.c
yajl_ext.c:881:22: error: use of undeclared identifier 'rb_cFixnum'
    rb_define_method(rb_cFixnum, "to_json", rb_yajl_json_ext_fixnum_to_json, -1);
                     ^
1 error generated.
make: *** [yajl_ext.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/anderson/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1 for inspection.
Results logged to /Users/anderson/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/extensions/x86_64-darwin-16/2.4.0-static/yajl-ruby-1.2.1/gem_make.out
andergmartins commented 7 years ago

Sorry, I'm not a ruby developer, but tried to install compiling from the code, still no luck:

$ rake doc && rake install
rake aborted!
LoadError: cannot load such file -- rubygems/tasks
/Users/anderson/Temp/hcl/Rakefile:1:in `<top (required)>'
(See full trace by running task with --trace)

My setup:

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]

$ bundle -v
Bundler version 1.14.3

$ gem -v
2.6.8

The list of gemspec files:

$ find . | grep gemspec
./hcl.gemspec
./vendor/bundle/ruby/2.4.0/gems/chronic-0.10.2/chronic.gemspec
./vendor/bundle/ruby/2.4.0/gems/columnize-0.9.0/columnize.gemspec
./vendor/bundle/ruby/2.4.0/gems/docile-1.1.5/docile.gemspec
./vendor/bundle/ruby/2.4.0/gems/escape_utils-1.1.0/escape_utils.gemspec
./vendor/bundle/ruby/2.4.0/gems/faraday-0.9.1/faraday.gemspec
./vendor/bundle/ruby/2.4.0/gems/highline-1.7.2/highline.gemspec
./vendor/bundle/ruby/2.4.0/gems/json-1.8.3/json-java.gemspec
./vendor/bundle/ruby/2.4.0/gems/json-1.8.3/json.gemspec
./vendor/bundle/ruby/2.4.0/gems/json-1.8.3/json_pure.gemspec
./vendor/bundle/ruby/2.4.0/gems/metaclass-0.0.4/metaclass.gemspec
./vendor/bundle/ruby/2.4.0/gems/method_source-0.8.2/method_source.gemspec
./vendor/bundle/ruby/2.4.0/gems/multipart-post-2.0.0/multipart-post.gemspec
./vendor/bundle/ruby/2.4.0/gems/rdiscount-2.1.8/rdiscount.gemspec
./vendor/bundle/ruby/2.4.0/gems/rubygems-tasks-0.2.4/gemspec.yml
./vendor/bundle/ruby/2.4.0/gems/rubygems-tasks-0.2.4/rubygems-tasks.gemspec
./vendor/bundle/ruby/2.4.0/gems/simplecov-html-0.10.0/simplecov-html.gemspec
./vendor/bundle/ruby/2.4.0/gems/slop-3.6.0/slop.gemspec
./vendor/bundle/ruby/2.4.0/gems/trollop-2.1.2/trollop.gemspec
./vendor/bundle/ruby/2.4.0/gems/yajl-ruby-1.2.1/yajl-ruby.gemspec
./vendor/bundle/ruby/2.4.0/gems/yard-0.8.7.6/yard.gemspec
./vendor/bundle/ruby/2.4.0/specifications/byebug-5.0.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/chronic-0.10.2.gemspec
./vendor/bundle/ruby/2.4.0/specifications/coderay-1.1.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/columnize-0.9.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/docile-1.1.5.gemspec
./vendor/bundle/ruby/2.4.0/specifications/escape_utils-1.1.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/faraday-0.9.1.gemspec
./vendor/bundle/ruby/2.4.0/specifications/gem-man-0.3.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/highline-1.7.2.gemspec
./vendor/bundle/ruby/2.4.0/specifications/hpricot-0.8.6.gemspec
./vendor/bundle/ruby/2.4.0/specifications/metaclass-0.0.4.gemspec
./vendor/bundle/ruby/2.4.0/specifications/method_source-0.8.2.gemspec
./vendor/bundle/ruby/2.4.0/specifications/minitest-5.7.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/multipart-post-2.0.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/mustache-1.0.1.gemspec
./vendor/bundle/ruby/2.4.0/specifications/pry-0.10.1.gemspec
./vendor/bundle/ruby/2.4.0/specifications/rake-10.4.2.gemspec
./vendor/bundle/ruby/2.4.0/specifications/rdiscount-2.1.8.gemspec
./vendor/bundle/ruby/2.4.0/specifications/rubygems-tasks-0.2.4.gemspec
./vendor/bundle/ruby/2.4.0/specifications/simplecov-html-0.10.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/slop-3.6.0.gemspec
./vendor/bundle/ruby/2.4.0/specifications/trollop-2.1.2.gemspec
./vendor/bundle/ruby/2.4.0/specifications/yard-0.8.7.6.gemspec

Then I tried:

$ bundle install --jobs=3 --retry=3
Fetching gem metadata from https://rubygems.org/.......
Fetching version metadata from https://rubygems.org/.
Using rake 10.4.2
Using columnize 0.9.0
Using chronic 0.10.2
Using coderay 1.1.0
Using docile 1.1.5
Using escape_utils 1.1.0
Using multipart-post 2.0.0
Using gem-man 0.3.0
Using highline 1.7.2
Using method_source 0.8.2
Using slop 3.6.0
Using trollop 2.1.2
Using hpricot 0.8.6
Installing json 1.8.3 with native extensions
Installing yajl-ruby 1.2.1 with native extensions
Using metaclass 0.0.4
Using minitest 5.7.0
Using mustache 1.0.1
Using rdiscount 2.1.8
Using rubygems-tasks 0.2.4
Using simplecov-html 0.10.0
Using yard 0.8.7.6
Using bundler 1.14.3
Using byebug 5.0.0
Using faraday 0.9.1
Using pry 0.10.1
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/anderson/Temp/hcl/vendor/bundle/ruby/2.4.0/gems/json-1.8.3/ext/json/ext/generator
/Users/anderson/.rbenv/versions/2.4.0/bin/ruby -r ./siteconf20170303-29042-191alvl.rb extconf.rb
creating Makefile

current directory: /Users/anderson/Temp/hcl/vendor/bundle/ruby/2.4.0/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR=" clean

current directory: /Users/anderson/Temp/hcl/vendor/bundle/ruby/2.4.0/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
generator.c:861:25: error: use of undeclared identifier 'rb_cFixnum'
    } else if (klass == rb_cFixnum) {
                        ^
generator.c:863:25: error: use of undeclared identifier 'rb_cBignum'
    } else if (klass == rb_cBignum) {
                        ^
generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero]
    rb_scan_args(argc, argv, "01", &opts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2143:9: note: expanded from macro 'rb_scan_args'
        rb_scan_args0(argc,argvp,fmt,\
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2329:8: note: expanded from macro 'rb_scan_args0'
                     rb_scan_args_verify(fmt, varc), vars)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2201:11: note: expanded from macro
'rb_scan_args_verify'
        verify = rb_scan_args_verify_count(fmt, varc); \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2167:6: note: expanded from macro
'rb_scan_args_count_hash'
     rb_scan_args_count_block(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2162:6: note: expanded from macro
'rb_scan_args_count_block'
     rb_scan_args_count_end(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2158:12: note: expanded from macro
'rb_scan_args_count_end'
    ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero]
    rb_scan_args(argc, argv, "01", &opts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2143:9: note: expanded from macro 'rb_scan_args'
        rb_scan_args0(argc,argvp,fmt,\
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2329:8: note: expanded from macro 'rb_scan_args0'
                     rb_scan_args_verify(fmt, varc), vars)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2201:11: note: expanded from macro
'rb_scan_args_verify'
        verify = rb_scan_args_verify_count(fmt, varc); \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2167:6: note: expanded from macro
'rb_scan_args_count_hash'
     rb_scan_args_count_block(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2163:6: note: expanded from macro
'rb_scan_args_count_block'
     rb_scan_args_count_end(fmt, ofs+1, varc, vari+1))
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2158:12: note: expanded from macro
'rb_scan_args_count_end'
    ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero]
    rb_scan_args(argc, argv, "01", &opts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2143:9: note: expanded from macro 'rb_scan_args'
        rb_scan_args0(argc,argvp,fmt,\
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2329:8: note: expanded from macro 'rb_scan_args0'
                     rb_scan_args_verify(fmt, varc), vars)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2201:11: note: expanded from macro
'rb_scan_args_verify'
        verify = rb_scan_args_verify_count(fmt, varc); \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2168:6: note: expanded from macro
'rb_scan_args_count_hash'
     rb_scan_args_count_block(fmt, ofs+1, varc, vari+1))
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2162:6: note: expanded from macro
'rb_scan_args_count_block'
     rb_scan_args_count_end(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2158:12: note: expanded from macro
'rb_scan_args_count_end'
    ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero]
    rb_scan_args(argc, argv, "01", &opts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2143:9: note: expanded from macro 'rb_scan_args'
        rb_scan_args0(argc,argvp,fmt,\
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2329:8: note: expanded from macro 'rb_scan_args0'
                     rb_scan_args_verify(fmt, varc), vars)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2201:11: note: expanded from macro
'rb_scan_args_verify'
        verify = rb_scan_args_verify_count(fmt, varc); \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2167:6: note: expanded from macro
'rb_scan_args_count_hash'
     rb_scan_args_count_block(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2162:6: note: expanded from macro
'rb_scan_args_count_block'
     rb_scan_args_count_end(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2158:12: note: expanded from macro
'rb_scan_args_count_end'
    ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero]
    rb_scan_args(argc, argv, "01", &opts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2143:9: note: expanded from macro 'rb_scan_args'
        rb_scan_args0(argc,argvp,fmt,\
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2329:8: note: expanded from macro 'rb_scan_args0'
                     rb_scan_args_verify(fmt, varc), vars)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2201:11: note: expanded from macro
'rb_scan_args_verify'
        verify = rb_scan_args_verify_count(fmt, varc); \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 4 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2167:6: note: expanded from macro
'rb_scan_args_count_hash'
     rb_scan_args_count_block(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2162:6: note: expanded from macro
'rb_scan_args_count_block'
     rb_scan_args_count_end(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2158:12: note: expanded from macro
'rb_scan_args_count_end'
    ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
generator.c:975:5: warning: division by zero is undefined [-Wdivision-by-zero]
    rb_scan_args(argc, argv, "01", &opts);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2143:9: note: expanded from macro 'rb_scan_args'
        rb_scan_args0(argc,argvp,fmt,\
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2329:8: note: expanded from macro 'rb_scan_args0'
                     rb_scan_args_verify(fmt, varc), vars)
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2201:11: note: expanded from macro
'rb_scan_args_verify'
        verify = rb_scan_args_verify_count(fmt, varc); \
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 5 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2167:6: note: expanded from macro
'rb_scan_args_count_hash'
     rb_scan_args_count_block(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2162:6: note: expanded from macro
'rb_scan_args_count_block'
     rb_scan_args_count_end(fmt, ofs, varc, vari) : \
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/anderson/.rbenv/versions/2.4.0/include/ruby-2.4.0/ruby/ruby.h:2158:12: note: expanded from macro
'rb_scan_args_count_end'
    ((vari)/(!fmt[ofs] || rb_scan_args_bad_format(fmt)))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6 warnings and 2 errors generated.
make: *** [generator.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/anderson/Temp/hcl/vendor/bundle/ruby/2.4.0/gems/json-1.8.3 for inspection.
Results logged to
/Users/anderson/Temp/hcl/vendor/bundle/ruby/2.4.0/extensions/x86_64-darwin-16/2.4.0-static/json-1.8.3/gem_make.out

An error occurred while installing json (1.8.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.3'` succeeds before bundling.

Then I tried gem install json -v '1.8.3', but same error occur. Am I doing anything wrong?

natyork commented 7 years ago

I'm running into the same issue - it appears to be an issue with yajl-ruby 1.2.1 support of ruby 2.4.0. Yajl- ruby has been updated to 1.3.0 to address this issue (https://github.com/brianmario/yajl-ruby/pull/165) but the HCL gemspec is still pointing to yajl-ruby 1.2.1

ghost commented 7 years ago

Issue still not fixed, any info from the developer?

iba-1 commented 7 years ago

I think i've solved it. Instead of trying to install from gem, try building it from source. Execute rake using: gem install bundler bundle bundle exec rake doc && bundle exec rake test && bundle exec rake install

At this point run ./hcl inside 'bin' folder, see if you're missing gems and install all the gems you need with gem install (use specified versions) . Then enjoy.

teddywing commented 6 years ago

Fixed by #84.