From 177efa00c285b3910453abec92f3b1014904637a Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 9 Aug 2024 22:32:48 -0400 Subject: [PATCH] user/ruby3.2: drop due migration to ilot iports --- user/ruby3.2/APKBUILD | 253 ------------------ user/ruby3.2/dont-install-bundled-gems.patch | 20 -- user/ruby3.2/fix-get_main_stack.patch | 68 ----- user/ruby3.2/fix-riscv64-build.patch | 38 --- user/ruby3.2/ruby3.2.post-upgrade | 17 -- .../test_insns-lower-recursion-depth.patch | 47 ---- 6 files changed, 443 deletions(-) delete mode 100644 user/ruby3.2/APKBUILD delete mode 100644 user/ruby3.2/dont-install-bundled-gems.patch delete mode 100644 user/ruby3.2/fix-get_main_stack.patch delete mode 100644 user/ruby3.2/fix-riscv64-build.patch delete mode 100644 user/ruby3.2/ruby3.2.post-upgrade delete mode 100644 user/ruby3.2/test_insns-lower-recursion-depth.patch diff --git a/user/ruby3.2/APKBUILD b/user/ruby3.2/APKBUILD deleted file mode 100644 index 59e7332..0000000 --- a/user/ruby3.2/APKBUILD +++ /dev/null @@ -1,253 +0,0 @@ -# Contributor: Carlo Landmeter -# Contributor: Jakub Jirutka -# Maintainer: Jakub Jirutka -# -# secfixes: -# 3.1.4-r0: -# - CVE-2023-28755 -# - CVE-2023-28756 -# 3.1.3-r0: -# - CVE-2021-33621 -# 3.1.2-r0: -# - CVE-2022-28738 -# - CVE-2022-28739 -# 3.0.3-r0: -# - CVE-2021-41817 -# - CVE-2021-41816 -# - CVE-2021-41819 -# 2.7.4-r0: -# - CVE-2021-31799 -# - CVE-2021-31810 -# - CVE-2021-32066 -# 2.7.3-r0: -# - CVE-2021-28965 -# - CVE-2021-28966 -# 2.7.2-r0: -# - CVE-2020-25613 -# 2.6.6-r0: -# - CVE-2020-10663 -# - CVE-2020-10933 -# 2.6.5-r0: -# - CVE-2019-16255 -# - CVE-2019-16254 -# - CVE-2019-15845 -# - CVE-2019-16201 -# 2.5.2-r0: -# - CVE-2018-16395 -# - CVE-2018-16396 -# 2.5.1-r0: -# - CVE-2017-17742 -# - CVE-2018-6914 -# - CVE-2018-8777 -# - CVE-2018-8778 -# - CVE-2018-8779 -# - CVE-2018-8780 -# 2.4.2-r0: -# - CVE-2017-0898 -# - CVE-2017-10784 -# - CVE-2017-14033 -# - CVE-2017-14064 -# - CVE-2017-0899 -# - CVE-2017-0900 -# - CVE-2017-0901 -# - CVE-2017-0902 -# 2.4.3-r0: -# - CVE-2017-17405 -# -pkgname=ruby3.2 -# When upgrading, upgrade also each ruby- aport listed in file -# gems/bundled_gems. If some aport is missing or not in the main repo, -# create/move it. -pkgver=3.2.2 -_abiver="${pkgver%.*}.0" -pkgrel=0 -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 - 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="ruby3.2-gems" -builddir="$srcdir"/ruby-$pkgver - -# For backward compatibility (pre 3.x). -for _i in bigdecimal etc fiddle gdbm io-console irb json; do - provides="$provides ruby3.2-$_i=$pkgver-r$pkgrel" -done - -_gemdir="/usr/lib/ruby/gems/$_abiver" -_rubydir="/usr/lib/ruby/$_abiver" -_chost="${CHOST/-alpine-/-}" - -case "$CARCH" in - x86) _arch="i386";; - *) _arch="$CARCH";; -esac - -prepare() { - default_prepare - autoconf - - # 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 - s390x) rm bootstraptest/test_fiber.rb;; - esac - - 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 - echo "ruby-$name>=$ver" >> "$srcdir"/.ruby-full.depends - esac - done < "$builddir"/gems/bundled_gems -} - -build() { - # -fomit-frame-pointer makes ruby segfault, see gentoo bug #150413 - # 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). - export CFLAGS="${CFLAGS/-Os/-O2} -fno-omit-frame-pointer -fno-strict-aliasing" - export CPPFLAGS="${CPPFLAGS/-Os/-O2} -fno-omit-frame-pointer -fno-strict-aliasing" - - # Needed for coroutine stuff - export LIBS="-lucontext" - - # ruby saves path to install. we want use $PATH - export INSTALL=install - - # the configure script does not detect isnan/isinf as macros - export ac_cv_func_isnan=yes - export ac_cv_func_isinf=yes - - ./configure \ - --build=$CBUILD \ - --host=$CHOST \ - --prefix=/usr \ - --sysconfdir=/etc \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --with-sitedir=/usr/local/lib/site_ruby \ - --with-search-path="/usr/lib/site_ruby/\$(ruby_ver)/$_arch-linux" \ - --enable-pthread \ - --disable-rpath \ - --enable-shared \ - --with-mantype=man - make -} - -check() { - # 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 - - make test TESTS="$disable_tests" -} - -package() { - make DESTDIR="$pkgdir" SUDO="" install - - install -m 644 -D COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING - - cd "$pkgdir" - - # Remove bundled gem bundler; it's provided by a separate aport/package - # ruby-bundler. - rm -rf ./$_rubydir/bundler - rm ./$_rubydir/bundler.rb - rm -rf ./$_gemdir/gems/bundler-* - rm ./$_gemdir/specifications/default/bundler-*.gemspec - rm usr/bin/bundle usr/bin/bundler - - # Remove bundled CA certificates; they are provided by ca-certificates. - rm ./$_rubydir/rubygems/ssl_certs/*/*.pem - rmdir ./$_rubydir/rubygems/ssl_certs/* || true - - rm -Rf ./$_gemdir/cache/* - - if [ -d usr/local ]; then - local f=$(find usr/local -type f) - if [ -n "$f" ]; then - error "Found files in /usr/local:" - echo "$f" - return 1 - fi - rm -r usr/local - fi -} - -rdoc() { - pkgdesc="Ruby documentation tool" - license="Ruby" - depends="$pkgname" - - amove $_rubydir/rdoc - amove $_gemdir/gems/rdoc-* - amove $_gemdir/specifications/default/rdoc-* - amove usr/bin/ri - amove usr/bin/rdoc -} - -libs() { - pkgdesc="Libraries necessary to run Ruby" - depends="" - - amove usr/lib -} - -full() { - pkgdesc="Ruby with all bundled gems" - # bundler is bundled since Ruby 2.6, so include it in ruby-full despite - # that it's provided by a seprate aport/package. - depends="ruby ruby-rdoc ruby-bundler $(cat "$srcdir"/.ruby-full.depends)" - - mkdir -p "$subpkgdir" -} - -sha512sums=" -bcc68f3f24c1c8987d9c80b57332e5791f25b935ba38daf5addf60dbfe3a05f9dcaf21909681b88e862c67c6ed103150f73259c6e35c564f13a00f432e3c1e46 ruby-3.2.2.tar.gz -16fc1f35aee327d1ecac420b091beaa53c675e0504d5a6932004f17ca68a2c38f57b053b0a3903696f2232c5add160d363e3972a962f7f7bcb52e4e998c7315d test_insns-lower-recursion-depth.patch -42cd45c1db089a1ae57834684479a502e357ddba82ead5fa34e64c13971e7ab7ad2919ddd60a104a817864dd3e2e35bdbedb679210eb41d82cab36a0687e43d4 fix-get_main_stack.patch -a77da5e5eb7d60caf3f1cabb81e09b88dc505ddd746e34efd1908c0096621156d81cc65095b846ba9bdb66028891aefce883a43ddec6b56b5beb4aac5e4ee33f dont-install-bundled-gems.patch -000530316af1fca007fe8cee694b59e2e801674bcc1a2ebea95e67745d4afc0ce66c902fdbc88ee847a4fbf55115b183cd803cbf7c98ef685938efb3e2b7c991 fix-riscv64-build.patch -" diff --git a/user/ruby3.2/dont-install-bundled-gems.patch b/user/ruby3.2/dont-install-bundled-gems.patch deleted file mode 100644 index b125fa0..0000000 --- a/user/ruby3.2/dont-install-bundled-gems.patch +++ /dev/null @@ -1,20 +0,0 @@ -Don't install bundled gems - we package them separately. - ---- a/tool/rbinstall.rb -+++ b/tool/rbinstall.rb -@@ -990,6 +990,7 @@ - end - end - -+=begin XXX-Patched - install?(:ext, :comm, :gem, :'bundled-gems') do - gem_dir = Gem.default_dir - install_dir = with_destdir(gem_dir) -@@ -1057,6 +1058,7 @@ - puts "skipped bundled gems: #{gems.join(' ')}" - end - end -+=end - - parse_args() - diff --git a/user/ruby3.2/fix-get_main_stack.patch b/user/ruby3.2/fix-get_main_stack.patch deleted file mode 100644 index 864a314..0000000 --- a/user/ruby3.2/fix-get_main_stack.patch +++ /dev/null @@ -1,68 +0,0 @@ ---- a/thread_pthread.c -+++ b/thread_pthread.c -@@ -858,9 +858,6 @@ - # define MAINSTACKADDR_AVAILABLE 0 - # endif - #endif --#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack) --# define get_main_stack(addr, size) get_stack(addr, size) --#endif - - #ifdef STACKADDR_AVAILABLE - /* -@@ -942,6 +939,55 @@ - return 0; - #undef CHECK_ERR - } -+ -+#if defined(__linux__) && !defined(__GLIBC__) && defined(HAVE_GETRLIMIT) -+ -+#ifndef PAGE_SIZE -+#include -+#define PAGE_SIZE sysconf(_SC_PAGE_SIZE) -+#endif -+ -+static int -+get_main_stack(void **addr, size_t *size) -+{ -+ size_t start, end, limit, prevend = 0; -+ struct rlimit r; -+ FILE *f; -+ char buf[PATH_MAX+80], s[8]; -+ int n; -+ STACK_GROW_DIR_DETECTION; -+ -+ f = fopen("/proc/self/maps", "re"); -+ if (!f) -+ return -1; -+ n = 0; -+ while (fgets(buf, sizeof buf, f)) { -+ n = sscanf(buf, "%zx-%zx %*s %*s %*s %*s %7s", &start, &end, s); -+ if (n >= 2) { -+ if (n == 3 && strcmp(s, "[stack]") == 0) -+ break; -+ prevend = end; -+ } -+ n = 0; -+ } -+ fclose(f); -+ if (n == 0) -+ return -1; -+ -+ limit = 100 << 20; /* 100MB stack limit */ -+ if (getrlimit(RLIMIT_STACK, &r)==0 && r.rlim_cur < limit) -+ limit = r.rlim_cur & -PAGE_SIZE; -+ if (limit > end) limit = end; -+ if (prevend < end - limit) prevend = end - limit; -+ if (start > prevend) start = prevend; -+ *addr = IS_STACK_DIR_UPPER() ? (void *)start : (void *)end; -+ *size = end - start; -+ return 0; -+} -+#else -+# define get_main_stack(addr, size) get_stack(addr, size) -+#endif -+ - #endif - - static struct { diff --git a/user/ruby3.2/fix-riscv64-build.patch b/user/ruby3.2/fix-riscv64-build.patch deleted file mode 100644 index e81e8b6..0000000 --- a/user/ruby3.2/fix-riscv64-build.patch +++ /dev/null @@ -1,38 +0,0 @@ -Patch-Source: https://lists.openembedded.org/g/openembedded-core/message/161168 -partially extracted to actually apply onto a release tarball - ---- -From dfb22e4d6662bf72879eda806eaa78c7b52b519e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Tue, 25 Jan 2022 20:29:14 -0800 -Subject: [PATCH] vm_dump.c: Define REG_S1 and REG_S2 for musl/riscv - -These defines are missing in musl, there is a possible -patch to add them to musl, but we need a full list of -these names for mcontext that can be added once for all - -Upstream-Status: Inappropriate [musl bug] -Signed-off-by: Khem Raj ---- - vm_dump.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/vm_dump.c b/vm_dump.c -index a98f5aa..957b785 100644 ---- a/vm_dump.c -+++ b/vm_dump.c -@@ -39,6 +39,11 @@ - - #define MAX_POSBUF 128 - -+#if defined(__riscv) && !defined(__GLIBC__) -+# define REG_S1 9 -+# define REG_S2 18 -+#endif -+ - #define VM_CFP_CNT(ec, cfp) \ - ((rb_control_frame_t *)((ec)->vm_stack + (ec)->vm_stack_size) - \ - (rb_control_frame_t *)(cfp)) --- -2.35.0 - diff --git a/user/ruby3.2/ruby3.2.post-upgrade b/user/ruby3.2/ruby3.2.post-upgrade deleted file mode 100644 index 6cba787..0000000 --- a/user/ruby3.2/ruby3.2.post-upgrade +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -ver_new="$1" -ver_old="$2" - -if [ "$(apk version -t "$ver_old" "2.5.0-r0")" = "<" ]; then - cat >&2 <<-EOF - * - * In Ruby 2.5 more parts of the stdlib has been splitted into standalone - * gems, yet still installed with Ruby by default. We have moved some of - * them into separate subpackages. If you don't know which subpackages you - * need, you may install meta-package "ruby-full". - * - EOF -fi - -exit 0 diff --git a/user/ruby3.2/test_insns-lower-recursion-depth.patch b/user/ruby3.2/test_insns-lower-recursion-depth.patch deleted file mode 100644 index 0069720..0000000 --- a/user/ruby3.2/test_insns-lower-recursion-depth.patch +++ /dev/null @@ -1,47 +0,0 @@ -The patched test is a recursion function. We have lower stack size, -so we hit SystemStackError sooner than on other platforms. - - #361 test_insns.rb:389:in `block in ': - # recursive once - def once n - return %r/#{ - if n == 0 - true - else - once(n-1) # here - end - }/ox - end - x = once(128); x = once(7); x = once(16); - x =~ "true" && $~ - #=> "" (expected "true") once - Stderr output is not empty - bootstraptest.tmp.rb:3:in `once': stack level too deep (SystemStackError) - from bootstraptest.tmp.rb:7:in `block in once' - from bootstraptest.tmp.rb:3:in `once' - from bootstraptest.tmp.rb:7:in `block in once' - from bootstraptest.tmp.rb:3:in `once' - from bootstraptest.tmp.rb:7:in `block in once' - from bootstraptest.tmp.rb:3:in `once' - from bootstraptest.tmp.rb:7:in `block in once' - from bootstraptest.tmp.rb:3:in `once' - ... 125 levels... - from bootstraptest.tmp.rb:3:in `once' - from bootstraptest.tmp.rb:7:in `block in once' - from bootstraptest.tmp.rb:3:in `once' - from bootstraptest.tmp.rb:11:in `
' - Test_insns.rb FAIL 1/187 - FAIL 1/1197 tests failed - Make: *** [uncommon.mk:666: yes-btest-ruby] Error 1 - ---- a/bootstraptest/test_insns.rb -+++ b/bootstraptest/test_insns.rb -@@ -274,7 +274,7 @@ - end - }/ox - end -- x = once(128); x = once(7); x = once(16); -+ x = once(32); x = once(7); x = once(16); - x =~ "true" && $~ - }, - [ 'once', <<-'},', ], # {