hexlet-cv
hexlet-cv copied to clipboard
Bug: Failed to Install html2slim-0.2.0 and hpricot-0.8.6 on Ruby 3.2.2
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