Skip to content

bigdecimal ~> 1.3.5 fails on modern ruby #415

Description

@sgdavis1

The dependency of bigdecimal ~> 1.3.5 fails on modern Ruby installations (I am running Amazon Linux 2023 with this toolkit and decided not to unpack a binary this time and install the gem). I have Ruby 3.2 and get the following execution failure:

[ec2-user@ip-172-xx-xx-xx ~]$ aptible
<internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require': /usr/local/lib64/gems/ruby3.2/bigdecimal-1.3.5/bigdecimal.so: undefined symbol: rb_check_safe_obj - /usr/local/lib64/gems/ruby3.2/bigdecimal-1.3.5/bigdecimal.so (LoadError)
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/share/ruby3.2/bigdecimal.rb:1:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/activesupport-5.2.8.1/lib/active_support/xml_mini.rb:5:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/activesupport-5.2.8.1/lib/active_support/core_ext/array/conversions.rb:3:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/activesupport-5.2.8.1/lib/active_support/core_ext/array.rb:5:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/activesupport-5.2.8.1/lib/active_support/core_ext.rb:4:in `block in <top (required)>'
	from /usr/local/share/ruby3.2-gems/gems/activesupport-5.2.8.1/lib/active_support/core_ext.rb:3:in `each'
	from /usr/local/share/ruby3.2-gems/gems/activesupport-5.2.8.1/lib/active_support/core_ext.rb:3:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-resource-1.1.4/lib/aptible/resource/base.rb:5:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-resource-1.1.4/lib/aptible/resource.rb:2:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-auth-1.5.0/lib/aptible/auth/resource.rb:1:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-auth-1.5.0/lib/aptible/auth.rb:19:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-cli-0.26.6/lib/aptible/cli/agent.rb:5:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-cli-0.26.6/lib/aptible/cli.rb:4:in `<top (required)>'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from <internal:/usr/share/ruby3.2-rubygems/rubygems/core_ext/kernel_require.rb>:86:in `require'
	from /usr/local/share/ruby3.2-gems/gems/aptible-cli-0.26.6/bin/aptible:4:in `<top (required)>'
	from /usr/local/bin/aptible:25:in `load'
	from /usr/local/bin/aptible:25:in `<main>'

However, I discovered it is an easy fix, I just hacked the gemspec here:

/usr/local/share/ruby3.2-gems/specifications/aptible-cli-0.26.6.gemspec

To use bigdecimal ~-> 3.1.3 (already installed), it seems the script works just fine. Is there a reason you cannot upgrade that dependency to a more modern version?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions