Skip to content

Commit da329b7

Browse files
committed
Only add the gmp dependency for ruby versions >= 2.1.0 (#506).
* GMP acceleration of `Bignum` was first added in Ruby 2.1.0. https://bugs.ruby-lang.org/issues/8796
1 parent 69626e7 commit da329b7

File tree

2 files changed

+109
-7
lines changed

2 files changed

+109
-7
lines changed

share/ruby-install/ruby/dependencies.sh

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ case "$package_manager" in
1010
libssl-dev
1111
libncurses-dev
1212
libffi-dev
13-
libgmp-dev
1413
)
1514
;;
1615
dnf|yum)
@@ -23,7 +22,6 @@ case "$package_manager" in
2322
openssl-devel
2423
ncurses-devel
2524
libffi-devel
26-
gmp-devel
2725
)
2826
;;
2927
pacman)
@@ -36,7 +34,6 @@ case "$package_manager" in
3634
openssl
3735
libyaml
3836
libffi
39-
gmp
4037
)
4138
;;
4239
zypper)
@@ -50,7 +47,6 @@ case "$package_manager" in
5047
libopenssl-devel
5148
ncurses-devel
5249
libffi-devel
53-
gmp-devel
5450
)
5551
;;
5652
brew|port)
@@ -59,15 +55,13 @@ case "$package_manager" in
5955
automake
6056
libyaml
6157
libffi
62-
gmp
6358
)
6459
;;
6560
pkg)
6661
ruby_dependencies=(
6762
openssl
6863
libyaml
6964
libffi
70-
gmp
7165
)
7266
;;
7367
xbps)
@@ -78,11 +72,21 @@ case "$package_manager" in
7872
libyaml-devel
7973
ncurses-devel
8074
libffi-devel
81-
gmp-devel
8275
)
8376
;;
8477
esac
8578

79+
#
80+
# Add the gmp library for ruby >= 2.1.0 to accelrate the Bignum class.
81+
#
82+
if [[ "$ruby_version" > "2.1.0" ]] || [[ "$ruby_version" == "2.1.0" ]]; then
83+
case "$package_manager" in
84+
apt) ruby_dependencies+=(libgmp-dev) ;;
85+
dnf|yum|zypper|xbps) ruby_dependencies+=(gmp-devel) ;;
86+
brew|port|pacman|pkg) ruby_dependencies+=(gmp) ;;
87+
esac
88+
fi
89+
8690
#
8791
# Add bison and readline as a dependencies for ruby < 3.3.0.
8892
#

test/ruby-tests/dependencies_test.sh

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,104 @@ function test_when_package_manager_is_xbps()
128128
package_manager="$original_package_manager"
129129
}
130130

131+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_apt()
132+
{
133+
local original_package_manager="$package_manager"
134+
package_manager="apt"
135+
ruby_version="2.0.0"
136+
137+
source "$ruby_install_dir/$ruby/dependencies.sh"
138+
139+
assertFalse "did not omit libgmp-dev from \$ruby_dependencies" \
140+
'[[ "${ruby_dependencies[*]}" == *libgmp-dev" ]]'
141+
142+
package_manager="$original_package_manager"
143+
}
144+
145+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_dnf()
146+
{
147+
local original_package_manager="$package_manager"
148+
package_manager="dnf"
149+
ruby_version="2.0.0"
150+
151+
source "$ruby_install_dir/$ruby/dependencies.sh"
152+
153+
assertFalse "did not omit gmp-devel from \$ruby_dependencies" \
154+
'[[ "${ruby_dependencies[*]}" == *gmp-devel" ]]'
155+
156+
package_manager="$original_package_manager"
157+
}
158+
159+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_yum()
160+
{
161+
local original_package_manager="$package_manager"
162+
package_manager="yum"
163+
ruby_version="2.0.0"
164+
165+
source "$ruby_install_dir/$ruby/dependencies.sh"
166+
167+
assertFalse "did not omit gmp-devel from \$ruby_dependencies" \
168+
'[[ "${ruby_dependencies[*]}" == *gmp-devel" ]]'
169+
170+
package_manager="$original_package_manager"
171+
}
172+
173+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_pacman()
174+
{
175+
local original_package_manager="$package_manager"
176+
package_manager="pacman"
177+
ruby_version="2.0.0"
178+
179+
source "$ruby_install_dir/$ruby/dependencies.sh"
180+
181+
assertFalse "did not omit gmp from \$ruby_dependencies" \
182+
'[[ "${ruby_dependencies[*]}" == *gmp" ]]'
183+
184+
package_manager="$original_package_manager"
185+
}
186+
187+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_zypper()
188+
{
189+
local original_package_manager="$package_manager"
190+
package_manager="zypper"
191+
ruby_version="2.0.0"
192+
193+
source "$ruby_install_dir/$ruby/dependencies.sh"
194+
195+
assertFalse "did not omit gmp-devel from \$ruby_dependencies" \
196+
'[[ "${ruby_dependencies[*]}" == *gmp-devel" ]]'
197+
198+
package_manager="$original_package_manager"
199+
}
200+
201+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_pkg()
202+
{
203+
local original_package_manager="$package_manager"
204+
package_manager="pkg"
205+
ruby_version="2.0.0"
206+
207+
source "$ruby_install_dir/$ruby/dependencies.sh"
208+
209+
assertFalse "did not omit gmp from \$ruby_dependencies" \
210+
'[[ "${ruby_dependencies[*]}" == *gmp" ]]'
211+
212+
package_manager="$original_package_manager"
213+
}
214+
215+
function test_ruby_version_is_less_than_2_1_0_and_when_package_manager_is_xbps()
216+
{
217+
local original_package_manager="$package_manager"
218+
package_manager="xbps"
219+
ruby_version="2.0.0"
220+
221+
source "$ruby_install_dir/$ruby/dependencies.sh"
222+
223+
assertFalse "did not omit gmp-devel from \$ruby_dependencies" \
224+
'[[ "${ruby_dependencies[*]}" == *gmp-devel" ]]'
225+
226+
package_manager="$original_package_manager"
227+
}
228+
131229
function test_when_ruby_version_is_less_than_3_3_0_and_package_manager_is_apt()
132230
{
133231
local original_package_manager="$package_manager"

0 commit comments

Comments
 (0)