mirror of
https://github.com/rbenv/ruby-build.git
synced 2026-09-15 23:32:06 -04:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd50704763 |
||
|
|
9072838d9a |
||
|
|
6ac4038204 |
||
|
|
59b1392a15 |
||
|
|
eff399fced | ||
|
|
8f9a450872 | ||
|
|
52d16a1321 |
5 changed files with 89 additions and 6 deletions
|
|
@ -18,7 +18,7 @@
|
||||||
# -6, --ipv6 Resolve names to IPv6 addresses only
|
# -6, --ipv6 Resolve names to IPv6 addresses only
|
||||||
#
|
#
|
||||||
|
|
||||||
RUBY_BUILD_VERSION="20260902"
|
RUBY_BUILD_VERSION="20260916"
|
||||||
|
|
||||||
OLDIFS="$IFS"
|
OLDIFS="$IFS"
|
||||||
|
|
||||||
|
|
@ -754,6 +754,13 @@ build_package_standard() {
|
||||||
# override them and notably lose the -O3, producing a -O0 Ruby.
|
# override them and notably lose the -O3, producing a -O0 Ruby.
|
||||||
export cflags="-std=gnu17 $cflags"
|
export cflags="-std=gnu17 $cflags"
|
||||||
fi
|
fi
|
||||||
|
if [ "$package_var_name" = "RUBY" ] && is_mac && ! is_mac 2700; then
|
||||||
|
# The macOS 27 SDK declares dup3() and pipe2() as available since macOS 27.0.
|
||||||
|
# Ruby's configure detects them even when building for an older macOS, where
|
||||||
|
# they are only weakly linked and are NULL at runtime, which makes miniruby
|
||||||
|
# crash during the build: https://bugs.ruby-lang.org/issues/22311
|
||||||
|
export ac_cv_func_dup3=no ac_cv_func_pipe2=no
|
||||||
|
fi
|
||||||
# ./configure --prefix=/path/to/ruby
|
# ./configure --prefix=/path/to/ruby
|
||||||
# shellcheck disable=SC2086,SC2153
|
# shellcheck disable=SC2086,SC2153
|
||||||
capture_command ${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" \
|
capture_command ${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" \
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
# - creates a new Release on GitHub
|
# - creates a new Release on GitHub
|
||||||
# - [automated] a GitHub Action will create a Homebrew PR for the new release
|
# - [automated] a GitHub Action will create a Homebrew PR for the new release
|
||||||
|
|
||||||
set -e
|
set -ex
|
||||||
|
|
||||||
git fetch -q --tags origin master
|
git fetch -q --tags origin master
|
||||||
git checkout -q master
|
git checkout -q master
|
||||||
|
|
|
||||||
6
share/man/man1/ruby-build.1
generated
6
share/man/man1/ruby-build.1
generated
|
|
@ -2,12 +2,12 @@
|
||||||
.\" Title: ruby-build
|
.\" Title: ruby-build
|
||||||
.\" Author: Mislav Marohnić
|
.\" Author: Mislav Marohnić
|
||||||
.\" Generator: Asciidoctor 2.0.26
|
.\" Generator: Asciidoctor 2.0.26
|
||||||
.\" Date: 2026-05-01
|
.\" Date: 2026-05-07
|
||||||
.\" Manual: ruby-build Manual
|
.\" Manual: ruby-build Manual
|
||||||
.\" Source: ruby-build 20260902
|
.\" Source: ruby-build 20260916
|
||||||
.\" Language: English
|
.\" Language: English
|
||||||
.\"
|
.\"
|
||||||
.TH "RUBY\-BUILD" "1" "2026-05-01" "ruby\-build 20260902" "ruby\-build Manual"
|
.TH "RUBY\-BUILD" "1" "2026-05-07" "ruby\-build 20260916" "ruby\-build Manual"
|
||||||
.ie \n(.g .ds Aq \(aq
|
.ie \n(.g .ds Aq \(aq
|
||||||
.el .ds Aq '
|
.el .ds Aq '
|
||||||
.ss \n[.ss] 0
|
.ss \n[.ss] 0
|
||||||
|
|
|
||||||
2
share/ruby-build/4.0.7
Normal file
2
share/ruby-build/4.0.7
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
install_package "openssl-3.0.22" "https://github.com/openssl/openssl/releases/download/openssl-3.0.22/openssl-3.0.22.tar.gz#67ebca7e50d17383028045486653492195b83db95f8558709701bb47b5c1ef81" openssl --if needs_openssl:1.1.1-3.x.x
|
||||||
|
install_package "ruby-4.0.7" "https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.7.tar.gz#911ace20f90d068ca0e4dda6d0e4f0f81e52e52f2dd4f4004c721e253412e82d" enable_shared standard
|
||||||
|
|
@ -12,7 +12,7 @@ export -n RUBY_CONFIGURE_OPTS
|
||||||
cd "$INSTALL_ROOT"
|
cd "$INSTALL_ROOT"
|
||||||
|
|
||||||
stub_repeated uname '-s : echo Darwin'
|
stub_repeated uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 10.10'
|
stub_repeated sw_vers '-productVersion : echo 10.10'
|
||||||
stub_repeated brew 'false'
|
stub_repeated brew 'false'
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
stub_repeated make 'echo "make $(inspect_args "$@")" >> build.log'
|
stub_repeated make 'echo "make $(inspect_args "$@")" >> build.log'
|
||||||
|
|
@ -43,3 +43,77 @@ OUT
|
||||||
unstub brew
|
unstub brew
|
||||||
unstub make
|
unstub make
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "dup3 and pipe2 are hidden from configure when building on older macOS" {
|
||||||
|
mkdir -p "$INSTALL_ROOT"
|
||||||
|
cd "$INSTALL_ROOT"
|
||||||
|
|
||||||
|
stub_repeated uname '-s : echo Darwin'
|
||||||
|
stub_repeated sw_vers '-productVersion : echo 26.6.2'
|
||||||
|
stub_repeated brew 'false'
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
stub_repeated make 'echo "make $(inspect_args "$@")" >> build.log'
|
||||||
|
|
||||||
|
cat > ./configure <<CON
|
||||||
|
#!${BASH}
|
||||||
|
echo ./configure "\$@" > build.log
|
||||||
|
echo dup3=\${ac_cv_func_dup3-unset} >> build.log
|
||||||
|
echo pipe2=\${ac_cv_func_pipe2-unset} >> build.log
|
||||||
|
CON
|
||||||
|
chmod +x ./configure
|
||||||
|
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
build_package_standard ruby-3.4.0
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
run cat build.log
|
||||||
|
assert_output <<OUT
|
||||||
|
./configure --prefix=$INSTALL_ROOT --with-ext=openssl,psych,+
|
||||||
|
dup3=no
|
||||||
|
pipe2=no
|
||||||
|
make -j 2
|
||||||
|
make install
|
||||||
|
OUT
|
||||||
|
|
||||||
|
unstub uname
|
||||||
|
unstub sw_vers
|
||||||
|
unstub brew
|
||||||
|
unstub make
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "dup3 and pipe2 are left to configure on macOS 27" {
|
||||||
|
mkdir -p "$INSTALL_ROOT"
|
||||||
|
cd "$INSTALL_ROOT"
|
||||||
|
|
||||||
|
stub_repeated uname '-s : echo Darwin'
|
||||||
|
stub_repeated sw_vers '-productVersion : echo 27.0'
|
||||||
|
stub_repeated brew 'false'
|
||||||
|
# shellcheck disable=SC2016
|
||||||
|
stub_repeated make 'echo "make $(inspect_args "$@")" >> build.log'
|
||||||
|
|
||||||
|
cat > ./configure <<CON
|
||||||
|
#!${BASH}
|
||||||
|
echo ./configure "\$@" > build.log
|
||||||
|
echo dup3=\${ac_cv_func_dup3-unset} >> build.log
|
||||||
|
echo pipe2=\${ac_cv_func_pipe2-unset} >> build.log
|
||||||
|
CON
|
||||||
|
chmod +x ./configure
|
||||||
|
|
||||||
|
run_inline_definition <<DEF
|
||||||
|
build_package_standard ruby-3.4.0
|
||||||
|
DEF
|
||||||
|
assert_success
|
||||||
|
run cat build.log
|
||||||
|
assert_output <<OUT
|
||||||
|
./configure --prefix=$INSTALL_ROOT --with-ext=openssl,psych,+
|
||||||
|
dup3=unset
|
||||||
|
pipe2=unset
|
||||||
|
make -j 2
|
||||||
|
make install
|
||||||
|
OUT
|
||||||
|
|
||||||
|
unstub uname
|
||||||
|
unstub sw_vers
|
||||||
|
unstub brew
|
||||||
|
unstub make
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue