2021-01-12 13:32:42 -03:00
|
|
|
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
|
2017-02-13 02:02:09 +01:00
|
|
|
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
|
2021-10-17 21:09:07 +02:00
|
|
|
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
|
2024-04-24 15:35:48 +02:00
|
|
|
pkgname=ruby
|
|
|
|
# When upgrading, upgrade also each ruby-<name> aport listed in file
|
|
|
|
# gems/bundled_gems. If some aport is missing or not in the main repo,
|
|
|
|
# create/move it.
|
2024-09-19 16:43:36 +02:00
|
|
|
pkgver=3.3.6
|
2024-04-24 15:35:48 +02:00
|
|
|
_abiver="${pkgver%.*}.0"
|
2024-09-19 16:43:36 +02:00
|
|
|
pkgrel=0
|
2024-04-24 15:35:48 +02:00
|
|
|
pkgdesc="An object-oriented language for quick and easy programming"
|
|
|
|
url="https://www.ruby-lang.org/"
|
|
|
|
arch="all"
|
|
|
|
license="Ruby AND BSD-2-Clause AND MIT"
|
|
|
|
depends="ca-certificates"
|
|
|
|
depends_dev="
|
|
|
|
$pkgname=$pkgver-r$pkgrel
|
|
|
|
$pkgname-rdoc=$pkgver-r$pkgrel
|
|
|
|
gmp-dev
|
|
|
|
libucontext-dev
|
|
|
|
"
|
|
|
|
makedepends="$depends_dev
|
|
|
|
autoconf
|
|
|
|
cargo
|
|
|
|
gdbm-dev
|
|
|
|
libffi-dev
|
|
|
|
linux-headers
|
|
|
|
openssl-dev>3
|
|
|
|
readline-dev
|
|
|
|
yaml-dev
|
|
|
|
zlib-dev
|
|
|
|
"
|
|
|
|
install="$pkgname.post-upgrade"
|
|
|
|
subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev
|
|
|
|
$pkgname-rdoc::noarch
|
|
|
|
$pkgname-libs
|
|
|
|
$pkgname-full::noarch
|
|
|
|
"
|
|
|
|
source="https://cache.ruby-lang.org/pub/ruby/${pkgver%.*}/ruby-$pkgver.tar.gz
|
|
|
|
test_insns-lower-recursion-depth.patch
|
|
|
|
fix-get_main_stack.patch
|
|
|
|
dont-install-bundled-gems.patch
|
|
|
|
fix-riscv64-build.patch
|
|
|
|
"
|
|
|
|
replaces="ruby-gems"
|
|
|
|
|
|
|
|
# For backward compatibility (pre 3.x).
|
|
|
|
for _i in bigdecimal etc fiddle gdbm io-console irb json; do
|
|
|
|
provides="$provides ruby-$_i=$pkgver-r$pkgrel"
|
|
|
|
done
|
|
|
|
|
2017-09-15 13:34:21 +02:00
|
|
|
# secfixes:
|
2024-04-24 15:46:09 +02:00
|
|
|
# 3.3.1-r0:
|
|
|
|
# - CVE-2024-27282
|
|
|
|
# - CVE-2024-27281
|
|
|
|
# - CVE-2024-27280
|
2023-03-31 20:22:36 +02:00
|
|
|
# 3.1.4-r0:
|
|
|
|
# - CVE-2023-28755
|
|
|
|
# - CVE-2023-28756
|
2022-11-29 08:25:11 +01:00
|
|
|
# 3.1.3-r0:
|
|
|
|
# - CVE-2021-33621
|
2022-04-12 23:27:31 +02:00
|
|
|
# 3.1.2-r0:
|
|
|
|
# - CVE-2022-28738
|
|
|
|
# - CVE-2022-28739
|
2021-11-24 12:25:10 -03:00
|
|
|
# 3.0.3-r0:
|
|
|
|
# - CVE-2021-41817
|
|
|
|
# - CVE-2021-41816
|
|
|
|
# - CVE-2021-41819
|
2021-07-08 14:49:55 +02:00
|
|
|
# 2.7.4-r0:
|
2021-08-10 11:50:54 -06:00
|
|
|
# - CVE-2021-31799
|
2021-07-08 14:49:55 +02:00
|
|
|
# - CVE-2021-31810
|
|
|
|
# - CVE-2021-32066
|
2021-04-10 18:22:33 +02:00
|
|
|
# 2.7.3-r0:
|
|
|
|
# - CVE-2021-28965
|
|
|
|
# - CVE-2021-28966
|
2020-10-06 17:56:28 +02:00
|
|
|
# 2.7.2-r0:
|
|
|
|
# - CVE-2020-25613
|
2020-04-01 16:22:29 +02:00
|
|
|
# 2.6.6-r0:
|
2020-07-09 10:42:22 +02:00
|
|
|
# - CVE-2020-10663
|
2020-04-01 16:22:29 +02:00
|
|
|
# - CVE-2020-10933
|
2019-10-07 13:50:52 +02:00
|
|
|
# 2.6.5-r0:
|
|
|
|
# - CVE-2019-16255
|
|
|
|
# - CVE-2019-16254
|
|
|
|
# - CVE-2019-15845
|
|
|
|
# - CVE-2019-16201
|
2018-10-18 00:04:51 +02:00
|
|
|
# 2.5.2-r0:
|
|
|
|
# - CVE-2018-16395
|
|
|
|
# - CVE-2018-16396
|
2018-03-29 14:13:19 +00:00
|
|
|
# 2.5.1-r0:
|
|
|
|
# - CVE-2017-17742
|
|
|
|
# - CVE-2018-6914
|
|
|
|
# - CVE-2018-8777
|
|
|
|
# - CVE-2018-8778
|
|
|
|
# - CVE-2018-8779
|
|
|
|
# - CVE-2018-8780
|
2017-09-15 13:39:49 +02:00
|
|
|
# 2.4.2-r0:
|
2017-09-15 13:34:21 +02:00
|
|
|
# - CVE-2017-0898
|
|
|
|
# - CVE-2017-10784
|
|
|
|
# - CVE-2017-14033
|
|
|
|
# - CVE-2017-14064
|
|
|
|
# - CVE-2017-0899
|
|
|
|
# - CVE-2017-0900
|
|
|
|
# - CVE-2017-0901
|
|
|
|
# - CVE-2017-0902
|
2017-12-15 22:22:47 +01:00
|
|
|
# 2.4.3-r0:
|
|
|
|
# - CVE-2017-17405
|
2021-10-18 02:12:16 +02:00
|
|
|
|
2016-11-20 23:22:47 +01:00
|
|
|
_gemdir="/usr/lib/ruby/gems/$_abiver"
|
|
|
|
_rubydir="/usr/lib/ruby/$_abiver"
|
|
|
|
_chost="${CHOST/-alpine-/-}"
|
2010-05-14 17:52:43 +00:00
|
|
|
|
2016-11-20 23:22:47 +01:00
|
|
|
case "$CARCH" in
|
|
|
|
x86) _arch="i386";;
|
|
|
|
*) _arch="$CARCH";;
|
2012-10-15 15:01:51 +00:00
|
|
|
esac
|
|
|
|
|
2010-05-14 17:52:43 +00:00
|
|
|
prepare() {
|
2017-08-18 04:23:44 +00:00
|
|
|
default_prepare
|
2012-10-11 12:27:00 +00:00
|
|
|
autoconf
|
2020-09-27 02:11:18 -03:00
|
|
|
|
|
|
|
# v2.7.1 - Of all the bootstraptest only test_fiber fails on s390x:
|
|
|
|
# test_fiber.rb bootstraptest.tmp.rb:8: [BUG] vm_call_cfunc: cfp consistency error (0x000003ffb63fefb0, 0x000003ffb42f5f58)
|
|
|
|
case "$CARCH" in
|
2021-10-18 13:22:48 +02:00
|
|
|
s390x) rm bootstraptest/test_fiber.rb;;
|
2020-09-27 02:11:18 -03:00
|
|
|
esac
|
2021-12-02 22:41:59 +01:00
|
|
|
|
|
|
|
local name ver; while read -r name ver _; do
|
|
|
|
case "$name=$ver" in
|
|
|
|
[a-z]*=[0-9]*.[0-9]*)
|
|
|
|
if ! apk add -qs "ruby-$name>=$ver" >/dev/null 2>&1; then
|
|
|
|
warning "bump package ruby-$name to version $ver"
|
|
|
|
fi
|
2022-04-03 01:13:52 +02:00
|
|
|
echo "ruby-$name>=$ver" >> "$srcdir"/.ruby-full.depends
|
2021-12-02 22:41:59 +01:00
|
|
|
esac
|
|
|
|
done < "$builddir"/gems/bundled_gems
|
2010-05-14 17:52:43 +00:00
|
|
|
}
|
|
|
|
|
2009-03-03 14:08:18 +00:00
|
|
|
build() {
|
2009-03-09 12:06:47 +00:00
|
|
|
# -fomit-frame-pointer makes ruby segfault, see gentoo bug #150413
|
2022-04-04 18:30:40 +02:00
|
|
|
# In many places aliasing rules are broken; play it safe
|
|
|
|
# as it's risky with newer compilers to leave it as it is.
|
|
|
|
# -O2 - ruby is a language runtime, so performance is crucial. Moreover,
|
|
|
|
# ruby 3.1.1 fails with Bus Error when compiled with -Os on armhf/armv7.
|
|
|
|
# This makes ruby-libs 7% bigger (13.4 -> 14.4 MiB).
|
2024-09-27 07:22:05 -04:00
|
|
|
export CFLAGS="${CFLAGS/-Os/-O2} -fno-omit-frame-pointer -fno-strict-aliasing"
|
|
|
|
export CPPFLAGS="${CPPFLAGS/-Os/-O2} -fno-omit-frame-pointer -fno-strict-aliasing"
|
2009-03-09 12:06:47 +00:00
|
|
|
|
2020-09-27 02:11:18 -03:00
|
|
|
# Needed for coroutine stuff
|
|
|
|
export LIBS="-lucontext"
|
|
|
|
|
2011-09-20 11:26:17 +00:00
|
|
|
# ruby saves path to install. we want use $PATH
|
|
|
|
export INSTALL=install
|
|
|
|
|
2016-11-20 23:22:47 +01:00
|
|
|
# the configure script does not detect isnan/isinf as macros
|
|
|
|
export ac_cv_func_isnan=yes
|
|
|
|
export ac_cv_func_isinf=yes
|
2013-07-30 08:51:11 +00:00
|
|
|
|
2012-05-23 22:24:06 +00:00
|
|
|
./configure \
|
2013-07-30 08:51:11 +00:00
|
|
|
--build=$CBUILD \
|
|
|
|
--host=$CHOST \
|
2009-07-06 12:07:00 +00:00
|
|
|
--prefix=/usr \
|
2009-03-03 14:08:18 +00:00
|
|
|
--sysconfdir=/etc \
|
|
|
|
--mandir=/usr/share/man \
|
|
|
|
--infodir=/usr/share/info \
|
2020-09-27 02:11:18 -03:00
|
|
|
--with-sitedir=/usr/local/lib/site_ruby \
|
2012-10-15 15:01:51 +00:00
|
|
|
--with-search-path="/usr/lib/site_ruby/\$(ruby_ver)/$_arch-linux" \
|
2012-05-23 22:24:06 +00:00
|
|
|
--enable-pthread \
|
2012-10-11 12:27:00 +00:00
|
|
|
--disable-rpath \
|
2012-05-23 22:24:06 +00:00
|
|
|
--enable-shared \
|
2017-08-18 04:23:44 +00:00
|
|
|
--with-mantype=man
|
|
|
|
make
|
|
|
|
}
|
|
|
|
|
|
|
|
check() {
|
2022-04-03 01:07:40 +02:00
|
|
|
# https://bugs.ruby-lang.org/issues/18380
|
|
|
|
local disable_tests="-n !/TestAddressResolve#test_socket_getnameinfo_domain_blocking/"
|
|
|
|
|
|
|
|
case "$CARCH" in
|
|
|
|
x86 | armhf | armv7)
|
|
|
|
# TestReadline#test_interrupt_in_other_thread fails on 32 bit arches according
|
|
|
|
# to upstream, but the test is disabled just on Travis, not in test suite.
|
|
|
|
# https://bugs.ruby-lang.org/issues/18393
|
|
|
|
disable_tests="$disable_tests -n !/TestReadline#test_interrupt_in_other_thread/"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2024-09-19 16:43:36 +02:00
|
|
|
make test TESTS="$disable_tests" TESTOPTS="--verbose"
|
2010-05-14 17:52:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
package() {
|
2022-04-04 18:29:06 +02:00
|
|
|
make DESTDIR="$pkgdir" SUDO="" install
|
2016-11-20 23:22:47 +01:00
|
|
|
|
2019-10-27 19:37:15 +01:00
|
|
|
install -m 644 -D COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
|
|
|
|
|
2021-10-18 14:00:31 +02:00
|
|
|
cd "$pkgdir"
|
|
|
|
|
2019-10-27 19:37:15 +01:00
|
|
|
# Remove bundled gem bundler; it's provided by a separate aport/package
|
|
|
|
# ruby-bundler.
|
2021-10-18 14:00:31 +02:00
|
|
|
rm -rf ./$_rubydir/bundler
|
|
|
|
rm ./$_rubydir/bundler.rb
|
|
|
|
rm -rf ./$_gemdir/gems/bundler-*
|
|
|
|
rm ./$_gemdir/specifications/default/bundler-*.gemspec
|
2019-10-27 19:37:15 +01:00
|
|
|
rm usr/bin/bundle usr/bin/bundler
|
2017-02-13 01:27:26 +01:00
|
|
|
|
2019-10-27 20:17:35 +01:00
|
|
|
# Remove bundled CA certificates; they are provided by ca-certificates.
|
2021-10-18 14:00:31 +02:00
|
|
|
rm ./$_rubydir/rubygems/ssl_certs/*/*.pem
|
|
|
|
rmdir ./$_rubydir/rubygems/ssl_certs/* || true
|
2019-10-27 20:17:35 +01:00
|
|
|
|
2021-10-18 14:00:31 +02:00
|
|
|
rm -Rf ./$_gemdir/cache/*
|
2019-10-27 19:42:50 +01:00
|
|
|
|
2021-10-18 14:00:31 +02:00
|
|
|
if [ -d usr/local ]; then
|
|
|
|
local f=$(find usr/local -type f)
|
2012-04-24 16:03:39 +00:00
|
|
|
if [ -n "$f" ]; then
|
|
|
|
error "Found files in /usr/local:"
|
|
|
|
echo "$f"
|
|
|
|
return 1
|
|
|
|
fi
|
2021-10-18 14:00:31 +02:00
|
|
|
rm -r usr/local
|
2012-04-24 16:03:39 +00:00
|
|
|
fi
|
2012-10-25 20:41:05 +00:00
|
|
|
}
|
|
|
|
|
2017-02-13 01:43:36 +01:00
|
|
|
rdoc() {
|
|
|
|
pkgdesc="Ruby documentation tool"
|
2017-12-25 20:32:47 +01:00
|
|
|
license="Ruby"
|
2021-10-18 02:12:16 +02:00
|
|
|
depends="$pkgname"
|
2017-02-13 01:43:36 +01:00
|
|
|
|
2021-10-18 14:00:31 +02:00
|
|
|
amove $_rubydir/rdoc
|
|
|
|
amove $_gemdir/gems/rdoc-*
|
|
|
|
amove $_gemdir/specifications/default/rdoc-*
|
|
|
|
amove usr/bin/ri
|
|
|
|
amove usr/bin/rdoc
|
2014-12-09 00:22:58 +02:00
|
|
|
}
|
|
|
|
|
2012-10-11 12:27:00 +00:00
|
|
|
libs() {
|
|
|
|
pkgdesc="Libraries necessary to run Ruby"
|
2013-04-16 08:11:32 +00:00
|
|
|
depends=""
|
2016-11-20 23:22:47 +01:00
|
|
|
|
2021-10-18 14:00:31 +02:00
|
|
|
amove usr/lib
|
2012-10-11 12:27:00 +00:00
|
|
|
}
|
|
|
|
|
2017-12-25 22:22:57 +01:00
|
|
|
full() {
|
|
|
|
pkgdesc="Ruby with all bundled gems"
|
2019-10-27 19:37:15 +01:00
|
|
|
# bundler is bundled since Ruby 2.6, so include it in ruby-full despite
|
|
|
|
# that it's provided by a seprate aport/package.
|
2022-04-03 01:13:52 +02:00
|
|
|
depends="ruby ruby-rdoc ruby-bundler $(cat "$srcdir"/.ruby-full.depends)"
|
2017-12-25 22:22:57 +01:00
|
|
|
|
|
|
|
mkdir -p "$subpkgdir"
|
|
|
|
}
|
|
|
|
|
2021-05-09 15:53:24 +00:00
|
|
|
sha512sums="
|
2024-09-19 16:43:36 +02:00
|
|
|
4ae22f5c2a1f7ed84aab7587ff04ce4d9933cffe4347deaef0ab88d22c9780f274c1664a4ee1dd8235bc3cc749be828ffa8db7cb5f5002339a59a599acf3c729 ruby-3.3.6.tar.gz
|
2022-04-03 01:07:40 +02:00
|
|
|
16fc1f35aee327d1ecac420b091beaa53c675e0504d5a6932004f17ca68a2c38f57b053b0a3903696f2232c5add160d363e3972a962f7f7bcb52e4e998c7315d test_insns-lower-recursion-depth.patch
|
2023-04-22 00:22:56 +02:00
|
|
|
42cd45c1db089a1ae57834684479a502e357ddba82ead5fa34e64c13971e7ab7ad2919ddd60a104a817864dd3e2e35bdbedb679210eb41d82cab36a0687e43d4 fix-get_main_stack.patch
|
|
|
|
a77da5e5eb7d60caf3f1cabb81e09b88dc505ddd746e34efd1908c0096621156d81cc65095b846ba9bdb66028891aefce883a43ddec6b56b5beb4aac5e4ee33f dont-install-bundled-gems.patch
|
2022-04-07 08:49:21 +00:00
|
|
|
000530316af1fca007fe8cee694b59e2e801674bcc1a2ebea95e67745d4afc0ce66c902fdbc88ee847a4fbf55115b183cd803cbf7c98ef685938efb3e2b7c991 fix-riscv64-build.patch
|
2021-05-09 15:53:24 +00:00
|
|
|
"
|