Skip to content

Compatibility with Ruby 3.1.6 #11

@Swiss-Edward

Description

@Swiss-Edward

I just updated a Rails 7.1 application from Ruby 3.1.4 to Ruby 3.1.6 and now the Rdmtx gem no longer compiles. It fails with the error message:

Installing Rdmtx 0.5.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/Rdmtx-0.5.0/ext/rdmtx
/opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/bin/ruby -I /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0 extconf.rb
checking for -ldmtx... no
creating Makefile

current directory: /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/Rdmtx-0.5.0/ext/rdmtx
make DESTDIR\= sitearchdir\=./.gem.20241001-23101-xo6hmj sitelibdir\=./.gem.20241001-23101-xo6hmj clean

current directory: /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/Rdmtx-0.5.0/ext/rdmtx
make DESTDIR\= sitearchdir\=./.gem.20241001-23101-xo6hmj sitelibdir\=./.gem.20241001-23101-xo6hmj
compiling Rdmtx.c
Rdmtx.c:26:10: fatal error: 'dmtx.h' file not found
   26 | #include <dmtx.h>
      |          ^~~~~~~~
1 error generated.
make: *** [Rdmtx.o] Error 1

make failed, exit code 2

Gem files will remain installed in /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/Rdmtx-0.5.0 for inspection.
Results logged to /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/extensions/arm64-darwin-24/3.1.0/Rdmtx-0.5.0/gem_make.out

  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:102:in `run'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:51:in `block in make'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `each'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:43:in `make'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/ext_conf_builder.rb:42:in `build'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:171:in `build_extension'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:205:in `block in build_extensions'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `each'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/ext/builder.rb:202:in `build_extensions'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/3.1.0/rubygems/installer.rb:843:in `build_extensions'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/rubygems_gem_installer.rb:72:in `build_extensions'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/rubygems_gem_installer.rb:28:in `install'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/source/rubygems.rb:202:in `install'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/installer/gem_installer.rb:54:in `install'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/installer/parallel_installer.rb:156:in `do_install'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/installer/parallel_installer.rb:147:in `block in worker_pool'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/worker.rb:62:in `apply_func'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/worker.rb:57:in `block in process_queue'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/worker.rb:54:in `loop'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/worker.rb:54:in `process_queue'
  /opt/homebrew/Cellar/asdf/0.14.0/installs/ruby/3.1.6/lib/ruby/gems/3.1.0/gems/bundler-2.4.19/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'

Rolling back to Ruby 3.1.4 resolved the issue. Has Rdmtx been tested with Ruby 3.1.6?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions