summaryrefslogtreecommitdiff
path: root/dev-ruby
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ruby')
-rw-r--r--dev-ruby/Manifest.gzbin107261 -> 107240 bytes
-rw-r--r--dev-ruby/activeldap/Manifest1
-rw-r--r--dev-ruby/activeldap/activeldap-6.1.0-r1.ebuild38
-rw-r--r--dev-ruby/async-io/Manifest3
-rw-r--r--dev-ruby/async-io/async-io-1.34.3-r1.ebuild4
-rw-r--r--dev-ruby/async-io/files/async-io-1.34.3-tests.patch19
-rw-r--r--dev-ruby/commonmarker/Manifest2
-rw-r--r--dev-ruby/commonmarker/commonmarker-0.23.9.ebuild41
-rw-r--r--dev-ruby/dnsruby/Manifest2
-rw-r--r--dev-ruby/dnsruby/dnsruby-1.70.0.ebuild35
-rw-r--r--dev-ruby/nokogiri/Manifest2
-rw-r--r--dev-ruby/nokogiri/nokogiri-1.14.3.ebuild95
-rw-r--r--dev-ruby/timers/Manifest2
-rw-r--r--dev-ruby/timers/files/timers-4.3.5-timers-slow.patch259
-rw-r--r--dev-ruby/timers/timers-4.3.5-r1.ebuild33
15 files changed, 535 insertions, 1 deletions
diff --git a/dev-ruby/Manifest.gz b/dev-ruby/Manifest.gz
index 0b3cf795c8b3..393553a7ea93 100644
--- a/dev-ruby/Manifest.gz
+++ b/dev-ruby/Manifest.gz
Binary files differ
diff --git a/dev-ruby/activeldap/Manifest b/dev-ruby/activeldap/Manifest
index 6b981b567a46..01f1c5a78d6c 100644
--- a/dev-ruby/activeldap/Manifest
+++ b/dev-ruby/activeldap/Manifest
@@ -1,3 +1,4 @@
DIST activeldap-6.1.0.gem 227328 BLAKE2B 48cd393a294b677b373461701773d3d0c18cbe9ee5124bcbafe392ee664a0e1045feb2d808734988bfceaaf7ae7b276ea12615ae30bb8109d63daf4b6a8cbed5 SHA512 b8a8d1346d75ae1ddd15b919f2a7afbec3e62b4248144ece3e1324892899735b05aa221ecec7c07f6273f35a6ffdacf4858d57326fb9b8c096f358652ef0b99d
+EBUILD activeldap-6.1.0-r1.ebuild 837 BLAKE2B 0e20c58a9f3311d305fbbbd12a6d5ae0750eca84eb99e11842e643a4feb686aab57b06fba4b695da7b0670d9a196366e85f7c0bf07cd11dfb243eb6750106607 SHA512 305b13adbe7c0e1e01f64d20af8d266c9921623602baeb8cb772334c681c52573cb50fb4d0f37abdeecbbeb6097f49c30c58c425d18230551dec8f53a01c73bf
EBUILD activeldap-6.1.0.ebuild 837 BLAKE2B 730af379594eb1c65ca1dc24680dd5a79fedf9cf8f60f38ba2dcca88127d8cb8bfb986520f64db342818724d79425e87ef561603a14a33e4dff75e91f0fb805f SHA512 2a32bb2d97afeedc530d61e64bc7f3a3e0d64d72a0f1eca3e8c03fefd3061e66a5b5f3efd07d33c813b3a6c2888532bed44aa9804dabca06ad2db337204fc2c7
MISC metadata.xml 348 BLAKE2B 9c4cf9542092aedd113d440228f34ec526e70bf0d81faefb3a22eb8464d1aa5f09d04cd0ba69a0c11a62654fd7b781c3e927eb76f28ffdf0c6825fd562938b8e SHA512 b7deb0a0b4c69059f15b97ec306ea62c9d001b1b581d0513e84d6865431216900133007c1c5eb462494f59dfc9f4545f5310e21e8a3b3990c61438a6499c5cfa
diff --git a/dev-ruby/activeldap/activeldap-6.1.0-r1.ebuild b/dev-ruby/activeldap/activeldap-6.1.0-r1.ebuild
new file mode 100644
index 000000000000..4d95f65c56e9
--- /dev/null
+++ b/dev-ruby/activeldap/activeldap-6.1.0-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby27 ruby30 ruby31"
+
+RUBY_FAKEGEM_TASK_DOC=""
+RUBY_FAKEGEM_EXTRADOC="TODO doc/text/*"
+RUBY_FAKEGEM_EXTRAINSTALL="po"
+
+inherit ruby-fakegem
+
+MY_P="${P/ruby-/}"
+DESCRIPTION="ActiveLDAP provides an activerecord inspired object oriented interface to LDAP"
+HOMEPAGE="https://github.com/activeldap/activeldap"
+
+LICENSE="GPL-2"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64"
+IUSE=""
+
+# Most tests require a live LDAP server to run.
+RESTRICT="test"
+
+ruby_add_rdepend "
+ >=dev-ruby/activemodel-5.2.0:*
+ dev-ruby/builder
+ dev-ruby/locale
+ dev-ruby/ruby-gettext
+ dev-ruby/gettext_i18n_rails
+ || ( dev-ruby/ruby-net-ldap >=dev-ruby/ruby-ldap-0.8.2 )"
+
+all_ruby_install() {
+ all_fakegem_install
+
+ dodoc doc/text/*
+ dodoc -r examples
+}
diff --git a/dev-ruby/async-io/Manifest b/dev-ruby/async-io/Manifest
index 25172b287549..e6166debfa4b 100644
--- a/dev-ruby/async-io/Manifest
+++ b/dev-ruby/async-io/Manifest
@@ -1,8 +1,9 @@
+AUX async-io-1.34.3-tests.patch 595 BLAKE2B 19384a0ce85b4825e518630b6b4c7b275276809d4774dfc7be999408afa29375affbc45063a25e50e8a9f76f17c5ae677d1ca693df177ce52260f07eb6178f1a SHA512 d6f8833af06cfad20b4334f38fd0c16b8d834395aa1ab69535579bfbb8b92be25e3c6cae8a880205b6667890e37158d8bae9f92a647770277e4f3bbe135d4131
DIST async-io-1.34.0.tar.gz 34147 BLAKE2B 85cb79423bcbcc45e7c3f703d5ce7866522e66c55f866a0545369b65eda9c8a4b5637eaeeb7e17a5a8ee7256c6a991871dbb96244e4647fa19f8f027fad37961 SHA512 d35389ebfb748ea1c44f4a7ea7707511e32d40e98ae3fd7e8a5b22fdbb5f8f5a00933ec48346e2ed44c679ee6121a6fdf980c8ee6a1da609fb7571abb703aa02
DIST async-io-1.34.1.tar.gz 34163 BLAKE2B 782131de9b652d2b9e622dd6026835df2089936ea97f360e3edd7425a4b9180cfd6dadbdd1c5537a06f0cda152a04aedd2fc983dc4559271c41f9ac5496bff94 SHA512 0a1e643d3879eed4e2ed2b347429a00a68b6c5dd8b63c66ab67218dfc4a00066499158fb84c4ae9f1848b5347a8d64728d16c84c6740348cfcae6c1cb82554b0
DIST async-io-1.34.3.tar.gz 34178 BLAKE2B 0af09d723682f6818e63e43a356539c098c37f5ea2ee72638e8aa1af888def845f412eb5ebc6a0fd4b51d76a03ba66b78cb70d09336ef50cd68bcd6ba7c50002 SHA512 2523ae6aa4590672e2fd6a4755cde30fe3cc54a98bf8d75d7eba0b9ec052fad232f4feaf4d6e948421b152695cc2217c4173e2475c9ce5859e4230d1078d0444
EBUILD async-io-1.34.0.ebuild 972 BLAKE2B 7593c4df2e65e55ba773516e31970645650a2306ccd53cd7e8c5f5acf977fca10e27eed5ffcd8ed01c31ccd6a90f64440f2baad56c86713d9e3159e242be3cae SHA512 aee8fe685a3b87fe904bf904523443d1ed05f0b05ec54e6dc78c8928050bb32c2737aa55fa48f03afe3b8556980bc157cce40671d2e5eeefc9f9f76238bf4d79
EBUILD async-io-1.34.1.ebuild 957 BLAKE2B 76926155496b2e944c0779572b132008137c9655cf8267fce2a1029299278bf5ffaa3c9a3223998f307afc18198db1bb8bc35fc83919a30d7717bd64b3f2428e SHA512 b50d9ac40bc0ac240c0dd2c2367e7bcca6aa591bc2a2fbec4f92e38fbb07fc7aaba32b4de8ea7861b0a7028d1682e3be27c6ae4ed30a2a71f9e37e2eddbfad03
-EBUILD async-io-1.34.3-r1.ebuild 977 BLAKE2B 79592448711d12a7ad0624e68caf3f3f1a86160f59010ae843a6d4f03c86739aa3e1290c4634cd778dd720361e0d69f45f6c8b0ced0be93334ef4434be069a54 SHA512 e07b68dd7be886399f18cca72a51765785727e6eda5bb42e5cdea8076d88209c1b3b7045c0509adc10f7e227970cee90b60dc5575f6c7ddd2752075e1536d122
+EBUILD async-io-1.34.3-r1.ebuild 1022 BLAKE2B 6b731f5afafad35bdbe10784c2db292ab158e437a4c9ad3405e8679edfa897cbab1ca24fff9ee711452c60970d3f82a3948ef0e7397ef9c655e2f32baa80d90d SHA512 1d49bf0be4b164622d1bf8c58b4c59fd798a3992df3b4bb4a3f16f21969673c04132872f1242bdd87f921de78a50520013a8df2a42614cfe848d9c971f52da8d
EBUILD async-io-1.34.3.ebuild 957 BLAKE2B 76926155496b2e944c0779572b132008137c9655cf8267fce2a1029299278bf5ffaa3c9a3223998f307afc18198db1bb8bc35fc83919a30d7717bd64b3f2428e SHA512 b50d9ac40bc0ac240c0dd2c2367e7bcca6aa591bc2a2fbec4f92e38fbb07fc7aaba32b4de8ea7861b0a7028d1682e3be27c6ae4ed30a2a71f9e37e2eddbfad03
MISC metadata.xml 344 BLAKE2B 7fb67688ba60d30637605ba7a2020cb328e18ffebd9fd6fed09114cc14596836b0dcc4d1590fd3755952baa52c258bdb9a935c47b1a4ef4f2d5e545e931d40fe SHA512 6ea960fe1feb969df78e66ae985b6ac95faa09a248d694aaa47876634f84a09a3807effc2b4289d35dbeaee3793c2c73276fd0f8b87375ab99e813085edd12af
diff --git a/dev-ruby/async-io/async-io-1.34.3-r1.ebuild b/dev-ruby/async-io/async-io-1.34.3-r1.ebuild
index 2264c7d78b5c..68ba0af0f1c5 100644
--- a/dev-ruby/async-io/async-io-1.34.3-r1.ebuild
+++ b/dev-ruby/async-io/async-io-1.34.3-r1.ebuild
@@ -28,6 +28,10 @@ ruby_add_bdepend "test? (
dev-ruby/rack-test
)"
+PATCHES=(
+ "${FILESDIR}"/${P}-tests.patch
+)
+
all_ruby_prepare() {
sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
diff --git a/dev-ruby/async-io/files/async-io-1.34.3-tests.patch b/dev-ruby/async-io/files/async-io-1.34.3-tests.patch
new file mode 100644
index 000000000000..620405396dd1
--- /dev/null
+++ b/dev-ruby/async-io/files/async-io-1.34.3-tests.patch
@@ -0,0 +1,19 @@
+https://github.com/socketry/async-io/commit/fe6f1972c74ec0c5107e127cdb299f41b798e3dd
+https://bugs.gentoo.org/904159
+
+From fe6f1972c74ec0c5107e127cdb299f41b798e3dd Mon Sep 17 00:00:00 2001
+From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
+Date: Sat, 18 Mar 2023 17:55:54 +1300
+Subject: [PATCH] Don't depend on status name.
+
+--- a/spec/async/io/notification_spec.rb
++++ b/spec/async/io/notification_spec.rb
+@@ -39,7 +39,7 @@
+ signalling_task.wait
+ waiting_task.wait
+
+- expect(waiting_task.status).to be :complete
++ expect(waiting_task).to be_complete
+
+ subject.close
+ end
diff --git a/dev-ruby/commonmarker/Manifest b/dev-ruby/commonmarker/Manifest
index 09660c31f638..149807c69b85 100644
--- a/dev-ruby/commonmarker/Manifest
+++ b/dev-ruby/commonmarker/Manifest
@@ -2,8 +2,10 @@ DIST commonmarker-0.23.5.tar.gz 165248 BLAKE2B 2d29a0ece01b5000bbb7192133e6abd0b
DIST commonmarker-0.23.6.tar.gz 165548 BLAKE2B b580390211986e60cd682efb8fe39cea82fb50f76299675a068e37749635383a6d1d6391a093a9f399664ebeeff2e2b456f85752157c632e338ab52e64e18659 SHA512 540bb1831c19ea0924372c9f4be506828e057d4df1a2eb351e44437b45cd9cedd7df9014b09e34108663a31677ef14a4128b5ac9f8a34137bd1842e07654dedc
DIST commonmarker-0.23.7.tar.gz 171255 BLAKE2B d6d5e90aeed955d4305bc2aef9a3db9e540a35690cf90e2ef1cd7ba1f829043e139cd3c8819858e56accda6de3088e9a38394676a6248bb1d9642d41282b61c9 SHA512 c15db5904c449a01d7e4a417d431a2f12722ca5524fad019d6bddb75dd59323174973d8d30920f4783163739570ddf81abb06246f3fed0635dea4ce4625a0679
DIST commonmarker-0.23.8.tar.gz 171412 BLAKE2B 95f5fa8314af31dfe97bb8bad9eb6c57dc2e02f1b710c7f50e4500e3cad978b0b44e7a1104386d0cf0742e2d896208ced2a8f205c30ffbf4e444b991586b5ab8 SHA512 3e73ef5505804cbeb8190472f3ca8dc7f199de0ca410df35ab5e9948e94ade59670130f829218f6f2d39c3a6f41a9cb149f9aefc6c8f72443441ec66e642cd1e
+DIST commonmarker-0.23.9.tar.gz 171834 BLAKE2B 140d712e12f59c507853718437617e076705f62adee133a95d18da1fb1f21ace208dd5c1a77dba6639b24e1c8288a2249f974145c694fbe3bae4e82f518f0428 SHA512 2ff0e798f925c4b547390457fcdc88d7321da6d37ce272216307eae6862fb6d985722b8e6335f9ab3a7d75717656451615fdd47a341d29f05f8508335dda971f
EBUILD commonmarker-0.23.5.ebuild 1157 BLAKE2B de1de03bd0529b0cc93391aeb1add65200ba98c2fbec468fd13d86c2758c8f8e0e3e6fc51381b12317d56980969b1a0d349917319f8cb98e2d2ee93a4d88ad50 SHA512 239dcb336b78f5ec1ffb4c9af908cb7b07fc8e1ac17d0b39500e78625a93e31717f619a89947035a59baa717661a43b524f8ce7553fb5df0380b4630ea12bad9
EBUILD commonmarker-0.23.6.ebuild 1157 BLAKE2B de1de03bd0529b0cc93391aeb1add65200ba98c2fbec468fd13d86c2758c8f8e0e3e6fc51381b12317d56980969b1a0d349917319f8cb98e2d2ee93a4d88ad50 SHA512 239dcb336b78f5ec1ffb4c9af908cb7b07fc8e1ac17d0b39500e78625a93e31717f619a89947035a59baa717661a43b524f8ce7553fb5df0380b4630ea12bad9
EBUILD commonmarker-0.23.7.ebuild 1157 BLAKE2B 2f5de5ded7e6b72f687595ad4a0cbda63832f592a9c8a6c82949442571a77ebe13cab399b5e80c53af1989b0ce9374140d568ccfd0e8ce0198b7b0bec3b4ad71 SHA512 256d6501847d8c80be32e1a75b91856bade8e72b22cad8cfbc8e5083fcdd7ed9fdd8425f3e24071f8c8ce0d9468d3d4256c84ea6fee8b361f9185b1b416e75cb
EBUILD commonmarker-0.23.8.ebuild 1164 BLAKE2B 11fe6ca4dd08c5b3c0218d2d6b7e6cb80807a9947456ceb6bd5c12a8e4ba64267ebf0866f85bd6e125253bfde405e04d497e2d863dac6503d69f84c77dda51b1 SHA512 88581405ab721dc7e81ec949393d44652824349e6a2b70e93e6d1598ced89bbc9c63a21bd827c2f505a7d4ad37116ab59a2a666419d26a0eae1c81b00d09e67f
+EBUILD commonmarker-0.23.9.ebuild 1164 BLAKE2B 11fe6ca4dd08c5b3c0218d2d6b7e6cb80807a9947456ceb6bd5c12a8e4ba64267ebf0866f85bd6e125253bfde405e04d497e2d863dac6503d69f84c77dda51b1 SHA512 88581405ab721dc7e81ec949393d44652824349e6a2b70e93e6d1598ced89bbc9c63a21bd827c2f505a7d4ad37116ab59a2a666419d26a0eae1c81b00d09e67f
MISC metadata.xml 340 BLAKE2B 3536acbd013ad07c27f5c6ccdada3ffffb5f259aedaeb4ee5a89ec1921f49939177a7162165c2b90336a87393d08f49cb62857cfa3ab551d12a37843863b56e0 SHA512 5f5eab450ffbdbee075545d8a97a2b3bcc6ed997aad9bf7e1b3c31e6368a7c5383704bdce32eea086b027b7c3e27accd3e2d3329977f357570e8eb767a043526
diff --git a/dev-ruby/commonmarker/commonmarker-0.23.9.ebuild b/dev-ruby/commonmarker/commonmarker-0.23.9.ebuild
new file mode 100644
index 000000000000..94e5500f5905
--- /dev/null
+++ b/dev-ruby/commonmarker/commonmarker-0.23.9.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/commonmarker/extconf.rb)
+RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/commonmarker"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="commonmarker.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A fast, safe, extensible parser for CommonMark, wrapping the libcmark library"
+HOMEPAGE="https://github.com/gjtorikian/commonmarker"
+SRC_URI="https://github.com/gjtorikian/commonmarker/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64"
+IUSE=""
+
+# app-text/cmark is bundled in a modified way and integrated with the gem code
+
+all_ruby_prepare() {
+ sed -i -e '/focus/ s:^:#:' test/test_helper.rb || die
+
+ # Avoid tests depending on unbundled cmark specification files
+ rm -f test/test_{spec,smartpunct}.rb || die
+
+}
+
+each_ruby_prepare() {
+ # Use current ruby version
+ sed -i -e '/make_bin/,/end/ s:ruby:'${RUBY}':' test/test_helper.rb || die
+}
+
+each_ruby_test() {
+ ${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each {|f| require f}' || die
+}
diff --git a/dev-ruby/dnsruby/Manifest b/dev-ruby/dnsruby/Manifest
index fb21e601bf7f..eadb760c2f03 100644
--- a/dev-ruby/dnsruby/Manifest
+++ b/dev-ruby/dnsruby/Manifest
@@ -1,3 +1,5 @@
DIST dnsruby-1.61.9.gem 261632 BLAKE2B f86682fbc50bc0b20f59b3a7bb825081824a3dfa5a6de36f3083b39fac9617ff770d3a53c17f015bcaff5dfe5a96ddafd78b1aaf72bcba9bf990a649cf3a0c63 SHA512 ba692db6ab5234c0669076cb5290d5e4613886956d3cea23c22837f99ee2a970e7f86c7c7fdc7542ac4873d324f52b83b0f5e14bb9c3d5107b068fdf419f6ba1
+DIST dnsruby-1.70.0.gem 261632 BLAKE2B 07adbe23ab2d1605c1562f4403f2dd864171b047df08037763565a3a459f2d3b3cb79343da2c25aadb498a7fc5a81a42af928d65a22c6b736fa7b64fab96721f SHA512 11caddd4ea5c9b8f85c730708d3cd1e1a130059975dfdecbf307862f7cbb85285d193f9ce010a81fbd8a7518ec720a107118018146d67105f6a4dbd41149a130
EBUILD dnsruby-1.61.9.ebuild 851 BLAKE2B 07493a1dae8e7175b9baec5ea8deea8dfc59bc16f0a5bdc95618541ab105c729e3227cf94e3e25bfbd89458bd88855cdfe450133c1f8ceba6315cae82553c583 SHA512 14eb014b92408ef90399cf0b779213a280b65081021a522f8c294a405edd8821ee8787cd54c192d1b7d664468bcd92949166e77f0219bfb10db9c80effc6cf33
+EBUILD dnsruby-1.70.0.ebuild 844 BLAKE2B 9ba02f747d718163dfaa77e916c01aa85649671500cf2db9ef7007293b95fc0ede79df2681d7ce9b6cf851782601df4acc4c6a09c817957ad2416e5f0081e595 SHA512 8727c08aa171e2ab211a2d36a71cdd1f404deddbbdf32712cd1b0684e1bd2604c0699f8120bd6e3323149af11158ddd7ac67f1a5341428b717d173dd5b90c46c
MISC metadata.xml 414 BLAKE2B c4ccb95f7844c4f0ec41dda18d5b80f8972d3f81fc571fea8feeb15ed8c0284358fa180248f2536ee0cb518bc6d48a992305eb9b1c032dcde79d25f13b6ecdc1 SHA512 e4fae933534b8a4988d008dbf8be50cd2675eb9142108c85b4c0fe4b0a06b5f553827773e08f58a09371a0cd44623c7c86c7c93fda34899614ff5b513cc33e54
diff --git a/dev-ruby/dnsruby/dnsruby-1.70.0.ebuild b/dev-ruby/dnsruby/dnsruby-1.70.0.ebuild
new file mode 100644
index 000000000000..ebf0ff488b25
--- /dev/null
+++ b/dev-ruby/dnsruby/dnsruby-1.70.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31"
+
+RUBY_FAKEGEM_TASK_TEST=""
+RUBY_FAKEGEM_DOCDIR="html"
+RUBY_FAKEGEM_EXTRADOC="DNSSEC EXAMPLES README.md"
+inherit ruby-fakegem
+
+DESCRIPTION="A pure Ruby DNS client library"
+HOMEPAGE="https://github.com/alexdalitz/dnsruby"
+
+KEYWORDS="~amd64 ~arm ~x86"
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE=""
+
+ruby_add_rdepend ">=dev-ruby/simpleidn-0.1:0"
+
+ruby_add_bdepend "test? ( >=dev-ruby/minitest-5.4:5 )"
+
+all_ruby_prepare() {
+ sed -i -e "/[Cc]overall/d" Rakefile || die
+ sed -i -e '/display/d' \
+ -e '/Display/,/^}/d' test/spec_helper.rb || die
+}
+
+each_ruby_test() {
+ # only run offline tests
+ #${RUBY} -I .:lib test/ts_dnsruby.rb || die "test failed"
+ ${RUBY} -I .:lib test/ts_offline.rb || die "test failed"
+}
diff --git a/dev-ruby/nokogiri/Manifest b/dev-ruby/nokogiri/Manifest
index 27802e2e8191..296720cb3440 100644
--- a/dev-ruby/nokogiri/Manifest
+++ b/dev-ruby/nokogiri/Manifest
@@ -1,5 +1,7 @@
DIST nokogiri-1.13.10-git.tgz 6236674 BLAKE2B 043a08ab969aac1f1fada730b8df11c295b28c9b9c41bd311cedc1d20064c61b2838489c67b8513c98736377defe33cd171b9ff3846f56af450caee4327e7727 SHA512 c9a4b14cb92c4920872048991c958036d5f09b8e231a6f6408e5d3c5df78b70e206cc12b8ed8aaae012e51f6f87adcbe46273cd1feca082ec17f42114f5a1172
DIST nokogiri-1.14.2-git.tgz 10446957 BLAKE2B 0c72c520642bfa3e69a38f5dba8783a4f749d6ab97cf7531432fcd1f5dfba0aeebd2bf49dfa07aed601093f8ad88bc3dfb57c1a901c7e140aa8265749f4ad724 SHA512 18f16e5609e251c6e08787616aa3f444dac1f5f9d9e3bf8f21ce3b95870ce133187d0df02d03ee854fc87a3da04f886600667cec6832c8e8cfe87c6114672916
+DIST nokogiri-1.14.3-git.tgz 10446988 BLAKE2B e93caad3b807e74b79204d3272c52d1a33ce2189b65de8d126b0b7476edc1b4b0c4fcd1142c38e40beeab56bcaa605ba7d30f9777542979d60e2e5dda3877eb7 SHA512 93ebc7118e364eaa97030a10cd6dc5b4312483a432f267d65b6a091b22dd355d0c1a490b336981f1b284059ba3420c73d31254a91531f295a60583db26a0d331
EBUILD nokogiri-1.13.10.ebuild 2672 BLAKE2B cbefa7feed0f6318e060996f30613866c8832b004a8ee7abfd811dcc98c5c2ee05d1a5337076d2a60c93c0171d3f70c53b085d4b31f38f3a50ca2f52dc0ded5f SHA512 2bf4ee868314eccdc43a78f3506991e7cf876604ecc507607204d80d77328e40effc845c56cb943f5a156cea1a399dd282dc9a454e687e007aed63fc544ead01
EBUILD nokogiri-1.14.2-r1.ebuild 2692 BLAKE2B 48420f2e3bffb85455be580c67479ef20690d0733e810a9bbd1b00a2ec971e6ee91a0f01ddf13de071d6f23de6f3d20ace730a88cb6f7eaa731757428cd48fc2 SHA512 b9c8824dbc1ed1cdc53c39fe4fb9ebb3e4e140f125c1c4800cee8656c92075614af05cd7397d7d072bef23759df61561996f9d80fff416e9cdceab6b1b4e4940
+EBUILD nokogiri-1.14.3.ebuild 2699 BLAKE2B d6f54b23fb9aac1feb2e2ce5f4d3e12b97464bfb90ef5cf4686db021cb73dd4107cc6b32077fafbdbec0edcb07eaf03c04688260bbf5b70b57ff6db32e7b92b3 SHA512 d934b4b3928fb889062a61e443d2feea92d839f1b2494757664b8e32778a382bc87b1a66d2ce197907c15953fd32e9671834cc6189734b7d73c390946c2f3f26
MISC metadata.xml 349 BLAKE2B 824094b81182da6ed2c43f55f8697dbf614662e1e032ed62bcf8ec4ef8fb6e6a1bf346f90863a8cb7d6cfaf2696f0be70fd3027d6d01e583bba0c1334252447d SHA512 9ab17ab504279d8d1ea584f7a6f411fe778b89564016dc0d596ec7f714cf9ad80ed5e30c179ec6aa190bafe8a8b72bfdc5a964d213a8024783da246bbb817629
diff --git a/dev-ruby/nokogiri/nokogiri-1.14.3.ebuild b/dev-ruby/nokogiri/nokogiri-1.14.3.ebuild
new file mode 100644
index 000000000000..b190e6e12ed9
--- /dev/null
+++ b/dev-ruby/nokogiri/nokogiri-1.14.3.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md ROADMAP.md SECURITY.md"
+
+RUBY_FAKEGEM_GEMSPEC="nokogiri.gemspec"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/nokogiri/extconf.rb)
+
+inherit ruby-fakegem multilib
+
+DESCRIPTION="Nokogiri is an HTML, XML, SAX, and Reader parser"
+HOMEPAGE="https://nokogiri.org/"
+LICENSE="MIT"
+SRC_URI="https://github.com/sparklemotion/nokogiri/archive/v${PV}.tar.gz -> ${P}-git.tgz"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+SLOT="0"
+IUSE=""
+
+RDEPEND="${RDEPEND}
+ >=dev-libs/libxml2-2.10.4:=
+ >=dev-libs/libxslt-1.1.37
+ sys-libs/zlib
+ virtual/libiconv"
+DEPEND="${DEPEND}
+ >=dev-libs/libxml2-2.10.4
+ >=dev-libs/libxslt-1.1.37
+ >=sys-libs/zlib-1.2.13
+ virtual/libiconv"
+
+ruby_add_rdepend ">=dev-ruby/racc-1.4:0"
+
+ruby_add_bdepend "
+ dev-ruby/mini_portile2:2.8
+ >=dev-ruby/rexical-1.0.7
+ dev-ruby/rdoc
+ test? ( dev-ruby/minitest dev-ruby/rubyzip )"
+
+all_ruby_prepare() {
+ sed -i \
+ -e '/tasks\/cross_compile/s:^:#:' \
+ -e '/:test.*prerequisites/s:^:#:' \
+ -e '/license/ s:^:#:' \
+ Rakefile || die
+ # Remove the cross compilation options since they interfere with
+ # native building.
+ sed -i -e 's/cross_compile = true/cross_compile = false/' Rakefile || die
+ sed -i -e '/cross_config_options/d' Rakefile || die
+
+ sed -e '/simplecov/,/^end/ s:^:#:' \
+ -e '/reporters/I s:^:#:' \
+ -i test/helper.rb || die
+
+ # There is no need for mini_portile2 to be a runtime dependency on Gentoo
+ sed -i -e '/mini_portile2/ s:^:#:' ${RUBY_FAKEGEM_GEMSPEC} || die
+}
+
+each_ruby_configure() {
+ NOKOGIRI_USE_SYSTEM_LIBRARIES=true \
+ ${RUBY} -Cext/${PN} extconf.rb \
+ --with-zlib-include="${EPREFIX}"/usr/include \
+ --with-zlib-lib="${EPREFIX}"/$(get_libdir) \
+ --with-iconv-include="${EPREFIX}"/usr/include \
+ --with-iconv-lib="${EPREFIX}"/$(get_libdir) \
+ --with-xml2-include="${EPREFIX}"/usr/include/libxml2 \
+ --with-xml2-lib="${EPREFIX}"/usr/$(get_libdir) \
+ --with-xslt-dir="${EPREFIX}"/usr \
+ --with-iconvlib=iconv \
+ || die "extconf.rb failed"
+}
+
+each_ruby_compile() {
+ if ! [[ -f lib/nokogiri/css/tokenizer.rb ]]; then
+ ${RUBY} -S rake lib/nokogiri/css/tokenizer.rb || die "rexical failed"
+ fi
+
+ if ! [[ -f lib/nokogiri/css/parser.rb ]]; then
+ ${RUBY} -S rake lib/nokogiri/css/parser.rb || die "racc failed"
+ fi
+
+ emake -Cext/${PN} \
+ V=1 \
+ CFLAGS="${CFLAGS} -fPIC" \
+ archflag="${LDFLAGS}" || die "make extension failed"
+ cp -l ext/${PN}/${PN}$(get_modname) lib/${PN}/ || die
+}
+
+each_ruby_test() {
+ ${RUBY} -Ilib:.:test -e 'Dir["test/**/test_*.rb"].each {|f| require f}' || die
+}
diff --git a/dev-ruby/timers/Manifest b/dev-ruby/timers/Manifest
index bd806fa407d1..a0b28574365b 100644
--- a/dev-ruby/timers/Manifest
+++ b/dev-ruby/timers/Manifest
@@ -1,5 +1,7 @@
+AUX timers-4.3.5-timers-slow.patch 6315 BLAKE2B 0d38c8f1954d4eddca2333586667c27f9a2e9e775ebedd862b359c973f4ec8b811cc2e6cc56a8b8e826d207e969d71be8229b8fd520d23270bd5226c4d595f5c SHA512 2c6010448f0c2025297691bc3ad71e58bb56bd9914d1847bb2da9b53eb768b9fc52005534ec867cd839bb076b89e72fd2a87a935ea0aa1460d0adbd5096a61c5
DIST timers-4.3.3.tar.gz 12928 BLAKE2B af64b44116565a8cb6b68349de6a46e8b67d22508e16e204af104ed7a59cc1db1dae0c36917ccde1932c33e53d9d71fc57cb317570cc24aaee82531ce178f37c SHA512 4a715e4a786f98ec429a250de53cfa67bed6b5a99b6298c21251e6dcf1315f1185d8c45bea01025832046381ebac462cd35415f7573d58c55c30b47c2567d4bf
DIST timers-4.3.5.tar.gz 15651 BLAKE2B 2dc34bb23a4971c673aff5120502714035fe31aed34854b5f7beb744ca46ad704b88d1403ad594ea49f71bb709db7942ed521d237e2477fe2e9d41cc3cd2b538 SHA512 fa5a25eda15628f5a17cd2e7acc4eb2819a766de7ffdba03d425a93cb3229f0f7b8083e9990b5308e65c2d8aab396e33dd4d152252888eff1cc0039cac6a5e46
EBUILD timers-4.3.3.ebuild 1015 BLAKE2B 729d0a31831754cf8fe5e2adbb14c25d73fa1ad0c815a75e2dbf027b32e66ca403e474a3d48a17a525fd585b6123c1b1b109e917540f945b60e33ee4f3eb8ea2 SHA512 f75c7fa3b3c5ad7838ec345866dac7f068b7e05a709c5d523c11aecaea054ddcff2aebd58d712116b133230be12997e97bc4889a8a35fa9fec70150fe7bd763d
+EBUILD timers-4.3.5-r1.ebuild 949 BLAKE2B a446fc3cf1e67cdc5fd8ef1277a7449cd087e097cc3535022423eb542e6969e0e7057a43c702e3320c93b1d87f916e8312c5c6034c5de967692c5fff48e32eaa SHA512 2c8a2b813fce76cb34ac3b458929c66ebfb09e02b915d9594ff1b01902cc49243c1c8e6e0bd0b67927bd94699e0ae1720e6affa0eedc7698b4c7bcbd6da76bc3
EBUILD timers-4.3.5.ebuild 858 BLAKE2B de720741ac65cbfbcbad2fc49a690079473bd11062e2b8a1b2d920d0436c74b0f50d03eff0db25842463d4a4eee6d227e48f8e9617885018d74d1ca08100e5f1 SHA512 48dbdbb819aca49e97fb086bc87060cfa59f73d087105890116447fc8bf0097dc85a914a1a28cec36e1b5a6bb210d00bb0a3a5680a19df3fe45124d49b3d3374
MISC metadata.xml 392 BLAKE2B 304dd3c8c4a7b5a75301a3aa2b3d2bcd386f4c2b13921b3170e537563a41c4405670731b4d5825f1195542c7ef9d07253357c6d3366eab04136b0aca31c92777 SHA512 08118b5d6da0eb1be39cff419520f2d700eab618c180985e155428bae3d33c58a5c3b9ddc9f125fbb39917fb90ac51a5b2383f81b209a864557a2e0187239944
diff --git a/dev-ruby/timers/files/timers-4.3.5-timers-slow.patch b/dev-ruby/timers/files/timers-4.3.5-timers-slow.patch
new file mode 100644
index 000000000000..da786b724a6d
--- /dev/null
+++ b/dev-ruby/timers/files/timers-4.3.5-timers-slow.patch
@@ -0,0 +1,259 @@
+https://github.com/socketry/timers/issues/82
+https://github.com/socketry/timers/commit/039bbd2750d5e50721789ef5d3404b18c36517bc
+
+From 039bbd2750d5e50721789ef5d3404b18c36517bc Mon Sep 17 00:00:00 2001
+From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
+Date: Wed, 12 Apr 2023 17:25:59 +1200
+Subject: [PATCH] Modernize gem (#83)
+
+* Improve robustness of `Timer#inspect`.
+
+* 100% test coverage.
+--- a/fixtures/timer_quantum.rb
++++ b/fixtures/timer_quantum.rb
+@@ -1,3 +1,5 @@
++# frozen_string_literal: true
++
+ # Released under the MIT License.
+ # Copyright, 2022, by Samuel Williams.
+
+--- a/lib/timers/group.rb
++++ b/lib/timers/group.rb
+@@ -92,8 +92,9 @@ def wait
+ # - 0: timers ready to fire
+ # - +ve: timers waiting to fire
+ def wait_interval(offset = current_offset)
+- handle = @events.first
+- handle.time - Float(offset) if handle
++ if handle = @events.first
++ handle.time - Float(offset)
++ end
+ end
+
+ # Fire all timers that are ready.
+--- a/lib/timers/priority_heap.rb
++++ b/lib/timers/priority_heap.rb
+@@ -84,9 +84,10 @@ def valid?
+
+ private
+
+- def swap(i, j)
+- @contents[i], @contents[j] = @contents[j], @contents[i]
+- end
++ # Left here for reference, but unused.
++ # def swap(i, j)
++ # @contents[i], @contents[j] = @contents[j], @contents[i]
++ # end
+
+ def bubble_up(index)
+ parent_index = (index - 1) / 2 # watch out, integer division!
+--- a/lib/timers/timer.rb
++++ b/lib/timers/timer.rb
+@@ -23,12 +23,11 @@ def initialize(group, interval, recurring = false, offset = nil, &block)
+ @interval = interval
+ @recurring = recurring
+ @block = block
+- @offset = offset
+-
++ @offset = nil
+ @handle = nil
+
+ # If a start offset was supplied, use that, otherwise use the current timers offset.
+- reset(@offset || @group.current_offset)
++ reset(offset || @group.current_offset)
+ end
+
+ def paused?
+@@ -73,7 +72,7 @@ def cancel
+ @handle = nil
+
+ # This timer is no longer valid:
+- @group.timers.delete self if @group
++ @group.timers.delete(self) if @group
+ end
+
+ # Reset this timer. Do not call while paused.
+@@ -117,18 +116,18 @@ def fires_in
+
+ # Inspect a timer
+ def inspect
+- buffer = "#{to_s[0..-2]} ".dup
++ buffer = to_s[0..-2]
+
+ if @offset
+- if fires_in >= 0
+- buffer << "fires in #{fires_in} seconds"
++ delta_offset = @offset - @group.current_offset
++
++ if delta_offset > 0
++ buffer << " fires in #{delta_offset} seconds"
+ else
+- buffer << "fired #{fires_in.abs} seconds ago"
++ buffer << " fired #{delta_offset.abs} seconds ago"
+ end
+
+ buffer << ", recurs every #{interval}" if recurring
+- else
+- buffer << "dead"
+ end
+
+ buffer << ">"
+--- a/lib/timers/wait.rb
++++ b/lib/timers/wait.rb
+@@ -17,6 +17,7 @@ def self.for(duration, &block)
+
+ timeout.while_time_remaining(&block)
+ else
++ # If there is no "duration" to wait for, we wait forever.
+ loop do
+ yield(nil)
+ end
+--- a/license.md
++++ b/license.md
+@@ -28,6 +28,7 @@ Copyright, 2017-2020, by Olle Jonsson.
+ Copyright, 2020, by Tim Smith.
+ Copyright, 2021, by Wander Hillen.
+ Copyright, 2022, by Yoshiki Takagi.
++Copyright, 2023, by Peter Goldstein.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+--- a/test/timers/group.rb
++++ b/test/timers/group.rb
+@@ -36,18 +36,31 @@
+ expect(called).to be == true
+ expect(fired).to be == true
+ end
++
++ it "repeatedly calls the wait block if it sleeps less than the interval" do
++ called = 0
++ fired = false
++
++ group.after(0.1) { fired = true }
++
++ group.wait do |interval|
++ called += 1
++ sleep(0.01)
++ end
++
++ expect(called).to be > 1
++ expect(fired).to be == true
++ end
+ end
+
+ it "sleeps until the next timer" do
+ interval = 0.1
+- started_at = Time.now
+
+ fired = false
+ group.after(interval) {fired = true}
+ group.wait
+
+ expect(fired).to be == true
+- expect(Time.now - started_at).to be_within(TIMER_QUANTUM).of(interval)
+ end
+
+ it "fires instantly when next timer is in the past" do
+@@ -88,6 +101,26 @@
+ end.to raise_exception(TypeError)
+ end
+
++ with "#now_and_after" do
++ it "fires the timer immediately" do
++ result = []
++
++ group.now_and_after(TIMER_QUANTUM * 2) { result << :foo }
++
++ expect(result).to be == [:foo]
++ end
++
++ it "fires the timer at the correct time" do
++ result = []
++
++ group.now_and_after(TIMER_QUANTUM * 2) { result << :foo }
++
++ group.wait
++
++ expect(result).to be == [:foo, :foo]
++ end
++ end
++
+ with "recurring timers" do
+ it "continues to fire the timers at each interval" do
+ result = []
+--- a/test/timers/group/cancel.rb
++++ b/test/timers/group/cancel.rb
+@@ -10,6 +10,17 @@
+ describe Timers::Group do
+ let(:group) {subject.new}
+
++ it "can cancel a timer" do
++ fired = false
++
++ timer = group.after(0.1) { fired = true }
++ timer.cancel
++
++ group.wait
++
++ expect(fired).to be == false
++ end
++
+ it "should be able to cancel twice" do
+ fired = false
+
+@@ -51,4 +62,18 @@
+ expect(group.timers).to be(:empty?)
+ expect(x).to be == 0
+ end
++
++ with "#cancel" do
++ it "should cancel all timers" do
++ timers = 3.times.map do
++ group.every(0.1) {}
++ end
++
++ expect(group.timers).not.to be(:empty?)
++
++ group.cancel
++
++ expect(group.timers).to be(:empty?)
++ end
++ end
+ end
+--- a/test/timers/wait.rb
++++ b/test/timers/wait.rb
+@@ -14,9 +14,14 @@
+ it "repeats until timeout expired" do
+ timeout = Timers::Wait.new(interval*repeats)
+ count = 0
++ previous_remaining = nil
+
+ timeout.while_time_remaining do |remaining|
+- expect(remaining).to be_within(TIMER_QUANTUM).of(timeout.duration - (count * interval))
++ if previous_remaining
++ expect(remaining).to be_within(TIMER_QUANTUM).of(previous_remaining - interval)
++ end
++
++ previous_remaining = remaining
+
+ count += 1
+ sleep(interval)
+@@ -34,4 +39,18 @@
+
+ expect(result).to be == :done
+ end
++
++ with "#for" do
++ with "no duration" do
++ it "waits forever" do
++ count = 0
++ Timers::Wait.for(nil) do
++ count += 1
++ break if count > 10
++ end
++
++ expect(count).to be > 10
++ end
++ end
++ end
+ end
diff --git a/dev-ruby/timers/timers-4.3.5-r1.ebuild b/dev-ruby/timers/timers-4.3.5-r1.ebuild
new file mode 100644
index 000000000000..35732c62e28d
--- /dev/null
+++ b/dev-ruby/timers/timers-4.3.5-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby27 ruby30 ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+
+RUBY_FAKEGEM_GEMSPEC="timers.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Pure Ruby one-shot and periodic timers"
+HOMEPAGE="https://github.com/socketry/timers"
+SRC_URI="https://github.com/socketry/timers/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="4"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+
+PATCHES=(
+ # https://github.com/socketry/timers/issues/82
+ "${FILESDIR}"/${P}-timers-slow.patch
+)
+
+all_ruby_prepare() {
+ sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ # Avoid performance-based tests since we cannot guarantee specific performance levels.
+ rm -f test/timers/performance.rb || die
+}