Skip to content

Commit f6ea306

Browse files
committed
Update Ruby 4 extension dependencies
Use Ruby 4-compatible SQLite and BigDecimal releases for database gem coverage. Build GCC extensions with CentOS Devtoolset 10, matching the compiler used to build Ruby 4.
1 parent 4aa8895 commit f6ea306

2 files changed

Lines changed: 8 additions & 12 deletions

File tree

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
11
FROM ghcr.io/datadog/images-rb/engines/ruby:4.0-centos
22

3-
RUN yum install -y gcc gcc-c++ make binutils file patch pkgconfig mariadb-devel postgresql-devel sqlite-devel
3+
RUN yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++ make binutils file patch pkgconfig mariadb-devel postgresql-devel sqlite-devel
44

55
RUN printf '%s\n' \
66
'#!/usr/bin/env bash' \
7-
'args=()' \
8-
'for arg; do' \
9-
' case "$arg" in' \
10-
' -Wduplicated-cond|-Wimplicit-fallthrough=0|-Wmisleading-indentation|-mbranch-protection=pac-ret) ;;' \
11-
' *) args+=("$arg") ;;' \
12-
' esac' \
13-
'done' \
14-
'exec /usr/bin/gcc "${args[@]}"' \
7+
'exec /opt/rh/devtoolset-10/root/usr/bin/gcc "$@"' \
158
> /usr/local/bin/gcc \
169
&& chmod +x /usr/local/bin/gcc

test/engines/test_database_gems.rb

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ def test_sqlite3
1919
when Gem::Requirement.new("~> 2.5.0") then "1.3.13"
2020
when Gem::Requirement.new(">= 2.6", "< 3.0") then "1.4.4"
2121
when Gem::Requirement.new(">= 3.0", "< 3.4") then "1.6.6"
22-
when Gem::Requirement.new(">= 3.4", "< 4.1") then "1.7.3"
22+
when Gem::Requirement.new(">= 3.4", "< 4.0") then "1.7.3"
23+
when Gem::Requirement.new(">= 4.0", "< 4.1") then "2.8.1"
2324
end
2425

2526
with_gem_home do |env|
@@ -31,9 +32,10 @@ def test_sqlite3
3132
def test_mysql2
3233
ruby_version = Gem::Version.new(RUBY_VERSION)
3334
needs_bigdecimal = Gem::Requirement.new(">= 3.4").satisfied_by?(ruby_version)
35+
bigdecimal_version = ruby_version >= Gem::Version.new("4.0") ? "4.1.2" : "3.1.8"
3436

3537
with_gem_home do |env|
36-
install_gem(env, "bigdecimal", "3.1.8", false) if needs_bigdecimal
38+
install_gem(env, "bigdecimal", bigdecimal_version, false) if needs_bigdecimal
3739
install_gem(env, "mysql2", "0.5.7", false)
3840
requirements = ["-rmysql2"]
3941
requirements.unshift("-rbigdecimal") if needs_bigdecimal
@@ -47,10 +49,11 @@ def test_pg
4749
needs_bigdecimal =
4850
Gem::Requirement.new("< 1.2.0").satisfied_by?(Gem::Version.new(pg_version)) &&
4951
Gem::Requirement.new(">= 3.4").satisfied_by?(ruby_version)
52+
bigdecimal_version = ruby_version >= Gem::Version.new("4.0") ? "4.1.2" : "3.1.8"
5053

5154
with_gem_home do |env|
5255
# pg < 1.2.0 loads but does not declare bigdecimal.
53-
install_gem(env, "bigdecimal", "3.1.8", false) if needs_bigdecimal
56+
install_gem(env, "bigdecimal", bigdecimal_version, false) if needs_bigdecimal
5457
install_gem(env, "pg", pg_version, true)
5558
requirements = ["-rpg"]
5659
requirements.unshift("-rbigdecimal") if needs_bigdecimal

0 commit comments

Comments
 (0)