From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/ruby/
Date: Thu, 30 Jan 2025 00:10:50 +0000 (UTC) [thread overview]
Message-ID: <1738195687.950f851501f6dd30c32054048ca3b4af5dcda591.sam@gentoo> (raw)
commit: 950f851501f6dd30c32054048ca3b4af5dcda591
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 30 00:08:07 2025 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Jan 30 00:08:07 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=950f8515
dev-lang/ruby: disable dangerous __builtin_setjmp; fixup FP filtering
* Disable dangerous __builtin_setjmp. As discussed it in the bug, it
really shouldn't be used pretty much ever - rather setjmp should be used.
Ruby upstream are already disabling it for arm64 and others have pointed
out that it should be done for all arches, but that hasn't happened yet.
Anyway, a user hit the crash, so let's make the change on our end.
* Fix -fno-omit-frame-pointer filtering. For quite some time, -O* on various
arches already implies -fomit-frame-pointer, hence filtering -fomit-frame-pointer
by itself isn't sufficient. Add an explicit `append-flags -fno-omit-frame-pointer`
to get the desired effect. We can drop it entirely if desired but I'm not
confident in doing that at this point.
Closes: https://bugs.gentoo.org/949016
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-lang/ruby/ruby-3.1.6-r3.ebuild | 289 +++++++++++++++++++++++++++++++++
dev-lang/ruby/ruby-3.2.6-r4.ebuild | 295 ++++++++++++++++++++++++++++++++++
dev-lang/ruby/ruby-3.3.7-r1.ebuild | 302 +++++++++++++++++++++++++++++++++++
dev-lang/ruby/ruby-3.4.1-r1.ebuild | 316 +++++++++++++++++++++++++++++++++++++
4 files changed, 1202 insertions(+)
diff --git a/dev-lang/ruby/ruby-3.1.6-r3.ebuild b/dev-lang/ruby/ruby-3.1.6-r3.ebuild
new file mode 100644
index 000000000000..0071dfc446b3
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.1.6-r3.ebuild
@@ -0,0 +1,289 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic multiprocessing
+
+MY_P="${PN}-$(ver_cut 1-3)"
+S=${WORKDIR}/${MY_P}
+
+SLOT=$(ver_cut 1-2)
+MY_SUFFIX=$(ver_rs 1 '' ${SLOT})
+RUBYVERSION=${SLOT}.0
+
+DESCRIPTION="An object-oriented scripting language"
+HOMEPAGE="https://www.ruby-lang.org/"
+SRC_URI="https://cache.ruby-lang.org/pub/ruby/${SLOT}/${MY_P}.tar.xz"
+
+LICENSE="|| ( Ruby-BSD BSD-2 )"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="berkdb debug doc examples gdbm ipv6 jemalloc jit socks5 +ssl static-libs systemtap tk valgrind xemacs"
+
+RDEPEND="
+ berkdb? ( sys-libs/db:= )
+ gdbm? ( sys-libs/gdbm:= )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jit? ( || ( sys-devel/gcc:* llvm-core/clang:* ) )
+ 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:=
+ sys-libs/readline:0=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/irb-1.4.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/minitest-5.15.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/power_assert-2.0.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby31(-)]
+ >=dev-ruby/rbs-2.1.0[ruby_targets_ruby31(-)]
+ >=dev-ruby/rexml-3.2.5[ruby_targets_ruby31(-)]
+ >=dev-ruby/rss-0.2.9[ruby_targets_ruby31(-)]
+ >=dev-ruby/test-unit-3.5.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/typeprof-0.12.2[ruby_targets_ruby31(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby31(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby31(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby31(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby31(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/012*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/013*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/020*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/902*.patch
+
+ if use elibc_musl ; then
+ eapply "${FILESDIR}"/3.1/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
+ # Don't install CLI tools since they will clash with the gem
+ rm -f bin/{racc,racc2y,y2racc} || die
+ sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || die
+
+ einfo "Removing bundled libraries..."
+ rm -fr ext/fiddle/libffi-3.2.1 || die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || 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/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb test/resolv/test_addr.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+ sed -i -e '/def test_test/askip "Depends on system setup"' test/ruby/test_file_exhaustive.rb || die
+
+ # MJIT is broken and removed in later ruby versions.
+ rm -f test/ruby/test_jit.rb || die
+
+ # This test calls out to the system ruby which is not being tested
+ # and may not be the same version.
+ sed -e '/test_without_tty/aomit "Calls system ruby"' \
+ -i test/readline/test_readline.rb || 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
+
+ # Ruby 3.1 does not compile against the gnu23 standard, bug
+ # #943767. Given that Ruby 3.1 is EOL in March 2025 just opt to use
+ # the older standard.
+ append-flags -std=gnu17
+
+ # 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
+
+ # ipv6 hack, bug 168939. Needs --enable-ipv6.
+ use ipv6 || myconf="${myconf} --with-lookup-order-hack=INET"
+
+ # 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
+
+ # 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} \
+ --with-readline-dir="${EPREFIX}"/usr \
+ --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 socks5 socks) \
+ $(use_enable systemtap dtrace) \
+ $(use_enable doc install-doc) \
+ --enable-ipv6 \
+ $(use_enable static-libs static) \
+ $(use_enable static-libs install-static-library) \
+ $(use_with static-libs static-linked-ext) \
+ $(use_enable debug) \
+ $(use_with valgrind) \
+ ${myconf} \
+ --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 doc/NEWS* README*
+}
+
+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
+}
diff --git a/dev-lang/ruby/ruby-3.2.6-r4.ebuild b/dev-lang/ruby/ruby-3.2.6-r4.ebuild
new file mode 100644
index 000000000000..d08d1ea44138
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.2.6-r4.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_OPTIONAL="yes"
+
+inherit autotools flag-o-matic multiprocessing 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/${SLOT}/${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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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:=
+ sys-libs/readline:0=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231008
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.7.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/irb-1.6.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/minitest-5.16.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-ftp-0.2.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-imap-0.3.4.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/net-smtp-0.3.4[ruby_targets_ruby32(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rake-13.0.6-r2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rbs-2.8.2[ruby_targets_ruby32(-)]
+ >=dev-ruby/rexml-3.3.9[ruby_targets_ruby32(-)]
+ >=dev-ruby/rss-0.3.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/test-unit-3.5.7[ruby_targets_ruby32(-)]
+ >=dev-ruby/typeprof-0.21.3[ruby_targets_ruby32(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby32(-)]
+ >=dev-ruby/bundler-2.3.3[ruby_targets_ruby32(-)]
+ >=dev-ruby/did_you_mean-1.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/json-2.6.1[ruby_targets_ruby32(-)]
+ >=dev-ruby/rdoc-6.3.3[ruby_targets_ruby32(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/011*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/013*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/014*.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
+ # Don't install CLI tools since they will clash with the gem
+ rm -f bin/{racc,racc2y,y2racc} || die
+ sed -i -e '/executables/ s:^:#:' lib/racc/racc.gemspec || 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/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || 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 -i -e '/^test-syntax-suggest/ s/\$(TEST_RUNNABLE)/no/' common.mk || die
+ sed -i -e '/^check:/ s/\$(TEST_RUNNABLE)-\$(PREPARE_SYNTAX_SUGGEST) test-syntax-suggest//' common.mk || die
+
+ # Avoid test that fails intermittently
+ sed -i -e '/test_gem_exec_gem_uninstall/aomit "Fails intermittently"' test/rubygems/test_gem_commands_exec_command.rb || 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 #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
+
+ # 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} \
+ --with-readline-dir="${EPREFIX}"/usr \
+ --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
+}
diff --git a/dev-lang/ruby/ruby-3.3.7-r1.ebuild b/dev-lang/ruby/ruby-3.3.7-r1.ebuild
new file mode 100644
index 000000000000..7c460afeeb23
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.3.7-r1.ebuild
@@ -0,0 +1,302 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_OPTIONAL="yes"
+
+inherit autotools flag-o-matic multiprocessing 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20231226
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/debug-1.9.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/irb-1.11.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/minitest-5.20.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-ftp-0.3.4[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-imap-0.4.9.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/net-smtp-0.4.0.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/power_assert-2.0.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/prime-0.1.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/racc-1.7.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/rake-13.1.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rbs-3.4.0[ruby_targets_ruby33(-)]
+ >=dev-ruby/rexml-3.3.9[ruby_targets_ruby33(-)]
+ >=dev-ruby/rss-0.3.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/test-unit-3.6.1[ruby_targets_ruby33(-)]
+ >=dev-ruby/typeprof-0.21.9[ruby_targets_ruby33(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby33(-)]
+ >=dev-ruby/bundler-2.5.11[ruby_targets_ruby33(-)]
+ >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby33(-)]
+ >=dev-ruby/json-2.7.2[ruby_targets_ruby33(-)]
+ >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby33(-)]
+ xemacs? ( app-xemacs/ruby-modes )
+"
+
+pkg_setup() {
+ use jit && rust_pkg_setup
+}
+
+src_prepare() {
+ eapply "${FILESDIR}"/"${SLOT}"/010*.patch
+ eapply "${FILESDIR}"/"${SLOT}"/013*.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
+
+ # Avoid the irb default gemspec since we will install the normal gem
+ # instead. This avoids a file collision with dev-ruby/irb.
+ rm lib/irb/irb.gemspec || 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/rinda/test_rinda.rb test/socket/test_tcp.rb test/fiber/test_address_resolve.rb \
+ spec/ruby/library/socket/tcpsocket/{initialize,open}_spec.rb|| die
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid test using the system ruby
+ sed -i -e '/test_dumb_terminal/aomit "Uses system ruby"' test/reline/test_reline.rb || 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 '/^\(test-syntax-suggest\|PREPARE_SYNTAX_SUGGEST\)/ s/\$(TEST_RUNNABLE)/no/' \
+ -i common.mk
+
+ # 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
+
+ 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 #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
+}
diff --git a/dev-lang/ruby/ruby-3.4.1-r1.ebuild b/dev-lang/ruby/ruby-3.4.1-r1.ebuild
new file mode 100644
index 000000000000..3f9f07ce7cb7
--- /dev/null
+++ b/dev-lang/ruby/ruby-3.4.1-r1.ebuild
@@ -0,0 +1,316 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+RUST_OPTIONAL="yes"
+
+inherit autotools flag-o-matic multiprocessing 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 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-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:=
+ sys-libs/zlib
+ virtual/libcrypt:=
+ >=app-eselect/eselect-ruby-20241225
+"
+
+DEPEND="
+ ${RDEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+
+BUNDLED_GEMS="
+ >=dev-ruby/minitest-5.25.4[ruby_targets_ruby34(-)]
+ >=dev-ruby/power_assert-2.0.5[ruby_targets_ruby34(-)]
+ >=dev-ruby/rake-13.2.1[ruby_targets_ruby34(-)]
+ >=dev-ruby/test-unit-3.6.7[ruby_targets_ruby34(-)]
+ >=dev-ruby/rexml-3.4.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/rss-0.3.1[ruby_targets_ruby34(-)]
+ >=dev-ruby/net-ftp-0.3.8[ruby_targets_ruby34(-)]
+ >=dev-ruby/net-imap-0.5.4[ruby_targets_ruby34(-)]
+ >=dev-ruby/net-pop-0.1.2[ruby_targets_ruby34(-)]
+ >=dev-ruby/net-smtp-0.5.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/matrix-0.4.2[ruby_targets_ruby34(-)]
+ >=dev-ruby/prime-0.1.3[ruby_targets_ruby34(-)]
+ >=dev-ruby/rbs-3.8.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/typeprof-0.30.1[ruby_targets_ruby34(-)]
+ >=dev-ruby/debug-1.10.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/racc-1.8.1[ruby_targets_ruby34(-)]
+
+ >=dev-ruby/mutex_m-0.3.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/getoptlong-0.2.1[ruby_targets_ruby34(-)]
+ >=dev-ruby/base64-0.2.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/bigdecimal-3.1.8[ruby_targets_ruby34(-)]
+ >=dev-ruby/observer-0.1.2[ruby_targets_ruby34(-)]
+ >=dev-ruby/abbrev-0.1.2[ruby_targets_ruby34(-)]
+ >=dev-ruby/resolv-replace-0.1.1[ruby_targets_ruby34(-)]
+ >=dev-ruby/rinda-0.2.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/drb-2.2.1[ruby_targets_ruby34(-)]
+ >=dev-ruby/nkf-0.2.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/syslog-0.2.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/csv-3.3.2[ruby_targets_ruby34(-)]
+ >=dev-ruby/repl_type_completor-0.1.9[ruby_targets_ruby34(-)]
+"
+
+PDEPEND="
+ ${BUNDLED_GEMS}
+ virtual/rubygems[ruby_targets_ruby34(-)]
+ >=dev-ruby/bundler-2.5.11[ruby_targets_ruby34(-)]
+ >=dev-ruby/did_you_mean-1.6.3[ruby_targets_ruby34(-)]
+ >=dev-ruby/irb-1.11.0[ruby_targets_ruby34(-)]
+ >=dev-ruby/json-2.7.2[ruby_targets_ruby34(-)]
+ >=dev-ruby/rdoc-6.6.2[ruby_targets_ruby34(-)]
+ 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
+
+ # Avoid the irb default gemspec since we will install the normal gem
+ # instead. This avoids a file collision with dev-ruby/irb.
+ rm lib/irb/irb.gemspec || 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/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
+
+ # Remove webrick tests because setting LD_LIBRARY_PATH does not work for them.
+ rm -rf tool/test/webrick || die
+
+ # Avoid tests using the system ruby
+ sed -i -e '/test_\(dumb_terminal\|tty_amibuous_width\)/aomit "Uses system ruby"' test/reline/test_reline.rb || 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
+
+ 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 #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
+}
next reply other threads:[~2025-01-30 0:11 UTC|newest]
Thread overview: 465+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-30 0:10 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-02-05 13:36 [gentoo-commits] repo/gentoo:master commit in: dev-lang/ruby/ Hans de Graaff
2025-01-15 17:14 Hans de Graaff
2024-12-21 10:59 Hans de Graaff
2024-11-26 7:38 Hans de Graaff
2024-11-12 12:37 Hans de Graaff
2024-11-09 8:14 Matt Jolly
2024-11-05 6:51 Hans de Graaff
2024-11-05 6:51 Hans de Graaff
2024-11-05 6:51 Hans de Graaff
2024-11-01 6:37 Hans de Graaff
2024-10-31 17:05 Arthur Zamarin
2024-10-31 13:51 Sam James
2024-10-31 13:51 Sam James
2024-09-30 18:31 Fabian Groffen
2024-09-11 0:15 Sam James
2024-09-04 5:35 Hans de Graaff
2024-08-31 2:49 Sam James
2024-08-31 2:23 Sam James
2024-08-17 7:24 Hans de Graaff
2024-08-16 8:22 Hans de Graaff
2024-08-16 7:56 Arthur Zamarin
2024-08-16 7:56 Arthur Zamarin
2024-08-16 7:56 Arthur Zamarin
2024-08-16 7:56 Arthur Zamarin
2024-08-16 5:07 Sam James
2024-07-28 7:26 Hans de Graaff
2024-07-27 8:12 Hans de Graaff
2024-07-17 4:38 Viorel Munteanu
2024-07-12 6:21 Ionen Wolkens
2024-07-12 6:21 Ionen Wolkens
2024-07-10 7:36 Hans de Graaff
2024-07-09 11:29 Hans de Graaff
2024-07-09 6:03 Hans de Graaff
2024-07-09 6:02 Hans de Graaff
2024-06-17 11:26 Arthur Zamarin
2024-06-17 11:26 Arthur Zamarin
2024-06-01 5:41 Hans de Graaff
2024-06-01 5:41 Hans de Graaff
2024-05-20 21:49 Sam James
2024-05-20 21:49 Sam James
2024-05-20 21:49 Sam James
2024-05-20 21:49 Sam James
2024-05-20 21:49 Sam James
2024-04-27 7:43 Hans de Graaff
2024-04-24 5:45 Hans de Graaff
2024-04-24 5:44 Hans de Graaff
2024-03-29 8:16 Hans de Graaff
2024-02-10 8:59 Hans de Graaff
2024-02-10 8:59 Hans de Graaff
2024-01-20 10:26 Hans de Graaff
2024-01-19 18:16 Mike Gilbert
2023-10-08 9:45 Hans de Graaff
2023-10-06 18:00 Sam James
2023-09-29 7:35 Hans de Graaff
2023-09-10 10:41 Fabian Groffen
2023-07-08 20:22 Hans de Graaff
2023-06-16 20:54 Sam James
2023-06-16 20:54 Sam James
2023-06-05 12:07 Sam James
2023-05-30 1:28 Sam James
2023-05-29 20:21 Sam James
2023-05-29 20:10 Sam James
2023-05-29 20:01 Arthur Zamarin
2023-05-29 19:45 Arthur Zamarin
2023-05-29 19:45 Arthur Zamarin
2023-05-29 19:45 Arthur Zamarin
2023-05-16 1:52 Sam James
2023-05-04 19:49 Fabian Groffen
2023-04-26 6:31 Hans de Graaff
2023-04-25 22:16 Sam James
2023-04-24 23:16 Sam James
2023-04-24 23:16 Sam James
2023-04-24 23:16 Sam James
2023-04-24 23:16 Sam James
2023-04-24 23:16 Sam James
2023-04-24 23:16 Sam James
2023-04-23 22:28 Sam James
2023-04-23 21:40 Sam James
2023-04-23 21:36 Sam James
2023-04-23 21:36 Sam James
2023-04-23 21:33 Sam James
2023-04-22 14:28 Sam James
2023-04-22 11:27 Jakov Smolić
2023-04-22 10:34 Arthur Zamarin
2023-04-22 8:51 Arthur Zamarin
2023-04-22 8:42 Arthur Zamarin
2023-04-10 8:21 Sam James
2023-04-10 6:32 Sam James
2023-04-10 5:20 Sam James
2023-04-10 4:56 Sam James
2023-03-31 7:17 Hans de Graaff
2023-02-03 6:26 Sam James
2023-01-15 15:22 Sam James
2023-01-15 15:14 Sam James
2023-01-15 15:14 Sam James
2023-01-15 12:53 Sam James
2023-01-15 12:53 Sam James
2023-01-15 12:44 Sam James
2022-12-03 15:51 Hans de Graaff
2022-12-02 17:22 Arthur Zamarin
2022-11-30 21:15 Jakov Smolić
2022-11-26 17:12 Arthur Zamarin
2022-11-26 13:57 Arthur Zamarin
2022-11-26 13:57 Arthur Zamarin
2022-11-26 13:56 Arthur Zamarin
2022-11-26 13:00 Arthur Zamarin
2022-11-26 13:00 Arthur Zamarin
2022-11-24 18:04 Hans de Graaff
2022-05-08 16:12 WANG Xuerui
2022-05-08 16:12 WANG Xuerui
2022-05-07 6:34 Hans de Graaff
2022-05-04 23:32 Sam James
2022-05-01 8:43 Hans de Graaff
2022-05-01 7:40 Hans de Graaff
2022-05-01 6:34 Hans de Graaff
2022-04-30 19:11 Sam James
2022-04-30 19:11 Sam James
2022-04-23 9:53 Hans de Graaff
2022-04-23 9:45 Hans de Graaff
2022-04-15 7:26 Arthur Zamarin
2022-04-15 7:26 Arthur Zamarin
2022-04-15 7:26 Arthur Zamarin
2022-04-15 7:16 Arthur Zamarin
2022-04-15 6:37 Arthur Zamarin
2022-04-15 6:37 Arthur Zamarin
2022-04-14 8:12 Agostino Sarubbo
2022-04-14 8:11 Agostino Sarubbo
2022-04-14 8:09 Agostino Sarubbo
2022-04-14 8:08 Agostino Sarubbo
2022-04-12 14:09 Hans de Graaff
2022-02-07 9:46 Fabian Groffen
2022-01-16 14:18 Fabian Groffen
2021-12-05 7:33 Hans de Graaff
2021-12-04 18:04 Sam James
2021-12-04 18:04 Sam James
2021-12-01 9:02 Agostino Sarubbo
2021-11-29 18:39 Arthur Zamarin
2021-11-29 18:39 Arthur Zamarin
2021-11-29 18:39 Arthur Zamarin
2021-11-29 18:39 Arthur Zamarin
2021-11-29 18:33 Arthur Zamarin
2021-11-29 18:33 Arthur Zamarin
2021-11-29 17:34 Arthur Zamarin
2021-11-29 17:34 Arthur Zamarin
2021-11-29 17:34 Arthur Zamarin
2021-11-29 17:34 Arthur Zamarin
2021-11-29 17:31 Jakov Smolić
2021-11-29 17:31 Jakov Smolić
2021-11-25 9:10 Hans de Graaff
2021-10-24 8:05 Hans de Graaff
2021-10-14 9:07 Sam James
2021-10-14 9:07 Sam James
2021-10-14 9:07 Sam James
2021-10-11 1:36 Sam James
2021-10-11 1:17 Sam James
2021-10-11 1:07 Sam James
2021-10-11 1:07 Sam James
2021-07-24 9:24 Hans de Graaff
2021-07-22 6:07 Sam James
2021-07-21 15:39 Marek Szuba
2021-07-21 15:39 Marek Szuba
2021-07-18 8:46 Hans de Graaff
2021-07-17 3:58 Sam James
2021-07-16 8:52 Hans de Graaff
2021-07-15 13:44 Sergei Trofimovich
2021-07-11 9:00 Agostino Sarubbo
2021-07-11 8:58 Agostino Sarubbo
2021-07-10 17:28 Sam James
2021-07-10 15:40 Sam James
2021-07-07 19:15 Hans de Graaff
2021-07-06 17:59 Sam James
2021-07-06 17:59 Sam James
2021-07-02 6:28 Agostino Sarubbo
2021-07-01 18:32 Sergei Trofimovich
2021-07-01 18:32 Sergei Trofimovich
2021-07-01 8:25 Agostino Sarubbo
2021-07-01 8:24 Agostino Sarubbo
2021-07-01 8:23 Agostino Sarubbo
2021-07-01 8:22 Agostino Sarubbo
2021-06-26 5:30 Hans de Graaff
2021-06-24 23:27 Sam James
2021-05-02 8:26 Mikle Kolyada
2021-05-01 6:12 Hans de Graaff
2021-04-06 6:14 Hans de Graaff
2021-03-13 14:00 Hans de Graaff
2020-12-28 8:32 Hans de Graaff
2020-12-27 14:08 Fabian Groffen
2020-12-25 7:58 Hans de Graaff
2020-12-10 20:18 Sam James
2020-10-03 5:20 Hans de Graaff
2020-09-20 22:54 Thomas Deutschmann
2020-09-19 20:06 Sergei Trofimovich
2020-09-14 22:36 Sam James
2020-09-14 21:06 Sam James
2020-09-14 20:55 Sam James
2020-09-14 20:53 Sam James
2020-09-14 20:07 Sam James
2020-09-14 19:57 Sam James
2020-08-07 6:22 Hans de Graaff
2020-05-10 7:16 Hans de Graaff
2020-05-02 11:29 Ulrich Müller
2020-04-14 5:50 Hans de Graaff
2020-04-13 14:52 Agostino Sarubbo
2020-04-13 14:50 Agostino Sarubbo
2020-04-12 13:28 Hans de Graaff
2020-04-09 18:40 Sergei Trofimovich
2020-04-05 9:43 Hans de Graaff
2020-04-03 21:57 Sergei Trofimovich
2020-04-03 13:12 Agostino Sarubbo
2020-04-03 12:16 Agostino Sarubbo
2020-04-03 12:13 Agostino Sarubbo
2020-04-03 12:05 Agostino Sarubbo
2020-04-03 9:29 Mikle Kolyada
2020-04-03 7:37 Mart Raudsepp
2020-04-02 2:21 Matt Turner
2020-04-02 2:11 Matt Turner
2020-04-02 2:11 Matt Turner
2020-03-31 15:41 Hans de Graaff
2020-02-23 6:04 Hans de Graaff
2019-12-29 13:36 Jeroen Roovers
2019-12-28 16:22 Sergei Trofimovich
2019-12-02 11:07 Mikle Kolyada
2019-10-27 6:52 Hans de Graaff
2019-10-20 8:55 Mikle Kolyada
2019-10-11 22:32 Sergei Trofimovich
2019-10-07 19:12 Sergei Trofimovich
2019-10-07 7:29 Agostino Sarubbo
2019-10-06 22:56 Matt Turner
2019-10-06 22:56 Matt Turner
2019-10-06 19:33 Aaron Bauman
2019-10-05 6:54 Michał Górny
2019-10-04 12:57 Agostino Sarubbo
2019-10-04 11:54 Agostino Sarubbo
2019-10-03 14:40 Hans de Graaff
2019-10-03 9:41 Agostino Sarubbo
2019-10-03 8:40 Agostino Sarubbo
2019-10-03 8:39 Agostino Sarubbo
2019-10-03 6:07 Hans de Graaff
2019-10-01 18:06 Hans de Graaff
2019-10-01 18:06 Hans de Graaff
2019-09-21 22:57 Matt Turner
2019-09-21 22:57 Matt Turner
2019-09-13 17:52 Mikle Kolyada
2019-09-13 17:43 Mikle Kolyada
2019-09-13 12:04 Agostino Sarubbo
2019-09-11 3:51 Matt Turner
2019-09-04 9:41 Agostino Sarubbo
2019-09-03 19:28 Aaron Bauman
2019-09-03 8:30 Agostino Sarubbo
2019-09-02 16:59 Hans de Graaff
2019-09-02 10:11 Agostino Sarubbo
2019-09-02 9:32 Agostino Sarubbo
2019-09-02 7:25 Agostino Sarubbo
2019-09-01 21:25 Aaron Bauman
2019-09-01 9:21 Sergei Trofimovich
2019-08-30 18:39 Sergei Trofimovich
2019-08-28 23:22 Thomas Deutschmann
2019-08-28 23:22 Thomas Deutschmann
2019-08-28 17:38 Hans de Graaff
2019-08-28 17:38 Hans de Graaff
2019-08-28 17:38 Hans de Graaff
2019-08-23 20:10 Sergei Trofimovich
2019-08-18 17:09 Aaron Bauman
2019-08-18 6:04 Hans de Graaff
2019-07-29 16:32 Hans de Graaff
2019-07-29 8:47 Mikle Kolyada
2019-07-25 15:44 Hans de Graaff
2019-06-06 6:46 Agostino Sarubbo
2019-06-04 18:51 Agostino Sarubbo
2019-05-30 20:33 Sergei Trofimovich
2019-05-30 20:30 Sergei Trofimovich
2019-05-30 20:08 Sergei Trofimovich
2019-05-30 20:05 Sergei Trofimovich
2019-05-30 17:23 Aaron Bauman
2019-05-26 22:27 Thomas Deutschmann
2019-05-26 11:08 Mikle Kolyada
2019-05-26 8:27 Sergei Trofimovich
2019-05-11 17:28 Mikle Kolyada
2019-05-11 6:08 Hans de Graaff
2019-04-27 19:48 Aaron Bauman
2019-04-18 6:07 Hans de Graaff
2019-04-02 3:57 Hans de Graaff
2019-03-15 6:39 Hans de Graaff
2019-03-15 6:39 Hans de Graaff
2019-02-19 14:53 Fabian Groffen
2019-01-08 11:34 Lars Wendler
2018-12-30 3:43 Matt Turner
2018-12-28 6:58 Hans de Graaff
2018-12-28 6:58 Hans de Graaff
2018-12-27 2:57 Matt Turner
2018-12-25 11:11 Sergei Trofimovich
2018-12-23 12:55 Mikle Kolyada
2018-12-16 7:33 Hans de Graaff
2018-12-11 17:15 Hans de Graaff
2018-12-11 16:42 Thomas Deutschmann
2018-12-11 16:42 Thomas Deutschmann
2018-12-11 9:48 Hans de Graaff
2018-12-01 14:51 Sergei Trofimovich
2018-11-18 8:11 Hans de Graaff
2018-11-17 21:34 Thomas Deutschmann
2018-11-12 19:00 Hans de Graaff
2018-11-06 23:56 Sergei Trofimovich
2018-11-03 5:32 Matt Turner
2018-10-31 17:17 Markus Meier
2018-10-29 23:26 Sergei Trofimovich
2018-10-26 5:37 Matt Turner
2018-10-26 5:37 Matt Turner
2018-10-26 0:52 Thomas Deutschmann
2018-10-23 18:23 Sergei Trofimovich
2018-10-21 18:05 Mikle Kolyada
2018-10-19 13:32 Hans de Graaff
2018-10-19 5:35 Hans de Graaff
2018-10-18 5:36 Hans de Graaff
2018-10-01 12:40 Thomas Deutschmann
2018-06-16 6:24 Hans de Graaff
2018-06-16 5:41 Hans de Graaff
2018-06-15 5:45 Hans de Graaff
2018-06-12 22:02 Mikle Kolyada
2018-05-28 5:26 Hans de Graaff
2018-05-27 11:29 Mikle Kolyada
2018-04-22 19:18 Matt Turner
2018-04-22 19:18 Matt Turner
2018-04-20 21:27 Sergei Trofimovich
2018-04-20 21:27 Sergei Trofimovich
2018-04-14 11:40 Markus Meier
2018-04-14 11:40 Markus Meier
2018-04-08 22:11 Matt Turner
2018-04-08 22:11 Matt Turner
2018-04-05 16:57 Hans de Graaff
2018-04-05 13:43 Thomas Deutschmann
2018-04-05 6:10 Sergei Trofimovich
2018-04-05 6:10 Sergei Trofimovich
2018-04-03 21:07 Sergei Trofimovich
2018-04-03 21:07 Sergei Trofimovich
2018-03-29 6:46 Hans de Graaff
2018-03-21 1:38 Matt Turner
2018-03-18 19:59 Markus Meier
2018-03-14 21:29 Sergei Trofimovich
2018-03-14 19:57 Sergei Trofimovich
2018-03-14 17:31 Lars Wendler
2018-03-14 8:03 Sergei Trofimovich
2018-02-18 11:28 Sergei Trofimovich
2018-02-16 16:40 Hans de Graaff
2018-02-06 19:43 Benda XU
2018-01-29 8:47 Hans de Graaff
2018-01-29 8:22 Tobias Klausmann
2018-01-23 23:01 Sergei Trofimovich
2018-01-21 20:30 Thomas Deutschmann
2018-01-21 15:47 Hans de Graaff
2018-01-17 5:11 Thomas Deutschmann
2018-01-07 8:48 Hans de Graaff
2018-01-07 8:48 Hans de Graaff
2017-12-26 7:06 Hans de Graaff
2017-12-25 17:02 Hans de Graaff
2017-12-24 13:47 Sergei Trofimovich
2017-12-23 20:24 Sergei Trofimovich
2017-12-21 19:28 Markus Meier
2017-12-20 13:09 Agostino Sarubbo
2017-12-19 22:20 Sergei Trofimovich
2017-12-17 9:23 Sergei Trofimovich
2017-12-15 7:34 Hans de Graaff
2017-12-15 7:22 Hans de Graaff
2017-12-15 7:04 Hans de Graaff
2017-11-30 20:06 Sergei Trofimovich
2017-10-30 6:08 Hans de Graaff
2017-10-03 5:35 Hans de Graaff
2017-10-02 23:45 Thomas Deutschmann
2017-10-02 12:54 Manuel Rüger
2017-10-01 11:58 Benda XU
2017-09-24 18:50 Sergei Trofimovich
2017-09-23 19:45 Sergei Trofimovich
2017-09-23 12:40 Sergei Trofimovich
2017-09-23 6:38 Hans de Graaff
2017-09-18 4:31 Markus Meier
2017-09-17 16:51 Sergei Trofimovich
2017-09-16 19:13 Sergei Trofimovich
2017-09-16 11:08 Sergei Trofimovich
2017-09-15 15:38 Tobias Klausmann
2017-09-15 7:31 Hans de Graaff
2017-09-13 6:49 Hans de Graaff
2017-09-11 7:46 Sergei Trofimovich
2017-09-07 18:44 Markus Meier
2017-09-04 10:47 Tobias Klausmann
2017-09-02 13:29 Sergei Trofimovich
2017-09-01 18:44 Matt Turner
2017-09-01 18:44 Matt Turner
2017-09-01 13:56 Hans de Graaff
2017-09-01 7:22 Hans de Graaff
2017-09-01 7:22 Hans de Graaff
2017-09-01 7:22 Hans de Graaff
2017-08-23 18:27 Markus Meier
2017-08-08 14:03 Sergei Trofimovich
2017-08-08 4:33 Markus Meier
2017-07-23 8:49 Hans de Graaff
2017-07-23 8:49 Hans de Graaff
2017-07-21 17:01 Hans de Graaff
2017-07-15 14:13 Hans de Graaff
2017-07-11 4:58 Markus Meier
2017-06-05 21:53 Sergei Trofimovich
2017-05-27 6:44 Hans de Graaff
2017-04-30 8:38 Hans de Graaff
2017-04-30 8:10 Jeroen Roovers
2017-04-27 6:00 Hans de Graaff
2017-04-25 7:08 Tobias Klausmann
2017-03-30 6:08 Hans de Graaff
2017-03-29 5:21 Hans de Graaff
2017-03-26 7:50 Hans de Graaff
2017-03-26 7:50 Hans de Graaff
2017-03-08 23:39 Michael Weber
2017-03-01 13:05 Michael Weber
2017-02-03 7:41 Hans de Graaff
2016-12-28 8:14 Hans de Graaff
2016-12-26 19:17 Hans de Graaff
2016-12-26 19:17 Hans de Graaff
2016-11-22 6:38 Hans de Graaff
2016-11-16 5:58 Hans de Graaff
2016-10-02 6:58 Hans de Graaff
2016-10-02 6:58 Hans de Graaff
2016-09-19 13:17 Lars Wendler
2016-08-31 15:24 Lars Wendler
2016-07-09 5:29 Hans de Graaff
2016-07-08 13:28 Agostino Sarubbo
2016-07-08 8:42 Agostino Sarubbo
2016-07-08 8:17 Agostino Sarubbo
2016-06-21 11:32 Jeroen Roovers
2016-06-20 18:40 Hans de Graaff
2016-06-11 7:05 Jeroen Roovers
2016-06-06 6:02 Hans de Graaff
2016-06-04 5:03 Markus Meier
2016-06-04 5:02 Markus Meier
2016-06-03 5:47 Jeroen Roovers
2016-06-03 4:41 Jeroen Roovers
2016-05-31 9:35 Agostino Sarubbo
2016-05-31 9:30 Agostino Sarubbo
2016-05-31 8:44 Tobias Klausmann
2016-05-31 7:48 Tobias Klausmann
2016-05-30 18:47 Hans de Graaff
2016-05-30 18:47 Hans de Graaff
2016-04-27 11:54 Hans de Graaff
2016-04-27 11:54 Hans de Graaff
2016-04-04 6:42 Hans de Graaff
2016-03-30 15:47 Hans de Graaff
2016-02-07 18:04 Hans de Graaff
2015-12-27 9:41 Hans de Graaff
2015-12-27 9:22 Hans de Graaff
2015-12-25 19:58 Mikle Kolyada
2015-12-20 19:44 Hans de Graaff
2015-12-20 19:44 Hans de Graaff
2015-12-17 8:07 Hans de Graaff
2015-11-29 10:58 Hans de Graaff
2015-11-24 20:35 Markus Meier
2015-11-24 20:34 Markus Meier
2015-11-23 9:37 Agostino Sarubbo
2015-11-16 14:23 Agostino Sarubbo
2015-11-12 10:15 Agostino Sarubbo
2015-11-11 9:40 Agostino Sarubbo
2015-11-11 4:50 Jeroen Roovers
2015-11-09 11:30 Agostino Sarubbo
2015-10-11 9:51 Hans de Graaff
2015-09-13 6:56 Hans de Graaff
2015-08-24 5:03 Jeroen Roovers
2015-08-19 18:27 Hans de Graaff
2015-08-16 14:20 Justin Lecher
2015-08-09 16:03 Mikle Kolyada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1738195687.950f851501f6dd30c32054048ca3b4af5dcda591.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox