Skip to content

bigdecimal ~> 1.3.5 fails on modern ruby #415

@sgdavis1

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions