hexlet-cv icon indicating copy to clipboard operation
hexlet-cv copied to clipboard

Bug: Failed to Install html2slim-0.2.0 and hpricot-0.8.6 on Ruby 3.2.2

Open polina-belyakaeva opened this issue 7 months ago • 0 comments

Summary

Attempting to install the gems html2slim and hpricot results in compatibility errors, making their use in a project with Ruby 3.2.2 impossible.

The problem occurs with "make setup" and commit (the slim-lint pre-commit hook is triggered: requires html2slim-0.2.0 and hpricot-0.8.6).

Environment: Ruby Version: 3.2.2 Operating System: macOS Sonoma 14.5 Version Manager: rvm 1.29.12-next

Reproduction steps

1. Run the command "make setup"
2. Encounter the following error message

or

1. Run the command commit -m ''
2. Encounter the following error message

Expected result

Dependencies are installed successfully.

Actual result

  • on 'make setup':

`Installing hpricot 0.8.6 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/hpricot-0.8.6/ext/fast_xs

/Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/bin/ruby extconf.rb checking for stdio.h... yes creating Makefile

current directory: /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/hpricot-0.8.6/ext/fast_xs make DESTDIR= sitearchdir=./.gem.20240731-70573-skdwv0 sitelibdir=./.gem.20240731-70573-skdwv0 clean

current directory: /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/hpricot-0.8.6/ext/fast_xs make DESTDIR= sitearchdir=./.gem.20240731-70573-skdwv0 sitelibdir=./.gem.20240731-70573-skdwv0 compiling fast_xs.c fast_xs.c:165:39: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE ()(VALUE, VALUE)' (aka 'unsigned long ()(unsigned long, unsigned long)') [-Wincompatible-function-pointer-types] array = rb_rescue(unpack_utf8, self, unpack_uchar, self); ^~~~~~~~~~~~ /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/include/ruby-3.2.0/ruby/internal/iterator.h:364:62: note: passing argument to parameter 'r_proc' here VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2); ^ 1 error generated. make[2]: *** [fast_xs.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/hpricot-0.8.6 for inspection. Results logged to /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/extensions/x86_64-darwin-23/3.2.0/hpricot-0.8.6/gem_make.out

/Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:119:in run' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:51:in block in make' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:43:in each' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:43:in make' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/ext_conf_builder.rb:41:in build' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:187:in build_extension' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:221:in block in build_extensions' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:218:in each' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/ext/builder.rb:218:in build_extensions' /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/installer.rb:843:in build_extensions' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/rubygems_gem_installer.rb:72:in build_extensions' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/rubygems_gem_installer.rb:28:in install' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/source/rubygems.rb:200:in install' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/installer/gem_installer.rb:54:in install' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/installer/gem_installer.rb:16:in install_from_spec' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/installer/parallel_installer.rb:155:in do_install' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/installer/parallel_installer.rb:146:in block in worker_pool' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/worker.rb:62:in apply_func' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/worker.rb:57:in block in process_queue' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/worker.rb:54:in loop' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/worker.rb:54:in process_queue' /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/worker.rb:90:in block (2 levels) in create_threads'

An error occurred while installing hpricot (0.8.6), and Bundler cannot continue.

In Gemfile: html2slim was resolved to 0.2.0, which depends on hpricot

== Command ["bundle install --without production"] failed == make[1]: *** [setup-app] Error 1 make: *** [setup] Error 2`

  • on 'commit':

`⚠ Running tasks for staged files... ❯ .lintstagedrc.json — 12 files ❯ **/.{rb,rake,axlsx} — 4 files ✖ bundle exec rubocop --force-exclusion [KILLED] ↓ **/.scss — no files ❯ **/*.html.slim — 1 file ✖ bundle exec slim-lint app/views/ [FAILED] ↓ Skipped because of errors from tasks. ✔ Reverting to original state because of errors... ✔ Cleaning up temporary files...

✖ bundle exec slim-lint app/views/: /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/definition.rb:523:in materialize': Could not find html2slim-0.2.0, html2slim-0.2.0, html2slim-0.2.0, html2slim-0.2.0, html2slim-0.2.0, html2slim-0.2.0, hpricot-0.8.6, hpricot-0.8.6, hpricot-0.8.6, hpricot-0.8.6, hpricot-0.8.6, hpricot-0.8.6 in locally installed gems (Bundler::GemNotFound) from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/definition.rb:186:in specs' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/definition.rb:243:in specs_for' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/runtime.rb:18:in setup' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler.rb:170:in setup' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/setup.rb:20:in block in <top (required)>' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/ui/shell.rb:159:in with_level' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/ui/shell.rb:111:in silence' from /Users/polinabelakaeva/.rvm/gems/ruby-3.2.2/gems/bundler-2.4.1/lib/bundler/setup.rb:20:in <top (required)>' from <internal:/Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:85:in require' from internal:/Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb:85:in require' from /Users/polinabelakaeva/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems.rb:1370:in <top (required)>' from internal:gem_prelude:2:in require' from <internal:gem_prelude>:2:in internal:gem_prelude'

✖ bundle exec rubocop --force-exclusion failed without output (KILLED).`

Browsers

No response

OS

Mac

polina-belyakaeva avatar Jul 31 '24 10:07 polina-belyakaeva