From 5170f5c85fe0e84fe8af55c6a024c7b6e844b0f1 Mon Sep 17 00:00:00 2001 From: davidovski Date: Sat, 28 May 2022 19:37:22 +0100 Subject: fixed packages --- repo/system/ruby/dont-install-bundled-gems.patch | 20 +++++++++ repo/system/ruby/ruby.xibuild | 48 ++++++++++++++++++++++ .../ruby/test_insns-lower-recursion-depth.patch | 47 +++++++++++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 repo/system/ruby/dont-install-bundled-gems.patch create mode 100644 repo/system/ruby/ruby.xibuild create mode 100644 repo/system/ruby/test_insns-lower-recursion-depth.patch (limited to 'repo/system/ruby') diff --git a/repo/system/ruby/dont-install-bundled-gems.patch b/repo/system/ruby/dont-install-bundled-gems.patch new file mode 100644 index 0000000..2a913b9 --- /dev/null +++ b/repo/system/ruby/dont-install-bundled-gems.patch @@ -0,0 +1,20 @@ +Don't install bundled gems - we package them separately. + +--- a/tool/rbinstall.rb ++++ b/tool/rbinstall.rb +@@ -1003,6 +1003,7 @@ + end + end + ++=begin XXX-Patched + install?(:ext, :comm, :gem, :'bundled-gems') do + if CONFIG['CROSS_COMPILING'] == 'yes' + # The following hacky steps set "$ruby = BASERUBY" in tool/fake.rb +@@ -1104,6 +1105,7 @@ + puts "skip installing bundled gems because of lacking zlib" + end + end ++=end + + parse_args() + diff --git a/repo/system/ruby/ruby.xibuild b/repo/system/ruby/ruby.xibuild new file mode 100644 index 0000000..3cc7f7b --- /dev/null +++ b/repo/system/ruby/ruby.xibuild @@ -0,0 +1,48 @@ +#!/bin/sh + +NAME="ruby" +DESC="An object-oriented language for quick and easy programming" + +MAKEDEPS="make " +DEPS="sbase cacerts gmp libucontext musl zlib " + +PKG_VER=3.1.2 +SOURCE="https://cache.ruby-lang.org/pub/ruby/${PKG_VER%.*}/ruby-$PKG_VER.tar.gz" +ADDITIONAL="dont-install-bundled-gems.patch dont-install-bundled-gems.patch test_insns-lower-recursion-depth.patch " + +prepare () { + apply_patches +} + +build () { + export CFLAGS="-O2 -fno-omit-frame-pointer -fno-strict-aliasing" + export CPPFLAGS="-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 \ + --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)/x86_64-linux" \ + --enable-pthread \ + --disable-rpath \ + --enable-shared \ + --with-mantype=man + make +} + +package () { + make DESTDIR=$PKG_DEST install +} diff --git a/repo/system/ruby/test_insns-lower-recursion-depth.patch b/repo/system/ruby/test_insns-lower-recursion-depth.patch new file mode 100644 index 0000000..0069720 --- /dev/null +++ b/repo/system/ruby/test_insns-lower-recursion-depth.patch @@ -0,0 +1,47 @@ +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', <<-'},', ], # { -- cgit v1.2.1