Merge updates from master

This commit is contained in:
Repository mirror & CI
2025-12-30 21:00:55 +00:00
72 changed files with 571 additions and 71 deletions

View File

@@ -7,3 +7,4 @@ DIST ruby-3.3.9.tar.xz 16436904 BLAKE2B 1f809d982f0ac60025ac98d2ded28697f1e68eb6
DIST ruby-3.4.6.tar.xz 17303436 BLAKE2B 1e3b85780821c9df4f82382b7f48b1c543fb8031595de46d0dd33aeb7a2719b4a03ca29d39def056c6040f27e4dc3ca442035e0febb5fb8def8ef837b10786e7 SHA512 29000b3396ab95fc2dc13d2d78441ff5c34258e5421115181c54b1b4d55d5c0d4f3d0c3cec6b32b9a1bb8de5c51b383fcad4369ec3fb244fd0ce182afbe79ba4
DIST ruby-3.4.7.tar.xz 17312044 BLAKE2B 27732452672e30c5d3d11b6aa6f6e3ebf1c363492145c3e43244804e522d83230f68075d81c6361b4504ad4b9dcb5ac23335412d1f290c03c44a83f940024e8b SHA512 a6b99a2f1d0115d5e7efa710da440b9066c524c335928367c80852630f8db5da36c0a82d6e7ace90e8c40cb20c6097cbdca15a51c343254cadf5f0adf60f8505
DIST ruby-3.4.8.tar.xz 17320860 BLAKE2B e40144cea391c32a4ce1e6c576884dd9ca3a31398b0110bb67e96eca90dc1d8cb0376269e691a1b48b06bbbb23b0137e67bd05ae4aeccb5c26d163fbce5cec55 SHA512 b6289654685c2d381d15123cf07a131fd088edf13a5336966af5a2e8fad9adda42d14caa7bb0998331831af71e35c546091db55c82089e89b9508603ff5f92d6
DIST ruby-4.0.0.tar.xz 18008368 BLAKE2B 6d195b39f53cd23eca2e5f06fee5e118b73ef8574739903c39bb1b3325d968ad59a17bfe622bc1790a1bb221ca3ae46220850a95fa539a7a9fb2cf2e8930a65f SHA512 2d5b2e566eaf70a5f3ea6ce6afc0611c0415de58a41336ef7a0b855c9a91eda9aa790a5f8b48e40a1eb9d50f8ea0f687216e617f16c8d040a08474f3116518a4

View File

@@ -0,0 +1,11 @@
--- a/tool/rbinstall.rb 2022-11-13 08:12:27.373041649 +0100
+++ b/tool/rbinstall.rb 2022-11-13 08:16:09.110406705 +0100
@@ -994,7 +994,7 @@
end
install?(:ext, :comm, :gem, :'bundled-gems') do
- gem_dir = Gem.default_dir
+ gem_dir = ENV['GEM_DESTDIR']
install_dir = with_destdir(gem_dir)
prepare "bundled gems", gem_dir
RbInstall.no_write do

View File

@@ -0,0 +1,20 @@
--- a/thread_pthread.c 2023-02-08 05:02:20.000000000 +0100
+++ b/thread_pthread.c 2023-03-10 17:46:25.694739053 +0100
@@ -1033,7 +1033,7 @@
{
native_main_thread.id = pthread_self();
-#if MAINSTACKADDR_AVAILABLE
+#if MAINSTACKADDR_AVAILABLE && !(defined(__linux__) && !defined(__GLIBC__))
if (native_main_thread.stack_maxsize) return;
{
void* stackaddr;
@@ -2090,7 +2090,7 @@
#ifdef STACKADDR_AVAILABLE
if (get_stack(&base, &size) == 0) {
-# ifdef __APPLE__
+# if defined(__APPLE__) || (defined(__linux__) && !defined(__GLIBC__))
if (pthread_equal(th->nt->thread_id, native_main_thread.id)) {
struct rlimit rlim;
if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {

View File

@@ -0,0 +1,54 @@
https://bugs.gentoo.org/701494
From 40ccf3b91071d3603335b0b7095613ef1843f9e1 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Fri, 7 Apr 2023 11:46:12 +0100
Subject: [PATCH] thread_pthread: Grow main_stack if required (fixes tests on
HPPA)
On HPPA, test_insns.rb fails (along with various Ruby gems) with
'stack level too deep (SystemStackError)'. This turns out to be because HPPA
defaults to a small(er) stack.
With this change, most of Ruby's test suite now passes on HPPA.
Thanks to both Dave and Helge for the investigation and coming up with the
patch.
Bug: https://bugs.gentoo.org/701494
Bug: https://bugs.debian.org/881773
Bug: https://bugs.debian.org/881772 (for PPC64)
Bug: https://github.com/rack/rack/issues/1640
Thanks-to: John David Anglin <dave.anglin@bell.net>
Thanks-to: Helge Deller <deller@gmx.de>
Signed-off-by: Sam James <sam@gentoo.org>
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -858,8 +858,22 @@ size_t pthread_get_stacksize_np(pthread_t);
# define MAINSTACKADDR_AVAILABLE 0
# endif
#endif
-#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack)
-# define get_main_stack(addr, size) get_stack(addr, size)
+#if MAINSTACKADDR_AVAILABLE
+static int get_stack(void **, size_t *);
+static int
+get_main_stack(void **addr, size_t *size)
+{
+ int ret = get_stack(addr, size);
+
+#ifdef __hppa__
+ /* On some architectures, the initial stack size may be too small, but fortunately,
+ it's growable. Bump it up to the minimum needed if it is too small. */
+ if (*size < RUBY_VM_THREAD_VM_STACK_SIZE)
+ *size = RUBY_VM_THREAD_VM_STACK_SIZE;
+#endif
+
+ return ret;
+}
#endif
#ifdef STACKADDR_AVAILABLE
--
2.40.0

View File

@@ -0,0 +1,327 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
RUST_MIN_VER="1.85.0"
RUST_OPTIONAL="yes"
inherit autotools flag-o-matic multiprocessing toolchain-funcs rust
MY_P="${PN}-$(ver_cut 1-3)"
DESCRIPTION="An object-oriented scripting language"
HOMEPAGE="https://www.ruby-lang.org/"
SRC_URI="https://cache.ruby-lang.org/pub/ruby/$(ver_cut 1-2)/${MY_P}.tar.xz"
S=${WORKDIR}/${MY_P}
LICENSE="|| ( Ruby-BSD BSD-2 )"
SLOT=$(ver_cut 1-2)
MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
RUBYVERSION=${SLOT}.0
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="berkdb debug doc examples gdbm jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( sys-libs/gdbm:= )
jemalloc? ( dev-libs/jemalloc:= )
jit? ( ${RUST_DEPEND} )
ssl? (
dev-libs/openssl:0=
)
socks5? ( >=net-proxy/dante-1.1.13 )
systemtap? ( dev-debug/systemtap )
tk? (
dev-lang/tcl:0=[threads]
dev-lang/tk:0=[threads]
)
dev-libs/libyaml
dev-libs/libffi:=
virtual/zlib:=
virtual/libcrypt:=
>=app-eselect/eselect-ruby-20251225
"
DEPEND="
${RDEPEND}
valgrind? ( dev-debug/valgrind )
"
BUNDLED_GEMS="
>=dev-ruby/minitest-6.0.0[ruby_targets_ruby40(-)]
>=dev-ruby/power_assert-3.0.1[ruby_targets_ruby40(-)]
>=dev-ruby/rake-13.3.1[ruby_targets_ruby40(-)]
>=dev-ruby/test-unit-3.7.5[ruby_targets_ruby40(-)]
>=dev-ruby/rexml-3.4.4[ruby_targets_ruby40(-)]
>=dev-ruby/rss-0.3.2[ruby_targets_ruby40(-)]
>=dev-ruby/net-ftp-0.3.9[ruby_targets_ruby40(-)]
>=dev-ruby/net-imap-0.6.2[ruby_targets_ruby40(-)]
>=dev-ruby/net-pop-0.1.2[ruby_targets_ruby40(-)]
>=dev-ruby/net-smtp-0.5.1[ruby_targets_ruby40(-)]
>=dev-ruby/matrix-0.4.3[ruby_targets_ruby40(-)]
>=dev-ruby/prime-0.1.4[ruby_targets_ruby40(-)]
>=dev-ruby/rbs-3.10.0[ruby_targets_ruby40(-)]
>=dev-ruby/typeprof-0.31.1[ruby_targets_ruby40(-)]
>=dev-ruby/debug-1.11.1[ruby_targets_ruby40(-)]
>=dev-ruby/racc-1.8.1[ruby_targets_ruby40(-)]
>=dev-ruby/mutex_m-0.3.0[ruby_targets_ruby40(-)]
>=dev-ruby/getoptlong-0.2.1[ruby_targets_ruby40(-)]
>=dev-ruby/base64-0.3.0[ruby_targets_ruby40(-)]
>=dev-ruby/bigdecimal-4.0.1[ruby_targets_ruby40(-)]
>=dev-ruby/observer-0.1.2[ruby_targets_ruby40(-)]
>=dev-ruby/abbrev-0.1.2[ruby_targets_ruby40(-)]
>=dev-ruby/resolv-replace-0.1.1[ruby_targets_ruby40(-)]
>=dev-ruby/rinda-0.2.0[ruby_targets_ruby40(-)]
>=dev-ruby/drb-2.2.3[ruby_targets_ruby40(-)]
>=dev-ruby/nkf-0.2.0[ruby_targets_ruby40(-)]
>=dev-ruby/syslog-0.3.0[ruby_targets_ruby40(-)]
>=dev-ruby/csv-3.3.5[ruby_targets_ruby40(-)]
>=dev-ruby/repl_type_completor-0.1.12[ruby_targets_ruby40(-)]
>=dev-ruby/ostruct-0.6.3[ruby_targets_ruby40(-)]
>=dev-ruby/pstore-0.2.0[ruby_targets_ruby40(-)]
>=dev-ruby/benchmark-0.5.0[ruby_targets_ruby40(-)]
>=dev-ruby/logger-1.7.0[ruby_targets_ruby40(-)]
>=dev-ruby/reline-0.6.3[ruby_targets_ruby40(-)]
>=dev-ruby/readline-0.0.4[ruby_targets_ruby40(-)]
>=dev-ruby/fiddle-1.1.8[ruby_targets_ruby40(-)]
"
PDEPEND="
${BUNDLED_GEMS}
virtual/rubygems[ruby_targets_ruby40(-)]
>=dev-ruby/bundler-4.0.3[ruby_targets_ruby40(-)]
>=dev-ruby/did_you_mean-2.0.0[ruby_targets_ruby40(-)]
>=dev-ruby/irb-1.16.0[ruby_targets_ruby40(-)]
>=dev-ruby/json-2.18.0[ruby_targets_ruby40(-)]
>=dev-ruby/rdoc-7.0.2[ruby_targets_ruby40(-)]
xemacs? ( app-xemacs/ruby-modes )
"
pkg_setup() {
use jit && rust_pkg_setup
}
src_prepare() {
eapply "${FILESDIR}"/"${SLOT}"/010*.patch
eapply "${FILESDIR}"/"${SLOT}"/902*.patch
if use elibc_musl ; then
eapply "${FILESDIR}"/${SLOT}/901-musl-*.patch
fi
einfo "Unbundling gems..."
cd "$S"
# Remove bundled gems that we will install via PDEPEND, bug
# 539700.
rm -fr gems/* || die
touch gems/bundled_gems || die
# Remove tests that are known to fail or require a network connection
rm -f test/ruby/test_process.rb test/rubygems/test_gem{,_path_support}.rb || die
rm -f test/rubygems/test_bundled_ca.rb || die
rm -f test/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \
spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb \
spec/ruby/library/socket/socket/connect_spec.rb || die
v # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
rm -rf tool/test/webrick || die
# Avoid testing against hard-coded blockdev devices that most likely are not available
sed -i -e '/def blockdev/a@blockdev = nil' test/ruby/test_file_exhaustive.rb || die
# Avoid tests that require gem downloads
sed -e '/^check/ s/\(test-syntax-suggest\|\$(PREPARE_SYNTAX_SUGGEST)\)//g' \
-i common.mk || die
# Avoid test that fails intermittently
sed -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' \
-i test/rubygems/test_gem_commands_exec_command.rb || die
# Avoid test fragile for git command output not matching on whitespace
sed -e '/test_pretty_print/aomit "Fragile for output differences"' \
-i test/rubygems/test_gem_source_git.rb || die
# Avoid tests that don't expect our ruby40 executable name.
sed -e '/test_prelude_gems_and_loaded_features/aomit "Does not match ruby40"' \
-i test/ruby/test_box.rb
# Avoid specs that require gems to be installed already due to our unbundling.
rm -rf spec/ruby/library/irb || die
if use prefix ; then
# Fix hardcoded SHELL var in mkmf library
sed -i -e "s#\(SHELL = \).*#\1${EPREFIX}/bin/sh#" lib/mkmf.rb || die
fi
eapply_user
eautoreconf
}
src_configure() {
local modules="win32,win32ole" myconf=
# Ruby's build system does interesting things with MAKEOPTS and doesn't
# handle MAKEOPTS="-Oline" or similar well. Just filter it all out
# and use -j/-l parsed out from the original MAKEOPTS, then use that.
# Newer Portage sets this option by default in GNUMAKEFLAGS if nothing
# is set by the user in MAKEOPTS. See bug #900929 and bug #728424.
local makeopts_tmp="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
unset MAKEOPTS MAKEFLAGS GNUMAKEFLAGS
export MAKEOPTS="${makeopts_tmp}"
# Avoid a hardcoded path to mkdir to avoid issues with mixed
# usr-merge and normal binary packages, bug #932386.
export ac_cv_path_mkdir=mkdir
# -fomit-frame-pointer makes ruby segfault, see bug #150413.
filter-flags -fomit-frame-pointer
append-flags -fno-omit-frame-pointer
# In many places aliasing rules are broken; play it safe
# as it's risky with newer compilers to leave it as it is.
append-flags -fno-strict-aliasing
# Workaround for bug #965095 (gcc PR122610)
tc-is-gcc && append-flags -fno-ipa-modref
# Workaround for bug #938302
if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
export DTRACE="${BROOT}"/usr/bin/stap-dtrace
fi
# Socks support via dante
if use socks5 ; then
# Socks support can't be disabled as long as SOCKS_SERVER is
# set and socks library is present, so need to unset
# SOCKS_SERVER in that case.
unset SOCKS_SERVER
fi
# Increase GC_MALLOC_LIMIT if set (default is 8000000)
if [ -n "${RUBY_GC_MALLOC_LIMIT}" ] ; then
append-flags "-DGC_MALLOC_LIMIT=${RUBY_GC_MALLOC_LIMIT}"
fi
# Determine which modules *not* to build depending in the USE flags.
if ! use berkdb ; then
modules="${modules},dbm"
fi
if ! use gdbm ; then
modules="${modules},gdbm"
fi
if ! use ssl ; then
modules="${modules},openssl"
fi
if ! use tk ; then
modules="${modules},tk"
fi
# Fix co-routine selection for x32, bug 933070
[[ ${CHOST} == *gnux32 ]] && myconf="${myconf} --with-coroutine=amd64"
# Provide an empty LIBPATHENV because we disable rpath but we do not
# need LD_LIBRARY_PATH by default since that breaks USE=multitarget
# #564272
# except on Darwin, where we really need LIBPATHENV to set the right
# DYLD_ stuff during the invocation of miniruby for it to work
#
# --with-setjmp-type=setjmp for bug #949016
[[ ${CHOST} == *-darwin* ]] || export LIBPATHENV=""
INSTALL="${EPREFIX}/usr/bin/install -c" econf \
--program-suffix=${MY_SUFFIX} \
--with-soname=ruby${MY_SUFFIX} \
--enable-shared \
--enable-pthread \
--disable-rpath \
--without-baseruby \
--with-compress-debug-sections=no \
--with-setjmp-type=setjmp \
--enable-mkmf-verbose \
--with-out-ext="${modules}" \
$(use_with jemalloc jemalloc) \
$(use_enable jit jit-support) \
$(use_enable jit yjit) \
$(use_enable socks5 socks) \
$(use_enable systemtap dtrace) \
$(use_enable doc install-doc) \
$(use_enable static-libs static) \
$(use_enable static-libs install-static-library) \
$(use_with static-libs static-linked-ext) \
$(use_enable debug) \
${myconf} \
$(use_with valgrind) \
--enable-option-checking=no
# Makefile is broken because it lacks -ldl
rm -rf ext/-test-/popen_deadlock || die
}
src_compile() {
local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
emake V=1 EXTLDFLAGS="${LDFLAGS}" MJIT_CFLAGS="${CFLAGS}" MJIT_OPTFLAGS="" MJIT_DEBUGFLAGS=""
}
src_test() {
local -x LD_LIBRARY_PATH="${S}${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
emake V=1 check
}
src_install() {
# Remove the remaining bundled gems. We do this late in the process
# since they are used during the build to e.g. create the
# documentation.
einfo "Removing default gems before installation"
rm -rf lib/bundler* lib/rdoc/rdoc.gemspec || die
# Ruby is involved in the install process, we don't want interference here.
unset RUBYOPT
local MINIRUBY=$(echo -e 'include Makefile\ngetminiruby:\n\t@echo $(MINIRUBY)'|make -f - getminiruby)
local -x LD_LIBRARY_PATH="${S}:${ED}/usr/$(get_libdir)${LD_LIBRARY_PATH+:}${LD_LIBRARY_PATH}"
local -x RUBYLIB="${S}:${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"
for d in $(find "${S}/ext" -type d) ; do
RUBYLIB="${RUBYLIB}:$d"
done
# Create directory for the default gems
local gem_home="${EPREFIX}/usr/$(get_libdir)/ruby/gems/${RUBYVERSION}"
mkdir -p "${D}/${gem_home}" || die "mkdir gem home failed"
emake V=1 DESTDIR="${D}" GEM_DESTDIR=${gem_home} install
# Remove installed rubygems and rdoc copy
rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}/rubygems" || die "rm rubygems failed"
rm -rf "${ED}/usr/bin/"gem"${MY_SUFFIX}" || die "rm rdoc bins failed"
rm -rf "${ED}/usr/$(get_libdir)/ruby/${RUBYVERSION}"/rdoc* || die "rm rdoc failed"
rm -rf "${ED}/usr/bin/"{bundle,bundler,ri,rdoc}"${MY_SUFFIX}" || die "rm rdoc bins failed"
if use doc; then
emake DESTDIR="${D}" GEM_DESTDIR=${gem_home} install-doc
fi
if use examples; then
dodoc -r sample
fi
dodoc ChangeLog NEWS.md README*
dodoc -r doc
}
pkg_postinst() {
if [[ ! -n $(readlink "${EROOT}"/usr/bin/ruby) ]] ; then
eselect ruby set ruby${MY_SUFFIX}
fi
elog
elog "To switch between available Ruby profiles, execute as root:"
elog "\teselect ruby set ruby(30|31|...)"
elog
}
pkg_postrm() {
eselect ruby cleanup
}

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/bigdecimal/extconf.rb)

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
# The specs require a number of gems to be installed in a temporary
# directory, but this requires network access. They also don't work

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_EXTRADOC="NEWS.md README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/date/extconf.rb)

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="TODO.md README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
@@ -20,4 +21,11 @@ ruby_add_bdepend "test? ( dev-ruby/minitest:5 dev-ruby/test-unit dev-ruby/test-u
all_ruby_prepare() {
sed -i -e '/bundler/ s:^:#:' Rakefile || die
# Avoid a test that no longer works in ruby40 since ostruct changed status
sed -e '/test_load_error_from_require_has_suggestions/aomit "ostruct changed"' \
-i test/spell_checking/test_require_path_check.rb || die
# Avoid ractor tests that have not been updated for ruby40 yet.
rm -f test/test_ractor_compatibility.rb || die
}

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/digest/extconf.rb ext/digest/bubblebabble/extconf.rb ext/digest/md5/extconf.rb

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
# There is an erb binary in exe but that would conflict with the ruby
# built-in version and other slots.

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/fiddle/extconf.rb)

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTENSIONS=(ext/io/console/extconf.rb)
RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/io"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINDIR="exe"
RUBY_FAKEGEM_EXTRADOC="README.md"
@@ -53,6 +53,10 @@ all_ruby_prepare() {
# Skip tests confused by our test path
sed -e '/test_backtrace_filtering/aomit "Fails due to unexpected paths"' \
-i test/irb/test_irb.rb || die
# Skip a Ruby::Box test (still experimental)
sed -e '/test_context_mode_ruby_box/aomit "Ruby::Box is experimental"' \
-i test/irb/test_irb.rb || die
}
each_ruby_test() {

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="CHANGES.md README.md"
RUBY_FAKEGEM_DOCDIR="doc"
@@ -50,4 +50,8 @@ all_ruby_prepare() {
# Avoid setting gem since it will not be available yet when installing
sed -i -e '/gem/ s:^:#:' test/json/test_helper.rb || die
# Avoid coverage dependencies
sed -e 's/JSON_COVERAGE/NO_JSON_COVERAGE/' \
-i test/json/test_helper.rb || die
}

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
inherit ruby-fakegem

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_DOCDIR="doc"
RUBY_FAKEGEM_EXTRADOC="History.rdoc README.rdoc"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_DOCDIR="doc"
RUBY_FAKEGEM_EXTRADOC="History.rdoc README.rdoc"

View File

@@ -1,8 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="NEWS.md README.md"

View File

@@ -1,8 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/nkf/extconf.rb)

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=( ext/prism/extconf.rb )

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/psych/extconf.rb)

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_EXTRADOC="README.rdoc README.ja.rdoc TODO ChangeLog"
@@ -28,7 +28,7 @@ IUSE="doc test"
ruby_add_rdepend "virtual/ruby-ssl"
ruby_add_bdepend "dev-ruby/rake
test? ( dev-ruby/minitest dev-ruby/test-unit-ruby-core )"
test? ( dev-ruby/test-unit dev-ruby/test-unit-ruby-core )"
all_ruby_prepare() {
sed -i -e 's/, :isolate//' Rakefile || die

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_EXTRADOC="CHANGES README.rdoc TODO"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC=""
RUBY_FAKEGEM_DOCDIR="doc"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md doc/reline/face.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -1,8 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_EXTRADOC="NEWS.md README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="NEWS.md README.md"
RUBY_FAKEGEM_GEMSPEC="rss.gemspec"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="none"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
inherit ruby-ng prefix
@@ -79,7 +79,7 @@ each_ruby_test() {
if [[ "${EUID}" -ne "0" ]]; then
RUBYLIB="$(pwd)/lib${RUBYLIB+:${RUBYLIB}}" ${RUBY} --disable-gems -I.:lib:test:bundler/lib \
-e 'require "rubygems"; gem "minitest", "~>5.0"; Dir["test/**/test_*.rb"].each { require _1 }' || die "tests failed"
-e 'require "rubygems"; Dir["test/**/test_*.rb"].each { require _1 }' || die "tests failed"
else
ewarn "The userpriv feature must be enabled to run tests, bug 408951."
eerror "Testsuite will not be run."

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="README.md"
RUBY_FAKEGEM_EXTENSIONS=(ext/stringio/extconf.rb)

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="NEWS.md README.md"

View File

@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby31 ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTENSIONS=(ext/syslog/extconf.rb)

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="none"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="README.md doc-install/text/*.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -3,7 +3,7 @@
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34"
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_EXTRADOC="README.md"

View File

@@ -36,14 +36,14 @@ esac
RUBY_TARGETS_PREFERENCE="ruby32 ruby33 "
# All other active ruby targets
RUBY_TARGETS_PREFERENCE+="ruby34"
RUBY_TARGETS_PREFERENCE+="ruby34 ruby40"
_ruby_implementation_depend() {
local rubypn=
local rubyslot=
case $1 in
ruby1[89]|ruby2[0-7]|ruby3[0-4])
ruby1[89]|ruby2[0-7]|ruby3[0-4]|ruby40)
rubypn="dev-lang/ruby"
rubyslot=":${1:4:1}.${1:5}"
;;

View File

@@ -0,0 +1,27 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
inherit ruby-ng
DESCRIPTION="Virtual ebuild for the Ruby OpenSSL bindings"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND="
ruby_targets_ruby32? ( dev-lang/ruby:3.2[ssl] )
ruby_targets_ruby33? ( dev-lang/ruby:3.3[ssl] )
ruby_targets_ruby34? ( dev-lang/ruby:3.4[ssl] )
ruby_targets_ruby40? ( dev-lang/ruby:4.0[ssl] )
"
pkg_setup() { :; }
src_unpack() { :; }
src_prepare() { eapply_user; }
src_compile() { :; }
src_install() { :; }
pkg_preinst() { :; }
pkg_postinst() { :; }

View File

@@ -0,0 +1,27 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby32 ruby33 ruby34 ruby40"
inherit ruby-ng
DESCRIPTION="Virtual ebuild for rubygems"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND="
ruby_targets_ruby32? ( >=dev-ruby/rubygems-3.4.19[ruby_targets_ruby32] )
ruby_targets_ruby33? ( >=dev-ruby/rubygems-3.5.22[ruby_targets_ruby33] )
ruby_targets_ruby34? ( >=dev-ruby/rubygems-3.6.2[ruby_targets_ruby34] )
ruby_targets_ruby40? ( >=dev-ruby/rubygems-4.0.3[ruby_targets_ruby40] )
"
pkg_setup() { :; }
src_unpack() { :; }
src_prepare() { eapply_user; }
src_compile() { :; }
src_install() { :; }
pkg_preinst() { :; }
pkg_postinst() { :; }