summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-07-27 03:04:55 -0500
committerroot <root@alpha.trunkmasters.com>2026-07-27 03:04:55 -0500
commitcae7be1ab2bd23fee3929a8e940d968ee86a78e6 (patch)
tree97cc406771ec329a0480aab0f7fad2319be66e5c
parent704373259ee68c274d8ce04949a32d64de4b6014 (diff)
downloadbaldeagleos-repo-cae7be1ab2bd23fee3929a8e940d968ee86a78e6.tar.gz
baldeagleos-repo-cae7be1ab2bd23fee3929a8e940d968ee86a78e6.tar.xz
baldeagleos-repo-cae7be1ab2bd23fee3929a8e940d968ee86a78e6.zip
Adding metadata
-rw-r--r--app-admin/puppet-lint/Manifest2
-rw-r--r--app-admin/puppet-lint/puppet-lint-5.1.1.ebuild (renamed from app-admin/puppet-lint/puppet-lint-4.2.4.ebuild)14
-rw-r--r--app-admin/puppet/puppet-8.10.0-r1.ebuild2
-rw-r--r--app-benchmarks/geekbench/Manifest3
-rw-r--r--app-benchmarks/geekbench/geekbench-5.5.1.ebuild9
-rw-r--r--app-benchmarks/geekbench/geekbench-6.7.1.ebuild9
-rw-r--r--app-benchmarks/geekbench/geekbench-7.0.0.ebuild15
-rw-r--r--app-misc/nnn/files/nnn-5.0_fix_strcasecmp.patch12
-rw-r--r--app-shells/dash/files/0001-builtin-Fix-octal-escapes-in-dollar-single-quotes.patch88
-rw-r--r--app-shells/dash/files/0002-builtin-Fix-unaligned-access-in-conv_escape.patch35
-rw-r--r--app-shells/dash/files/0003-input-Fix-overeager-NUL-deletion-in-SMALL-mode.patch147
-rw-r--r--dev-java/log4j-12-api/log4j-12-api-2.26.0.ebuild2
-rw-r--r--dev-java/log4j-core/log4j-core-2.26.0.ebuild2
-rw-r--r--dev-java/openjdk/Manifest10
-rw-r--r--dev-java/openjdk/openjdk-11.0.32_p9.ebuild321
-rw-r--r--dev-java/openjdk/openjdk-17.0.20_p8.ebuild331
-rw-r--r--dev-java/openjdk/openjdk-21.0.12_p8.ebuild330
-rw-r--r--dev-java/openjdk/openjdk-25.0.4_p7.ebuild (renamed from dev-java/openjdk/openjdk-25.0.4_beta4.ebuild)3
-rw-r--r--dev-java/openjdk/openjdk-27_beta31.ebuild (renamed from dev-java/openjdk/openjdk-27_beta25.ebuild)3
-rw-r--r--dev-java/openjdk/openjdk-28_alpha7.ebuild (renamed from dev-java/openjdk/openjdk-28_alpha1.ebuild)3
-rw-r--r--dev-java/openjdk/openjdk-8.502_p07.ebuild295
-rw-r--r--dev-lang/hare/files/hare-0.25.2-os_exec-fix-clearenv.patch94
-rw-r--r--dev-libs/kirigami-app-components/kirigami-app-components-1.0.1-r1.ebuild2
-rw-r--r--dev-python/backrefs/Manifest2
-rw-r--r--dev-python/backrefs/backrefs-8.0.ebuild30
-rw-r--r--dev-python/fastjsonschema/Manifest1
-rw-r--r--dev-python/fastjsonschema/fastjsonschema-2.22.0.ebuild27
-rw-r--r--dev-python/gitpython/Manifest2
-rw-r--r--dev-python/gitpython/gitpython-3.1.57.ebuild74
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-9.0.35.ebuild31
-rw-r--r--dev-python/prompt-toolkit/Manifest1
-rw-r--r--dev-python/prompt-toolkit/prompt-toolkit-3.0.53.ebuild32
-rw-r--r--dev-python/pygments/Manifest1
-rw-r--r--dev-python/pygments/pygments-2.20.0.ebuild47
-rw-r--r--dev-python/pyproject-fmt/Manifest14
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild113
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.25.1.ebuild113
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.25.2.ebuild113
-rw-r--r--dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild113
-rw-r--r--dev-python/typeguard/Manifest2
-rw-r--r--dev-python/typeguard/typeguard-4.6.0.ebuild41
-rw-r--r--dev-python/urwid/Manifest2
-rw-r--r--dev-python/urwid/urwid-4.0.8.ebuild49
-rw-r--r--dev-ruby/action_text-trix/action_text-trix-2.1.16-r1.ebuild25
-rw-r--r--dev-ruby/action_text-trix/action_text-trix-2.1.16.ebuild2
-rw-r--r--dev-ruby/actioncable/actioncable-7.2.3.ebuild5
-rw-r--r--dev-ruby/actioncable/actioncable-8.0.4-r1.ebuild61
-rw-r--r--dev-ruby/actioncable/actioncable-8.0.4.ebuild6
-rw-r--r--dev-ruby/actioncable/actioncable-8.1.2-r1.ebuild62
-rw-r--r--dev-ruby/actionmailbox/actionmailbox-7.2.3.ebuild3
-rw-r--r--dev-ruby/actionmailbox/actionmailbox-8.0.4-r1.ebuild64
-rw-r--r--dev-ruby/actionmailbox/actionmailbox-8.0.4.ebuild3
-rw-r--r--dev-ruby/actionmailbox/actionmailbox-8.1.2-r1.ebuild62
-rw-r--r--dev-ruby/actionmailer/actionmailer-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/actionmailer/actionmailer-7.1.6.ebuild4
-rw-r--r--dev-ruby/actionmailer/actionmailer-7.2.3.ebuild5
-rw-r--r--dev-ruby/actionmailer/actionmailer-8.0.4-r1.ebuild51
-rw-r--r--dev-ruby/actionmailer/actionmailer-8.0.4.ebuild4
-rw-r--r--dev-ruby/actionmailer/actionmailer-8.1.2-r1.ebuild54
-rw-r--r--dev-ruby/actionpack/actionpack-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/actionpack/actionpack-7.1.6.ebuild4
-rw-r--r--dev-ruby/actionpack/actionpack-7.2.3.ebuild4
-rw-r--r--dev-ruby/actionpack/actionpack-8.0.4-r1.ebuild82
-rw-r--r--dev-ruby/actionpack/actionpack-8.0.4.ebuild4
-rw-r--r--dev-ruby/actionpack/actionpack-8.1.2-r1.ebuild76
-rw-r--r--dev-ruby/actiontext/actiontext-7.2.3.ebuild3
-rw-r--r--dev-ruby/actiontext/actiontext-8.0.4-r1.ebuild71
-rw-r--r--dev-ruby/actiontext/actiontext-8.0.4.ebuild3
-rw-r--r--dev-ruby/actiontext/actiontext-8.1.2-r1.ebuild70
-rw-r--r--dev-ruby/actionview/actionview-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/actionview/actionview-7.1.6.ebuild4
-rw-r--r--dev-ruby/actionview/actionview-7.2.3.ebuild4
-rw-r--r--dev-ruby/actionview/actionview-8.0.4-r1.ebuild77
-rw-r--r--dev-ruby/actionview/actionview-8.0.4.ebuild4
-rw-r--r--dev-ruby/actionview/actionview-8.1.2-r1.ebuild63
-rw-r--r--dev-ruby/activejob/activejob-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/activejob/activejob-7.1.6.ebuild4
-rw-r--r--dev-ruby/activejob/activejob-8.0.4-r1.ebuild49
-rw-r--r--dev-ruby/activejob/activejob-8.0.4.ebuild2
-rw-r--r--dev-ruby/activejob/activejob-8.1.2-r1.ebuild49
-rw-r--r--dev-ruby/activemodel/activemodel-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/activemodel/activemodel-7.1.6.ebuild4
-rw-r--r--dev-ruby/activemodel/activemodel-7.2.3.ebuild4
-rw-r--r--dev-ruby/activemodel/activemodel-8.0.4-r1.ebuild46
-rw-r--r--dev-ruby/activemodel/activemodel-8.0.4.ebuild5
-rw-r--r--dev-ruby/activemodel/activemodel-8.1.2-r1.ebuild46
-rw-r--r--dev-ruby/activerecord/activerecord-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/activerecord/activerecord-7.1.6.ebuild4
-rw-r--r--dev-ruby/activerecord/activerecord-7.2.3.ebuild4
-rw-r--r--dev-ruby/activerecord/activerecord-8.0.4-r1.ebuild99
-rw-r--r--dev-ruby/activerecord/activerecord-8.0.4.ebuild4
-rw-r--r--dev-ruby/activerecord/activerecord-8.1.2-r1.ebuild99
-rw-r--r--dev-ruby/activestorage/activestorage-7.2.3.ebuild7
-rw-r--r--dev-ruby/activestorage/activestorage-8.0.4-r1.ebuild87
-rw-r--r--dev-ruby/activestorage/activestorage-8.0.4.ebuild7
-rw-r--r--dev-ruby/activestorage/activestorage-8.1.2-r1.ebuild88
-rw-r--r--dev-ruby/activestorage/files/activestorage-7.2.3-ffmpeg-8.patch20
-rw-r--r--dev-ruby/activesupport/activesupport-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/activesupport/activesupport-7.1.6.ebuild9
-rw-r--r--dev-ruby/activesupport/activesupport-7.2.3.ebuild9
-rw-r--r--dev-ruby/activesupport/activesupport-8.0.4.ebuild11
-rw-r--r--dev-ruby/activesupport/activesupport-8.1.1.ebuild4
-rw-r--r--dev-ruby/activesupport/activesupport-8.1.2.ebuild4
-rw-r--r--dev-ruby/addressable/addressable-2.8.8.ebuild4
-rw-r--r--dev-ruby/appraisal/appraisal-2.5.0.ebuild4
-rw-r--r--dev-ruby/async/async-2.35.0.ebuild4
-rw-r--r--dev-ruby/axiom-types/axiom-types-0.1.1-r1.ebuild4
-rw-r--r--dev-ruby/bogus/bogus-0.1.7-r1.ebuild (renamed from dev-ruby/bogus/bogus-0.1.7.ebuild)8
-rw-r--r--dev-ruby/bogus/files/bogus-0.1.7-erb6.patch15
-rw-r--r--dev-ruby/capybara/capybara-3.40.0-r1.ebuild21
-rw-r--r--dev-ruby/connection_pool/Manifest1
-rw-r--r--dev-ruby/connection_pool/connection_pool-2.5.0.ebuild29
-rw-r--r--dev-ruby/connection_pool/connection_pool-2.5.5.ebuild20
-rw-r--r--dev-ruby/connection_pool/files/connection_pool-2.5.5-ruby40.patch15
-rw-r--r--dev-ruby/console/console-1.34.2.ebuild4
-rw-r--r--dev-ruby/cri/cri-2.15.12.ebuild8
-rw-r--r--dev-ruby/css_parser/css_parser-1.21.1.ebuild4
-rw-r--r--dev-ruby/dalli/Manifest2
-rw-r--r--dev-ruby/dalli/dalli-4.3.3.ebuild55
-rw-r--r--dev-ruby/dalli/dalli-5.0.5.ebuild55
-rw-r--r--dev-ruby/diff-lcs/Manifest1
-rw-r--r--dev-ruby/diff-lcs/diff-lcs-2.0.0.ebuild33
-rw-r--r--dev-ruby/diva/diva-2.0.1.ebuild4
-rw-r--r--dev-ruby/facter/facter-4.10.0-r1.ebuild3
-rw-r--r--dev-ruby/facter/files/facter-4.10.0-ruby34.patch45
-rw-r--r--dev-ruby/faker/faker-3.6.0.ebuild2
-rw-r--r--dev-ruby/gist/gist-6.0.0-r1.ebuild4
-rw-r--r--dev-ruby/git/git-4.3.0.ebuild2
-rw-r--r--dev-ruby/globalid/Manifest1
-rw-r--r--dev-ruby/globalid/globalid-1.4.0.ebuild (renamed from dev-ruby/globalid/globalid-1.2.1.ebuild)19
-rw-r--r--dev-ruby/hashery/hashery-2.1.2-r1.ebuild4
-rw-r--r--dev-ruby/hashie/hashie-5.1.0.ebuild4
-rw-r--r--dev-ruby/html-pipeline/html-pipeline-2.14.3.ebuild4
-rw-r--r--dev-ruby/httparty/Manifest2
-rw-r--r--dev-ruby/httparty/httparty-0.23.1.ebuild65
-rw-r--r--dev-ruby/httparty/httparty-0.24.0.ebuild65
-rw-r--r--dev-ruby/httparty/httparty-0.24.2.ebuild2
-rw-r--r--dev-ruby/i18n/i18n-1.14.8.ebuild10
-rw-r--r--dev-ruby/image_processing/Manifest1
-rw-r--r--dev-ruby/image_processing/image_processing-1.13.0.ebuild46
-rw-r--r--dev-ruby/image_processing/image_processing-1.14.0-r1.ebuild2
-rw-r--r--dev-ruby/image_processing/image_processing-1.14.0.ebuild50
-rw-r--r--dev-ruby/importmap-rails/importmap-rails-2.2.3-r1.ebuild28
-rw-r--r--dev-ruby/io-endpoint/io-endpoint-0.17.1-r1.ebuild39
-rw-r--r--dev-ruby/launchy/launchy-3.1.1.ebuild17
-rw-r--r--dev-ruby/lemon/Manifest1
-rw-r--r--dev-ruby/lemon/lemon-0.9.1-r1.ebuild30
-rw-r--r--dev-ruby/lemon/lemon-0.9.3.ebuild2
-rw-r--r--dev-ruby/localhost/localhost-1.7.0-r1.ebuild44
-rw-r--r--dev-ruby/loofah/loofah-2.25.0.ebuild17
-rw-r--r--dev-ruby/maildir/maildir-2.2.3-r1.ebuild4
-rw-r--r--dev-ruby/metrics/metrics-0.15.0.ebuild2
-rw-r--r--dev-ruby/mini_magick/Manifest2
-rw-r--r--dev-ruby/mini_magick/files/mini_magick-4.13.2-fix-imagemagick-7.patch20
-rw-r--r--dev-ruby/mini_magick/mini_magick-4.13.2.ebuild8
-rw-r--r--dev-ruby/mini_magick/mini_magick-5.2.0.ebuild55
-rw-r--r--dev-ruby/mini_magick/mini_magick-5.3.0.ebuild55
-rw-r--r--dev-ruby/mini_magick/mini_magick-5.3.1.ebuild4
-rw-r--r--dev-ruby/minitest-around/minitest-around-0.6.0.ebuild4
-rw-r--r--dev-ruby/mixlib-shellout/Manifest1
-rw-r--r--dev-ruby/mixlib-shellout/mixlib-shellout-3.4.13.ebuild37
-rw-r--r--dev-ruby/mocha/files/mocha-2.8.2-ruby35.patch41
-rw-r--r--dev-ruby/mocha/mocha-2.8.2-r1.ebuild40
-rw-r--r--dev-ruby/mqtt/Manifest1
-rw-r--r--dev-ruby/mqtt/mqtt-0.7.0.ebuild29
-rw-r--r--dev-ruby/multi_xml/Manifest2
-rw-r--r--dev-ruby/multi_xml/multi_xml-0.7.1.ebuild47
-rw-r--r--dev-ruby/multi_xml/multi_xml-0.8.0.ebuild60
-rw-r--r--dev-ruby/multi_xml/multi_xml-0.8.1.ebuild4
-rw-r--r--dev-ruby/mysql2/mysql2-0.5.7.ebuild12
-rw-r--r--dev-ruby/net-http-persistent/net-http-persistent-4.0.8.ebuild4
-rw-r--r--dev-ruby/niceogiri/niceogiri-1.1.2-r1.ebuild4
-rw-r--r--dev-ruby/org-ruby/org-ruby-0.9.12_p20200519.ebuild4
-rw-r--r--dev-ruby/pdf-reader/pdf-reader-2.15.1.ebuild4
-rw-r--r--dev-ruby/phlex/phlex-2.2.2.ebuild2
-rw-r--r--dev-ruby/phlex/phlex-2.3.2.ebuild2
-rw-r--r--dev-ruby/propshaft/Manifest4
-rw-r--r--dev-ruby/propshaft/propshaft-0.9.1.ebuild39
-rw-r--r--dev-ruby/propshaft/propshaft-1.2.0.ebuild38
-rw-r--r--dev-ruby/propshaft/propshaft-1.2.1.ebuild38
-rw-r--r--dev-ruby/propshaft/propshaft-1.3.1-r1.ebuild (renamed from dev-ruby/propshaft/propshaft-1.1.0.ebuild)22
-rw-r--r--dev-ruby/propshaft/propshaft-1.3.1.ebuild17
-rw-r--r--dev-ruby/pry/pry-0.16.0.ebuild4
-rw-r--r--dev-ruby/public_suffix/Manifest3
-rw-r--r--dev-ruby/public_suffix/public_suffix-7.0.0.ebuild35
-rw-r--r--dev-ruby/public_suffix/public_suffix-7.0.5.ebuild (renamed from dev-ruby/public_suffix/public_suffix-7.0.1.ebuild)10
-rw-r--r--dev-ruby/qed/qed-2.9.2-r1.ebuild4
-rw-r--r--dev-ruby/rails-dom-testing/rails-dom-testing-2.3.0.ebuild16
-rw-r--r--dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.6.2.ebuild17
-rw-r--r--dev-ruby/rails/rails-8.0.4-r1.ebuild37
-rw-r--r--dev-ruby/rails/rails-8.1.2-r1.ebuild37
-rw-r--r--dev-ruby/railties/railties-7.1.5.1.ebuild4
-rw-r--r--dev-ruby/railties/railties-7.1.6-r1.ebuild4
-rw-r--r--dev-ruby/railties/railties-7.1.6.ebuild4
-rw-r--r--dev-ruby/railties/railties-8.0.4-r1.ebuild75
-rw-r--r--dev-ruby/railties/railties-8.1.2-r1.ebuild75
-rw-r--r--dev-ruby/rash_alt/rash_alt-0.4.12.ebuild4
-rw-r--r--dev-ruby/rmagick/Manifest1
-rw-r--r--dev-ruby/rmagick/files/rmagick-5.5.0-ruby35.patch57
-rw-r--r--dev-ruby/rmagick/rmagick-5.5.0-r1.ebuild6
-rw-r--r--dev-ruby/rmagick/rmagick-6.1.1.ebuild83
-rw-r--r--dev-ruby/rouge/Manifest3
-rw-r--r--dev-ruby/rouge/rouge-4.5.1.ebuild36
-rw-r--r--dev-ruby/rouge/rouge-4.5.2.ebuild36
-rw-r--r--dev-ruby/rouge/rouge-4.6.0.ebuild37
-rw-r--r--dev-ruby/rouge/rouge-4.7.0.ebuild2
-rw-r--r--dev-ruby/rqrcode/Manifest3
-rw-r--r--dev-ruby/rqrcode/rqrcode-2.2.0.ebuild36
-rw-r--r--dev-ruby/rqrcode/rqrcode-3.1.0.ebuild36
-rw-r--r--dev-ruby/rqrcode/rqrcode-3.1.1.ebuild36
-rw-r--r--dev-ruby/rqrcode_core/Manifest3
-rw-r--r--dev-ruby/rqrcode_core/rqrcode_core-1.2.0.ebuild31
-rw-r--r--dev-ruby/rqrcode_core/rqrcode_core-2.0.0.ebuild31
-rw-r--r--dev-ruby/rqrcode_core/rqrcode_core-2.0.1.ebuild31
-rw-r--r--dev-ruby/rr/rr-3.1.2.ebuild4
-rw-r--r--dev-ruby/ruby-feedparser/Manifest1
-rw-r--r--dev-ruby/ruby-feedparser/ruby-feedparser-0.11.3.ebuild39
-rw-r--r--dev-ruby/ruby-feedparser/ruby-feedparser-0.11.4.ebuild4
-rw-r--r--dev-ruby/ruby-oembed/ruby-oembed-0.18.1.ebuild4
-rw-r--r--dev-ruby/ruby-shadow/ruby-shadow-2.5.1.ebuild13
-rw-r--r--dev-ruby/rubytest-cli/rubytest-cli-0.2.0-r1.ebuild4
-rw-r--r--dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild4
-rw-r--r--dev-ruby/rubyzip/rubyzip-2.4.1.ebuild16
-rw-r--r--dev-ruby/sass/sass-3.7.4-r3.ebuild4
-rw-r--r--dev-ruby/sassc/sassc-2.4.0-r1.ebuild4
-rw-r--r--dev-ruby/selenium-webdriver/selenium-webdriver-4.1.0-r1.ebuild4
-rw-r--r--dev-ruby/selenium-webdriver/selenium-webdriver-4.11.0.ebuild4
-rw-r--r--dev-ruby/selenium-webdriver/selenium-webdriver-4.40.0.ebuild2
-rw-r--r--dev-ruby/shoulda-matchers/shoulda-matchers-4.5.1-r1.ebuild4
-rw-r--r--dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild4
-rw-r--r--dev-ruby/shoulda-matchers/shoulda-matchers-6.4.0.ebuild4
-rw-r--r--dev-ruby/shoulda-matchers/shoulda-matchers-6.5.0.ebuild4
-rw-r--r--dev-ruby/shoulda-matchers/shoulda-matchers-7.0.1.ebuild2
-rw-r--r--dev-ruby/shoulda/shoulda-4.0.0.ebuild4
-rw-r--r--dev-ruby/sinatra/Manifest1
-rw-r--r--dev-ruby/sinatra/sinatra-4.1.1.ebuild4
-rw-r--r--dev-ruby/sinatra/sinatra-4.2.1-r1.ebuild (renamed from dev-ruby/sinatra/sinatra-4.2.0.ebuild)35
-rw-r--r--dev-ruby/sinatra/sinatra-4.2.1.ebuild31
-rw-r--r--dev-ruby/spring/spring-4.4.0.ebuild4
-rw-r--r--dev-ruby/sprockets-rails/sprockets-rails-3.5.2-r1.ebuild55
-rw-r--r--dev-ruby/sprockets-rails/sprockets-rails-3.5.2.ebuild16
-rw-r--r--dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild27
-rw-r--r--dev-ruby/sprockets/sprockets-4.2.2.ebuild27
-rw-r--r--dev-ruby/sqlite3/Manifest4
-rw-r--r--dev-ruby/sqlite3/sqlite3-1.7.3.ebuild57
-rw-r--r--dev-ruby/sqlite3/sqlite3-2.7.4.ebuild66
-rw-r--r--dev-ruby/sqlite3/sqlite3-2.8.0.ebuild66
-rw-r--r--dev-ruby/sqlite3/sqlite3-2.8.1.ebuild66
-rw-r--r--dev-ruby/stringex/stringex-2.8.6.ebuild4
-rw-r--r--dev-ruby/sus-fixtures-async/sus-fixtures-async-0.2.0-r2.ebuild33
-rw-r--r--dev-ruby/sus-fixtures-console/sus-fixtures-console-0.5.0.ebuild2
-rw-r--r--dev-ruby/temple/temple-0.10.4.ebuild4
-rw-r--r--dev-ruby/terminal-table/terminal-table-3.0.2.ebuild4
-rw-r--r--dev-ruby/terminal-table/terminal-table-4.0.0.ebuild4
-rw-r--r--dev-ruby/test-unit-rr/test-unit-rr-1.0.5-r2.ebuild4
-rw-r--r--dev-ruby/test_construct/test_construct-2.0.2-r1.ebuild4
-rw-r--r--dev-ruby/tilt/Manifest1
-rw-r--r--dev-ruby/tilt/tilt-2.8.0.ebuild35
-rw-r--r--dev-ruby/traces/traces-0.18.2.ebuild4
-rw-r--r--dev-ruby/unicode-display_width/Manifest1
-rw-r--r--dev-ruby/unicode-display_width/unicode-display_width-2.6.0.ebuild4
-rw-r--r--dev-ruby/unicode-display_width/unicode-display_width-3.1.4.ebuild30
-rw-r--r--dev-ruby/unicode-display_width/unicode-display_width-3.1.5.ebuild4
-rw-r--r--dev-ruby/uuidtools/uuidtools-2.2.0-r1.ebuild4
-rw-r--r--dev-ruby/uuidtools/uuidtools-3.0.0.ebuild4
-rw-r--r--dev-ruby/virtus/virtus-2.0.0.ebuild4
-rw-r--r--dev-ruby/webmock/webmock-3.25.1.ebuild4
-rw-r--r--dev-ruby/webrobots/webrobots-0.1.2-r3.ebuild4
-rw-r--r--dev-ruby/yard/Manifest1
-rw-r--r--dev-ruby/yard/yard-0.9.45.ebuild62
-rw-r--r--dev-ruby/zeitwerk/Manifest2
-rw-r--r--dev-ruby/zeitwerk/zeitwerk-2.8.2.ebuild (renamed from dev-ruby/zeitwerk/zeitwerk-2.7.0.ebuild)20
-rw-r--r--dev-ruby/zstd-ruby/Manifest3
-rw-r--r--dev-ruby/zstd-ruby/files/zstd-ruby-1.5.7.1-ruby35.patch55
-rw-r--r--dev-ruby/zstd-ruby/zstd-ruby-1.5.7.0.ebuild44
-rw-r--r--dev-ruby/zstd-ruby/zstd-ruby-1.5.7.1.ebuild6
-rw-r--r--dev-ruby/zstd-ruby/zstd-ruby-2.0.3.ebuild44
-rw-r--r--dev-ruby/zstd-ruby/zstd-ruby-2.0.4.ebuild44
-rw-r--r--dev-util/cucumber-ci-environment/cucumber-ci-environment-10.0.1.ebuild4
-rw-r--r--dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-18.0.3.ebuild4
-rw-r--r--dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-20.1.0.ebuild4
-rw-r--r--dev-util/cucumber-core/cucumber-core-15.4.0.ebuild4
-rw-r--r--dev-util/cucumber-cucumber-expressions/cucumber-cucumber-expressions-18.0.1.ebuild4
-rw-r--r--dev-util/cucumber-gherkin/cucumber-gherkin-30.1.3.ebuild4
-rw-r--r--dev-util/cucumber-html-formatter/cucumber-html-formatter-22.2.0.ebuild4
-rw-r--r--dev-util/cucumber-messages/cucumber-messages-27.2.0.ebuild4
-rw-r--r--dev-util/cucumber-tag-expressions/cucumber-tag-expressions-6.1.2.ebuild4
-rw-r--r--dev-util/cucumber/cucumber-10.2.0.ebuild4
-rw-r--r--dev-util/selenium-manager/selenium-manager-4.46.0.ebuild2
-rw-r--r--dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild1
-rw-r--r--dev-util/vulkan-tools/vulkan-tools-9999.ebuild3
-rw-r--r--eclass/kernel-2.eclass8
-rw-r--r--games-emulation/atari800/Manifest1
-rw-r--r--games-emulation/atari800/atari800-7.1.2.ebuild93
-rw-r--r--gui-wm/gamescope/gamescope-3.16.25-r1.ebuild (renamed from gui-wm/gamescope/gamescope-3.16.25.ebuild)2
-rw-r--r--mail-mta/msmtp/files/msmtp-1.8.31-fix-disable-nls.patch30
-rw-r--r--mail-mta/msmtp/files/msmtp-fix-tests-without-msmtpd.patch56
-rw-r--r--media-libs/libxmp/Manifest2
-rw-r--r--media-libs/libxmp/libxmp-4.7.2.ebuild (renamed from media-libs/libxmp/libxmp-4.7.1.ebuild)0
-rw-r--r--media-plugins/live/Manifest4
-rw-r--r--media-plugins/live/live-2024.10.31.ebuild76
-rw-r--r--media-plugins/live/live-2025.10.13.ebuild76
-rw-r--r--media-plugins/live/live-2026.07.23.ebuild (renamed from media-plugins/live/live-2025.07.19.ebuild)10
-rw-r--r--media-plugins/live/metadata.xml2
-rw-r--r--media-radio/svxlink/Manifest2
-rw-r--r--media-radio/svxlink/svxlink-26.05.1.ebuild (renamed from media-radio/svxlink/svxlink-26.05.ebuild)0
-rw-r--r--media-sound/musescore/musescore-4.7.4-r1.ebuild2
-rw-r--r--media-sound/strawberry/Manifest2
-rw-r--r--media-sound/strawberry/strawberry-1.2.25.ebuild (renamed from media-sound/strawberry/strawberry-1.2.23.ebuild)5
-rw-r--r--media-sound/strawberry/strawberry-9999.ebuild5
-rw-r--r--net-analyzer/icinga2/files/icinga2-boost-1.89.patch23
-rw-r--r--net-dns/cares-tools/Manifest1
-rw-r--r--net-dns/cares-tools/cares-tools-0.4.ebuild33
-rw-r--r--net-im/discord/Manifest21
-rw-r--r--net-im/discord/discord-0.0.135.ebuild165
-rw-r--r--net-im/discord/discord-1.0.150.ebuild (renamed from net-im/discord/discord-1.0.146.ebuild)2
-rw-r--r--net-im/telegram-desktop/files/tdesktop-5.2.2-libdispatch.patch24
-rw-r--r--net-im/telegram-desktop/files/tdesktop-6.5.1-zlib-1.3.2.patch12
-rw-r--r--net-im/telegram-desktop/files/tdesktop-6.6.2-qt6-no-wayland.patch119
-rw-r--r--net-libs/webkit-gtk/webkit-gtk-2.52.5-r410.ebuild2
-rw-r--r--net-libs/webkit-gtk/webkit-gtk-2.52.5-r600.ebuild2
-rw-r--r--net-misc/dropbear/files/dropbear-2026.92-skip-failing-convert-test.patch12
-rw-r--r--profiles/package.deprecated13
-rw-r--r--sci-calculators/qalculate-gtk/Manifest1
-rw-r--r--sci-calculators/qalculate-gtk/qalculate-gtk-5.12.0.ebuild45
-rw-r--r--sci-calculators/qalculate-qt/Manifest1
-rw-r--r--sci-calculators/qalculate-qt/qalculate-qt-5.12.0.ebuild37
-rw-r--r--sci-libs/libqalculate/Manifest1
-rw-r--r--sci-libs/libqalculate/libqalculate-5.12.0.ebuild89
-rw-r--r--sci-misc/jupyterlab-desktop-bin/Manifest1
-rw-r--r--sci-misc/jupyterlab-desktop-bin/jupyterlab-desktop-bin-4.6.2.1.ebuild107
-rw-r--r--sys-apps/acl/acl-2.4.0-r1.ebuild (renamed from sys-apps/acl/acl-2.4.0.ebuild)4
-rw-r--r--sys-apps/acl/acl-9999.ebuild4
-rw-r--r--sys-apps/renameutils/files/renameutils-0.12.0-c23.patch146
-rw-r--r--sys-apps/renameutils/renameutils-0.12.0.ebuild3
-rw-r--r--sys-devel/gcc/Manifest6
-rw-r--r--sys-devel/gcc/gcc-13.4.1_p20260722.ebuild68
-rw-r--r--sys-devel/gcc/gcc-14.4.1_p20260723.ebuild56
-rw-r--r--sys-devel/gcc/gcc-15.3.1_p20260724.ebuild56
-rw-r--r--sys-devel/gcc/gcc-16.1.1_p20260725.ebuild56
-rw-r--r--sys-devel/gcc/gcc-17.0.0_p20260726.ebuild56
-rw-r--r--sys-fs/ncdu/ncdu-2.9.2.ebuild2
-rw-r--r--sys-kernel/git-sources/Manifest1
-rw-r--r--sys-kernel/git-sources/git-sources-7.2_rc5.ebuild39
-rw-r--r--sys-libs/glibc/Manifest3
-rw-r--r--sys-libs/glibc/glibc-2.44.ebuild1934
-rw-r--r--www-servers/puma/Manifest2
-rw-r--r--www-servers/puma/puma-7.2.1.ebuild (renamed from www-servers/puma/puma-7.1.0.ebuild)10
-rw-r--r--x11-wm/herbstluftwm/herbstluftwm-0.9.6-r1.ebuild (renamed from x11-wm/herbstluftwm/herbstluftwm-0.9.6.ebuild)13
-rw-r--r--x11-wm/herbstluftwm/herbstluftwm-9999.ebuild13
351 files changed, 7723 insertions, 3226 deletions
diff --git a/app-admin/puppet-lint/Manifest b/app-admin/puppet-lint/Manifest
index a926a8999c7d..ead6c33d059c 100644
--- a/app-admin/puppet-lint/Manifest
+++ b/app-admin/puppet-lint/Manifest
@@ -1,2 +1,2 @@
-DIST puppet-lint-4.2.4.gem 82432 BLAKE2B 54bd65b917c184163adca920767b88d064cdd8c931d7911a64698d68a7b335055bd95bff91c462ecaf4111a231186ee5d2f2de42a04abffb519a67a4825bec59 SHA512 19b28de4e5d183dd46727cc4f7f7a6b81eb5ec7d0c7ca23514a015e43a7528bfc110853b82e65ac5da4d002abc3c21ce5d10abb6a97717b540d13570fd42eb6b
DIST puppet-lint-4.3.0.gem 84480 BLAKE2B 2f97bb263c71dbd95c5ffa7fda30d1bb29764734f505b8da04a0e2ebe9ec959736ce5df14073ae1d06611dadb19c19f4f95e07de7ac49fd1d4c6846c021dd17f SHA512 d9099c1e67e6afcd06873ae5562823f42134fa0904456b54a2e863e5f14f7584c4f31ef57f4bfdfdeb451a63d5aa65fc4262be4417f7f00072fff30755c0359c
+DIST puppet-lint-5.1.1.gem 84992 BLAKE2B 8964165d5b2d01a8cf431e6219e9864e4e2cf406b44da26ee59f6e68d454014ea8f9d4d9b2062c9731a54de915a6404d4f207229d96717e4b581c94bcbbacfb1 SHA512 b9efc981c01ca6a290249222460c7d9afa204c3bf7d615f278cfd9d8ffc365054e68141756b166af20f296c59677a13c09440b6e04849b1cb2a90316340f2b70
diff --git a/app-admin/puppet-lint/puppet-lint-4.2.4.ebuild b/app-admin/puppet-lint/puppet-lint-5.1.1.ebuild
index 5ff4b067055b..319cdaa95123 100644
--- a/app-admin/puppet-lint/puppet-lint-4.2.4.ebuild
+++ b/app-admin/puppet-lint/puppet-lint-5.1.1.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33"
+
+USE_RUBY="ruby32 ruby33 ruby34"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
@@ -17,14 +18,7 @@ HOMEPAGE="https://github.com/puppetlabs/puppet-lint"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~x86"
-
-PATCH_NAME="${PN}-4.2.3-pr181-fix-warnings.patch"
-#SRC_URI+=" https://github.com/puppetlabs/puppet-lint/pull/181.patch -> ${PATCH_NAME} "
-
-#PATCHES=(
-# "${DISTDIR}/${PATCH_NAME}"
-#)
+KEYWORDS="~amd64 ~x86"
ruby_add_bdepend "test? (
dev-ruby/rspec-its:1
diff --git a/app-admin/puppet/puppet-8.10.0-r1.ebuild b/app-admin/puppet/puppet-8.10.0-r1.ebuild
index 82a388ac2b27..382477ae0f02 100644
--- a/app-admin/puppet/puppet-8.10.0-r1.ebuild
+++ b/app-admin/puppet/puppet-8.10.0-r1.ebuild
@@ -3,7 +3,7 @@
EAPI="7"
-USE_RUBY="ruby31 ruby32 ruby33"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_TASK_DOC="doc:all"
RUBY_FAKEGEM_EXTRAINSTALL="locales"
diff --git a/app-benchmarks/geekbench/Manifest b/app-benchmarks/geekbench/Manifest
index 3b4e6c07a991..b2cecfe69385 100644
--- a/app-benchmarks/geekbench/Manifest
+++ b/app-benchmarks/geekbench/Manifest
@@ -4,7 +4,10 @@ DIST Geekbench-3.4.4-Linux.tar.gz 9998564 BLAKE2B feb3b2c9b2c57c1a71bb5148110752
DIST Geekbench-4.4.4-Linux.tar.gz 71089467 BLAKE2B 257f79644e20189950fb7c9121e32337526e0c9bf5b0f0f66568c107e2a15c65459eecd332bea4fcbc2d9bb1287bab0e4f37b2100f419ffa52c5396828d86c38 SHA512 c43e1d658d361347efb012824ff0b81975ace35c866a1c2a227adeb86167292b639f19e8fe190d2f0de395f19280a99cb20342325177222f634c9e71c9226e78
DIST Geekbench-5.5.1-Linux.tar.gz 93199992 BLAKE2B e2ff24da19134778dd1b3036ac3fb8b2d99746dbe41b1959cb74522613a7b9a8a0e3796d22351af877a9ea7a734c6b101a0ffadfd3bbc2e29fb9b12e59106848 SHA512 0fd90d55eaaf178e4c981ef6ef54808d1ff86edc92c907a5d8e2a3a379c2289e614d917db330a3d748c818bcedb2dc69cad250b1b98ba80287c6d9a66382bcc4
DIST Geekbench-5.5.1-LinuxARMPreview.tar.gz 111581640 BLAKE2B be413e306a77c0612be380d0ec0d589067365ac1c4091b55a08b722d469180c9cf9126cc0597e3f3c8a75acf77d2a0423bc43b753f30a219924b1a7df640243d SHA512 1d76b9a7928f89f1fdfa0e3cc9859c305e109cbbe72b013b4c249b03722273c985ad1e5d818341a6e399e9e7b3c61136856df87c9f5e61bcc9e7e0455f80e61b
+DIST Geekbench-5.5.1-LinuxRISCVPreview.tar.gz 90517700 BLAKE2B 139e0baa9efb58a3ef058a869f793421cbf38b44cedeee7d35189fa59d0707a8f418010a78f72a249eed3e161e58e0300871cac7b85589cd53df17f8b899a146 SHA512 1d552f8124ddbca1a797819eb148e94083ce2cf5dfdf83672d44aaebcd933a61671d86e99d54c676afc2eaa9e9ac892f11f47770dced65ec94d1172124f41db2
DIST Geekbench-6.7.1-Linux.tar.gz 228093838 BLAKE2B 48a8dbcbcec21253b92dfd460e9bf32b203f18b3d141bb242d1f335e40acda7df2ec70a04711cddbc5727755b3445d358dbf8e90f21a145412acef2e06ae03cb SHA512 be38a8152a0ed9fc0c2e90ec0c7666326d8b416eb6d19a1aaccf6c18537f096fa57737eb7986f37d2429386944e00789127d4e7751301a89de82cbe0ecda22b7
DIST Geekbench-6.7.1-LinuxARMPreview.tar.gz 192088662 BLAKE2B 57b9d904c16e5201bdd954cbaea6bfd2afdf33ac0c22be3a720dfe710812400d9a30f995512fd86e6d5ce546cf166af4a089eea207dab47aac074730d812f49a SHA512 d05897bcff3361e3b064dafe7f87e692ea860a952f3c0037cda74f31b2150228ef565a369e91d2b0305df2e663a8cd3a68ba022d7319e1f75ad7698dc6a62753
+DIST Geekbench-6.7.1-LinuxRISCVPreview.tar.gz 224502681 BLAKE2B fea9db8fdd37e18e46faeaac2d190d87914b2c2135227d3187161f02e7fdedf9b2464ebaaf63f9b560c28386136e0411ee44d367ec8f00a859a1f4123a7c3bc0 SHA512 fee193cf9c155ba8acafd0f557320fb4d15056375d2755121873a33f8511f0858e35b8a6b86a17a7f389b423d50b274f9a1391a183119e51b4defe49ea64e42a
DIST Geekbench-7.0.0-Linux.tar.gz 393434626 BLAKE2B ba38fdf4929ff4e14bd5265cd2ea9290a1d5bad5464260e12932082d04e89ce5aca925c005897b0ca44890db49fddcec95c908c81baa714d5b6201ea360f5080 SHA512 4e86a39e46bff3158fcc404571d81ab1f8ffa812cb5e86770823ac422f5fd100c309083c5057d8085f243aad6c58b0a972ec5c60e17b862df08b78e7d0ad8d78
DIST Geekbench-7.0.0-LinuxARMPreview.tar.gz 332522909 BLAKE2B 0194942bbdf75b259c00b770404d29761a89194de101574ae79f54562ee61993692db1e8e86bde7a6a6af73af2f86f242f30f45e22a797a0f878788932c4e005 SHA512 20f9010a06e43ebc8f45922b5daf0b59e314438b97be3f3a96c3ef1cf8e70eb03e702c7f78bf670fb5c86879ca74ab9b74240957b3c9603d52a2e748c389c621
+DIST Geekbench-7.0.0-LinuxRISCVPreview.tar.gz 461220579 BLAKE2B 79f7f3033eed4e39b23f0561c6d8fc4ac9c7d79a1925be688132aee0e0fcaf2e5f9e842031d99d25e4cb2de79bfc416c07db731847dc467f06aa2b5869ab37c2 SHA512 0def1cad1ecff269ba0328a444bd058f9b9cd1a2134a3781e44df63f16672e93d3f556ba0f7b1add7c568c1d9623e86428c8ab1318acdb7569de0f42a5840226
diff --git a/app-benchmarks/geekbench/geekbench-5.5.1.ebuild b/app-benchmarks/geekbench/geekbench-5.5.1.ebuild
index 322b011f8c04..59a775cfe81e 100644
--- a/app-benchmarks/geekbench/geekbench-5.5.1.ebuild
+++ b/app-benchmarks/geekbench/geekbench-5.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,18 +8,20 @@ HOMEPAGE="https://www.geekbench.com/"
SRC_URI="
amd64? ( https://cdn.geekbench.com/Geekbench-${PV}-Linux.tar.gz )
arm64? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxARMPreview.tar.gz )
+ riscv? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxRISCVPreview.tar.gz )
"
S="${WORKDIR}"
LICENSE="geekbench"
SLOT="5"
-KEYWORDS="-* amd64 arm arm64"
+KEYWORDS="-* amd64 arm arm64 ~riscv"
RESTRICT="bindist mirror"
QA_PREBUILT="
opt/geekbench5/geekbench_aarch64
opt/geekbench5/geekbench_armv7
+ opt/geekbench5/geekbench_riscv64
opt/geekbench5/geekbench_x86_64
opt/geekbench5/geekbench5
"
@@ -30,12 +32,15 @@ pkg_nofetch() {
}
src_install() {
+ local MY_S="Geekbench-${PV}-Linux$(usex arm 'ARMPreview' '')"
local MY_S="Geekbench-${PV}-Linux$(usex arm64 'ARMPreview' '')"
+ local MY_S="Geekbench-${PV}-Linux$(usex riscv 'RISCVPreview' '')"
exeinto /opt/geekbench5
use amd64 && doexe "${MY_S}"/geekbench_x86_64
use arm && doexe "${MY_S}"/geekbench_armv7
use arm64 && doexe "${MY_S}"/geekbench_aarch64
+ use riscv && doexe "${MY_S}"/geekbench_riscv64
doexe "${MY_S}"/geekbench5
insinto /opt/geekbench5
diff --git a/app-benchmarks/geekbench/geekbench-6.7.1.ebuild b/app-benchmarks/geekbench/geekbench-6.7.1.ebuild
index ad8838293422..5f3abd2498fc 100644
--- a/app-benchmarks/geekbench/geekbench-6.7.1.ebuild
+++ b/app-benchmarks/geekbench/geekbench-6.7.1.ebuild
@@ -8,18 +8,21 @@ HOMEPAGE="https://www.geekbench.com/"
SRC_URI="
amd64? ( https://cdn.geekbench.com/Geekbench-${PV}-Linux.tar.gz )
arm64? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxARMPreview.tar.gz )
+ riscv? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxRISCVPreview.tar.gz )
"
S="${WORKDIR}"
LICENSE="geekbench"
SLOT="6"
-KEYWORDS="-* amd64 arm64"
+KEYWORDS="-* amd64 arm64 ~riscv"
RESTRICT="bindist mirror"
QA_PREBUILT="
opt/geekbench6/geekbench_aarch64
opt/geekbench6/geekbench_avx2
+ opt/geekbench7/geekbench_rv64gc
+ opt/geekbench7/geekbench_rv64gcbv
opt/geekbench6/geekbench_x86_64
opt/geekbench6/geekbench6
"
@@ -31,10 +34,12 @@ pkg_nofetch() {
src_install() {
local MY_S="Geekbench-${PV}-Linux$(usex arm64 'ARMPreview' '')"
+ local MY_S="Geekbench-${PV}-Linux$(usex riscv 'RISCVPreview' '')"
exeinto /opt/geekbench6
- use amd64 && doexe "${MY_S}"/geekbench_avx2 "${MY_S}"/geekbench_x86_64
+ use amd64 && doexe "${MY_S}"/geekbench_{avx2,x86_64}
use arm64 && doexe "${MY_S}"/geekbench_aarch64
+ use riscv && doexe "${MY_S}"/geekbench_{rv64gc,rv64gcbv}
doexe "${MY_S}"/geekbench6
insinto /opt/geekbench6
diff --git a/app-benchmarks/geekbench/geekbench-7.0.0.ebuild b/app-benchmarks/geekbench/geekbench-7.0.0.ebuild
index 4d3cbb6dafa8..f57403f787d3 100644
--- a/app-benchmarks/geekbench/geekbench-7.0.0.ebuild
+++ b/app-benchmarks/geekbench/geekbench-7.0.0.ebuild
@@ -8,12 +8,13 @@ HOMEPAGE="https://www.geekbench.com/"
SRC_URI="
amd64? ( https://cdn.geekbench.com/Geekbench-${PV}-Linux.tar.gz )
arm64? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxARMPreview.tar.gz )
+ riscv? ( https://cdn.geekbench.com/Geekbench-${PV}-LinuxRISCVPreview.tar.gz )
"
S="${WORKDIR}"
LICENSE="geekbench"
SLOT="7"
-KEYWORDS="-* ~amd64 ~arm64"
+KEYWORDS="-* ~amd64 ~arm64 ~riscv"
RESTRICT="bindist mirror"
@@ -22,6 +23,9 @@ BDEPEND="dev-util/patchelf"
QA_PREBUILT="
opt/geekbench7/geekbench_aarch64
opt/geekbench7/geekbench_avx2
+ opt/geekbench7/geekbench_rv64gc
+ opt/geekbench7/geekbench_rv64gcbv
+ opt/geekbench7/geekbench_rva23
opt/geekbench7/geekbench_x86_64
opt/geekbench7/geekbench7
"
@@ -35,22 +39,27 @@ src_prepare() {
default
local MY_S="Geekbench-${PV}-Linux$(usex arm64 'ARMPreview' '')"
+ local MY_S="Geekbench-${PV}-Linux$(usex riscv 'RISCVPreview' '')"
# Fix QA insecure RUNPATHs
patchelf --remove-rpath "${MY_S}"/geekbench7 || die
if use amd64; then
patchelf --remove-rpath "${MY_S}"/geekbench_{avx2,x86_64} || die
- else
+ elif use arm64; then
patchelf --remove-rpath "${MY_S}"/geekbench_aarch64 || die
+ else
+ patchelf --remove-rpath "${MY_S}"/geekbench_{rv64gc,rv64gcbv,rva23} || die
fi
}
src_install() {
local MY_S="Geekbench-${PV}-Linux$(usex arm64 'ARMPreview' '')"
+ local MY_S="Geekbench-${PV}-Linux$(usex riscv 'RISCVPreview' '')"
exeinto /opt/geekbench7
- use amd64 && doexe "${MY_S}"/geekbench_avx2 "${MY_S}"/geekbench_x86_64
+ use amd64 && doexe "${MY_S}"/geekbench_{avx2,x86_64}
use arm64 && doexe "${MY_S}"/geekbench_aarch64
+ use riscv && doexe "${MY_S}"/geekbench_{rv64gc,rv64gcbv,rva23}
doexe "${MY_S}"/geekbench7
insinto /opt/geekbench7
diff --git a/app-misc/nnn/files/nnn-5.0_fix_strcasecmp.patch b/app-misc/nnn/files/nnn-5.0_fix_strcasecmp.patch
deleted file mode 100644
index 15fcdaca3c64..000000000000
--- a/app-misc/nnn/files/nnn-5.0_fix_strcasecmp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/icons-hash.c b/src/icons-hash.c
-index f0f2b0947..699af33b5 100644
---- a/src/icons-hash.c
-+++ b/src/icons-hash.c
-@@ -23,6 +23,7 @@
-
- #include <stdio.h>
- #include <string.h>
-+#include <strings.h>
- #include <stdlib.h>
- #include <limits.h>
- #include "icons.h"
diff --git a/app-shells/dash/files/0001-builtin-Fix-octal-escapes-in-dollar-single-quotes.patch b/app-shells/dash/files/0001-builtin-Fix-octal-escapes-in-dollar-single-quotes.patch
deleted file mode 100644
index 63da50ae880a..000000000000
--- a/app-shells/dash/files/0001-builtin-Fix-octal-escapes-in-dollar-single-quotes.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From cd610905162812ca7dcf246b3dc46bce5e28e7cb Mon Sep 17 00:00:00 2001
-Message-ID: <cd610905162812ca7dcf246b3dc46bce5e28e7cb.1781226895.git.sam@gentoo.org>
-From: Kerin Millar <kfm@plushkava.net>
-Date: Sun, 31 May 2026 13:36:09 +0800
-Subject: [PATCH 1/2] builtin: Fix octal escapes in dollar-single-quotes
-
-The test suite of gentoo-functions recently uncovered a bug concerning
-the handling of octal escape sequences within dollar-single-quotes.
-Here is a reproducer:
-
- $ dash -c "x=\$'\\201'; printf '%s' \"\$x\"" | od -An -tx1
- 88
-
-That is, despite the input being 0x81, the output is 0x88. Indeed, any
-input between 0x81..0x88 is adversely affected and some - such as 0x82 -
-induce a segfault.
-
-I noticed the following macros in src/parser.h:
-
- #define CTL_FIRST -127 /* first 'special' character */
- #define CTLESC -127 /* escape next character */
- #define CTL_LAST -120 /* last 'special' character */
-
-Reinterpreted as unsigned char, the CTL_FIRST..CTL_LAST range maps
-exactly to 0x81..0x88:
-
- $ perl -e 'printf "%x\0", $_ & 0xFF for -127..-120' | xargs -0
- 81 82 83 84 85 86 87 88
-
-From this, I was able to deduce that all of these bytes must be preceded
-by CTLESC in order to be taken literally. Make it so.
-
-Link: https://gitweb.gentoo.org/proj/gentoo-functions.git/commit/?id=947090fb7704
-Signed-off-by: Kerin Millar <kfm@plushkava.net>
-
-The escape should also be applied to \x sequences. In fact \x81
-was totally broken as it produced a multi-byte character. Fix this
-by merging these two code paths.
-
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
----
- src/bltin/printf.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/src/bltin/printf.c b/src/bltin/printf.c
-index 106aecd..671e781 100644
---- a/src/bltin/printf.c
-+++ b/src/bltin/printf.c
-@@ -332,6 +332,7 @@ unsigned conv_escape(char *str0, char *out0, bool mbchar)
- char *out = out0;
- char *str = str0;
- unsigned value;
-+ int och;
- int ch;
-
- ch = *str;
-@@ -359,12 +360,18 @@ unsigned conv_escape(char *str0, char *out0, bool mbchar)
- }
-
- str--;
-+
-+check_value:
-+ if (mbchar && (signed char)value >= CTL_FIRST &&
-+ (signed char)value <= CTL_LAST)
-+ USTPUTC(CTLESC, out);
- break;
-
- case 'x':
- ch = 2;
-
- hex:
-+ och = ch;
- value = 0;
- do {
- int c = *++str;
-@@ -391,6 +398,9 @@ hex:
- if (value < 0x80)
- break;
-
-+ if (och <= 2)
-+ goto check_value;
-+
- if (value < 0x110000) {
- int mboff = (mbchar - 1) * 2;
- unsigned uni = value;
---
-2.54.0
-
diff --git a/app-shells/dash/files/0002-builtin-Fix-unaligned-access-in-conv_escape.patch b/app-shells/dash/files/0002-builtin-Fix-unaligned-access-in-conv_escape.patch
deleted file mode 100644
index 05a92a295021..000000000000
--- a/app-shells/dash/files/0002-builtin-Fix-unaligned-access-in-conv_escape.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 28c4d5b126e336f1632c074fa002969ff42e7a51 Mon Sep 17 00:00:00 2001
-Message-ID: <28c4d5b126e336f1632c074fa002969ff42e7a51.1781226895.git.sam@gentoo.org>
-In-Reply-To: <cd610905162812ca7dcf246b3dc46bce5e28e7cb.1781226895.git.sam@gentoo.org>
-References: <cd610905162812ca7dcf246b3dc46bce5e28e7cb.1781226895.git.sam@gentoo.org>
-From: Herbert Xu <herbert@gondor.apana.org.au>
-Date: Sun, 31 May 2026 13:51:02 +0800
-Subject: [PATCH 2/2] builtin: Fix unaligned access in conv_escape
-
-When writing out the unicode character in conv_escape, use memcpy
-instead of direct assignment as the output buffer may not be aligned
-sufficiently.
-
-Reported-by: Nathan Mills <the.true.nathan.mills@gmail.com>
-Fixes: 776424a8f915 ("parser: Add dollar single quote")
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
----
- src/bltin/printf.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/bltin/printf.c b/src/bltin/printf.c
-index 671e781..c2c3615 100644
---- a/src/bltin/printf.c
-+++ b/src/bltin/printf.c
-@@ -429,7 +429,7 @@ hex:
- USTPUTC(CTLMBCHAR, out);
- USTPUTC(len, out);
- STADJUST(mboff, out);
-- *(uint32_t *)out = value;
-+ memcpy(out, &value, 4);
- STADJUST(len, out);
- USTPUTC(len, out);
- USTPUTC(CTLMBCHAR, out);
---
-2.54.0
-
diff --git a/app-shells/dash/files/0003-input-Fix-overeager-NUL-deletion-in-SMALL-mode.patch b/app-shells/dash/files/0003-input-Fix-overeager-NUL-deletion-in-SMALL-mode.patch
deleted file mode 100644
index 6e17a9d031bc..000000000000
--- a/app-shells/dash/files/0003-input-Fix-overeager-NUL-deletion-in-SMALL-mode.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From e170d9a49b3652460d6272bba9cd20afbb8140f2 Mon Sep 17 00:00:00 2001
-From: Herbert Xu <herbert@gondor.apana.org.au>
-Date: Sat, 20 Jun 2026 17:23:30 +0800
-Subject: [PATCH] input: Fix overeager NUL deletion in SMALL mode
-
-NUL characters should not be removed from input lines that are
-yet to be processed because they could become the input to the
-next executed utility.
-
-Fix this by moving the NUL deletion into pgetc when history support
-is off (IS_DEFINED_SMALL).
-
-Also fold __pgetc into pgetc since the only other caller of it
-is preadbuffer and that logic can also be moved up.
-
-Finally add a missing signed char cast for the unget characters.
-
-Reported-by: Kerin Millar <kfm@plushkava.net>
-Fixes: 44ae22beedf8 ("input: Disable lleft in SMALL mode")
-Fixes: 2c92409145d0 ("input: Allow MB_LEN_MAX calls to pungetc")
-Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
----
- src/input.c | 66 ++++++++++++++++++++++++++++-------------------------
- 1 file changed, 35 insertions(+), 31 deletions(-)
-
-diff --git a/src/input.c b/src/input.c
-index 0fb2f18..e9b9d33 100644
---- a/src/input.c
-+++ b/src/input.c
-@@ -217,39 +217,47 @@ static void freestrings(struct strpush *sp)
- }
-
-
--static int __pgetc(void)
-+/*
-+ * Read a character from the script, returning PEOF on end of file.
-+ * Nul characters in the input are silently discarded.
-+ */
-+
-+int __attribute__((noinline)) pgetc(void)
- {
-+ struct strpush *sp = parsefile->spfree;
- int c;
-
-+ if (unlikely(sp))
-+ freestrings(sp);
-+
-+again:
- if (parsefile->unget) {
- long unget = -(long)(unsigned)parsefile->unget--;
-
-- return parsefile->nextc[unget];
-+ return (signed char)parsefile->nextc[unget];
- }
-
-- if (parsefile->nleft > 0) {
-+nextc:
-+ if (likely(parsefile->nleft > 0)) {
- parsefile->nleft--;
- c = (signed char)*parsefile->nextc++;
-+ } else if (unlikely(parsefile->strpush)) {
-+ popstring();
-+ /* The freestrings call must be delayed til the next
-+ * pgetc call for PEOA to work properly.
-+ */
-+ goto again;
- } else
- c = preadbuffer();
-
-- return c;
--}
--
--
--/*
-- * Read a character from the script, returning PEOF on end of file.
-- * Nul characters in the input are silently discarded.
-- */
--
--int __attribute__((noinline)) pgetc(void)
--{
-- struct strpush *sp = parsefile->spfree;
--
-- if (unlikely(sp))
-- freestrings(sp);
-+ /* delete nul characters */
-+ if (IS_DEFINED_SMALL && unlikely(!c)) {
-+ parsefile->nextc = memmove(parsefile->nextc - 1,
-+ parsefile->nextc, parsefile->nleft);
-+ goto nextc;
-+ }
-
-- return __pgetc();
-+ return c;
- }
-
- int pgetc_eoa(void)
-@@ -374,10 +382,6 @@ static int preadbuffer(void)
- int more;
- char *q;
-
-- if (unlikely(parsefile->strpush)) {
-- popstring();
-- return __pgetc();
-- }
- if (parsefile->eof & 2) {
- eof:
- parsefile->eof = 3;
-@@ -408,6 +412,12 @@ again:
- }
- }
-
-+ if (IS_DEFINED_SMALL) {
-+ q += more;
-+ more = 0;
-+ goto done;
-+ }
-+
- /* delete nul characters */
- for (;;) {
- int c;
-@@ -422,9 +432,6 @@ again:
-
- q++;
-
-- if (IS_DEFINED_SMALL)
-- goto check;
--
- switch (c) {
- case '\n':
- goto done;
-@@ -439,11 +446,8 @@ again:
- }
-
- check:
-- if (more <= 0) {
-- if (!IS_DEFINED_SMALL)
-- goto again;
-- break;
-- }
-+ if (more <= 0)
-+ goto again;
- }
- done:
- input_set_lleft(parsefile, more);
---
-2.53.0
-
diff --git a/dev-java/log4j-12-api/log4j-12-api-2.26.0.ebuild b/dev-java/log4j-12-api/log4j-12-api-2.26.0.ebuild
index 00ff4cdd81cc..15ba7bd899f5 100644
--- a/dev-java/log4j-12-api/log4j-12-api-2.26.0.ebuild
+++ b/dev-java/log4j-12-api/log4j-12-api-2.26.0.ebuild
@@ -15,7 +15,7 @@ SRC_URI="mirror://apache/logging/log4j/${PV}/apache-log4j-${PV}-src.zip
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64"
+KEYWORDS="amd64 ~arm64 ppc64"
RESTRICT="test" # Too many test-dependencies not packaged.
BDEPEND="
diff --git a/dev-java/log4j-core/log4j-core-2.26.0.ebuild b/dev-java/log4j-core/log4j-core-2.26.0.ebuild
index 0cb0c37ca19a..294bca7594e3 100644
--- a/dev-java/log4j-core/log4j-core-2.26.0.ebuild
+++ b/dev-java/log4j-core/log4j-core-2.26.0.ebuild
@@ -15,7 +15,7 @@ SRC_URI="mirror://apache/logging/log4j/${PV}/apache-log4j-${PV}-src.zip
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64"
+KEYWORDS="amd64 ~arm64 ppc64"
BDEPEND="
app-arch/unzip
diff --git a/dev-java/openjdk/Manifest b/dev-java/openjdk/Manifest
index 7a0063a99938..d965e6685f02 100644
--- a/dev-java/openjdk/Manifest
+++ b/dev-java/openjdk/Manifest
@@ -1,12 +1,16 @@
DIST openjdk-11.0.18-riscv.patch.xz 272672 BLAKE2B b079612032a5bf135b05bdd1da16f2823772a5d9a18447a435f191daf78c5429a15c2e9ea64758dc9b26ee2a88275532b4f27714b2a7e4489f920c0ed2f5003b SHA512 c0426f243c5aa581d90366cb01ce811e34883a9d8a0298cab420378470e8eb427a56932ca1fbb5ed57e7430be2b38c6bc4491028ebaa25be0a938ba0bb2baf45
DIST openjdk-11.0.31_p11.tar.gz 116714248 BLAKE2B 67e4dd3e3383a67c82e41d6ab66f415ac18833b3bbfad9741ee07c9b8b050bcba811aa4188075b26e465017355392851b2b5fd813ced2c37572b6d75c92ac22f SHA512 78e2e96395b0fa17f4565924abc3e034bb660763e6a3a278380232c17d0aff64d000bcec0e6ff0a37e24c5affcb0ffbdacb5565d52375f41dedfdc000e5c0dc6
+DIST openjdk-11.0.32_p9.tar.gz 116752810 BLAKE2B e964c0afaf8720f93b3d7a643ae2d5ebc66746a4f7b9b6143e0704d25b01ab96c6b514dda5a97c00bcd06ed78cc80a4abd33d216b899dd2396d6e9c93af095b1 SHA512 e1305baf9dbf348ef4b8e68ca9e0104824bd09a746aa8700e5d789b1e8193d17aa3079923fb95a39d39252bb9ed5a995dcdac569a2425071ace1ffbcbe4b934c
DIST openjdk-17.0.19_p10.tar.gz 108200542 BLAKE2B 4a556fa52abc25457a8dab8d17002d2b60bef568bdab6052e91164c67097e4b25d65211024c15317f33cbe45474bfc84e75e64735b1d0f349c917a06dd5e9a5a SHA512 fb37c130bccaf1de37640a0cb0f74b8114c7c8756d28767972b57dedd6b2d86b9da71db57903659497a5e2f2a44b3eea634e551c75ba93a5ec896df1c637a463
+DIST openjdk-17.0.20_p8.tar.gz 108361148 BLAKE2B b3fe2c0a33c6c5e90230a7b454f9cf8995205cdba73a765089d8444173beb61aca898fe8d0c31e60e240430491772a6dcf0dfedde585a575ad83c96dd333bcf8 SHA512 46c0e16890752b5a010f8c666b056f4ffa229e077c59a4a69255e30193d6d1d3a1dc9cc8b02bf4418bd3667fcc05ef287ce5609228e8d143dd3b70f020cd7dbd
DIST openjdk-21.0.11_p10.tar.gz 114063372 BLAKE2B 3c5542b2169c6aa9c597a0a20ae879ab4890e7e39466d01c639e05653e90aa8198378f6fe6d9daa6d9ad7237f09cdd2320db517b83d4886f292c25d15c1dba4e SHA512 a2283a4bb07018d89b45b8dfabb34b058a3279f3cc96cddbd17c351df3e137ada401d2940d55f59f75bc5483c645415542a3af01658fbc82754e5f454055956a
+DIST openjdk-21.0.12_p8.tar.gz 114138339 BLAKE2B ec0757e617ff218eb3811e19b415d4ff92f33d5d5a10e09aa27ed658aff50f0d3ac3e953839c7a6a3c8ebf67c124ece10c1a638107cf7a91b2348c4f8bf03949 SHA512 47bd054adc8ca52ba68d212375a0d4f32b822dcbbf54bfde902b1ab09b7117cca03e5f54d07f62ed9b5be5b8b88aac225e0881a7a2b6ea653a89fa64193a937d
DIST openjdk-25.0.3_p9.tar.gz 119542671 BLAKE2B 51d04064ceb052cc09133f4f406ed04fe5d0bb72ada943ec663c9e6405dd6a5ac41e9edd2a5e7079282de717b62db437c41c75dd959ddfdb57852cec6f0f7f34 SHA512 3784667a41df9faf8e9da96a6f83f03372fb362a3c1878a4d368816996c20b2efddc3154ba42ab6e0b180b981f1202debcb93ef67117d96dcdfa1b8dd51f8709
-DIST openjdk-25.0.4_beta4.tar.gz 119641816 BLAKE2B b6f49ea719fb4d03022d92657b0673df148aad571e46ac04d366d95fc66e1864dbdbd1eacb0875d42adad94f574252a083f58c9758051f6976c7113586191029 SHA512 dc6977d34c0969db3c7109ba3f9805de54d5469044f3192b338e75eb93a02e0484933ec192b4f081213c65892662a7ad8786fce98b74f7edadd93416cbcf27ff
-DIST openjdk-27_beta25.tar.gz 121465724 BLAKE2B 2b23b479c018e5fd55ae6ecc647ec414f7a68d628a5692023f8d31af4e2b55f1638917b41306a659520e972f2da3beeb0a68a58b86d3e1d32fe744a8ab58b9b5 SHA512 851736d2ae1ff27ed58785c33c7186dfffa0815d9b53e9e7a3ccaaf79399c8bdb2b000121242e49b7f1659f2c0abbce08beffd31f4c3b083b12de2ed1e7759ec
-DIST openjdk-28_alpha1.tar.gz 121479328 BLAKE2B c33de56f5fdd8cc7eaf758a54a23fe30fd00d8aa209fe61ab2e8f5ffa1a17acd4a16d649b18bdeaca4658245db9d75217a4a331072c2f43b6e3690a8126c4a47 SHA512 8f080d65a7260d746561574f130a51caf1182b4809802047841aa264fb850847d8cf65fe9eda6777c9d303ed3c6d7e827f42d93b4d671e514cf8b2e5544df8c5
+DIST openjdk-25.0.4_p7.tar.gz 119669964 BLAKE2B f3314ac0197b30609db25a40825f90ce208fc19412a07dfe0bead2db185a04f1fbfb8230fbe44ea6279b39f16fcc8a1d0b132df1acbaa72a41ab12bd734d32fc SHA512 904b1a621fe0031ae4eed9b25ebc4bb977e07822dbd4796e40eefe3d25e8c1c5f86f33037ec1c5364e66dfe1f098415db6c7fc6f488a93c9b298c52461d3683b
+DIST openjdk-27_beta31.tar.gz 121480809 BLAKE2B d253a741233680314b923a0fe42b8c514185c48ef4460008ebb8faef1688901b1e9c6c9963c8b9a9d057ad53dc2a99baccadd4965a7dba19c3e6936d2c704dcd SHA512 52fc20cee140dc0229df56e5495154dccdc28800a816e7572f150d9958b93e59c8c50cb1162dc7e36ee1964f8d28f73d17680b9c9df10cf3d8ecff229763179e
+DIST openjdk-28_alpha7.tar.gz 121816659 BLAKE2B 3d0d214c7bee8a8ab89f46494d1da036164c9173b91439fdb9083b61152a6ad9624208b79a0a3884a6151718b5b40b86125a13e39e652e80500f09a58c571eb5 SHA512 71f55e86fa069a663f6586125de01518b67c208b60d13ddae1849ec31c83865f213396eabdcc6f8e807ca301b7ee3ed6e3251dafeb3a9d36982c2b5da8d34d02
DIST openjdk-8.492_p09.tar.gz 93934156 BLAKE2B 7b0236327d911139b4d8995c3807f115c8ea2ce2807c7026413d6eebe4bf86575868ceb727af754ca19bfaa84e7d9c82453ca2a0c7c80d367ceedf393d02d94d SHA512 9abde3b53581e41cc47d9a70a768be02aeb4942e03e9a3797f034188f4d99cdc7475305583ec72176011ac8b02a9a2e879df15977ae6a0c8b691409acb8a4e51
+DIST openjdk-8.502_p07.tar.gz 93987454 BLAKE2B 4118c050e590f7058ec47e4988eee66708be04c652dfa38b17273e83ff176c893e635202eef1db690f8a6ed322fe63000258e4c69006901a766098c1203990ad SHA512 fdcb0cc19cba5bb8cabfc3c6439ae5d1ce33d5fa500b1fe2a7b8152bedaacdda11e58fd2eb0357a815dfc1a44423023a9149409c0cdaac931fe0958e91bca343
DIST openjdk-bootstrap-11.0.13_p8-ppc64.tar.xz 108215404 BLAKE2B 5e6c0b905b34b437137922b73a9724da96b8832186fea945f8c73d941db822ca1cc5718f3ecb4607ed98d1f8241c9f365b54caaf978863e8b84680a94f067b5d SHA512 732e2220219d42be10589fcaf2420da87ebc8564b4afc6bd02f61f31cdca9c31b339366e34d374fb814499b92f8aa796435a18f28e10c8cb00d9a0f5953bb60e
DIST openjdk-bootstrap-11.0.13_p8-x86.tar.xz 105420236 BLAKE2B d3137ad497937a9a04dedf38776f3ac45bf3b115d275991fd8582b72ade48390b6aa8ad89e0b4d34fa6a787a3c413dab20b32ef347dc8733544e810150c55d29 SHA512 f71a7ef8fbf19b0595dd7d4ebe52bbe1c95b8c17f34d092472c5f5ce8caf52a053f22db8587f1649f9a96ad01c0c632be343342812f5a8cc4ff843b33b8d9b0f
DIST openjdk-bootstrap-11.0.14_p9-riscv.tar.xz 104601676 BLAKE2B 5f976e8a626a829fae70ad6c007f10bfeff79e29c85d6c75fb2f5ff8984fd2a2bd44ee6e07958dbbdaaed761c6839d375e1b5ba6cffc63b02ad9e2c9178310db SHA512 580dec81626553fe3e7afd0f6385a733ba80a0502cf0f9e8bdc973048887290c9ab6171267d61d8838c4ece4de58c9ca8b78540bd52b1757495a27175057ec64
diff --git a/dev-java/openjdk/openjdk-11.0.32_p9.ebuild b/dev-java/openjdk/openjdk-11.0.32_p9.ebuild
new file mode 100644
index 000000000000..a51dfcd87843
--- /dev/null
+++ b/dev-java/openjdk/openjdk-11.0.32_p9.ebuild
@@ -0,0 +1,321 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
+
+# don't change versioning scheme
+# to find correct _p number, look at
+# https://github.com/openjdk/jdk${SLOT}u/tags
+# you will see, for example, jdk-17.0.4.1-ga and jdk-17.0.4.1+1, both point
+# to exact same commit sha. we should always use the full version.
+# -ga tag is just for humans to easily identify General Availability release tag.
+# we need -ga tag to fetch tarball and unpack it, but exact number everywhere else to
+# set build version properly
+MY_PV="${PV%_p*}-ga"
+
+# variable name format: <UPPERCASE_KEYWORD>_XPAK
+PPC64_XPAK="11.0.13_p8" # big-endian bootstrap tarball
+RISCV_XPAK="11.0.14_p9" # lp64d bootstrap tarball
+X86_XPAK="11.0.13_p8"
+
+# Usage: bootstrap_uri <keyword> <version> [extracond]
+# Example: $(bootstrap_uri ppc64 17.0.1_p12 big-endian)
+# Output: ppc64? ( big-endian? ( https://...17.0.1_p12-ppc64.tar.xz ) )
+bootstrap_uri() {
+ local baseuri="https://distfiles.gentoo.org/pub/dev/arthurzam@gentoo.org/dev-java/${PN}/${PN}-bootstrap"
+ local suff="tar.xz"
+ local kw="${1:?${FUNCNAME[0]}: keyword not specified}"
+ local ver="${2:?${FUNCNAME[0]}: version not specified}"
+ local cond="${3-}"
+
+ # here be dragons
+ echo "${kw}? ( ${cond:+${cond}? (} ${baseuri}-${ver}-${kw}.${suff} ${cond:+) })"
+}
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.org"
+SRC_URI="
+ https://github.com/${PN}/jdk11u/archive/jdk-${MY_PV}.tar.gz
+ -> ${P}.tar.gz
+ !system-bootstrap? (
+ $(bootstrap_uri ppc64 ${PPC64_XPAK} big-endian)
+ $(bootstrap_uri riscv ${RISCV_XPAK})
+ $(bootstrap_uri x86 ${X86_XPAK})
+ )
+ riscv? ( https://dev.gentoo.org/~arthurzam/distfiles/dev-java/openjdk/openjdk-11.0.18-riscv.patch.xz )
+"
+S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+IUSE="alsa big-endian cups debug doc examples headless-awt javafx +jbootstrap selinux source system-bootstrap systemtap"
+
+REQUIRED_USE="
+ javafx? ( alsa !headless-awt )
+ !system-bootstrap? ( jbootstrap )
+"
+
+COMMON_DEPEND="
+ media-libs/freetype:2=
+ media-libs/giflib:0/7
+ media-libs/harfbuzz:=
+ media-libs/libpng:0=
+ media-libs/lcms:2=
+ virtual/zlib:=
+ media-libs/libjpeg-turbo:0=
+ systemtap? ( dev-debug/systemtap )
+"
+
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=sys-apps/baselayout-java-0.1.0-r1
+ !headless-awt? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ )
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups )
+ selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ app-arch/zip
+ media-libs/alsa-lib
+ net-print/cups
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ javafx? ( dev-java/openjfx:${SLOT}= )
+ system-bootstrap? (
+ || (
+ dev-java/openjdk-bin:${SLOT}[gentoo-vm(+)]
+ dev-java/openjdk:${SLOT}[gentoo-vm(+)]
+ )
+ )
+"
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 2GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+ local M
+ M=2048
+ M=$(( $(usex jbootstrap 2 1) * $M ))
+ M=$(( $(usex debug 3 1) * $M ))
+ M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+ openjdk_check_requirements
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
+ fi
+}
+
+pkg_setup() {
+ openjdk_check_requirements
+ java-vm-2_pkg_setup
+
+ [[ ${MERGE_TYPE} == "binary" ]] && return
+
+ JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+ JAVA_PKG_WANT_SOURCE="${SLOT}"
+ JAVA_PKG_WANT_TARGET="${SLOT}"
+
+ if use system-bootstrap; then
+ for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+ if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
+ java-pkg-2_pkg_setup
+ return
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ use riscv && eapply "${WORKDIR}"/openjdk-11.0.18-riscv.patch
+ default
+ chmod +x configure || die
+}
+
+src_configure() {
+ local myconf=()
+
+ if ! use system-bootstrap; then
+ local xpakvar="${ARCH^^}_XPAK"
+ export JDK_HOME="${WORKDIR}/openjdk-bootstrap-${!xpakvar}"
+ fi
+
+ # Work around stack alignment issue, bug #647954.
+ use x86 && append-flags -mincoming-stack-boundary=2
+
+ # bug 906987; append-cppflags doesnt work
+ use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
+
+ # Strip some flags users may set, but should not. #818502
+ filter-flags -fexceptions
+
+ # Strip lto related flags, we rely on --with-jvm-features=link-time-opt
+ # See bug #833097 and bug #833098.
+ tc-is-lto && myconf+=( --with-jvm-features=link-time-opt )
+ filter-lto
+ filter-flags -fdevirtualize-at-ltrans
+
+ # bug #945282
+ append-cflags -std=gnu17
+
+ # Enabling full docs appears to break doc building. If not
+ # explicitly disabled, the flag will get auto-enabled if pandoc and
+ # graphviz are detected. pandoc has loads of dependencies anyway.
+
+ myconf+=(
+ --disable-ccache
+ --disable-precompiled-headers
+ --enable-full-docs=no
+ --with-boot-jdk="${JDK_HOME}"
+ --with-extra-cflags="${CFLAGS}"
+ --with-extra-cxxflags="${CXXFLAGS}"
+ --with-extra-ldflags="${LDFLAGS}"
+ --with-freetype="${XPAK_BOOTSTRAP:-system}"
+ --with-giflib="${XPAK_BOOTSTRAP:-system}"
+ --with-harfbuzz="${XPAK_BOOTSTRAP:-system}"
+ --with-lcms="${XPAK_BOOTSTRAP:-system}"
+ --with-libjpeg="${XPAK_BOOTSTRAP:-system}"
+ --with-libpng="${XPAK_BOOTSTRAP:-system}"
+ --with-native-debug-symbols=$(usex debug internal none)
+ --with-vendor-name="Gentoo"
+ --with-vendor-url="https://gentoo.org"
+ --with-vendor-bug-url="https://bugs.gentoo.org"
+ --with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
+ --with-vendor-version-string="${PVR}"
+ --with-version-pre=""
+ --with-version-string="${PV%_p*}"
+ --with-version-build="${PV#*_p}"
+ --with-zlib="${XPAK_BOOTSTRAP:-system}"
+ --enable-dtrace=$(usex systemtap yes no)
+ --enable-headless-only=$(usex headless-awt yes no)
+ $(tc-is-clang && echo "--with-toolchain-type=clang")
+ )
+ ! use riscv && myconf+=( --with-jvm-features=shenandoahgc )
+
+ if use javafx; then
+ # this is not useful for users, just for upstream developers
+ # build system compares mesa version in md file
+ # https://bugs.gentoo.org/822612
+ export LEGAL_EXCLUDES=mesa3d.md
+
+ local zip="${EPREFIX}/usr/$(get_libdir)/openjfx-${SLOT}/javafx-exports.zip"
+ if [[ -r ${zip} ]]; then
+ myconf+=( --with-import-modules="${zip}" )
+ else
+ die "${zip} not found or not readable"
+ fi
+ fi
+
+ # Workaround for bug #938302
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ myconf+=( DTRACE="${BROOT}"/usr/bin/stap-dtrace )
+ fi
+
+ if use !system-bootstrap ; then
+ addpredict /dev/random
+ addpredict /proc/self/coredump_filter
+ fi
+
+ (
+ unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
+ CFLAGS= CXXFLAGS= LDFLAGS= \
+ CONFIG_SITE=/dev/null \
+ econf "${myconf[@]}"
+ )
+}
+
+src_compile() {
+ # Too brittle - gets confused by e.g. -Oline
+ export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset GNUMAKEFLAGS MAKEFLAGS
+
+ local myemakeargs=(
+ JOBS=$(makeopts_jobs)
+ LOG=debug
+ CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
+ NICE= # Use PORTAGE_NICENESS, don't adjust further down
+ $(usex doc docs '')
+ $(usex jbootstrap bootcycle-images product-images)
+ )
+ emake "${myemakeargs[@]}" -j1
+}
+
+src_install() {
+ local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+ local ddest="${ED}/${dest#/}"
+
+ # https://bugs.gentoo.org/922741
+ docompress "${dest}/man"
+
+ cd "${S}"/build/*-release/images/jdk || die
+
+ # Create files used as storage for system preferences.
+ mkdir .systemPrefs || die
+ touch .systemPrefs/.system.lock || die
+ touch .systemPrefs/.systemRootModFile || die
+
+ # Oracle and IcedTea have libjsoundalsa.so depending on
+ # libasound.so.2 but OpenJDK only has libjsound.so. Weird.
+ if ! use alsa ; then
+ rm -v lib/libjsound.* || die
+ fi
+
+ if ! use examples ; then
+ rm -vr demo/ || die
+ fi
+
+ if ! use source ; then
+ rm -v lib/src.zip || die
+ fi
+
+ rm -v lib/security/cacerts || die
+
+ dodir "${dest}"
+ cp -pPR * "${ddest}" || die
+
+ dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+ # must be done before running itself
+ java-vm_set-pax-markings "${ddest}"
+
+ einfo "Creating the Class Data Sharing archives and disabling usage tracking"
+ "${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking || die
+
+ java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+ java-vm_revdep-mask
+ java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+ if use doc ; then
+ docinto html
+ dodoc -r "${S}"/build/*-release/images/docs/*
+ fi
+}
+
+pkg_postinst() {
+ java-vm-2_pkg_postinst
+}
diff --git a/dev-java/openjdk/openjdk-17.0.20_p8.ebuild b/dev-java/openjdk/openjdk-17.0.20_p8.ebuild
new file mode 100644
index 000000000000..582cb7aa53c0
--- /dev/null
+++ b/dev-java/openjdk/openjdk-17.0.20_p8.ebuild
@@ -0,0 +1,331 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs dot-a flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
+
+# variable name format: <UPPERCASE_KEYWORD>_XPAK
+ARM64_XPAK="17.0.2_p8" # musl bootstrap install
+PPC64_XPAK="17.0.1_p12" # big-endian bootstrap tarball
+RISCV_XPAK="17.0.3_p7"
+X86_XPAK="17.0.1_p12"
+
+# Usage: bootstrap_uri <keyword> <version> [extracond]
+# Example: $(bootstrap_uri ppc64 17.0.1_p12 big-endian)
+# Output: ppc64? ( big-endian? ( https://...17.0.1_p12-ppc64.tar.xz ) )
+bootstrap_uri() {
+ local baseuri="https://distfiles.gentoo.org/pub/dev/arthurzam@gentoo.org/dev-java/${PN}/${PN}-bootstrap"
+ local suff="tar.xz"
+ local kw="${1:?${FUNCNAME[0]}: keyword not specified}"
+ local ver="${2:?${FUNCNAME[0]}: version not specified}"
+ local cond="${3-}"
+ [[ ${cond} == elibc_musl* ]] && local musl=yes
+
+ # here be dragons
+ echo "${kw}? ( ${cond:+${cond}? (} ${baseuri}-${ver}-${kw}${musl:+-musl}.${suff} ${cond:+) })"
+}
+
+# don't change versioning scheme
+# to find correct _p number, look at
+# https://github.com/openjdk/jdk${SLOT}u/tags
+# you will see, for example, jdk-17.0.4.1-ga and jdk-17.0.4.1+1, both point
+# to exact same commit sha. we should always use the full version.
+# -ga tag is just for humans to easily identify General Availability release tag.
+MY_PV="${PV%_p*}-ga"
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.org"
+SRC_URI="
+ https://github.com/${PN}/jdk17u/archive/jdk-${MY_PV}.tar.gz
+ -> ${P}.tar.gz
+ !system-bootstrap? (
+ $(bootstrap_uri arm64 ${ARM64_XPAK} elibc_musl)
+ $(bootstrap_uri ppc64 ${PPC64_XPAK} big-endian)
+ $(bootstrap_uri x86 ${X86_XPAK})
+ $(bootstrap_uri riscv ${RISCV_XPAK})
+ )
+"
+S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV//+/-}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+IUSE="alsa big-endian cups debug doc examples headless-awt +jbootstrap selinux source static-libs system-bootstrap systemtap"
+
+REQUIRED_USE="
+ !system-bootstrap? ( jbootstrap )
+"
+
+COMMON_DEPEND="
+ media-libs/freetype:2=
+ media-libs/giflib:0/7
+ media-libs/harfbuzz:=
+ media-libs/libpng:0=
+ media-libs/lcms:2=
+ virtual/zlib:=
+ media-libs/libjpeg-turbo:0=
+ systemtap? ( dev-debug/systemtap )
+"
+
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=sys-apps/baselayout-java-0.1.0-r1
+ !headless-awt? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ )
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups )
+ selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ app-arch/zip
+ media-libs/alsa-lib
+ net-print/cups
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ system-bootstrap? (
+ || (
+ dev-java/openjdk-bin:${SLOT}
+ dev-java/openjdk:${SLOT}
+ )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/openjdk-17.0.16_p8-lto-memory.patch"
+)
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 2GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+ local M
+ M=2048
+ M=$(( $(usex jbootstrap 2 1) * $M ))
+ M=$(( $(usex debug 3 1) * $M ))
+ M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+ openjdk_check_requirements
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
+ fi
+}
+
+pkg_setup() {
+ openjdk_check_requirements
+ java-vm-2_pkg_setup
+
+ [[ ${MERGE_TYPE} == "binary" ]] && return
+
+ JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+ JAVA_PKG_WANT_SOURCE="${SLOT}"
+ JAVA_PKG_WANT_TARGET="${SLOT}"
+
+ # The nastiness below is necessary while the gentoo-vm USE flag is
+ # masked. First we call java-pkg-2_pkg_setup if it looks like the
+ # flag was unmasked against one of the possible build VMs. If not,
+ # we try finding one of them in their expected locations. This would
+ # have been slightly less messy if openjdk-bin had been installed to
+ # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
+ # file but disable it so that it would not normally be selectable.
+
+ local vm
+ for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+ if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
+ java-pkg-2_pkg_setup
+ return
+ fi
+ done
+}
+
+src_prepare() {
+ default
+ chmod +x configure || die
+}
+
+src_configure() {
+ local myconf=()
+
+ if has_version dev-java/openjdk:${SLOT}; then
+ export JDK_HOME=${BROOT}/usr/$(get_libdir)/openjdk-${SLOT}
+ elif use !system-bootstrap ; then
+ local xpakvar="${ARCH^^}_XPAK"
+ export JDK_HOME="${WORKDIR}/openjdk-bootstrap-${!xpakvar}"
+ else
+ JDK_HOME=$(best_version -b dev-java/openjdk-bin:${SLOT})
+ [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+ JDK_HOME=${JDK_HOME#*/}
+ JDK_HOME=${BROOT}/opt/${JDK_HOME%-r*}
+ export JDK_HOME
+ fi
+
+ # Work around stack alignment issue, bug #647954. in case we ever have x86
+ use x86 && append-flags -mincoming-stack-boundary=2
+
+ # bug 906987; append-cppflags doesnt work
+ use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
+
+ # Strip some flags users may set, but should not. #818502
+ filter-flags -fexceptions
+
+ # Strip lto related flags, we rely on --with-jvm-features=link-time-opt
+ # See bug #833097 and bug #833098.
+ tc-is-lto && myconf+=( --with-jvm-features=link-time-opt )
+ filter-lto
+ filter-flags -fdevirtualize-at-ltrans
+
+ if use static-libs ; then
+ lto-guarantee-fat
+ fi
+
+ # Enabling full docs appears to break doc building. If not
+ # explicitly disabled, the flag will get auto-enabled if pandoc and
+ # graphviz are detected. pandoc has loads of dependencies anyway.
+
+ myconf+=(
+ --disable-ccache
+ --disable-precompiled-headers
+ --disable-warnings-as-errors
+ --enable-full-docs=no
+ --with-boot-jdk="${JDK_HOME}"
+ --with-extra-cflags="${CFLAGS}"
+ --with-extra-cxxflags="${CXXFLAGS}"
+ --with-extra-ldflags="${LDFLAGS}"
+ --with-freetype="${XPAK_BOOTSTRAP:-system}"
+ --with-giflib="${XPAK_BOOTSTRAP:-system}"
+ --with-harfbuzz="${XPAK_BOOTSTRAP:-system}"
+ --with-lcms="${XPAK_BOOTSTRAP:-system}"
+ --with-libjpeg="${XPAK_BOOTSTRAP:-system}"
+ --with-libpng="${XPAK_BOOTSTRAP:-system}"
+ --with-native-debug-symbols=$(usex debug internal none)
+ --with-vendor-name="Gentoo"
+ --with-vendor-url="https://gentoo.org"
+ --with-vendor-bug-url="https://bugs.gentoo.org"
+ --with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
+ --with-vendor-version-string="${PVR}"
+ --with-version-pre=""
+ --with-version-string="${PV%_p*}"
+ --with-version-build="${PV#*_p}"
+ --with-zlib="${XPAK_BOOTSTRAP:-system}"
+ --enable-jvm-feature-dtrace=$(usex systemtap yes no)
+ --enable-headless-only=$(usex headless-awt yes no)
+ $(tc-is-clang && echo "--with-toolchain-type=clang")
+ )
+
+ # Workaround for bug #938302
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ myconf+=( DTRACE="${BROOT}"/usr/bin/stap-dtrace )
+ fi
+
+ if use !system-bootstrap ; then
+ addpredict /dev/random
+ addpredict /proc/self/coredump_filter
+ fi
+
+ (
+ unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
+ CFLAGS= CXXFLAGS= LDFLAGS= \
+ CONFIG_SITE=/dev/null \
+ econf "${myconf[@]}"
+ )
+}
+
+src_compile() {
+ # Too brittle - gets confused by e.g. -Oline
+ export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset GNUMAKEFLAGS MAKEFLAGS
+
+ local myemakeargs=(
+ JOBS=$(makeopts_jobs)
+ LOG=debug
+ CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
+ NICE= # Use PORTAGE_NICENESS, don't adjust further down
+ $(usex doc docs '')
+ $(usex jbootstrap bootcycle-images product-images)
+ $(usev static-libs static-libs-image)
+ )
+ emake "${myemakeargs[@]}" -j1
+}
+
+src_install() {
+ local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+ local ddest="${ED}/${dest#/}"
+
+ # https://bugs.gentoo.org/922741
+ docompress "${dest}/man"
+
+ cd "${S}"/build/*-release/images/jdk || die
+
+ # Create files used as storage for system preferences.
+ mkdir .systemPrefs || die
+ touch .systemPrefs/.system.lock || die
+ touch .systemPrefs/.systemRootModFile || die
+
+ # Oracle and IcedTea have libjsoundalsa.so depending on
+ # libasound.so.2 but OpenJDK only has libjsound.so. Weird.
+ if ! use alsa ; then
+ rm -v lib/libjsound.* || die
+ fi
+
+ if ! use examples ; then
+ rm -vr demo/ || die
+ fi
+
+ if ! use source ; then
+ rm -v lib/src.zip || die
+ fi
+
+ rm -v lib/security/cacerts || die
+
+ dodir "${dest}"
+ cp -pPR * "${ddest}" || die
+
+ dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+ # must be done before running itself
+ java-vm_set-pax-markings "${ddest}"
+
+ einfo "Creating the Class Data Sharing archives and disabling usage tracking"
+ "${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking || die
+
+ java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+ java-vm_revdep-mask
+ java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+ if use doc ; then
+ docinto html
+ dodoc -r "${S}"/build/*-release/images/docs/*
+ fi
+
+ if use static-libs ; then
+ cd "${S}"/build/*-release/images/static-libs || die
+ cp -pPR * "${ddest}" || die
+ strip-lto-bytecode "${ddest}" || die
+ fi
+}
+
+pkg_postinst() {
+ java-vm-2_pkg_postinst
+}
diff --git a/dev-java/openjdk/openjdk-21.0.12_p8.ebuild b/dev-java/openjdk/openjdk-21.0.12_p8.ebuild
new file mode 100644
index 000000000000..a43aa0c66b74
--- /dev/null
+++ b/dev-java/openjdk/openjdk-21.0.12_p8.ebuild
@@ -0,0 +1,330 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs dot-a flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
+
+# variable name format: <UPPERCASE_KEYWORD>_XPAK
+PPC64_XPAK="21.0.0_p35" # big-endian bootstrap tarball
+X86_XPAK="21.0.0_p35"
+
+# Usage: bootstrap_uri <keyword> <version> [extracond]
+# Example: $(bootstrap_uri ppc64 17.0.1_p12 big-endian)
+# Output: ppc64? ( big-endian? ( https://...17.0.1_p12-ppc64.tar.xz ) )
+bootstrap_uri() {
+ local baseuri="https://distfiles.gentoo.org/pub/dev/arthurzam@gentoo.org/dev-java/${PN}/${PN}-bootstrap"
+ local suff="tar.xz"
+ local kw="${1:?${FUNCNAME[0]}: keyword not specified}"
+ local ver="${2:?${FUNCNAME[0]}: version not specified}"
+ local cond="${3-}"
+ [[ ${cond} == elibc_musl* ]] && local musl=yes
+
+ # here be dragons
+ echo "${kw}? ( ${cond:+${cond}? (} ${baseuri}-${ver}-${kw}${musl:+-musl}.${suff} ${cond:+) })"
+}
+
+# don't change versioning scheme
+# to find correct _p number, look at
+# https://github.com/openjdk/jdk${SLOT}u/tags
+# you will see, for example, jdk-17.0.4.1-ga and jdk-17.0.4.1+1, both point
+# to exact same commit sha. we should always use the full version.
+# -ga tag is just for humans to easily identify General Availability release tag.
+MY_PV="${PV%_p*}-ga"
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.org"
+SRC_URI="
+ https://github.com/${PN}/jdk21u/archive/jdk-${MY_PV}.tar.gz
+ -> ${P}.tar.gz
+ !system-bootstrap? (
+ $(bootstrap_uri ppc64 ${PPC64_XPAK} big-endian)
+ $(bootstrap_uri x86 ${X86_XPAK})
+ )
+"
+S="${WORKDIR}/jdk${SLOT}u-jdk-${MY_PV//+/-}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+IUSE="alsa big-endian cups debug doc examples headless-awt +jbootstrap selinux source static-libs +system-bootstrap systemtap"
+
+REQUIRED_USE="
+ !system-bootstrap? ( jbootstrap )
+ !system-bootstrap? ( || ( ppc64 x86 ) )
+"
+
+COMMON_DEPEND="
+ media-libs/freetype:2=
+ media-libs/giflib:0/7
+ media-libs/harfbuzz:=
+ media-libs/libpng:0=
+ media-libs/lcms:2=
+ virtual/zlib:=
+ media-libs/libjpeg-turbo:0=
+ systemtap? ( dev-debug/systemtap )
+"
+
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=sys-apps/baselayout-java-0.1.0-r1
+ !headless-awt? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ )
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups )
+ selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ app-arch/zip
+ media-libs/alsa-lib
+ net-print/cups
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ system-bootstrap? (
+ || (
+ dev-java/openjdk-bin:${SLOT}
+ dev-java/openjdk:${SLOT}
+ )
+ )
+"
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 2GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+ local M
+ M=2048
+ M=$(( $(usex jbootstrap 2 1) * $M ))
+ M=$(( $(usex debug 3 1) * $M ))
+ M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+ openjdk_check_requirements
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
+ fi
+}
+
+pkg_setup() {
+ openjdk_check_requirements
+ java-vm-2_pkg_setup
+
+ [[ ${MERGE_TYPE} == "binary" ]] && return
+
+ JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+ JAVA_PKG_WANT_SOURCE="${SLOT}"
+ JAVA_PKG_WANT_TARGET="${SLOT}"
+
+ # The nastiness below is necessary while the gentoo-vm USE flag is
+ # masked. First we call java-pkg-2_pkg_setup if it looks like the
+ # flag was unmasked against one of the possible build VMs. If not,
+ # we try finding one of them in their expected locations. This would
+ # have been slightly less messy if openjdk-bin had been installed to
+ # /opt/${PN}-${SLOT} or if there was a mechanism to install a VM env
+ # file but disable it so that it would not normally be selectable.
+
+ local vm
+ for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+ if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
+ java-pkg-2_pkg_setup
+ return
+ fi
+ done
+}
+
+src_prepare() {
+ default
+ chmod +x configure || die
+}
+
+src_configure() {
+ local myconf=()
+
+ if has_version dev-java/openjdk:${SLOT}; then
+ export JDK_HOME=${BROOT}/usr/$(get_libdir)/openjdk-${SLOT}
+ elif use !system-bootstrap ; then
+ local xpakvar="${ARCH^^}_XPAK"
+ export JDK_HOME="${WORKDIR}/openjdk-bootstrap-${!xpakvar}"
+ else
+ JDK_HOME=$(best_version -b dev-java/openjdk-bin:${SLOT})
+ [[ -n ${JDK_HOME} ]] || die "Build VM not found!"
+ JDK_HOME=${JDK_HOME#*/}
+ JDK_HOME=${BROOT}/opt/${JDK_HOME%-r*}
+ export JDK_HOME
+ fi
+
+ # Work around stack alignment issue, bug #647954. in case we ever have x86
+ use x86 && append-flags -mincoming-stack-boundary=2
+
+ # bug 906987; append-cppflags doesnt work
+ use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
+
+ # Strip some flags users may set, but should not. #818502
+ filter-flags -fexceptions
+
+ # Strip lto related flags, we rely on --with-jvm-features=link-time-opt
+ # See bug #833097 and bug #833098.
+ #
+ # .. but because of -Werror=odr (bug #916735), we disable it
+ # entirely for now.
+ #tc-is-lto && myconf+=( --with-jvm-features=link-time-opt )
+ filter-lto
+ filter-flags -fdevirtualize-at-ltrans
+
+ if use static-libs ; then
+ lto-guarantee-fat
+ fi
+
+ # Enabling full docs appears to break doc building. If not
+ # explicitly disabled, the flag will get auto-enabled if pandoc and
+ # graphviz are detected. pandoc has loads of dependencies anyway.
+
+ myconf+=(
+ --disable-ccache
+ --disable-precompiled-headers
+ --disable-warnings-as-errors
+ --enable-full-docs=no
+ --with-boot-jdk="${JDK_HOME}"
+ --with-extra-cflags="${CFLAGS}"
+ --with-extra-cxxflags="${CXXFLAGS}"
+ --with-extra-ldflags="${LDFLAGS}"
+ --with-freetype="${XPAK_BOOTSTRAP:-system}"
+ --with-giflib="${XPAK_BOOTSTRAP:-system}"
+ --with-harfbuzz="${XPAK_BOOTSTRAP:-system}"
+ --with-lcms="${XPAK_BOOTSTRAP:-system}"
+ --with-libjpeg="${XPAK_BOOTSTRAP:-system}"
+ --with-libpng="${XPAK_BOOTSTRAP:-system}"
+ --with-stdc++lib=dynamic
+ --with-native-debug-symbols=$(usex debug internal none)
+ --with-vendor-name="Gentoo"
+ --with-vendor-url="https://gentoo.org"
+ --with-vendor-bug-url="https://bugs.gentoo.org"
+ --with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
+ --with-vendor-version-string="${PVR}"
+ --with-version-pre=""
+ --with-version-string="${PV%_p*}"
+ --with-version-build="${PV#*_p}"
+ --with-zlib="${XPAK_BOOTSTRAP:-system}"
+ --enable-jvm-feature-dtrace=$(usex systemtap yes no)
+ --enable-headless-only=$(usex headless-awt yes no)
+ $(tc-is-clang && echo "--with-toolchain-type=clang")
+ )
+
+ use riscv && myconf+=( --with-boot-jdk-jvmargs="-Djdk.lang.Process.launchMechanism=vfork" )
+
+ # Workaround for bug #938302
+ if use systemtap && has_version "dev-debug/systemtap[-dtrace-symlink(+)]" ; then
+ myconf+=( DTRACE="${BROOT}"/usr/bin/stap-dtrace )
+ fi
+
+ if use !system-bootstrap ; then
+ addpredict /dev/random
+ addpredict /proc/self/coredump_filter
+ fi
+
+ (
+ unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC XARGS
+ CFLAGS= CXXFLAGS= LDFLAGS= \
+ CONFIG_SITE=/dev/null \
+ econf "${myconf[@]}"
+ )
+}
+
+src_compile() {
+ # Too brittle - gets confused by e.g. -Oline
+ export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset GNUMAKEFLAGS MAKEFLAGS
+
+ local myemakeargs=(
+ JOBS=$(makeopts_jobs)
+ LOG=debug
+ CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
+ NICE= # Use PORTAGE_NICENESS, don't adjust further down
+ $(usex doc docs '')
+ $(usex jbootstrap bootcycle-images product-images)
+ $(usev static-libs static-libs-image)
+ )
+ emake "${myemakeargs[@]}" -j1
+}
+
+src_install() {
+ local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+ local ddest="${ED}/${dest#/}"
+
+ # https://bugs.gentoo.org/922741
+ docompress "${dest}/man"
+
+ cd "${S}"/build/*-release/images/jdk || die
+
+ # Create files used as storage for system preferences.
+ mkdir .systemPrefs || die
+ touch .systemPrefs/.system.lock || die
+ touch .systemPrefs/.systemRootModFile || die
+
+ # Oracle and IcedTea have libjsoundalsa.so depending on
+ # libasound.so.2 but OpenJDK only has libjsound.so. Weird.
+ if ! use alsa ; then
+ rm -v lib/libjsound.* || die
+ fi
+
+ if ! use examples ; then
+ rm -vr demo/ || die
+ fi
+
+ if ! use source ; then
+ rm -v lib/src.zip || die
+ fi
+
+ rm -v lib/security/cacerts || die
+
+ dodir "${dest}"
+ cp -pPR * "${ddest}" || die
+
+ dosym -r /etc/ssl/certs/java/cacerts "${dest}"/lib/security/cacerts
+
+ # must be done before running itself
+ java-vm_set-pax-markings "${ddest}"
+
+ einfo "Creating the Class Data Sharing archives and disabling usage tracking"
+ "${ddest}/bin/java" -server -Xshare:dump -Djdk.disableLastUsageTracking || die
+
+ java-vm_install-env "${FILESDIR}"/${PN}.env.sh
+ java-vm_revdep-mask
+ java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+ if use doc ; then
+ docinto html
+ dodoc -r "${S}"/build/*-release/images/docs/*
+ fi
+
+ if use static-libs ; then
+ cd "${S}"/build/*-release/images/static-libs || die
+ cp -pPR * "${ddest}" || die
+ strip-lto-bytecode "${ddest}" || die
+ fi
+}
+
+pkg_postinst() {
+ java-vm-2_pkg_postinst
+}
diff --git a/dev-java/openjdk/openjdk-25.0.4_beta4.ebuild b/dev-java/openjdk/openjdk-25.0.4_p7.ebuild
index b15d5f744b35..580433e4d6a5 100644
--- a/dev-java/openjdk/openjdk-25.0.4_beta4.ebuild
+++ b/dev-java/openjdk/openjdk-25.0.4_p7.ebuild
@@ -3,9 +3,6 @@
EAPI=8
-# Avoid circular dependency
-JAVA_DISABLE_DEPEND_ON_JAVA_DEP_CHECK="true"
-
inherit check-reqs dot-a flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
# variable name format: <UPPERCASE_KEYWORD>_XPAK
diff --git a/dev-java/openjdk/openjdk-27_beta25.ebuild b/dev-java/openjdk/openjdk-27_beta31.ebuild
index f54182ad880d..d41765820cc8 100644
--- a/dev-java/openjdk/openjdk-27_beta25.ebuild
+++ b/dev-java/openjdk/openjdk-27_beta31.ebuild
@@ -3,9 +3,6 @@
EAPI=8
-# Avoid circular dependency
-JAVA_DISABLE_DEPEND_ON_JAVA_DEP_CHECK="true"
-
inherit check-reqs dot-a flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
# variable name format: <UPPERCASE_KEYWORD>_XPAK
diff --git a/dev-java/openjdk/openjdk-28_alpha1.ebuild b/dev-java/openjdk/openjdk-28_alpha7.ebuild
index d256e90fc4dd..8f54f142d19a 100644
--- a/dev-java/openjdk/openjdk-28_alpha1.ebuild
+++ b/dev-java/openjdk/openjdk-28_alpha7.ebuild
@@ -3,9 +3,6 @@
EAPI=8
-# Avoid circular dependency
-JAVA_DISABLE_DEPEND_ON_JAVA_DEP_CHECK="true"
-
inherit check-reqs dot-a flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
# variable name format: <UPPERCASE_KEYWORD>_XPAK
diff --git a/dev-java/openjdk/openjdk-8.502_p07.ebuild b/dev-java/openjdk/openjdk-8.502_p07.ebuild
new file mode 100644
index 000000000000..2fddd6f251df
--- /dev/null
+++ b/dev-java/openjdk/openjdk-8.502_p07.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit check-reqs flag-o-matic java-pkg-2 java-vm-2 multiprocessing toolchain-funcs
+
+# don't change versioning scheme
+# to find correct _p number, look at
+# https://github.com/openjdk/jdk${SLOT}u/tags
+# you will see, for example, jdk-17.0.4.1-ga and jdk-17.0.4.1+1, both point
+# to exact same commit sha. we should always use the full version.
+# -ga tag is just for humans to easily identify General Availability release tag.
+# we need -ga tag to fetch tarball and unpack it, but exact number everywhere else to
+# set build version properly
+MY_PV="$(ver_rs 1 'u' 2 '-' ${PV%_p*}-ga)"
+
+# variable name format: <UPPERCASE_KEYWORD>_XPAK
+X86_XPAK="8.402_p06"
+PPC64_XPAK="8.402_p06"
+
+# Usage: bootstrap_uri <keyword> <version> [extracond]
+# Example: $(bootstrap_uri x86 8.402_p06)
+# Output: ppc64? ( big-endian? ( https://...8.402_p06-x86.tar.xz ) )
+bootstrap_uri() {
+ local baseuri="https://distfiles.gentoo.org/pub/dev/arthurzam@gentoo.org/dev-java/${PN}/${PN}-bootstrap"
+ local suff="tar.xz"
+ local kw="${1:?${FUNCNAME[0]}: keyword not specified}"
+ local ver="${2:?${FUNCNAME[0]}: version not specified}"
+ local cond="${3-}"
+
+ # here be dragons
+ echo "${kw}? ( ${cond:+${cond}? (} ${baseuri}-${ver}-${kw}.${suff} ${cond:+) })"
+}
+
+DESCRIPTION="Open source implementation of the Java programming language"
+HOMEPAGE="https://openjdk.org"
+SRC_URI="
+ https://github.com/openjdk/jdk8u/archive/jdk${MY_PV}.tar.gz
+ -> ${P}.tar.gz
+ !system-bootstrap? (
+ $(bootstrap_uri x86 ${X86_XPAK})
+ $(bootstrap_uri ppc64 ${PPC64_XPAK} big-endian)
+ )
+"
+S="${WORKDIR}/jdk${SLOT}u-jdk${MY_PV}"
+
+LICENSE="GPL-2-with-classpath-exception"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="alsa big-endian debug cups doc examples headless-awt +jbootstrap selinux system-bootstrap source"
+
+COMMON_DEPEND="
+ media-libs/freetype:2=
+ media-libs/giflib:0/7
+ virtual/zlib:=
+"
+# Many libs are required to build, but not to run, make is possible to remove
+# by listing conditionally in RDEPEND unconditionally in DEPEND
+RDEPEND="
+ ${COMMON_DEPEND}
+ >=sys-apps/baselayout-java-0.1.0-r1
+ !headless-awt? (
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ )
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups )
+ selinux? ( sec-policy/selinux-java )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ app-arch/zip
+ media-libs/alsa-lib
+ net-print/cups
+ virtual/pkgconfig
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXrender
+ x11-libs/libXt
+ x11-libs/libXtst
+ system-bootstrap? (
+ || (
+ dev-java/openjdk-bin:${SLOT}
+ dev-java/openjdk:${SLOT}
+ )
+ )
+"
+
+BDEPEND="
+ virtual/pkgconfig
+ sys-devel/gcc:*
+"
+
+PATCHES=(
+ "${FILESDIR}/openjdk-8-insantiate-arrayallocator.patch"
+ "${FILESDIR}/openjdk-8.402_p06-0004-Fix-misc.-warnings.patch"
+)
+
+# The space required to build varies wildly depending on USE flags,
+# ranging from 2GB to 16GB. This function is certainly not exact but
+# should be close enough to be useful.
+openjdk_check_requirements() {
+ local M
+ M=2048
+ M=$(( $(usex debug 3 1) * $M ))
+ M=$(( $(usex jbootstrap 2 1) * $M ))
+ M=$(( $(usex doc 320 0) + $(usex source 128 0) + 192 + $M ))
+
+ CHECKREQS_DISK_BUILD=${M}M check-reqs_pkg_${EBUILD_PHASE}
+}
+
+pkg_pretend() {
+ openjdk_check_requirements
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ has ccache ${FEATURES} && die "FEATURES=ccache doesn't work with ${PN}, bug #677876"
+ fi
+}
+
+pkg_setup() {
+ openjdk_check_requirements
+ java-vm-2_pkg_setup
+
+ [[ ${MERGE_TYPE} == "binary" ]] && return
+
+ JAVA_PKG_WANT_BUILD_VM="openjdk-${SLOT} openjdk-bin-${SLOT}"
+ JAVA_PKG_WANT_SOURCE="${SLOT}"
+ JAVA_PKG_WANT_TARGET="${SLOT}"
+
+ if use system-bootstrap; then
+ for vm in ${JAVA_PKG_WANT_BUILD_VM}; do
+ if [[ -d ${BROOT}/usr/lib/jvm/${vm} ]]; then
+ java-pkg-2_pkg_setup
+ return
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ default
+
+ # new warnings in new gcc https://bugs.gentoo.org/685426
+ sed -i '/^WARNINGS_ARE_ERRORS/ s/-Werror/-Wno-error/' \
+ hotspot/make/linux/makefiles/gcc.make || die
+
+ chmod +x configure || die
+
+ # Force gcc because build failed with modern clang, #918655
+ if ! tc-is-gcc; then
+ ewarn "openjdk/8 can be built with gcc only."
+ ewarn "Ignoring CC=$(tc-getCC) and forcing ${CHOST}-gcc"
+ export CC=${CHOST}-gcc
+ export CXX=${CHOST}-g++
+ tc-is-gcc || die "tc-is-gcc failed in spite of CC=${CC}"
+ fi
+}
+
+src_configure() {
+ local myconf=()
+
+ if ! use system-bootstrap; then
+ local xpakvar="${ARCH^^}_XPAK"
+ export JDK_HOME="${WORKDIR}/openjdk-bootstrap-${!xpakvar}"
+ fi
+
+ # general build info found here:
+ # https://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
+
+ # -Wregister use (bug #918655)
+ append-cxxflags -std=gnu++14
+
+ # Work around stack alignment issue, bug #647954.
+ use x86 && append-flags -mincoming-stack-boundary=2
+
+ # Strip some flags users may set, but should not. #818502
+ filter-flags -fexceptions
+
+ # Strip lto related flags, we rely on --with-jvm-features=link-time-opt
+ # in newer JDKs. See bug #833097 and bug #833098.
+ filter-lto
+ filter-flags -fdevirtualize-at-ltrans
+
+ # bug #954888
+ append-cflags -std=gnu17
+
+ tc-export_build_env CC CXX PKG_CONFIG STRIP
+
+ myconf+=(
+ --disable-ccache
+ --disable-precompiled-headers
+ --enable-unlimited-crypto
+ --with-boot-jdk="${JDK_HOME}"
+ --with-extra-cflags="${CFLAGS}"
+ --with-extra-cxxflags="${CXXFLAGS}"
+ --with-extra-ldflags="${LDFLAGS}"
+ --with-freetype=system
+ --with-freetype-lib="$( $(tc-getPKG_CONFIG) --variable=libdir freetype2 )"
+ --with-freetype-include="$( $(tc-getPKG_CONFIG) --variable=includedir freetype2)/freetype2"
+ --with-giflib="${XPAK_BOOTSTRAP:-system}"
+ --with-jtreg=no
+ --with-jobs=1
+ --with-num-cores=1
+ --with-update-version="$(ver_cut 2)"
+ --with-build-number="b$(ver_cut 4)"
+ --with-milestone="fcs" # magic variable that means "release version"
+ --with-vendor-name="Gentoo"
+ --with-vendor-url="https://gentoo.org"
+ --with-vendor-bug-url="https://bugs.gentoo.org"
+ --with-vendor-vm-bug-url="https://bugs.openjdk.java.net"
+ --with-zlib="${XPAK_BOOTSTRAP:-system}"
+ --with-native-debug-symbols=$(usex debug internal none)
+ $(usex headless-awt --disable-headful '')
+ $(tc-is-clang && echo "--with-toolchain-type=clang")
+ )
+
+ (
+ unset _JAVA_OPTIONS JAVA JAVA_TOOL_OPTIONS JAVAC MAKE XARGS
+ CFLAGS= CXXFLAGS= LDFLAGS= \
+ CONFIG_SITE=/dev/null \
+ CONFIG_SHELL="${BROOT}/bin/bash"
+ econf "${myconf[@]}"
+ )
+}
+
+src_compile() {
+ # Too brittle - gets confused by e.g. -Oline
+ export MAKEOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg)"
+ unset GNUMAKEFLAGS MAKEFLAGS
+
+ local myemakeargs=(
+ JOBS=$(makeopts_jobs)
+ LOG=debug
+ CFLAGS_WARNINGS_ARE_ERRORS= # No -Werror
+ NICE= # Use PORTAGE_NICENESS, don't adjust further down
+ $(usex doc docs '')
+ $(usex jbootstrap bootcycle-images images)
+ )
+ emake "${myemakeargs[@]}" -j1
+}
+
+src_install() {
+ local dest="/usr/$(get_libdir)/${PN}-${SLOT}"
+ local ddest="${ED}/${dest#/}"
+
+ # https://bugs.gentoo.org/922741
+ docompress "${dest}/man"
+
+ cd "${S}"/build/*-release/images/j2sdk-image || die
+
+ if ! use alsa; then
+ rm -v jre/lib/$(get_system_arch)/libjsoundalsa.* || die
+ fi
+
+ # build system does not remove that
+ if use headless-awt ; then
+ rm -fvr jre/lib/$(get_system_arch)/lib*{[jx]awt,splashscreen}* \
+ {,jre/}bin/policytool bin/appletviewer || die
+ fi
+
+ if ! use examples ; then
+ rm -vr demo/ || die
+ fi
+
+ if ! use source ; then
+ rm -v src.zip || die
+ fi
+
+ dodir "${dest}"
+ cp -pPR * "${ddest}" || die
+
+ dosym -r /etc/ssl/certs/java/cacerts "${dest}"/jre/lib/security/cacerts
+
+ java-vm_install-env "${FILESDIR}"/${PN}-${SLOT}.env.sh
+ java-vm_set-pax-markings "${ddest}"
+ java-vm_revdep-mask
+ java-vm_sandbox-predict /dev/random /proc/self/coredump_filter
+
+ if use doc ; then
+ docinto html
+ dodoc -r "${S}"/build/*-release/docs/*
+ fi
+}
+
+pkg_postinst() {
+ java-vm-2_pkg_postinst
+ einfo "JavaWebStart functionality provided by icedtea-web package"
+}
diff --git a/dev-lang/hare/files/hare-0.25.2-os_exec-fix-clearenv.patch b/dev-lang/hare/files/hare-0.25.2-os_exec-fix-clearenv.patch
deleted file mode 100644
index ca04fb6b62b7..000000000000
--- a/dev-lang/hare/files/hare-0.25.2-os_exec-fix-clearenv.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 4039f65285e5fbd89192319e52cd8fa0ea1ec214 Mon Sep 17 00:00:00 2001
-From: Armin Preiml <apreiml@strohwolke.at>
-Date: Wed, 25 Jun 2025 10:57:23 +0200
-Subject: [PATCH hare] os::exec: fix clearenv
-X-Upstream-Status: applied
-
-Signed-off-by: Armin Preiml <apreiml@strohwolke.at>
----
- os/exec/+freebsd/platform_cmd.ha | 2 +-
- os/exec/+linux/platform_cmd.ha | 2 +-
- os/exec/+netbsd/platform_cmd.ha | 2 +-
- os/exec/+openbsd/platform_cmd.ha | 2 +-
- os/exec/env+test.ha | 19 +++++++++++++++++++
- 5 files changed, 23 insertions(+), 4 deletions(-)
-
-diff --git a/os/exec/+freebsd/platform_cmd.ha b/os/exec/+freebsd/platform_cmd.ha
-index 2c0d972d..f328f9ac 100644
---- a/os/exec/+freebsd/platform_cmd.ha
-+++ b/os/exec/+freebsd/platform_cmd.ha
-@@ -91,7 +91,7 @@ fn platform_setenv(
-
- fn platform_unsetenv(cmd: *command, key: str) (void | errors::invalid) = {
- // XXX: This can be a binary search
-- for (let i = 0z; i < len(cmd.env) - 1; i += 1) {
-+ for (let i = 0z; i < len(cmd.env) && cmd.env[i] != null; i += 1) {
- let e = c::tostr(cmd.env[i]: *const c::char)!;
- if (strings::cut(e, "=").0 == key) {
- free(cmd.env[i]);
-diff --git a/os/exec/+linux/platform_cmd.ha b/os/exec/+linux/platform_cmd.ha
-index 1ec0ddd4..4bf65cb9 100644
---- a/os/exec/+linux/platform_cmd.ha
-+++ b/os/exec/+linux/platform_cmd.ha
-@@ -89,7 +89,7 @@ fn platform_setenv(
-
- fn platform_unsetenv(cmd: *command, key: str) (void | errors::invalid) = {
- // XXX: This can be a binary search
-- for (let i = 0z; cmd.env[i] != null; i += 1) {
-+ for (let i = 0z; i < len(cmd.env) && cmd.env[i] != null; i += 1) {
- let e = c::tostr(cmd.env[i]: *const c::char)!;
- if (strings::cut(e, "=").0 == key) {
- free(cmd.env[i]);
-diff --git a/os/exec/+netbsd/platform_cmd.ha b/os/exec/+netbsd/platform_cmd.ha
-index 2c26cff6..0ccd99bf 100644
---- a/os/exec/+netbsd/platform_cmd.ha
-+++ b/os/exec/+netbsd/platform_cmd.ha
-@@ -92,7 +92,7 @@ fn platform_setenv(
-
- fn platform_unsetenv(cmd: *command, key: str) (void | errors::invalid) = {
- // XXX: This can be a binary search
-- for (let i = 0z; i < len(cmd.env) - 1; i += 1) {
-+ for (let i = 0z; i < len(cmd.env) && cmd.env[i] != null; i += 1) {
- let e = c::tostr(cmd.env[i]: *const c::char)!;
- if (strings::cut(e, "=").0 == key) {
- free(cmd.env[i]);
-diff --git a/os/exec/+openbsd/platform_cmd.ha b/os/exec/+openbsd/platform_cmd.ha
-index 9826111f..d1e1f667 100644
---- a/os/exec/+openbsd/platform_cmd.ha
-+++ b/os/exec/+openbsd/platform_cmd.ha
-@@ -89,7 +89,7 @@ fn platform_setenv(
-
- fn platform_unsetenv(cmd: *command, key: str) (void | errors::invalid) = {
- // XXX: This can be a binary search
-- for (let i = 0z; i < len(cmd.env) - 1; i += 1) {
-+ for (let i = 0z; i < len(cmd.env) && cmd.env[i] != null; i += 1) {
- let e = c::tostr(cmd.env[i]: *const c::char)!;
- if (strings::cut(e, "=").0 == key) {
- free(cmd.env[i]);
-diff --git a/os/exec/env+test.ha b/os/exec/env+test.ha
-index cfd62733..e41395ad 100644
---- a/os/exec/env+test.ha
-+++ b/os/exec/env+test.ha
-@@ -43,3 +43,22 @@ use bufio;
- io::close(rd)!;
- wait(&proc)!;
- };
-+
-+@test fn clearenv() void = {
-+ let cmd = cmd("env")!;
-+ clearenv(&cmd);
-+ setenv(&cmd, "HARETEST", "single")!;
-+
-+ const (rd, wr) = pipe();
-+ addfile(&cmd, os::stdout_file, wr)!;
-+ let proc = start(&cmd)!;
-+ io::close(wr)!;
-+
-+ let sc = bufio::newscanner(rd);
-+ defer io::close(&sc)!;
-+ for (let l => bufio::scan_line(&sc)!) {
-+ assert(l == "HARETEST=single");
-+ };
-+ io::close(rd)!;
-+ wait(&proc)!;
-+};
diff --git a/dev-libs/kirigami-app-components/kirigami-app-components-1.0.1-r1.ebuild b/dev-libs/kirigami-app-components/kirigami-app-components-1.0.1-r1.ebuild
index b633cdc2b657..713c4e982e9c 100644
--- a/dev-libs/kirigami-app-components/kirigami-app-components-1.0.1-r1.ebuild
+++ b/dev-libs/kirigami-app-components/kirigami-app-components-1.0.1-r1.ebuild
@@ -10,7 +10,7 @@ inherit ecm kde.org
if [[ ${KDE_BUILD_TYPE} = release ]]; then
SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz"
- KEYWORDS="~amd64"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="Kirigami addons and modules necessary to do a full featured KDE application"
diff --git a/dev-python/backrefs/Manifest b/dev-python/backrefs/Manifest
index 51e7071765ff..8e8c5afacaa8 100644
--- a/dev-python/backrefs/Manifest
+++ b/dev-python/backrefs/Manifest
@@ -1,2 +1,4 @@
DIST backrefs-7.0.tar.gz 7012453 BLAKE2B 8c6f9235f65b846621318406e4a31bb8ee325b277d561874329e639854655fa680d1306d75449df7c0dad167aa968f2ec72213415e37ab488ea99f91174a5411 SHA512 4c12a1ff958619a3ebdb033c110efc614b2a3e13767bc72100c6dbf3c8217f15fc2fe85e547221ce01b5f14dc47ccd0d079ce12b4dd55bda458fdf748e1b002c
DIST backrefs-7.0.tar.gz.provenance 9169 BLAKE2B c8f94a5331b52534c62f0661376c8a984d7f4d1f6cdad501a9c3bdf6efd9562604d33c5b49f753927ebccb29ccca8d2c1f3fef4e4689e529eb311dc01c4368ac SHA512 2e153fb1167218dce95916d642d6e0546cae940e6020bb36ba7889f3262b3b01513db7eb0d07b5a517dbbc2e490b7f0a603784bf473b894ec27325b7bf3120f3
+DIST backrefs-8.0.tar.gz 7013081 BLAKE2B b0cd793beb447d6d0dde92f9da60ce144fb81a042d5bc958f9376fcf697c89285df2cdac93a22a919956d744f957d15c466e2858841ce9beb3ca6050adb1bea4 SHA512 7ce8217d951ec573e044d83e2505db2f0a184c8d1ddf105a26b9bcc9a137afaf50b992fc5dc529cfbd197044696a7346df2781002b8184d543735a8646909bc2
+DIST backrefs-8.0.tar.gz.provenance 9863 BLAKE2B 550c3c18a2bd5c8cd05b8e2da21f185c9e966f2ec35d3e6cb09f054235c9f19d5261ec2e6a1a78447a4f177694d2151b573332056520190260deb26395993ef4 SHA512 3fac94e549e9514ec545714da915d61750c89f88361d6e3b21c3b00088deb251d7e4015864d58af804caf9e599e1ac08724eff83bb1b9d6e17cf0dd3f0ff6a6c
diff --git a/dev-python/backrefs/backrefs-8.0.ebuild b/dev-python/backrefs/backrefs-8.0.ebuild
new file mode 100644
index 000000000000..30a6d3563133
--- /dev/null
+++ b/dev-python/backrefs/backrefs-8.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_VERIFY_REPO=https://github.com/facelessuser/backrefs
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Wrapper around re or regex that adds additional back references"
+HOMEPAGE="
+ https://github.com/facelessuser/backrefs/
+ https://pypi.org/project/backrefs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ dev-python/regex[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
diff --git a/dev-python/fastjsonschema/Manifest b/dev-python/fastjsonschema/Manifest
index cafb7ef983ac..32da60cb04a1 100644
--- a/dev-python/fastjsonschema/Manifest
+++ b/dev-python/fastjsonschema/Manifest
@@ -1 +1,2 @@
DIST fastjsonschema-2.21.2.tar.gz 374130 BLAKE2B 198cca481d765b43b21101020718b59e3ccba2728a0a2a0ce56c7b73ce1ff6102c2e3916c9fd4c8fe8f2f3e931d87fd7ffc76e6d7983c5a2d87eca2cfa5aa721 SHA512 9e16f533065267ba48eeda70e8a41fdc10b1b99832a3ddaa0d48d01a783e4555d2fb790201ca3f47b959d3e1f06f68b9f83672f90cc1969355d28f0f24cb9837
+DIST fastjsonschema-2.22.0.tar.gz 382291 BLAKE2B 5fe9d70e253e23cb568d72611b631ce45157a0b73aca902ed5f633ab3de499fa6e8b55877b574fe7e5b1ad914606e0eae6b195989a137860236f88584a9659d0 SHA512 a655408b3c0ecebc24a24cdab1ec2638db26fc3a46032529cd3b6686f9711cb5fd0a95f8164b6ed56128d86747fe0782e12953ce9cc4bb6cdded6843bd7e7410
diff --git a/dev-python/fastjsonschema/fastjsonschema-2.22.0.ebuild b/dev-python/fastjsonschema/fastjsonschema-2.22.0.ebuild
new file mode 100644
index 000000000000..c879d05a43f8
--- /dev/null
+++ b/dev-python/fastjsonschema/fastjsonschema-2.22.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Fast JSON schema validator for Python"
+HOMEPAGE="
+ https://github.com/horejsek/python-fastjsonschema/
+ https://pypi.org/project/fastjsonschema/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ tests/benchmarks
+)
diff --git a/dev-python/gitpython/Manifest b/dev-python/gitpython/Manifest
index ea5bf9447c00..1d2398396f16 100644
--- a/dev-python/gitpython/Manifest
+++ b/dev-python/gitpython/Manifest
@@ -1,8 +1,10 @@
DIST GitPython-3.1.54.gitbundle 12994086 BLAKE2B 9709a2bf90eb3ed03517df801b9505d9db0dada09c27359b2c297770fb23a0d359ae62a9518ded8e57b03c82a00b2da2f02bddd312a1e2a3a94ba934e6e70fb9 SHA512 895d4ea52e0853282bbf4a0e524de7ea1e0d544435fcea1db2038a6a97c7be2f0bc1a341d776f2869d5eae84eee8f7c061ab790e4708ba1da75299dd66878f2c
DIST GitPython-3.1.55.gitbundle 12989001 BLAKE2B 0fa2481fd5d3707e44ad2cc84591ed7061533ae9eb79e6e0baaa4ab97b026ab0395caa5cc1d6318e3d41ff937458ef9d5ce7145e27261f8710cb2fc663b27154 SHA512 7baa8393a3871e041498cc847671f5ee64177c89794500ebff93985209a9b9ea7a795444b7c4755d44ed6c977920f2b07843b771d99a481eab96f6d8e43e5550
DIST GitPython-3.1.56.gitbundle 13002231 BLAKE2B 90aee4b11b9f8b83243721628743ecd172c728ab45871c367da93e0d2579cfb25a4bd2f3e62be625673a2538f16a6c5e49ebbeb61343ba5e1a343f967565f740 SHA512 9e2c631c557a9039d566d11bc2ffcd2221e9793f627a5883341ffb258c9b8eaa7d8db9d083570cf5df85bbe4e37c19a06918c56472b7a9f5dac0896beabde352
+DIST GitPython-3.1.57.gitbundle 12996669 BLAKE2B cccc3058e05a812d0ac20112514e31af5e0dfd3eb5b6d0c27d6fdb46c0eea750a8edaa2aacd71940c60a47ceccdf2f3f2a515ee65619d8b6b5440c917f733815 SHA512 24e7997fb0bf548fb430ff18b632eb3eb3374ca35523e100e1a38c500b3178b53f6238fce0745f3a61d6a3210cac8a1a7af37e7f8dc6a281b4cdd26d4a9643f8
DIST gitdb-4.0.12.gitbundle 1627457 BLAKE2B 2fb730fb72f682bac9a71a2b70af6ed476f69d57e00b323e669550793bcc330bd4b71575e0d0f008ed58f39e5beb622213ce2a10df6f512f1f5536b72c77871a SHA512 2fc619f511e373ad2ee51a108057e3a558dbfd68cbd7632244d7fd7914ed5fce99c182de5542264273de642e6e7680ee9b54a6da95224c562f43cf65e325db56
DIST gitpython-3.1.54.tar.gz 225076 BLAKE2B e8f649c3b3c966d488c5d40c57e727e68108c4dc2c32ade4848170689d5258fbf119b39d05929430f3764b3e74bf322c5e79d4cc1d8ac87bcbab5f2c2305fdf8 SHA512 52a1059c21615a9e36072f42e5255ed7bd3b48b0a6a2a75212cefd2cb6f201c62bad3b3391d8b407c2ac3e043cc4ab69930896e3a54268a578986984f86fd28a
DIST gitpython-3.1.55.tar.gz 225071 BLAKE2B c7f1915d1c188760db3b734e9d4ebab27544d87683863af4fa0eecb99171d4ff54c26c458829e3f7180d718d726e474ee7dfee0ef8206268dd78fc7306956b49 SHA512 478b30b92c421a008144167b821343b4b0d646b3ef222a6bca83efd07acdc1c0e7213f3a33a0c59ddf1e4763e342a9712f6dc8df83ac317b01a8e614dfeb7470
DIST gitpython-3.1.56.tar.gz 229619 BLAKE2B bbfcc726256e7813b46e7de4b11fd73ddeb170bb323e0f31271d9558a6889ae49fae52d43579753eebe793dbd623c872ff89fdad5c00f5698ee5b5d851d71f02 SHA512 b54cf52ebc624ff658877570fbd1d4974ee274e9ae49676cc482393e422a75a893b7b8d65e86708435e6097abaa534653e60d620ad339d4aa918f4630f72f9f9
+DIST gitpython-3.1.57.tar.gz 225898 BLAKE2B e577b3bf6080280869fc53475538415a2681e3d5bd2f86d0536036480e1bd7f2f2b4c3d0c84f9c263b24a4e130394a16015367f762b70e67b57d337d54700622 SHA512 cc60ceb2649c600e8618556c889418b6a481bfd358a037a0c117e475957b57d90d6b43421b392207b7dc308a6ec06b25e55c0733ccc149ed9308d048cec78fb3
DIST smmap-5.0.1.gitbundle 362567 BLAKE2B 72c8b48ad3250a33b94218c145c02033dee84c1da5f1eea57983a58699262d51844be675330d95c7d64924b6aeaacd4b0a57e9a5acad3be184aaad62102202e7 SHA512 9ca8386bfec25d1562cdf1c2ee85f7edb15fd3f44ecd1abbef738979f12b82f0b0f39a06589203a39f89518d981d7129e35f64f2d855cd162cd964bdd87c8d18
diff --git a/dev-python/gitpython/gitpython-3.1.57.ebuild b/dev-python/gitpython/gitpython-3.1.57.ebuild
new file mode 100644
index 000000000000..ebe35bd5a941
--- /dev/null
+++ b/dev-python/gitpython/gitpython-3.1.57.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=GitPython
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 pypi
+
+TEST_P=GitPython-${PV}
+GITDB_P=gitdb-4.0.12
+SMMAP_P=smmap-5.0.1
+
+DESCRIPTION="Library used to interact with Git repositories"
+HOMEPAGE="
+ https://github.com/gitpython-developers/GitPython/
+ https://pypi.org/project/GitPython/
+"
+SRC_URI+="
+ test? (
+ https://distfiles.gentoo.org/pub/proj/python/GitPython/${TEST_P}.gitbundle
+ )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-vcs/git
+ >=dev-python/gitdb-4.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/ddt-1.1.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+src_test() {
+ git config --global user.email "travis@ci.com" || die
+ git config --global user.name "Travis Runner" || die
+
+ git clone "${DISTDIR}/${TEST_P}.gitbundle" "${T}"/test || die
+
+ cd "${T}"/test || die
+ git rev-parse HEAD > .git/refs/remotes/origin/master || die
+ TRAVIS=1 ./init-tests-after-clone.sh || die
+ cat test/fixtures/.gitconfig >> ~/.gitconfig || die
+
+ distutils-r1_src_test
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # performance tests are unreliable by design
+ test/performance
+ # unimportant and problematic
+ test/test_installation.py
+ # Internet
+ test/test_quick_doc.py::QuickDoc::test_cloned_repo_object
+ # TODO
+ test/test_submodule.py::TestSubmodule::test_base_rw
+ test/test_submodule.py::TestSubmodule::test_root_module
+ test/test_remote.py::TestTimeouts::test_timeout_funcs
+ )
+
+ epytest -o addopts= test
+}
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index 0f76144646cd..7bc6138883bd 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,3 +1,4 @@
DIST phonenumbers-9.0.32.tar.gz 2306598 BLAKE2B 09d335aa32d96fa73b405bc8cc3d3f8064f09fe816c099d210988f510bef1d892f8a4ab407ab9afc3fb0abde50dca2cb9eedf0ee4310a5a328c827c01b74fa3f SHA512 22a5be30c34fdd0cad9b0daf1a9965f9caeeb3c7457f5ff4504d69a4d7a58eab88e698a403e83ae8bb8ef6baa6d7bb5095b944a50b1065ed1c97c3c99d57302f
DIST phonenumbers-9.0.33.tar.gz 2306756 BLAKE2B c63d3f472b361d2d1677ef39e80c0257fa5bb27f644ea3a21314ffe724d70fed927b346ca7ea42dbab9c077a15cc96291ae2c0783be76b3aa5cd922f22a3f635 SHA512 2e2b73dedef2cfd88fc439d031aaba38fb74f2e53d4f9055920ec496d55605a994cd1247658e6b9db40b2da733f6e258247f392b71ac7b6b025997aa24c5343d
DIST phonenumbers-9.0.34.tar.gz 2306776 BLAKE2B 835bc50d370577cf807cd0124f4ca8829640809f7db897c70aad6fb4bda4f3a66642b5aa6908c2086dcfd67d26d6b47e64ff4c3347620975b1878c80c2a0f6ea SHA512 c9584856647230d2bfb7d19df8f8467ba48df1817ae78030dad8d29807afa622fe74525b547ee7e89c8bf5818b1f2ba2164d4975883c2ad628474eb7410cd07b
+DIST phonenumbers-9.0.35.tar.gz 2306830 BLAKE2B 5a7cf2a8f79251bd4372325d5a6a4efbc49473cb6d9e14ca24d563a5dc48275849001bd8dde1f1deff9ec7e4d194319b8d0c6402040f6202d1678f1381b499e0 SHA512 c838d7a787e2a35fdbcf91df150ec4dee87a071422dfce40e60fb2bdddaa260432f598d4e9394147ced11a768915a7db013a36486801c392fa018a46a00bed46
diff --git a/dev-python/phonenumbers/phonenumbers-9.0.35.ebuild b/dev-python/phonenumbers/phonenumbers-9.0.35.ebuild
new file mode 100644
index 000000000000..de79c2ad9678
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-9.0.35.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}
diff --git a/dev-python/prompt-toolkit/Manifest b/dev-python/prompt-toolkit/Manifest
index 9a13aa096d04..aca5ff46a2ea 100644
--- a/dev-python/prompt-toolkit/Manifest
+++ b/dev-python/prompt-toolkit/Manifest
@@ -1 +1,2 @@
DIST prompt_toolkit-3.0.52.tar.gz 434198 BLAKE2B 7568bfc396bfe3b69028e199f7e6d2c04a35b76e682c3eff19be818f400614efde8fa06d9b058ee323b35fd960c27e8226dd243f65cd2d94a8788fdc0c111b31 SHA512 4f3289c7862f0bc140933b38c25c5f0e116fa04d2e9c12928271aea7c8e85014d80a64376692968d0bc3063faf9af5bbc040010997cbcf152439d8ed337eaf11
+DIST prompt_toolkit-3.0.53.tar.gz 435492 BLAKE2B 4dd6862cd0657e86c2c1425d001b5e3600d5b6240967f79d19af211be37d97b5c3f618c9a7bb6457c9c12508c7ba0716389fee937cb5ffd4cb62846b834d2dcc SHA512 b0a1d93ba18427a171555f095c3d70e6e8d5f3ef241551cb6cfe1ed2843c858e6a1b0e3ebd0b83b71b806e1ea28635464b22b0c0d65c440e28ac4a6b146968d4
diff --git a/dev-python/prompt-toolkit/prompt-toolkit-3.0.53.ebuild b/dev-python/prompt-toolkit/prompt-toolkit-3.0.53.ebuild
new file mode 100644
index 000000000000..b5a8030190a2
--- /dev/null
+++ b/dev-python/prompt-toolkit/prompt-toolkit-3.0.53.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN/-/_}
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Building powerful interactive command lines in Python"
+HOMEPAGE="
+ https://pypi.org/project/prompt_toolkit/
+ https://github.com/prompt-toolkit/python-prompt-toolkit/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ >=dev-python/wcwidth-0.1.4[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ # requires tree-sitter-languages
+ src/prompt_toolkit/lexers/tree_sitter_test.py
+)
diff --git a/dev-python/pygments/Manifest b/dev-python/pygments/Manifest
index 5f09793a7d05..fc3be3039a29 100644
--- a/dev-python/pygments/Manifest
+++ b/dev-python/pygments/Manifest
@@ -1 +1,2 @@
DIST pygments-2.19.2.tar.gz 4968631 BLAKE2B fad9d5c28194761a77f68f5428a6655c78c498917fa7b91d677e0da18a2fe5521a37440ac52bd7eb7578fac50bf4b55e95dd1ac7334644b775b9ca5b3d0f153e SHA512 3ead3a1fa4c7d86b415287949099cb0e5667ea71f7f69aa3de359bbb5c2f234d90fa5a41ec9c74cb041593e465b934d54bbb7dc87669683f04b94dd3aa6ca03c
+DIST pygments-2.20.0.tar.gz 4955991 BLAKE2B 0d3ef30bdca0713946930f97d222fe3d5096a340b435383b7a6cdd0c2570cb1c4a723dcf6b09e4253fbc7c8b3eefe093529d45c4b4c1753d3e45f25347e84958 SHA512 7d073ead03b1722f862a72a962346f2d76bafb472f58fd5038061ca09675483f3b427bec700fe4ef49da9cace9e65b0d5414cda5ee20ebc056759e0c422f4547
diff --git a/dev-python/pygments/pygments-2.20.0.ebuild b/dev-python/pygments/pygments-2.20.0.ebuild
new file mode 100644
index 000000000000..e31bb3041059
--- /dev/null
+++ b/dev-python/pygments/pygments-2.20.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYPI_PN=${PN^}
+PYTHON_FULLY_TESTED=( python3_{12..15} )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi shell-completion
+
+DESCRIPTION="Pygments is a syntax highlighting package written in Python"
+HOMEPAGE="
+ https://pygments.org/
+ https://github.com/pygments/pygments/
+ https://pypi.org/project/Pygments/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ ' "${PYTHON_FULLY_TESTED[@]}")
+ dev-python/wcag-contrast-ratio[${PYTHON_USEDEP}]
+ virtual/ttf-fonts
+ )
+"
+
+EPYTEST_DESELECT=(
+ # fuzzing tests, very slow
+ tests/test_basic_api.py::test_random_input
+)
+
+EPYTEST_PLUGINS=()
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_install() {
+ distutils-r1_src_install
+ newbashcomp external/pygments.bashcomp pygmentize
+}
diff --git a/dev-python/pyproject-fmt/Manifest b/dev-python/pyproject-fmt/Manifest
index e558059d9c9d..bac159c99a78 100644
--- a/dev-python/pyproject-fmt/Manifest
+++ b/dev-python/pyproject-fmt/Manifest
@@ -4,23 +4,17 @@ DIST pyproject_fmt-2.21.2.tar.gz 155067 BLAKE2B e1d5ed9ad538c934d176d54c64030312
DIST pyproject_fmt-2.21.2.tar.gz.provenance 9899 BLAKE2B dd64f16733cdceab98a70dd4680d3ef603976ba1d2a7e088c2906cd0ec05f3081586dd4d09a56c772106ff3dd8d3d81ffda497e34bd205aec0eec5ec5f0b108b SHA512 2585c2ab36baa9a1fce11e11d1468c990a736c543ce4de6c7476dd7df6f754b107795c238762110555eec284aefaa53e6eddc5733fce5b5ee701344baae5d086
DIST pyproject_fmt-2.24.1.tar.gz 280585 BLAKE2B 76dbf5443a7ff7215437b6b4d4a2cb9f6c752335d73dcec893fa1e222b3d459298e11265367ff2e76d63548b47e6c752266703d59329653d02113b2c410d178e SHA512 5b044182e27f881bc13d24406f5dabd68ab60e325ba748f460533640e87731cb30651e744ad0011e2ef4cddf5907f42e6f9d2aca6aa0a558dddfa5beaefbab9c
DIST pyproject_fmt-2.24.1.tar.gz.provenance 10064 BLAKE2B ec74f53fae059829f6e44434666d196b5ea92b787d80fe04d6a001e93f1563be978c6771918a3fe7af19ef1a41cc8ce04d21ef0f15ce9e7af39b3cbfe2af00b2 SHA512 4220f4b3fd4372dc0593da35341255778f25c4386eca6007f6e49252cccc861df75980ab74fc437ca26105687198c8b0bfad81579ef4341fd0e97c4ee3a9e79a
-DIST pyproject_fmt-2.25.0.tar.gz 292640 BLAKE2B a6d65982bd0591966a09218b74032e7da1aff8f99406bfdad405b10203a14096f6ebca761ec97861edbd5115845a75fcbf3ade1201a26f0f6d2a0dd717c3837f SHA512 d1fa497bd7fe76e6b3fae996cec29cf1a29fe3484a7b43dd81fbc50e3d1ee50eb096e891624d4942991cbb2ccf414d099a88b1649c5481d2bd3e26ddbd2e8348
-DIST pyproject_fmt-2.25.0.tar.gz.provenance 9829 BLAKE2B f6632a9b29fa43159badefe9a16355bc22b09b0a17bdb08fcc41ae89d3ff62cc5d2e79b5b4e996c794d863535b3cebf909e7cbc6abde8bcc28f1f09ee55b0bec SHA512 bb6e171ce072c8eb1a92127993e284a45414a54639a7f88478d6f0b09efa8db02fd93e2ddd9ee3e986567c26512de8ee2517f4770cd3ee0b72f09ae6bde10dc3
-DIST pyproject_fmt-2.25.1.tar.gz 290943 BLAKE2B 02390a55ca82ea869429302298aa9831bc3c9c1078fdb8abf05ddfc4607a8ee1847e9b71fdeeef93028e5f68d2aa5d55f86be183a694596e0590dcf8edaea8f7 SHA512 b12d3e2ce29ac6a0a94b54d20008f873a9306fcb2442a27cb0c8bbe369a676b3c6279c4ba738650da24087e2c61ed6edbba49b8d74f4e4698893dc4ac0dc4a67
-DIST pyproject_fmt-2.25.1.tar.gz.provenance 10064 BLAKE2B b9446853d04e357be741bf3e45464ab44c93b7da5bbf297b32c7175a683d8e9efceb2db9532fedcdc5221214027edc0bba1decc24ee3fee00a5d6d69bcfe7fbc SHA512 8410f5c4a6c9d88b7a1eaa17fbacc308deac3a6970f6d9868a7176ea2c279ebcde8d4e560c5f88d66466b02bf5179552890b9dee5c3c6bce26638ae7f3c18186
-DIST pyproject_fmt-2.25.2.tar.gz 292446 BLAKE2B 3f848f1a26f7517ca6369c84b77b33a02ec0508b9b42e065087b4240957992f9eb59c4eb55e22ec38ab9f87bfb8d189bc3b54899ee1466905cd5391e0fbef72c SHA512 a7197ece8f82aac64f5cd27108e8b011b3a2961bff7db2d697dea43aa57d792f445992bc9ab7e6c2458592ac7b77d635e17f6709ffc9d646050ed1109ec3d9ef
-DIST pyproject_fmt-2.25.2.tar.gz.provenance 10115 BLAKE2B 30ec10573cd5209bb8eb31a4bc6d8c8be03824c3abc2aefb4ac4bb0476ea6e1313ca1048b36af19a597fdb0cd9b49c6549d2659c97a58f5f75da95bd6f2f8b91 SHA512 45acded1727fe88f7da280e95bdeba92b925ba9fdaa4a74d50ce869ecbe1ef16352e50056e4891cd4eb662dd666a41d78d8006940585d39296de2ce313e9aa1c
DIST pyproject_fmt-2.25.3.tar.gz 293215 BLAKE2B 3a5a26d8d5459e57d1da57c5eaa0aa7d82bc429d10ad29df51418d5bf9ff5e7f0148d3484ec9db8ce66178ad4c02b403edbbac3f845523e6d4c63dee38316b92 SHA512 09e6f9cea1fad81caee62ee6a99a7a3a2b0a7420db18b5e15ec8c2efb1e9fbbb6d466e092df0fb9d1a92d53cc9c0b11f5949fc44a1a825b8cd5df2eb34f6843e
DIST pyproject_fmt-2.25.3.tar.gz.provenance 9747 BLAKE2B 5e774a5bcfd7c578d949ae81ae66c40cd3bf4645f00bc9b3d0a7668f30005c2a78afcad587d2af90300c4964c218452d8ae6dc3e13c8a5f54321767cc2e4c675 SHA512 676c8af060a4001990e686066e8fd62c27a3f4f6ea9539f47a57b264d043399127cc3a600e7326f50290cb848b0e3f2219d2f88e18f256b55e86d44989476e4a
+DIST pyproject_fmt-2.25.4.tar.gz 294939 BLAKE2B 49ff266da59749eacad648592675f468b53c1fc290507a03058ffed1f66d9be9a23425172def7af5773c8116143e3dfa7c9492f9b2f8a2afb0384b9b2b34e07a SHA512 0d468581dc3f1a739a552e7c191fafb9dd52871ea79217c920ea2b5cd8d9dfe49da8b94770e4be6b9d8b27163da203f6c8b564a9d07c413b480724833c0234b4
+DIST pyproject_fmt-2.25.4.tar.gz.provenance 10162 BLAKE2B 8b53e7f0e243e39222b5f78e6ff17f43f2d567771aeb42c2d2ba39a314816519c67bfd4785837cfb6936d31580477e88b22dfa2c83c134e3e239f163e8b3abc2 SHA512 3950ea8cec325f06225157f3da31616a1345e0a66b7a00446f958293fe80bb72f9bc40d65895be517e70a1ca3c9921a7a20dee2b1876db2a029f94c18d216b1f
DIST tombi-0d64bd3bd8a5ddcaafdfc7b114e3b73ada0b325b.gh.tar.gz 10564681 BLAKE2B 1cc4e307d89ae978c8022aed63ad7a7c08e71f810e42743589a6bf44499051250102ca3a60aa2cea65292dfd187240da96f6fb963511b6d4c06559c20bbc67a3 SHA512 e398e14c9b092f2378dfa848c697ea5cb0af705bcb801f288d2ca98b8c0d4aa3abf7a71f2f5a10a4a6a77e1e8d1f7089a0359b2a3ec9b226a19bbb40f0aa0a14
-DIST tombi-362cafbd685311cb659ec0a422ebecc1eb332952.gh.tar.gz 10612816 BLAKE2B 8c1ada6d32c3b400110303243dc8f2070a395254a52f57cb4dff9bf788c43bf0491950cc563b2e9e19645a6fe785fbbafc61684446889e3d9b2a18f025d91b3e SHA512 e54f04e5bab4fcba6fa5562746c61a63f94954d5d46781277a9e83645182916c9131e4d09429e12e2dca7369947d68cb13d0cafea10cfbddecac85419f3f6031
DIST tombi-564e4a391ae1dee08fd70936b9af6672d6eee4bc.gh.tar.gz 10614930 BLAKE2B 7557c4dcf2922d76cf79032f0eaee6da7a3507dfb6b1de1508e0b7d705dcbad5dd98da3d7db2d139f8e27f8a4c3bed3c84fe23db8434698047a8a6949e4bb9fd SHA512 07f100ed8634828971cc5bd97011a8d0b14fb44b1a4a076c1b7e532622778f4312c46a90db42eca451a3e74d275d27c1920d3db9dab5f9bc5be4b91392ca36be
+DIST tombi-b46e34c8555e1b98d695ceec30cfa9c0227878ed.gh.tar.gz 10619752 BLAKE2B aef751b54ff252c35c216980d55561d409e76e71379a5d537835db1475bdaa277fd95b233f22af43644fb5a23a2621859706981a78ff7c79e768735f4b071ab4 SHA512 a4b7f71b5ca6f8bc9b64eda3f0048fb372ec44b8b4ab77e3d50bd4ef938de632e3a3837891baa98b4f44a311a743373e5ac92a0c7167ac32cdcbf1e180c7315c
DIST tombi-d5056f9743d7e3f194158e125b90d7294aa59ad7.gh.tar.gz 10475854 BLAKE2B 6a629d533e576930e8e988662e3d350137d32ce9b517578f4ee5f20437b75d31300568adf4a4fae2e9fc7a033af1031d4fbcaafa51656a3af2b8a7e03365495e SHA512 74aa91819f15420207850951d0d6b41d61dadf3bdb38406299ae1126bb9ae597a7eb9b69a4485165bf465eb10384b67c73b0e231ce22e1910bc2db448c4eb626
DIST tombi-e9213370947e9d7ab6dd98c1cf17533bbbcc797f.gh.tar.gz 10608653 BLAKE2B 7fd8a27bec2e0c5ab357f2c56ca50c848d71e02da3faca9b0650541b35b177ce7b669d294c20add3dac2ba70e5ced46046d5c2de14df81fcee418fccaaa47344 SHA512 a84ca3f676b95d11c121df08382e3bc6ca2e31c0c867ff3027c5564219f637abda34bcc00d563d777280e1b4522354e83b6bb4b0412b067e9ce57272a4e34d15
DIST toml-fmt-pyproject-fmt-2.21.1-crates.tar.xz 18661404 BLAKE2B cb19d8ebbb7d4fb43494a89a910bc844862bbbc6f677dff27fceca27a74cc573d42f009cf2e0d979f286b7efe80bb72e88072b20da3afdc98b023b6740ccdba6 SHA512 1699771da1ee01a593d963b8d945038c8d2abdadaf40203a56504ec6a9dfbca896b1aa77a63c98ed77bed779fe3dfe365fab219eced7c3b7b222876be0a68170
DIST toml-fmt-pyproject-fmt-2.21.2-crates.tar.xz 18776904 BLAKE2B ae748ae98a2769a78b34a2051e3237c40bc6714d88c58a22aec5af85caa86e4690e9749ddd1f87d2ebe0908a1a3f24a01a48e4abcf107fcdbd5d8322a0738c6a SHA512 474d707babc9a3f98a933ae645ffb951062491158c6863ff9dea7fee065b19f440501e092fbc28e62e4e67dce435689096a27b96c6acde3b8128b76b5890ca3e
DIST toml-fmt-pyproject-fmt-2.24.1-crates.tar.xz 18725980 BLAKE2B 75f6c4a07b14fc60cd3b7a00e902c2b37fe79ea3d03172e7271300d5ea5bd0bf9b7727c4af7e47e82d28424f677235a6e9c1d22ad3314210be93170d9f36ff76 SHA512 88da1827c097f712489276c48fbf10e4c61ef92b877cd8eb7f34eeb1e289ce0362661d3b01bf34c23c1f4cc67e23b05462773407eba7d17814c96d7885f23bd9
-DIST toml-fmt-pyproject-fmt-2.25.0-crates.tar.xz 18742060 BLAKE2B 5cc45568d2981e1804e8800b6d7da203eee70f022b86dff671580e91be90b6627bac38d58f3ba50d138dbe6a905b6a21b324c3fc6114b7a0de11fb6078dd4ef2 SHA512 27986f6f647b3e50d0de5ce3acd7b3b089db896b5560f15b9d7d11c98e4a9b9d5adea566034e533de177fd9e2c08f46f760f9bf73d39910dd2d0ddf85c526832
-DIST toml-fmt-pyproject-fmt-2.25.1-crates.tar.xz 18742060 BLAKE2B 5cc45568d2981e1804e8800b6d7da203eee70f022b86dff671580e91be90b6627bac38d58f3ba50d138dbe6a905b6a21b324c3fc6114b7a0de11fb6078dd4ef2 SHA512 27986f6f647b3e50d0de5ce3acd7b3b089db896b5560f15b9d7d11c98e4a9b9d5adea566034e533de177fd9e2c08f46f760f9bf73d39910dd2d0ddf85c526832
-DIST toml-fmt-pyproject-fmt-2.25.2-crates.tar.xz 17995820 BLAKE2B d48463bdd984382dc42ad2ae7f16d4b164db32fce22495dc83d923b102cdbc8044679f3d2327a8a5b133cb0618b33afa028674282d152d3644f74932282ef194 SHA512 f376c2ba6c994685a020f0c90037de85642141afdac053967393b3f0ee69e737b4e9177681620c470000e3316a9dd0733fdaf41f21835eff593c80ac409c1d69
DIST toml-fmt-pyproject-fmt-2.25.3-crates.tar.xz 17995820 BLAKE2B d48463bdd984382dc42ad2ae7f16d4b164db32fce22495dc83d923b102cdbc8044679f3d2327a8a5b133cb0618b33afa028674282d152d3644f74932282ef194 SHA512 f376c2ba6c994685a020f0c90037de85642141afdac053967393b3f0ee69e737b4e9177681620c470000e3316a9dd0733fdaf41f21835eff593c80ac409c1d69
+DIST toml-fmt-pyproject-fmt-2.25.4-crates.tar.xz 16547296 BLAKE2B 90d85bfcb1652e61911bed8b89b787569fb45b00b6202335e6106ea427ecca78e24c508f030259b67388a4ea149cbc1bcdc87ad2083eb9c63613dfd0d684bb1a SHA512 e89213e82e7cfef3a61e38f027c85571044c6c7f3acc218722d056756b09221b0425d021ae6ae9392c123768dcd0e05fa5eff1b281f0f15fed15e69416b23d00
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild
deleted file mode 100644
index f561b008d7e3..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.25.0.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-schema-store'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
- pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.25.1.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.25.1.ebuild
deleted file mode 100644
index f561b008d7e3..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.25.1.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-schema-store'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;362cafbd685311cb659ec0a422ebecc1eb332952;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
- pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.25.2.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.25.2.ebuild
deleted file mode 100644
index b1e48dc119a4..000000000000
--- a/dev-python/pyproject-fmt/pyproject-fmt-2.25.2.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 2022-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=maturin
-DISTUTILS_UPSTREAM_PEP517=standalone
-PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
-PYTHON_COMPAT=( python3_{13..14} )
-
-RUST_MIN_VER="1.87.0"
-CRATES="
-"
-
-declare -A GIT_CRATES=(
- [tombi-accessor]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-accessor'
- [tombi-ast-editor]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-ast-editor'
- [tombi-ast]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-ast'
- [tombi-cache]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-cache'
- [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-comment-directive-serde'
- [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-comment-directive-store'
- [tombi-comment-directive]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-comment-directive'
- [tombi-config]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-config'
- [tombi-date-time]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-date-time'
- [tombi-diagnostic]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-diagnostic'
- [tombi-document-tree]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-document-tree'
- [tombi-document]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-document'
- [tombi-formatter]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-formatter'
- [tombi-future]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-future'
- [tombi-hashmap]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-hashmap'
- [tombi-json-lexer]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-json-lexer'
- [tombi-json-syntax]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-json-syntax'
- [tombi-json-value]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-json-value'
- [tombi-json]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-json'
- [tombi-lexer]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-lexer'
- [tombi-parser]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-parser'
- [tombi-regex]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-regex'
- [tombi-rg-tree]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-rg-tree'
- [tombi-schema-store]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-schema-store'
- [tombi-severity-level]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-severity-level'
- [tombi-syntax]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-syntax'
- [tombi-text]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-text'
- [tombi-toml-text]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-toml-text'
- [tombi-toml-version]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-toml-version'
- [tombi-uri]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-uri'
- [tombi-validator]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-validator'
- [tombi-version-sort]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-version-sort'
- [tombi-x-keyword]='https://github.com/tombi-toml/tombi;564e4a391ae1dee08fd70936b9af6672d6eee4bc;tombi-%commit%/crates/tombi-x-keyword'
-)
-
-inherit cargo distutils-r1 pypi
-
-DESCRIPTION="Format your pyproject.toml file"
-HOMEPAGE="
- https://github.com/tox-dev/toml-fmt/
- https://pypi.org/project/pyproject-fmt/
-"
-SRC_URI+="
- ${CARGO_CRATE_URIS}
- https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
-"
-
-LICENSE="MIT"
-# Dependent crate licenses
-LICENSE+="
- Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
- Unicode-3.0 ZLIB
-"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
-
-RDEPEND="
- dev-python/toml-fmt-common[${PYTHON_USEDEP}]
-"
-# tox is called as a subprocess, to get targets from tox.ini
-BDEPEND="
- test? (
- dev-python/tox
- )
-"
-
-EPYTEST_PLUGINS=( pytest-mock )
-distutils_enable_tests pytest
-
-QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
-
-src_unpack() {
- pypi_src_unpack
- cargo_src_unpack
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- sed -i -e '/strip/d' pyproject.toml || die
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # something about ANSI codes, no clue
- pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
- pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
- )
-
- epytest pyproject-fmt
-}
-
-python_test_all() {
- # default features cause linking errors because they make pyo3
- # wrongly assume it's compiling a Python extension
- # https://github.com/tox-dev/toml-fmt/issues/23
- cargo_src_test --no-default-features
-}
diff --git a/dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild b/dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild
new file mode 100644
index 000000000000..f1ec3c161d50
--- /dev/null
+++ b/dev-python/pyproject-fmt/pyproject-fmt-2.25.4.ebuild
@@ -0,0 +1,113 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=maturin
+DISTUTILS_UPSTREAM_PEP517=standalone
+PYPI_VERIFY_REPO=https://github.com/tox-dev/toml-fmt
+PYTHON_COMPAT=( python3_{13..14} )
+
+RUST_MIN_VER="1.87.0"
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [tombi-accessor]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-accessor'
+ [tombi-ast-editor]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-ast-editor'
+ [tombi-ast]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-ast'
+ [tombi-cache]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-cache'
+ [tombi-comment-directive-serde]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-comment-directive-serde'
+ [tombi-comment-directive-store]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-comment-directive-store'
+ [tombi-comment-directive]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-comment-directive'
+ [tombi-config]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-config'
+ [tombi-date-time]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-date-time'
+ [tombi-diagnostic]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-diagnostic'
+ [tombi-document-tree]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-document-tree'
+ [tombi-document]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-document'
+ [tombi-formatter]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-formatter'
+ [tombi-future]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-future'
+ [tombi-hashmap]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-hashmap'
+ [tombi-json-lexer]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json-lexer'
+ [tombi-json-syntax]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json-syntax'
+ [tombi-json-value]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json-value'
+ [tombi-json]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-json'
+ [tombi-lexer]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-lexer'
+ [tombi-parser]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-parser'
+ [tombi-regex]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-regex'
+ [tombi-rg-tree]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-rg-tree'
+ [tombi-schema-store]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-schema-store'
+ [tombi-severity-level]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-severity-level'
+ [tombi-syntax]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-syntax'
+ [tombi-text]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-text'
+ [tombi-toml-text]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-toml-text'
+ [tombi-toml-version]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-toml-version'
+ [tombi-uri]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-uri'
+ [tombi-validator]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-validator'
+ [tombi-version-sort]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-version-sort'
+ [tombi-x-keyword]='https://github.com/tombi-toml/tombi;b46e34c8555e1b98d695ceec30cfa9c0227878ed;tombi-%commit%/crates/tombi-x-keyword'
+)
+
+inherit cargo distutils-r1 pypi
+
+DESCRIPTION="Format your pyproject.toml file"
+HOMEPAGE="
+ https://github.com/tox-dev/toml-fmt/
+ https://pypi.org/project/pyproject-fmt/
+"
+SRC_URI+="
+ ${CARGO_CRATE_URIS}
+ https://github.com/gentoo-crate-dist/toml-fmt/releases/download/pyproject-fmt%2F${PV}/toml-fmt-${P}-crates.tar.xz
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD ISC MIT MPL-2.0
+ Unicode-3.0 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+
+RDEPEND="
+ dev-python/toml-fmt-common[${PYTHON_USEDEP}]
+"
+# tox is called as a subprocess, to get targets from tox.ini
+BDEPEND="
+ test? (
+ dev-python/tox
+ )
+"
+
+EPYTEST_PLUGINS=( pytest-mock )
+distutils_enable_tests pytest
+
+QA_FLAGS_IGNORED="usr/lib/py.*/site-packages/pyproject_fmt/_lib.*.so"
+
+src_unpack() {
+ pypi_src_unpack
+ cargo_src_unpack
+}
+
+src_prepare() {
+ distutils-r1_src_prepare
+ sed -i -e '/strip/d' pyproject.toml || die
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # something about ANSI codes, no clue
+ pyproject-fmt/tests/test_main.py::test_main[format-absolute-no_check-in_place]
+ pyproject-fmt/tests/test_main.py::test_main[format-cwd-no_check-in_place]
+ )
+
+ epytest pyproject-fmt
+}
+
+python_test_all() {
+ # default features cause linking errors because they make pyo3
+ # wrongly assume it's compiling a Python extension
+ # https://github.com/tox-dev/toml-fmt/issues/23
+ cargo_src_test --no-default-features
+}
diff --git a/dev-python/typeguard/Manifest b/dev-python/typeguard/Manifest
index 8608630ece44..4880e25d6a14 100644
--- a/dev-python/typeguard/Manifest
+++ b/dev-python/typeguard/Manifest
@@ -1,2 +1,4 @@
DIST typeguard-4.5.2.tar.gz 80240 BLAKE2B c01e45060bc5a89e6545e7f627e3889580f712025affbe3022d6338bfc6b34f0cad0da5b20e7a8898606a9a1b7f189d2b90432e576c58f73329959a0b48961d1 SHA512 29f8ef17f148489656e7dc16ab89a2bcc890c43d54834c095ec238649028cfeb585238935cbbd2bed5311f530a1a9c4341a075466a605c471d6982aeb1dc5488
DIST typeguard-4.5.2.tar.gz.provenance 9478 BLAKE2B cdbf5265c47a4373f5fa11257eae249928a7f52ae1c4cef835bb9789a81874b91c46f653c89dc96276b3984aa9a076566d3a3f706cadfe808e00c8573a95d322 SHA512 df64d46286633d1b538a05f9b6b4042b9d5219e2f55938e49e31a39619200f4ce2d48776fa1758d112b0cefa35521aa2b9094e2ebc47de3ecf47514642f89e4e
+DIST typeguard-4.6.0.tar.gz 82330 BLAKE2B 9e84089cf137fc7ee20abe58040798fdb976ade02ac760e7f3bef62d1e7775e99fca87daf0afe2ae46db82d3121e4a05e0a02bac5faf091043d3ffb6978f78ab SHA512 d910ef1d31db80add35f2daf53918585d199a775c1a531e542e20f03289af56bf125cf20e446befbc45da26a6974a3e87d7f163c6a611ec176c9b04b2c5dc613
+DIST typeguard-4.6.0.tar.gz.provenance 9863 BLAKE2B 761dbdfe2b4dd1fea9adc0bdfd2e6d385992139355162e3db7efaf94f4b240f2a732acf8329f964e478ff04bcf4e9453457a1f7f69c60c090cce54d01aef055c SHA512 4a18434c8e2c896a1cbe988516f387c372d87578dd1c3f733ef478732e441d67fd15252b6c3ab63be0fcfe7e1244b55b8726bffb6fb729cd731b59ab625b2fe1
diff --git a/dev-python/typeguard/typeguard-4.6.0.ebuild b/dev-python/typeguard/typeguard-4.6.0.ebuild
new file mode 100644
index 000000000000..fc2eff28320f
--- /dev/null
+++ b/dev-python/typeguard/typeguard-4.6.0.ebuild
@@ -0,0 +1,41 @@
+# Copyright 2021-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/agronholm/typeguard
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Run-time type checker for Python"
+HOMEPAGE="
+ https://pypi.org/project/typeguard/
+ https://github.com/agronholm/typeguard/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/typing-extensions-4.14.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # mypy changes results from version to version
+ tests/mypy
+ )
+
+ local -x PYTHONDONTWRITEBYTECODE=
+ # the XFAIL test pass due to some package being installed
+ epytest -o xfail_strict=False -p typeguard
+}
diff --git a/dev-python/urwid/Manifest b/dev-python/urwid/Manifest
index d573c926b318..23b3a733fbc2 100644
--- a/dev-python/urwid/Manifest
+++ b/dev-python/urwid/Manifest
@@ -10,3 +10,5 @@ DIST urwid-4.0.6.tar.gz 877110 BLAKE2B 0020370cd25b856fe279c30e85a2802bf81fb2a88
DIST urwid-4.0.6.tar.gz.provenance 9822 BLAKE2B 05f3b4007bd4ddd7aa5ee57a542c3e99472bb7be489b0a493fe31e84996bfecf4783021f565e9ed39d29bd390d46487036e5e846862c2092443776a39cb2c80a SHA512 b70df2f633d82279d9e8b9a7b003693b37a32673a3aca8ced17bb9f83a924cd44be1918fa6e7d2683ab53c0be822eaf029e92e952bb9f1d27bd102934336e1a4
DIST urwid-4.0.7.tar.gz 878680 BLAKE2B b8ac2905c5587650b1eccc460517636376a1c5ce1fe2ce601f4bec4c759b18aa3769e7b1c209f671a8c88bceb158ecd7acd872320c67532aafde4dd11a204a7c SHA512 2fe4b81d19a545ad3d0c653d364c94dd4f7f80b58bc0d34ef3c64d119e8b68547dc9e3483431a09ede5d2f3e75bb8f3751a873894c3c95bc514e8697bd35c9cc
DIST urwid-4.0.7.tar.gz.provenance 9724 BLAKE2B 5e035882c093eff96623ed86df438fdd9edf7a0e05fdbde1639d0f53a65bd9ec8755b8a9b418c5b7e625276ac1d923e9b333ff00a2c6ee772e4b7052f23328d4 SHA512 67eb6c7f66600a673d6a1432244e0db74da5dc72db59e4d00f0ff5b27299a85baead5880fd3b184e3c4883c634af8d97e80e0fbb4ea6b1660368105f82304078
+DIST urwid-4.0.8.tar.gz 878866 BLAKE2B 600a233caba49d439157c06e3d3af6febc1de49e86fabe2ef2ef8ffe54cd9ac4e455218b04e5bf86fb4c2e2acbacb1ef2d24032cd3d509b9c8d84d7965d736e2 SHA512 4cea0cb07a65b4b8ef274e5407f37de432130ac2c3963e21e3545a09b2566d0c552e281a706f59106f369cadf7139013aeaa81c54748e1c3df13647b45008293
+DIST urwid-4.0.8.tar.gz.provenance 9677 BLAKE2B 1d1aa1e350d79788b6ac046c286fb69b3e1bfb1cc602cc407b745b3b0e2cb33bbd841dd30b42217c4bbb91a2c1afc743688596b060de6b5227b567bea506c045 SHA512 7640bf072eab67527a7afef0330cada67745b6e7c29d889649074b7f4fad951dbdd75015eb273f1b2ad6cf05025da1ac696554f19b09d5588279010830cb139b
diff --git a/dev-python/urwid/urwid-4.0.8.ebuild b/dev-python/urwid/urwid-4.0.8.ebuild
new file mode 100644
index 000000000000..f840d3f28004
--- /dev/null
+++ b/dev-python/urwid/urwid-4.0.8.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/urwid/urwid
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="ncurses"
+
+inherit distutils-r1 optfeature pypi
+
+DESCRIPTION="Curses-based user interface library for Python"
+HOMEPAGE="
+ https://urwid.org/
+ https://pypi.org/project/urwid/
+ https://github.com/urwid/urwid/
+"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="examples"
+
+RDEPEND="
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ >=dev-python/wcwidth-0.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:--cov=urwid::' pyproject.toml || die
+}
+
+python_install_all() {
+ use examples && dodoc -r examples
+ distutils-r1_python_install_all
+}
+
+pkg_postinst() {
+ optfeature "Trio event loop" "dev-python/trio"
+}
diff --git a/dev-ruby/action_text-trix/action_text-trix-2.1.16-r1.ebuild b/dev-ruby/action_text-trix/action_text-trix-2.1.16-r1.ebuild
new file mode 100644
index 000000000000..fdbbb34e5f50
--- /dev/null
+++ b/dev-ruby/action_text-trix/action_text-trix-2.1.16-r1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_EXTRAINSTALL="app"
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_RECIPE_TEST="none"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A rich text editor for everyday writing"
+HOMEPAGE="https://github.com/basecamp/trix"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+ruby_add_rdepend "
+ dev-ruby/railties
+"
diff --git a/dev-ruby/action_text-trix/action_text-trix-2.1.16.ebuild b/dev-ruby/action_text-trix/action_text-trix-2.1.16.ebuild
index 56808dcb699b..41eae973373f 100644
--- a/dev-ruby/action_text-trix/action_text-trix-2.1.16.ebuild
+++ b/dev-ruby/action_text-trix/action_text-trix-2.1.16.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-ruby/actioncable/actioncable-7.2.3.ebuild b/dev-ruby/actioncable/actioncable-7.2.3.ebuild
index e6c27166eaf8..ff6eab26bd89 100644
--- a/dev-ruby/actioncable/actioncable-7.2.3.ebuild
+++ b/dev-ruby/actioncable/actioncable-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -43,13 +43,14 @@ ruby_add_bdepend "
>=dev-ruby/railties-4.2.0
dev-ruby/activerecord
dev-ruby/test-unit:2
+ dev-ruby/minitest:5
dev-ruby/mocha
>=dev-ruby/pg-1.1:1
www-servers/puma
)"
all_ruby_prepare() {
- sed -e '3igem "activerecord", "~> 7.2.0"; gem "railties", "~> 7.2.0"' \
+ sed -e '3igem "activerecord", "~> 7.2.0"; gem "railties", "~> 7.2.0"; gem "minitest", "~> 5"' \
-i test/test_helper.rb || die
# Avoid tests for unpackaged dependencies: websocket-client-simple
diff --git a/dev-ruby/actioncable/actioncable-8.0.4-r1.ebuild b/dev-ruby/actioncable/actioncable-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..dd000b29e13b
--- /dev/null
+++ b/dev-ruby/actioncable/actioncable-8.0.4-r1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_DOCDIR=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+RUBY_FAKEGEM_EXTRAINSTALL="app"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_TASK_TEST="-Ilib test"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Integrated WebSockets for Rails"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}:*
+ ~dev-ruby/activesupport-${PV}:*
+ dev-ruby/nio4r:2
+ >=dev-ruby/websocket-driver-0.6.1:*
+ >=dev-ruby/zeitwerk-2.6:2
+"
+
+ruby_add_bdepend "
+ test? (
+ || ( dev-ruby/rack:3.1 dev-ruby/rack:3.0 dev-ruby/rack:2.2 )
+ >=dev-ruby/railties-4.2.0
+ dev-ruby/activerecord:$(ver_cut 1-2)
+ dev-ruby/test-unit:2
+ dev-ruby/mocha
+ dev-ruby/minitest:5
+ >=dev-ruby/pg-1.1:1
+ www-servers/puma
+ )"
+
+all_ruby_prepare() {
+ sed -e '3igem "minitest", "~> 5"' \
+ -i test/test_helper.rb || die
+
+ # Avoid tests for unpackaged dependencies: websocket-client-simple
+ rm -f test/client_test.rb || die
+
+ # Avoid tests for dependencies that require additional setup or network
+ rm -f test/javascript_package_test.rb test/subscription_adapter/redis_test.rb || die
+}
diff --git a/dev-ruby/actioncable/actioncable-8.0.4.ebuild b/dev-ruby/actioncable/actioncable-8.0.4.ebuild
index c549e1ac366b..d5b52ee7141b 100644
--- a/dev-ruby/actioncable/actioncable-8.0.4.ebuild
+++ b/dev-ruby/actioncable/actioncable-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -44,11 +44,15 @@ ruby_add_bdepend "
dev-ruby/activerecord:$(ver_cut 1-2)
dev-ruby/test-unit:2
dev-ruby/mocha
+ dev-ruby/minitest:5
>=dev-ruby/pg-1.1:1
www-servers/puma
)"
all_ruby_prepare() {
+ sed -e '3igem "minitest", "~> 5"' \
+ -i test/test_helper.rb || die
+
# Avoid tests for unpackaged dependencies: websocket-client-simple
rm -f test/client_test.rb || die
diff --git a/dev-ruby/actioncable/actioncable-8.1.2-r1.ebuild b/dev-ruby/actioncable/actioncable-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..d65deb8ab71d
--- /dev/null
+++ b/dev-ruby/actioncable/actioncable-8.1.2-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_DOCDIR=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+RUBY_FAKEGEM_EXTRAINSTALL="app"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_TASK_TEST="-Ilib test"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Integrated WebSockets for Rails"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}:*
+ ~dev-ruby/activesupport-${PV}:*
+ dev-ruby/nio4r:2
+ >=dev-ruby/websocket-driver-0.6.1:*
+ >=dev-ruby/zeitwerk-2.6:2
+"
+
+ruby_add_bdepend "
+ test? (
+ || ( dev-ruby/rack:3.2 dev-ruby/rack:3.1 dev-ruby/rack:3.0 dev-ruby/rack:2.2 )
+ >=dev-ruby/railties-4.2.0
+ dev-ruby/activerecord:$(ver_cut 1-2)
+ dev-ruby/test-unit:2
+ dev-ruby/mocha
+ >=dev-ruby/pg-1.1:1
+ www-servers/puma
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ )"
+
+all_ruby_prepare() {
+ sed -e '2igem "minitest", "~> 6.0"; gem "minitest-mock"; require "pathname"' \
+ -i test/test_helper.rb || die
+
+ # Avoid tests for unpackaged dependencies: websocket-client-simple
+ rm -f test/client_test.rb || die
+
+ # Avoid tests for dependencies that require additional setup or network
+ rm -f test/javascript_package_test.rb test/subscription_adapter/redis_test.rb || die
+}
diff --git a/dev-ruby/actionmailbox/actionmailbox-7.2.3.ebuild b/dev-ruby/actionmailbox/actionmailbox-7.2.3.ebuild
index dbeec4762178..09544ad69d7c 100644
--- a/dev-ruby/actionmailbox/actionmailbox-7.2.3.ebuild
+++ b/dev-ruby/actionmailbox/actionmailbox-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -56,6 +56,7 @@ all_ruby_prepare() {
-e '/stimulus-rails/,/sass-embedded/ s:^:#:' \
-e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
-e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
-i ../Gemfile || die
rm ../Gemfile.lock || die
sed -i -e '/byebug/ s:^:#:' test/test_helper.rb || die
diff --git a/dev-ruby/actionmailbox/actionmailbox-8.0.4-r1.ebuild b/dev-ruby/actionmailbox/actionmailbox-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..bb1edf47986c
--- /dev/null
+++ b/dev-ruby/actionmailbox/actionmailbox-8.0.4-r1.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="actionmailbox.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_EXTRAINSTALL="app config db"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Framework for designing email-service layers"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/activestorage-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/mail-2.8.0:*
+"
+
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ dev-ruby/mocha
+ dev-ruby/propshaft
+ dev-ruby/rexml
+ dev-ruby/sqlite3
+ dev-ruby/webmock
+ dev-ruby/rails
+)"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|mysql2\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|sass-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|sprockets\|stackprof\|websocket-client-simple\|libxml-ruby\|redis\|blade\|aws-sdk\|google-cloud\|azure-storage\|selenium\|webdrivers\|webrick\|minitest-bisect\|minitest-retry\|minitest-reporters\|listen\|rack-cache\|rack-test\|capybara\|webpacker\|bootsnap\|dalli\|connection_pool\|terser\|cookiejar\|cgi\|web-console\|trilogy\|error_highlight\|jbuilder\|httpclient\|prism\|solid\|kamal\|thruster\|releaser\)/ s:^:#:" \
+ -e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
+ -e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
+ -e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
+ -i ../Gemfile || die
+ rm ../Gemfile.lock || die
+ sed -i -e '/byebug/ s:^:#:' test/test_helper.rb || die
+}
+
+each_ruby_prepare() {
+ sed -i -e 's:ruby:'${RUBY}':' test/dummy/bin/* || die
+}
diff --git a/dev-ruby/actionmailbox/actionmailbox-8.0.4.ebuild b/dev-ruby/actionmailbox/actionmailbox-8.0.4.ebuild
index fd96a611abe8..2f6834f9fc8b 100644
--- a/dev-ruby/actionmailbox/actionmailbox-8.0.4.ebuild
+++ b/dev-ruby/actionmailbox/actionmailbox-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -53,6 +53,7 @@ all_ruby_prepare() {
-e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
-e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
-e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
-i ../Gemfile || die
rm ../Gemfile.lock || die
sed -i -e '/byebug/ s:^:#:' test/test_helper.rb || die
diff --git a/dev-ruby/actionmailbox/actionmailbox-8.1.2-r1.ebuild b/dev-ruby/actionmailbox/actionmailbox-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..9aa26254b6b1
--- /dev/null
+++ b/dev-ruby/actionmailbox/actionmailbox-8.1.2-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="actionmailbox.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_EXTRAINSTALL="app config db"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Framework for designing email-service layers"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/activestorage-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/mail-2.8.0:*
+"
+
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ dev-ruby/mocha
+ dev-ruby/propshaft
+ dev-ruby/rexml
+ >=dev-ruby/sqlite3-2.1
+ dev-ruby/webmock
+ dev-ruby/rails
+)"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|mysql2\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|sass-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|sprockets\|stackprof\|websocket-client-simple\|libxml-ruby\|redis\|blade\|aws-sdk\|google-cloud\|azure-storage\|selenium\|webdrivers\|webrick\|minitest-bisect\|minitest-retry\|minitest-reporters\|listen\|rack-cache\|rack-test\|capybara\|webpacker\|bootsnap\|dalli\|connection_pool\|terser\|cookiejar\|cgi\|web-console\|trilogy\|error_highlight\|jbuilder\|httpclient\|prism\|solid\|kamal\|thruster\|releaser\)/ s:^:#:" \
+ -e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
+ -e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
+ -i ../Gemfile || die
+ rm ../Gemfile.lock || die
+ sed -i -e '/byebug/ s:^:#:' test/test_helper.rb || die
+}
+
+each_ruby_prepare() {
+ sed -i -e 's:ruby:'${RUBY}':' test/dummy/bin/* || die
+}
diff --git a/dev-ruby/actionmailer/actionmailer-7.1.5.1.ebuild b/dev-ruby/actionmailer/actionmailer-7.1.5.1.ebuild
index cd77b9d4cb32..07f57b8b40c4 100644
--- a/dev-ruby/actionmailer/actionmailer-7.1.5.1.ebuild
+++ b/dev-ruby/actionmailer/actionmailer-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionmailer/actionmailer-7.1.6.ebuild b/dev-ruby/actionmailer/actionmailer-7.1.6.ebuild
index cd77b9d4cb32..07f57b8b40c4 100644
--- a/dev-ruby/actionmailer/actionmailer-7.1.6.ebuild
+++ b/dev-ruby/actionmailer/actionmailer-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionmailer/actionmailer-7.2.3.ebuild b/dev-ruby/actionmailer/actionmailer-7.2.3.ebuild
index 4bd14a65ece9..8925db221787 100644
--- a/dev-ruby/actionmailer/actionmailer-7.2.3.ebuild
+++ b/dev-ruby/actionmailer/actionmailer-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -37,6 +37,7 @@ ruby_add_rdepend "
>=dev-ruby/rails-dom-testing-2.2:2"
ruby_add_bdepend "test? (
+ dev-ruby/minitest:5
dev-ruby/mocha
)"
@@ -45,7 +46,7 @@ all_ruby_prepare() {
rm "${S}/../Gemfile" || die "Unable to remove Gemfile"
sed -e '/\/load_paths/d' \
-e '3irequire "ostruct"' \
- -e '3igem "actionpack", "~> 7.2.0"; gem "activejob", "~> 7.2.0"' \
+ -e '3igem "actionpack", "~> 7.2.0"; gem "activejob", "~> 7.2.0"; gem "minitest", "~> 5"' \
-i test/abstract_unit.rb || die "Unable to remove load paths"
# Avoid a test failing only on attachment ordering, since this is a
diff --git a/dev-ruby/actionmailer/actionmailer-8.0.4-r1.ebuild b/dev-ruby/actionmailer/actionmailer-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..140d101cb922
--- /dev/null
+++ b/dev-ruby/actionmailer/actionmailer-8.0.4-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="actionmailer.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Framework for designing email-service layers"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/actionview-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/mail-2.8.0
+ >=dev-ruby/rails-dom-testing-2.2:2"
+
+ruby_add_bdepend "test? (
+ dev-ruby/mocha
+)"
+
+all_ruby_prepare() {
+ # Set test environment to our hand.
+ rm "${S}/../Gemfile" || die "Unable to remove Gemfile"
+ sed -e '/\/load_paths/d' \
+ -e '3igem "actionpack", "~> 8.0.0"; gem "activejob", "~> 8.0.0"; gem "minitest", "~> 5"' \
+ -i test/abstract_unit.rb || die "Unable to remove load paths"
+
+ # Avoid a test failing only on attachment ordering, since this is a
+ # security release.
+ sed -e '/adding inline attachments while rendering mail works/askip "gentoo: fails on ordering"' \
+ -i test/base_test.rb || die
+}
diff --git a/dev-ruby/actionmailer/actionmailer-8.0.4.ebuild b/dev-ruby/actionmailer/actionmailer-8.0.4.ebuild
index d7be786648f6..75adc69698eb 100644
--- a/dev-ruby/actionmailer/actionmailer-8.0.4.ebuild
+++ b/dev-ruby/actionmailer/actionmailer-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -41,7 +41,7 @@ all_ruby_prepare() {
# Set test environment to our hand.
rm "${S}/../Gemfile" || die "Unable to remove Gemfile"
sed -e '/\/load_paths/d' \
- -e '3igem "actionpack", "~> 8.0.0"; gem "activejob", "~> 8.0.0"' \
+ -e '3igem "actionpack", "~> 8.0.0"; gem "activejob", "~> 8.0.0"; gem "minitest", "~> 5"' \
-i test/abstract_unit.rb || die "Unable to remove load paths"
# Avoid a test failing only on attachment ordering, since this is a
diff --git a/dev-ruby/actionmailer/actionmailer-8.1.2-r1.ebuild b/dev-ruby/actionmailer/actionmailer-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..6834f2df366a
--- /dev/null
+++ b/dev-ruby/actionmailer/actionmailer-8.1.2-r1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="actionmailer.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Framework for designing email-service layers"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/actionview-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/mail-2.8.0
+ >=dev-ruby/rails-dom-testing-2.2:2"
+
+ruby_add_bdepend "test? (
+ dev-ruby/mocha
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+)"
+
+all_ruby_prepare() {
+ # Set test environment to our hand.
+ rm "${S}/../Gemfile" || die "Unable to remove Gemfile"
+ sed -e '/\/load_paths/d' \
+ -e '3igem "actionpack", "~> 8.1.0"; gem "activejob", "~> 8.1.0"' \
+ -e '3igem "minitest", "~> 6.0"; gem "minitest-mock"' \
+ -i test/abstract_unit.rb || die "Unable to remove load paths"
+
+ # Avoid a test failing only on attachment ordering, since this is a
+ # security release.
+ sed -e '/adding inline attachments while rendering mail works/askip "gentoo: fails on ordering"' \
+ -i test/base_test.rb || die
+}
diff --git a/dev-ruby/actionpack/actionpack-7.1.5.1.ebuild b/dev-ruby/actionpack/actionpack-7.1.5.1.ebuild
index ee5d28548bf6..f6c5146456ab 100644
--- a/dev-ruby/actionpack/actionpack-7.1.5.1.ebuild
+++ b/dev-ruby/actionpack/actionpack-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,7 +21,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionpack/actionpack-7.1.6.ebuild b/dev-ruby/actionpack/actionpack-7.1.6.ebuild
index f8dadc357783..e9cd47f8b4e7 100644
--- a/dev-ruby/actionpack/actionpack-7.1.6.ebuild
+++ b/dev-ruby/actionpack/actionpack-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,7 +21,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionpack/actionpack-7.2.3.ebuild b/dev-ruby/actionpack/actionpack-7.2.3.ebuild
index bae3092b5afd..15eb19a8233a 100644
--- a/dev-ruby/actionpack/actionpack-7.2.3.ebuild
+++ b/dev-ruby/actionpack/actionpack-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -61,7 +61,7 @@ all_ruby_prepare() {
rm ../Gemfile.lock || die
# Fix errors loading rack/session with rack 3.0 and use correct rails version.
- sed -e '2igem "rack-session"; gem "railties", "~> 7.2.0"; gem "activemodel", "~> 7.2.0"' \
+ sed -e '2igem "rack-session"; gem "railties", "~> 7.2.0"; gem "activemodel", "~> 7.2.0"; gem "minitest", "~> 5"' \
-i test/abstract_unit.rb || die
# Use different timezone notation, this changed at some point due to an external dependency changing.
diff --git a/dev-ruby/actionpack/actionpack-8.0.4-r1.ebuild b/dev-ruby/actionpack/actionpack-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..5421c1e32fc2
--- /dev/null
+++ b/dev-ruby/actionpack/actionpack-8.0.4-r1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="actionpack.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Eases web-request routing, handling, and response"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionview-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/nokogiri-1.8.5
+ || ( dev-ruby/rack:3.1 dev-ruby/rack:3.0 >=dev-ruby/rack-2.2.4:2.2 )
+ >=dev-ruby/rack-session-1.0.1
+ >=dev-ruby/rack-test-0.6.3:*
+ >=dev-ruby/rails-dom-testing-2.2:2
+ >=dev-ruby/rails-html-sanitizer-1.6:1
+ >=dev-ruby/useragent-0.16:0
+"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/mocha
+ dev-ruby/bundler
+ >=dev-ruby/capybara-3.26
+ ~dev-ruby/activemodel-${PV}
+ ~dev-ruby/railties-${PV}
+ >=dev-ruby/rack-cache-1.2:1.2
+ dev-ruby/selenium-webdriver:4
+ www-servers/puma
+ dev-ruby/minitest:5
+ )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -i -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|sprockets\|stackprof\)/ s:^:#:" \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :doc/,/^end/ s:^:#:' ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Fix errors loading rack/session with rack 3.0 and use correct rails version.
+ sed -e '2igem "rack-session"; gem "railties", "~> 8.0.0"; gem "activemodel", "~> 8.0.0"; gem "minitest", "~> 5"' \
+ -i test/abstract_unit.rb || die
+
+ # Use different timezone notation, this changed at some point due to an external dependency changing.
+ sed -e 's/-0000/GMT/' \
+ -i test/dispatch/response_test.rb test/dispatch/cookies_test.rb test/dispatch/session/cookie_store_test.rb || die
+
+ # Avoid tests that fail with a fixed cgi.rb version
+ sed -e '/test_session_store_with_all_domains/askip "Fails with fixed cgi.rb"' \
+ -i test/dispatch/session/cookie_store_test.rb || die
+
+ # Avoid tests failing with rails-dom-testing 2.3 (fixed upstream)
+ sed -e '/test_preserves_order_when_reading_from_cache_plus_rendering/askip "Fails with rails-dom-testing 2.3"' \
+ -i test/controller/caching_test.rb || die
+
+ # Avoid tests requiring chrome
+ sed -e '/DrivenBySeleniumWith/,/^end/ s:^:#:' \
+ -i test/abstract_unit.rb || die
+ rm -f test/dispatch/system_testing/{driver,screenshot_helper,system_test_case}_test.rb || die
+}
diff --git a/dev-ruby/actionpack/actionpack-8.0.4.ebuild b/dev-ruby/actionpack/actionpack-8.0.4.ebuild
index ce915b09dac8..66273d9d344c 100644
--- a/dev-ruby/actionpack/actionpack-8.0.4.ebuild
+++ b/dev-ruby/actionpack/actionpack-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -60,7 +60,7 @@ all_ruby_prepare() {
rm ../Gemfile.lock || die
# Fix errors loading rack/session with rack 3.0 and use correct rails version.
- sed -e '2igem "rack-session"; gem "railties", "~> 8.0.0"; gem "activemodel", "~> 8.0.0"' \
+ sed -e '2igem "rack-session"; gem "railties", "~> 8.0.0"; gem "activemodel", "~> 8.0.0"; gem "minitest", "~> 5"' \
-i test/abstract_unit.rb || die
# Use different timezone notation, this changed at some point due to an external dependency changing.
diff --git a/dev-ruby/actionpack/actionpack-8.1.2-r1.ebuild b/dev-ruby/actionpack/actionpack-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..d069a22db565
--- /dev/null
+++ b/dev-ruby/actionpack/actionpack-8.1.2-r1.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="actionpack.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Eases web-request routing, handling, and response"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionview-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/nokogiri-1.8.5
+ || ( dev-ruby/rack:3.2 dev-ruby/rack:3.1 dev-ruby/rack:3.0 >=dev-ruby/rack-2.2.4:2.2 )
+ >=dev-ruby/rack-session-1.0.1
+ >=dev-ruby/rack-test-0.6.3:*
+ >=dev-ruby/rails-dom-testing-2.2:2
+ >=dev-ruby/rails-html-sanitizer-1.6:1
+ >=dev-ruby/useragent-0.16:0
+"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/mocha
+ dev-ruby/bundler
+ >=dev-ruby/capybara-3.26
+ ~dev-ruby/activemodel-${PV}
+ ~dev-ruby/railties-${PV}
+ >=dev-ruby/rack-cache-1.2:1.2
+ dev-ruby/selenium-webdriver:4
+ www-servers/puma
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -i -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|sprockets\|stackprof\)/ s:^:#:" \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :doc/,/^end/ s:^:#:' ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Fix errors loading rack/session with rack 3.0 and missing OpenStruct
+ sed -e '2igem "rack-session"; require "ostruct"' \
+ -e '3igem "minitest", "~> 6.0"; gem "minitest-mock"' \
+ -i test/abstract_unit.rb || die
+
+ # Avoid tests failing with rails-dom-testing 2.3 (fixed upstream)
+ sed -e '/test_preserves_order_when_reading_from_cache_plus_rendering/askip "Fails with rails-dom-testing 2.3"' \
+ -i test/controller/caching_test.rb || die
+
+ # Avoid tests requiring chrome
+ sed -e '/DrivenBySeleniumWith/,/^end/ s:^:#:' \
+ -i test/abstract_unit.rb || die
+ rm -f test/dispatch/system_testing/{driver,screenshot_helper,system_test_case}_test.rb || die
+}
diff --git a/dev-ruby/actiontext/actiontext-7.2.3.ebuild b/dev-ruby/actiontext/actiontext-7.2.3.ebuild
index 7efebc7ce69c..1f6256fe3ed9 100644
--- a/dev-ruby/actiontext/actiontext-7.2.3.ebuild
+++ b/dev-ruby/actiontext/actiontext-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -53,6 +53,7 @@ all_ruby_prepare() {
-e '/:job/,/end/ s:^:#:' \
-e '/group :\(cable\|doc\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
-e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
-i ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/actiontext/actiontext-8.0.4-r1.ebuild b/dev-ruby/actiontext/actiontext-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..5c0f74bc5039
--- /dev/null
+++ b/dev-ruby/actiontext/actiontext-8.0.4-r1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="actiontext.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_EXTRAINSTALL="app db package.json"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Edit and display rich text in Rails applications"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/activestorage-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/globalid-0.6.0
+ >=dev-ruby/nokogiri-1.8.5
+"
+
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ >=dev-ruby/importmap-rails-1.2.3
+ dev-ruby/minitest:5
+ dev-ruby/mocha
+ dev-ruby/propshaft
+ >=dev-ruby/sqlite3-1.4.0
+)"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|mysql2\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|sass-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|sprockets\|stackprof\|websocket-client-simple\|libxml-ruby\|redis\|blade\|aws-sdk\|google-cloud\|azure-storage\|selenium\|webpacker\|webrick\|webmock\|webdrivers\|minitest-bisect\|minitest-retry\|minitest-reporters\|listen\|rack-cache\|rack-test\|bootsnap\|capybara\|dalli\|connection_pool\|terser\|cookiejar\|cgi\|web-console\|trilogy\|error_highlight\|jbuilder\|httpclient\|prism\|solid\|kamal\|thruster\|releaser\)/ s:^:#:" \
+ -e '/stimulus-rails/,/cssbundling-rails/ s:^:#:' \
+ -e '/tailwindcss-rails/,/dartsass-rails/ s:^:#:' \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :\(cable\|doc\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
+ -e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
+ -i ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Avoid failing test depending on yarn
+ rm -f test/javascript_package_test.rb || die
+}
+
+each_ruby_prepare() {
+ sed -i -e 's:ruby:'${RUBY}':' test/dummy/bin/* || die
+}
+
+each_ruby_test() {
+ export SEED="2"
+ each_fakegem_test
+}
diff --git a/dev-ruby/actiontext/actiontext-8.0.4.ebuild b/dev-ruby/actiontext/actiontext-8.0.4.ebuild
index 62f5a28e1b3d..a8d54b9d60ca 100644
--- a/dev-ruby/actiontext/actiontext-8.0.4.ebuild
+++ b/dev-ruby/actiontext/actiontext-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -53,6 +53,7 @@ all_ruby_prepare() {
-e '/:job/,/end/ s:^:#:' \
-e '/group :\(cable\|doc\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
-e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
-i ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/actiontext/actiontext-8.1.2-r1.ebuild b/dev-ruby/actiontext/actiontext-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..f76b1067c036
--- /dev/null
+++ b/dev-ruby/actiontext/actiontext-8.1.2-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="actiontext.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_EXTRAINSTALL="app db package.json"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Edit and display rich text in Rails applications"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ >=dev-ruby/action_text-trix-2.1.15:2
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/activestorage-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/globalid-0.6.0
+ >=dev-ruby/nokogiri-1.8.5
+"
+
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ >=dev-ruby/importmap-rails-1.2.3
+ dev-ruby/minitest:5
+ dev-ruby/mocha
+ dev-ruby/propshaft
+ >=dev-ruby/sqlite3-2.1
+)"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|mysql2\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|sass-rails\|debugger\|sprockets-rails\|redcarpet\|bcrypt\|uglifier\|sprockets\|stackprof\|websocket-client-simple\|libxml-ruby\|redis\|blade\|aws-sdk\|google-cloud\|azure-storage\|selenium\|webpacker\|webrick\|webmock\|webdrivers\|minitest-bisect\|minitest-retry\|minitest-reporters\|listen\|rack-cache\|rack-test\|bootsnap\|capybara\|dalli\|connection_pool\|terser\|cookiejar\|cgi\|web-console\|trilogy\|error_highlight\|jbuilder\|httpclient\|prism\|solid\|kamal\|thruster\|releaser\)/ s:^:#:" \
+ -e '/stimulus-rails/,/cssbundling-rails/ s:^:#:' \
+ -e '/tailwindcss-rails/,/dartsass-rails/ s:^:#:' \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :\(cable\|doc\|lint\|mdl\|rubocop\|storage\|test\)/,/^end/ s:^:#:' \
+ -i ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Avoid failing test depending on yarn
+ rm -f test/javascript_package_test.rb || die
+}
+
+each_ruby_prepare() {
+ sed -i -e 's:ruby:'${RUBY}':' test/dummy/bin/* || die
+}
+
+each_ruby_test() {
+ export SEED="2"
+ each_fakegem_test
+}
diff --git a/dev-ruby/actionview/actionview-7.1.5.1.ebuild b/dev-ruby/actionview/actionview-7.1.5.1.ebuild
index 1863b6695bcf..00356d11d286 100644
--- a/dev-ruby/actionview/actionview-7.1.5.1.ebuild
+++ b/dev-ruby/actionview/actionview-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,7 +23,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionview/actionview-7.1.6.ebuild b/dev-ruby/actionview/actionview-7.1.6.ebuild
index 0195870d812e..e86a3b89a226 100644
--- a/dev-ruby/actionview/actionview-7.1.6.ebuild
+++ b/dev-ruby/actionview/actionview-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,7 +23,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/actionview/actionview-7.2.3.ebuild b/dev-ruby/actionview/actionview-7.2.3.ebuild
index f5b606c267eb..b47b8bd52ac9 100644
--- a/dev-ruby/actionview/actionview-7.2.3.ebuild
+++ b/dev-ruby/actionview/actionview-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -64,7 +64,7 @@ all_ruby_prepare() {
-e '/defined/ s/FixtureSet/ActiveRecord::FixtureSet/' \
-i test/active_record_unit.rb || die
- sed -e '3irequire "ostruct"; gem "actionpack", "~> 7.2.0"; gem "activerecord", "~> 7.2.0"; gem "railties", "~> 7.2.0"' \
+ sed -e '3irequire "ostruct"; gem "actionpack", "~> 7.2.0"; gem "activerecord", "~> 7.2.0"; gem "railties", "~> 7.2.0"; gem "minitest", "~> 5"' \
-i test/abstract_unit.rb || die
# Avoid test failing on capitalization difference
diff --git a/dev-ruby/actionview/actionview-8.0.4-r1.ebuild b/dev-ruby/actionview/actionview-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..64fa2157d129
--- /dev/null
+++ b/dev-ruby/actionview/actionview-8.0.4-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+RUBY_FAKEGEM_EXTRAINSTALL="app"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Simple, battle-tested conventions and helpers for building web pages"
+HOMEPAGE="https://github.com/rails/rails/"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/builder-3.1:* =dev-ruby/builder-3*:*
+ >=dev-ruby/erubi-1.11:0
+ >=dev-ruby/rails-dom-testing-2.2:2
+ >=dev-ruby/rails-html-sanitizer-1.6:1
+"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/capybara
+ dev-ruby/mocha
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activemodel-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/railties-${PV}
+ dev-ruby/prism
+ dev-ruby/sqlite3
+ dev-ruby/minitest:5
+ )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -i -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|'mysql'\|journey\|rack-cache\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|redcarpet\|bcrypt\|uglifier\|mime-types\|minitest\|sprockets\|stackprof\)/ s:^:#:" \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :doc/,/^end/ s:^:#:' ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Fix loading of activerecord integration tests. This avoids loading
+ # activerecord twice and thus redefining constants leading to
+ # failures. Bug #719342
+ sed -e '/abstract_unit/arequire "active_record" ; require "active_record/fixtures"' \
+ -e '/defined/ s/FixtureSet/ActiveRecord::FixtureSet/' \
+ -i test/active_record_unit.rb || die
+
+ sed -e '3irequire "ostruct"; gem "actionpack", "~> 8.0.0"; gem "activerecord", "~> 8.0.0"; gem "railties", "~> 8.0.0"; gem "minitest", "~> 5"' \
+ -i test/abstract_unit.rb || die
+
+ # Avoid test failing on capitalization difference
+ sed -e '/test_raise_arg_overrides_raise_config_option/askip "Capitalization difference"' \
+ -i test/template/translation_helper_test.rb || die
+
+ # Remove tests that are coupled to the Sanitizer (already removed upstream)
+ sed -e '/test_sanitized_allowed_\(tags_class_method\|attributes_class_method\)/askip "Removed upstream"' \
+ -i test/template/sanitize_helper_test.rb || die
+}
diff --git a/dev-ruby/actionview/actionview-8.0.4.ebuild b/dev-ruby/actionview/actionview-8.0.4.ebuild
index a0c9dd5ba886..b59ad9abd0c2 100644
--- a/dev-ruby/actionview/actionview-8.0.4.ebuild
+++ b/dev-ruby/actionview/actionview-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -64,7 +64,7 @@ all_ruby_prepare() {
-e '/defined/ s/FixtureSet/ActiveRecord::FixtureSet/' \
-i test/active_record_unit.rb || die
- sed -e '3irequire "ostruct"; gem "actionpack", "~> 8.0.0"; gem "activerecord", "~> 8.0.0"; gem "railties", "~> 8.0.0"' \
+ sed -e '3irequire "ostruct"; gem "actionpack", "~> 8.0.0"; gem "activerecord", "~> 8.0.0"; gem "railties", "~> 8.0.0"; gem "minitest", "~> 5"' \
-i test/abstract_unit.rb || die
# Avoid test failing on capitalization difference
diff --git a/dev-ruby/actionview/actionview-8.1.2-r1.ebuild b/dev-ruby/actionview/actionview-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..0ece6e1c60e2
--- /dev/null
+++ b/dev-ruby/actionview/actionview-8.1.2-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+RUBY_FAKEGEM_EXTRAINSTALL="app"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Simple, battle-tested conventions and helpers for building web pages"
+HOMEPAGE="https://github.com/rails/rails/"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/builder-3.1:* =dev-ruby/builder-3*:*
+ >=dev-ruby/erubi-1.11:0
+ >=dev-ruby/rails-dom-testing-2.2:2
+ >=dev-ruby/rails-html-sanitizer-1.6:1
+"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/capybara
+ dev-ruby/mocha
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activemodel-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/railties-${PV}
+ dev-ruby/prism
+ dev-ruby/sqlite3
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -i -e "/\(system_timer\|sdoc\|w3c_validators\|pg\|execjs\|jquery-rails\|'mysql'\|journey\|rack-cache\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|redcarpet\|bcrypt\|uglifier\|mime-types\|sprockets\|stackprof\)/ s:^:#:" \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :doc/,/^end/ s:^:#:' ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ sed -e '3igem "minitest", "~> 6.0"; gem "minitest-mock"' \
+ -i test/abstract_unit.rb || die
+}
diff --git a/dev-ruby/activejob/activejob-7.1.5.1.ebuild b/dev-ruby/activejob/activejob-7.1.5.1.ebuild
index 593b5e67712f..b7d12a6d829c 100644
--- a/dev-ruby/activejob/activejob-7.1.5.1.ebuild
+++ b/dev-ruby/activejob/activejob-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,7 +21,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activejob/activejob-7.1.6.ebuild b/dev-ruby/activejob/activejob-7.1.6.ebuild
index bc8e6896e5e5..0ba1660ff5ee 100644
--- a/dev-ruby/activejob/activejob-7.1.6.ebuild
+++ b/dev-ruby/activejob/activejob-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,7 +21,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activejob/activejob-8.0.4-r1.ebuild b/dev-ruby/activejob/activejob-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..052d3249cd99
--- /dev/null
+++ b/dev-ruby/activejob/activejob-8.0.4-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_DOCDIR=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Job framework with pluggable queues"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/globalid-0.3.6
+"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/mocha
+ dev-ruby/zeitwerk
+ )"
+
+all_ruby_prepare() {
+ # Set test environment to our hand.
+ sed -i -e '/load_paths/d' test/helper.rb || die "Unable to remove load paths"
+
+ # Remove all currently unpackaged queues.
+ sed -i -e 's/que queue_classic resque sidekiq sneakers sucker_punch backburner//' \
+ -e 's/delayed_job//' Rakefile || die
+ sed -i -e '/SneakersAdapter/ s:^:#:' test/cases/exceptions_test.rb || die
+ rm -f test/cases/delayed_job_adapter_test.rb || die
+}
diff --git a/dev-ruby/activejob/activejob-8.0.4.ebuild b/dev-ruby/activejob/activejob-8.0.4.ebuild
index c18ce5deab00..97b534c02c3d 100644
--- a/dev-ruby/activejob/activejob-8.0.4.ebuild
+++ b/dev-ruby/activejob/activejob-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-ruby/activejob/activejob-8.1.2-r1.ebuild b/dev-ruby/activejob/activejob-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..052d3249cd99
--- /dev/null
+++ b/dev-ruby/activejob/activejob-8.1.2-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_DOCDIR=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Job framework with pluggable queues"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/globalid-0.3.6
+"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/mocha
+ dev-ruby/zeitwerk
+ )"
+
+all_ruby_prepare() {
+ # Set test environment to our hand.
+ sed -i -e '/load_paths/d' test/helper.rb || die "Unable to remove load paths"
+
+ # Remove all currently unpackaged queues.
+ sed -i -e 's/que queue_classic resque sidekiq sneakers sucker_punch backburner//' \
+ -e 's/delayed_job//' Rakefile || die
+ sed -i -e '/SneakersAdapter/ s:^:#:' test/cases/exceptions_test.rb || die
+ rm -f test/cases/delayed_job_adapter_test.rb || die
+}
diff --git a/dev-ruby/activemodel/activemodel-7.1.5.1.ebuild b/dev-ruby/activemodel/activemodel-7.1.5.1.ebuild
index 1ae4f701eb52..df4d49dc8ed6 100644
--- a/dev-ruby/activemodel/activemodel-7.1.5.1.ebuild
+++ b/dev-ruby/activemodel/activemodel-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,7 +19,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activemodel/activemodel-7.1.6.ebuild b/dev-ruby/activemodel/activemodel-7.1.6.ebuild
index d54bb3fbdc2e..c6472f59682a 100644
--- a/dev-ruby/activemodel/activemodel-7.1.6.ebuild
+++ b/dev-ruby/activemodel/activemodel-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -19,7 +19,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activemodel/activemodel-7.2.3.ebuild b/dev-ruby/activemodel/activemodel-7.2.3.ebuild
index c55512204c04..3f1accc6fffa 100644
--- a/dev-ruby/activemodel/activemodel-7.2.3.ebuild
+++ b/dev-ruby/activemodel/activemodel-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -39,7 +39,7 @@ ruby_add_bdepend "
all_ruby_prepare() {
# Set test environment to our hand.
- sed -e '3igem "activesupport", "~> 7.2.0"; gem "railties", "~> 7.2.0"' \
+ sed -e '3igem "activesupport", "~> 7.2.0"; gem "railties", "~> 7.2.0"; gem "minitest", "~> 5"' \
-e '/load_paths/d' \
-i test/cases/helper.rb || die
diff --git a/dev-ruby/activemodel/activemodel-8.0.4-r1.ebuild b/dev-ruby/activemodel/activemodel-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..07d90ec7ab80
--- /dev/null
+++ b/dev-ruby/activemodel/activemodel-8.0.4-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="activemodel.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Toolkit for building modeling frameworks like Active Record and Active Resource"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/activesupport-${PV}:*
+"
+
+ruby_add_bdepend "
+ test? (
+ ~dev-ruby/railties-${PV}
+ dev-ruby/test-unit:2
+ dev-ruby/mocha
+ >=dev-ruby/bcrypt-ruby-3.1.7
+ dev-ruby/minitest:5
+ )"
+
+all_ruby_prepare() {
+ sed -e '3igem "minitest", "~> 5"' \
+ -i test/cases/helper.rb || die
+
+ # Set test environment to our hand.
+ sed -i -e '/load_paths/d' test/cases/helper.rb || die "Unable to remove load paths"
+}
diff --git a/dev-ruby/activemodel/activemodel-8.0.4.ebuild b/dev-ruby/activemodel/activemodel-8.0.4.ebuild
index e203c418da1e..306184711a49 100644
--- a/dev-ruby/activemodel/activemodel-8.0.4.ebuild
+++ b/dev-ruby/activemodel/activemodel-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -38,6 +38,9 @@ ruby_add_bdepend "
)"
all_ruby_prepare() {
+ sed -e '3igem "minitest", "~> 5"' \
+ -i test/cases/helper.rb || die
+
# Set test environment to our hand.
sed -i -e '/load_paths/d' test/cases/helper.rb || die "Unable to remove load paths"
}
diff --git a/dev-ruby/activemodel/activemodel-8.1.2-r1.ebuild b/dev-ruby/activemodel/activemodel-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..eb8e982dbaa7
--- /dev/null
+++ b/dev-ruby/activemodel/activemodel-8.1.2-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="activemodel.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Toolkit for building modeling frameworks like Active Record and Active Resource"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "
+ ~dev-ruby/activesupport-${PV}:*
+"
+
+ruby_add_bdepend "
+ test? (
+ ~dev-ruby/railties-${PV}
+ dev-ruby/test-unit:2
+ dev-ruby/mocha
+ >=dev-ruby/bcrypt-ruby-3.1.7
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ )"
+
+all_ruby_prepare() {
+ # Set test environment to our hand.
+ sed -e '/load_paths/ s:^:#:' \
+ -e '3igem "minitest", "~> 6.0"; gem "minitest-mock"' \
+ -i test/cases/helper.rb || die "Unable to remove load paths"
+}
diff --git a/dev-ruby/activerecord/activerecord-7.1.5.1.ebuild b/dev-ruby/activerecord/activerecord-7.1.5.1.ebuild
index 5e185ecccfd2..17484808b012 100644
--- a/dev-ruby/activerecord/activerecord-7.1.5.1.ebuild
+++ b/dev-ruby/activerecord/activerecord-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,7 +23,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="mysql postgres sqlite"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activerecord/activerecord-7.1.6.ebuild b/dev-ruby/activerecord/activerecord-7.1.6.ebuild
index 22a4211c99b5..447e6cd47cfa 100644
--- a/dev-ruby/activerecord/activerecord-7.1.6.ebuild
+++ b/dev-ruby/activerecord/activerecord-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,7 +23,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="mysql postgres sqlite"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/activerecord/activerecord-7.2.3.ebuild b/dev-ruby/activerecord/activerecord-7.2.3.ebuild
index b4a52ed95e7b..0e5710e8899d 100644
--- a/dev-ruby/activerecord/activerecord-7.2.3.ebuild
+++ b/dev-ruby/activerecord/activerecord-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -60,7 +60,7 @@ all_ruby_prepare() {
-i ../Gemfile || die
sed -i -e '/byebug/ s:^:#:' test/cases/base_prevent_writes_test.rb || die
- sed -e '3igem "activemodel", "~> 7.2.0"; gem "actionpack", "~> 7.2.0"; gem "activejob", "~> 7.2.0"; gem "rack", "~> 3.2.0"' \
+ sed -e '3igem "activemodel", "~> 7.2.0"; gem "actionpack", "~> 7.2.0"; gem "activejob", "~> 7.2.0"; gem "rack", "~> 3.2.0"; gem "minitest", "~> 5"' \
-i test/cases/helper.rb || die
# Avoid single tests using mysql or postgres dependencies.
diff --git a/dev-ruby/activerecord/activerecord-8.0.4-r1.ebuild b/dev-ruby/activerecord/activerecord-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..cf4b7335b78d
--- /dev/null
+++ b/dev-ruby/activerecord/activerecord-8.0.4-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+# this is not null so that the dependencies will actually be filled
+RUBY_FAKEGEM_TASK_TEST="test"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="activerecord.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Implements the ActiveRecord pattern (Fowler, PoEAA) for ORM"
+HOMEPAGE="https://github.com/rails/rails/"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+IUSE="mysql postgres sqlite"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "~dev-ruby/activesupport-${PV}
+ ~dev-ruby/activemodel-${PV}
+ >=dev-ruby/timeout-0.4.0
+ sqlite? ( >=dev-ruby/sqlite3-2.1 )
+ mysql? ( dev-ruby/mysql2:0.5 )
+ postgres? ( >=dev-ruby/pg-1.1:1 )"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/benchmark-ips
+ dev-ruby/bundler
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/railties-${PV}
+ >=dev-ruby/sqlite3-1.4.0
+ dev-ruby/mocha
+ dev-ruby/minitest:5
+ )"
+
+DEPEND+=" test? ( >=dev-db/sqlite-3.12.1 )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ rm ../Gemfile.lock || die
+ sed -e "/\(uglifier\|system_timer\|sdoc\|w3c_validators\|pg\|jquery-rails\|execjs\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|redcarpet\|minitest\|sprockets\|stackprof\)/ s:^:#:" \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :doc/,/^end/ s:^:#:' \
+ -i ../Gemfile || die
+ sed -i -e '/rack-ssl/d' -e 's/~> 3.4/>= 3.4/' ../railties/railties.gemspec || die
+ sed -e '/bcrypt/ s/3.0.0/3.0/' \
+ -i ../Gemfile || die
+ sed -i -e '/byebug/ s:^:#:' test/cases/base_prevent_writes_test.rb || die
+
+ # Add back json in the Gemfile because we dropped some dependencies
+ # earlier that implicitly required it.
+ sed -i -e '$agem "json"' ../Gemfile || die
+
+ sed -e '3igem "activemodel", "~> 8.0.0"; gem "actionpack", "~> 8.0.0"; gem "activejob", "~> 8.0.0"; gem "minitest", "~>5"' \
+ -i test/cases/helper.rb || die
+
+ # Avoid single tests using mysql or postgres dependencies.
+ rm test/cases/invalid_connection_test.rb || die
+ sed -e '/test_switching_connections_with_database_url/askip "postgres"' \
+ -i test/cases/connection_adapters/connection_handlers_multi_db_test.rb || die
+
+ # Avoid failing test that makes bad assumptions on database state.
+ sed -i -e '/test_do_not_call_callbacks_for_delete_all/,/^ end/ s:^:#:' \
+ test/cases/associations/has_many_associations_test.rb
+
+ # Avoid test failing to bind limit length in favor of security release
+ sed -i -e '/test_too_many_binds/askip "Fails on Gentoo"' test/cases/bind_parameter_test.rb || die
+
+ # Avoid test requiring specific locales
+ sed -i -e '/test_unicode_input_casting/askip "Requires specific locales"' test/cases/binary_test.rb || die
+
+ # Avoid test not compatible with new sqlite versions
+ sed -e '/test_strict_strings_by_default/askip "Fails with newer sqlite"' \
+ -i test/cases/adapters/sqlite3/sqlite3_adapter_test.rb || die
+
+ # Avoid tests requiring a full Rails setup
+ rm -f test/cases/adapters/sqlite3/dbconsole_test.rb || die
+}
+
+each_ruby_test() {
+ if use sqlite; then
+ ${RUBY} -S rake test_sqlite3 || die "sqlite3 tests failed"
+ fi
+}
diff --git a/dev-ruby/activerecord/activerecord-8.0.4.ebuild b/dev-ruby/activerecord/activerecord-8.0.4.ebuild
index c0021b6f7437..25d083a0ef0a 100644
--- a/dev-ruby/activerecord/activerecord-8.0.4.ebuild
+++ b/dev-ruby/activerecord/activerecord-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -66,7 +66,7 @@ all_ruby_prepare() {
# earlier that implicitly required it.
sed -i -e '$agem "json"' ../Gemfile || die
- sed -e '3igem "activemodel", "~> 8.0.0"; gem "actionpack", "~> 8.0.0"; gem "activejob", "~> 8.0.0"' \
+ sed -e '3igem "activemodel", "~> 8.0.0"; gem "actionpack", "~> 8.0.0"; gem "activejob", "~> 8.0.0"; gem "minitest", "~>5"' \
-i test/cases/helper.rb || die
# Avoid single tests using mysql or postgres dependencies.
diff --git a/dev-ruby/activerecord/activerecord-8.1.2-r1.ebuild b/dev-ruby/activerecord/activerecord-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..4a2559343a62
--- /dev/null
+++ b/dev-ruby/activerecord/activerecord-8.1.2-r1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+# this is not null so that the dependencies will actually be filled
+RUBY_FAKEGEM_TASK_TEST="test"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="activerecord.gemspec"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Implements the ActiveRecord pattern (Fowler, PoEAA) for ORM"
+HOMEPAGE="https://github.com/rails/rails/"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+IUSE="mysql postgres sqlite"
+
+RUBY_S="rails-${PV}/${PN}"
+
+ruby_add_rdepend "~dev-ruby/activesupport-${PV}
+ ~dev-ruby/activemodel-${PV}
+ >=dev-ruby/timeout-0.4.0
+ sqlite? ( >=dev-ruby/sqlite3-2.1 )
+ mysql? ( dev-ruby/mysql2:0.5 )
+ postgres? ( >=dev-ruby/pg-1.1:1 )"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/benchmark-ips
+ dev-ruby/bundler
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/railties-${PV}
+ >=dev-ruby/sqlite3-2.1
+ dev-ruby/mocha
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ )"
+
+DEPEND+=" test? ( >=dev-db/sqlite-3.12.1 )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ rm ../Gemfile.lock || die
+ sed -e "/\(uglifier\|system_timer\|sdoc\|w3c_validators\|pg\|jquery-rails\|execjs\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|redcarpet\|sprockets\|stackprof\)/ s:^:#:" \
+ -e '/:job/,/end/ s:^:#:' \
+ -e '/group :doc/,/^end/ s:^:#:' \
+ -i ../Gemfile || die
+ sed -e '/bcrypt/ s/3.0.0/3.0/' \
+ -i ../Gemfile || die
+ sed -i -e '/byebug/ s:^:#:' test/cases/base_prevent_writes_test.rb || die
+
+ sed -e '2igem "minitest", "~> 6.0"; gem "minitest-mock"' \
+ -i test/cases/helper.rb || die
+
+ # Add back json in the Gemfile because we dropped some dependencies
+ # earlier that implicitly required it.
+ sed -i -e '$agem "json"' ../Gemfile || die
+
+ # Avoid single tests using mysql or postgres dependencies.
+ rm test/cases/invalid_connection_test.rb || die
+ sed -e '/test_switching_connections_with_database_url/askip "postgres"' \
+ -i test/cases/connection_adapters/connection_handlers_multi_db_test.rb || die
+
+ # Avoid failing test that makes bad assumptions on database state.
+ sed -i -e '/test_do_not_call_callbacks_for_delete_all/,/^ end/ s:^:#:' \
+ test/cases/associations/has_many_associations_test.rb
+
+ # Avoid test failing to bind limit length in favor of security release
+ sed -i -e '/test_too_many_binds/askip "Fails on Gentoo"' test/cases/bind_parameter_test.rb || die
+
+ # Avoid test requiring specific locales
+ sed -i -e '/test_unicode_input_casting/askip "Requires specific locales"' test/cases/binary_test.rb || die
+
+ # Avoid test not compatible with new sqlite versions
+ sed -e '/test_strict_strings_by_default/askip "Fails with newer sqlite"' \
+ -i test/cases/adapters/sqlite3/sqlite3_adapter_test.rb || die
+
+ # Avoid tests requiring a full Rails setup
+ rm -f test/cases/adapters/sqlite3/dbconsole_test.rb || die
+}
+
+each_ruby_test() {
+ if use sqlite; then
+ ${RUBY} -S rake test_sqlite3 || die "sqlite3 tests failed"
+ fi
+}
diff --git a/dev-ruby/activestorage/activestorage-7.2.3.ebuild b/dev-ruby/activestorage/activestorage-7.2.3.ebuild
index 2b79d25eb814..c395225742db 100644
--- a/dev-ruby/activestorage/activestorage-7.2.3.ebuild
+++ b/dev-ruby/activestorage/activestorage-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -50,6 +50,10 @@ ruby_add_bdepend "
>=dev-ruby/sqlite3-1.6.6
)"
+PATCHES=(
+ "${FILESDIR}"/activestorage-7.2.3-ffmpeg-8.patch
+)
+
all_ruby_prepare() {
# Remove items from the common Gemfile that we don't need for this
# test run. This also requires handling some gemspecs.
@@ -58,6 +62,7 @@ all_ruby_prepare() {
-e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|test\)/,/^end/ s:^:#:' \
-e '/sprockets-rails/ s/, require: false//' \
-e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
-i ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activestorage/activestorage-8.0.4-r1.ebuild b/dev-ruby/activestorage/activestorage-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..825b19272686
--- /dev/null
+++ b/dev-ruby/activestorage/activestorage-8.0.4-r1.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_DOCDIR=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="activestorage.gemspec"
+
+RUBY_FAKEGEM_EXTRAINSTALL="app config db"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Attach cloud and local files in Rails applications"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+DEPEND+=" test? ( >=app-text/mupdf-1.23.7 media-gfx/imagemagick[jpeg,png,tiff] media-video/ffmpeg app-text/poppler[utils] ) "
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}:*
+ ~dev-ruby/activejob-${PV}:*
+ ~dev-ruby/activerecord-${PV}:*
+ ~dev-ruby/activesupport-${PV}:*
+ dev-ruby/marcel:1.0
+"
+
+ruby_add_bdepend "
+ test? (
+ ~dev-ruby/railties-${PV}
+ >=dev-ruby/image_processing-1.2:0
+ dev-ruby/minitest:5
+ dev-ruby/mini_magick
+ dev-ruby/mocha
+ dev-ruby/rake
+ dev-ruby/sprockets-rails
+ >=dev-ruby/sqlite3-1.6.6
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/activestorage-7.2.3-ffmpeg-8.patch
+)
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -e "/\(system_timer\|pg\|execjs\|jquery-rails\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|bcrypt\|uglifier\|aws-sdk-s3\|aws-sdk-sns\|google-cloud-storage\|azure-storage\|blade\|bootsnap\|hiredis\|qunit-selenium\|chromedriver-helper\|rb-inotify\|libxml-ruby\|sass-rails\|capybara\|rack-cache\|selenium\|dalli\|listen\|connection_pool\|mysql2\|webdrivers\|webpacker\|rexml\|webmock\|webrick\|propshaft\|sprockets-export\|rack-test\|terser\|cookiejar\|cgi\|web-console\|trilogy\|error_highlight\|jbuilder\|httpclient\|prism\|solid\|kamal\|thruster\|releaser\)/ s:^:#:" \
+ -e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
+ -e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|test\)/,/^end/ s:^:#:' \
+ -e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
+ -i ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Use mini_magick since vips is not packaged on Gentoo
+ sed -i -e '/mini_magick/aActiveStorage.variant_processor = :mini_magick' test/test_helper.rb || die
+ # Avoid vips-specific tests
+ sed -e '/\(resized and monochrome variation of JPEG blob\|monochrome with default variant_processor\|disabled variation of JPEG blob\)/askip "No vips support"' \
+ -i test/models/variant_test.rb || die
+
+ # Avoid test where different ffmpeg versions apply different rounding for the duration.
+ sed -i -e '/1.022000/ s:^:#:' test/analyzer/video_analyzer_test.rb || die
+
+ # Avoid failing test depending on yarn
+ rm -f test/javascript_package_test.rb || die
+
+ # Avoid unimportant asset configuration. This most likely fails due
+ # to some kind of dependency issue.
+ rm -f test/dummy/config/initializers/assets.rb || die
+
+ # Avoid test failing due to missing (and unpackaged) AzureStorage service.
+ sed -e '/azure service is deprecated/askip "Not packaged in Gentoo."' \
+ -i test/service/configurator_test.rb || die
+}
diff --git a/dev-ruby/activestorage/activestorage-8.0.4.ebuild b/dev-ruby/activestorage/activestorage-8.0.4.ebuild
index 4f63bbe6a3e0..95aef380d34e 100644
--- a/dev-ruby/activestorage/activestorage-8.0.4.ebuild
+++ b/dev-ruby/activestorage/activestorage-8.0.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -50,6 +50,10 @@ ruby_add_bdepend "
>=dev-ruby/sqlite3-1.6.6
)"
+PATCHES=(
+ "${FILESDIR}"/activestorage-7.2.3-ffmpeg-8.patch
+)
+
all_ruby_prepare() {
# Remove items from the common Gemfile that we don't need for this
# test run. This also requires handling some gemspecs.
@@ -57,6 +61,7 @@ all_ruby_prepare() {
-e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
-e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|test\)/,/^end/ s:^:#:' \
-e '/sqlite/ s/1.6.4/99/' \
+ -e 's/gem "minitest"/gem "minitest", "~> 5"/' \
-i ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activestorage/activestorage-8.1.2-r1.ebuild b/dev-ruby/activestorage/activestorage-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..e597c1540b79
--- /dev/null
+++ b/dev-ruby/activestorage/activestorage-8.1.2-r1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_DOCDIR=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="activestorage.gemspec"
+
+RUBY_FAKEGEM_EXTRAINSTALL="app config db"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Attach cloud and local files in Rails applications"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+DEPEND+=" test? ( >=app-text/mupdf-1.23.7 media-gfx/imagemagick[jpeg,png,tiff] media-video/ffmpeg app-text/poppler[utils] ) "
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}:*
+ ~dev-ruby/activejob-${PV}:*
+ ~dev-ruby/activerecord-${PV}:*
+ ~dev-ruby/activesupport-${PV}:*
+ dev-ruby/marcel:1.0
+"
+
+ruby_add_bdepend "
+ test? (
+ ~dev-ruby/railties-${PV}
+ >=dev-ruby/image_processing-1.2:0
+ dev-ruby/minitest:6
+ dev-ruby/mini_magick
+ dev-ruby/mocha
+ dev-ruby/rake
+ dev-ruby/sprockets-rails
+ >=dev-ruby/sqlite3-2.1.0
+ dev-ruby/webmock
+ )"
+
+all_ruby_prepare() {
+ # Remove items from the common Gemfile that we don't need for this
+ # test run. This also requires handling some gemspecs.
+ sed -e "/\(system_timer\|pg\|execjs\|jquery-rails\|'mysql'\|journey\|ruby-prof\|stackprof\|benchmark-ips\|kindlerb\|turbolinks\|coffee-rails\|debugger\|bcrypt\|uglifier\|aws-sdk-s3\|aws-sdk-sns\|google-cloud-storage\|azure-storage\|blade\|bootsnap\|hiredis\|qunit-selenium\|chromedriver-helper\|rb-inotify\|libxml-ruby\|sass-rails\|capybara\|rack-cache\|selenium\|dalli\|listen\|connection_pool\|mysql2\|webdrivers\|webpacker\|rexml\|webrick\|propshaft\|sprockets-export\|rack-test\|terser\|cookiejar\|cgi\|web-console\|trilogy\|error_highlight\|jbuilder\|httpclient\|prism\|solid\|kamal\|thruster\|releaser\)/ s:^:#:" \
+ -e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
+ -e '/group :\(cable\|doc\|job\|lint\|mdl\|rubocop\|test\)/,/^end/ s:^:#:' \
+ -i ../Gemfile || die
+ rm ../Gemfile.lock || die
+
+ # Use mini_magick since vips is not packaged on Gentoo
+ sed -e '/mini_magick/aActiveStorage.variant_processor = :mini_magick' \
+ -i test/test_helper.rb || die
+ # Avoid vips-specific tests
+ sed -e '/\(resized and monochrome variation of JPEG blob\|monochrome with default variant_processor\|disabled variation of JPEG blob\)/askip "No vips support"' \
+ -i test/models/variant_test.rb || die
+ sed -e '/analyzing with ruby-vips unavailable/askip "No vips support"' \
+ -i test/analyzer/image_analyzer/image_magick_test.rb || die
+ rm -f test/analyzer/image_analyzer/vips_test.rb || die
+ sed -e '/Rails.application.configure/aconfig.active_storage.variant_processor = :mini_magick' \
+ -i test/dummy/config/environments/*.rb || die
+
+ # Avoid test where different ffmpeg versions apply different rounding for the duration.
+ sed -i -e '/1.022000/ s:^:#:' test/analyzer/video_analyzer_test.rb || die
+
+ # Avoid failing test depending on yarn
+ rm -f test/javascript_package_test.rb || die
+
+ # Avoid unimportant asset configuration. This most likely fails due
+ # to some kind of dependency issue.
+ rm -f test/dummy/config/initializers/assets.rb || die
+
+ # Avoid test failing due to missing (and unpackaged) AzureStorage service.
+ sed -e '/azure service is deprecated/askip "Not packaged in Gentoo."' \
+ -i test/service/configurator_test.rb || die
+}
diff --git a/dev-ruby/activestorage/files/activestorage-7.2.3-ffmpeg-8.patch b/dev-ruby/activestorage/files/activestorage-7.2.3-ffmpeg-8.patch
new file mode 100644
index 000000000000..eb58ae710d55
--- /dev/null
+++ b/dev-ruby/activestorage/files/activestorage-7.2.3-ffmpeg-8.patch
@@ -0,0 +1,20 @@
+https://github.com/rails/rails/issues/56069
+https://github.com/rails/rails/pull/56125
+
+From 92cee4cd5eb0f0dc2412b6ac9e4169c49ee52733 Mon Sep 17 00:00:00 2001
+From: zzak <zzak@hey.com>
+Date: Mon, 10 Nov 2025 15:00:25 +0900
+Subject: [PATCH] Fix AudioAnalyzerTest for ffmpeg 7 and ffmpeg 8
+
+--- a/test/analyzer/audio_analyzer_test.rb
++++ b/test/analyzer/audio_analyzer_test.rb
+@@ -10,7 +10,8 @@ class ActiveStorage::Analyzer::AudioAnalyzerTest < ActiveSupport::TestCase
+ blob = create_file_blob(filename: "audio.mp3", content_type: "audio/mp3")
+ metadata = extract_metadata_from(blob)
+
+- assert_equal 0.914286, metadata[:duration]
++ assert (0.863379..0.914286).include?(metadata[:duration])
++
+ assert_equal 128000, metadata[:bit_rate]
+ assert_equal 44100, metadata[:sample_rate]
+ assert_not_nil metadata[:tags]
diff --git a/dev-ruby/activesupport/activesupport-7.1.5.1.ebuild b/dev-ruby/activesupport/activesupport-7.1.5.1.ebuild
index d68c35ef826b..175ee1886d82 100644
--- a/dev-ruby/activesupport/activesupport-7.1.5.1.ebuild
+++ b/dev-ruby/activesupport/activesupport-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -47,6 +47,7 @@ ruby_add_rdepend "
# memcache-client, nokogiri, builder, and redis are not strictly needed,
# but there are tests using this code.
ruby_add_bdepend "test? (
+ <dev-ruby/dalli-5
>=dev-ruby/dalli-3.0.1
>=dev-ruby/nokogiri-1.8.1
>=dev-ruby/builder-3.1.0
@@ -68,6 +69,7 @@ all_ruby_prepare() {
-e '/^group :test/,/^end/ s:^:#:' \
-e '/^\s*group :\(db\|doc\|rubocop\|job\|cable\|lint\|mdl\|storage\|ujs\|test\|view\) do/,/^\s*end/ s:^:#:' \
-e 's/gemspec/gemspec path: "activesupport"/' \
+ -e '/gem "dalli",/ s/$/, "< 5"/' \
-e '5igem "builder"' ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activesupport/activesupport-7.1.6.ebuild b/dev-ruby/activesupport/activesupport-7.1.6.ebuild
index 001df453f644..b379fb282220 100644
--- a/dev-ruby/activesupport/activesupport-7.1.6.ebuild
+++ b/dev-ruby/activesupport/activesupport-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -47,6 +47,7 @@ ruby_add_rdepend "
# memcache-client, nokogiri, builder, and redis are not strictly needed,
# but there are tests using this code.
ruby_add_bdepend "test? (
+ <dev-ruby/dalli-5
>=dev-ruby/dalli-3.0.1
>=dev-ruby/nokogiri-1.8.1
>=dev-ruby/builder-3.1.0
@@ -54,7 +55,7 @@ ruby_add_bdepend "test? (
|| ( dev-ruby/rack:3.1 dev-ruby/rack:3.0 )
dev-ruby/rexml
dev-ruby/mocha
- >dev-ruby/minitest-5.15.0:*
+ >dev-ruby/minitest-5.15.0:5
)"
all_ruby_prepare() {
@@ -63,11 +64,13 @@ all_ruby_prepare() {
# Remove items from the common Gemfile that we don't need for this
# test run. This also requires handling some gemspecs.
- sed -i -e "/\(system_timer\|execjs\|jquery-rails\|journey\|ruby-prof\|stackprof\|benchmark-ips\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|bcrypt\|uglifier\|minitest\|sprockets\|stackprof\|rack-cache\|sqlite\|websocket-client-simple\|\libxml-ruby\|bootsnap\|aws-sdk\|webmock\|capybara\|sass-rails\|selenium-webdriver\|webpacker\|webrick\|propshaft\|rack-test\|terser\|cgi\|net-smtp\|net-imap\|net-pop\|digest\|matrix\|web-console\|error_highlight\|jbuilder\)/ s:^:#:" \
+ sed -i -e "/\(system_timer\|execjs\|jquery-rails\|journey\|ruby-prof\|stackprof\|benchmark-ips\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|bcrypt\|uglifier\|sprockets\|stackprof\|rack-cache\|sqlite\|websocket-client-simple\|\libxml-ruby\|bootsnap\|aws-sdk\|webmock\|capybara\|sass-rails\|selenium-webdriver\|webpacker\|webrick\|propshaft\|rack-test\|terser\|cgi\|net-smtp\|net-imap\|net-pop\|digest\|matrix\|web-console\|error_highlight\|jbuilder\)/ s:^:#:" \
-e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
-e '/^group :test/,/^end/ s:^:#:' \
-e '/^\s*group :\(db\|doc\|rubocop\|job\|cable\|lint\|mdl\|storage\|ujs\|test\|view\) do/,/^\s*end/ s:^:#:' \
-e 's/gemspec/gemspec path: "activesupport"/' \
+ -e '/gem "dalli",/ s/$/, "< 5"/' \
+ -e '/gem "minitest"/ s/$/, "~> 5"/' \
-e '5igem "builder"' ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activesupport/activesupport-7.2.3.ebuild b/dev-ruby/activesupport/activesupport-7.2.3.ebuild
index 3f29414c1c29..251e95502654 100644
--- a/dev-ruby/activesupport/activesupport-7.2.3.ebuild
+++ b/dev-ruby/activesupport/activesupport-7.2.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -45,6 +45,7 @@ ruby_add_rdepend "
# memcache-client, nokogiri, builder, and redis are not strictly needed,
# but there are tests using this code.
ruby_add_bdepend "test? (
+ <dev-ruby/dalli-5
>=dev-ruby/dalli-3.0.1
>=dev-ruby/nokogiri-1.8.1
>=dev-ruby/builder-3.1.0
@@ -52,7 +53,7 @@ ruby_add_bdepend "test? (
|| ( dev-ruby/rack:3.1 dev-ruby/rack:3.0 )
dev-ruby/rexml
dev-ruby/mocha
- >=dev-ruby/minitest-5.15.0:*
+ >=dev-ruby/minitest-5.15.0:5
)"
all_ruby_prepare() {
@@ -61,11 +62,13 @@ all_ruby_prepare() {
# Remove items from the common Gemfile that we don't need for this
# test run. This also requires handling some gemspecs.
- sed -i -e "/\(system_timer\|execjs\|jquery-rails\|journey\|ruby-prof\|stackprof\|benchmark-ips\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|bcrypt\|uglifier\|minitest\|sprockets\|stackprof\|rack-cache\|sqlite\|websocket-client-simple\|\libxml-ruby\|bootsnap\|aws-sdk\|webmock\|capybara\|sass-rails\|selenium-webdriver\|webpacker\|webrick\|propshaft\|rack-test\|terser\|cgi\|net-smtp\|net-imap\|net-pop\|digest\|matrix\|web-console\|error_highlight\|jbuilder\|httpclient\|prism\|useragent\|launchy\|sass-embedded\)/ s:^:#:" \
+ sed -i -e "/\(system_timer\|execjs\|jquery-rails\|journey\|ruby-prof\|stackprof\|benchmark-ips\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|bcrypt\|uglifier\|sprockets\|stackprof\|rack-cache\|sqlite\|websocket-client-simple\|\libxml-ruby\|bootsnap\|aws-sdk\|webmock\|capybara\|sass-rails\|selenium-webdriver\|webpacker\|webrick\|propshaft\|rack-test\|terser\|cgi\|net-smtp\|net-imap\|net-pop\|digest\|matrix\|web-console\|error_highlight\|jbuilder\|httpclient\|prism\|useragent\|launchy\|sass-embedded\)/ s:^:#:" \
-e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
-e '/^group :test/,/^end/ s:^:#:' \
-e '/^\s*group :\(db\|doc\|rubocop\|job\|cable\|lint\|mdl\|storage\|ujs\|test\|view\) do/,/^\s*end/ s:^:#:' \
-e 's/gemspec/gemspec path: "activesupport"/' \
+ -e '/gem "dalli",/ s/$/, "< 5"/' \
+ -e '/gem "minitest"/ s/$/, "~> 5"/' \
-e '5igem "builder"' ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activesupport/activesupport-8.0.4.ebuild b/dev-ruby/activesupport/activesupport-8.0.4.ebuild
index 21166b1eefb8..68a6c8d7fe65 100644
--- a/dev-ruby/activesupport/activesupport-8.0.4.ebuild
+++ b/dev-ruby/activesupport/activesupport-8.0.4.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="CHANGELOG.md README.rdoc"
@@ -46,6 +46,7 @@ ruby_add_rdepend "
# memcache-client, nokogiri, builder, and redis are not strictly needed,
# but there are tests using this code.
ruby_add_bdepend "test? (
+ <dev-ruby/dalli-5
>=dev-ruby/dalli-3.0.1
>=dev-ruby/nokogiri-1.8.1
>=dev-ruby/builder-3.1.0
@@ -53,7 +54,7 @@ ruby_add_bdepend "test? (
|| ( dev-ruby/rack:3.1 dev-ruby/rack:3.0 )
dev-ruby/rexml
dev-ruby/mocha
- >=dev-ruby/minitest-5.15.0:*
+ >=dev-ruby/minitest-5.15.0:5
)"
all_ruby_prepare() {
@@ -62,11 +63,13 @@ all_ruby_prepare() {
# Remove items from the common Gemfile that we don't need for this
# test run. This also requires handling some gemspecs.
- sed -i -e "/\(system_timer\|execjs\|jquery-rails\|journey\|ruby-prof\|stackprof\|benchmark-ips\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|bcrypt\|uglifier\|minitest\|sprockets\|stackprof\|rack-cache\|sqlite\|libxml-ruby\|bootsnap\|webmock\|capybara\|sass-rails\|selenium-webdriver\|webpacker\|webrick\|propshaft\|rack-test\|terser\|cgi\|net-smtp\|net-imap\|net-pop\|digest\|matrix\|web-console\|error_highlight\|jbuilder\|httpclient\|prism\|useragent\|solid\|kamal\|thruster\|aws-sdk\|launchy\|releaser\)/ s:^:#:" \
+ sed -i -e "/\(system_timer\|execjs\|jquery-rails\|journey\|ruby-prof\|stackprof\|benchmark-ips\|turbolinks\|coffee-rails\|debugger\|sprockets-rails\|bcrypt\|uglifier\|sprockets\|stackprof\|rack-cache\|sqlite\|libxml-ruby\|bootsnap\|webmock\|capybara\|sass-rails\|selenium-webdriver\|webpacker\|webrick\|propshaft\|rack-test\|terser\|cgi\|net-smtp\|net-imap\|net-pop\|digest\|matrix\|web-console\|error_highlight\|jbuilder\|httpclient\|prism\|useragent\|solid\|kamal\|thruster\|aws-sdk\|launchy\|releaser\)/ s:^:#:" \
-e '/stimulus-rails/,/tailwindcss-rails/ s:^:#:' \
-e '/^group :test/,/^end/ s:^:#:' \
-e '/^\s*group :\(db\|doc\|rubocop\|job\|cable\|lint\|mdl\|storage\|ujs\|test\|view\) do/,/^\s*end/ s:^:#:' \
-e 's/gemspec/gemspec path: "activesupport"/' \
+ -e '/gem "dalli",/ s/$/, "< 5"/' \
+ -e '/gem "minitest"/ s/$/, "~> 5"/' \
-e '5igem "builder"' ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activesupport/activesupport-8.1.1.ebuild b/dev-ruby/activesupport/activesupport-8.1.1.ebuild
index b64299d765b2..aa63d2531e92 100644
--- a/dev-ruby/activesupport/activesupport-8.1.1.ebuild
+++ b/dev-ruby/activesupport/activesupport-8.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -46,6 +46,7 @@ ruby_add_rdepend "
# memcache-client, nokogiri, builder, and redis are not strictly needed,
# but there are tests using this code.
ruby_add_bdepend "test? (
+ <dev-ruby/dalli-5
>=dev-ruby/dalli-3.0.1
>=dev-ruby/nokogiri-1.8.1
>=dev-ruby/builder-3.1.0
@@ -67,6 +68,7 @@ all_ruby_prepare() {
-e '/^group :test/,/^end/ s:^:#:' \
-e '/^\s*group :\(db\|doc\|rubocop\|job\|cable\|lint\|mdl\|storage\|ujs\|test\|view\) do/,/^\s*end/ s:^:#:' \
-e 's/gemspec/gemspec path: "activesupport"/' \
+ -e '/gem "dalli",/ s/$/, "< 5"/' \
-e '5igem "builder"' ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/activesupport/activesupport-8.1.2.ebuild b/dev-ruby/activesupport/activesupport-8.1.2.ebuild
index 2ec4e3ea175a..aeb06af1dab8 100644
--- a/dev-ruby/activesupport/activesupport-8.1.2.ebuild
+++ b/dev-ruby/activesupport/activesupport-8.1.2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
@@ -46,6 +46,7 @@ ruby_add_rdepend "
# memcache-client, nokogiri, builder, and redis are not strictly needed,
# but there are tests using this code.
ruby_add_bdepend "test? (
+ <dev-ruby/dalli-5
>=dev-ruby/dalli-3.0.1
>=dev-ruby/nokogiri-1.8.1
>=dev-ruby/builder-3.1.0
@@ -68,6 +69,7 @@ all_ruby_prepare() {
-e '/^group :test/,/^end/ s:^:#:' \
-e '/^\s*group :\(db\|doc\|rubocop\|job\|cable\|lint\|mdl\|storage\|ujs\|test\|view\) do/,/^\s*end/ s:^:#:' \
-e 's/gemspec/gemspec path: "activesupport"/' \
+ -e '/gem "dalli",/ s/$/, "< 5"/' \
-e '5igem "builder"' ../Gemfile || die
rm ../Gemfile.lock || die
diff --git a/dev-ruby/addressable/addressable-2.8.8.ebuild b/dev-ruby/addressable/addressable-2.8.8.ebuild
index dbd5078b1817..da4fec83ad13 100644
--- a/dev-ruby/addressable/addressable-2.8.8.ebuild
+++ b/dev-ruby/addressable/addressable-2.8.8.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/appraisal/appraisal-2.5.0.ebuild b/dev-ruby/appraisal/appraisal-2.5.0.ebuild
index c55431f03b2f..aa0b14b6e4b6 100644
--- a/dev-ruby/appraisal/appraisal-2.5.0.ebuild
+++ b/dev-ruby/appraisal/appraisal-2.5.0.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="README.md"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/async/async-2.35.0.ebuild b/dev-ruby/async/async-2.35.0.ebuild
index 0ca8fc77f557..05002fbb010c 100644
--- a/dev-ruby/async/async-2.35.0.ebuild
+++ b/dev-ruby/async/async-2.35.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# 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_RECIPE_TEST="sus"
RUBY_FAKEGEM_EXTRADOC="readme.md"
diff --git a/dev-ruby/axiom-types/axiom-types-0.1.1-r1.ebuild b/dev-ruby/axiom-types/axiom-types-0.1.1-r1.ebuild
index af6113b76770..c8ef1b9848ec 100644
--- a/dev-ruby/axiom-types/axiom-types-0.1.1-r1.ebuild
+++ b/dev-ruby/axiom-types/axiom-types-0.1.1-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="CONTRIBUTING.md README.md"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/bogus/bogus-0.1.7.ebuild b/dev-ruby/bogus/bogus-0.1.7-r1.ebuild
index c044790057f6..e4361dce3036 100644
--- a/dev-ruby/bogus/bogus-0.1.7.ebuild
+++ b/dev-ruby/bogus/bogus-0.1.7-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
@@ -21,6 +21,10 @@ KEYWORDS="~amd64"
ruby_add_rdepend ">=dev-ruby/dependor-0.0.4"
+PATCHES=(
+ "${FILESDIR}"/bogus-0.1.7-erb6.patch
+)
+
all_ruby_prepare() {
sed -i -e '/simplecov/,/^end/ s:^:#:' \
-e '/SimpleCov/,/^end/ s:^:#:' spec/spec_helper.rb || die
diff --git a/dev-ruby/bogus/files/bogus-0.1.7-erb6.patch b/dev-ruby/bogus/files/bogus-0.1.7-erb6.patch
new file mode 100644
index 000000000000..2f4669c9520d
--- /dev/null
+++ b/dev-ruby/bogus/files/bogus-0.1.7-erb6.patch
@@ -0,0 +1,15 @@
+https://github.com/ruby/erb/pull/95
+
+diff --git a/lib/bogus/stubbing/not_all_expectations_satisfied.rb b/lib/bogus/stubbing/not_all_expectations_satisfied.rb
+index e358beb..af67652 100644
+--- a/lib/bogus/stubbing/not_all_expectations_satisfied.rb
++++ b/lib/bogus/stubbing/not_all_expectations_satisfied.rb
+@@ -15,7 +15,7 @@ module Bogus
+ <% end %>
+ EOF
+ str = str.gsub(/ {6}/, '')
+- template = ERB.new(str, nil, "<>")
++ template = ERB.new(str, trim_mode: "<>")
+ new(template.result(binding))
+ end
+
diff --git a/dev-ruby/capybara/capybara-3.40.0-r1.ebuild b/dev-ruby/capybara/capybara-3.40.0-r1.ebuild
index d0acefb4c127..fae39495fab2 100644
--- a/dev-ruby/capybara/capybara-3.40.0-r1.ebuild
+++ b/dev-ruby/capybara/capybara-3.40.0-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="History.md README.md"
@@ -25,10 +25,12 @@ DEPEND="${DEPEND} test? ( || ( www-client/firefox www-client/firefox-bin ) )"
PATCHES=( "${FILESDIR}/${P}-sinatra.patch" )
ruby_add_bdepend "test? (
+ dev-ruby/bundler
dev-ruby/rspec:3
>=dev-ruby/launchy-2.4.0
>=dev-ruby/selenium-webdriver-4.8:4
dev-ruby/sinatra:4
+ dev-ruby/minitest:5
www-servers/puma
)"
@@ -57,8 +59,23 @@ all_ruby_prepare() {
# Update spec to catch the right error code. This seems to have
# changed recently across ruby versions.
sed -i -e '/raise_error/ s/EOFError/Net::ReadTimeout/' spec/server_spec.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "launchy"
+ gem "matrix"
+ gem "mini_mime"
+ gem "minitest", "~> 5"
+ gem "nokogiri"
+ gem "puma"
+ gem "rack-test"
+ gem "regexp_parser", "~> 2"
+ gem "rspec", "~> 3"
+ gem "selenium-webdriver", "~> 4"
+ gem "sinatra", "~> 4"
+ gem "xpath", "~> 3"
+ EOF
}
each_ruby_test() {
- virtx ${RUBY} -Ilib -S rspec-3 spec
+ BUNDLE_GEMFILE="${T}/Gemfile" virtx ${RUBY} -S bundle exec ${RUBY} -Ilib -S rspec-3 spec
}
diff --git a/dev-ruby/connection_pool/Manifest b/dev-ruby/connection_pool/Manifest
index 872484b0c9dc..1ece8d07d78d 100644
--- a/dev-ruby/connection_pool/Manifest
+++ b/dev-ruby/connection_pool/Manifest
@@ -1,4 +1,3 @@
-DIST connection_pool-2.5.0.tar.gz 13120 BLAKE2B e914c07de63367d61e0f136ac95cb15cfb0595a232f2c72095b0ae97959f7d49a7dd1295e1509a3a21a43429e2f44a454e3e2146076cce683fdf6a0229e274d4 SHA512 ce43edb4dd25c050ad93d13ad0a4243bd8ed3234f3af3593b5301696fe31574b4ec20ffb6410caa459876ab4ed4d39d4767ebf57dd2970c25ad18672b42342ed
DIST connection_pool-2.5.4.tar.gz 14717 BLAKE2B 9305afdbd4d4b9f80149bdf9c8588563d8300f3bb6f519dff3d9935c2791775339bdf07726016a9b93b9bc54c742cc334b02af05fc72cd616375bafa4acab8aa SHA512 9b3e60e3b2240742183bb873c8333319981063619aa3e5a847b20e08929f53e7e72fc1331eadd4c09be042470d51ef6de8d5dc1d325e1e7fa967c91260a8503a
DIST connection_pool-2.5.5.tar.gz 14970 BLAKE2B 9d85d8725d50f1bd84b531ffe2f84adb10e5c3b42c06bdd9bfa6dc49706154ad77765be87c4c6b6ade703a85563c47943a05cf2c669b2d9f38933190fe1349c8 SHA512 f4345a53ad931b4f679ce7fd8659dca74d39b5c8352a5d8f38db94e6f5cef2aac80f08eb318740f05cd95bb857887b4c0e7c31f9fc1fb3d5506fae5dc93cbf12
DIST connection_pool-3.0.2.tar.gz 15465 BLAKE2B c4a06600d69d22a5355fe56fbcd095ed3fa73280c36428236185a087404d5d3f524f3a54a89d6d564231b6342e3f50fa3278c4c2f91885f40fc43c6d7c412967 SHA512 9d44e58f7af32211b469a2eb2baf164886ba37ac28135d90530564b23eea0ba9952dd79dfbf2243e9bfbdc23a6a0b33ff032fb034c1b75389d9297637a14f870
diff --git a/dev-ruby/connection_pool/connection_pool-2.5.0.ebuild b/dev-ruby/connection_pool/connection_pool-2.5.0.ebuild
deleted file mode 100644
index b5e7a3958eac..000000000000
--- a/dev-ruby/connection_pool/connection_pool-2.5.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_GEMSPEC="connection_pool.gemspec"
-RUBY_FAKEGEM_RECIPE_TEST="rake"
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="Changes.md README.md"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Generic connection pooling for Ruby"
-HOMEPAGE="https://github.com/mperham/connection_pool"
-SRC_URI="https://github.com/mperham/connection_pool/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="test"
-
-ruby_add_bdepend "test? ( >=dev-ruby/minitest-5 )"
-
-all_ruby_prepare() {
- sed -i -e '/git ls-files/d' connection_pool.gemspec || die
- sed -i -e '/\(bundler\|standard\)/ s:^:#:' Rakefile || die
- sed -i -e "s/gem 'minitest'/gem 'minitest', '~> 5.0'/" test/helper.rb || die
-}
diff --git a/dev-ruby/connection_pool/connection_pool-2.5.5.ebuild b/dev-ruby/connection_pool/connection_pool-2.5.5.ebuild
index 6b325f7cef3d..85082ccbcb1d 100644
--- a/dev-ruby/connection_pool/connection_pool-2.5.5.ebuild
+++ b/dev-ruby/connection_pool/connection_pool-2.5.5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_GEMSPEC="connection_pool.gemspec"
RUBY_FAKEGEM_RECIPE_TEST="rake"
@@ -21,10 +21,24 @@ SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test"
-ruby_add_bdepend "test? ( >=dev-ruby/minitest-5 )"
+ruby_add_bdepend "test? ( dev-ruby/bundler dev-ruby/minitest:5 )"
+
+PATCHES=(
+ "${FILESDIR}"/connection_pool-2.5.5-ruby40.patch
+)
all_ruby_prepare() {
sed -i -e '/git ls-files/d' connection_pool.gemspec || die
sed -i -e '/\(bundler\|standard\)/ s:^:#:' Rakefile || die
sed -i -e "s/gem 'minitest'/gem 'minitest', '~> 5.0'/" test/helper.rb || die
+
+ # Avoid minitest-6, bug #978775
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem 'rake'
+ gem 'minitest', '~> 5'
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake test || die
}
diff --git a/dev-ruby/connection_pool/files/connection_pool-2.5.5-ruby40.patch b/dev-ruby/connection_pool/files/connection_pool-2.5.5-ruby40.patch
new file mode 100644
index 000000000000..b535c3e373f4
--- /dev/null
+++ b/dev-ruby/connection_pool/files/connection_pool-2.5.5-ruby40.patch
@@ -0,0 +1,15 @@
+Surgically taked from
+https://github.com/mperham/connection_pool/commit/5d3f6c1db81b009c06d1f1d85e12c21c1fe74fa2
+
+--- a/test/test_connection_pool.rb
++++ b/test/test_connection_pool.rb
+@@ -805,7 +811,8 @@ def test_ractors_pool_usage
+ pool.with { |y| checkedout = y }
+ checkedout
+ end
+- result = r.take
++
++ result = (RUBY_VERSION < "4") ? r.take : r.value
+ assert_equal obj, result # same string but different String instance
+ refute_equal obj.object_id, result.object_id # was copied across Ractor boundary
+ end
diff --git a/dev-ruby/console/console-1.34.2.ebuild b/dev-ruby/console/console-1.34.2.ebuild
index 03b3e8a030b9..3c916e1b1ca4 100644
--- a/dev-ruby/console/console-1.34.2.ebuild
+++ b/dev-ruby/console/console-1.34.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# 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="readme.md"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
diff --git a/dev-ruby/cri/cri-2.15.12.ebuild b/dev-ruby/cri/cri-2.15.12.ebuild
index c7c38d2b6c8f..bafdb0a85eba 100644
--- a/dev-ruby/cri/cri-2.15.12.ebuild
+++ b/dev-ruby/cri/cri-2.15.12.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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"
@@ -31,6 +31,10 @@ all_ruby_prepare() {
sed -e 's/MiniTest::Unit::TestCase/Minitest::Test/' \
-i test/helper.rb || die
+
+ # Fix against minitest-6
+ sed -e 's|assert_equal(nil,|assert_nil(|' \
+ -i test/test_argument_list.rb test/test_command.rb || die
}
each_ruby_test() {
diff --git a/dev-ruby/css_parser/css_parser-1.21.1.ebuild b/dev-ruby/css_parser/css_parser-1.21.1.ebuild
index 1c7194eec562..6ec18304e0f6 100644
--- a/dev-ruby/css_parser/css_parser-1.21.1.ebuild
+++ b/dev-ruby/css_parser/css_parser-1.21.1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_DOC_DIR="doc"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md "
diff --git a/dev-ruby/dalli/Manifest b/dev-ruby/dalli/Manifest
index 28afdc8d6f80..97d55f95fd23 100644
--- a/dev-ruby/dalli/Manifest
+++ b/dev-ruby/dalli/Manifest
@@ -1,2 +1,4 @@
DIST dalli-3.2.8.tar.gz 73367 BLAKE2B 1680fda0d272d135f8e88a0ea2e16a08cd1027808f0503334b8c53dd85472cc7c37df3649623f8347169f5b8cd645c9a1a4d98343e45d4369ce8d08cc1306316 SHA512 85a0d8121fd0e539b0fd6c15716971d91e91741d36850cf8e887d8fef17d6b49ea6036ce66c986aafd008aa0e744cd798bc574e9376383b9af33b0971e31e25c
DIST dalli-4.0.0.tar.gz 86604 BLAKE2B 0da3ba44eac9c020edbd4bdf7e18c90fcf146193ad2f01781e623251f813d23bee579079e314555459681760efc6722f9c3ed3a0a0df810990888d851134a454 SHA512 cd267a6d6f957ff24091922c05a3fade55df4b00b21b49966431acdaa51043dd6174724d857dc7056b6b58cc8264c03679c07c044eb55da8d6aaae84b2f3b271
+DIST dalli-4.3.3.tar.gz 124360 BLAKE2B 46cae2db11bb3a4ff59f0a7f47280644b7421126a2a27b2c13a02b5afbfebf08bf0f1e8faac1a467c790347a9dfb8a074438d967ca4e0fb9532e68e42b9f9587 SHA512 8ff11406902f63aa123a03cf06c361ce24c8fe32886c81d7fb4bb016e71519fc0152c3e39041b7992daeddf9d6cf4cc2a42d40e36f22e4d515a2600ecfe27ac2
+DIST dalli-5.0.5.tar.gz 125345 BLAKE2B 5d1461312e8da68dc5ba74960d1cc1b1566c1c88292768e23234d62a11a2ff62c06f3d7ea284ae0a6b6bf8a1ee2a674cea8038a89dfb66d319fc1e551d2fa55e SHA512 defc49ca030a4425f3620330e17007f18ca81f65d1ff2b9f056543490b127828692920552522d69e5d9e3f63ddd935f642c90154d143870ecf7e52e2d2f96cb5
diff --git a/dev-ruby/dalli/dalli-4.3.3.ebuild b/dev-ruby/dalli/dalli-4.3.3.ebuild
new file mode 100644
index 000000000000..51941ee416dd
--- /dev/null
+++ b/dev-ruby/dalli/dalli-4.3.3.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_TASK_TEST="MT_NO_PLUGINS=true test"
+
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md Performance.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A high performance pure Ruby client for accessing memcached servers"
+HOMEPAGE="https://github.com/petergoldstein/dalli"
+SRC_URI="https://github.com/petergoldstein/dalli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="test? ( >=net-misc/memcached-1.5.4[ssl(-)] )"
+
+ruby_add_rdepend "dev-ruby/logger"
+
+ruby_add_bdepend "test? (
+ dev-ruby/connection_pool
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ dev-ruby/rack
+ dev-ruby/rack-session
+)"
+
+all_ruby_prepare() {
+ chmod 0755 "${HOME}" || die "Failed to fix permissions on home"
+
+ sed -i -e '/\(appraisal\|bundler\)/ s:^:#:' Rakefile || die
+
+ sed -i -e '3igem "minitest", "~> 6.0"; gem "minitest-mock"; require "dalli"' \
+ -e '/bundler/ s:^:#:' test/helper.rb || die
+
+ sed -i -e "s:/tmp:${T}:" test/utils/certificate_generator.rb || die
+
+ # Checks for unpackaged gems
+ rm test/test_gem_compatibility.rb || die
+
+ # FIXME:
+ sed -e "/'handles SSL error during read operations'/,/^ end/ s:^:#:" \
+ -e "/'handles SSL error during pipelined get'/,/^ end/ s:^:#:" \
+ -i test/integration/test_network.rb || die
+}
diff --git a/dev-ruby/dalli/dalli-5.0.5.ebuild b/dev-ruby/dalli/dalli-5.0.5.ebuild
new file mode 100644
index 000000000000..28d769e1d216
--- /dev/null
+++ b/dev-ruby/dalli/dalli-5.0.5.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_TASK_TEST="MT_NO_PLUGINS=true test"
+
+RUBY_FAKEGEM_DOCDIR="doc"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md Performance.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="A high performance pure Ruby client for accessing memcached servers"
+HOMEPAGE="https://github.com/petergoldstein/dalli"
+SRC_URI="https://github.com/petergoldstein/dalli/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="test"
+
+DEPEND="test? ( >=net-misc/memcached-1.5.4[ssl(-)] )"
+
+ruby_add_rdepend "dev-ruby/logger"
+
+ruby_add_bdepend "test? (
+ dev-ruby/connection_pool
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ dev-ruby/rack
+ dev-ruby/rack-session
+)"
+
+all_ruby_prepare() {
+ chmod 0755 "${HOME}" || die "Failed to fix permissions on home"
+
+ sed -i -e '/\(appraisal\|bundler\)/ s:^:#:' Rakefile || die
+
+ sed -i -e '3igem "minitest", "~> 6"; gem "minitest-mock"; require "dalli"' \
+ -e '/bundler/ s:^:#:' test/helper.rb || die
+
+ sed -i -e "s:/tmp:${T}:" test/utils/certificate_generator.rb || die
+
+ # Checks for unpackaged gems
+ rm test/test_gem_compatibility.rb || die
+
+ # FIXME:
+ sed -e "/'handles SSL error during read operations'/,/^ end/ s:^:#:" \
+ -e "/'handles SSL error during pipelined get'/,/^ end/ s:^:#:" \
+ -i test/integration/test_network.rb || die
+}
diff --git a/dev-ruby/diff-lcs/Manifest b/dev-ruby/diff-lcs/Manifest
index 8131ec7c0bcc..13b421f6cfaf 100644
--- a/dev-ruby/diff-lcs/Manifest
+++ b/dev-ruby/diff-lcs/Manifest
@@ -1,2 +1,3 @@
DIST diff-lcs-1.6.1.gem 58880 BLAKE2B 37c527732c85fb4d3a3604b5f8a12d33325a54267b218deab4bcc4b9740f817073a69183c0cd395275b721aac5688aced8cee4b2479ed28df31a83e950fceab0 SHA512 2a454a1b918d4b2b62ea1c313e0cfd9ebf5d4c222d4da8d0e2fab11cbe7f4a105de6cb495a1b75e488b894a8fb30c80b8645740e1412f6cbf57134018d5eecf0
DIST diff-lcs-1.6.2.gem 59392 BLAKE2B ffdc160b0034e53371d08ffa36baae341f93640c644a418bcd331bcf8c6c0d8cfa1b2421b899c5897e2083a4829437d58cfd051ae7e8d6674a444f61c87f5f52 SHA512 0cfaae5b02784dfb17906afe3f044aa58cedb866b4d07229fec8c0859d78c03d24eaba37a951d1a0cc85df63a4132c46a600953ff3a80cd0830ad07e687f8894
+DIST diff-lcs-2.0.0.gem 70144 BLAKE2B 069fca35035ade77af4b9122b248b5c753e05332a11b3ae58bed60375053062a77068677a08844ae55635ab45730e462b3935edc7e488798776d9f9321326930 SHA512 228fb7558bbdac3ae6d29a0f72989e9889052b6ecc39570b1f287aa9b6b4224ac80e513491886e25a12c6c60fb1aa0aeb8fba36adeeb659d7b1614b02a648ccd
diff --git a/dev-ruby/diff-lcs/diff-lcs-2.0.0.ebuild b/dev-ruby/diff-lcs/diff-lcs-2.0.0.ebuild
new file mode 100644
index 000000000000..f6b8a19385a0
--- /dev/null
+++ b/dev-ruby/diff-lcs/diff-lcs-2.0.0.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_EXTRADOC="README.md CHANGELOG.md"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Use the McIlroy-Hunt LCS algorithm to compute differences"
+HOMEPAGE="https://github.com/halostatue/diff-lcs"
+
+LICENSE="|| ( Artistic MIT GPL-2+ )"
+SLOT="0"
+# Rspec and other packages dont work with it. Cannot be slotted simply due to executables
+#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+each_ruby_prepare() {
+ # Use the current ruby to test script invocation
+ sed -e "/system/ s:ruby:${RUBY}:" \
+ -i spec/ldiff_spec.rb || die
+
+ # Skip ldiff specs altogether for now since the fixtures are riddled
+ # with encoding and newline issues and ldiff is not the core of this gem.
+ rm -f spec/ldiff_spec.rb || die
+
+ sed -e '/require "simplecov/ s:^:#:' \
+ -e '/SimpleCov/,/^end/ s:^:#:' \
+ -i spec/spec_helper.rb || die
+}
diff --git a/dev-ruby/diva/diva-2.0.1.ebuild b/dev-ruby/diva/diva-2.0.1.ebuild
index 16dfc22456d6..d97d28d54471 100644
--- a/dev-ruby/diva/diva-2.0.1.ebuild
+++ b/dev-ruby/diva/diva-2.0.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="README.md"
diff --git a/dev-ruby/facter/facter-4.10.0-r1.ebuild b/dev-ruby/facter/facter-4.10.0-r1.ebuild
index 400406dfd732..819068b56860 100644
--- a/dev-ruby/facter/facter-4.10.0-r1.ebuild
+++ b/dev-ruby/facter/facter-4.10.0-r1.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby32 ruby33"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_GEMSPEC="facter.gemspec"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_RECIPE_DOC="yard"
@@ -33,6 +33,7 @@ ruby_add_bdepend "test? ( dev-ruby/simplecov dev-ruby/timecop dev-ruby/webmock )
PATCHES=(
"${FILESDIR}"/facter-4.7.0-gentoo-thor-gemspec.patch
"${FILESDIR}"/facter-4.10.0-gentoo-os-release.patch
+ "${FILESDIR}"/facter-4.10.0-ruby34.patch
)
src_unpack() {
diff --git a/dev-ruby/facter/files/facter-4.10.0-ruby34.patch b/dev-ruby/facter/files/facter-4.10.0-ruby34.patch
new file mode 100644
index 000000000000..5946e5cb34f2
--- /dev/null
+++ b/dev-ruby/facter/files/facter-4.10.0-ruby34.patch
@@ -0,0 +1,45 @@
+--- a/spec/facter/facter_spec.rb
++++ b/spec/facter/facter_spec.rb
+@@ -598,7 +598,12 @@ describe Facter do
+ context 'when exception and message are hashes' do
+ let(:message) { { 'a': 1 } }
+ let(:exception) { { 'b': 2 } }
+- let(:expected_message) { '{:a=>1}' }
++ # https://bugs.ruby-lang.org/issues/20433
++ if RUBY_VERSION >= '3.4'
++ let(:expected_message) { '{a: 1}' }
++ else
++ let(:expected_message) { '{:a=>1}' }
++ end
+
+ it_behaves_like 'when exception param is not an exception'
+ end
+@@ -682,7 +687,12 @@ describe Facter do
+ context 'when exception and message are hashes' do
+ let(:message) { { 'a': 1 } }
+ let(:exception) { { 'b': 2 } }
+- let(:expected_message) { '{:a=>1}' }
++ # https://bugs.ruby-lang.org/issues/20433
++ if RUBY_VERSION >= '3.4'
++ let(:expected_message) { '{a: 1}' }
++ else
++ let(:expected_message) { '{:a=>1}' }
++ end
+
+ it_behaves_like 'when exception param is not an exception'
+ end
+@@ -808,7 +818,12 @@ describe Facter do
+ end
+
+ it 'when message is a hash' do
+- expect(logger).to receive(:warn).with('{:warn=>"message"}')
++ # https://bugs.ruby-lang.org/issues/20433
++ if RUBY_VERSION >= '3.4'
++ expect(logger).to receive(:warn).with('{warn: "message"}')
++ else
++ expect(logger).to receive(:warn).with('{:warn=>"message"}')
++ end
+
+ Facter.warn({ warn: 'message' })
+ end
+
diff --git a/dev-ruby/faker/faker-3.6.0.ebuild b/dev-ruby/faker/faker-3.6.0.ebuild
index 692610b5319b..50c1c6fd987f 100644
--- a/dev-ruby/faker/faker-3.6.0.ebuild
+++ b/dev-ruby/faker/faker-3.6.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_DOC="none"
diff --git a/dev-ruby/gist/gist-6.0.0-r1.ebuild b/dev-ruby/gist/gist-6.0.0-r1.ebuild
index 3be5451134cd..65587aabd1ec 100644
--- a/dev-ruby/gist/gist-6.0.0-r1.ebuild
+++ b/dev-ruby/gist/gist-6.0.0-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
inherit ruby-fakegem
diff --git a/dev-ruby/git/git-4.3.0.ebuild b/dev-ruby/git/git-4.3.0.ebuild
index 6845808ce999..6d7cee8b52dc 100644
--- a/dev-ruby/git/git-4.3.0.ebuild
+++ b/dev-ruby/git/git-4.3.0.ebuild
@@ -19,7 +19,7 @@ RUBY_S="ruby-git-${PV}"
LICENSE="MIT"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="test"
DEPEND="test? ( >=dev-vcs/git-1.6.0.0 net-misc/openssh app-arch/tar )"
diff --git a/dev-ruby/globalid/Manifest b/dev-ruby/globalid/Manifest
index 96f4055f6459..d5c0ae6bc6f3 100644
--- a/dev-ruby/globalid/Manifest
+++ b/dev-ruby/globalid/Manifest
@@ -1,2 +1,3 @@
DIST globalid-1.2.1.tar.gz 24210 BLAKE2B 0cd47d65b6af78b9201ba4300820f94c126e5e69683b87503967a8b7887b9638693d51a9a1d20277dc5678ca925c567d29ed21dc1805825386fe028ddc475074 SHA512 35f3252afd41226a3dd728238be226a1f2ebb62ca853874fdf35e296dd807603319105117d4585df98cdb577efda9166fc5e5733b7af5bea7073d5c44ddec2c1
DIST globalid-1.3.0.tar.gz 24179 BLAKE2B 3e5e361850c7bec75ac25d1afb7528c0d4b759122d7b8b89cf164c4fef16432f2bbf346c59d8b4482e5ed82bfadc8cacca799dc82d89c7bbc402d1b11acb2cab SHA512 fc23616850a6500e6774c8cb6755f8bce08eca2516b8d03d1036c5e371eba682aca760996b8262cfac98ab3dd61c9fbceea875c7a6dfafdbd0989a6bd9cdfb60
+DIST globalid-1.4.0.tar.gz 26471 BLAKE2B 9c9f537d06002439906667002ea9f482cabc834f97d06430fa90847ce9feba0b20f4a8d7766945a7ebb0776880ce551f01aacf1b9e5efd3278f12aa274488bb2 SHA512 d7707bc8ea81c9f99c35da82aa9c969f1efec9b256608d6f238aafcc0146cb4f32d5fe91769e9824492241baf1df7c29cdd8c3f0f837dac933b4abc5bf44d4c8
diff --git a/dev-ruby/globalid/globalid-1.2.1.ebuild b/dev-ruby/globalid/globalid-1.4.0.ebuild
index 6d425d0050e4..36575991119d 100644
--- a/dev-ruby/globalid/globalid-1.2.1.ebuild
+++ b/dev-ruby/globalid/globalid-1.4.0.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33"
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="README.md"
@@ -16,13 +17,13 @@ SRC_URI="https://github.com/rails/globalid/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
ruby_add_bdepend "test? (
dev-ruby/bundler
- <dev-ruby/activemodel-7.2
- <dev-ruby/railties-7.2
+ <dev-ruby/activemodel-8.1
+ <dev-ruby/railties-8.1
)"
ruby_add_rdepend ">=dev-ruby/activesupport-6.1:*"
@@ -30,6 +31,12 @@ all_ruby_prepare() {
rm -f Gemfile.lock || die
# Ensure a version of rails compatible with the tests.
- sed -e '/^gem / s/$/, "<7.2"/' \
+ sed -e '/^gem / s/$/, "<8.1"/' \
-i Gemfile || die
+
+ # Work around a bug in Rails: https://github.com/rails/rails/pull/55227
+ sed -e '3irequire "action_controller"' \
+ -i test/cases/railtie_test.rb || die
+
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
}
diff --git a/dev-ruby/hashery/hashery-2.1.2-r1.ebuild b/dev-ruby/hashery/hashery-2.1.2-r1.ebuild
index 901e146bf302..9a36c8f68c46 100644
--- a/dev-ruby/hashery/hashery-2.1.2-r1.ebuild
+++ b/dev-ruby/hashery/hashery-2.1.2-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/hashie/hashie-5.1.0.ebuild b/dev-ruby/hashie/hashie-5.1.0.ebuild
index 0702e949c537..0bfea46a357d 100644
--- a/dev-ruby/hashie/hashie-5.1.0.ebuild
+++ b/dev-ruby/hashie/hashie-5.1.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/html-pipeline/html-pipeline-2.14.3.ebuild b/dev-ruby/html-pipeline/html-pipeline-2.14.3.ebuild
index d3cef29ce7d5..a89dd768fb7f 100644
--- a/dev-ruby/html-pipeline/html-pipeline-2.14.3.ebuild
+++ b/dev-ruby/html-pipeline/html-pipeline-2.14.3.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="CHANGELOG.md README.md"
diff --git a/dev-ruby/httparty/Manifest b/dev-ruby/httparty/Manifest
index e05b97cebae0..da32f5c5ac30 100644
--- a/dev-ruby/httparty/Manifest
+++ b/dev-ruby/httparty/Manifest
@@ -1,4 +1,2 @@
-DIST httparty-0.23.1.tar.gz 104812 BLAKE2B 87b4d6dfb893259106eec9d9a54fce2db2bf5dff171fb0aacd40b1936847b60d84c444c21255f1b5a685ec385a85a7c9c2047ce265c1c7ba1dbf9b130beca877 SHA512 01199b9baa5dc4e30c767271513b8cd507a509342475c9c1a10020b9f8c647ed0f37c93419f5fb3cc2b29d5b73634bb8d12d6accdeffd17770aa1d33119de559
DIST httparty-0.23.2.tar.gz 104952 BLAKE2B 825c1af8452fc11cdace9c4ee718452959a0251fd82aa422d9c3a8a3ad532188e0a024fd3ec641768726279229aa17fd81f985a3a2b9cdbf3c615183279f6525 SHA512 6768cf29bdfdc2f264d810387ffb239fc53c56d41c0771d343d01c65c9191f362b9fd8c7a64191799e06db62dd65c5e99734a3f6f3088351b71d60f4540cd1cd
-DIST httparty-0.24.0.tar.gz 108464 BLAKE2B ebe4b7f724d05d3bc8f4ae9a31065221283b1b273550bc04e60e1c86a88a256fd180d0bc96e30135afae7568a29efe842f8d50cc516fc9420aa6067ffb3ab0f1 SHA512 ef1577023a4a2349eea238fdbd2d395e48425e54101732b79c3f583e77043a046c34aa1928f395baa79360c9c96150d790c5582a3ba938b9f207486fb5ee670a
DIST httparty-0.24.2.tar.gz 108805 BLAKE2B 7ef3026f0ee3e3283ede46288dec30f81c05b9b9e5a0009aa0473370c1bedbc3e3d8b27113714fd5299992034c9e0b34bc09abe522674ea11faaae3f1de474aa SHA512 13373b70f177011a900dd55feef2393b53e550be6dae9424e8c05920d0c4badda28cf76887e3d6f4b42a1178934f7f38303d9349ab5595a14166c0295d2c2ebc
diff --git a/dev-ruby/httparty/httparty-0.23.1.ebuild b/dev-ruby/httparty/httparty-0.23.1.ebuild
deleted file mode 100644
index b9386f6f9af4..000000000000
--- a/dev-ruby/httparty/httparty-0.23.1.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="Changelog.md README.md"
-
-RUBY_FAKEGEM_GEMSPEC="httparty.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Makes http fun! Also, makes consuming restful web services dead easy"
-HOMEPAGE="https://www.johnnunemaker.com/httparty/"
-SRC_URI="https://github.com/jnunemaker/httparty/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~x86"
-IUSE="test"
-
-ruby_add_rdepend "
- dev-ruby/csv
- >=dev-ruby/mini_mime-1.0.0
- >=dev-ruby/multi_xml-0.5.2
-"
-
-ruby_add_bdepend 'test? ( dev-ruby/webmock )'
-
-all_ruby_prepare() {
- sed -i -e 's/git ls-files \?-\?-\?/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
-
- # Remove bundler
- rm Gemfile || die
- sed -i -e '/[Bb]undler/ s:^:#:' Rakefile || die
-
- # Avoid test dependency on cucumber. We can't run the features since
- # they depend on mongrel which is no longer packaged.
- sed -i -e '/cucumber/I s:^:#:' Rakefile || die
-
- # Avoid test dependency on simplecov
- sed -i -e '/simplecov/I s:^:#:' \
- -e '/pry/ s:^:#:' \
- -e '1i require "cgi"; require "delegate"' spec/spec_helper.rb || die
-
- # Avoid test that works standalone but fails in the suite
- #sed -i -e '/calls block given to perform with each redirect/,/^ end/ s:^:#:' spec/httparty/request_spec.rb
-
- # Avoid test that is not fully compatible with newer multi_xml
- sed -i -e '/should be able parse response type xml automatically/askip "multi_xml"' spec/httparty_spec.rb || die
-
- # Avoid test that fails due to unicode normalization differences
- sed -i -e '/handles international domains/askip "unicode differences"' spec/httparty_spec.rb || die
-}
-
-all_ruby_install() {
- all_fakegem_install
-
- docinto examples
- dodoc examples/*
-}
diff --git a/dev-ruby/httparty/httparty-0.24.0.ebuild b/dev-ruby/httparty/httparty-0.24.0.ebuild
deleted file mode 100644
index e06fc6434ab3..000000000000
--- a/dev-ruby/httparty/httparty-0.24.0.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="Changelog.md README.md"
-
-RUBY_FAKEGEM_GEMSPEC="httparty.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Makes http fun! Also, makes consuming restful web services dead easy"
-HOMEPAGE="https://www.johnnunemaker.com/httparty/"
-SRC_URI="https://github.com/jnunemaker/httparty/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="test"
-
-ruby_add_rdepend "
- dev-ruby/csv
- >=dev-ruby/mini_mime-1.0.0
- >=dev-ruby/multi_xml-0.5.2
-"
-
-ruby_add_bdepend 'test? ( dev-ruby/webmock )'
-
-all_ruby_prepare() {
- sed -i -e 's/git ls-files \?-\?-\?/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
-
- # Remove bundler
- rm Gemfile || die
- sed -i -e '/[Bb]undler/ s:^:#:' Rakefile || die
-
- # Avoid test dependency on cucumber. We can't run the features since
- # they depend on mongrel which is no longer packaged.
- sed -i -e '/cucumber/I s:^:#:' Rakefile || die
-
- # Avoid test dependency on simplecov
- sed -i -e '/simplecov/I s:^:#:' \
- -e '/pry/ s:^:#:' \
- -e '1i require "cgi"; require "delegate"' spec/spec_helper.rb || die
-
- # Avoid test that works standalone but fails in the suite
- #sed -i -e '/calls block given to perform with each redirect/,/^ end/ s:^:#:' spec/httparty/request_spec.rb
-
- # Avoid test that is not fully compatible with newer multi_xml
- sed -i -e '/should be able parse response type xml automatically/askip "multi_xml"' spec/httparty_spec.rb || die
-
- # Avoid test that fails due to unicode normalization differences
- sed -i -e '/handles international domains/askip "unicode differences"' spec/httparty_spec.rb || die
-}
-
-all_ruby_install() {
- all_fakegem_install
-
- docinto examples
- dodoc examples/*
-}
diff --git a/dev-ruby/httparty/httparty-0.24.2.ebuild b/dev-ruby/httparty/httparty-0.24.2.ebuild
index 9d76c05da66d..ab607f26cbee 100644
--- a/dev-ruby/httparty/httparty-0.24.2.ebuild
+++ b/dev-ruby/httparty/httparty-0.24.2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/i18n/i18n-1.14.8.ebuild b/dev-ruby/i18n/i18n-1.14.8.ebuild
index d29d7b8320aa..6bdfc303e00a 100644
--- a/dev-ruby/i18n/i18n-1.14.8.ebuild
+++ b/dev-ruby/i18n/i18n-1.14.8.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="CHANGELOG.md README.md"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
@@ -44,10 +44,14 @@ all_ruby_prepare() {
}
each_ruby_test() {
+ local versions
case ${RUBY} in
- *ruby34)
+ *ruby40)
versions="7.2 8.0"
;;
+ *ruby34)
+ versions="7.1 7.2 8.0"
+ ;;
*ruby33)
versions="7.1 7.2 8.0"
;;
diff --git a/dev-ruby/image_processing/Manifest b/dev-ruby/image_processing/Manifest
index f6bffa6c44a7..cc9a55c950b0 100644
--- a/dev-ruby/image_processing/Manifest
+++ b/dev-ruby/image_processing/Manifest
@@ -1,2 +1 @@
-DIST image_processing-1.13.0.tar.gz 1166646 BLAKE2B 9ce172f9cfe7d212165fe95f58b4b20e434803992c4cabcee963818f4e35201d9962aceddf7c3647325e99930f5ae2cb069ab8ca7b7ac1c74428953dd1710076 SHA512 92fbd94db66abf7ea6256f9c475fd05b84ba1791bc00d4b03774ba22ebea2fb56fa75bc18fd7d39330e13d6b03460df60a3aebeaf1227834c854c458d6d99d7a
DIST image_processing-1.14.0.tar.gz 9326866 BLAKE2B 374a09c39ce2ea3b0d7f8e2197fa0ecf902cc1c94d75e912cf94afdc9d8b433e46052766829023386febbe1b6a8b15142ea29f05ca8943cfecd19ce1b56c2cb3 SHA512 6beb6b097fb3af6899fac6805875f03d3bbe8b10ec5fdd9af65caa50ef09697f60b65108f1edb6a4e119a659a748021c5c4ad4a9573d48dcd00b13ca09ea9e58
diff --git a/dev-ruby/image_processing/image_processing-1.13.0.ebuild b/dev-ruby/image_processing/image_processing-1.13.0.ebuild
deleted file mode 100644
index db7a0a3a3f91..000000000000
--- a/dev-ruby/image_processing/image_processing-1.13.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md doc/*.md"
-
-RUBY_FAKEGEM_GEMSPEC="image_processing.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="High-level image processing helper methods with libvips and ImageMagick"
-HOMEPAGE="https://github.com/janko/image_processing"
-SRC_URI="https://github.com/janko/image_processing/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-IUSE="test"
-
-DEPEND+=" test? ( media-gfx/imagemagick[jpeg,png,tiff,xml] )"
-
-ruby_add_rdepend "
- >=dev-ruby/mini_magick-4.9.5:0
-"
-
-ruby_add_bdepend "test? (
- >=dev-ruby/minitest-5.8:5
- >=dev-ruby/minitest-hooks-1.4.2
- dev-ruby/minispec-metadata
-)"
-
-all_ruby_prepare() {
- # Only support imagemagick for now since vips is not packaged
- sed -i -e '/ruby-vips/ s:^:#:' ${RUBY_FAKEGEM_GEMSPEC} || die
- rm -f test/{builder,pipeline,vips}_test.rb || die
- sed -i -e '/assert_dimensions/ s:^:#:' test/*_test.rb || die
-
- # phash is not packaged
- sed -i -e '/\(assert\|refute\)_similar/ s:^:#:' test/*_test.rb || die
-
- sed -i -e '/\(bundler\|phashion\|vips\)/ s:^:#:' Rakefile test/test_helper.rb || die
-}
diff --git a/dev-ruby/image_processing/image_processing-1.14.0-r1.ebuild b/dev-ruby/image_processing/image_processing-1.14.0-r1.ebuild
index b7742b04e0df..b3d5ce65b028 100644
--- a/dev-ruby/image_processing/image_processing-1.14.0-r1.ebuild
+++ b/dev-ruby/image_processing/image_processing-1.14.0-r1.ebuild
@@ -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="CHANGELOG.md README.md doc/*.md"
diff --git a/dev-ruby/image_processing/image_processing-1.14.0.ebuild b/dev-ruby/image_processing/image_processing-1.14.0.ebuild
deleted file mode 100644
index 04e9b912d541..000000000000
--- a/dev-ruby/image_processing/image_processing-1.14.0.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md doc/*.md"
-
-RUBY_FAKEGEM_GEMSPEC="image_processing.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="High-level image processing helper methods with libvips and ImageMagick"
-HOMEPAGE="https://github.com/janko/image_processing"
-SRC_URI="https://github.com/janko/image_processing/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-IUSE="test"
-
-DEPEND+=" test? ( media-gfx/imagemagick[jpeg,png,tiff,xml] )"
-
-ruby_add_rdepend "
- >=dev-ruby/mini_magick-4.9.5:0
-"
-
-ruby_add_bdepend "test? (
- >=dev-ruby/minitest-5.8:5
- >=dev-ruby/minitest-hooks-1.4.2
- dev-ruby/minispec-metadata
-)"
-
-all_ruby_prepare() {
- # Only support imagemagick for now since vips is not packaged
- sed -i -e '/ruby-vips/ s:^:#:' ${RUBY_FAKEGEM_GEMSPEC} || die
- rm -f test/{builder,pipeline,vips}_test.rb || die
- sed -i -e '/assert_dimensions/ s:^:#:' test/*_test.rb || die
-
- # phash is not packaged
- sed -i -e '/\(assert\|refute\)_similar/ s:^:#:' test/*_test.rb || die
-
- sed -i -e '/\(bundler\|phashion\|vips\)/ s:^:#:' Rakefile test/test_helper.rb || die
-
- # Avoid tests using obsolete "strip" option (fixed upstream)
- sed -e '/applies \(loader\|saver\) options/askip "Uses obsolete strip option"' \
- -i test/mini_magick_test.rb || die
-}
diff --git a/dev-ruby/importmap-rails/importmap-rails-2.2.3-r1.ebuild b/dev-ruby/importmap-rails/importmap-rails-2.2.3-r1.ebuild
new file mode 100644
index 000000000000..b4000ff6e63a
--- /dev/null
+++ b/dev-ruby/importmap-rails/importmap-rails-2.2.3-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_BINWRAP=""
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_EXTRAINSTALL="app"
+# Depends on appraisals, unpackaged dependencies, and unpackaged rails
+# bits.
+RUBY_FAKEGEM_RECIPE_TEST="none"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Use ESM with importmap to manage JavaScript in Rails"
+HOMEPAGE="https://github.com/rails/importmap-rails"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+ruby_add_rdepend "
+ >=dev-ruby/actionpack-6.0.0:*
+ >=dev-ruby/activesupport-6.0.0:*
+ >=dev-ruby/railties-6.0.0:*
+"
diff --git a/dev-ruby/io-endpoint/io-endpoint-0.17.1-r1.ebuild b/dev-ruby/io-endpoint/io-endpoint-0.17.1-r1.ebuild
new file mode 100644
index 000000000000..5ebc15074530
--- /dev/null
+++ b/dev-ruby/io-endpoint/io-endpoint-0.17.1-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Provides a separation of concerns interface for IO endpoints"
+HOMEPAGE="https://github.com/socketry/io-endpoint"
+SRC_URI="https://github.com/socketry/io-endpoint/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~riscv ~sparc ~x86"
+IUSE="test"
+
+ruby_add_bdepend "test? (
+ dev-ruby/sus-fixtures-async
+ dev-ruby/sus-fixtures-openssl
+)"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ sed -e '/covered/I s:^:#:' -i config/sus.rb || die
+
+ sed -e "s:/tmp/test.ipc:${TMP}/test.ipc:" \
+ -i test/io/endpoint/unix_endpoint.rb || die
+
+ # Avoid tests that require unpackaged "bake" and require running
+ # with Bundler.
+ rm -f test/traces/backend/capture.rb || die
+}
diff --git a/dev-ruby/launchy/launchy-3.1.1.ebuild b/dev-ruby/launchy/launchy-3.1.1.ebuild
index efae2f5f74e2..9d3425071891 100644
--- a/dev-ruby/launchy/launchy-3.1.1.ebuild
+++ b/dev-ruby/launchy/launchy-3.1.1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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 HISTORY.md"
@@ -27,11 +27,20 @@ ruby_add_rdepend "
!<dev-ruby/launchy-2.5.2-r1
"
-ruby_add_bdepend "test? ( >=dev-ruby/minitest-5.0:5 )"
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ >=dev-ruby/minitest-5.0:5
+)"
all_ruby_prepare() {
sed -i -e "/[Ss]implecov/d" spec/spec_helper.rb || die
+ sed -e '/minitest-focus/d' \
+ -e '/minitest-junit/d' \
+ -e '/require: false/ s:^:#:' \
+ -i Gemfile || die
+ rm Gemfile.lock || die
+
# Avoid tests depending on the current user's desktop environment.
sed -e '/returns NotFound if it cannot determine/askip "gentoo"' \
-i spec/detect/nix_desktop_environment_spec.rb || die
@@ -42,5 +51,5 @@ all_ruby_prepare() {
}
each_ruby_test() {
- CI=true virtx each_fakegem_test
+ BUNDLE_GEMFILE="${S}/Gemfile" CI=true virtx ${RUBY} -S bundle exec ${RUBY} -S rake test || die
}
diff --git a/dev-ruby/lemon/Manifest b/dev-ruby/lemon/Manifest
index adc5e05cebff..7fae77151689 100644
--- a/dev-ruby/lemon/Manifest
+++ b/dev-ruby/lemon/Manifest
@@ -1,2 +1 @@
-DIST lemon-0.9.1.gem 31744 BLAKE2B e1b213e9fb5690c6dcc03cac1d83e9dca48540c41ecaa8bc90873c91d393c6b5fdbd800610238e485d42c1a3412541beb6119eae1e8830753fbc0c786084f3d2 SHA512 8e77d049982ab4e0ae3a18ea3f4d0e4164026fffe1ad94d3098a4165102630c529a9909c3978febb816723a4ff7e17a159a0e067f5f826f93d11f720e49062e8
DIST lemon-0.9.3.gem 29184 BLAKE2B f212b9c4cdffd4bc074ae3036f62a0556bb3baaf62aefe2b91887949813872bdc4279f351c85b200de4e5a5613e8f636285354a26c59f21a141727a2478057b7 SHA512 e342897ca232b08a8ee9af4ed3b5b509051e2943dbd860db1e5acfa4084f86e5b60924eb2f52d2a5ba2ed8858d93b9d85b37f431bfad87d10ea021db36332874
diff --git a/dev-ruby/lemon/lemon-0.9.1-r1.ebuild b/dev-ruby/lemon/lemon-0.9.1-r1.ebuild
deleted file mode 100644
index e2211197579b..000000000000
--- a/dev-ruby/lemon/lemon-0.9.1-r1.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_TASK_TEST=""
-RUBY_FAKEGEM_RECIPE_DOC="yard"
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Lemon is a unit testing framework"
-HOMEPAGE="https://rubyworks.github.io/lemon/"
-
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
-
-ruby_add_bdepend "test? ( dev-ruby/qed )"
-ruby_add_rdepend "
- dev-ruby/ae
- >=dev-ruby/ansi-1.3
- dev-ruby/rubytest
-"
-
-each_ruby_test() {
- ${RUBY} -S qed || die 'tests failed'
-}
diff --git a/dev-ruby/lemon/lemon-0.9.3.ebuild b/dev-ruby/lemon/lemon-0.9.3.ebuild
index be95a4c88ef9..1ad3d80387cb 100644
--- a/dev-ruby/lemon/lemon-0.9.3.ebuild
+++ b/dev-ruby/lemon/lemon-0.9.3.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/localhost/localhost-1.7.0-r1.ebuild b/dev-ruby/localhost/localhost-1.7.0-r1.ebuild
new file mode 100644
index 000000000000..3ec6a16b8d04
--- /dev/null
+++ b/dev-ruby/localhost/localhost-1.7.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md releases.md"
+RUBY_FAKEGEM_GEMSPEC="localhost.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Manage a local CA for self-signed localhost development servers"
+HOMEPAGE="https://github.com/socketry/localhost"
+SRC_URI="https://github.com/socketry/localhost/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~riscv ~sparc ~x86"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/io-endpoint
+ dev-ruby/sus-fixtures-async
+ )
+"
+
+all_ruby_prepare() {
+ sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
+ sed -i -e '/covered/Id' config/sus.rb || die
+
+ sed -e "s:/tmp/state:${TMP}/state:" \
+ -i test/localhost/state.rb || die
+
+ # Avoid unpackaged sus-fixtures-async-http which has a huge dependency tree.
+ rm -f test/localhost/protocol.rb || die
+}
+
+each_ruby_test() {
+ # Tests fail in parallel as it tries to use the same port so
+ # manually replicate ruby-ng_sus for now, as ruby-ng_sus runs sus-parallel.
+ ${RUBY} -S sus || die
+}
diff --git a/dev-ruby/loofah/loofah-2.25.0.ebuild b/dev-ruby/loofah/loofah-2.25.0.ebuild
index 5aa56509ea6f..f92b1b7879e8 100644
--- a/dev-ruby/loofah/loofah-2.25.0.ebuild
+++ b/dev-ruby/loofah/loofah-2.25.0.ebuild
@@ -2,7 +2,7 @@
# 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="CHANGELOG.md README.md"
@@ -21,7 +21,11 @@ IUSE="test"
ruby_add_rdepend "=dev-ruby/crass-1.0* >=dev-ruby/crass-1.0.2 >=dev-ruby/nokogiri-1.12.0"
-ruby_add_bdepend "test? ( >=dev-ruby/rr-1.1.0 )"
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ >=dev-ruby/rr-1.1.0
+)"
all_ruby_prepare() {
# Fix version in gemspec
@@ -32,8 +36,15 @@ all_ruby_prepare() {
# Avoid test failing on different whitespace.
sed -i -e '/test_fragment_whitewash_on_microsofty_markup/askip "gentoo"' test/integration/test_ad_hoc.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "crass"
+ gem "minitest", "~> 5"
+ gem "nokogiri"
+ gem "rr"
+ EOF
}
each_ruby_test() {
- ${RUBY} -Ilib:.:test -e 'Dir["test/**/test_*.rb"].each{|f| require f}' || die
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -Ilib:.:test -e 'Dir["test/**/test_*.rb"].each{|f| require f}' || die
}
diff --git a/dev-ruby/maildir/maildir-2.2.3-r1.ebuild b/dev-ruby/maildir/maildir-2.2.3-r1.ebuild
index 0f664795b5b2..8a4b63e32cd0 100644
--- a/dev-ruby/maildir/maildir-2.2.3-r1.ebuild
+++ b/dev-ruby/maildir/maildir-2.2.3-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_EXTRAINSTALL="README.rdoc"
diff --git a/dev-ruby/metrics/metrics-0.15.0.ebuild b/dev-ruby/metrics/metrics-0.15.0.ebuild
index 2027bf601fa9..15c0191af43a 100644
--- a/dev-ruby/metrics/metrics-0.15.0.ebuild
+++ b/dev-ruby/metrics/metrics-0.15.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="sus"
RUBY_FAKEGEM_EXTRADOC="readme.md releases.md"
diff --git a/dev-ruby/mini_magick/Manifest b/dev-ruby/mini_magick/Manifest
index 36f9b16bc93e..57f85b5cc2c0 100644
--- a/dev-ruby/mini_magick/Manifest
+++ b/dev-ruby/mini_magick/Manifest
@@ -1,4 +1,2 @@
DIST mini_magick-4.13.2.tar.gz 1330632 BLAKE2B 831d6676cf2e65f857f149db77086ff9a8a209cf9aa4cfb0dc38a73e82b5d10605cf105d7126f0319203a9cae824e0b94812cf450ad5552316bbd94e21f71365 SHA512 a7a4628fe523816aef37eecfd755b84d11072c6c57134fd3b237312f302d41d2cccc2cefcbf1ef7a291d97d02b830887aa0f628140c51ca28fa9f955c6f96b57
-DIST mini_magick-5.2.0.tar.gz 1326464 BLAKE2B ad0a5f886e60bc5378b20538465a1cec44b36a6010f18f4ebb9f8766ef3126d4a81371be11252e6fb13c4d256531db7fdf58cec9850cd8e8a01ec361afdbc8e7 SHA512 4854ebaa832d226b266b35de4334547f967649b83d9a9b0565ca2a9b1255024ca1d09c381faa983fb39dd625b54c541175aa47205266bd30e57e90e88e150bd2
-DIST mini_magick-5.3.0.tar.gz 1326570 BLAKE2B 7320e802af113a0adb041992649b1c624eb19575723b5609ee29fda261a56d14ccbffd8c5d4602478aafc64ac92c4c4064b1e72b5da6920cf8d326d976f7e5b0 SHA512 e05f759f85adaab9f19ccf90cac21757c41d56c81307e35475793078a0722b1ff730aee5e513e3811657e504606d1ffb0f16f57ea32e393fbcb75a1750a17927
DIST mini_magick-5.3.1.tar.gz 1326584 BLAKE2B 14d3ed36f136844e19654ba4b7d1803f296d1893e6b2abe28cf7339f0026595db236d44df8422ee8c1e11f86aa48366d07254444b988ac04cda7d52306d5f2b9 SHA512 4bcf1a3552eb95182c2fd6f075d3ff5c202c98c331e9da585134911e43c96daf466bf99995c2f56fff2e69c25a9b526c9b48a4d38962907754f8f84d3a38e66c
diff --git a/dev-ruby/mini_magick/files/mini_magick-4.13.2-fix-imagemagick-7.patch b/dev-ruby/mini_magick/files/mini_magick-4.13.2-fix-imagemagick-7.patch
new file mode 100644
index 000000000000..c04082b09af3
--- /dev/null
+++ b/dev-ruby/mini_magick/files/mini_magick-4.13.2-fix-imagemagick-7.patch
@@ -0,0 +1,20 @@
+https://github.com/minimagick/minimagick/issues/590
+https://github.com/minimagick/minimagick/pull/591
+https://github.com/minimagick/minimagick/commit/7f25f72f7b2d11954a8d300dbba1208611eb25fb
+
+From 7f25f72f7b2d11954a8d300dbba1208611eb25fb Mon Sep 17 00:00:00 2001
+From: sorenstoutner <soren@stoutner.com>
+Date: Fri, 21 Mar 2025 05:57:02 -0700
+Subject: [PATCH] Fix testing with current versions of ImageMagick (#591)
+
+--- a/spec/lib/mini_magick/shell_spec.rb
++++ b/spec/lib/mini_magick/shell_spec.rb
+@@ -57,7 +57,7 @@
+ stdout, stderr, status = subject.execute(%W[identify foo])
+
+ expect(stdout).to eq ""
+- expect(stderr).to match("unable to open image")
++ expect(stderr).to match("(unable to open image|identify: no decode delegate for this image format)")
+ expect(status).to eq 1
+ end
+
diff --git a/dev-ruby/mini_magick/mini_magick-4.13.2.ebuild b/dev-ruby/mini_magick/mini_magick-4.13.2.ebuild
index b9e829b2b243..20707deca668 100644
--- a/dev-ruby/mini_magick/mini_magick-4.13.2.ebuild
+++ b/dev-ruby/mini_magick/mini_magick-4.13.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRADOC="README.md"
@@ -32,6 +32,10 @@ DEPEND="test? ( virtual/imagemagick-tools[jpeg,png,tiff] )"
ruby_add_bdepend "test? ( dev-ruby/mocha dev-ruby/webmock )"
+PATCHES=(
+ "${FILESDIR}"/mini_magick-4.13.2-fix-imagemagick-7.patch
+)
+
all_ruby_prepare() {
# remove executable bit from all files
find "${S}" -type f -exec chmod -x {} +
diff --git a/dev-ruby/mini_magick/mini_magick-5.2.0.ebuild b/dev-ruby/mini_magick/mini_magick-5.2.0.ebuild
deleted file mode 100644
index e4ef236749b2..000000000000
--- a/dev-ruby/mini_magick/mini_magick-5.2.0.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-inherit ruby-fakegem
-
-DESCRIPTION="Manipulate images with minimal use of memory"
-HOMEPAGE="https://github.com/minimagick/minimagick"
-SRC_URI="https://github.com/minimagick/minimagick/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="minimagick-${PV}"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-IUSE="test"
-
-# It's only used at runtime in this case because this extension only
-# _calls_ the commands. But when we run tests we're going to need tiff
-# and jpeg support at a minimum.
-RDEPEND="media-gfx/imagemagick"
-DEPEND="test? ( virtual/imagemagick-tools[jpeg,png,tiff] )"
-
-ruby_add_rdepend "
- dev-ruby/benchmark
- dev-ruby/logger
-"
-
-ruby_add_bdepend "test? ( dev-ruby/mocha dev-ruby/webmock )"
-
-all_ruby_prepare() {
- # remove executable bit from all files
- find "${S}" -type f -exec chmod -x {} +
-
- sed -i -e '/bundler/ s:^:#:' spec/spec_helper.rb || die
-
- # Don't force a specific formatter but use overall Gentoo defaults
- # and show all failures.
- sed -i -e '/config.\(fail_fast\|formatter\)/ s:^:#:' spec/spec_helper.rb || die
-
- # Avoid broken spec that does not assume . in path name
- sed -i -e '/reformats a layer/,/end/ s:^:#:' spec/lib/mini_magick/image_spec.rb || die
-
- # Avoid spec broken by recent imagemagick updates
- sed -i -e '/reads exif/askip "Now returns more complete EXIF data"' spec/lib/mini_magick/image_spec.rb || die
-}
diff --git a/dev-ruby/mini_magick/mini_magick-5.3.0.ebuild b/dev-ruby/mini_magick/mini_magick-5.3.0.ebuild
deleted file mode 100644
index 5b24f9fa0bd1..000000000000
--- a/dev-ruby/mini_magick/mini_magick-5.3.0.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-inherit ruby-fakegem
-
-DESCRIPTION="Manipulate images with minimal use of memory"
-HOMEPAGE="https://github.com/minimagick/minimagick"
-SRC_URI="https://github.com/minimagick/minimagick/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="minimagick-${PV}"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-IUSE="test"
-
-# It's only used at runtime in this case because this extension only
-# _calls_ the commands. But when we run tests we're going to need tiff
-# and jpeg support at a minimum.
-RDEPEND="media-gfx/imagemagick"
-DEPEND="test? ( virtual/imagemagick-tools[jpeg,png,tiff] )"
-
-ruby_add_rdepend "
- dev-ruby/benchmark
- dev-ruby/logger
-"
-
-ruby_add_bdepend "test? ( dev-ruby/mocha dev-ruby/webmock )"
-
-all_ruby_prepare() {
- # remove executable bit from all files
- find "${S}" -type f -exec chmod -x {} +
-
- sed -i -e '/bundler/ s:^:#:' spec/spec_helper.rb || die
-
- # Don't force a specific formatter but use overall Gentoo defaults
- # and show all failures.
- sed -i -e '/config.\(fail_fast\|formatter\)/ s:^:#:' spec/spec_helper.rb || die
-
- # Avoid broken spec that does not assume . in path name
- sed -i -e '/reformats a layer/,/end/ s:^:#:' spec/lib/mini_magick/image_spec.rb || die
-
- # Avoid spec broken by recent imagemagick updates
- sed -i -e '/reads exif/askip "Now returns more complete EXIF data"' spec/lib/mini_magick/image_spec.rb || die
-}
diff --git a/dev-ruby/mini_magick/mini_magick-5.3.1.ebuild b/dev-ruby/mini_magick/mini_magick-5.3.1.ebuild
index d62c43dc3fd5..f4c3d5745590 100644
--- a/dev-ruby/mini_magick/mini_magick-5.3.1.ebuild
+++ b/dev-ruby/mini_magick/mini_magick-5.3.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRADOC="README.md"
diff --git a/dev-ruby/minitest-around/minitest-around-0.6.0.ebuild b/dev-ruby/minitest-around/minitest-around-0.6.0.ebuild
index f86fa28c8473..a8d64d6e3698 100644
--- a/dev-ruby/minitest-around/minitest-around-0.6.0.ebuild
+++ b/dev-ruby/minitest-around/minitest-around-0.6.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_DOC=""
RUBY_FAKEGEM_EXTRADOC="README.md"
diff --git a/dev-ruby/mixlib-shellout/Manifest b/dev-ruby/mixlib-shellout/Manifest
index da6d9c8f36d5..ea5daa241d1e 100644
--- a/dev-ruby/mixlib-shellout/Manifest
+++ b/dev-ruby/mixlib-shellout/Manifest
@@ -1 +1,2 @@
DIST mixlib-shellout-3.3.9.tar.gz 48052 BLAKE2B 41a232d1a02d2b53f0fb121b5128cb417cb59d41222f63f7015d2d95a5305fac513b83a6860444eb6334c6bd80a22c86baabc49cd25d9eab4af17d9b689f5307 SHA512 af5de89eef62d2c3f31278c7600ee961ee97bff3ccc282dee1c97673984719301c0ac4c7dcc48b064927dbe3dcd17d1dd3f78de05da0e5c61e5badf2f599ede7
+DIST mixlib-shellout-3.4.13.tar.gz 70457 BLAKE2B 42b8e5bda3f49ce1f5b5afda1faeb79e5ef142db71d4af23437685496656d98ee9b3684545b74478e223c0d84b56a2ab33d3d602740910bfb22b195f000b980c SHA512 7dc7981a8fe9a33316467fe57570f4a9ca149c7018b762b880feb6ec394e3dfc948cf2c3cc61885dfbb7903ac04793871ee5419d99914c90e6ef3d202f4c5e34
diff --git a/dev-ruby/mixlib-shellout/mixlib-shellout-3.4.13.ebuild b/dev-ruby/mixlib-shellout/mixlib-shellout-3.4.13.ebuild
new file mode 100644
index 000000000000..08ac60de6ea7
--- /dev/null
+++ b/dev-ruby/mixlib-shellout/mixlib-shellout-3.4.13.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+RUBY_FAKEGEM_EXTRA_DOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="mixlib-shellout.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Run external commands on Unix or Windows"
+HOMEPAGE="https://github.com/chef/mixlib-shellout"
+SRC_URI="https://github.com/chef/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+ruby_add_rdepend "dev-ruby/chef-utils dev-ruby/logger"
+
+each_ruby_prepare() {
+ # Make sure we actually use the right interpreter for testing
+ sed -i -e "/ruby_eval/ s:ruby :${RUBY} :" spec/mixlib/shellout_spec.rb || die
+
+ # Avoid spec that requires an interactive terminal
+ sed -e '/with subprocess writing lots of data to both stdout and stderr/,/^ end/ s:^:#:' \
+ -i spec/mixlib/shellout_spec.rb || die
+
+ # Avoid known failing specs, bug #978798
+ sed -e '/"when cgroup exists"/,/^ end/ s:^:#:' \
+ -e '/"when cgroup does not exist"/,/^ end/ s:^:#:' \
+ -i spec/mixlib/shellout_spec.rb || die
+}
diff --git a/dev-ruby/mocha/files/mocha-2.8.2-ruby35.patch b/dev-ruby/mocha/files/mocha-2.8.2-ruby35.patch
new file mode 100644
index 000000000000..a636a0b2d78a
--- /dev/null
+++ b/dev-ruby/mocha/files/mocha-2.8.2-ruby35.patch
@@ -0,0 +1,41 @@
+https://github.com/freerange/mocha/commit/1b1aa0d0e25f4527a0455562e964c19d23b987df
+
+From 1b1aa0d0e25f4527a0455562e964c19d23b987df Mon Sep 17 00:00:00 2001
+From: Earlopain <14981592+Earlopain@users.noreply.github.com>
+Date: Fri, 9 May 2025 12:52:14 +0200
+Subject: [PATCH] Fix compatibility with ruby 3.5
+
+In 3.5, most of the `cgi` gem is removed. Only methods relating to escaping/unescaping are retained.
+
+That means, on 3.5 you get this error:
+> NoMethodError: undefined method 'parse' for class CGI
+
+This replaces the cgi usage with https://docs.ruby-lang.org/en/master/URI.html#method-c-decode_www_form, that also returns this information.
+
+It's in array form, so it first needs to be converted to an hash.
+
+This method is available on all versions going back to at least Ruby 2.0 so compatibility should be ok with this.
+
+https://bugs.ruby-lang.org/issues/21258
+--- a/lib/mocha/parameter_matchers/equivalent_uri.rb
++++ b/lib/mocha/parameter_matchers/equivalent_uri.rb
+@@ -2,7 +2,6 @@
+
+ require 'mocha/parameter_matchers/base'
+ require 'uri'
+-require 'cgi'
+
+ module Mocha
+ module ParameterMatchers
+@@ -55,7 +54,10 @@ def mocha_inspect
+
+ # @private
+ def explode(uri)
+- query_hash = CGI.parse(uri.query || '')
++ query_hash = Hash.new { |hash, key| hash[key] = [] }
++ URI.decode_www_form(uri.query || '').each do |key, value|
++ query_hash[key] << value
++ end
+ URI::Generic::COMPONENT.inject({}) { |h, k| h.merge(k => uri.__send__(k)) }.merge(query: query_hash)
+ end
+ end
diff --git a/dev-ruby/mocha/mocha-2.8.2-r1.ebuild b/dev-ruby/mocha/mocha-2.8.2-r1.ebuild
new file mode 100644
index 000000000000..1448de5a81ed
--- /dev/null
+++ b/dev-ruby/mocha/mocha-2.8.2-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_TASK_TEST="test:units test:acceptance"
+RUBY_FAKEGEM_EXTRADOC="README.md RELEASE.md"
+RUBY_FAKEGEM_GEMSPEC="mocha.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Mocking and stubbing using a syntax like that of JMock and SchMock"
+HOMEPAGE="https://mocha.jamesmead.org/"
+SRC_URI="https://github.com/freerange/mocha/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+ruby_add_rdepend ">=dev-ruby/ruby2_keywords-0.0.5"
+
+ruby_add_bdepend "
+ test? ( >=dev-ruby/test-unit-2.5.1-r1 dev-ruby/introspection )"
+
+PATCHES=(
+ "${FILESDIR}"/mocha-2.8.2-ruby35.patch
+)
+
+all_ruby_prepare() {
+ sed -i -e '/[Bb]undler/ s:^:#:' -e '1iload "lib/mocha/version.rb"' Rakefile || die
+
+ sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
+}
+
+each_ruby_test() {
+ export MOCHA_NO_DOCS=true
+ each_fakegem_test
+}
diff --git a/dev-ruby/mqtt/Manifest b/dev-ruby/mqtt/Manifest
index da870b9da1e7..b53617af2b40 100644
--- a/dev-ruby/mqtt/Manifest
+++ b/dev-ruby/mqtt/Manifest
@@ -1 +1,2 @@
DIST mqtt-0.6.0.tar.gz 45975 BLAKE2B e3548db5a1d758168c86be8a1d313ccd0cc7ed7d5993f03688d6c68de7b28fc1c42f87de5d9cca459b0cb383d65640ba00c1015261fc777bb56811a51147924e SHA512 c9dbf86c583c9e57af97a1481b308a3d3fc796a6dd813dce83a8206d773a343242423fa116abc4b8ce34a1d6f0cb2026cc9189dd8b98af69c980c54501e130d8
+DIST mqtt-0.7.0.tar.gz 46972 BLAKE2B 295cf114a47fedf880c38529080f066b26186d18cd70ecf77389e48bbe1dab1c53944f6e612a4440694ee56cc3d3b1cd9c4a25e01cc14263b59bb64b74a995ed SHA512 162fe002f0a65d28eeb661d468023a039e892209d3c694559312b88fc0ed9cdcfcdd1f8527fbb16058bac918f82e48b95c1af7dfbda8eaac69d9ebfe16420ac2
diff --git a/dev-ruby/mqtt/mqtt-0.7.0.ebuild b/dev-ruby/mqtt/mqtt-0.7.0.ebuild
new file mode 100644
index 000000000000..c14858e778c7
--- /dev/null
+++ b/dev-ruby/mqtt/mqtt-0.7.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_GEMSPEC="mqtt.gemspec"
+RUBY_FAKEGEM_RECIPE_DOC="rdoc"
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Pure Ruby gem that implements the MQTT protocol"
+HOMEPAGE="https://github.com/njh/ruby-mqtt"
+SRC_URI="https://github.com/njh/ruby-mqtt/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+RUBY_S="ruby-${P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+
+all_ruby_prepare() {
+ sed -i -e '/bundler/I s:^:#: ; /SimpleCov/,/^end/ s:^:#:' spec/spec_helper.rb || die
+
+ # network sandbox
+ sed -e '/"should respect connect_timeout"/,/^ end/ s:^:#:' \
+ -i spec/mqtt_client_spec.rb || die
+}
diff --git a/dev-ruby/multi_xml/Manifest b/dev-ruby/multi_xml/Manifest
index c2c25f1e2740..429296d2f813 100644
--- a/dev-ruby/multi_xml/Manifest
+++ b/dev-ruby/multi_xml/Manifest
@@ -1,4 +1,2 @@
-DIST multi_xml-0.7.1.tar.gz 17122 BLAKE2B 09b8006a12ae99d85435b85c2c32afe20009cdd6bd0970ce5129c37411274aa402ed955f7ca692e90e7641120a90883b75a03a9ae8d88bd4a53e295095e040c4 SHA512 c578b6b4cadc48182ab94219d5f1550f645398c08460576cb5f6c72d8d6d01ef90b982437848d27e72f1157b9eff03dcafc29d04f298e52c14ae5b76df9082b0
DIST multi_xml-0.7.2.tar.gz 17006 BLAKE2B e7d2e570913e974129634a7a26903c42ca08c0c3efbe1eb9fefd9bb41cc17e1c6422e810fc470864cfd936be6bc467143d67397b42e4c327724dbb431c26a56c SHA512 419d18a08bc6610ab1f7ce7b61e1418ca9aeebf86a7c4078d12cea389881a1848f9a51eba8d44ef16e8674b49ccf08fc019a012a48707162a11d5578968756a1
-DIST multi_xml-0.8.0.tar.gz 38088 BLAKE2B 399d9f737c2b3aeede7e21aeaa1ad001863815ac617b98ea51991898bfce88a730d70376ed809969a418b563e41b96e6fde665f1de7c96eff1003247a42a3a5b SHA512 e6715134a0a16b71d7c3985c7462264b47b6d69c285d7ff153906f80a5de9dc284dcc7ba46ff0a10ca791efa4517a067430fa295e458bd290ef75c9bead4d5d1
DIST multi_xml-0.8.1.tar.gz 38238 BLAKE2B a55caff882ab24d666cac57185f23524c3375a9c19450a2eaa20ad719e2bc55b8e9e86ae663a60244a43a0fbc6d0c819c6d534d8828b0e228db0cf7f70c719a6 SHA512 8edbe6b5f65893476a11adb6d8c518e4d2734d079a80db8a47b288155d36e2b9042223d3c743ec2a26b9334fa18fd90865a24b59b9ffcdfab0bb6ade079e0aa7
diff --git a/dev-ruby/multi_xml/multi_xml-0.7.1.ebuild b/dev-ruby/multi_xml/multi_xml-0.7.1.ebuild
deleted file mode 100644
index 8932980678b5..000000000000
--- a/dev-ruby/multi_xml/multi_xml-0.7.1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-RUBY_FAKEGEM_TASK_DOC="yard"
-
-RUBY_FAKEGEM_DOCDIR="doc"
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="A generic swappable back-end for XML parsing"
-HOMEPAGE="https://www.rubydoc.info/gems/multi_xml"
-SRC_URI="https://github.com/sferik/multi_xml/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc ~ppc64 ~x86"
-IUSE="doc test"
-
-ruby_add_rdepend ">=dev-ruby/bigdecimal-3.1:0"
-
-ruby_add_bdepend "doc? ( dev-ruby/yard )"
-ruby_add_bdepend "test? ( dev-ruby/ox )"
-
-all_ruby_prepare() {
- sed -e 's:_relative ": "./:' \
- -e 's/__dir__/"."/' \
- -e 's/git ls-files -z/find * -print0/' \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -i -e '/simplecov/,/^end/ s:^:#:' spec/helper.rb || die
- sed -e '/bundler/I s:^:#:' \
- -e '/yardstick/,/end/ s:^:#:' \
- -e '/rubocop/I s:^:#:' \
- -i Rakefile || die
-}
-
-each_ruby_test() {
- CI=true each_fakegem_test
-}
diff --git a/dev-ruby/multi_xml/multi_xml-0.8.0.ebuild b/dev-ruby/multi_xml/multi_xml-0.8.0.ebuild
deleted file mode 100644
index c3d4396fa420..000000000000
--- a/dev-ruby/multi_xml/multi_xml-0.8.0.ebuild
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_TASK_DOC="yard"
-
-RUBY_FAKEGEM_DOCDIR="doc"
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="A generic swappable back-end for XML parsing"
-HOMEPAGE="https://github.com/sferik/multi_xml"
-SRC_URI="https://github.com/sferik/multi_xml/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
-IUSE="doc test"
-
-ruby_add_rdepend "|| ( dev-ruby/bigdecimal:4 >=dev-ruby/bigdecimal-3.1:0 )"
-
-ruby_add_bdepend "doc? ( dev-ruby/yard )"
-ruby_add_bdepend "test? ( >=dev-ruby/minitest-5.27:5 dev-ruby/ox )"
-
-all_ruby_prepare() {
- sed -e 's:_relative ": "./:' \
- -e 's/__dir__/"."/' \
- -e 's/git ls-files -z/find * -print0/' \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -e '/bundler/I s:^:#:' \
- -e '/yardstick/,/end/ s:^:#:' \
- -e '/rubocop/I s:^:#:' \
- -i Rakefile || die
-
- # Avoid coverage dependencies
- sed -e '/simplecov/,/^end/ s:^:#:' \
- -e '/mutant/ s:^:#:' \
- -e '1igem "minitest", "~> 5.0"' \
- -i test/test_helper.rb || die
- sed -e '/cover/ s:^:#:' \
- -e '/Mutant/ s:^:#:' \
- -i test/*.rb || die
-
- # Avoid tests for unpackaged XML providers.
- sed -e '/test_returns_oga_when_only_oga_defined/askip "Not packaged"' \
- -i test/parser_detection_test.rb || die
- sed -e '/test_load_parser_handles_underscore_names/askip "Not packaged"' \
- -i test/load_parser_test.rb || die
-}
-
-each_ruby_test() {
- CI=true ${RUBY} -Ilib:.:test -e "Dir['test/**/*.rb'].each{|f| require f}" || die
-}
diff --git a/dev-ruby/multi_xml/multi_xml-0.8.1.ebuild b/dev-ruby/multi_xml/multi_xml-0.8.1.ebuild
index 4cf8a6c45da0..53c1cb118988 100644
--- a/dev-ruby/multi_xml/multi_xml-0.8.1.ebuild
+++ b/dev-ruby/multi_xml/multi_xml-0.8.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_TASK_DOC="yard"
@@ -27,7 +27,7 @@ IUSE="doc test"
ruby_add_rdepend "|| ( dev-ruby/bigdecimal:4 >=dev-ruby/bigdecimal-3.1:0 )"
ruby_add_bdepend "doc? ( dev-ruby/yard )"
-ruby_add_bdepend "test? ( >=dev-ruby/minitest-5.27:5 dev-ruby/ox )"
+ruby_add_bdepend "test? ( >=dev-ruby/minitest-5.27:5 dev-ruby/nokogiri dev-ruby/ox )"
all_ruby_prepare() {
sed -e 's:_relative ": "./:' \
diff --git a/dev-ruby/mysql2/mysql2-0.5.7.ebuild b/dev-ruby/mysql2/mysql2-0.5.7.ebuild
index a226b6e30243..6f9650744f40 100644
--- a/dev-ruby/mysql2/mysql2-0.5.7.ebuild
+++ b/dev-ruby/mysql2/mysql2-0.5.7.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
@@ -40,6 +40,14 @@ BDEPEND="
ruby_add_rdepend "dev-ruby/bigdecimal"
+each_ruby_prepare() {
+ if [[ ${RUBY} =~ ruby40 ]]; then
+ # FIXME: Fails only for ruby4.0 (Mysql 8.4 used). Doesn't fail upstream and they enable ruby4.0.
+ sed -e '/"should not leave dangling connections after garbage collection"/,/^ end/ s:^:#:' \
+ -i spec/mysql2/client_spec.rb || die
+ fi
+}
+
all_ruby_prepare() {
sed -i -e '/s.version/ s/Mysql2::VERSION/"'${PV}'"/' ${RUBY_FAKEGEM_GEMSPEC} || die
}
diff --git a/dev-ruby/net-http-persistent/net-http-persistent-4.0.8.ebuild b/dev-ruby/net-http-persistent/net-http-persistent-4.0.8.ebuild
index 320ef9612a6b..369cdeb216f0 100644
--- a/dev-ruby/net-http-persistent/net-http-persistent-4.0.8.ebuild
+++ b/dev-ruby/net-http-persistent/net-http-persistent-4.0.8.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="History.txt README.rdoc"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
diff --git a/dev-ruby/niceogiri/niceogiri-1.1.2-r1.ebuild b/dev-ruby/niceogiri/niceogiri-1.1.2-r1.ebuild
index 10746eb4d87b..6010e2f63776 100644
--- a/dev-ruby/niceogiri/niceogiri-1.1.2-r1.ebuild
+++ b/dev-ruby/niceogiri/niceogiri-1.1.2-r1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="README.md"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/org-ruby/org-ruby-0.9.12_p20200519.ebuild b/dev-ruby/org-ruby/org-ruby-0.9.12_p20200519.ebuild
index b702418f4f27..76509c2fa485 100644
--- a/dev-ruby/org-ruby/org-ruby-0.9.12_p20200519.ebuild
+++ b/dev-ruby/org-ruby/org-ruby-0.9.12_p20200519.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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"
COMMIT=7a28c2e6e91cdaceb1fddc2d870f4458632816e8
diff --git a/dev-ruby/pdf-reader/pdf-reader-2.15.1.ebuild b/dev-ruby/pdf-reader/pdf-reader-2.15.1.ebuild
index dd4deaba265b..63c7c9e62d3a 100644
--- a/dev-ruby/pdf-reader/pdf-reader-2.15.1.ebuild
+++ b/dev-ruby/pdf-reader/pdf-reader-2.15.1.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
GITHUB_USER=yob
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/phlex/phlex-2.2.2.ebuild b/dev-ruby/phlex/phlex-2.2.2.ebuild
index 7f652dd9f9e6..5cf7d7bd67e5 100644
--- a/dev-ruby/phlex/phlex-2.2.2.ebuild
+++ b/dev-ruby/phlex/phlex-2.2.2.ebuild
@@ -2,7 +2,7 @@
# 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"
diff --git a/dev-ruby/phlex/phlex-2.3.2.ebuild b/dev-ruby/phlex/phlex-2.3.2.ebuild
index b82b8db03953..858cbf94db9c 100644
--- a/dev-ruby/phlex/phlex-2.3.2.ebuild
+++ b/dev-ruby/phlex/phlex-2.3.2.ebuild
@@ -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"
diff --git a/dev-ruby/propshaft/Manifest b/dev-ruby/propshaft/Manifest
index 8aa5f35c5012..477d9a92d465 100644
--- a/dev-ruby/propshaft/Manifest
+++ b/dev-ruby/propshaft/Manifest
@@ -1,5 +1 @@
-DIST propshaft-0.9.1-git.tgz 250403 BLAKE2B 194dad0d196421c71220a47e66ebd36d744f8009551c210244a1f7a79a04d095fe4b00497c8dcf4b57358c9454768cae3d6743855b5f0a59a6ead0d282938a55 SHA512 5d2d707f00b09c89c01d217695a7bd7a44f2427df091e84883f07e01b821218bd16776196c6f468071fc95a211df785443f12da0f795d433e359e1655f08c4ce
-DIST propshaft-1.1.0-git.tgz 251511 BLAKE2B 051071e5b54f2b29afc63d7daed83e9a482559c5ec84d59feb0b2974f33f87e9c4284ed9d5a07cce8a3d396d04a99259fd3809238bdf3521e9fcf45cfbb947d5 SHA512 474eefc0b78d404983017a513a92a09803feb6ffedaa1d029ca6fcee28c648aabf2ae6df18ffd05c30f4b038af2036b981bff4ead4e149223ede6482820be639
-DIST propshaft-1.2.0-git.tgz 256661 BLAKE2B 28760c10b90b354eaa502522ed490312384402f584a8ee4640fae5367463387acaad6c8382ef33f593ffef1e8ee0c5bbe58d56ff551d9115712f12830b0a0046 SHA512 e4dd2d1ef846b2fd59d060dbf714c7fb0af7e16d1cbd3638ebc0a8d407a09a3a4a8d0615756c9467370465b1f8f49cae34987ac3390959e47fd9ec9e50cc1a59
-DIST propshaft-1.2.1-git.tgz 258161 BLAKE2B 7ac1f2bcb0a8798e27d12f16ed9f96ad200d7ca63712bb3b7daa8b712fb022ba1a452b2671f182f4b7fce87a939651444e0dc81e7b7c9449fe2a0a2cf641a524 SHA512 0695da33eaa3c1565fd15b877f470e0e228fd48107ad97b4a4db404788618a9b536920e8b2fb601ca04b8bb1eacb907baaa442281d8a34a86340c1b4d9cf6d65
DIST propshaft-1.3.1-git.tgz 258406 BLAKE2B fe2a7f6fce912b4942b9bb5dc6f7ee1cbbb16e73a5e0f4824efa305267f0766bc907acfc60597737cc7118ace7d6c388fcf49077bbf5869576ec80eaaccd5cd2 SHA512 261327ee61694810bb15e3999d034ab672c15eedc141935aeef2a294debb8ba93a676a48f81ae71c714ac39a9aef5e1f1dc437f3deae170a5439bc9b483e18a1
diff --git a/dev-ruby/propshaft/propshaft-0.9.1.ebuild b/dev-ruby/propshaft/propshaft-0.9.1.ebuild
deleted file mode 100644
index cc4eb2ea4af6..000000000000
--- a/dev-ruby/propshaft/propshaft-0.9.1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_GEMSPEC="propshaft.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Deliver assets for Rails"
-HOMEPAGE="https://github.com/rails/propshaft"
-SRC_URI="https://github.com/rails/propshaft/archive/v${PV}.tar.gz -> ${P}-git.tgz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-IUSE="test"
-
-ruby_add_rdepend "
- >=dev-ruby/actionpack-7.0.0:*
- >=dev-ruby/activesupport-7.0.0:*
- dev-ruby/rack:*
- >=dev-ruby/railties-7.0.0:*
-"
-
-ruby_add_bdepend "test? ( >=dev-ruby/rails-7.0.0 )"
-
-all_ruby_prepare() {
- rm -f Gemfile.lock || die
- sed -i -e '/debug/ s:^:#:' Gemfile || die
-
- sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
diff --git a/dev-ruby/propshaft/propshaft-1.2.0.ebuild b/dev-ruby/propshaft/propshaft-1.2.0.ebuild
deleted file mode 100644
index c92fb178fd50..000000000000
--- a/dev-ruby/propshaft/propshaft-1.2.0.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_EXTRADOC="README.md UPGRADING.md"
-
-RUBY_FAKEGEM_GEMSPEC="propshaft.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Deliver assets for Rails"
-HOMEPAGE="https://github.com/rails/propshaft"
-SRC_URI="https://github.com/rails/propshaft/archive/v${PV}.tar.gz -> ${P}-git.tgz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-IUSE="test"
-
-ruby_add_rdepend "
- >=dev-ruby/actionpack-7.0.0:*
- >=dev-ruby/activesupport-7.0.0:*
- dev-ruby/rack:*
-"
-
-ruby_add_bdepend "test? ( >=dev-ruby/rails-7.0.0 )"
-
-all_ruby_prepare() {
- rm -f Gemfile.lock || die
- sed -i -e '/debug/ s:^:#:' Gemfile || die
-
- sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
diff --git a/dev-ruby/propshaft/propshaft-1.2.1.ebuild b/dev-ruby/propshaft/propshaft-1.2.1.ebuild
deleted file mode 100644
index c92fb178fd50..000000000000
--- a/dev-ruby/propshaft/propshaft-1.2.1.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_EXTRADOC="README.md UPGRADING.md"
-
-RUBY_FAKEGEM_GEMSPEC="propshaft.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Deliver assets for Rails"
-HOMEPAGE="https://github.com/rails/propshaft"
-SRC_URI="https://github.com/rails/propshaft/archive/v${PV}.tar.gz -> ${P}-git.tgz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-IUSE="test"
-
-ruby_add_rdepend "
- >=dev-ruby/actionpack-7.0.0:*
- >=dev-ruby/activesupport-7.0.0:*
- dev-ruby/rack:*
-"
-
-ruby_add_bdepend "test? ( >=dev-ruby/rails-7.0.0 )"
-
-all_ruby_prepare() {
- rm -f Gemfile.lock || die
- sed -i -e '/debug/ s:^:#:' Gemfile || die
-
- sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
diff --git a/dev-ruby/propshaft/propshaft-1.1.0.ebuild b/dev-ruby/propshaft/propshaft-1.3.1-r1.ebuild
index ccc0b27a1e3b..7253a80bec53 100644
--- a/dev-ruby/propshaft/propshaft-1.1.0.ebuild
+++ b/dev-ruby/propshaft/propshaft-1.3.1-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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 UPGRADING.md"
@@ -18,7 +18,7 @@ SRC_URI="https://github.com/rails/propshaft/archive/v${PV}.tar.gz -> ${P}-git.tg
LICENSE="MIT"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
IUSE="test"
@@ -26,14 +26,26 @@ ruby_add_rdepend "
>=dev-ruby/actionpack-7.0.0:*
>=dev-ruby/activesupport-7.0.0:*
dev-ruby/rack:*
- >=dev-ruby/railties-7.0.0:*
"
-ruby_add_bdepend "test? ( >=dev-ruby/rails-7.0.0 )"
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ >=dev-ruby/rails-7.0.0
+)"
all_ruby_prepare() {
rm -f Gemfile.lock || die
sed -i -e '/debug/ s:^:#:' Gemfile || die
sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "minitest", "~> 5"
+ gem "rails", ">= 7.0.0"
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake || die
}
diff --git a/dev-ruby/propshaft/propshaft-1.3.1.ebuild b/dev-ruby/propshaft/propshaft-1.3.1.ebuild
index c92fb178fd50..4568cfabf5de 100644
--- a/dev-ruby/propshaft/propshaft-1.3.1.ebuild
+++ b/dev-ruby/propshaft/propshaft-1.3.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -28,11 +28,24 @@ ruby_add_rdepend "
dev-ruby/rack:*
"
-ruby_add_bdepend "test? ( >=dev-ruby/rails-7.0.0 )"
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ >=dev-ruby/rails-7.0.0
+)"
all_ruby_prepare() {
rm -f Gemfile.lock || die
sed -i -e '/debug/ s:^:#:' Gemfile || die
sed -i -e 's:_relative ": "./:' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "minitest", "~> 5"
+ gem "rails", ">= 7.0.0"
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake || die
}
diff --git a/dev-ruby/pry/pry-0.16.0.ebuild b/dev-ruby/pry/pry-0.16.0.ebuild
index 0c2c876acd51..4b2bbbd93ed4 100644
--- a/dev-ruby/pry/pry-0.16.0.ebuild
+++ b/dev-ruby/pry/pry-0.16.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_DOC="yard"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/public_suffix/Manifest b/dev-ruby/public_suffix/Manifest
index dc5d3a291fd1..2ab3b170169a 100644
--- a/dev-ruby/public_suffix/Manifest
+++ b/dev-ruby/public_suffix/Manifest
@@ -1,4 +1,3 @@
DIST public_suffix-6.0.2.tar.gz 113755 BLAKE2B 2fbc5ff8dd47626fd15f463e8f376d869367fbb95b2a0917f784f3ec37650890caaa488b1484ec31597aa3ae15edaea1275f26922dba6963ab2b6849a3329e99 SHA512 01f1ffb85f8e0e52b6dc84fc82da0b248c6d85d5c5ef92cff724fc2ec5d7757329129e7c0c5e012be396dc9fa3d52037ba6b10f7d2cf1c934364113e7f526c48
-DIST public_suffix-7.0.0.tar.gz 116478 BLAKE2B 4dc71075068ccde62a4b3ab0743340c6db9573d0e7690079415c78788d44e0961dc6610c1c41d13a0ba85f7c35b133efb7068b35d08c9c808085ccbae25c1144 SHA512 e3e76bc82a14bdcc71600bcd99a91f7389eac02dd74a860efa6e5440b958dff11c284d864659e7c6782799bc126d013bb897cdb30d3e30b2535ba7e1c10cdaa7
-DIST public_suffix-7.0.1.tar.gz 119524 BLAKE2B 0126cc4b2dc4014c6917fe4de9e9755feb2032c30b4e02c940e1dddb850df34cc31e677148bc2dd9e489079e379228690104ed6885e7867b8eab90d059932ef4 SHA512 4e0cb109bf2caf1957937760418481a9f9bbd9ebf09dc17e28abaa49a8fc514fa910e5a7433ab05bc0db7b68b42f25e2ab7edcfb8e9329dcc376bb72364259c6
DIST public_suffix-7.0.2.tar.gz 119769 BLAKE2B 46a7697242f1def1ecdc9b70e5ac5ad9ef91ca4b3605b677d675da941415013e641ee7c5d4b317e2c6435b424bdc2a927a0acf2e10ef3a207f460a1f5b8dd6db SHA512 e7202feb21b41ddc0de5bf3cb5470ffb5762c889648ae134f2b03ee05fa37817163deb19569fbdfc6332115545da2557bc17cb6cef18a85a5344ff7f37f34d2c
+DIST public_suffix-7.0.5.tar.gz 120329 BLAKE2B 509daa8505780973de723c21ff5a2e6c5ad392944c4b4bff8ec8fff80e401286a296b6a48ec1036077f09403dc4c0aede19a06f7d01deb2c0eedc55eb9a70aa6 SHA512 18bfd7fab7fd011bd70784a408a4b26934fb298c41981173c58119fbbe5b9000e115ae2cc30dd314553e2acce627f07803aea05a3780a0326948fff8c0982cef
diff --git a/dev-ruby/public_suffix/public_suffix-7.0.0.ebuild b/dev-ruby/public_suffix/public_suffix-7.0.0.ebuild
deleted file mode 100644
index 110298781de9..000000000000
--- a/dev-ruby/public_suffix/public_suffix-7.0.0.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRAINSTALL="data"
-RUBY_FAKEGEM_GEMSPEC="public_suffix.gemspec"
-RUBY_FAKEGEM_BINWRAP=""
-
-inherit ruby-fakegem
-
-DESCRIPTION="Parse and decompose a domain name into top level domain, domain and subdomains"
-HOMEPAGE="https://simonecarletti.com/code/publicsuffix-ruby/"
-SRC_URI="https://github.com/weppos/publicsuffix-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="publicsuffix-ruby-${PV}"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-
-ruby_add_bdepend "test? ( dev-ruby/mocha:2 )"
-
-all_ruby_prepare() {
- sed -e 's:_relative ": "./:' \
- -e 's/__dir__/"."/' \
- -e 's/git ls-files -z/find * -print0/' \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
-
- sed -i -e '/rubocop/I s:^:#:' \
- -e '/yard/,/CLOBBER.include/ s:^:#:' \
- -e '/bundler/ s:^:#:' Rakefile || die
- sed -i -e '/reporters/I s:^:#:' test/test_helper.rb || die
-}
diff --git a/dev-ruby/public_suffix/public_suffix-7.0.1.ebuild b/dev-ruby/public_suffix/public_suffix-7.0.5.ebuild
index 9624df880710..b9c33aa60c14 100644
--- a/dev-ruby/public_suffix/public_suffix-7.0.1.ebuild
+++ b/dev-ruby/public_suffix/public_suffix-7.0.5.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRAINSTALL="data"
RUBY_FAKEGEM_GEMSPEC="public_suffix.gemspec"
@@ -20,7 +20,10 @@ LICENSE="MIT"
SLOT="$(ver_cut 1)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
-ruby_add_bdepend "test? ( dev-ruby/mocha:2 )"
+ruby_add_bdepend "test? (
+ dev-ruby/minitest
+ dev-ruby/mocha:3
+)"
all_ruby_prepare() {
sed -e 's:_relative ": "./:' \
@@ -28,8 +31,7 @@ all_ruby_prepare() {
-e 's/git ls-files -z/find * -print0/' \
-i ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -i -e '/rubocop/I s:^:#:' \
- -e '/yard/,/CLOBBER.include/ s:^:#:' \
+ sed -i -e '/require/ s:\(yard\|rubocop\):no-exist:' \
-e '/bundler/ s:^:#:' Rakefile || die
sed -i -e '/reporters/I s:^:#:' test/test_helper.rb || die
}
diff --git a/dev-ruby/qed/qed-2.9.2-r1.ebuild b/dev-ruby/qed/qed-2.9.2-r1.ebuild
index c6b1dcd3bc05..c86e62ab0bff 100644
--- a/dev-ruby/qed/qed-2.9.2-r1.ebuild
+++ b/dev-ruby/qed/qed-2.9.2-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/rails-dom-testing/rails-dom-testing-2.3.0.ebuild b/dev-ruby/rails-dom-testing/rails-dom-testing-2.3.0.ebuild
index 5ec58fa08937..2030a6624897 100644
--- a/dev-ruby/rails-dom-testing/rails-dom-testing-2.3.0.ebuild
+++ b/dev-ruby/rails-dom-testing/rails-dom-testing-2.3.0.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="README.md"
@@ -18,9 +18,17 @@ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
ruby_add_rdepend "
>=dev-ruby/activesupport-5.0.0:*
>=dev-ruby/nokogiri-1.6
- dev-ruby/minitest
+ dev-ruby/minitest:5
"
+all_ruby_prepare() {
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "minitest", "~> 5"
+ gem "nokogiri"
+ gem "activesupport"
+ EOF
+}
+
each_ruby_test() {
- MT_NO_PLUGINS=1 ${RUBY} -Ilib:test:. -e 'Dir["test/*_test.rb"].each{|f| require f}' || die
+ BUNDLE_GEMFILE="${T}/Gemfile" MT_NO_PLUGINS=1 ${RUBY} -S bundle exec ${RUBY} -Ilib:test:. -e 'Dir["test/*_test.rb"].each{|f| require f}' || die
}
diff --git a/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.6.2.ebuild b/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.6.2.ebuild
index 4c245132f941..983419a21544 100644
--- a/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.6.2.ebuild
+++ b/dev-ruby/rails-html-sanitizer/rails-html-sanitizer-1.6.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="CHANGELOG.md README.md"
@@ -19,14 +19,21 @@ IUSE="test"
ruby_add_rdepend ">=dev-ruby/loofah-2.21:0 >=dev-ruby/nokogiri-1.16.8:0"
-ruby_add_bdepend "test? ( dev-ruby/rails-dom-testing )"
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ dev-ruby/rails-dom-testing
+)"
all_ruby_prepare() {
# Avoid tests that depend on nokogiri patches to libxml2.
# sed -i -e '/\(name_action\|attr\)_in_a_tag_in_safe_list_sanitizer/askip "libxml2"' test/sanitizer_test.rb || die
-:
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "minitest", "~> 5"
+ gem "loofah"
+ EOF
}
each_ruby_test() {
- ${RUBY} -Ilib:test:. -e 'Dir["test/*_test.rb"].each{|f| require f}' || die
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -Ilib:test:. -e 'Dir["test/*_test.rb"].each{|f| require f}' || die
}
diff --git a/dev-ruby/rails/rails-8.0.4-r1.ebuild b/dev-ruby/rails/rails-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..c670452c0952
--- /dev/null
+++ b/dev-ruby/rails/rails-8.0.4-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+RUBY_FAKEGEM_TASK_TEST=""
+
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+inherit ruby-fakegem
+
+DESCRIPTION="ruby on rails is a web-application and persistence framework"
+HOMEPAGE="https://rubyonrails.org"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+ruby_add_rdepend "
+ ~dev-ruby/actioncable-${PV}
+ ~dev-ruby/actionmailbox-${PV}
+ ~dev-ruby/actionmailer-${PV}
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/actiontext-${PV}
+ ~dev-ruby/actionview-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/activemodel-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/activestorage-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/bundler-1.15.0:*
+ ~dev-ruby/railties-${PV}
+"
diff --git a/dev-ruby/rails/rails-8.1.2-r1.ebuild b/dev-ruby/rails/rails-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..c670452c0952
--- /dev/null
+++ b/dev-ruby/rails/rails-8.1.2-r1.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_BINWRAP=""
+
+RUBY_FAKEGEM_TASK_TEST=""
+
+RUBY_FAKEGEM_EXTRADOC="README.md"
+
+inherit ruby-fakegem
+
+DESCRIPTION="ruby on rails is a web-application and persistence framework"
+HOMEPAGE="https://rubyonrails.org"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+ruby_add_rdepend "
+ ~dev-ruby/actioncable-${PV}
+ ~dev-ruby/actionmailbox-${PV}
+ ~dev-ruby/actionmailer-${PV}
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/actiontext-${PV}
+ ~dev-ruby/actionview-${PV}
+ ~dev-ruby/activejob-${PV}
+ ~dev-ruby/activemodel-${PV}
+ ~dev-ruby/activerecord-${PV}
+ ~dev-ruby/activestorage-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/bundler-1.15.0:*
+ ~dev-ruby/railties-${PV}
+"
diff --git a/dev-ruby/railties/railties-7.1.5.1.ebuild b/dev-ruby/railties/railties-7.1.5.1.ebuild
index 4c3a0602467c..62646cd76797 100644
--- a/dev-ruby/railties/railties-7.1.5.1.ebuild
+++ b/dev-ruby/railties/railties-7.1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -22,7 +22,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/railties/railties-7.1.6-r1.ebuild b/dev-ruby/railties/railties-7.1.6-r1.ebuild
index 6852b2f0e17f..f70bf01cb186 100644
--- a/dev-ruby/railties/railties-7.1.6-r1.ebuild
+++ b/dev-ruby/railties/railties-7.1.6-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -22,7 +22,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/railties/railties-7.1.6.ebuild b/dev-ruby/railties/railties-7.1.6.ebuild
index 516b36fe77f8..808ccf8de8ce 100644
--- a/dev-ruby/railties/railties-7.1.6.ebuild
+++ b/dev-ruby/railties/railties-7.1.6.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -22,7 +22,7 @@ SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz
LICENSE="MIT"
SLOT="$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test"
RUBY_S="rails-${PV}/${PN}"
diff --git a/dev-ruby/railties/railties-8.0.4-r1.ebuild b/dev-ruby/railties/railties-8.0.4-r1.ebuild
new file mode 100644
index 000000000000..bc4459c48cb0
--- /dev/null
+++ b/dev-ruby/railties/railties-8.0.4-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_TASK_TEST="test:regular"
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="railties.gemspec"
+
+RUBY_FAKEGEM_BINDIR="exe"
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Tools for creating, working with, and running Rails applications"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+# The test suite has many failures, most likely due to a mismatch in
+# exact dependencies or environment specifics. Needs further
+# investigation.
+RESTRICT="test"
+
+RDEPEND=">=app-eselect/eselect-rails-0.29"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/irb-1.13:0
+ >=dev-ruby/rackup-1.0.0
+ >=dev-ruby/rake-12.2
+ >=dev-ruby/thor-1.2.2:1
+ >=dev-ruby/tsort-0.2
+ >=dev-ruby/zeitwerk-2.6:2
+"
+
+ruby_add_bdepend "
+ test? (
+ ~dev-ruby/actionview-${PV}
+ dev-ruby/mocha
+ )"
+
+all_ruby_prepare() {
+ rm "${S}/../Gemfile" || die "Unable to remove Gemfile"
+ sed -i -e '/load_paths/d' test/abstract_unit.rb || die "Unable to remove load paths"
+ sed -i -e '1igem "minitest", "~>4.0"' test/abstract_unit.rb || die
+}
+
+all_ruby_install() {
+ all_fakegem_install
+
+ ruby_fakegem_binwrapper rails rails-${PV}
+}
+
+pkg_postinst() {
+ elog "To select between slots of rails, use:"
+ elog "\teselect rails"
+
+ eselect rails update
+}
+
+pkg_postrm() {
+ eselect rails update
+}
diff --git a/dev-ruby/railties/railties-8.1.2-r1.ebuild b/dev-ruby/railties/railties-8.1.2-r1.ebuild
new file mode 100644
index 000000000000..bc4459c48cb0
--- /dev/null
+++ b/dev-ruby/railties/railties-8.1.2-r1.ebuild
@@ -0,0 +1,75 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_TASK_TEST="test:regular"
+RUBY_FAKEGEM_RECIPE_DOC=""
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.rdoc"
+
+RUBY_FAKEGEM_GEMSPEC="railties.gemspec"
+
+RUBY_FAKEGEM_BINDIR="exe"
+RUBY_FAKEGEM_BINWRAP=""
+
+inherit ruby-fakegem
+
+DESCRIPTION="Tools for creating, working with, and running Rails applications"
+HOMEPAGE="https://github.com/rails/rails"
+SRC_URI="https://github.com/rails/rails/archive/v${PV}.tar.gz -> rails-${PV}.tgz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+
+RUBY_S="rails-${PV}/${PN}"
+
+# The test suite has many failures, most likely due to a mismatch in
+# exact dependencies or environment specifics. Needs further
+# investigation.
+RESTRICT="test"
+
+RDEPEND=">=app-eselect/eselect-rails-0.29"
+
+ruby_add_rdepend "
+ ~dev-ruby/actionpack-${PV}
+ ~dev-ruby/activesupport-${PV}
+ >=dev-ruby/irb-1.13:0
+ >=dev-ruby/rackup-1.0.0
+ >=dev-ruby/rake-12.2
+ >=dev-ruby/thor-1.2.2:1
+ >=dev-ruby/tsort-0.2
+ >=dev-ruby/zeitwerk-2.6:2
+"
+
+ruby_add_bdepend "
+ test? (
+ ~dev-ruby/actionview-${PV}
+ dev-ruby/mocha
+ )"
+
+all_ruby_prepare() {
+ rm "${S}/../Gemfile" || die "Unable to remove Gemfile"
+ sed -i -e '/load_paths/d' test/abstract_unit.rb || die "Unable to remove load paths"
+ sed -i -e '1igem "minitest", "~>4.0"' test/abstract_unit.rb || die
+}
+
+all_ruby_install() {
+ all_fakegem_install
+
+ ruby_fakegem_binwrapper rails rails-${PV}
+}
+
+pkg_postinst() {
+ elog "To select between slots of rails, use:"
+ elog "\teselect rails"
+
+ eselect rails update
+}
+
+pkg_postrm() {
+ eselect rails update
+}
diff --git a/dev-ruby/rash_alt/rash_alt-0.4.12.ebuild b/dev-ruby/rash_alt/rash_alt-0.4.12.ebuild
index bb316b0deb68..a70379c278f0 100644
--- a/dev-ruby/rash_alt/rash_alt-0.4.12.ebuild
+++ b/dev-ruby/rash_alt/rash_alt-0.4.12.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/rmagick/Manifest b/dev-ruby/rmagick/Manifest
index 22891df15224..acd401ef641b 100644
--- a/dev-ruby/rmagick/Manifest
+++ b/dev-ruby/rmagick/Manifest
@@ -1,4 +1,3 @@
DIST rmagick-5.5.0.tar.gz 2045116 BLAKE2B 018d4e940043210238b6026a8bc0b65656633aaaf559954b666c75dda74c0f0fd33319a13fd6c494a6a51a3cfac67aac283e3e79d06dc90b6d4581464805e476 SHA512 f813104c347867b14281b044135fd626805d35d2afa3167c25d5e31179b31e985c5cc75deb630f8a64d20b877d8c42ce13e31e137f573467d3c5f3f2453d514f
-DIST rmagick-6.1.1.tar.gz 2048591 BLAKE2B 5511a146cb44375a66c430bff7cdc710aa3cc3b958e4d44dba6788eebe10ec97be4fb88a25d956a25caff274b4ab4fd81308f367b5b103c5c8f850ed22a95f53 SHA512 138b2b0358ee13ce2ed005c923cb77e0e63254eddd33f92fc10c8152f54be240596448eb9e6847bf065aeb1d93763f9ad34e15fba19638318add9bec42be3467
DIST rmagick-6.1.4.tar.gz 2049170 BLAKE2B 9293522f5eb066f31987fc969b76dc927a9d5bd99138558455c3c14e5dcc47bf661b702aad7a39dd5c669197d02b0fb5f61265c1bc6ca60c429d9925ca3570c9 SHA512 5b47bced53be880ac66a47fb27a52bf08f3ff79ed0c2c6d5413135de9cc9adeb4758b7e60638efed57dd5f19b11855842415b123f035fffebde6f71b9e344b86
DIST rmagick-6.1.5.tar.gz 2049192 BLAKE2B f717133c17907f7ee404bf43b4c580e5af6f1c7b5b0a09e78bbdfeb1545fc6ba4e2ff3dd7e27657990b6af5b4e5b62acf1d1c0addbab2d44a2c2065003ed6e08 SHA512 110a1d52336e673d2693d914073bde7972579cc7a0519c27e90ebe377303b1bcacc7b9be169d4da947553f494d8244217811df60e32012f6d735800bcd22e4e4
diff --git a/dev-ruby/rmagick/files/rmagick-5.5.0-ruby35.patch b/dev-ruby/rmagick/files/rmagick-5.5.0-ruby35.patch
new file mode 100644
index 000000000000..b50c5ffeb3b3
--- /dev/null
+++ b/dev-ruby/rmagick/files/rmagick-5.5.0-ruby35.patch
@@ -0,0 +1,57 @@
+https://github.com/rmagick/rmagick/pull/1712
+
+From 4f072008e8fe3cb97d6d537dd7d0a44b9a1b5be1 Mon Sep 17 00:00:00 2001
+From: Shizuo Fujita <fujita@clear-code.com>
+Date: Wed, 15 Oct 2025 10:58:26 +0900
+Subject: [PATCH] CI: Support Ruby 3.5
+
+--- a/spec/magick_spec.rb
++++ b/spec/magick_spec.rb
+@@ -76,7 +76,14 @@
+ img.new_image(200, 200, Magick::GradientFill.new(100, 50, 100, 50, 'khaki1', 'turquoise'))
+ img.resize(20, 20)
+ end
+- r.take
++
++ if r.respond_to?(:take)
++ r.take
++ else
++ # Ractor#take was replaced at Ruby 3.5.
++ # https://bugs.ruby-lang.org/issues/21262
++ r.join
++ end
+ end.not_to raise_error
+
+ expect do
+@@ -90,7 +97,14 @@
+ gc.text(5, 20, "'20,20'")
+ gc.draw(img)
+ end
+- r.take
++
++ if r.respond_to?(:take)
++ r.take
++ else
++ # Ractor#take was replaced at Ruby 3.5.
++ # https://bugs.ruby-lang.org/issues/21262
++ r.join
++ end
+ end.not_to raise_error
+
+ unless RUBY_PLATFORM.include?('mingw')
+@@ -99,7 +113,14 @@
+ r = Ractor.new do
+ Magick.formats # rubocop:disable RSpec/DescribedClass
+ end
+- r.take
++
++ if r.respond_to?(:take)
++ r.take
++ else
++ # Ractor#take was replaced at Ruby 3.5.
++ # https://bugs.ruby-lang.org/issues/21262
++ r.join
++ end
+ end.not_to raise_error
+ end
+ end
diff --git a/dev-ruby/rmagick/rmagick-5.5.0-r1.ebuild b/dev-ruby/rmagick/rmagick-5.5.0-r1.ebuild
index 31164d60db12..2b2277b3c702 100644
--- a/dev-ruby/rmagick/rmagick-5.5.0-r1.ebuild
+++ b/dev-ruby/rmagick/rmagick-5.5.0-r1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
@@ -36,6 +36,10 @@ DEPEND+=" >=media-gfx/imagemagick-6.9.0 test? ( >=media-gfx/imagemagick-7.1.0:=[
ruby_add_bdepend "dev-ruby/pkg-config"
+PATCHES=(
+ "${FILESDIR}"/rmagick-5.5.0-ruby35.patch
+)
+
all_ruby_prepare() {
# Avoid unused dependency on rake-compiler. This also avoids an
# extra compile during tests.
diff --git a/dev-ruby/rmagick/rmagick-6.1.1.ebuild b/dev-ruby/rmagick/rmagick-6.1.1.ebuild
deleted file mode 100644
index 6478029030b8..000000000000
--- a/dev-ruby/rmagick/rmagick-6.1.1.ebuild
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_TASK_DOC=""
-
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-
-RUBY_FAKEGEM_GEMSPEC="rmagick.gemspec"
-
-RUBY_FAKEGEM_EXTENSIONS=(ext/RMagick/extconf.rb)
-
-MY_PV=RMagick_${PV//\./-}
-
-inherit ruby-fakegem
-
-DESCRIPTION="An interface between Ruby and the ImageMagick(TM) image processing library"
-HOMEPAGE="https://github.com/rmagick/rmagick"
-SRC_URI="https://github.com/rmagick/rmagick/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="rmagick-${MY_PV}"
-
-LICENSE="Artistic"
-SLOT="$(ver_cut 1)"
-KEYWORDS="amd64 ~hppa ppc ppc64 x86"
-IUSE="doc"
-
-RDEPEND=">=media-gfx/imagemagick-6.9.0:="
-DEPEND=">=media-gfx/imagemagick-6.9.0 test? ( >=media-gfx/imagemagick-7.1.0:=[jpeg,lqr,lcms,postscript,tiff,webp,xml] media-fonts/dejavu )"
-
-ruby_add_bdepend "
- dev-ruby/observer
- dev-ruby/pkg-config
-"
-
-all_ruby_prepare() {
- # Avoid unused dependency on rake-compiler. This also avoids an
- # extra compile during tests.
- sed -i -e '/extensiontask/ s:^:#:' \
- -e '/ExtensionTask/,/end/ s:^:#:' \
- -e '/compile/ s:^:#:' Rakefile || die
- sed -i -e '/pry/ s:^:#:' -e '5irequire "tempfile"' spec/spec_helper.rb || die
- sed -e 's/git ls-files/find */' \
- -e '/pkg-config/ s:^:#:' \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
-
- # Squelch harmless warning about imagemagick installation.
- sed -i -e '/prefix/ s:ImageMagick:ImageMagick-6:' ext/RMagick/extconf.rb || die
-
- # Create directory used for a test
- mkdir tmp
-}
-
-each_ruby_test() {
- # Borrowed from media-gfx/gscan2pdf
- # Needed to avoid test failures on e.g. ppc, bug #815856
- # (Unclear why it doesn't manifest on amd64 here at least)
- local confdir="${HOME}/.config/ImageMagick"
- mkdir -p "${confdir}" || die
- cat > "${confdir}/policy.xml" <<-EOT || die
- <policymap>
- <policy domain="coder" rights="read|write" pattern="PDF" />
- <policy domain="coder" rights="read" pattern="PS" />
- </policymap>
- EOT
-
- RSPEC_VERSION="3" ruby-ng_rspec
-}
-
-all_ruby_install() {
- all_fakegem_install
-
- docinto examples
- dodoc examples/*
-
- if use doc ; then
- docinto .
- dodoc -r doc
- fi
-}
diff --git a/dev-ruby/rouge/Manifest b/dev-ruby/rouge/Manifest
index 890b9abeb5a1..e9f860eb8f4c 100644
--- a/dev-ruby/rouge/Manifest
+++ b/dev-ruby/rouge/Manifest
@@ -1,6 +1,3 @@
DIST rouge-3.30.0.tar.gz 1036048 BLAKE2B 79dde9ed8a282b22aa044bef1a17cdde705e5361aa9298789d1de155260a69a200d8039c400d22db5719039d67f0d9179c31574190684da50ea64fba92c63ec8 SHA512 f21ff96d2d1f248dfffb02ea2312b4c01090b2b5664588e00763d0ede0d8af701efe0cdabb551a2debff26a301dfaffa7a07aa579d73806c6635f03dd15dcfe1
-DIST rouge-4.5.1.tar.gz 1079742 BLAKE2B b74cd8aeec73b35fd2670b611ae1ab3220a0d98ee85cd0abe2d008fa1a34aa827f1e66aab770ec867d4b59b9491e61339be0bb5e896dfeb4b93d77759ba256ff SHA512 f0659597cb04d04c48d1d20722be870f04fec5cf92f5b47f9ba6dde8e653a359c2a6798a1bb9f8785682e218390f16ebf5cba5c4582604a0a3a7a3596e0139b1
-DIST rouge-4.5.2.tar.gz 1082289 BLAKE2B 47c45917411b8791bee8a47c8a18c5024af2fca4838627ddefb25c9875ed5416a21d4555b9ef49d844f8e1352663692a10c3bcb28c8b16d1e2215d0621e8fe1b SHA512 dbc415067673d0e44384b743a5b124efd5cc38db93abc48c123163d0688f4cd639154534bd5efdd0c972fb10e046d7cde4df1791fa44c932952841831f051f83
-DIST rouge-4.6.0.tar.gz 1085076 BLAKE2B 2176d03499cd70f5061710e24b09bf78ec52808bc711802649b3f1e474d2a905cdcd68805a4cd3bfa272fc37d1f1ab8e6c494feba3c234c25c392379a834cbdc SHA512 5cc4279ff7023a334cebf58deb31233f652ba79faba7565e70a0166f75b5f3be1677c650043dc39291c0a167acedb91365bb66048836f605dc167406c471d0cf
DIST rouge-4.6.1.tar.gz 1085941 BLAKE2B e03135483f71f929f4d29094dfb42ef7f47c08817594911332f656db5031db340f77f80407a8dc27ef36b4952f1b8e23059371b69cc9ed24ad4a67bef5e7a1ae SHA512 6ae27ed649bd9fc08aa4fe69cd03ae14772c2ced4616b12337b5f9aa8fa7e5694aa98fe2c6f945a7fbd6b1f12a22c2af365068ff73d79d0f247a8acf2f8a6ad3
DIST rouge-4.7.0.tar.gz 1082685 BLAKE2B 2882674c50a04b9b39fe10e7598d38220961933b2cd9349d89c2114642c319ab55b1bca893498219eebfe3d02bfe62a799101e7c3c0ac0fdc822d0085d372d6e SHA512 22d6ee0843c3b07b419d1b2f0c2ce3f83320f0849a8c520dfd78152d3bd8721d5055ad0f39e92db673dbd494d22ac5bc74a472ff510f0fdefce7e62de5c9aa8a
diff --git a/dev-ruby/rouge/rouge-4.5.1.ebuild b/dev-ruby/rouge/rouge-4.5.1.ebuild
deleted file mode 100644
index b0743e492e5e..000000000000
--- a/dev-ruby/rouge/rouge-4.5.1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_TASK_TEST="spec"
-RUBY_FAKEGEM_RECIPE_DOC="yard"
-
-RUBY_FAKEGEM_GEMSPEC="rouge.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Yet-another-markdown-parser using a strict syntax definition in pure Ruby"
-HOMEPAGE="https://github.com/rouge-ruby/rouge"
-SRC_URI="https://github.com/rouge-ruby/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD-2 MIT"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="doc test"
-
-ruby_add_bdepend "doc? ( dev-ruby/redcarpet )
- test? ( dev-ruby/minitest-power_assert )
- dev-ruby/yard
-"
-
-ruby_add_rdepend "dev-ruby/redcarpet"
-
-all_ruby_prepare() {
- rm -f tasks/{check/style,update/changelog}.rake || die
-
- sed -i -e '/bundler/I s:^:#: ; 5irequire "minitest-power_assert"' spec/spec_helper.rb || die
- sed -i -e '/\(changelog\|bundler\|rubocop\)/ s:^:#: ; 1irequire "pathname"' Rakefile || die
-}
diff --git a/dev-ruby/rouge/rouge-4.5.2.ebuild b/dev-ruby/rouge/rouge-4.5.2.ebuild
deleted file mode 100644
index 8b93dd862ba0..000000000000
--- a/dev-ruby/rouge/rouge-4.5.2.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_TASK_TEST="spec"
-RUBY_FAKEGEM_RECIPE_DOC="yard"
-
-RUBY_FAKEGEM_GEMSPEC="rouge.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Yet-another-markdown-parser using a strict syntax definition in pure Ruby"
-HOMEPAGE="https://github.com/rouge-ruby/rouge"
-SRC_URI="https://github.com/rouge-ruby/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD-2 MIT"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="doc test"
-
-ruby_add_bdepend "doc? ( dev-ruby/redcarpet )
- test? ( dev-ruby/minitest-power_assert )
- dev-ruby/yard
-"
-
-ruby_add_rdepend "dev-ruby/redcarpet"
-
-all_ruby_prepare() {
- rm -f tasks/{check/style,update/changelog}.rake || die
-
- sed -i -e '/bundler/I s:^:#: ; 5irequire "minitest-power_assert"' spec/spec_helper.rb || die
- sed -i -e '/\(changelog\|bundler\|rubocop\)/ s:^:#: ; 1irequire "pathname"' Rakefile || die
-}
diff --git a/dev-ruby/rouge/rouge-4.6.0.ebuild b/dev-ruby/rouge/rouge-4.6.0.ebuild
deleted file mode 100644
index 8089fbbb1b98..000000000000
--- a/dev-ruby/rouge/rouge-4.6.0.ebuild
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_TASK_TEST="spec"
-RUBY_FAKEGEM_RECIPE_DOC="yard"
-
-RUBY_FAKEGEM_GEMSPEC="rouge.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Yet-another-markdown-parser using a strict syntax definition in pure Ruby"
-HOMEPAGE="https://github.com/rouge-ruby/rouge"
-SRC_URI="https://github.com/rouge-ruby/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD-2 MIT"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="doc test"
-
-ruby_add_bdepend "doc? ( dev-ruby/redcarpet )
- test? ( dev-ruby/minitest-power_assert )
- dev-ruby/yard
-"
-
-ruby_add_rdepend "dev-ruby/redcarpet"
-
-all_ruby_prepare() {
- rm -f tasks/{check/style,update/changelog}.rake || die
-
- sed -i -e '/bundler/I s:^:#: ; 5irequire "minitest-power_assert"' spec/spec_helper.rb || die
- sed -i -e '/\(changelog\|bundler\|rubocop\)/ s:^:#: ; 1irequire "pathname"' Rakefile || die
-}
diff --git a/dev-ruby/rouge/rouge-4.7.0.ebuild b/dev-ruby/rouge/rouge-4.7.0.ebuild
index 8911ecc20a75..824eccfb9915 100644
--- a/dev-ruby/rouge/rouge-4.7.0.ebuild
+++ b/dev-ruby/rouge/rouge-4.7.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_TASK_TEST="spec"
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/rqrcode/Manifest b/dev-ruby/rqrcode/Manifest
index 6daf4a3f9fb0..c1b84f45c483 100644
--- a/dev-ruby/rqrcode/Manifest
+++ b/dev-ruby/rqrcode/Manifest
@@ -1,4 +1 @@
-DIST rqrcode-2.2.0.tar.gz 109070 BLAKE2B 91a74a9c547f62f0cd83dd60d00b7af2c9363bd34f3987e43b637f906975f3e2b1f95ac67df80a0065fdd9fa3a7801e639fff1d2b36bcc4dc4abbc996fb6c919 SHA512 41d6882b28d15154b9cc5dc6aba30cad404aabad2b9101309bea0812b776cdb540fec3152ec5bb075f19c77a1aa67bc44d9b35e2161d189bd64a7d2517cafa63
-DIST rqrcode-3.1.0.tar.gz 109860 BLAKE2B 25e0ecab0856c07f01c9a691a4b9c1e7d1581e99cdfbe4e81f80899e9f49ff1ecdeb095614001468d5d522975173ed1729e88df2f9e24be04cdba022d69c95bf SHA512 f6878e05513346e5a6fa2d151384c6599088df7e3740c4997c59b1862b7c89281fafd92e9617ba04ec385db11cae2628af2aef1b0d19f640a16b79f80130a26c
-DIST rqrcode-3.1.1.tar.gz 109910 BLAKE2B a0a85701e8fa006a37d6dc48ca20f9ed68a5701b1a0f6af3515b0702f7641d9b3d3025cf86c020e98756dc8254c5804389279736a66521646e37fde6acfe6c00 SHA512 f2170739379071d5b54cd98a179a7dafd511c330f144a2469f5ccad25225bd32146351e859d59ce165792c8e8925d4588dfbf74ab98e2bf838fad11b46e27e98
DIST rqrcode-3.2.0.tar.gz 120330 BLAKE2B 76b4fa23ab9a2e0b2b324deab4316c5d44cc531d8e29fbf1d303e82cc8cbd65159f434667809dff4ba249f8ac29ef5f4b2a63e1a2e58d457053c9dbe712bbb84 SHA512 87a564ce57eb8ecddb50ab91b56c9774d158c27961a989b3feddbd1542dc381f80d5bfb54464125943ff857b533f9e920df80dc910ea36e5af01fff4e6b5df64
diff --git a/dev-ruby/rqrcode/rqrcode-2.2.0.ebuild b/dev-ruby/rqrcode/rqrcode-2.2.0.ebuild
deleted file mode 100644
index ed2cad6a0025..000000000000
--- a/dev-ruby/rqrcode/rqrcode-2.2.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-RUBY_FAKEGEM_GEMSPEC="rqrcode.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Library for encoding QR Codes"
-HOMEPAGE="https://whomwah.com/rqrcode/"
-SRC_URI="https://github.com/whomwah/rqrcode/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-
-ruby_add_rdepend "
- dev-ruby/chunky_png:0
- dev-ruby/rqrcode_core:1
-"
-
-all_ruby_prepare() {
- sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -i -e '/bundler/ s:^:#:' spec/spec_helper.rb || die
-
- sed -i -e "s:/tmp:${TMPDIR}:" spec/rqrcode/export_png_spec.rb || die
-}
diff --git a/dev-ruby/rqrcode/rqrcode-3.1.0.ebuild b/dev-ruby/rqrcode/rqrcode-3.1.0.ebuild
deleted file mode 100644
index e08ced82b189..000000000000
--- a/dev-ruby/rqrcode/rqrcode-3.1.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-RUBY_FAKEGEM_GEMSPEC="rqrcode.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Library for encoding QR Codes"
-HOMEPAGE="https://github.com/whomwah/rqrcode"
-SRC_URI="https://github.com/whomwah/rqrcode/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64"
-
-ruby_add_rdepend "
- dev-ruby/chunky_png:0
- dev-ruby/rqrcode_core:2
-"
-
-all_ruby_prepare() {
- sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -i -e '/bundler/ s:^:#:' spec/spec_helper.rb || die
-
- sed -i -e "s:/tmp:${TMPDIR}:" spec/rqrcode/export_png_spec.rb || die
-}
diff --git a/dev-ruby/rqrcode/rqrcode-3.1.1.ebuild b/dev-ruby/rqrcode/rqrcode-3.1.1.ebuild
deleted file mode 100644
index e08ced82b189..000000000000
--- a/dev-ruby/rqrcode/rqrcode-3.1.1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-RUBY_FAKEGEM_GEMSPEC="rqrcode.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Library for encoding QR Codes"
-HOMEPAGE="https://github.com/whomwah/rqrcode"
-SRC_URI="https://github.com/whomwah/rqrcode/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64"
-
-ruby_add_rdepend "
- dev-ruby/chunky_png:0
- dev-ruby/rqrcode_core:2
-"
-
-all_ruby_prepare() {
- sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -i -e '/bundler/ s:^:#:' spec/spec_helper.rb || die
-
- sed -i -e "s:/tmp:${TMPDIR}:" spec/rqrcode/export_png_spec.rb || die
-}
diff --git a/dev-ruby/rqrcode_core/Manifest b/dev-ruby/rqrcode_core/Manifest
index 2b7cbdff58a5..99e570b07fc8 100644
--- a/dev-ruby/rqrcode_core/Manifest
+++ b/dev-ruby/rqrcode_core/Manifest
@@ -1,4 +1 @@
-DIST rqrcode_core-1.2.0.tar.gz 21103 BLAKE2B 9988dc999b2853888e91b6346af074defe59dbd1be097e6c058fb7e8e68a779aedef14458ac14aa06e57e8cccdd1240e5eb003944951b47c174a1239cc35d77f SHA512 423a492b29ed8cb4e2f037305121a77f22e76dafc93675d0a24e2c6ad1918522003a8d404d55fa28e007bbb9be6d2038eafab76b2dd5e5e59c0d9adb7ab4626c
-DIST rqrcode_core-2.0.0.tar.gz 23393 BLAKE2B 15cc340bbda082b1662dd349eecf5c1de3ee8f386726c481dd8fcb59cc2929e9a403eb8691a8ad5d3675ea9a2c5d4964d5187151359827c233573d5f4f6ab705 SHA512 3bf39902649e2937bcf8a0270a53a3d6f65fe42e3f56a1e4892b747d7df5e82505225203fa424a4779b7c68b64241ef9b16eeb80806d40b90510bc4264be1a2e
-DIST rqrcode_core-2.0.1.tar.gz 23430 BLAKE2B 366b87fc2668105fdd02ea9435e61dae2ebc3bf0249893690ba31a3df3780260d777e3b3b61b1eadc906af9cda34f5cd6bd1e014f5b0e7b8263d8667fd02d5e8 SHA512 b8465bc7664f9cec539f13f5b3f2eee19847883c72566a54423b0ab13e01101c8906d95e63cf3ff2225cb2998d6b25910aa9f83378dc355bfbbbe02315bf8b34
DIST rqrcode_core-2.1.0.tar.gz 55425 BLAKE2B e26385223b33f962f2d26cc0e22f4e3197e4f309ecd2ab46eecc5b8f32ad571385ab84d367fb1e428477a485c2aad8a4c28ac45e45eacac21b1ee2a20c45c399 SHA512 422da55a0f39635598ac4f71675509ca831a01840050d873f9e46bb4bf2f973f9d058585f65c1ad610984a2dd2a0359cbcd8db3bca4cc1b5ec353d7e7a3538bc
diff --git a/dev-ruby/rqrcode_core/rqrcode_core-1.2.0.ebuild b/dev-ruby/rqrcode_core/rqrcode_core-1.2.0.ebuild
deleted file mode 100644
index 9622bc8201df..000000000000
--- a/dev-ruby/rqrcode_core/rqrcode_core-1.2.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-RUBY_FAKEGEM_GEMSPEC="rqrcode_core.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Library for encoding QR Codes"
-HOMEPAGE="https://github.com/whomwah/rqrcode_core/"
-SRC_URI="https://github.com/whomwah/rqrcode_core/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64"
-
-all_ruby_prepare() {
- sed -i -e '/bundler/ s:^:#:' Rakefile test/test_helper.rb || die
- sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:.:test -e 'Dir["test/**/*_test.rb"].each {|f| require f}' || die
-}
diff --git a/dev-ruby/rqrcode_core/rqrcode_core-2.0.0.ebuild b/dev-ruby/rqrcode_core/rqrcode_core-2.0.0.ebuild
deleted file mode 100644
index ea243fdc6618..000000000000
--- a/dev-ruby/rqrcode_core/rqrcode_core-2.0.0.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-RUBY_FAKEGEM_GEMSPEC="rqrcode_core.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Library for encoding QR Codes"
-HOMEPAGE="https://github.com/whomwah/rqrcode_core/"
-SRC_URI="https://github.com/whomwah/rqrcode_core/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64"
-
-all_ruby_prepare() {
- sed -i -e '/bundler/ s:^:#:' Rakefile test/test_helper.rb || die
- sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:.:test -e 'Dir["test/**/*_test.rb"].each {|f| require f}' || die
-}
diff --git a/dev-ruby/rqrcode_core/rqrcode_core-2.0.1.ebuild b/dev-ruby/rqrcode_core/rqrcode_core-2.0.1.ebuild
deleted file mode 100644
index ee698b2b4a45..000000000000
--- a/dev-ruby/rqrcode_core/rqrcode_core-2.0.1.ebuild
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34 ruby40"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-RUBY_FAKEGEM_GEMSPEC="rqrcode_core.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Library for encoding QR Codes"
-HOMEPAGE="https://github.com/whomwah/rqrcode_core/"
-SRC_URI="https://github.com/whomwah/rqrcode_core/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64"
-
-all_ruby_prepare() {
- sed -i -e '/bundler/ s:^:#:' Rakefile test/test_helper.rb || die
- sed -i -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:.:test -e 'Dir["test/**/*_test.rb"].each {|f| require f}' || die
-}
diff --git a/dev-ruby/rr/rr-3.1.2.ebuild b/dev-ruby/rr/rr-3.1.2.ebuild
index b681a677f95f..d7e65608a1d1 100644
--- a/dev-ruby/rr/rr-3.1.2.ebuild
+++ b/dev-ruby/rr/rr-3.1.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_TASK_DOC=""
RUBY_FAKEGEM_EXTRADOC="CHANGES.md README.md"
diff --git a/dev-ruby/ruby-feedparser/Manifest b/dev-ruby/ruby-feedparser/Manifest
index 41ab98adc5ab..df9cc8af7dc7 100644
--- a/dev-ruby/ruby-feedparser/Manifest
+++ b/dev-ruby/ruby-feedparser/Manifest
@@ -1,2 +1 @@
-DIST ruby-feedparser-0.11.3.tar.gz 2688778 BLAKE2B ea7fa378de51e44ce8b02dd1004b2b83e2d14e93d2725db180e00dd90a010e4bda2bc890a48729f33f565f4e0db92044b1dd3156225ef5b23dc2da0613a2a525 SHA512 fb4e27da60b67668af4ed4c6535ea420c13e1fb53d211f63899553407f14cbdd2b0c2d95fcc07cc6acace682b3392698c99de3e5f67a1c461e26dd262b7b8249
DIST ruby-feedparser-0.11.4.tar.gz 3193181 BLAKE2B 2e570c6e8b325e3dc043c0ac44d7571b3cb682c65003198de05920bcb504767bf7fa6ea57ff8f5d7423472d585a4f41020d7752130bcce7298d9d1d4bc5aa315 SHA512 61b7c5f9263047cd3a13264d98b86d7ac163e7a0568bf6f39e3ad0ef1f84dd9b9314788d7de31843fa06f2c28f2ddc1af03693f5b18b6ce9ab06f67332e48e89
diff --git a/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.3.ebuild b/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.3.ebuild
deleted file mode 100644
index 83906dc04ee3..000000000000
--- a/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.3.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_EXTRADOC="README"
-
-RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
-
-inherit ruby-fakegem
-
-GITHUB_USER="feed2imap"
-
-DESCRIPTION="Ruby library to parse ATOM/RSS feeds"
-HOMEPAGE="https://github.com/feed2imap/ruby-feedparser"
-SRC_URI="https://github.com/${GITHUB_USER}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-
-ruby_add_rdepend "dev-ruby/magic"
-
-ruby_add_bdepend "dev-ruby/magic
- test? ( dev-ruby/mocha:2 dev-ruby/test-unit )"
-
-all_ruby_prepare() {
- # Extract gemspec source from Rakefile
- sed -n -e '/Gem::Specification/,/end$/p' Rakefile > ${RUBY_FAKEGEM_GEMSPEC} || die
- sed -i -e 's/PKG_NAME/"'${PN}'"/' \
- -e 's/PKG_VERSION/"'${PV}'"/' \
- -e '/s.files/d' ${RUBY_FAKEGEM_GEMSPEC} || die
-}
-
-each_ruby_prepare() {
- sed -i -e '/PKG_VERSION/ s:ruby:'${RUBY}':' Rakefile || die
-}
diff --git a/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.4.ebuild b/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.4.ebuild
index 6e5b86eefee0..07f6373efef9 100644
--- a/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.4.ebuild
+++ b/dev-ruby/ruby-feedparser/ruby-feedparser-0.11.4.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="README"
diff --git a/dev-ruby/ruby-oembed/ruby-oembed-0.18.1.ebuild b/dev-ruby/ruby-oembed/ruby-oembed-0.18.1.ebuild
index 5abaebf73742..df3f46438b49 100644
--- a/dev-ruby/ruby-oembed/ruby-oembed-0.18.1.ebuild
+++ b/dev-ruby/ruby-oembed/ruby-oembed-0.18.1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/ruby-shadow/ruby-shadow-2.5.1.ebuild b/dev-ruby/ruby-shadow/ruby-shadow-2.5.1.ebuild
index 7fbf2f53f563..065802bf530c 100644
--- a/dev-ruby/ruby-shadow/ruby-shadow-2.5.1.ebuild
+++ b/dev-ruby/ruby-shadow/ruby-shadow-2.5.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2026 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_TASK_TEST=""
@@ -11,7 +11,7 @@ RUBY_FAKEGEM_EXTRADOC="HISTORY README README.euc"
RUBY_FAKEGEM_EXTENSIONS=(./extconf.rb)
-inherit ruby-fakegem
+inherit flag-o-matic ruby-fakegem
DESCRIPTION="ruby shadow bindings"
HOMEPAGE="https://github.com/apalmblad/ruby-shadow"
@@ -29,3 +29,10 @@ all_ruby_prepare() {
sed -e '16i$CFLAGS += ENV["CFLAGS"]' \
-i extconf.rb || die
}
+
+src_configure() {
+ # Definition no longer set in >=ruby40?
+ append-cflags -DRUBY19 # doesn't respect CPPFLAGS
+
+ ruby-ng_src_configure
+}
diff --git a/dev-ruby/rubytest-cli/rubytest-cli-0.2.0-r1.ebuild b/dev-ruby/rubytest-cli/rubytest-cli-0.2.0-r1.ebuild
index 8b7a88821ecf..402afc1a242d 100644
--- a/dev-ruby/rubytest-cli/rubytest-cli-0.2.0-r1.ebuild
+++ b/dev-ruby/rubytest-cli/rubytest-cli-0.2.0-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild b/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild
index c349d5a91f01..e3bd39e6224b 100644
--- a/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild
+++ b/dev-ruby/rubytest/rubytest-0.8.1-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_TEST=""
RUBY_FAKEGEM_RECIPE_DOC="yard"
diff --git a/dev-ruby/rubyzip/rubyzip-2.4.1.ebuild b/dev-ruby/rubyzip/rubyzip-2.4.1.ebuild
index 228c4e97bdc8..80192895701c 100644
--- a/dev-ruby/rubyzip/rubyzip-2.4.1.ebuild
+++ b/dev-ruby/rubyzip/rubyzip-2.4.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_DOC="none"
RUBY_FAKEGEM_EXTRADOC="Changelog.md README.md TODO"
@@ -26,7 +26,7 @@ IUSE="test"
DEPEND="test? ( app-arch/zip )"
-ruby_add_bdepend "test? ( dev-ruby/minitest:5 )"
+ruby_add_bdepend "test? ( dev-ruby/minitest:5 dev-ruby/bundler )"
all_ruby_install() {
all_fakegem_install
@@ -52,4 +52,14 @@ all_ruby_prepare() {
# Fix broken test that uses native endian
sed -i -e '/pack/ s/LLS/VVv/' test/file_extract_test.rb || die
+
+ # Avoid minitest-6, bug #978921
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem 'rake'
+ gem 'minitest', '~> 5.25'
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake test || die
}
diff --git a/dev-ruby/sass/sass-3.7.4-r3.ebuild b/dev-ruby/sass/sass-3.7.4-r3.ebuild
index 88811008713a..68b0a5eff838 100644
--- a/dev-ruby/sass/sass-3.7.4-r3.ebuild
+++ b/dev-ruby/sass/sass-3.7.4-r3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_DOC=""
RUBY_FAKEGEM_DOCDIR="doc"
diff --git a/dev-ruby/sassc/sassc-2.4.0-r1.ebuild b/dev-ruby/sassc/sassc-2.4.0-r1.ebuild
index 78c4bb247652..0cb07f2cad10 100644
--- a/dev-ruby/sassc/sassc-2.4.0-r1.ebuild
+++ b/dev-ruby/sassc/sassc-2.4.0-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_DOC="none"
RUBY_FAKEGEM_DOCDIR="doc"
diff --git a/dev-ruby/selenium-webdriver/selenium-webdriver-4.1.0-r1.ebuild b/dev-ruby/selenium-webdriver/selenium-webdriver-4.1.0-r1.ebuild
index 8029c89dc9b2..e29aa84c9a3c 100644
--- a/dev-ruby/selenium-webdriver/selenium-webdriver-4.1.0-r1.ebuild
+++ b/dev-ruby/selenium-webdriver/selenium-webdriver-4.1.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -28,7 +28,7 @@ HOMEPAGE="https://github.com/seleniumhq/selenium"
LICENSE="Apache-2.0"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE=""
ruby_add_rdepend "dev-ruby/childprocess:5
diff --git a/dev-ruby/selenium-webdriver/selenium-webdriver-4.11.0.ebuild b/dev-ruby/selenium-webdriver/selenium-webdriver-4.11.0.ebuild
index 99c59243417a..bad3306baf7c 100644
--- a/dev-ruby/selenium-webdriver/selenium-webdriver-4.11.0.ebuild
+++ b/dev-ruby/selenium-webdriver/selenium-webdriver-4.11.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -28,7 +28,7 @@ HOMEPAGE="https://github.com/seleniumhq/selenium"
LICENSE="Apache-2.0"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE=""
ruby_add_rdepend "
diff --git a/dev-ruby/selenium-webdriver/selenium-webdriver-4.40.0.ebuild b/dev-ruby/selenium-webdriver/selenium-webdriver-4.40.0.ebuild
index b1715aa5bcc5..151ac6ac5901 100644
--- a/dev-ruby/selenium-webdriver/selenium-webdriver-4.40.0.ebuild
+++ b/dev-ruby/selenium-webdriver/selenium-webdriver-4.40.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="https://github.com/seleniumhq/selenium"
LICENSE="Apache-2.0"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
RDEPEND=">=dev-util/selenium-manager-$(ver_cut 1-2)"
diff --git a/dev-ruby/shoulda-matchers/shoulda-matchers-4.5.1-r1.ebuild b/dev-ruby/shoulda-matchers/shoulda-matchers-4.5.1-r1.ebuild
index 3ebb934b624c..8bd07392666f 100644
--- a/dev-ruby/shoulda-matchers/shoulda-matchers-4.5.1-r1.ebuild
+++ b/dev-ruby/shoulda-matchers/shoulda-matchers-4.5.1-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="none"
diff --git a/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild b/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild
index f990e4259615..1625fc8812e4 100644
--- a/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild
+++ b/dev-ruby/shoulda-matchers/shoulda-matchers-5.3.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRAINSTALL="CHANGELOG.md README.md"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
diff --git a/dev-ruby/shoulda-matchers/shoulda-matchers-6.4.0.ebuild b/dev-ruby/shoulda-matchers/shoulda-matchers-6.4.0.ebuild
index 8139c1bfacc6..1625fc8812e4 100644
--- a/dev-ruby/shoulda-matchers/shoulda-matchers-6.4.0.ebuild
+++ b/dev-ruby/shoulda-matchers/shoulda-matchers-6.4.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRAINSTALL="CHANGELOG.md README.md"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
diff --git a/dev-ruby/shoulda-matchers/shoulda-matchers-6.5.0.ebuild b/dev-ruby/shoulda-matchers/shoulda-matchers-6.5.0.ebuild
index 7e61e6005c91..b8b7fb2a69db 100644
--- a/dev-ruby/shoulda-matchers/shoulda-matchers-6.5.0.ebuild
+++ b/dev-ruby/shoulda-matchers/shoulda-matchers-6.5.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRAINSTALL="CHANGELOG.md README.md"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
diff --git a/dev-ruby/shoulda-matchers/shoulda-matchers-7.0.1.ebuild b/dev-ruby/shoulda-matchers/shoulda-matchers-7.0.1.ebuild
index ce00b0e27a3b..4a8181b1cd7c 100644
--- a/dev-ruby/shoulda-matchers/shoulda-matchers-7.0.1.ebuild
+++ b/dev-ruby/shoulda-matchers/shoulda-matchers-7.0.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRAINSTALL="CHANGELOG.md README.md"
diff --git a/dev-ruby/shoulda/shoulda-4.0.0.ebuild b/dev-ruby/shoulda/shoulda-4.0.0.ebuild
index 50bb0b934fa3..2779ab90ccab 100644
--- a/dev-ruby/shoulda/shoulda-4.0.0.ebuild
+++ b/dev-ruby/shoulda/shoulda-4.0.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_DOC=""
RUBY_FAKEGEM_EXTRADOC="README.md"
diff --git a/dev-ruby/sinatra/Manifest b/dev-ruby/sinatra/Manifest
index 8818d309b4ae..62daf22adfe1 100644
--- a/dev-ruby/sinatra/Manifest
+++ b/dev-ruby/sinatra/Manifest
@@ -1,3 +1,2 @@
DIST sinatra-4.1.1.tar.gz 271795 BLAKE2B 6d42ccbc40a3c4df6902a5be78749136ac4dd84149d3d4a748fbe71f8cf882785645a98b735cb899833145f967282b57f0e295e4f35c516daa212175e3f31325 SHA512 d9022acc28048f6424f077216bfc620000887afdc5fb34152610d3f0a5139cea367a165cb6caa1e0b1f02fb8328b563d6993f16419d798bde50e45450b558f2d
-DIST sinatra-4.2.0.tar.gz 272591 BLAKE2B 1991ec2ac1d0d65adbc5d179e2e5ddcf51351f080311c2813eee5a1df803710a86ca527cb5156d02b7f699f7bd74a663623785b4efce435fc52d78018b0abee2 SHA512 468a7f963240edda9f405fc31e524af91788e55138e3d07707953427b30cc21c12a879dcca2b5c159f7cf4482827367c506c56c8ce7f8015b1b9b3fa09b58b55
DIST sinatra-4.2.1.tar.gz 272817 BLAKE2B 1dcfdca0edb8ad598f00e3057aeb875b6abb71c43a090e9b207fcb5e46511ad91d24f226ed029d84793fda002ba0e7ef8a28ba3c9eaf4226eab5546677836453 SHA512 fa3283635f4d66f9c12f315d7c9e9e04e25c65afa4ab4e7a42de4a73b1f17a97aba305335e7c6b6a1522979140936d681a569b24286d656c9a30ac2e4e5fc83a
diff --git a/dev-ruby/sinatra/sinatra-4.1.1.ebuild b/dev-ruby/sinatra/sinatra-4.1.1.ebuild
index 255dc4602a62..9724e79fe80b 100644
--- a/dev-ruby/sinatra/sinatra-4.1.1.ebuild
+++ b/dev-ruby/sinatra/sinatra-4.1.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -45,6 +45,6 @@ ruby_add_bdepend "doc? ( dev-ruby/yard )"
all_ruby_prepare() {
sed -i \
- -e "/require 'rack'/igem 'rack', '~> 3.0.0'" \
+ -e "/require 'rack'/igem 'rack', '>= 3.0.0'" \
test/test_helper.rb || die
}
diff --git a/dev-ruby/sinatra/sinatra-4.2.0.ebuild b/dev-ruby/sinatra/sinatra-4.2.1-r1.ebuild
index 6f4ea879f3d2..08f4177cbfba 100644
--- a/dev-ruby/sinatra/sinatra-4.2.0.ebuild
+++ b/dev-ruby/sinatra/sinatra-4.2.1-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_TEST="MT_NO_PLUGINS=true test:core"
@@ -19,7 +19,7 @@ SRC_URI="https://github.com/sinatra/sinatra/archive/v${PV}.tar.gz -> ${P}.tar.gz
LICENSE="MIT"
SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~riscv ~sparc ~x86"
IUSE="doc test"
ruby_add_rdepend "
@@ -34,11 +34,15 @@ ruby_add_rdepend "
# circular dependencies so we don't require it for tests.
ruby_add_bdepend "
test? (
+ dev-ruby/activesupport
dev-ruby/builder
+ dev-ruby/bundler
dev-ruby/erubi
- >=dev-ruby/rack-test-0.5.6
+ dev-ruby/minitest:5
+ dev-ruby/mustermann
dev-ruby/rackup
- dev-ruby/activesupport
+ >=dev-ruby/rack-test-0.5.6
+ dev-ruby/tilt
www-servers/puma
)
"
@@ -46,6 +50,25 @@ ruby_add_bdepend "doc? ( dev-ruby/yard )"
all_ruby_prepare() {
sed -i \
- -e "/require 'rack'/igem 'rack', '~> 3.0.0'" \
+ -e "/require 'rack'/igem 'rack', '>= 3.0.0';" \
test/test_helper.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "activesupport"
+ gem "builder"
+ gem "erubi"
+ gem "minitest", "~> 5"
+ gem "mustermann"
+ gem "puma"
+ gem "rack-protection"
+ gem "rack-session"
+ gem "rack-test"
+ gem "rackup"
+ gem "rake"
+ gem "tilt"
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" MT_NO_PLUGINS=true ${RUBY} -S bundle exec ${RUBY} -S rake test:core || die
}
diff --git a/dev-ruby/sinatra/sinatra-4.2.1.ebuild b/dev-ruby/sinatra/sinatra-4.2.1.ebuild
index 6f4ea879f3d2..2e86672f4711 100644
--- a/dev-ruby/sinatra/sinatra-4.2.1.ebuild
+++ b/dev-ruby/sinatra/sinatra-4.2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -34,11 +34,15 @@ ruby_add_rdepend "
# circular dependencies so we don't require it for tests.
ruby_add_bdepend "
test? (
+ dev-ruby/activesupport
dev-ruby/builder
+ dev-ruby/bundler
dev-ruby/erubi
- >=dev-ruby/rack-test-0.5.6
+ dev-ruby/minitest:5
+ dev-ruby/mustermann
dev-ruby/rackup
- dev-ruby/activesupport
+ >=dev-ruby/rack-test-0.5.6
+ dev-ruby/tilt
www-servers/puma
)
"
@@ -46,6 +50,25 @@ ruby_add_bdepend "doc? ( dev-ruby/yard )"
all_ruby_prepare() {
sed -i \
- -e "/require 'rack'/igem 'rack', '~> 3.0.0'" \
+ -e "/require 'rack'/igem 'rack', '>= 3.0.0';" \
test/test_helper.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "activesupport"
+ gem "builder"
+ gem "erubi"
+ gem "minitest", "~> 5"
+ gem "mustermann"
+ gem "puma"
+ gem "rack-protection"
+ gem "rack-session"
+ gem "rack-test"
+ gem "rackup"
+ gem "rake"
+ gem "tilt"
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" MT_NO_PLUGINS=true ${RUBY} -S bundle exec ${RUBY} -S rake test:core || die
}
diff --git a/dev-ruby/spring/spring-4.4.0.ebuild b/dev-ruby/spring/spring-4.4.0.ebuild
index 1cb0c2135f90..a88d78b9e711 100644
--- a/dev-ruby/spring/spring-4.4.0.ebuild
+++ b/dev-ruby/spring/spring-4.4.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_TASK_DOC=""
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
diff --git a/dev-ruby/sprockets-rails/sprockets-rails-3.5.2-r1.ebuild b/dev-ruby/sprockets-rails/sprockets-rails-3.5.2-r1.ebuild
new file mode 100644
index 000000000000..499f8caef9d1
--- /dev/null
+++ b/dev-ruby/sprockets-rails/sprockets-rails-3.5.2-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_TASK_DOC=""
+
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Sprockets implementation for Rails 4.x (and beyond) Asset Pipeline"
+HOMEPAGE="https://github.com/rails/sprockets-rails"
+SRC_URI="https://github.com/rails/sprockets-rails/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+
+IUSE="test"
+
+ruby_add_rdepend "
+ >=dev-ruby/actionpack-6.1:*
+ >=dev-ruby/activesupport-6.1:*
+ >=dev-ruby/sprockets-3.0.0:*"
+
+ruby_add_bdepend "
+ test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:5
+ >=dev-ruby/railties-6.1:*
+ dev-ruby/test-unit:2
+ )"
+
+all_ruby_prepare() {
+ sed -i -e '/bundler/ s:^:#:' Rakefile || die
+
+ # It looks like tests are order dependent
+ sed -i -e '/test_order/ s/:random/:alpha/' test/test_helper.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "actionpack", ">= 6.1"
+ gem "activesupport", ">= 6.1"
+ gem "minitest", "~> 5"
+ gem "railties", ">= 6.1"
+ gem "sprockets", ">= 3"
+ gem "test-unit", ">= 2"
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake || die
+}
diff --git a/dev-ruby/sprockets-rails/sprockets-rails-3.5.2.ebuild b/dev-ruby/sprockets-rails/sprockets-rails-3.5.2.ebuild
index fad74a0be374..ed877313fd2f 100644
--- a/dev-ruby/sprockets-rails/sprockets-rails-3.5.2.ebuild
+++ b/dev-ruby/sprockets-rails/sprockets-rails-3.5.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -28,6 +28,7 @@ ruby_add_rdepend "
ruby_add_bdepend "
test? (
+ dev-ruby/bundler
dev-ruby/minitest:5
>=dev-ruby/railties-6.1:*
dev-ruby/test-unit:2
@@ -38,4 +39,17 @@ all_ruby_prepare() {
# It looks like tests are order dependent
sed -i -e '/test_order/ s/:random/:alpha/' test/test_helper.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "actionpack", ">= 6.1"
+ gem "activesupport", ">= 6.1"
+ gem "minitest", "~> 5"
+ gem "railties", ">= 6.1"
+ gem "sprockets", ">= 3"
+ gem "test-unit", ">= 2"
+ EOF
+}
+
+each_ruby_test() {
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake || die
}
diff --git a/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild b/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild
index d1c235e81790..d9789d7b7980 100644
--- a/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild
+++ b/dev-ruby/sprockets/sprockets-3.7.2-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -33,13 +33,18 @@ ruby_add_rdepend "
>=dev-ruby/rack-1:* <dev-ruby/rack-3:*"
ruby_add_bdepend "test? (
+ dev-ruby/bundler
dev-ruby/json
dev-ruby/rack-test
=dev-ruby/coffee-script-2*
=dev-ruby/execjs-2*
+ dev-ruby/minitest:5
dev-ruby/nokogiri
=dev-ruby/sass-3* >=dev-ruby/sass-3.1
dev-ruby/uglifier
+ dev-ruby/timecop
+ dev-ruby/nokogiri
+ dev-ruby/base64
)"
all_ruby_prepare() {
@@ -54,6 +59,24 @@ all_ruby_prepare() {
sed -i -e 's/MiniTest/Minitest/' test/sprockets_test.rb test/test*.rb || die
sed -i -e '2igem "rack", "<3"' test/sprockets_test.rb || die
sed -i -e '5irequire "rack/lint"' test/test_server.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "base64"
+ gem "coffee-script", "~> 2"
+ gem "concurrent-ruby", "~> 1"
+ gem "execjs", "~> 2"
+ gem "json"
+ gem "logger"
+ gem "minitest", "~> 5"
+ gem "nokogiri"
+ gem "rack", "< 3"
+ gem "rack-test"
+ gem "rake"
+ gem "sass", "~> 3"
+ gem "sassc"
+ gem "timecop"
+ gem "uglifier"
+ EOF
}
each_ruby_prepare() {
@@ -67,5 +90,5 @@ each_ruby_test() {
rm -rf test || die
mv test-new test || die
- each_fakegem_test
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake || die
}
diff --git a/dev-ruby/sprockets/sprockets-4.2.2.ebuild b/dev-ruby/sprockets/sprockets-4.2.2.ebuild
index a074e9e2a427..5655c5bb6870 100644
--- a/dev-ruby/sprockets/sprockets-4.2.2.ebuild
+++ b/dev-ruby/sprockets/sprockets-4.2.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="README.md"
@@ -28,13 +28,17 @@ ruby_add_rdepend "
"
ruby_add_bdepend "test? (
+ dev-ruby/bundler
dev-ruby/json
dev-ruby/rack-test
=dev-ruby/coffee-script-2*
=dev-ruby/execjs-2*
+ dev-ruby/minitest:5
=dev-ruby/sass-3* >=dev-ruby/sass-3.1
dev-ruby/sassc
dev-ruby/uglifier
+ dev-ruby/timecop
+ dev-ruby/nokogiri
)"
all_ruby_prepare() {
@@ -54,6 +58,23 @@ all_ruby_prepare() {
sed -i -e "/bundler/d" Rakefile || die
sed -i -e 's/MiniTest/Minitest/' test/sprockets_test.rb test/test*.rb || die
+
+ cat <<-EOF > "${T}/Gemfile" || die
+ gem "coffee-script", "~> 2"
+ gem "concurrent-ruby", "~> 1"
+ gem "execjs", "~> 2"
+ gem "json"
+ gem "logger"
+ gem "minitest", "~> 5"
+ gem "nokogiri"
+ gem "rack"
+ gem "rack-test"
+ gem "rake"
+ gem "sass", "~> 3"
+ gem "sassc"
+ gem "timecop"
+ gem "uglifier"
+ EOF
}
each_ruby_prepare() {
@@ -67,5 +88,5 @@ each_ruby_test() {
rm -rf test || die
mv test-new test || die
- each_fakegem_test
+ BUNDLE_GEMFILE="${T}/Gemfile" ${RUBY} -S bundle exec ${RUBY} -S rake || die
}
diff --git a/dev-ruby/sqlite3/Manifest b/dev-ruby/sqlite3/Manifest
index 7c5dbd8aad1e..714e027d3d8f 100644
--- a/dev-ruby/sqlite3/Manifest
+++ b/dev-ruby/sqlite3/Manifest
@@ -1,6 +1,2 @@
-DIST sqlite3-1.7.3.gem 3307008 BLAKE2B 0df742c7cb4a8f920196106b5701eae07e60e668f040ca6e3276afdd0dfdeed3fb19ed455425f332e13082ca740f42d914536ccdf565ed151b6eb0f6ccd7c676 SHA512 b6ed36a5618134ca1f993b21a351ac279ebb7e1370be521eae67ed9224a1fac11d71ddd7573b3b14da47657756cb68b3eab0164b6e6ed058d3f64fa95699bc2f
DIST sqlite3-2.7.3.tar.gz 94800 BLAKE2B 08036a1078818c6e6c5c67d922aa8ebcb05dbd8f2a1789e52af5014e41a39f9c5a9b373e356f99919c2227fc62996e2e87198f6253a102af03076e614f072fa2 SHA512 30015de31653b6dbec699a8245172b2db921c7f2c5c74872f926ceec06226bb43545f3caa89a6cc846761dcd3e291e8d9508cc787a1f520eda036df01f03e30e
-DIST sqlite3-2.7.4.tar.gz 94824 BLAKE2B f7726bebfa44fb724c23c58b5a20c733c31a916224cefc0da2fac5390cec0c87fa2a8377e0a01fa824a4bd3dcdd7e46feecca14feb06d0265a095b0564e52a84 SHA512 eba6eb50ec017f66996e4bb4491d22579912f323aeaa6d0ec57465ddda71acefe8c12d582eb2fc8aa85691c6420ea6b30b697cf208479a40afbbc82ad7ad4f2d
-DIST sqlite3-2.8.0.tar.gz 94833 BLAKE2B 6ff832dea938f3dd29a5cde3d2424202042bb993737f99a3056ea1e6707b757f404aa6b0aac87e3f46f82f6a37211319205ab024808665deda5f3a9d5aded887 SHA512 43493a5aef6c0514fa64286d35612dabca2d926abb84f6827638f3fcc81eeead1e611f5d615d3a3d30db25cb2d3267d539424a90e76e03117058e529e795ddf3
-DIST sqlite3-2.8.1.tar.gz 94904 BLAKE2B c1c7f9f7cf6fa881f56e16f6896ed58885a1cab08d403ad5a9e51c8f2f146a0139eaf07058738ad98ccace8dea38f2a3cd5af4c7d98a0ac47171cc175c4e67cf SHA512 dbb3e159f4e47020601c81b472675843a96a3243d618296f0f1a314ea2fbcc24aefe4284f51831efc7084a9f341de857a6adb158679ee4f0188a29873a4b77d1
DIST sqlite3-2.9.0.tar.gz 95483 BLAKE2B c9fa9b3a5e96366fbbf27697ad21fc6d6155b4735125f7fcd909b7539e7c6772465ac1329bfd3357464027c6a3dcb358aad725de2ab9a9dab72cdfff3ca45347 SHA512 37d0268460e1c6b847c9259bfe75becff09c28d8e9d2e8a2ce7c8bb4848f39700f2c3741bb86e846907dbeb315971188585b0c86f2d04d002ba952882a6bee39
diff --git a/dev-ruby/sqlite3/sqlite3-1.7.3.ebuild b/dev-ruby/sqlite3/sqlite3-1.7.3.ebuild
deleted file mode 100644
index 051662a50035..000000000000
--- a/dev-ruby/sqlite3/sqlite3-1.7.3.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_TASK_DOC="faq"
-RUBY_FAKEGEM_DOCDIR="doc faq"
-RUBY_FAKEGEM_EXTRADOC="API_CHANGES.md README.md ChangeLog.cvs CHANGELOG.md"
-
-RUBY_FAKEGEM_EXTENSIONS=(ext/sqlite3/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR=lib/sqlite3
-
-inherit ruby-fakegem
-
-DESCRIPTION="An extension library to access a SQLite database from Ruby"
-HOMEPAGE="https://github.com/sparklemotion/sqlite3-ruby"
-LICENSE="BSD"
-
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86 ~x64-macos ~x64-solaris"
-IUSE="doc test"
-
-# We track the bundled sqlite version here
-RDEPEND+=" >=dev-db/sqlite-3.45.2:3"
-DEPEND+=" >=dev-db/sqlite-3.45.2:3"
-
-ruby_add_bdepend "
- doc? ( dev-ruby/rdoc )
- test? ( dev-ruby/minitest:5 )
-"
-
-all_ruby_prepare() {
- sed -i -e 's/enable_config("system-libraries")/true/' ext/sqlite3/extconf.rb || die
-
- # Remove the runtime dependency on mini_portile2. We build without
- # it and it is not a runtime dependency for us.
- sed -i -e '/^dependencies:/,/force_ruby_platform/d' ../metadata || die
-
- # Avoid a failure about a specific syntax for an error, introduced with newer sqlite versions.
- sed -e '/test_strict_mode/askip "Newer sqlite versions have different quoting"' \
- -i test/test_database.rb || die
-}
-
-all_ruby_compile() {
- all_fakegem_compile
-
- if use doc; then
- rdoc --title "${P} Documentation" -o doc --main README.rdoc lib *.rdoc ext/*/*.c || die
- rm -f doc/js/*.gz || die
- fi
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each{|f| require f}' || die
-}
diff --git a/dev-ruby/sqlite3/sqlite3-2.7.4.ebuild b/dev-ruby/sqlite3/sqlite3-2.7.4.ebuild
deleted file mode 100644
index f7185bcefcf6..000000000000
--- a/dev-ruby/sqlite3/sqlite3-2.7.4.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_TASK_DOC="faq"
-RUBY_FAKEGEM_DOCDIR="doc faq"
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-
-RUBY_FAKEGEM_EXTENSIONS=(ext/sqlite3/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR=lib/sqlite3
-RUBY_FAKEGEM_GEMSPEC="sqlite3.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="An extension library to access a SQLite database from Ruby"
-HOMEPAGE="https://github.com/sparklemotion/sqlite3-ruby"
-SRC_URI="https://github.com/sparklemotion/sqlite3-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="sqlite3-ruby-${PV}"
-LICENSE="BSD"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="doc test"
-
-# We track the bundled sqlite version here
-RDEPEND=">=dev-db/sqlite-3.50.4:3"
-DEPEND=">=dev-db/sqlite-3.50.4:3"
-
-ruby_add_bdepend "
- doc? ( dev-ruby/rdoc )
- test? ( dev-ruby/minitest:5 )
-"
-
-all_ruby_prepare() {
- sed -i -e 's/enable_config("system-libraries")/true/' ext/sqlite3/extconf.rb || die
-
- # Remove the runtime dependency on mini_portile2. We build without
- # it and it is not a runtime dependency for us.
- sed -e '/mini_portile2/ s:^:#:' \
- -e '/WARNING/ s:^:#:' \
- -e "s/0.0.0/${PV}/" \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
-
- # Avoid a failing spec for reprepares stats. Upstream indicates that
- # the stats data should not be relied on other than for human
- # debugging.
- sed -e '/def test_stat_reprepares/askip "Fails on Gentoo"' \
- -i test/test_statement.rb || die
-}
-
-all_ruby_compile() {
- all_fakegem_compile
-
- if use doc; then
- rdoc --title "${P} Documentation" -o doc --main README.rdoc lib *.rdoc ext/*/*.c || die
- rm -f doc/js/*.gz || die
- fi
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each{|f| require f}' || die
-}
diff --git a/dev-ruby/sqlite3/sqlite3-2.8.0.ebuild b/dev-ruby/sqlite3/sqlite3-2.8.0.ebuild
deleted file mode 100644
index 48968e582d0d..000000000000
--- a/dev-ruby/sqlite3/sqlite3-2.8.0.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_TASK_DOC="faq"
-RUBY_FAKEGEM_DOCDIR="doc faq"
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-
-RUBY_FAKEGEM_EXTENSIONS=(ext/sqlite3/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR=lib/sqlite3
-RUBY_FAKEGEM_GEMSPEC="sqlite3.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="An extension library to access a SQLite database from Ruby"
-HOMEPAGE="https://github.com/sparklemotion/sqlite3-ruby"
-SRC_URI="https://github.com/sparklemotion/sqlite3-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="sqlite3-ruby-${PV}"
-LICENSE="BSD"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="doc test"
-
-# We track the bundled sqlite version here
-RDEPEND=">=dev-db/sqlite-3.51.0:3"
-DEPEND=">=dev-db/sqlite-3.51.0:3"
-
-ruby_add_bdepend "
- doc? ( dev-ruby/rdoc )
- test? ( dev-ruby/minitest:5 )
-"
-
-all_ruby_prepare() {
- sed -i -e 's/enable_config("system-libraries")/true/' ext/sqlite3/extconf.rb || die
-
- # Remove the runtime dependency on mini_portile2. We build without
- # it and it is not a runtime dependency for us.
- sed -e '/mini_portile2/ s:^:#:' \
- -e '/WARNING/ s:^:#:' \
- -e "s/0.0.0/${PV}/" \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
-
- # Avoid a failing spec for reprepares stats. Upstream indicates that
- # the stats data should not be relied on other than for human
- # debugging.
- sed -e '/def test_stat_reprepares/askip "Fails on Gentoo"' \
- -i test/test_statement.rb || die
-}
-
-all_ruby_compile() {
- all_fakegem_compile
-
- if use doc; then
- rdoc --title "${P} Documentation" -o doc --main README.rdoc lib *.rdoc ext/*/*.c || die
- rm -f doc/js/*.gz || die
- fi
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each{|f| require f}' || die
-}
diff --git a/dev-ruby/sqlite3/sqlite3-2.8.1.ebuild b/dev-ruby/sqlite3/sqlite3-2.8.1.ebuild
deleted file mode 100644
index c5a4d6999344..000000000000
--- a/dev-ruby/sqlite3/sqlite3-2.8.1.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_TASK_DOC="faq"
-RUBY_FAKEGEM_DOCDIR="doc faq"
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-
-RUBY_FAKEGEM_EXTENSIONS=(ext/sqlite3/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR=lib/sqlite3
-RUBY_FAKEGEM_GEMSPEC="sqlite3.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="An extension library to access a SQLite database from Ruby"
-HOMEPAGE="https://github.com/sparklemotion/sqlite3-ruby"
-SRC_URI="https://github.com/sparklemotion/sqlite3-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-RUBY_S="sqlite3-ruby-${PV}"
-LICENSE="BSD"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris"
-IUSE="doc test"
-
-# We track the bundled sqlite version here
-RDEPEND=">=dev-db/sqlite-3.51.1:3"
-DEPEND=">=dev-db/sqlite-3.51.1:3"
-
-ruby_add_bdepend "
- doc? ( dev-ruby/rdoc )
- test? ( dev-ruby/minitest:5 )
-"
-
-all_ruby_prepare() {
- sed -i -e 's/enable_config("system-libraries")/true/' ext/sqlite3/extconf.rb || die
-
- # Remove the runtime dependency on mini_portile2. We build without
- # it and it is not a runtime dependency for us.
- sed -e '/mini_portile2/ s:^:#:' \
- -e '/WARNING/ s:^:#:' \
- -e "s/0.0.0/${PV}/" \
- -i ${RUBY_FAKEGEM_GEMSPEC} || die
-
- # Avoid a failing spec for reprepares stats. Upstream indicates that
- # the stats data should not be relied on other than for human
- # debugging.
- sed -e '/def test_stat_reprepares/askip "Fails on Gentoo"' \
- -i test/test_statement.rb || die
-}
-
-all_ruby_compile() {
- all_fakegem_compile
-
- if use doc; then
- rdoc --title "${P} Documentation" -o doc --main README.rdoc lib *.rdoc ext/*/*.c || die
- rm -f doc/js/*.gz || die
- fi
-}
-
-each_ruby_test() {
- ${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each{|f| require f}' || die
-}
diff --git a/dev-ruby/stringex/stringex-2.8.6.ebuild b/dev-ruby/stringex/stringex-2.8.6.ebuild
index 5e21b1309a17..a8bbcdc74987 100644
--- a/dev-ruby/stringex/stringex-2.8.6.ebuild
+++ b/dev-ruby/stringex/stringex-2.8.6.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRAINSTALL="locales"
inherit ruby-fakegem
diff --git a/dev-ruby/sus-fixtures-async/sus-fixtures-async-0.2.0-r2.ebuild b/dev-ruby/sus-fixtures-async/sus-fixtures-async-0.2.0-r2.ebuild
new file mode 100644
index 000000000000..17de0b7d711b
--- /dev/null
+++ b/dev-ruby/sus-fixtures-async/sus-fixtures-async-0.2.0-r2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_EXTRADOC="readme.md"
+RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
+RUBY_FAKEGEM_RECIPE_TEST="sus"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Convenient fixture for testing async components in a reactor"
+HOMEPAGE="https://github.com/socketry/sus-fixtures-async"
+SRC_URI="https://github.com/socketry/sus-fixtures-async/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~riscv ~sparc ~x86"
+
+ruby_add_rdepend "
+ dev-ruby/async
+ >=dev-ruby/sus-0.10:0
+"
+
+all_ruby_prepare() {
+ sed -i -E 's/require_relative "(.+)"/require File.expand_path("\1")/g' "${RUBY_FAKEGEM_GEMSPEC}" || die
+
+ # Remove the sus configuration which enabled coverage checks.
+ # Its dependency is not packaged.
+ rm -f config/sus.rb || die
+}
diff --git a/dev-ruby/sus-fixtures-console/sus-fixtures-console-0.5.0.ebuild b/dev-ruby/sus-fixtures-console/sus-fixtures-console-0.5.0.ebuild
index 2094447b9915..bc16d4cc51bd 100644
--- a/dev-ruby/sus-fixtures-console/sus-fixtures-console-0.5.0.ebuild
+++ b/dev-ruby/sus-fixtures-console/sus-fixtures-console-0.5.0.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="readme.md"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
diff --git a/dev-ruby/temple/temple-0.10.4.ebuild b/dev-ruby/temple/temple-0.10.4.ebuild
index e60196e114c3..ce17a60100b7 100644
--- a/dev-ruby/temple/temple-0.10.4.ebuild
+++ b/dev-ruby/temple/temple-0.10.4.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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="CHANGES EXPRESSIONS.md README.md"
RUBY_FAKEGEM_GEMSPEC="temple.gemspec"
diff --git a/dev-ruby/terminal-table/terminal-table-3.0.2.ebuild b/dev-ruby/terminal-table/terminal-table-3.0.2.ebuild
index f3f2d0e03c62..d13f653c1eda 100644
--- a/dev-ruby/terminal-table/terminal-table-3.0.2.ebuild
+++ b/dev-ruby/terminal-table/terminal-table-3.0.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/terminal-table/terminal-table-4.0.0.ebuild b/dev-ruby/terminal-table/terminal-table-4.0.0.ebuild
index f3f2d0e03c62..d13f653c1eda 100644
--- a/dev-ruby/terminal-table/terminal-table-4.0.0.ebuild
+++ b/dev-ruby/terminal-table/terminal-table-4.0.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/test-unit-rr/test-unit-rr-1.0.5-r2.ebuild b/dev-ruby/test-unit-rr/test-unit-rr-1.0.5-r2.ebuild
index 223ad34b3b9b..0d2bdd87e52c 100644
--- a/dev-ruby/test-unit-rr/test-unit-rr-1.0.5-r2.ebuild
+++ b/dev-ruby/test-unit-rr/test-unit-rr-1.0.5-r2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_TASK_TEST=""
diff --git a/dev-ruby/test_construct/test_construct-2.0.2-r1.ebuild b/dev-ruby/test_construct/test_construct-2.0.2-r1.ebuild
index 16c0509f5ae9..6916419cfcae 100644
--- a/dev-ruby/test_construct/test_construct-2.0.2-r1.ebuild
+++ b/dev-ruby/test_construct/test_construct-2.0.2-r1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="CHANGELOG.md README.md"
diff --git a/dev-ruby/tilt/Manifest b/dev-ruby/tilt/Manifest
index 8ea45e91bb65..a05eac707602 100644
--- a/dev-ruby/tilt/Manifest
+++ b/dev-ruby/tilt/Manifest
@@ -1,2 +1,3 @@
DIST tilt-2.6.0.tar.gz 61451 BLAKE2B aa007d0665685ddefb6c5228b3c89444913d632c462d7c9be017bdbd6138238e4d533b25e00f65c99ec0c6e59de512b446916b15a6ff7ef7bd1f9b3cda9911c3 SHA512 b1f2e146d98b75e97e479bfcbad125c0fd9c5bc707b5d9ea73185033f70461d008f9f94e5bab6e6e4676fd8237af08f9ea13f311f4673d3644c8dcc335d25c68
DIST tilt-2.6.1.tar.gz 61702 BLAKE2B 05c261e12b18f745e71f36d03bec312561e5bbe848e41158394d9d7a39a4f948edc060d42ca92bf9a337616b74e9c7997cb9865cd60b3c80f322515642439bdd SHA512 805d016427a7d923832699ebec991ba36c928088b5fd0381d9b7bee7d97329854a909113821d71e569cbae7877b2ca160ae2f14d29ad369976b173f671e5b708
+DIST tilt-2.8.0.tar.gz 61917 BLAKE2B 4f2019484688938ef0645304967047b61b1ce906db1e8c2550a17883687477423907ae082690bed48f76090fd2f10d17aaa3f74247ffb0860e94c1dd0916f1e0 SHA512 3683d7f17b38cb22aadee2811cba309a28601c117d183464d1c9c1d3bbbb4956cf7c04ef4210f276f8b969a67d88bc17d88ddc6904475d1db1e71bf5569fabf1
diff --git a/dev-ruby/tilt/tilt-2.8.0.ebuild b/dev-ruby/tilt/tilt-2.8.0.ebuild
new file mode 100644
index 000000000000..2fcc5d8ac4a3
--- /dev/null
+++ b/dev-ruby/tilt/tilt-2.8.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_DOC="none"
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+
+RUBY_FAKEGEM_GEMSPEC="tilt.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Thin interface over template engines to make their usage as generic as possible"
+HOMEPAGE="https://github.com/jeremyevans/tilt"
+SRC_URI="https://github.com/jeremyevans/tilt/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="2"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris"
+
+# Block on some of the potential test dependencies. These dependencies
+# are optional for the test suite, and we don't want to depend on all of
+# them to facilitate keywording and stabling.
+ruby_add_bdepend "test? (
+ dev-ruby/erubi
+ dev-ruby/minitest
+ dev-ruby/nokogiri
+)"
+
+all_ruby_prepare() {
+ sed -e '/bundler/I s:^:#:' -i Rakefile test/test_helper.rb || die
+ sed -e '7irequire "uri"' -i test/test_helper.rb || die
+}
diff --git a/dev-ruby/traces/traces-0.18.2.ebuild b/dev-ruby/traces/traces-0.18.2.ebuild
index 6e8a99c0abde..c87c765714e4 100644
--- a/dev-ruby/traces/traces-0.18.2.ebuild
+++ b/dev-ruby/traces/traces-0.18.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2022-2025 Gentoo Authors
+# Copyright 2022-2026 Gentoo Authors
# 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_RECIPE_TEST="sus"
RUBY_FAKEGEM_EXTRADOC="readme.md releases.md"
diff --git a/dev-ruby/unicode-display_width/Manifest b/dev-ruby/unicode-display_width/Manifest
index 24def0e078e6..5cb7496433d2 100644
--- a/dev-ruby/unicode-display_width/Manifest
+++ b/dev-ruby/unicode-display_width/Manifest
@@ -1,3 +1,2 @@
DIST unicode-display_width-2.6.0.tar.gz 13178 BLAKE2B 416929b43d494e59a6d790f775215e30ee8ca24404f99193757d79575ec952567164731eb4cdefe836edc70e56fe176c416bab182a51ee6b1d9e5c959e7c8658 SHA512 f67178a3907175575038204d84a71a466bafe73f9519bdd65b4ca6fa0dd9a1ff21937daa7914ff2881c3d7343a16f22863d7bfe6dd5e223c3d44fed730abe7e4
-DIST unicode-display_width-3.1.4.tar.gz 19753 BLAKE2B bc99d3551d6be9f1e3982c6c34d7b5432f9314cfa4a009576c0eea42f2a5e628f0587973518f94aeabb6a0248617e0c5be3fa81110ebf5f7a315a9036911bc0b SHA512 c820c31401992161f8cf94021d837f59b6791693cd1decdc32468097d9b3bc1d37bd18ebf79a4c2b86288b18fc30e64624f077306e24fa8d10f6527757a9fffc
DIST unicode-display_width-3.1.5.tar.gz 19759 BLAKE2B f27fcc131486dbb2058902fc153978883cec23920a5394ea7e3fe060cc84a71d8226624e9f662e18ed6467f8c461dbbbaa78c5be0465153b2171ffa11d876e12 SHA512 01ad48ba36c12c259b1285b013ab6a68714bac3b63b9b4f9ae5aeb5c867c95e15331d695321a0cf7dbfda90be53677cf65e4dd7bae21054624f4d052735f358a
diff --git a/dev-ruby/unicode-display_width/unicode-display_width-2.6.0.ebuild b/dev-ruby/unicode-display_width/unicode-display_width-2.6.0.ebuild
index 9f05a715e7cb..f3b5822e36d8 100644
--- a/dev-ruby/unicode-display_width/unicode-display_width-2.6.0.ebuild
+++ b/dev-ruby/unicode-display_width/unicode-display_width-2.6.0.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/unicode-display_width/unicode-display_width-3.1.4.ebuild b/dev-ruby/unicode-display_width/unicode-display_width-3.1.4.ebuild
deleted file mode 100644
index 16ad86e1dd50..000000000000
--- a/dev-ruby/unicode-display_width/unicode-display_width-3.1.4.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-USE_RUBY="ruby31 ruby32 ruby33 ruby34"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-RUBY_FAKEGEM_EXTRAINSTALL="data"
-
-RUBY_FAKEGEM_GEMSPEC="unicode-display_width.gemspec"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Adds String#display_width to get the display size using EastAsianWidth.txt"
-HOMEPAGE="https://github.com/janlelis/unicode-display_width"
-SRC_URI="https://github.com/janlelis/unicode-display_width/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-LICENSE="MIT"
-
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm64"
-
-ruby_add_rdepend ">=dev-ruby/unicode-emoji-4.0.4:4"
-
-all_ruby_prepare() {
- # Avoid experimental emoji support for now
- sed -e '/\[emoji\]/,/^ end/ s:^:#:' \
- -e '/Config object based API/,/^end/ s:^:#:' \
- -i spec/display_width_spec.rb || die
-}
diff --git a/dev-ruby/unicode-display_width/unicode-display_width-3.1.5.ebuild b/dev-ruby/unicode-display_width/unicode-display_width-3.1.5.ebuild
index 7b2570c3563f..ca59eabd4c04 100644
--- a/dev-ruby/unicode-display_width/unicode-display_width-3.1.5.ebuild
+++ b/dev-ruby/unicode-display_width/unicode-display_width-3.1.5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/uuidtools/uuidtools-2.2.0-r1.ebuild b/dev-ruby/uuidtools/uuidtools-2.2.0-r1.ebuild
index 18b79be35860..bdd89faa70f5 100644
--- a/dev-ruby/uuidtools/uuidtools-2.2.0-r1.ebuild
+++ b/dev-ruby/uuidtools/uuidtools-2.2.0-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/uuidtools/uuidtools-3.0.0.ebuild b/dev-ruby/uuidtools/uuidtools-3.0.0.ebuild
index ad0da9a200ac..b4d0e5597733 100644
--- a/dev-ruby/uuidtools/uuidtools-3.0.0.ebuild
+++ b/dev-ruby/uuidtools/uuidtools-3.0.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/virtus/virtus-2.0.0.ebuild b/dev-ruby/virtus/virtus-2.0.0.ebuild
index f08bb77c1d34..29d4dba2abb8 100644
--- a/dev-ruby/virtus/virtus-2.0.0.ebuild
+++ b/dev-ruby/virtus/virtus-2.0.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_EXTRADOC="Changelog.md CONTRIBUTING.md README.md"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-ruby/webmock/webmock-3.25.1.ebuild b/dev-ruby/webmock/webmock-3.25.1.ebuild
index 5784831fcbc3..02db9166505c 100644
--- a/dev-ruby/webmock/webmock-3.25.1.ebuild
+++ b/dev-ruby/webmock/webmock-3.25.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_TASK_TEST="test spec NO_CONNECTION=true"
diff --git a/dev-ruby/webrobots/webrobots-0.1.2-r3.ebuild b/dev-ruby/webrobots/webrobots-0.1.2-r3.ebuild
index 155b8089453e..b2b66c8f8603 100644
--- a/dev-ruby/webrobots/webrobots-0.1.2-r3.ebuild
+++ b/dev-ruby/webrobots/webrobots-0.1.2-r3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_DOCDIR="rdoc"
RUBY_FAKEGEM_EXTRADOC="README.rdoc"
diff --git a/dev-ruby/yard/Manifest b/dev-ruby/yard/Manifest
index 95078c76c556..659c086ed71a 100644
--- a/dev-ruby/yard/Manifest
+++ b/dev-ruby/yard/Manifest
@@ -1,2 +1,3 @@
DIST yard-0.9.37-git.tgz 941020 BLAKE2B 40c9ad5be234d00d84fd3187271357691841a2b57fd37ee9fc346e8d8c91c54f751d6ad46df988f6d40e3a1c3c4d644cfdce825579e7294b23ec52f28489e45d SHA512 f48a25df1fba7cdde7388842c6bce63ab149e613921cca8c809adb2a3bd7edce49c573c8867e62a3cb33c8cb3868dd67bd87f34c65ffce1e66c1353a2f93f9ca
DIST yard-0.9.38-git.tgz 944234 BLAKE2B b6d5818df4cf64c37942ecd449ba90e603f2da6b2e317d10cd1c553e4a8e32a5fbd572010d08d303d190bca808f3c6b23096289c6fa15ee896038d7a4c76407c SHA512 8c0111641b9abf032d9b934259356d04a00b91221bf20e6193104e38c0bfcda863c8e0f50f8156601af0615159383cd36144047aa830234e80ebd75a020f3be2
+DIST yard-0.9.45-git.tgz 1019182 BLAKE2B ec2920103210b99e6001ac231bdee5e6ad6d6e611cd6113e84ef162b7576292fd1de1558d8d785d4675bd65450cede6d450bfd6ec58c5fa0ec12c836fd62c7dd SHA512 80e95a4fb167b793fca3bd428af2ede960ab699f8cbd24379db9b2d8d3f21e7700e71ebc971569a40b9244743ca2693537b39f7deaad4f2a6937ac01ee3afea0
diff --git a/dev-ruby/yard/yard-0.9.45.ebuild b/dev-ruby/yard/yard-0.9.45.ebuild
new file mode 100644
index 000000000000..100b0eabe219
--- /dev/null
+++ b/dev-ruby/yard/yard-0.9.45.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
+
+RUBY_FAKEGEM_RECIPE_TEST="rspec3"
+RUBY_FAKEGEM_TASK_DOC="yard"
+
+RUBY_FAKEGEM_EXTRADOC="README.md"
+RUBY_FAKEGEM_DOCDIR="doc docs"
+
+RUBY_FAKEGEM_EXTRAINSTALL="templates .yardopts"
+
+RUBY_FAKEGEM_GEMSPEC="yard.gemspec"
+
+inherit ruby-fakegem
+
+DESCRIPTION="Documentation generation tool for the Ruby programming language"
+HOMEPAGE="https://yardoc.org/"
+
+# The gem lacks the gemspec file needed to pass tests.
+SRC_URI="https://github.com/lsegal/yard/archive/v${PV}.tar.gz -> ${P}-git.tgz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+
+ruby_add_bdepend "doc? ( || ( dev-ruby/maruku dev-ruby/rdiscount dev-ruby/kramdown ) )"
+
+ruby_add_bdepend "test? ( dev-ruby/rackup dev-ruby/rack:3.1 >=dev-ruby/rspec-3.11.0 dev-ruby/webrick )"
+
+all_ruby_prepare() {
+ sed -i -e '/[Bb]undler/ s:^:#:' -e '3igem "rack", "~> 3.1.0"' spec/spec_helper.rb || die
+
+ sed -i -e '/samus/I s:^:#:' Rakefile || die
+
+ sed -i -e 's/git ls-files/find/' ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ # Avoid specs that make assumptions on load ordering that are not
+ # true for us. This may be related to how we install in Gentoo. This
+ # also drops a test requirement on dev-ruby/rack.
+ rm -f spec/cli/server_spec.rb || die
+
+ # Avoid specs that only work with bundler
+ sed -i -e '/#initialize/,/^ end/ s:^:#:' spec/cli/yri_spec.rb || die
+ sed -e '/overwrites options with data in/askip "wrong assumptions on file access"' \
+ -e '/loads any gem plugins starting with/askip "wrong assumptions on file access"' \
+ -i spec/config_spec.rb || die
+
+ # Avoid specs making assumptions about how rubygems works internally
+ sed -i -e '/searches for .gem file/askip "rubygems internals"' spec/cli/diff_spec.rb || die
+
+ # Avoid redcarpet-specific spec that is not optional
+ sed -i -e '/autolinks URLs/askip "make redcarpet optional"' spec/templates/helpers/html_helper_spec.rb || die
+
+ # Avoid asciidoc-specific spec that is not optional
+ sed -e '/\(AsciiDoc specific\|AsciiDoc header\)/askip "skipping asciidoc test"' \
+ -i spec/templates/helpers/html_helper_spec.rb || die
+}
diff --git a/dev-ruby/zeitwerk/Manifest b/dev-ruby/zeitwerk/Manifest
index 817738ac8c47..3f27f98cf393 100644
--- a/dev-ruby/zeitwerk/Manifest
+++ b/dev-ruby/zeitwerk/Manifest
@@ -1,3 +1,3 @@
-DIST zeitwerk-2.7.0.tar.gz 129163 BLAKE2B 3c90a6d20f645f662f17bcfad39fe2cf5377c0308b9f5bcc02ae5ce3d7a24e99ae156002fb10aab79c0779efeb32d9966cd2bd3c0da51505f71c1912a570ec8c SHA512 a3699493a1a07b973a9c5e2fc2d894643d3b36a678cb63a0a9a60a069f2e108e8929ffbcc2f4285c13a189ac4732bc17245c0ace3078b12a744edf3036f6bd11
DIST zeitwerk-2.7.2.tar.gz 131872 BLAKE2B 8ac1e725099655a8db65d699a89ec47f6134c31243d11f724a39668015f22d71cd850d38993bb51f247b6fb70523102e4f51c849551ed7fd2b5e76bdf7f705ee SHA512 3da8d33ee272148b31981f1795200ce112c4b5c4e26cc051000f24355d7f2df05f0591aa05390e523d9a3e7c8dffd51cd17ea19ed8427d8a4217061bde2d590f
DIST zeitwerk-2.7.3.tar.gz 132616 BLAKE2B 6c9f51bdb4215c7d6ac108c5574b9fc506b08aea19fc6279052a5bf5c9c140f8af79eb7860b28e7acf9fe83a717aad8944afa54f54d6b000eaf7d543ca459332 SHA512 c84a5175f0c1b7c616ae9ff1ee2a3f46ba550e0d49f6a08a8862bc3181eadafc1b95adfb97cb3fc8015971fa26d68439f6eadec3eb375abb727ccd6c3ac78cec
+DIST zeitwerk-2.8.2.tar.gz 140760 BLAKE2B 995d2ff4c061538ea6ccce70fa4fd701e5c4cba5b99c7e07bd6404c3641e2f4fce2fba712003a9eb3d88d029407d62c67d2765c0aff9422c7c49d1ee30c73a23 SHA512 c50f0b105cf177f86ed4966d8d116e8838c5afb88e2d921057cd77c256bde0b3d21c827ada4abf2e4df0d05b2d28587d1c4af1be240af3e6f4005b558232a320
diff --git a/dev-ruby/zeitwerk/zeitwerk-2.7.0.ebuild b/dev-ruby/zeitwerk/zeitwerk-2.8.2.ebuild
index fb4cb59fc5ad..302b67bae15e 100644
--- a/dev-ruby/zeitwerk/zeitwerk-2.7.0.ebuild
+++ b/dev-ruby/zeitwerk/zeitwerk-2.8.2.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby32 ruby33"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
@@ -18,10 +18,15 @@ SRC_URI="https://github.com/fxn/zeitwerk/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="2"
-KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test"
-ruby_add_bdepend "test? ( dev-ruby/bundler dev-ruby/warning )"
+ruby_add_bdepend "test? (
+ dev-ruby/bundler
+ dev-ruby/minitest:6
+ dev-ruby/minitest-mock
+ dev-ruby/warning
+)"
all_ruby_prepare() {
rm -f Gemfile.lock || die
@@ -29,9 +34,12 @@ all_ruby_prepare() {
# It's more of a quality check for the tests themselves rather than a test
sed -i -e '/\(focus\|reporters\|Reporters\|prove_\?it\)/ s:^:#:' Gemfile test/test_helper.rb || die
- sed -i -e 's:require_relative "lib:require "./lib:' ${RUBY_FAKEGEM_GEMSPEC} || die
+ sed -i -e "s:require_relative 'lib:require './lib:" ${RUBY_FAKEGEM_GEMSPEC} || die
+
+ sed -e "/gem 'rubocop'/d" \
+ -i Gemfile || die
}
each_ruby_test() {
- ${RUBY} -S bundle exec rake test || die
+ ${RUBY} -S bundle exec minitest || die
}
diff --git a/dev-ruby/zstd-ruby/Manifest b/dev-ruby/zstd-ruby/Manifest
index ce6c62b257dc..ab9a76764eb8 100644
--- a/dev-ruby/zstd-ruby/Manifest
+++ b/dev-ruby/zstd-ruby/Manifest
@@ -1,5 +1,2 @@
-DIST zstd-ruby-1.5.7.0.tar.gz 1971147 BLAKE2B 9f308d1988d9e38067640169acd5431f5a92a9c8f2e58a19b3e0fc05d64ef76c207f8b065bac50fd69f14cfd0e996642bd9554a2cc6c3bc81a8af1d9ec4ff9af SHA512 fb51b9baaa5e27e8af35f7d0a94998ccf3a3d3bd2472099fa8d0e6ef3a7e97fee7a3be7e96e0e897ee5a7805127a2aefe525b130e14d24fc5561efc8cc3763cc
DIST zstd-ruby-1.5.7.1.tar.gz 1972177 BLAKE2B b8d021ad22e4aa0bf1393bb7e3105dffd0bcac248f33a9323a72b709bd6705d8024a0547561276436180279fa181032a5eb343b0a8dedc501593da4a360de569 SHA512 e640c5ca1f51d596f927197772fc64646e20631e3291adadee410d498bf38efb0b859445e2f04df62e861f0338bac4ede92c04760bc3950b2928cc5588c90f6a
-DIST zstd-ruby-2.0.3.tar.gz 1973769 BLAKE2B 90a6f318173f2cee94868554b1d523b88265ce02d2f5d69d9013148d30cd3a83c5e7732e7b038ba44867671dc545bffd17d576c08a150828b815da921e032988 SHA512 cdfcdf1c172e744f5c99e1ac64e6e2b5d3949529dcb922608b9adb543e4d615fd2a9f89f11e7bd8524102510b3ba8ce6decc963d71f4a5e9515487402c08fee7
-DIST zstd-ruby-2.0.4.tar.gz 1973815 BLAKE2B 72f1c4273cb0f3dd16f83df51f8187e7bcf680c68ddd2b36bed4d474297e76648c7f6cf8bc7dae210513af6fd0d957ecc8c74e03338352163ebca8f5f698c39f SHA512 85e4bd83fbdcbed171adc8465906c58062890492d62f63b4bfa577e3b5d0154e19fbdf4cfd97f61938fd709d210d797259abb96e73c6f5c632a52dfa3da039d9
DIST zstd-ruby-2.0.5.tar.gz 1973796 BLAKE2B b7d7c32bacbc23da1cf71344090ea0f7f0d08be685fff32d2f54d155de7af6a434b048034ce14ba177bcdc316808af71b88ea79c944f784a35ce62d09b9c339d SHA512 3d3639177eb2e59c572ef64786f1fbb137a14403be0de5e40bc218591f8b461e8b3d870bf53b358992a1bbfb5db3f544037804f93ab83e44eabff1d0c6f16e02
diff --git a/dev-ruby/zstd-ruby/files/zstd-ruby-1.5.7.1-ruby35.patch b/dev-ruby/zstd-ruby/files/zstd-ruby-1.5.7.1-ruby35.patch
new file mode 100644
index 000000000000..cbb5f6e7ea6e
--- /dev/null
+++ b/dev-ruby/zstd-ruby/files/zstd-ruby-1.5.7.1-ruby35.patch
@@ -0,0 +1,55 @@
+https://github.com/SpringMT/zstd-ruby/pull/118
+https://github.com/SpringMT/zstd-ruby/commit/7cc7e95bcd43b6ca42fb7961267eac216ed960a5
+
+From 5c6d656d39501d356df21c562b0a12fb0480ebf2 Mon Sep 17 00:00:00 2001
+From: Shizuo Fujita <fujita@clear-code.com>
+Date: Sat, 18 Oct 2025 13:32:15 +0900
+Subject: [PATCH] CI: Support Ruby 3.5
+
+Ractor#take was replaced at Ruby 3.5.
+https://bugs.ruby-lang.org/issues/21262
+--- a/spec/zstd-ruby-streaming-compress_spec.rb
++++ b/spec/zstd-ruby-streaming-compress_spec.rb
+@@ -115,7 +115,11 @@
+ stream << "abc" << "def"
+ res = stream.finish
+ }
+- expect(Zstd.decompress(r.take)).to eq('abcdef')
++ # Ractor#take was replaced at Ruby 3.5.
++ # https://bugs.ruby-lang.org/issues/21262
++ result = r.respond_to?(:take) ? r.take : r.value
++
++ expect(Zstd.decompress(result)).to eq('abcdef')
+ end
+ end
+ end
+--- a/spec/zstd-ruby-streaming-decompress_spec.rb
++++ b/spec/zstd-ruby-streaming-decompress_spec.rb
+@@ -169,7 +169,11 @@
+ result << stream.decompress(cstr[10..-1])
+ result
+ }
+- expect(r.take).to eq('foo bar buzz')
++ # Ractor#take was replaced at Ruby 3.5.
++ # https://bugs.ruby-lang.org/issues/21262
++ result = r.respond_to?(:take) ? r.take : r.value
++
++ expect(result).to eq('foo bar buzz')
+ end
+ end
+ end
+--- a/spec/zstd-ruby_spec.rb
++++ b/spec/zstd-ruby_spec.rb
+@@ -118,7 +118,11 @@ def to_str
+ describe 'Ractor' do
+ it 'should be supported' do
+ r = Ractor.new { Zstd.compress('abc') }
+- expect(Zstd.decompress(r.take)).to eq('abc')
++ # Ractor#take was replaced at Ruby 3.5.
++ # https://bugs.ruby-lang.org/issues/21262
++ result = r.respond_to?(:take) ? r.take : r.value
++
++ expect(Zstd.decompress(result)).to eq('abc')
+ end
+ end
+ end
diff --git a/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.0.ebuild b/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.0.ebuild
deleted file mode 100644
index 5cda7646f04a..000000000000
--- a/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-# This gem includes a bundled version of app-arch/zstd. It requires
-# features that are only available with a statically linked zstd library
-# (e.g. ZSTD_SKIPPABLEHEADERSIZE) and changing the build system to build
-# against a statically linked app-arch/zstd does not seem worth it.
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_EXTRADOC="README.md"
-RUBY_FAKEGEM_EXTENSIONS=(ext/zstdruby/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/zstd-ruby"
-RUBY_FAKEGEM_GEMSPEC="zstd-ruby.gemspec"
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Ruby binding for zstd (Zstandard - Fast real-time compression algorithm)"
-HOMEPAGE="https://github.com/SpringMT/zstd-ruby"
-SRC_URI="https://github.com/SpringMT/zstd-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="$(ver_cut 1)"
-KEYWORDS="amd64 ~ppc64"
-
-all_ruby_prepare() {
- sed -e 's/git ls-files -z/find * -print0/' \
- -i ${RUBY_FAKEGEM_GEMSPEC}
-
- # Removing the -O3 optimization flag causes the test suite to hang
- # consuming CPU.
- # sed -e '/CFLAGS/ s/-O3//' \ -i
- # ext/zstdruby/extconf.rb || die
-
- sed -e '/bundler/ s:^:#:' \
- -i spec/spec_helper.rb || die
-
- sed -e '/pry/ s:^:#:' \
- -i spec/zstd-ruby-stream_reader_spec.rb || die
-}
diff --git a/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.1.ebuild b/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.1.ebuild
index 5cda7646f04a..5cc5e1aae03b 100644
--- a/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.1.ebuild
+++ b/dev-ruby/zstd-ruby/zstd-ruby-1.5.7.1.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
# This gem includes a bundled version of app-arch/zstd. It requires
# features that are only available with a statically linked zstd library
@@ -27,6 +27,10 @@ LICENSE="BSD"
SLOT="$(ver_cut 1)"
KEYWORDS="amd64 ~ppc64"
+PATCHES=(
+ "${FILESDIR}"/zstd-ruby-1.5.7.1-ruby35.patch
+)
+
all_ruby_prepare() {
sed -e 's/git ls-files -z/find * -print0/' \
-i ${RUBY_FAKEGEM_GEMSPEC}
diff --git a/dev-ruby/zstd-ruby/zstd-ruby-2.0.3.ebuild b/dev-ruby/zstd-ruby/zstd-ruby-2.0.3.ebuild
deleted file mode 100644
index 32c2bef51c18..000000000000
--- a/dev-ruby/zstd-ruby/zstd-ruby-2.0.3.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-# This gem includes a bundled version of app-arch/zstd. It requires
-# features that are only available with a statically linked zstd library
-# (e.g. ZSTD_SKIPPABLEHEADERSIZE) and changing the build system to build
-# against a statically linked app-arch/zstd does not seem worth it.
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_EXTRADOC="README.md"
-RUBY_FAKEGEM_EXTENSIONS=(ext/zstdruby/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/zstd-ruby"
-RUBY_FAKEGEM_GEMSPEC="zstd-ruby.gemspec"
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Ruby binding for zstd (Zstandard - Fast real-time compression algorithm)"
-HOMEPAGE="https://github.com/SpringMT/zstd-ruby"
-SRC_URI="https://github.com/SpringMT/zstd-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~ppc64"
-
-all_ruby_prepare() {
- sed -e 's/git ls-files -z/find * -print0/' \
- -i ${RUBY_FAKEGEM_GEMSPEC}
-
- # Removing the -O3 optimization flag causes the test suite to hang
- # consuming CPU.
- # sed -e '/CFLAGS/ s/-O3//' \ -i
- # ext/zstdruby/extconf.rb || die
-
- sed -e '/bundler/ s:^:#:' \
- -i spec/spec_helper.rb || die
-
- sed -e '/pry/ s:^:#:' \
- -i spec/zstd-ruby-stream_reader_spec.rb || die
-}
diff --git a/dev-ruby/zstd-ruby/zstd-ruby-2.0.4.ebuild b/dev-ruby/zstd-ruby/zstd-ruby-2.0.4.ebuild
deleted file mode 100644
index 32c2bef51c18..000000000000
--- a/dev-ruby/zstd-ruby/zstd-ruby-2.0.4.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-USE_RUBY="ruby32 ruby33 ruby34"
-
-# This gem includes a bundled version of app-arch/zstd. It requires
-# features that are only available with a statically linked zstd library
-# (e.g. ZSTD_SKIPPABLEHEADERSIZE) and changing the build system to build
-# against a statically linked app-arch/zstd does not seem worth it.
-
-RUBY_FAKEGEM_BINWRAP=""
-RUBY_FAKEGEM_EXTRADOC="README.md"
-RUBY_FAKEGEM_EXTENSIONS=(ext/zstdruby/extconf.rb)
-RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/zstd-ruby"
-RUBY_FAKEGEM_GEMSPEC="zstd-ruby.gemspec"
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Ruby binding for zstd (Zstandard - Fast real-time compression algorithm)"
-HOMEPAGE="https://github.com/SpringMT/zstd-ruby"
-SRC_URI="https://github.com/SpringMT/zstd-ruby/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="$(ver_cut 1)"
-KEYWORDS="~amd64 ~ppc64"
-
-all_ruby_prepare() {
- sed -e 's/git ls-files -z/find * -print0/' \
- -i ${RUBY_FAKEGEM_GEMSPEC}
-
- # Removing the -O3 optimization flag causes the test suite to hang
- # consuming CPU.
- # sed -e '/CFLAGS/ s/-O3//' \ -i
- # ext/zstdruby/extconf.rb || die
-
- sed -e '/bundler/ s:^:#:' \
- -i spec/spec_helper.rb || die
-
- sed -e '/pry/ s:^:#:' \
- -i spec/zstd-ruby-stream_reader_spec.rb || die
-}
diff --git a/dev-util/cucumber-ci-environment/cucumber-ci-environment-10.0.1.ebuild b/dev-util/cucumber-ci-environment/cucumber-ci-environment-10.0.1.ebuild
index fdc54c10cfc8..90e2e9604f66 100644
--- a/dev-util/cucumber-ci-environment/cucumber-ci-environment-10.0.1.ebuild
+++ b/dev-util/cucumber-ci-environment/cucumber-ci-environment-10.0.1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 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_RECIPE_TEST="rspec3"
diff --git a/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-18.0.3.ebuild b/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-18.0.3.ebuild
index d70e247fa851..3c4f834f8a98 100644
--- a/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-18.0.3.ebuild
+++ b/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-18.0.3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
# The specs have become a no-op with version 18 since the features they
# should test have all been removed.
diff --git a/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-20.1.0.ebuild b/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-20.1.0.ebuild
index d70e247fa851..3c4f834f8a98 100644
--- a/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-20.1.0.ebuild
+++ b/dev-util/cucumber-compatibility-kit/cucumber-compatibility-kit-20.1.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
# The specs have become a no-op with version 18 since the features they
# should test have all been removed.
diff --git a/dev-util/cucumber-core/cucumber-core-15.4.0.ebuild b/dev-util/cucumber-core/cucumber-core-15.4.0.ebuild
index 4b3018af5064..0b9dccd7b09c 100644
--- a/dev-util/cucumber-core/cucumber-core-15.4.0.ebuild
+++ b/dev-util/cucumber-core/cucumber-core-15.4.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
diff --git a/dev-util/cucumber-cucumber-expressions/cucumber-cucumber-expressions-18.0.1.ebuild b/dev-util/cucumber-cucumber-expressions/cucumber-cucumber-expressions-18.0.1.ebuild
index d91c33de9986..8ee61cf1450e 100644
--- a/dev-util/cucumber-cucumber-expressions/cucumber-cucumber-expressions-18.0.1.ebuild
+++ b/dev-util/cucumber-cucumber-expressions/cucumber-cucumber-expressions-18.0.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_GEMSPEC="cucumber-cucumber-expressions.gemspec"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-util/cucumber-gherkin/cucumber-gherkin-30.1.3.ebuild b/dev-util/cucumber-gherkin/cucumber-gherkin-30.1.3.ebuild
index 145d64fdcd4d..23f2ff22fc1f 100644
--- a/dev-util/cucumber-gherkin/cucumber-gherkin-30.1.3.ebuild
+++ b/dev-util/cucumber-gherkin/cucumber-gherkin-30.1.3.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
diff --git a/dev-util/cucumber-html-formatter/cucumber-html-formatter-22.2.0.ebuild b/dev-util/cucumber-html-formatter/cucumber-html-formatter-22.2.0.ebuild
index 3f48dd9fccb6..cbca3bc0bc30 100644
--- a/dev-util/cucumber-html-formatter/cucumber-html-formatter-22.2.0.ebuild
+++ b/dev-util/cucumber-html-formatter/cucumber-html-formatter-22.2.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_EXTRAINSTALL="assets"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-util/cucumber-messages/cucumber-messages-27.2.0.ebuild b/dev-util/cucumber-messages/cucumber-messages-27.2.0.ebuild
index 1e16f9f8ca45..14300064b1a2 100644
--- a/dev-util/cucumber-messages/cucumber-messages-27.2.0.ebuild
+++ b/dev-util/cucumber-messages/cucumber-messages-27.2.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_GEMSPEC="cucumber-messages.gemspec"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
diff --git a/dev-util/cucumber-tag-expressions/cucumber-tag-expressions-6.1.2.ebuild b/dev-util/cucumber-tag-expressions/cucumber-tag-expressions-6.1.2.ebuild
index 2d90a0c0d84e..d7b20cb6cf4a 100644
--- a/dev-util/cucumber-tag-expressions/cucumber-tag-expressions-6.1.2.ebuild
+++ b/dev-util/cucumber-tag-expressions/cucumber-tag-expressions-6.1.2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_EXTRADOC="README.md"
diff --git a/dev-util/cucumber/cucumber-10.2.0.ebuild b/dev-util/cucumber/cucumber-10.2.0.ebuild
index ee10ff7ec26d..5836d47e6034 100644
--- a/dev-util/cucumber/cucumber-10.2.0.ebuild
+++ b/dev-util/cucumber/cucumber-10.2.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-USE_RUBY="ruby32 ruby33 ruby34"
+USE_RUBY="ruby32 ruby33 ruby34 ruby40"
# Documentation task depends on sdoc which we currently don't have.
RUBY_FAKEGEM_TASK_DOC=""
diff --git a/dev-util/selenium-manager/selenium-manager-4.46.0.ebuild b/dev-util/selenium-manager/selenium-manager-4.46.0.ebuild
index fe362f3f34c4..a0995d7187c8 100644
--- a/dev-util/selenium-manager/selenium-manager-4.46.0.ebuild
+++ b/dev-util/selenium-manager/selenium-manager-4.46.0.ebuild
@@ -35,7 +35,7 @@ LICENSE+="
BZIP2
"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
IUSE="telemetry test"
RESTRICT="!test? ( test )"
diff --git a/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild b/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild
index 335b9bb50795..97d3bb675d86 100644
--- a/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild
+++ b/dev-util/vulkan-tools/vulkan-tools-1.4.350.0.ebuild
@@ -27,6 +27,7 @@ RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
cube? ( ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] )
+ test? ( dev-cpp/gtest )
"
RDEPEND="
wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
diff --git a/dev-util/vulkan-tools/vulkan-tools-9999.ebuild b/dev-util/vulkan-tools/vulkan-tools-9999.ebuild
index 95fbf44d46d8..97d3bb675d86 100644
--- a/dev-util/vulkan-tools/vulkan-tools-9999.ebuild
+++ b/dev-util/vulkan-tools/vulkan-tools-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -27,6 +27,7 @@ RESTRICT="!test? ( test )"
BDEPEND="${PYTHON_DEPS}
cube? ( ~dev-util/glslang-${PV}:=[${MULTILIB_USEDEP}] )
+ test? ( dev-cpp/gtest )
"
RDEPEND="
wayland? ( dev-libs/wayland[${MULTILIB_USEDEP}] )
diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass
index 637396381ca4..aa855f37384e 100644
--- a/eclass/kernel-2.eclass
+++ b/eclass/kernel-2.eclass
@@ -1501,14 +1501,14 @@ kernel-2_src_unpack() {
# @FUNCTION: kernel-2_src_prepare
# @USAGE:
# @DESCRIPTION:
-# Apply any user patches from /etc/portage/patches
-# and patches defined in any ebuild inheriting this eclass
+# Apply patches defined in any ebuild inheriting this eclass
+# and any user patches from /etc/portage/patches
kernel-2_src_prepare() {
- debug-print "$FUNCNAME: Applying any user patches from /etc/portage/patches/*"
- eapply_user
debug-print "$FUNCNAME: Applying patches defined in ebuild PATCHES=<*>"
[[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+ debug-print "$FUNCNAME: Applying any user patches from /etc/portage/patches/*"
+ eapply_user
}
# @FUNCTION: kernel-2_src_compile
diff --git a/games-emulation/atari800/Manifest b/games-emulation/atari800/Manifest
index 3d59cbdb2cd2..fa42682836b7 100644
--- a/games-emulation/atari800/Manifest
+++ b/games-emulation/atari800/Manifest
@@ -1,3 +1,4 @@
DIST atari800-7.0.0-src.tgz 1953091 BLAKE2B 0df8b0bfc2277646c093386c0047b2d2229c69daa37eee41f79bfb9a13e354ed31ff8e94a6e7951f078673797165c7de3d73432d7ce266f5d21f2fd6701e97f6 SHA512 3e948b9b8ed93e1ab7cf795a867c30a85161ceff251def4b2d594490fd040477f6326e8f4e0710a6773f3e87f37456e8c609fe52e55ef1f25a6c6078b5713379
DIST atari800-7.1.0-src.tgz 1957342 BLAKE2B b0e5afd9a1dd85fc22926cb8c28c862721cac048a358fc865f94b2791133af3042f76943d4a57215d9dd0ff363f3a3c98e75ab28eced1e5c492ec20d5a35cb77 SHA512 406fca1597703d7f9e2357dfd750fef82ed64155cfc2dd9af082ebcd33f333fc5465ed6766f8d6f265aaf6823e7ced27e81670ffcb3e4389ca2676e4538c2e8e
+DIST atari800-7.1.2-src.tgz 1957587 BLAKE2B 95c0f2871a6654587f79d94d4ce05dffcaa6ed254199deac0096ffcb83fed0d7d5f5db5600cf110fe8942b10fd032ad33faf54de6d269a9509e30c18ceadbf9e SHA512 473e3560e21dec6605d09af1cefd673677e8151bd29e773492627c9a122274c0e44fa73ed01a786f77c242bb4ff3a85e6fc418dcef8f4c3f7b9a7414edf98a66
DIST xf25.zip 188942 BLAKE2B c10b9108eebc571ac334ea6fca76d227e3d2fcde1595e8823a3d178dc31d9efa9b209572ee03875461289093615470192cf5c9a06cf0b4363d097a9eac201db4 SHA512 306612fc2af41ed10d76103af83e141cfd8bd3ba2ea3cbd1d0b81d4d5b0108c06948a5c626648c8a2424536757a42a3f8b9af1fb63fa3c31096447ffed0f9923
diff --git a/games-emulation/atari800/atari800-7.1.2.ebuild b/games-emulation/atari800/atari800-7.1.2.ebuild
new file mode 100644
index 000000000000..35dcc2101b82
--- /dev/null
+++ b/games-emulation/atari800/atari800-7.1.2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit autotools desktop
+
+DESCRIPTION="Emulator of Atari 8-bit computer systems and 5200 game console"
+HOMEPAGE="
+ https://atari800.github.io/
+ https://github.com/atari800/atari800/
+"
+SRC_URI="
+ https://github.com/atari800/atari800/releases/download/ATARI800_${PV//./_}/${P}-src.tgz
+ https://sourceforge.net/projects/atari800/files/ROM/Original%20XL%20ROM/xf25.zip
+"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="download encode-mp3 opengl readline +sdl +sound"
+REQUIRED_USE="
+ encode-mp3? ( sound )
+ opengl? ( sdl )
+"
+
+DEPEND="
+ download? (
+ net-misc/curl
+ )
+ encode-mp3? (
+ media-sound/lame
+ )
+ sdl? (
+ >=media-libs/libsdl2-2.26.0[joystick,opengl?,sound?,video]
+ )
+ !sdl? (
+ sys-libs/ncurses:=
+ )
+ readline? (
+ sys-libs/readline:=
+ )
+ media-libs/libpng:=
+ virtual/zlib:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ app-arch/unzip
+"
+
+src_prepare() {
+ local PATCHES=(
+ # Bug 544608
+ "${FILESDIR}"/atari800-3.1.0-tgetent-detection.patch
+ )
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local video=ncurses
+ local sound=no
+
+ if use sdl; then
+ video=sdl2
+ use sound && sound=sdl2
+ elif use sound; then
+ sound=oss
+ fi
+
+ local myconf=(
+ $(use_enable download)
+ $(use_with opengl)
+ $(use_with readline)
+ $(use_with encode-mp3 mp3)
+ --with-video=${video}
+ --with-sound=${sound}
+ )
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ default
+ insinto "/usr/share/${PN}"
+ doins "${WORKDIR}/"*.ROM
+ insinto /etc
+ newins "${FILESDIR}"/atari800-4.2.0.cfg atari800.cfg
+ newicon data/atari2.svg ${PN}.svg
+ make_desktop_entry ${PN} -n "Atari 800 emulator"
+}
diff --git a/gui-wm/gamescope/gamescope-3.16.25.ebuild b/gui-wm/gamescope/gamescope-3.16.25-r1.ebuild
index c989370b30e7..3563c076beb5 100644
--- a/gui-wm/gamescope/gamescope-3.16.25.ebuild
+++ b/gui-wm/gamescope/gamescope-3.16.25-r1.ebuild
@@ -39,7 +39,7 @@ RDEPEND="
>=dev-libs/libinput-1.14.0:=
>=dev-libs/wayland-1.23.1
gui-libs/libdecor
- gui-libs/wlroots:0.19
+ gui-libs/wlroots:0.19[libinput,X]
<media-libs/libdisplay-info-0.4:=
media-libs/vulkan-loader
sys-apps/hwdata
diff --git a/mail-mta/msmtp/files/msmtp-1.8.31-fix-disable-nls.patch b/mail-mta/msmtp/files/msmtp-1.8.31-fix-disable-nls.patch
deleted file mode 100644
index c52c42af9d0d..000000000000
--- a/mail-mta/msmtp/files/msmtp-1.8.31-fix-disable-nls.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Subject: [PATCH] Fix header encoding when building with --disable-nls.
-
-With disabled NLS, msmtp now assumes that UTF-8 is the current codeset,
-which is a better guess than ASCII, which is what nl_langinfo() returns.
-
-This fixes github issue #203.
----
-URL: https://github.com/marlam/msmtp/commit/c6baa5b39e811ea4459a35ae0de88163f65bf8a2
----
- src/tools.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/tools.c b/src/tools.c
-index b65b4c5..9d78fc8 100644
---- a/src/tools.c
-+++ b/src/tools.c
-@@ -1012,7 +1012,13 @@ char *encode_for_header(const char *s)
- size_t b64_s_len = BASE64_LENGTH(s_len);
- char* encoding =
- #ifdef HAVE_LANGINFO_H
-+ /* With disabled NLS, nl_langinfo() always seems to return
-+ * ANSI_X3.4-1968 (i.e. ASCII). We want to assume UTF-8 instead. */
-+# ifdef ENABLE_NLS
- nl_langinfo(CODESET);
-+# else
-+ "UTF-8";
-+# endif
- #else
- # ifdef W32_NATIVE
- w32_langinfo_codeset();
diff --git a/mail-mta/msmtp/files/msmtp-fix-tests-without-msmtpd.patch b/mail-mta/msmtp/files/msmtp-fix-tests-without-msmtpd.patch
deleted file mode 100644
index a7c5cf17f1d1..000000000000
--- a/mail-mta/msmtp/files/msmtp-fix-tests-without-msmtpd.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-https://github.com/marlam/msmtp/pull/200
-https://bugs.gentoo.org/948087
-
-From fce1dfefd7af8175708deabc3e55f8682d181d22 Mon Sep 17 00:00:00 2001
-From: Gabi Falk <gabifalk@gmx.com>
-Date: Wed, 13 Aug 2025 09:00:00 +0000
-Subject: [PATCH] tests: skip msmtpd-dependent tests if msmtpd is not built
-
-Link: https://bugs.gentoo.org/948087
----
- tests/test-auth-plain.sh | 8 +++++++-
- tests/test-header-handling.sh | 8 +++++++-
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/tests/test-auth-plain.sh b/tests/test-auth-plain.sh
-index 27d406e..a670dcd 100755
---- a/tests/test-auth-plain.sh
-+++ b/tests/test-auth-plain.sh
-@@ -2,9 +2,15 @@
-
- set -e
-
-+msmtpd=../src/msmtpd
-+if [ ! -x $msmtpd ]; then
-+ echo 'msmtpd is not built'
-+ exit 77
-+fi
-+
- # Start an msmtpd with PLAIN authentication
- echo "Starting msmtpd"
--../src/msmtpd --interface=::1 --port=12345 --auth='testuser,echo testpassword' \
-+$msmtpd --interface=::1 --port=12345 --auth='testuser,echo testpassword' \
- --command='cat > out-auth-plain-mail.txt; echo > out-auth-plain-rcpt.txt' &
- MSMTPD_PID=$!
- trap "kill $MSMTPD_PID" EXIT
-diff --git a/tests/test-header-handling.sh b/tests/test-header-handling.sh
-index e58cde4..9109bd3 100755
---- a/tests/test-header-handling.sh
-+++ b/tests/test-header-handling.sh
-@@ -2,9 +2,15 @@
-
- set -e
-
-+msmtpd=../src/msmtpd
-+if [ ! -x $msmtpd ]; then
-+ echo 'msmtpd is not built'
-+ exit 77
-+fi
-+
- # Start an msmtpd that dumps the mail and the recipient lists so we can check them
- echo "Starting msmtpd"
--../src/msmtpd --interface=::1 --port=12346 \
-+$msmtpd --interface=::1 --port=12346 \
- --command='cat > out-header-handling-mail.txt; echo > out-header-handling-rcpt.txt' &
- MSMTPD_PID=$!
- trap "kill $MSMTPD_PID" EXIT
diff --git a/media-libs/libxmp/Manifest b/media-libs/libxmp/Manifest
index 9a485209c401..3879cdf4d90d 100644
--- a/media-libs/libxmp/Manifest
+++ b/media-libs/libxmp/Manifest
@@ -1,2 +1,2 @@
DIST libxmp-4.6.3.tar.gz 805616 BLAKE2B 5cf99574d990d48f069f1ebb3f06d6b0658f41adb5f032b11c7d8849f4a8ad08597e3881d8804c10ef895c4620c329bf3369a2f7f84b553f5350407c520e06c9 SHA512 fc87fafa392ebd07f6f9823801cdf296d5f5a6216e15a437d0539bc4ebf0f963bb8d868c73499d1ece33a238b71a8da6da303be23d409975a62b166225853bec
-DIST libxmp-4.7.1.tar.gz 857457 BLAKE2B 967dd399a308e28f9286a929b0230de7e5389e30c2245adf1efecbe817593a35d6a0fc9a06b0f571cf487902272c8017ff4e92f35ac3ff8f7c3b41d5b1abbf18 SHA512 a677802b36c1e4c7c43d134ea0bbbb0ca28726dec8d93a6a4cf9bde22bdba2c6db3deba20eff9549f47804f5108824be335da9e3049ae23e61ec629802d155b8
+DIST libxmp-4.7.2.tar.gz 857784 BLAKE2B 0c519d50791a396069aa9e38463ebbdee6bb6119ae7c77db2d9b702c01c5fa690f8858710d362d2d2097d661cd62e4517160df55b89d2fe128338b37a384b759 SHA512 f05d46fcb7ba8060f44964a366487b191ff6a4c379ecc3cb7b34977bfec803417ba6ef7eb1d08fb23bde59d5b10c898b4908093583a470cf3f0e5ec595d9f57a
diff --git a/media-libs/libxmp/libxmp-4.7.1.ebuild b/media-libs/libxmp/libxmp-4.7.2.ebuild
index c7c43b0ff092..c7c43b0ff092 100644
--- a/media-libs/libxmp/libxmp-4.7.1.ebuild
+++ b/media-libs/libxmp/libxmp-4.7.2.ebuild
diff --git a/media-plugins/live/Manifest b/media-plugins/live/Manifest
index 23ceebf7fcd2..b360a90295ca 100644
--- a/media-plugins/live/Manifest
+++ b/media-plugins/live/Manifest
@@ -1,4 +1,2 @@
-DIST live.2024.10.31.tar.gz 696459 BLAKE2B 627f7ed37d5873f7464958e6a82068b132d1dc151686ee373ad92600db77af6d728c5e7cd299288f6ba00da48a4397afaff7184888746daac973b7af871c059e SHA512 88325e4b87f1ed8de16af08489a1b856e0526c627d5f590ed7060d8899a91ec9d9947a5fb0c4714a3acb5f5f37a2eb5c63f59739a75dcbea70a79263f7eb56aa
-DIST live.2025.07.19.tar.gz 696976 BLAKE2B 14c7da61c68c749340383a946e4cb92d20a14b29a8363ea3d5d8d0e6b3a47232d48ed17d50424fc3b51aecfa27ef313bd5557ee85c7453a4d7daa84fbc0d0794 SHA512 6acc02b22a65c24c07e744f9d3069b78199677d903567649a034408ce785a2253c789a2868e2af30eda0fadb9e9a224fddbbefe5e626277f7df40a26c9230a1d
-DIST live.2025.10.13.tar.gz 696849 BLAKE2B 917f95a644dc1e610eaff922acf14157b1f56b620202860d22ad29cd213c3ccea2f4dd86707dd46496954dd1c66386389635d26fa27233d76fc6ad8f83c08b8c SHA512 5854825e5c983ef29937cfd965941d5525a902d7bbdb4952f679d3b55cb253306b6fbcbc2a663c6f1e96cabbdab16676da0ce74a1f62c69e99f8e0e140ad2d33
DIST live.2025.11.06.tar.gz 696989 BLAKE2B 34a5ea2d5c42684e9c7b46cf5bc3cf78c6fbb185cc18034df161339a74356490156df0f9a0b8414f73d498eb0d78e430a925afd51dcc60c0eeca6800354318a1 SHA512 cbe689f904d7c16cb7926a41a1e4768adcd66cc17b950e4a4b08288a3f443c6bbc1ddd9ec7a08290bdfa66021348f8953c6e1f1253d73fe755fa6d846d104587
+DIST live.2026.07.23.tar.gz 693926 BLAKE2B 3c57074eb3d0870d9599ea3fbe37983cb23d6f6a97a095e55ead35d998520e3a1ad80c3f39ef5d7de5c867b2d660cb405ff5698f65a211663e9f1edf7fb6613e SHA512 a0b70009fd9f4c202cfecb2eb7b019c69c0603c1b11c9879649cf71138f01f241acf2fe25dc3e940909d3418aea513f31434d5c9cf623b9dba53f2fdc28086eb
diff --git a/media-plugins/live/live-2024.10.31.ebuild b/media-plugins/live/live-2024.10.31.ebuild
deleted file mode 100644
index 3d0a7f5df28a..000000000000
--- a/media-plugins/live/live-2024.10.31.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="Libraries for standards-based RTP/RTCP/RTSP multimedia streaming"
-HOMEPAGE="http://www.live555.com/"
-# bug #719336
-SRC_URI="
- http://www.live555.com/liveMedia/public/${P/-/.}.tar.gz
- https://download.videolan.org/contrib/live555/${P/-/.}.tar.gz
-"
-S="${WORKDIR}/live"
-
-LICENSE="LGPL-2.1"
-# follow versioning in config.linux-with-shared-libraries
-# SLOT="0/${libliveMedia_VERSION_CURRENT}.${libBasicUsageEnvironment_VERSION_CURRENT}.${libUsageEnvironment_VERSION_CURRENT}.${libgroupsock_VERSION_CURRENT}"
-SLOT="0/115.3.5.32"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
-
-IUSE="ssl tools"
-
-# no tests
-RESTRICT="test"
-
-DEPEND="ssl? ( dev-libs/openssl:= )"
-RDEPEND="${DEPEND}"
-
-src_configure() {
- # sanity check subslot to kick would be drive by bumpers
- local detected_abi
- detected_abi="$(awk -F'=' '$1 ~ ".*_VERSION_CURRENT" {printf("%s.",$2)}' config.linux-with-shared-libraries)"
- detected_abi="${detected_abi%.}"
- if [[ "${SLOT}" != "0/${detected_abi}" ]]; then
- die "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}."
- fi
-
- # This ebuild uses its own build system
- # We don't want to call ./configure or anything here.
- # The only thing we can do is honour the user's SSL preference.
- if ! use ssl ; then
- einfo "Disabling SSL support"
- append-cppflags -DNO_OPENSSL=1
- sed -i -e 's|-lssl -lcrypto||' config.linux-with-shared-libraries || die
- fi
-
- if ! use tools ; then
- einfo "Disabling tools"
- # Remove testprogs build+install
- # http://www.live555.com/liveMedia/#testProgs
- sed -i -e '/subdirs/ { s/testProgs// } ' genMakefiles || die
- sed -i -e '/TESTPROGS_DIR/d' Makefile.tail || die
- fi
-
- # Bug 718912
- tc-export CC CXX
-
- # ODR violations bug #940324
- filter-lto
-
- # BasicTaskScheduler.cpp:191:40: error: 'struct std::atomic_flag' has no member named 'test'
- append-cxxflags -std=c++20
-
- # And defer to the scripts that upstream provide.
- ./genMakefiles linux-with-shared-libraries || die
-}
-
-src_install() {
- # Makefiles don't create directories before installing in them
- mkdir -p "${ED}/usr/$(get_libdir)" || die
- emake PREFIX="${ED}/usr" LIBDIR="${ED}/usr/$(get_libdir)" install
-
- einstalldocs
-}
diff --git a/media-plugins/live/live-2025.10.13.ebuild b/media-plugins/live/live-2025.10.13.ebuild
deleted file mode 100644
index 6cb6e31d46b0..000000000000
--- a/media-plugins/live/live-2025.10.13.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic toolchain-funcs
-
-DESCRIPTION="Libraries for standards-based RTP/RTCP/RTSP multimedia streaming"
-HOMEPAGE="http://www.live555.com/"
-# bug #719336
-SRC_URI="
- http://www.live555.com/liveMedia/public/${P/-/.}.tar.gz
- https://download.videolan.org/contrib/live555/${P/-/.}.tar.gz
-"
-S="${WORKDIR}/live"
-
-LICENSE="LGPL-2.1"
-# follow versioning in config.linux-with-shared-libraries
-# SLOT="0/${libliveMedia_VERSION_CURRENT}.${libBasicUsageEnvironment_VERSION_CURRENT}.${libUsageEnvironment_VERSION_CURRENT}.${libgroupsock_VERSION_CURRENT}"
-SLOT="0/117.3.5.32"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-IUSE="ssl tools"
-
-# no tests
-RESTRICT="test"
-
-DEPEND="ssl? ( dev-libs/openssl:= )"
-RDEPEND="${DEPEND}"
-
-src_configure() {
- # sanity check subslot to kick would be drive by bumpers
- local detected_abi
- detected_abi="$(awk -F'=' '$1 ~ ".*_VERSION_CURRENT" {printf("%s.",$2)}' config.linux-with-shared-libraries)"
- detected_abi="${detected_abi%.}"
- if [[ "${SLOT}" != "0/${detected_abi}" ]]; then
- die "SLOT ${SLOT} doesn't match upstream specified ABI ${detected_abi}."
- fi
-
- # This ebuild uses its own build system
- # We don't want to call ./configure or anything here.
- # The only thing we can do is honour the user's SSL preference.
- if ! use ssl ; then
- einfo "Disabling SSL support"
- append-cppflags -DNO_OPENSSL=1
- sed -i -e 's|-lssl -lcrypto||' config.linux-with-shared-libraries || die
- fi
-
- if ! use tools ; then
- einfo "Disabling tools"
- # Remove testprogs build+install
- # http://www.live555.com/liveMedia/#testProgs
- sed -i -e '/subdirs/ { s/testProgs// } ' genMakefiles || die
- sed -i -e '/TESTPROGS_DIR/d' Makefile.tail || die
- fi
-
- # Bug 718912
- tc-export CC CXX
-
- # ODR violations bug #940324
- filter-lto
-
- # BasicTaskScheduler.cpp:191:40: error: 'struct std::atomic_flag' has no member named 'test'
- append-cxxflags -std=c++20
-
- # And defer to the scripts that upstream provide.
- ./genMakefiles linux-with-shared-libraries || die
-}
-
-src_install() {
- # Makefiles don't create directories before installing in them
- mkdir -p "${ED}/usr/$(get_libdir)" || die
- emake PREFIX="${ED}/usr" LIBDIR="${ED}/usr/$(get_libdir)" install
-
- einstalldocs
-}
diff --git a/media-plugins/live/live-2025.07.19.ebuild b/media-plugins/live/live-2026.07.23.ebuild
index ed8f9ac642a7..b8ed14a06884 100644
--- a/media-plugins/live/live-2025.07.19.ebuild
+++ b/media-plugins/live/live-2026.07.23.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=9
inherit flag-o-matic toolchain-funcs
@@ -9,7 +9,7 @@ DESCRIPTION="Libraries for standards-based RTP/RTCP/RTSP multimedia streaming"
HOMEPAGE="http://www.live555.com/"
# bug #719336
SRC_URI="
- http://www.live555.com/liveMedia/public/${P/-/.}.tar.gz
+ https://download.live555.com/${P/-/.}.tar.gz
https://download.videolan.org/contrib/live555/${P/-/.}.tar.gz
"
S="${WORKDIR}/live"
@@ -17,8 +17,8 @@ S="${WORKDIR}/live"
LICENSE="LGPL-2.1"
# follow versioning in config.linux-with-shared-libraries
# SLOT="0/${libliveMedia_VERSION_CURRENT}.${libBasicUsageEnvironment_VERSION_CURRENT}.${libUsageEnvironment_VERSION_CURRENT}.${libgroupsock_VERSION_CURRENT}"
-SLOT="0/116.3.5.32"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
+SLOT="0/120.3.5.33"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="ssl tools"
diff --git a/media-plugins/live/metadata.xml b/media-plugins/live/metadata.xml
index 741e30d9e1d1..9cec757d02ae 100644
--- a/media-plugins/live/metadata.xml
+++ b/media-plugins/live/metadata.xml
@@ -8,7 +8,7 @@
<flag name="tools">Build test tools</flag>
</use>
<upstream>
- <changelog>http://www.live555.com/liveMedia/public/changelog.txt</changelog>
+ <changelog>https://download.live555.com/changelog.txt</changelog>
<remote-id type="cpe">cpe:/a:live555:streaming_media</remote-id>
</upstream>
<origin>baldeagleos-repo</origin>
diff --git a/media-radio/svxlink/Manifest b/media-radio/svxlink/Manifest
index 277b4c1bdd14..7844e32f7f32 100644
--- a/media-radio/svxlink/Manifest
+++ b/media-radio/svxlink/Manifest
@@ -1,2 +1,2 @@
DIST svxlink-25.05.1_p20250929.tgz 19320626 BLAKE2B 6edca5e57e2667c16981b349a393e0391a1862c09c1a294bcc95b43e8c9c5df7224d66c7114d023342645e6a473a340f1b8e3993533606e1fe47b22532a00cb2 SHA512 c5bef7d38fbc38e9abae5cf8feea1f67f60c48336ddafbace1e6e1325e9b182064006d4fbd4de1db9cdbf1d1601841d881d07418e32f85bd03e87bc95909e266
-DIST svxlink-26.05.tar.gz 2069313 BLAKE2B 8bf2e3f851030859d5f5af8ad16d95b40a097ea755e701d27aa4b44eaed4bce39375b67cb09fe0b15e263518fc77e8ce37ed3a827142e5abf6541e415f10fffa SHA512 e0b8ef8237ab08220026da835e4d153e7fcd3090e7933897c20f5dce4bfdd6ea4bc59d71c4644c44d240a88129755cb27bad9aee153abdd6d249e0af4f24dcfb
+DIST svxlink-26.05.1.tar.gz 2072886 BLAKE2B d740009f3164de198b6589db54a309fdae22fab6bc3682487244e1b57d773a2ae77968271cfa0caf3fde4b02385f43b07104b024d4a7cc8b7c64ac8347b7f506 SHA512 e16c808fdd9fc7346eb6250ab3f6954f76d0bd62c00efb3ae503e46efb8b80a58cdbff3e35576900bac6c135dad88b9067dac2c5a09ec2d6ec27589e639600f7
diff --git a/media-radio/svxlink/svxlink-26.05.ebuild b/media-radio/svxlink/svxlink-26.05.1.ebuild
index 323e4afa9cef..323e4afa9cef 100644
--- a/media-radio/svxlink/svxlink-26.05.ebuild
+++ b/media-radio/svxlink/svxlink-26.05.1.ebuild
diff --git a/media-sound/musescore/musescore-4.7.4-r1.ebuild b/media-sound/musescore/musescore-4.7.4-r1.ebuild
index 076b52b140fe..1de52529f2de 100644
--- a/media-sound/musescore/musescore-4.7.4-r1.ebuild
+++ b/media-sound/musescore/musescore-4.7.4-r1.ebuild
@@ -17,7 +17,7 @@ else
SRC_URI="
https://github.com/musescore/MuseScore/archive/v${PV}.tar.gz -> ${P}.tar.gz
"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="amd64 ~arm64 ~x86"
S="${WORKDIR}/MuseScore-${PV}"
fi
diff --git a/media-sound/strawberry/Manifest b/media-sound/strawberry/Manifest
index 442332bc7e2d..b0871c1914d8 100644
--- a/media-sound/strawberry/Manifest
+++ b/media-sound/strawberry/Manifest
@@ -1,2 +1,2 @@
DIST strawberry-1.2.19.tar.xz 11542036 BLAKE2B d76a956496bbe56d888bee7f08efd3a0d25e54ec8db9ed3c2fe9e5551e1fc0661f3d2b9e5a6665be17d34aa7e563a623c81c56eae48857b2164ec2325cacddb2 SHA512 e5da4868115c4021c624b66c946243564ebf0fedb321939097c7da7e69b3ff772bd2e7f05fbcc541773bf89d0ce70b7b4d0415565d353c1ed20a7c56a033cda2
-DIST strawberry-1.2.23.tar.xz 11678824 BLAKE2B 019a14c0f102145b4cdb26d32cebb0722168dbdb37aa8cd417b9a68e1e54913e8c199e3868cce4ca86f1413667f968ddcb8c5cd1971ef1f56e45b9ab40e3fedf SHA512 577fae2bcb418f084fee34e70ceb1bb2a9b742014fdba9bea1e0715df37d4b1a92086467b49fe738ff9d63f5a4976e197c53e285762cfce53d2e4ec41dbd65d9
+DIST strawberry-1.2.25.tar.xz 11691564 BLAKE2B a1f70cee07e689f83c352cc0f1a0477e52de9393e1bbbca62892b139754ff87d95932a3b298d4efa520768103c6897cda4dd6ec17f0f0b98434fb53bc7c04733 SHA512 42da776b5cd6077821ca135729fc616e0d23f3164325ed4e3d596ab0be3c76b84c98657a1017365074aed9480e2fd60055a6dd644e751b8232443d75689cb104
diff --git a/media-sound/strawberry/strawberry-1.2.23.ebuild b/media-sound/strawberry/strawberry-1.2.25.ebuild
index 1a35d3538e18..8961b775fea6 100644
--- a/media-sound/strawberry/strawberry-1.2.23.ebuild
+++ b/media-sound/strawberry/strawberry-1.2.25.ebuild
@@ -87,8 +87,9 @@ src_configure() {
-DENABLE_DEBUG_OUTPUT="$(usex debug)"
-DENABLE_DISCORD_RPC="$(usex discord)"
-DENABLE_KGLOBALACCEL_GLOBALSHORTCUTS=$(usex kde)
- -DENABLE_SONGFINGERPRINTING="$(usex chromaprint)"
- -DENABLE_MUSICBRAINZ="$(usex chromaprint)"
+ -DENABLE_CHROMAPRINT="$(usex chromaprint)"
+ -DENABLE_SONGTRACKING="$(usex chromaprint)"
+ -DENABLE_TAGFETCHER="$(usex chromaprint)"
-DENABLE_X11_GLOBALSHORTCUTS="$(usex X)"
-DENABLE_AUDIOCD="$(usex cdda)"
-DENABLE_MTP="$(usex mtp)"
diff --git a/media-sound/strawberry/strawberry-9999.ebuild b/media-sound/strawberry/strawberry-9999.ebuild
index 1a35d3538e18..8961b775fea6 100644
--- a/media-sound/strawberry/strawberry-9999.ebuild
+++ b/media-sound/strawberry/strawberry-9999.ebuild
@@ -87,8 +87,9 @@ src_configure() {
-DENABLE_DEBUG_OUTPUT="$(usex debug)"
-DENABLE_DISCORD_RPC="$(usex discord)"
-DENABLE_KGLOBALACCEL_GLOBALSHORTCUTS=$(usex kde)
- -DENABLE_SONGFINGERPRINTING="$(usex chromaprint)"
- -DENABLE_MUSICBRAINZ="$(usex chromaprint)"
+ -DENABLE_CHROMAPRINT="$(usex chromaprint)"
+ -DENABLE_SONGTRACKING="$(usex chromaprint)"
+ -DENABLE_TAGFETCHER="$(usex chromaprint)"
-DENABLE_X11_GLOBALSHORTCUTS="$(usex X)"
-DENABLE_AUDIOCD="$(usex cdda)"
-DENABLE_MTP="$(usex mtp)"
diff --git a/net-analyzer/icinga2/files/icinga2-boost-1.89.patch b/net-analyzer/icinga2/files/icinga2-boost-1.89.patch
deleted file mode 100644
index 98d51bdf0f22..000000000000
--- a/net-analyzer/icinga2/files/icinga2-boost-1.89.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 76fa0d9e8054f405dc3d1e39a4b48f21e86afdf0 Mon Sep 17 00:00:00 2001
-From: "Alexander A. Klimov" <alexander.klimov@icinga.com>
-Date: Thu, 14 Aug 2025 11:05:37 +0200
-Subject: [PATCH] Boost: don't require "system" component
-
-It's vanished in v1.89.
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 86abc77d661..1a087b8ed2f 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -172,7 +172,7 @@ else()
- set(LOGROTATE_CREATE "\n\tcreate 644 ${ICINGA2_USER} ${ICINGA2_GROUP}")
- endif()
-
--find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS coroutine context date_time filesystem iostreams thread system program_options regex REQUIRED)
-+find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS coroutine context date_time filesystem iostreams thread program_options regex REQUIRED)
-
- # Boost.Coroutine2 (the successor of Boost.Coroutine)
- # (1) doesn't even exist in old Boost versions and
diff --git a/net-dns/cares-tools/Manifest b/net-dns/cares-tools/Manifest
index 9df8691db2e8..92114223a095 100644
--- a/net-dns/cares-tools/Manifest
+++ b/net-dns/cares-tools/Manifest
@@ -1 +1,2 @@
DIST cares-tools-0.3.tar.bz2 11767 BLAKE2B 9d2f782525581259a6ff13e4830249ca4d139e62730348f23a8f702de4bf3ee0dfdd2896b9a4c23e88bd0871d86c7bf19972044066248dc9a271a570bf033b7c SHA512 c19994be79450b670793c52a7f54af9a8cafeebb98460bda3d2ec98c8326fce39dd799c5c0fd2644afc2dc35323872db387b6d4373d0669d19c122ccaf19a65f
+DIST cares-tools-0.4.tar.bz2 12695 BLAKE2B c99831527a5e041bb680cebc45574b5ce82106f5e7f1e33054504977c7a01133382cab9af72568c0c57187e747363658186339c648c80823e7cb40b0645a7fae SHA512 389b174438e38893014075a393f0935af1f5f25b89b60c866768a4a65dffce137cfbf64dcd895b845b40d64966b519761d943f1e59b6537564080d950df8c95c
diff --git a/net-dns/cares-tools/cares-tools-0.4.ebuild b/net-dns/cares-tools/cares-tools-0.4.ebuild
new file mode 100644
index 000000000000..268ec6a47939
--- /dev/null
+++ b/net-dns/cares-tools/cares-tools-0.4.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+inherit toolchain-funcs
+
+DESCRIPTION="c-ares tools: host, nslookup"
+HOMEPAGE="https://gitlab.com/grobian/cares-tools"
+SRC_URI="https://gitlab.com/grobian/${PN}/-/archive/${PV}/${P}.tar.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64-macos ~x64-macos ~x64-solaris"
+
+DEPEND="
+ net-dns/c-ares
+ sys-libs/readline
+"
+RDEPEND="${DEPEND}
+ !net-dns/bind-tools
+ !net-dns/bind
+"
+
+src_compile() {
+ tc-export CC
+ default
+}
+
+src_install() {
+ exeinto /usr/bin
+ doexe host nslookup
+}
diff --git a/net-im/discord/Manifest b/net-im/discord/Manifest
index 931275823d9a..ab0534afe42c 100644
--- a/net-im/discord/Manifest
+++ b/net-im/discord/Manifest
@@ -1,14 +1,3 @@
-DIST discord-0.0.135.tar.gz 107861168 BLAKE2B 59f7a303c45c137cdf870abf8cf421c39ced29b55cd3b8703f2d9d253857c305cd579380cc4f7cba2cf95ac2f64524a9dc53c0fcf6eefe4c7805d58b8f1dac59 SHA512 7be159b69fe322939fccfbe82c2c15b0dffb2ee2106a19824d7cc1ccb6b5f87b90446ba1915dfb81bbc59dab56561c104645d969acca5e9a95ac5b4c7afbd2ba
-DIST discord-1.0.146-discord_desktop_core.distro 525075 BLAKE2B 26670215bc3f8dc2119bee6e2cab2c4d683a0e9a3b2c1a625679d36acc56e07d7ee21c29014cceed7b7715d7de22ed62e542ae50597f0027fc0f64312f30f4c1 SHA512 88024b0faf4e4db8e283af9081b88072ec8ab908e4b72a7c0bab8ae7fcb3c5ae09b2b3e34af0b35429b51f46be359dc39983191e376a762c6c4831d4918a9792
-DIST discord-1.0.146-discord_erlpack.distro 2067901 BLAKE2B 1121dbd1d74abb61824e3f44fa6812ecd7ae6c2f97a83238c0775f49ff32ada41828825c0fa1f6b30ac1f228d3440edc3c14f86b204a35837da8618dd5e59521 SHA512 755e37330fc16d99f630ed0036eaabf83b4f137123c72eae35fe47996d243ceaed1ddc6f1891efaeffb3f28fa4c0eb9b2be76308df50d98a97be24c37f5e41f0
-DIST discord-1.0.146-discord_game_utils.distro 3172533 BLAKE2B d820da64a700f033c3e318bfa8a87d38043eb7ecde4bce0f14f7e2d880707ebac401062ee60ec1ecaa80ceb9b7fa768fbf0081576de1e237fb775282ffd5ec53 SHA512 f23b41b7e55c6611a77767c4ccd7010bfc5a901d241ac91826b191ca7d894e5960eda1afde05a0b52564b555006ce762620b08c9378eff733a0b89c5fd49a3e4
-DIST discord-1.0.146-discord_krisp.distro 36158173 BLAKE2B 332f4c5b5d10e695cb6f944ba43904f0214389cb7c4fff3080a84552b4adc98169de677aacdb71411dacef6a08759bb60ff205e6771d7bb9e0970cbfc37f5573 SHA512 7283eb04ec779a5f679e7c90f793c5d9bb2a6a44507f966156d831f0013ebcad507fbcc07d037719740861f3e23f95a532b5c9d0da707932a0da9ffd7e17349d
-DIST discord-1.0.146-discord_rpc.distro 30384 BLAKE2B eb7178155d05bf26a939877c35cbfd0520159bdc68eb3003859a12b63b5d8446f01562c818c832db96c988c35b7af65f42a6d0581781b5af05fc39e5ae6cac1e SHA512 6e75733d93b41b4a3d59749ce5331b9da4d6fb5fad1266bf639a948cc497c05b03ea3f15bfd6384e819730bd220dbf34dbb967c90f9683bb2529f73a4ed5897b
-DIST discord-1.0.146-discord_spellcheck.distro 9889890 BLAKE2B 4503e444095421012d83281f2586c0fdc0ac3efe700e6bfd76f9f796820f9e711da472031aa2fac6712262ade16811a4be3a668961fd9d7505caa6a4944bf317 SHA512 aee5b9cd718d803618e6f83f4f004853f283e89c5c8bc87b61b85189787aed0c710bba2b9ab81e148e18c685e5a1bcbe18554cc67f6123be360c3299349d0edc
-DIST discord-1.0.146-discord_utils.distro 4597694 BLAKE2B aa7009ba3466cca3ac339708fdf78554320baadc70b3cd9a930d0be20188c81053f8458d7c7ab02796c25391189b1d451107a299a0512fb1d2c9a06347fdc02a SHA512 e88e7ce27b6d406d1fe631964b772067bc52808a74ecb57a96b5585199ec2aceab405321f9d9faf9199870fd83823afc6c5402eb85c9ed41826cedb60d8925d9
-DIST discord-1.0.146-discord_voice.distro 32845629 BLAKE2B 07a376e84e0bb552507a55b704ca1423fba5c24a8b0c06f4114df0df01ff0dadf0256e11b53301c00cc2de728e21762b646e0096ee2f52fb58846333571d6149 SHA512 fc5dd9840f0b13bf8b66dc4901833c701293a914c54765c04c18414755f237284e93e1a7bf2660120507263500f9ab385c1c9966fe0f33e368b3fae9d695b432
-DIST discord-1.0.146-discord_zstd.distro 328071 BLAKE2B 7e5cd3914da41834a0b01466602e9e421600a9cf7c2c3c33c3405c06c90fe3be1b58cfc27c02e7e97bee0e7dd96657fdfe4326073534e94e733b71604e03d828 SHA512 b7a676bd7e7cb1a9d57aaad1c828499f7ecdc0360bb982a3138181bb29710354509c50998344004c73ca2b87f7866a603109c2cb79b848b3240fa08a35578b16
-DIST discord-1.0.146.distro 91381828 BLAKE2B 4dd4a2b2751a0adec640a29a23a12999ae5ec108e089671dba532d4b203ed63d7ec5e359277effa063d7718ac1bf032c5d1b5bdc7ccb92b7b48b25639f95fdf1 SHA512 dca9bbf55afcb1425af7bd0fc4d891fe0cc37859436a8b2a1ae9d29689d72e574dc2f974d468a86527c0420847fd27af5517da7b02075ee2eebe8bd2d43a7d09
DIST discord-1.0.147-discord_desktop_core.distro 525093 BLAKE2B e60942556c96bb40802a5955a4ed4e7d1510606839a9e870a6f7117569a2f4f93432515742dd0751312f644e9d9140e064dec61653ddd4ac849b71dbe26128a1 SHA512 0a0c02df8fd04e6671f391b052c7227b29aa805afd86688d4c435b4b7b6f6d3b58669c205f37f84a8057074e976fea449d8fb17f88011e370a5eb7058215a892
DIST discord-1.0.147-discord_erlpack.distro 2065488 BLAKE2B e15d3dd989d4d0c45e2d89f1fca8eb3a1941270967f949071fb39b10288478ce0778b2d2f55c409969ae7035b4674a7d0f877cfdd7518fccd71a079d2ca76b76 SHA512 798c6cb73018b4cec6ff1c94259be3d56b3051f3daaea6cd5fee26d2fb55dee109cafd978b33d2b54f260d6db0ba0876501d83e342e135b5ebfb05f7d744a696
DIST discord-1.0.147-discord_game_utils.distro 3172405 BLAKE2B 1556e8434e0af0a68a997ecf2cb343318fb650111b338d5b7cc3e453b3fd6577d8c5217a933729edb3ac5915b11d27f5a994ccfd8e7af3d241dbe5a4d3417bac SHA512 c027fe9cf7e60c0272a719ae56eb14bf2ceafb6d012fecf521750a5d8608668ae422b085e621458a0c7dde7cf75bf7a705052be4cee39a52cb21b8081d87ea6a
@@ -19,4 +8,14 @@ DIST discord-1.0.147-discord_utils.distro 4597800 BLAKE2B c23c6bf4be84ba72df81f8
DIST discord-1.0.147-discord_voice.distro 32863361 BLAKE2B 0c9600f405401b0c7c1e718ce909fa1546456f7e1ec7032fdaad9c64b2126c93bfe09624120e959e0022c580253e77a6feb177f2a4f9e89026328dfd0905fbca SHA512 e561cf39de736024e9ada0f9a358b17b351e9a86fec023d08b7cef0b105739d33e040892127c25009f7ad27b14aaa4fcdc3b5866ef0b3ccd71d2b31c58dc63d4
DIST discord-1.0.147-discord_zstd.distro 328096 BLAKE2B fee95e0e1b9041844024460ae6dba19f89f823bfc8edb42fe492c0cc9b377d5fd1bcde810a71f7170810dd63e5e33985eeb5b81542adb174e644c3c55980854a SHA512 ff520ab95719fafb3c38d7592152c2914ae8b20245ad3bf58a7fe4b2afa06c824f0948954581e02afd9569db6669a0d93f430a6032ca62d8e5e7dbb46cb3099c
DIST discord-1.0.147.distro 91387601 BLAKE2B 3648418ca590cf5e3fe51ef06960e90eb69ac4c9530b8120a56111ec60629d1b619eddf705872b258ff65bd9ffb2c8a4c0511fc19bd635b01f927e8ffc2cb5f2 SHA512 434f927e1f259adebbf7988a4c42a7eb6b5a4a271f0fa30ee13eaf234f83ed655a92edf182a17d8684f28e3d57beafd9b4bdf1bcaa755811f304e4689e582f6a
+DIST discord-1.0.150-discord_desktop_core.distro 525281 BLAKE2B 82ea2921c9a64fd0aa7d80eca4208372598350a67ca0b38869c532d100d7cd5430a1c226c44c380f860ba3c50d631e01c71b1aaaa9527602ae4b6396653d260b SHA512 a96fbea3946631a63210812bb67e9921fdfc2c415e120e1919c1ec4880187b6cd9433668c5ca5fdbbfcc1c23c6a759995d734f0e9096baed4dea5da8eac9a536
+DIST discord-1.0.150-discord_erlpack.distro 2063817 BLAKE2B 75c0202bff58b42ed1f2a73d3b46433959f5251165362cf4819efe420ee098457a961fbc7d929842ceb42e4fb1e2b72ee1dbe6791bb8969c8d84c12bb09a58bf SHA512 621291c04f248d69e9ae0022d84e6903b375e75598ea3198f787c94fd4efe1b944df42a9b8a6974ef5cdc18de3f7db03da26c73a7bf176f2d3524d6a298e3ea9
+DIST discord-1.0.150-discord_game_utils.distro 3171493 BLAKE2B 8d04330ec0582c1e83524a47b55cccdc1a8de42d1c54b253da52590cf625a2768d9181e2f3d28a683127124330023aaf192bda495a796ce7cbf56da5e3d02eb8 SHA512 c92c12100a5181309503c1ba2ffd41a9e9287b21645d86119ef823f1192958ee6cfa6fcce657647b8cfdc65cad8b767cce53cb3300c996875343fe2c1d1faa14
+DIST discord-1.0.150-discord_krisp.distro 36151342 BLAKE2B 362c7bbc0c0328022494745125505e371faf848e143da18bee063211429428e7fb663251a97463974f350c91254efebd37be0a5d407b9c55c4485c04dd2cb876 SHA512 0464dada650407f44e7d3fd378e2fee36496dc898f25e2e486bb993d01afbc5233228b61ffa76a68ededba40887c91938d06c149280ca56e6c58790838d3a8e2
+DIST discord-1.0.150-discord_rpc.distro 30367 BLAKE2B 8dffdea4c750fb48611d5ac782bfd92795b040c5c1fdf6a350026dc5b46481f872cf9f5ad45613054c36c8799f703767f5dd1bb2dedb03e6e223e0aa985fde37 SHA512 75fb9521399db1ffac32b97baa6ed09055b243a83a2b83864f8ba52060cc204b308305b7d917d3e2c78f7aaeaeed2ea23b927cc34d973446907ed4f403dbd75f
+DIST discord-1.0.150-discord_spellcheck.distro 9902947 BLAKE2B c010f7e7e968be02deafcda3bcafd19336cedd2e88a23e8e3434d86bb053cf5238341439166d44574c587ac137b17f0467747f93a1445b46dea84c6cfcd1d936 SHA512 ce8bf2acba824bb3bd400b13744498b65e295fc4dd586a7306ddcd53e41c8b14435d4ca0319bc956868a1fbd6b7ecf062379ba925a2a0f356b7e13e11159a512
+DIST discord-1.0.150-discord_utils.distro 4597651 BLAKE2B f028824c2733562c5777bc4eccb2755fb31653c66d4a0966abcd4d8fe974bdf6db209a646a890af03daa7bd27eed9afe044d76956e977964d656b018d3880f6a SHA512 ceb6589cd74c06766d26311422d1522f88dbcb569d7c600c0d1e915404f19bf8d35c310d6c6aa1813477809e0de21c0fbc7a4a74eaafd31b2e50e16cded8fdb7
+DIST discord-1.0.150-discord_voice.distro 32831145 BLAKE2B 027f04683a1b5b07cca78eb07a35a41ef6c9df43b6c5c673a8bb6e15f8d22b2e774c65ef4d49d0e10ed682df6c6a3834514aa3ad9f3d057174634c9825bdd04c SHA512 afa90192782ff0f7a03d9b0f0e3a53258ef7bb632ec991513c349d6b859cf26264f6cd1b9d54a96e9bc91afe1669bd849752aec22b5010c92cda0ef59e513ddd
+DIST discord-1.0.150-discord_zstd.distro 328092 BLAKE2B 8c815df9894e10d2bd8ec7f4006a811d74fe863ffb02e2c5547e18d9fa1f47395b127ff5e1c9af81b384621459dcefb15eb0cab99671175e8ade9ff30a508b18 SHA512 a33345164429656bbcc28c48b6d82bf39ef622753686447199661ae2cb8a11780080db02a0a20d838a2dfb2625e4599478f8b16ea120c3ce250193f6133effd5
+DIST discord-1.0.150.distro 91367262 BLAKE2B 41a49c6b3df582e290a73ac71b5869caf1a75c8f9d4ec0e70b09445217c1aecec0cbf32b7955d2e781f7e2040414bee61215e99038f8c8d25a89223222e8f0a3 SHA512 f0a322304334265bc3ee1485eec718df70320a089992ac8c4c2802ce418e8d58d5b1fcf700ab98216f81512f5aeb4e29fedbf4dbddcc465ee90c9b815d4bc1e7
DIST discord-disable-breaking-updates-2f26748a667045d26bc19841f1a731b4be7a7514.py 1299 BLAKE2B b6c923c450a28405e2a439e0d1b8a83e01e0536c62095fafbae74612aa4e891df733aa13999ce6a8be3618fd14e154aec802aa4ee21aad1303b05626ffd23314 SHA512 a7ef493a216c71a5b02685cff6866bfc3940aaf9cdc73b58859c962d0d33b613349289ef7027359f184f42dddaed486b84f6d85b9023ab8530ab7ba66431c3c7
diff --git a/net-im/discord/discord-0.0.135.ebuild b/net-im/discord/discord-0.0.135.ebuild
deleted file mode 100644
index 443ddec80668..000000000000
--- a/net-im/discord/discord-0.0.135.ebuild
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-MY_PN="${PN/-bin/}"
-MY_PV="${PV/-r*/}"
-
-CHROMIUM_LANGS="
- af am ar bg bn ca cs da de el en-GB en-US es es-419 et fa fi fil fr gu he hi
- hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv
- sw ta te th tr uk ur vi zh-CN zh-TW
-"
-PYTHON_COMPAT=( python3_{13..14} )
-UPDATE_DISABLER_COMMIT="2f26748a667045d26bc19841f1a731b4be7a7514"
-
-inherit chromium-2 desktop linux-info optfeature python-single-r1 unpacker xdg
-
-DESCRIPTION="All-in-one voice and text chat for gamers"
-HOMEPAGE="https://discord.com/"
-SRC_URI="
- https://dl.discordapp.net/apps/linux/${MY_PV}/${MY_PN}-${MY_PV}.tar.gz
- https://github.com/flathub/com.discordapp.Discord/raw/${UPDATE_DISABLER_COMMIT}/disable-breaking-updates.py
- -> discord-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py
-"
-S="${WORKDIR}/${MY_PN^}"
-
-LICENSE="all-rights-reserved"
-SLOT="0"
-KEYWORDS="amd64"
-
-IUSE="appindicator +seccomp wayland"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-RESTRICT="bindist mirror strip test"
-
-RDEPEND="
- ${PYTHON_DEPS}
- >=app-accessibility/at-spi2-core-2.46.0:2
- dev-libs/expat
- dev-libs/glib:2
- dev-libs/nspr
- dev-libs/nss
- dev-libs/wayland
- media-libs/alsa-lib
- media-libs/fontconfig
- media-libs/mesa[gbm(+)]
- net-print/cups
- sys-apps/dbus
- sys-apps/util-linux
- sys-libs/glibc
- x11-libs/cairo
- x11-libs/libdrm
- x11-libs/gdk-pixbuf:2
- x11-libs/gtk+:3
- x11-libs/libX11
- x11-libs/libXScrnSaver
- x11-libs/libXcomposite
- x11-libs/libXdamage
- x11-libs/libXext
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libxcb
- x11-libs/libxkbcommon
- x11-libs/libxshmfence
- x11-libs/pango
- appindicator? ( dev-libs/libayatana-appindicator )
-"
-
-DESTDIR="/opt/${MY_PN}"
-
-QA_PREBUILT="*"
-
-CONFIG_CHECK="~USER_NS"
-
-src_unpack() {
- unpack ${MY_PN}-${MY_PV}.tar.gz
-}
-
-src_configure() {
- default
- chromium_suid_sandbox_check_kernel_config
-}
-
-src_prepare() {
- default
- # remove post-install script
- rm postinst.sh || die "the removal of the unneeded post-install script failed"
- # cleanup languages
- pushd "locales/" >/dev/null || die "location change for language cleanup failed"
- chromium_remove_language_paks
- popd >/dev/null || die "location reset for language cleanup failed"
-
- # fix .desktop exec location
- sed --in-place --expression "/^Exec=/s:/usr/share/discord/Discord:/usr/bin/${MY_PN}:" \
- "${MY_PN}.desktop" ||
- die "fixing of exec location on .desktop failed"
-
- # Update exec location in launcher
- sed --expression "s:@@DESTDIR@@:${DESTDIR}:" \
- "${FILESDIR}/launcher-r1.sh" > "${T}/launcher.sh" || die "updating of exec location in launcher failed"
-
- # USE seccomp in launcher
- if use seccomp; then
- sed --in-place --expression '/^EBUILD_SECCOMP=/s/false/true/' \
- "${T}/launcher.sh" || die "sed failed for seccomp"
- fi
-
- # USE wayland in launcher
- if use wayland; then
- sed --in-place --expression '/^EBUILD_WAYLAND=/s/false/true/' \
- "${T}/launcher.sh" || die "sed failed for wayland"
- fi
-}
-
-src_install() {
- doicon -s 256 "${MY_PN}.png"
-
- # install .desktop file
- domenu "${MY_PN}.desktop"
-
- exeinto "${DESTDIR}"
-
- doexe "${MY_PN^}" chrome-sandbox libEGL.so libffmpeg.so libGLESv2.so libvk_swiftshader.so
-
- insinto "${DESTDIR}"
- doins chrome_100_percent.pak chrome_200_percent.pak icudtl.dat resources.pak snapshot_blob.bin v8_context_snapshot.bin
- insopts -m0755
- doins -r locales resources
-
- # Chrome-sandbox requires the setuid bit to be specifically set.
- # see https://github.com/electron/electron/issues/17972
- fowners root "${DESTDIR}/chrome-sandbox"
- fperms 4711 "${DESTDIR}/chrome-sandbox"
-
- # Crashpad is included in the package once in a while and when it does, it must be installed.
- # See #903616 and #890595
- [[ -x chrome_crashpad_handler ]] && doins chrome_crashpad_handler
-
- # https://bugs.gentoo.org/905289
- newins "${DISTDIR}/discord-disable-breaking-updates-${UPDATE_DISABLER_COMMIT}.py" disable-breaking-updates.py
- python_fix_shebang "${ED}/${DESTDIR}/disable-breaking-updates.py"
-
- exeinto "/usr/bin"
- newexe "${T}/launcher.sh" "discord" || die "failing to install launcher"
-
- # https://bugs.gentoo.org/898912
- if use appindicator; then
- dosym ../../usr/lib64/libayatana-appindicator3.so /opt/discord/libappindicator3.so
- fi
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- optfeature_header "Install the following packages for additional support:"
- optfeature "sound support" \
- media-sound/pulseaudio media-sound/apulse[sdk] media-video/pipewire
- optfeature "emoji support" media-fonts/noto-emoji
- if has_version kde-plasma/kwin[-screencast] && use wayland; then
- einfo " "
- einfo "When using KWin on Wayland, the kde-plasma/kwin[screencast] USE flag"
- einfo "must be enabled for screensharing."
- einfo " "
- fi
-}
diff --git a/net-im/discord/discord-1.0.146.ebuild b/net-im/discord/discord-1.0.150.ebuild
index 2bb428c4c8b4..008eb84bc750 100644
--- a/net-im/discord/discord-1.0.146.ebuild
+++ b/net-im/discord/discord-1.0.150.ebuild
@@ -46,7 +46,7 @@ S="${WORKDIR}/${MY_PN^}"
LICENSE="all-rights-reserved"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="appindicator +seccomp wayland"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/net-im/telegram-desktop/files/tdesktop-5.2.2-libdispatch.patch b/net-im/telegram-desktop/files/tdesktop-5.2.2-libdispatch.patch
deleted file mode 100644
index dee252c5a7ea..000000000000
--- a/net-im/telegram-desktop/files/tdesktop-5.2.2-libdispatch.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-# https://bugs.gentoo.org/881697
-# https://github.com/telegramdesktop/tdesktop/issues/17437
-
---- tdesktop-5.2.0-orig/cmake/external/CMakeLists.txt
-+++ tdesktop-5.2.0-full/cmake/external/CMakeLists.txt
-@@ -18,7 +18,7 @@
- add_checked_subdirectory(cld3)
- endif()
- add_checked_subdirectory(crash_reports)
--if (LINUX)
-+if (LINUX AND DESKTOP_APP_USE_LIBDISPATCH)
- add_checked_subdirectory(dispatch)
- endif()
- add_checked_subdirectory(expected)
---- tdesktop-5.2.0-orig/cmake/variables.cmake
-+++ tdesktop-5.2.0-full/cmake/variables.cmake
-@@ -21,6 +21,7 @@
- endif()
-
- option(DESKTOP_APP_LOTTIE_USE_CACHE "Use caching in lottie animations." ON)
-+cmake_dependent_option(DESKTOP_APP_USE_LIBDISPATCH "Use libdispatch instead of QThreadPool." OFF LINUX ON)
- cmake_dependent_option(DESKTOP_APP_DISABLE_X11_INTEGRATION "Disable all code for X11 integration." OFF LINUX ON)
- cmake_dependent_option(DESKTOP_APP_USE_ALLOCATION_TRACER "Use simple allocation tracer." OFF LINUX OFF)
- cmake_dependent_option(DESKTOP_APP_USE_PACKAGED_LAZY "Bundle recommended Qt plugins for self-contained packages." OFF LINUX OFF)
diff --git a/net-im/telegram-desktop/files/tdesktop-6.5.1-zlib-1.3.2.patch b/net-im/telegram-desktop/files/tdesktop-6.5.1-zlib-1.3.2.patch
deleted file mode 100644
index e35f5e6fd47a..000000000000
--- a/net-im/telegram-desktop/files/tdesktop-6.5.1-zlib-1.3.2.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-(part of a downstream quickfix batch, may still need to be looked at upstream)
-
-https://bugs.gentoo.org/970227
---- a/Telegram/lib_base/base/zlib_help.h
-+++ b/Telegram/lib_base/base/zlib_help.h
-@@ -8,4 +8,4 @@
-
--#include <zip.h>
--#include <unzip.h>
-+#include <minizip/zip.h>
-+#include <minizip/unzip.h>
- #include "logs.h"
diff --git a/net-im/telegram-desktop/files/tdesktop-6.6.2-qt6-no-wayland.patch b/net-im/telegram-desktop/files/tdesktop-6.6.2-qt6-no-wayland.patch
deleted file mode 100644
index f69d93129b08..000000000000
--- a/net-im/telegram-desktop/files/tdesktop-6.6.2-qt6-no-wayland.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-Allow disabling wayland integration for Qt6 builds
-
-Upstream has removed the required toggle for wayland integration, and instead
-is forcing it when qt has been built with USE=wayland.
-
-I'm not certain keeping patching it like this is feasible in the long term. A
-method of disabling QT_FEATURE_wayland should be more appropriate.
-
-https://bugs.gentoo.org/928451
-https://github.com/desktop-app/cmake_helpers/commit/a428df5440e76a726abc30924766ac7da0cb381c
-
---- tdesktop-6.6.2-full.orig/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
-+++ tdesktop-6.6.2-full/Telegram/lib_base/base/platform/linux/base_info_linux.cpp
-@@ -340,7 +340,7 @@
- }
- static const bool result =
- #if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
--#if defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- qApp->nativeInterface<QNativeInterface::QWaylandApplication>()
- #else // wayland
- false
---- tdesktop-6.6.2-full.orig/Telegram/lib_base/base/platform/linux/base_linux_xdg_activation_token.cpp
-+++ tdesktop-6.6.2-full/Telegram/lib_base/base/platform/linux/base_linux_xdg_activation_token.cpp
-@@ -15,7 +15,7 @@
- namespace base::Platform {
-
- void RunWithXdgActivationToken(Fn<void(QString)> callback) {
--#if defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- const auto window = QGuiApplication::focusWindow();
- if (!window) {
- callback({});
---- tdesktop-6.6.2-full.orig/Telegram/lib_ui/ui/platform/linux/ui_utility_linux.cpp
-+++ tdesktop-6.6.2-full/Telegram/lib_ui/ui/platform/linux/ui_utility_linux.cpp
-@@ -414,7 +414,7 @@
- }
- #endif // !DESKTOP_APP_DISABLE_X11_INTEGRATION
-
--#if defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- void ShowWaylandWindowMenu(not_null<QWidget*> widget, const QPoint &point) {
- static const auto wl_proxy_marshal_array = [] {
- void (*result)(
-@@ -548,7 +548,7 @@
- }
-
- bool WindowMarginsSupported() {
--#if defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- static const auto WaylandResult = [] {
- using namespace QNativeInterface::Private;
- QWindow window;
-@@ -575,7 +575,7 @@
- }
-
- void SetWindowMargins(not_null<QWidget*> widget, const QMargins &margins) {
--#if defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- using namespace QNativeInterface::Private;
- const auto window = not_null(widget->windowHandle());
- const auto platformWindow = not_null(window->handle());
-@@ -597,7 +597,7 @@
- }
-
- void ShowWindowMenu(not_null<QWidget*> widget, const QPoint &point) {
--#if defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- if (::Platform::IsWayland()) {
- ShowWaylandWindowMenu(widget, point);
- return;
---- tdesktop-6.6.2-full.orig/Telegram/lib_ui/ui/widgets/popup_menu.cpp
-+++ tdesktop-6.6.2-full/Telegram/lib_ui/ui/widgets/popup_menu.cpp
-@@ -1053,7 +1053,7 @@
- 0),
- _padding.top() - _topShift);
- auto r = screen ? screen->availableGeometry() : QRect();
--#if QT_VERSION >= QT_VERSION_CHECK(6, 11, 0) && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if QT_VERSION >= QT_VERSION_CHECK(6, 11, 0) && !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- using namespace QNativeInterface::Private;
- if (const auto native
- = windowHandle()->nativeInterface<QWaylandWindow>()) {
---- tdesktop-6.6.2-full.orig/Telegram/lib_ui/ui/widgets/tooltip.cpp
-+++ tdesktop-6.6.2-full/Telegram/lib_ui/ui/widgets/tooltip.cpp
-@@ -112,7 +112,7 @@
- p.setX(m.x() - (s.width() / 2));
- }
-
--#if QT_VERSION >= QT_VERSION_CHECK(6, 11, 0) && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
-+#if QT_VERSION >= QT_VERSION_CHECK(6, 11, 0) && !defined DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION && defined QT_FEATURE_wayland && QT_CONFIG(wayland)
- using namespace QNativeInterface::Private;
- create();
- if (const auto native
---- tdesktop-6.6.2-full.orig/cmake/options.cmake
-+++ tdesktop-6.6.2-full/cmake/options.cmake
-@@ -22,6 +22,13 @@
- )
- endif()
-
-+if (DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION)
-+ target_compile_definitions(common_options
-+ INTERFACE
-+ DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION
-+ )
-+endif()
-+
- if (WIN32)
- include(cmake/options_win.cmake)
- elseif (APPLE)
---- tdesktop-6.6.2-full.orig/cmake/variables.cmake
-+++ tdesktop-6.6.2-full/cmake/variables.cmake
-@@ -27,6 +27,7 @@
- option(DESKTOP_APP_LOTTIE_DISABLE_RECOLORING "Disable recoloring of lottie animations." OFF)
- option(DESKTOP_APP_LOTTIE_USE_CACHE "Use caching in lottie animations." ON)
- cmake_dependent_option(DESKTOP_APP_DISABLE_X11_INTEGRATION "Disable all code for X11 integration." OFF LINUX ON)
-+cmake_dependent_option(DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION "Disable all code for Wayland integration." OFF LINUX ON)
- cmake_dependent_option(DESKTOP_APP_USE_ALLOCATION_TRACER "Use simple allocation tracer." OFF LINUX OFF)
- option(DESKTOP_APP_USE_PACKAGED_FONTS "Use preinstalled fonts instead of bundled patched ones." OFF)
- option(DESKTOP_APP_USE_PACKAGED_RLOTTIE "Find rlottie using CMake instead of bundled patched one." OFF)
diff --git a/net-libs/webkit-gtk/webkit-gtk-2.52.5-r410.ebuild b/net-libs/webkit-gtk/webkit-gtk-2.52.5-r410.ebuild
index e3117e36abab..63dfb0ebe5bf 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.52.5-r410.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.52.5-r410.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2+ BSD"
SLOT="4.1/0" # soname version of libwebkit2gtk-4.1
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc ~x86"
IUSE="aqua avif custom-cflags examples gamepad keyring +gstreamer +introspection pdf jpegxl +jumbo-build lcms seccomp spell systemd wayland X"
REQUIRED_USE="|| ( aqua wayland X )"
diff --git a/net-libs/webkit-gtk/webkit-gtk-2.52.5-r600.ebuild b/net-libs/webkit-gtk/webkit-gtk-2.52.5-r600.ebuild
index 24b3346b2a00..174f861bf821 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.52.5-r600.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.52.5-r600.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="LGPL-2+ BSD"
SLOT="6/0" # soname version of libwebkit2gtk-6.0
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc ~x86"
IUSE="aqua avif custom-cflags examples gamepad keyring +gstreamer +introspection pdf jpegxl +jumbo-build lcms seccomp spell systemd wayland X"
REQUIRED_USE="|| ( aqua wayland X )"
diff --git a/net-misc/dropbear/files/dropbear-2026.92-skip-failing-convert-test.patch b/net-misc/dropbear/files/dropbear-2026.92-skip-failing-convert-test.patch
deleted file mode 100644
index 0845ea746bc1..000000000000
--- a/net-misc/dropbear/files/dropbear-2026.92-skip-failing-convert-test.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/test/test_dropbearconvert.py
-+++ b/test/test_dropbearconvert.py
-@@ -28,6 +28,9 @@
- if kt == 'dss' and keyformat is None:
- pytest.skip("dss doesn't support openssh format")
-
-+ if keytype == "ed25519" and keyformat == "PEM":
-+ pytest.skip("ssh-keygen does not support PEM format for type ed25519")
-+
- os_kt = kt
- if os_kt == 'dss':
- # OpenSSH calls it 'dsa', Dropbear calls it 'dss'
diff --git a/profiles/package.deprecated b/profiles/package.deprecated
index 71e53cf2fc82..cc121f480040 100644
--- a/profiles/package.deprecated
+++ b/profiles/package.deprecated
@@ -17,6 +17,19 @@
#--- END OF EXAMPLES ---
+# Michał Górny <mgorny@gentoo.org> (2026-07-27)
+# The project is not actively developed since 2020, when the developer
+# switched to Rust. The maintenance currently seems to be limited to
+# mass merging slop security fixes. dev-python/dulwich seems to be
+# the best available alternative right now.
+dev-python/gitpython
+
+# Alfred Wingate <parona@protonmail.com> (2026-07-26)
+# Discontinued upstream since 2019.
+# Replaced by dev-ruby/sassc
+# https://sass-lang.com/blog/ruby-sass-is-unsupported/
+dev-ruby/sass
+
# Michał Górny <mgorny@gentoo.org> (2026-06-10)
# Part of stdlib since Python 3.11 (as tomllib).
dev-python/tomli
diff --git a/sci-calculators/qalculate-gtk/Manifest b/sci-calculators/qalculate-gtk/Manifest
index d50de01f1fa8..a87d18634d53 100644
--- a/sci-calculators/qalculate-gtk/Manifest
+++ b/sci-calculators/qalculate-gtk/Manifest
@@ -1,3 +1,4 @@
DIST qalculate-gtk-5.10.0.tar.gz 3784042 BLAKE2B fabcdb841990a549957e9617f4cab58402f6c27729cffa706a4f56168de5e05ab2dba409fae1791876a5e447f639357b014170853c43522351854662ab557eae SHA512 150bac0613c0053750b45f429c730c7a13e57900bcf417fab258b3532d76da0bbbe1f8d8738b7208dd1d1243af44d936847e786ccd452cec78778aefd29158b2
+DIST qalculate-gtk-5.12.0.tar.gz 3801021 BLAKE2B 7a3b89285a3faf65e542cdbae9ca9fd77ff72c48539011c841d2d3af2846270c227d7e3d504106bb9a6d9ecd61bf54f494e71f409569a61c4f1fdd2aa978a902 SHA512 3efcea53f4ce7a3b31f2dc52af3f0b34b8aedbe7c5fa43a227ee91cb72fff60ced0000aeefa7e0df59451e4c20c136e986cf88b089e6b602791a5f6e428f67ec
DIST qalculate-gtk-5.8.2.tar.gz 3095670 BLAKE2B 644dd1347defbc619623bc0e39b259601a7fe91b40573b61757596022bcc234b085d3277337e0dab6a45b6e0d102b8435ea735e0e0f7ef72645489d06a7a3145 SHA512 00cb454e68b251d8efc770dfaa0026e0e893c8dbb6301c0efe857c1308f7d31dd3fc14689ccbe0ef9bb329d3220e33b85744e330e48d16fc2104b099e94a00c4
DIST qalculate-gtk-5.9.0.tar.gz 3619981 BLAKE2B e30a14221d1374f77981b413858f8819143226f99cfdfa80962d6ad715aeb282d885b3af9c7c5f81c9e7fed1a2c1ca74c762c7c2a2919a3b7ef8040cbc18d42c SHA512 f3ed5aca18cd197e3d43f9af6013d22cc68a0fcf6f902d4d6540ab930b95899d3fad90c581bd62258e956e89d4f1e50b0d73c93ae7a82a88ceb082aa6662c678
diff --git a/sci-calculators/qalculate-gtk/qalculate-gtk-5.12.0.ebuild b/sci-calculators/qalculate-gtk/qalculate-gtk-5.12.0.ebuild
new file mode 100644
index 000000000000..c9e53e0404e0
--- /dev/null
+++ b/sci-calculators/qalculate-gtk/qalculate-gtk-5.12.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Note: bump with sci-libs/libqalculate and sci-calculators/qalculate-qt!
+
+inherit optfeature xdg
+
+DESCRIPTION="Modern multi-purpose calculator"
+HOMEPAGE="https://qalculate.github.io/"
+SRC_URI="https://github.com/Qalculate/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+
+RDEPEND="dev-libs/glib:2
+ >=sci-libs/libqalculate-${PV}:=
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ x11-libs/pango"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+src_prepare() {
+ # Required by src_test() and `make check`
+ cat >po/POTFILES.skip <<-EOF || die
+ # Required by make check
+ data/calendarconversion.ui
+ data/periodictable.ui
+ EOF
+
+ default
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "gnuplot support" sci-libs/libqalculate[gnuplot]
+}
diff --git a/sci-calculators/qalculate-qt/Manifest b/sci-calculators/qalculate-qt/Manifest
index 39d3500946d9..f0ba6529cfb7 100644
--- a/sci-calculators/qalculate-qt/Manifest
+++ b/sci-calculators/qalculate-qt/Manifest
@@ -1,3 +1,4 @@
DIST qalculate-qt-5.10.0.tar.gz 2040825 BLAKE2B 729a76dada619938878ae0d773d116cb58101d9196a860b54dfa311410fa6b7b14e00cd7dca177d5f74e3489b2903b3548e54934b5b64540abdde0d50716def6 SHA512 83af45f2b84c349aad1f5cd48264fc8131e139e462baf77ab74818808add66437e1fcde6a55ac78589e20247787c273111c88897591f5e3a3a56204d12ba51f3
+DIST qalculate-qt-5.12.0.tar.gz 2096399 BLAKE2B e0c409a90785ac737bf7ddeebb2f57314efdc598f2178adfedefb023776d8878be48d8755d1918359114459eee70af41ae0feb80a1635012f148731c11999b0d SHA512 ebedff48784efa19200a4496d250c99b56af03e79626ce5eefb77da81bb5bf80cae35dae4482da87fd1303a875ff4467061c795bf7ba4a36044fd013b44e4d21
DIST qalculate-qt-5.8.2.tar.gz 2027585 BLAKE2B d0adf9bb019fb49068b1ad693f4fb2ae32b0ae3b677e1e1d0efb4a4b3a6ab74e11d355bdc70a3fe9a59e601c3f422461d7c6a8c514c62520c8dd938f94b516df SHA512 b01a009829073fc1198443973a665e7fad3be9f4b7b070ca606b1355b88aeac467fe75eb729ced054d619d91881c6b26ba01e4c62ab2e30279f37b65e063dc68
DIST qalculate-qt-5.9.0.tar.gz 2043503 BLAKE2B 668b7e9c6630e41f40328c414affc625930335062ced51287ff0ddefd119356ec2e9c30e00843f1395abb58f1536b55a72f7f4ef94539f7ff0437c68c78e013a SHA512 943746116215b893a6c552592af76b2be163b62153c55f9916df7e8468c15d52f1dc7982db722c9b57e08e6d4bb7b8362edb21415b7ea20fe28f93c3f381c341
diff --git a/sci-calculators/qalculate-qt/qalculate-qt-5.12.0.ebuild b/sci-calculators/qalculate-qt/qalculate-qt-5.12.0.ebuild
new file mode 100644
index 000000000000..68071b42f5d8
--- /dev/null
+++ b/sci-calculators/qalculate-qt/qalculate-qt-5.12.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bump with sci-libs/libqalculate and sci-calculators/qalculate-gtk!
+
+inherit optfeature qmake-utils xdg
+
+DESCRIPTION="Qt-based UI for libqalculate"
+HOMEPAGE="https://github.com/Qalculate/qalculate-qt"
+SRC_URI="https://github.com/Qalculate/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+DEPEND="
+ dev-qt/qtbase:6[gui,network,widgets]
+ >=sci-libs/libqalculate-${PV}:=
+"
+RDEPEND="${DEPEND}"
+BDEPEND="dev-qt/qttools:6[linguist]"
+
+src_configure() {
+ eqmake6 PREFIX="${EPREFIX}/usr"
+}
+
+src_install() {
+ emake INSTALL_ROOT="${ED}" install
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "gnuplot support" sci-libs/libqalculate[gnuplot]
+}
diff --git a/sci-libs/libqalculate/Manifest b/sci-libs/libqalculate/Manifest
index b0689e1cbc3e..c6f30ed7d368 100644
--- a/sci-libs/libqalculate/Manifest
+++ b/sci-libs/libqalculate/Manifest
@@ -1,3 +1,4 @@
DIST libqalculate-5.10.0.tar.gz 2297914 BLAKE2B 3545d9893ef54296aa0dba9f6d8c064c9a8f2dfbfa6906eece54c9534c24b143ab49546e760264f33dfc78c87fc6dc4ecd0deae7cca3d7a9b0f096ee93596591 SHA512 4b9d0e07e7915acea052d153298d175dcfcc0e116e2c106d0296c06eb4459f2c072e813b590c3f92826bce29eea15c439f5a7984695b3bf36e48932218df5cc9
+DIST libqalculate-5.12.0.tar.gz 2342253 BLAKE2B ac895766d0ff611bfa266f208692d00b32a566c585287a0aba678dd6f72efac46ce6d48e3747ee93c96f239f8d45dd76b1ef0dd5d65d81310d0197ae3e450279 SHA512 0a0f648061fe79f5b4062216a3a56c9f448bcd905203d32002c358950fdb863775024216898b1ef283399e5cee08d5aa32bb5cf0e0260193a37c2a5a5048b8ac
DIST libqalculate-5.8.2.tar.gz 2370999 BLAKE2B 4a7fd5d5a4977e2506c88b3cdfea681841d19e831b31bf644c923764c192b48c4b8b2659077f54e0784c49417b5611b3255801042aaa8d8f4c984f1ac3f0738b SHA512 7f35184fdab3a0bd10ae39c54023491aaa52160f9bd97c4b6e3bb465b49389009627719da2678015d9b297fa8339cc0abe48332fccfe51ad9b2ee888a608ac0a
DIST libqalculate-5.9.0.tar.gz 2282817 BLAKE2B 74a53595ecd2e6487d46834b863bf45ee13c282c6a8ad9e5d7be4924996661aff7d3e77607d6d2a383b6e9993f06973a73a2c959dcd638b1e3db849361430845 SHA512 8c9e2515da0b4bd4d8116a196f2a5f32e8e20a6075e548db41ed40c252f9ae6d4b9997d6c4dd2574f32b42f2248af1f604c7c54ff8a96e08138e9c8153a6805c
diff --git a/sci-libs/libqalculate/libqalculate-5.12.0.ebuild b/sci-libs/libqalculate/libqalculate-5.12.0.ebuild
new file mode 100644
index 000000000000..06a910bcafc9
--- /dev/null
+++ b/sci-libs/libqalculate/libqalculate-5.12.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+# Bump with sci-calculators/qalculate-gtk and sci-calculators/qalculate-qt
+
+inherit autotools flag-o-matic toolchain-funcs
+
+MY_PV="${PV//b/}"
+
+DESCRIPTION="A modern multi-purpose calculator library"
+HOMEPAGE="https://qalculate.github.io/"
+SRC_URI="https://github.com/Qalculate/libqalculate/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/"${PN}-${MY_PV}"
+
+LICENSE="GPL-2+"
+# SONAME changes pretty often on bumps. Check!
+SLOT="0/23.3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="+curl icu gnuplot +hardened readline test"
+RESTRICT="!test? ( test )"
+
+DEPEND="dev-libs/gmp:=
+ dev-libs/libxml2:2=
+ dev-libs/mpfr:=
+ virtual/libiconv
+ curl? ( net-misc/curl )
+ icu? ( dev-libs/icu:= )
+ readline? ( sys-libs/readline:= )"
+RDEPEND="${DEPEND}
+ gnuplot? ( >=sci-visualization/gnuplot-3.7 )"
+BDEPEND="dev-util/intltool
+ sys-devel/gettext
+ virtual/pkgconfig"
+
+src_prepare() {
+ default
+ cat >po/POTFILES.skip <<-EOF || die
+ # Required by make check
+ data/currencies.xml.in
+ data/datasets.xml.in
+ data/elements.xml.in
+ data/functions.xml.in
+ data/planets.xml.in
+ data/prefixes.xml.in
+ data/units.xml.in
+ data/variables.xml.in
+ src/defs2doc.cc
+ EOF
+
+ eautoreconf
+}
+
+src_configure() {
+ # Needed for po-defs/Makefile
+ export CXX_FOR_BUILD="$(tc-getBUILD_CXX)"
+ export CXXCPP_FOR_BUILD="$(tc-getBUILD_CXX) -E"
+
+ # bug #792027
+ tc-export CC
+
+ # bug #924939
+ use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+ local myeconfargs=(
+ $(use_enable test tests)
+ $(use_enable test unittests)
+ $(use_with curl libcurl)
+ $(use_with gnuplot gnuplot-call)
+ $(use_enable !hardened insecure)
+ $(use_with icu)
+ $(use_with readline)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ # docs/reference/Makefile.am -> referencedir=
+ emake \
+ DESTDIR="${D}" \
+ referencedir="${EPREFIX}/usr/share/doc/${PF}/html" \
+ install
+
+ einstalldocs
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/sci-misc/jupyterlab-desktop-bin/Manifest b/sci-misc/jupyterlab-desktop-bin/Manifest
index 8ae9d1515347..32f24fbbb6c5 100644
--- a/sci-misc/jupyterlab-desktop-bin/Manifest
+++ b/sci-misc/jupyterlab-desktop-bin/Manifest
@@ -1 +1,2 @@
DIST jupyterlab-desktop-bin-4.2.5.1.rpm 336515433 BLAKE2B 7173a3179b848471540070b172f5b196e7a0192bc3dd60d9ba20b129ce1276ac4707c6f37a2371707fdce1c2a4ed8943006e9e08b1464717f0d696ad5e11843d SHA512 62669c48a632441075bdf96796866e4a64601ad06f4e9fc85b52e3956aa6ce85dd7f52816cc3c9c4466eeff7759c92721dbabf274dc6001785cb71cb84e2ed9f
+DIST jupyterlab-desktop-bin-4.6.2.1.rpm 411215781 BLAKE2B 61c5374bfd3ed78ddf1b805894dab998249b3f72bc3977fd98d4bb4f737f508bbd7191d72d57859ebae313a6ef8aeffe4d3b79eddb05eafb2a6ee0b8fc3e2e6c SHA512 163b2370ad21d56488746f6d00446c0968c8a59b08be74d092cda3cfa3b018a345fe5e8d9b9e0526920195bcefe5b78f2e4d4f2a55c2c22180134fb60eb08405
diff --git a/sci-misc/jupyterlab-desktop-bin/jupyterlab-desktop-bin-4.6.2.1.ebuild b/sci-misc/jupyterlab-desktop-bin/jupyterlab-desktop-bin-4.6.2.1.ebuild
new file mode 100644
index 000000000000..fae4000ce759
--- /dev/null
+++ b/sci-misc/jupyterlab-desktop-bin/jupyterlab-desktop-bin-4.6.2.1.ebuild
@@ -0,0 +1,107 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CHROMIUM_LANGS="
+ af am ar bg bn ca cs da de el en-GB en-US es es-419 et fa fi fil fr gu he hi
+ hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt-BR pt-PT ro ru sk sl sr sv
+ sw ta te th tr uk ur vi zh-CN zh-TW
+"
+
+RPM_COMPRESS_TYPE=xz
+inherit chromium-2 desktop rpm xdg
+
+DESCRIPTION="JupyterLab desktop application, based on Electron"
+HOMEPAGE="https://jupyter.org/"
+SRC_URI="https://github.com/jupyterlab/${PN%%-bin}/releases/download/v$(ver_rs 3 -)/JupyterLab-Setup-Fedora-x64.rpm -> ${P}.rpm"
+S="${WORKDIR}"
+
+# Electron bundles a bunch of things
+LICENSE="
+ MIT BSD BSD-2 BSD-4 AFL-2.1 Apache-2.0 Ms-PL GPL-2 LGPL-2.1 APSL-2
+ unRAR OFL-1.1 CC-BY-SA-3.0 MPL-2.0 android public-domain all-rights-reserved
+"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+RESTRICT="bindist mirror"
+
+RDEPEND="
+ >=app-accessibility/at-spi2-core-2.46.0:2
+ dev-libs/expat
+ dev-libs/glib
+ dev-libs/nspr
+ dev-libs/nss
+ >=dev-python/jupyterlab-$(ver_cut 1-3)
+ media-libs/alsa-lib
+ media-libs/mesa
+ net-print/cups
+ sys-apps/dbus
+ sys-libs/glibc
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXcomposite
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libxkbcommon
+ x11-libs/libXrandr
+ x11-libs/libxshmfence
+ x11-libs/pango
+"
+
+QA_PREBUILT="opt/JupyterLab/*"
+
+pkg_pretend() {
+ chromium_suid_sandbox_check_kernel_config
+}
+
+src_prepare() {
+ default
+ # cleanup languages
+ pushd "opt/JupyterLab/locales" || die
+ chromium_remove_language_paks
+ popd || die
+}
+
+src_configure() {
+ chromium_suid_sandbox_check_kernel_config
+ default
+}
+
+src_install() {
+ local size=512
+ doicon -s ${size} "usr/share/icons/hicolor/${size}x${size}/apps/jupyterlab-desktop.png"
+
+ domenu usr/share/applications/jupyterlab-desktop.desktop
+
+ local DESTDIR="/opt/JupyterLab"
+ pushd "opt/JupyterLab" || die
+
+ exeinto "${DESTDIR}"
+ doexe chrome_crashpad_handler jupyterlab-desktop *.so*
+
+ insinto "${DESTDIR}"
+ doins *.pak *.bin *.json *.dat
+ insopts -m0755
+ doins -r locales resources
+
+ dosym "${DESTDIR}"/jupyterlab-desktop /opt/bin/jupyterlab-desktop
+ popd || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ elog ""
+ elog "On initial startup you will be prompted to select the python environment of"
+ elog "your choice. Either select a specific python version, e.g. /usr/bin/pythonX.Y,"
+ elog "or choose /usr/bin/python to follow the system wide setting in"
+ elog "/etc/python-exec/python-exec.conf."
+ elog "Please note that only python environments corresponding to the enabled"
+ elog "PYTHON_TARGETS on dev-python/jupyterlab will work."
+ elog ""
+}
diff --git a/sys-apps/acl/acl-2.4.0.ebuild b/sys-apps/acl/acl-2.4.0-r1.ebuild
index c215e1806aa8..da7d856434f9 100644
--- a/sys-apps/acl/acl-2.4.0.ebuild
+++ b/sys-apps/acl/acl-2.4.0-r1.ebuild
@@ -28,6 +28,10 @@ LICENSE="LGPL-2.1+ GPL-2"
SLOT="0"
IUSE="nls static-libs"
+# attr dep should be obsolete with >=2.4.0 but there's a configure check
+# left, and also some header use in libacl/ still (bug #978746, reported on acl-devel).
+DEPEND="sys-apps/attr"
+RDEPEND="${DEPEND}"
BDEPEND+=" nls? ( sys-devel/gettext )"
src_prepare() {
diff --git a/sys-apps/acl/acl-9999.ebuild b/sys-apps/acl/acl-9999.ebuild
index c215e1806aa8..da7d856434f9 100644
--- a/sys-apps/acl/acl-9999.ebuild
+++ b/sys-apps/acl/acl-9999.ebuild
@@ -28,6 +28,10 @@ LICENSE="LGPL-2.1+ GPL-2"
SLOT="0"
IUSE="nls static-libs"
+# attr dep should be obsolete with >=2.4.0 but there's a configure check
+# left, and also some header use in libacl/ still (bug #978746, reported on acl-devel).
+DEPEND="sys-apps/attr"
+RDEPEND="${DEPEND}"
BDEPEND+=" nls? ( sys-devel/gettext )"
src_prepare() {
diff --git a/sys-apps/renameutils/files/renameutils-0.12.0-c23.patch b/sys-apps/renameutils/files/renameutils-0.12.0-c23.patch
new file mode 100644
index 000000000000..e86efb21f716
--- /dev/null
+++ b/sys-apps/renameutils/files/renameutils-0.12.0-c23.patch
@@ -0,0 +1,146 @@
+https://bugs.gentoo.org/944428#c2
+
+--- a/src/common/hmap.c
++++ b/src/common/hmap.c
+@@ -363,7 +363,7 @@ hmap_iterator(HMap *map, HMapIterator *it)
+ * function. But no other entry.
+ */
+ void
+-hmap_foreach_value(HMap *map, void (*iterator)())
++hmap_foreach_value(HMap *map, void (*iterator)(void*))
+ {
+ uint32_t c;
+
+@@ -378,7 +378,7 @@ hmap_foreach_value(HMap *map, void (*iterator)())
+ }
+
+ void
+-hmap_foreach_key(HMap *map, void (*iterator)())
++hmap_foreach_key(HMap *map, void (*iterator)(void*))
+ {
+ uint32_t c;
+
+--- a/src/common/hmap.h
++++ b/src/common/hmap.h
+@@ -50,8 +50,8 @@ void *hmap_put(HMap *map, void *key, void *value);
+ bool hmap_contains_key(HMap *map, const void *key);
+ void *hmap_remove(HMap *map, const void *key);
+ void hmap_iterator(HMap *map, HMapIterator *it);
+-void hmap_foreach_key(HMap *map, void (*iterator)());
+-void hmap_foreach_value(HMap *map, void (*iterator)());
++void hmap_foreach_key(HMap *map, void (*iterator)(void*));
++void hmap_foreach_value(HMap *map, void (*iterator)(void*));
+ void hmap_clear(HMap *map);
+ size_t hmap_size(HMap *map);
+ void hmap_set_hash_fn(HMap *map, hash_fn_t hash);
+--- a/src/common/llist.c
++++ b/src/common/llist.c
+@@ -445,7 +445,7 @@ llist_is_empty(LList *list)
+ }
+
+ void
+-llist_iterate(LList *list, void (*iterator_func)())
++llist_iterate(LList *list, void (*iterator_func)(void*))
+ {
+ LNode *entry;
+ for (entry = list->first; entry != NULL; entry = entry->next)
+--- a/src/common/llist.h
++++ b/src/common/llist.h
+@@ -68,7 +68,7 @@ LList *llist_clone(LList *list);
+ void **llist_to_array(LList *list);
+ void **llist_to_null_terminated_array(LList *list);
+
+-void llist_iterate(LList *list, void (*iterator_func)());
++void llist_iterate(LList *list, void (*iterator_func)(void*));
+ void llist_iterator(LList *list, LListIterator *it);
+
+ void llist_reverse(LList *list);
+--- a/src/common/tmap.c
++++ b/src/common/tmap.c
+@@ -507,7 +507,7 @@ predecessor(TMapNode *node)
+ #endif
+
+ static void
+-tmap_foreach_nodes_key(TMapNode *node, void (*iterator)())
++tmap_foreach_nodes_key(TMapNode *node, void (*iterator)(void*))
+ {
+ if (node->left != &nil)
+ tmap_foreach_nodes_key(node->left, iterator);
+@@ -517,7 +517,7 @@ tmap_foreach_nodes_key(TMapNode *node, void (*iterator)())
+ }
+
+ static void
+-tmap_foreach_nodes_value(TMapNode *node, void (*iterator)())
++tmap_foreach_nodes_value(TMapNode *node, void (*iterator)(void*))
+ {
+ if (node->left != &nil)
+ tmap_foreach_nodes_value(node->left, iterator);
+@@ -527,14 +527,14 @@ tmap_foreach_nodes_value(TMapNode *node, void (*iterator)())
+ }
+
+ void
+-tmap_foreach_key(TMap *map, void (*iterator)())
++tmap_foreach_key(TMap *map, void (*iterator)(void*))
+ {
+ if (map->root != &nil)
+ tmap_foreach_nodes_key(map->root, iterator);
+ }
+
+ void
+-tmap_foreach_value(TMap *map, void (*iterator)())
++tmap_foreach_value(TMap *map, void (*iterator)(void*))
+ {
+ if (map->root != &nil)
+ tmap_foreach_nodes_value(map->root, iterator);
+--- a/src/common/tmap.h
++++ b/src/common/tmap.h
+@@ -51,8 +51,8 @@ void *tmap_remove(TMap *map, const void *key);
+ void tmap_iterator(TMap *map, TMapIterator *it); /* value iterator */
+ bool tmap_iterator_partial(TMap *map, TMapIterator *it, const void *match, comparison_fn_t comparator);
+ void tmap_clear(TMap *map);
+-void tmap_foreach_key(TMap *map, void (*iterator)());
+-void tmap_foreach_value(TMap *map, void (*iterator)());
++void tmap_foreach_key(TMap *map, void (*iterator)(void*));
++void tmap_foreach_value(TMap *map, void (*iterator)(void*));
+
+ #ifdef ENABLE_TMAP_TESTING
+ #include <stdio.h>
+--- a/src/list.c
++++ b/src/list.c
+@@ -166,14 +166,14 @@ import_command(char **args)
+ hmap_free(map_files);
+ if (ferror(fh)) {
+ warn(_("%s: cannot read from file: %s\n"), quotearg(args[1]), errstr);
+- llist_iterate(new_files, free_file_spec);
++ llist_iterate(new_files, (void(*)(void *))free_file_spec);
+ llist_free(new_files);
+ fclose(fh);
+ return;
+ }
+ fclose(fh);
+
+- llist_iterate(work_files, free_file_spec);
++ llist_iterate(work_files, (void(*)(void *))free_file_spec);
+ llist_free(work_files);
+ work_files = new_files;
+ }
+@@ -370,7 +370,7 @@ list_files(char **args)
+ free_plan(plan);
+ plan = NULL;
+ }
+- llist_iterate(work_files, free_file_spec);
++ llist_iterate(work_files, (void(*)(void *))free_file_spec);
+ llist_clear(work_files);
+
+ if (!process_ls_output(firstdir, work_files, ls_fd)) {
+--- a/src/qcmd.c
++++ b/src/qcmd.c
+@@ -263,7 +263,7 @@ main(int argc, char **argv)
+ free_plan(plan);
+
+ /*dump_spec_list(work_files);*/
+- llist_iterate(work_files, free_file_spec);
++ llist_iterate(work_files, (void(*)(void *))free_file_spec);
+ llist_free(work_files);
+ free(all_options);
+ free(editor_program);
diff --git a/sys-apps/renameutils/renameutils-0.12.0.ebuild b/sys-apps/renameutils/renameutils-0.12.0.ebuild
index 80ed8c2901f8..bdb88cf0a49a 100644
--- a/sys-apps/renameutils/renameutils-0.12.0.ebuild
+++ b/sys-apps/renameutils/renameutils-0.12.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -20,6 +20,7 @@ RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-typo.patch
"${FILESDIR}"/${P}-autopoint.patch
+ "${FILESDIR}"/${P}-c23.patch
)
src_prepare() {
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 241769a89f76..6d9588c066ad 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -23,6 +23,7 @@ DIST gcc-13-20260624.tar.xz 84614412 BLAKE2B 84395636773b8d14ac7908e7f9ae64c55ed
DIST gcc-13-20260701.tar.xz 84614044 BLAKE2B b5c6a5ec54cd1bce45bad201892d59d9f672403f1b40c580da1cbb32fead817d09bdb674d9fc6ae664e97a8f1480fc635de3174f39608e09cde6e4d7def21d68 SHA512 4fa6cbfad37950f6f9cdecfc2782a570a5f59774adb2a24120049c4a2007730988a1eef80f36f1b0bfee2ebeef754fb30029140c3364089f3d2cd055e74f6462
DIST gcc-13-20260708.tar.xz 84617648 BLAKE2B 841a0f9806c74d01547c8d8f0e716f9991d81398a7f70279a654bf0079b6d79384974d173cdf927a7d1eeaaa7d3f0665d963ee1c95135bd16b92a4cf98719215 SHA512 b28615b77bdc4839b88775842a7763ba779fc1246adf2afedd6472ebdaed98f15819a7b746d8fbf028e564b8c596418e8593e9d42993ce18d92f15f55d50e4cf
DIST gcc-13-20260715.tar.xz 84621548 BLAKE2B 476965a264994adc359c7340fec5470013d33debea7b2a8b56ebfa01e61967a24a6d950ce9dbca68b558046a676ecb05751b37f7fec42841e1a9ba2fd3032409 SHA512 1979288927926526ef85712b1a4d4172e03204d89ef2f217f12ed69f9fdecd622d248ac68beb7c13392ee1c51857905fa8c56c75c1ca0c3af1802600d22c0e4e
+DIST gcc-13-20260722.tar.xz 84613400 BLAKE2B fbef224dffa582641e2b88689be148fd1b471325a7a74979866952f6eac12e8fbe4642b9f2e1a33f95bfc09a5890fead3f61200be69400f524009b622a06c285 SHA512 eefa873d0596c13befaccde28d44dbb6b5ef8c890b6fb7e3a82709307e752d341f6a8d47d9ac25587bd2fefcf12b861823c3c1f50cbffb7dbf5c62a12f8c58dc
DIST gcc-13.2.0-musl-patches-2.tar.xz 5292 BLAKE2B c057d6574d03c05854edaa9f3fd40e9149662b04f3ac7a7db3eb078d73a7b535726d1bf52e5b12736dedb2f9898ad731f2e48a6421fcfbf7b90f929dee072fcb SHA512 a691da0c87c443a5e9d23731f4005f27871c5b12bc9102873ffa24d374aa7b9fbd187c4f5635d23fa9ffb17e351e76173c2d3fdf40646e355c4cb314b538de69
DIST gcc-13.2.0-patches-3.tar.xz 30956 BLAKE2B 29ce043b46645640ca1e983397af3e158588ad87575f0bc59451ea4a7dd5e3bb5b190ed031de6a22cd790d423ba111e95d222187dd09985dceb12db9f0a2d907 SHA512 4ffecae7be320124ad0c4e71e39e142b7aa8db0e70b5f486f491d7a33ea31efc6464c6abeea77df02a8bd5cf81f08225d625c8af5c27f9afa32c0d7d989f7a3c
DIST gcc-13.2.0.tar.xz 87858592 BLAKE2B 0034b29d3d6cc05821f0c4253ce077805943aff7b370729dd203bda57d89c107edd657eeddc2fb1e69ea15c7b0323b961f46516c7f4af89a3ccf7fea84701be2 SHA512 d99e4826a70db04504467e349e9fbaedaa5870766cda7c5cab50cdebedc4be755ebca5b789e1232a34a20be1a0b60097de9280efe47bdb71c73251e30b0862a2
@@ -42,6 +43,7 @@ DIST gcc-14-20260604.tar.xz 88473776 BLAKE2B 0d022d76185b04d314b05ee0e7906b030df
DIST gcc-14-20260611.tar.xz 88470760 BLAKE2B b4c70945e290ce5a6eff36161ca0d3678dc809910e02785b9e3ac52664a6cf1ed8a824d3f4820572b77feafdd247d19f3b5aecd82d324bf29f2eb968a6b5e8fd SHA512 a66030357aaf596263386d3d91d686a739e77b6200a3fcbba40accc70049282efbd42a16323dd5c539a21239645c01ad625fd1ab537d8c9fa5b573e38ee59d3d
DIST gcc-14-20260618.tar.xz 88486332 BLAKE2B 51717d015582d4b6e8690abb731681029354c53b8fdf6d8c4ff06d10aaae70ba8d89029c52d10c4e6792e09357378e8691ee96bbc77cdba28f5a12a5b2adefbb SHA512 1edaefad5cb9d76c364208e0b4fae5f3a7ba0583866551b1f48b41893ef4f902746812b8ab53c050e5c429db21c24693d48882b37b3df2881dbb9988e25846fa
DIST gcc-14-20260716.tar.xz 88509636 BLAKE2B 1e31c1c969a3ee7184d6e466dc9bf627e67e98f2c61fc4d34a74b02d7128718f7e8d0eb3a178b4e9734665fe93eeccf42e9bf5ba80e62b583044dab93b7939b1 SHA512 c587f5568ae6e8b9089dcb5e4753ad3ef5d807c3c30d329407e6be093e0a0ef26906c8dbc33a5aef20168371c10ded69c067e05acf42696eee45ade981ade321
+DIST gcc-14-20260723.tar.xz 88515920 BLAKE2B 256ee68d45b9bff530ae6d7d19ab5b2419a339a0a7a6deacc7a889c0a0fa0ae3b80a9de8ea4160b47376b1bd088d77c2348206b5781a1759201d9bf539dea927 SHA512 ee56897d9693e4d15574648cb6bec61c48fc9cf3aaf343228e9f9c988e8264b71da471b13591ea4e12092aa32216ce951e6f066226483d51b081048cf6832991
DIST gcc-14.3.0-musl-patches-2.tar.xz 6888 BLAKE2B e2f9ce6d445b7ced8f78c18585887422ffdd32356368a456a7cfde5a1854515b32546c1d25a2ab8637ee62d04a2c0bda1afc8d53c44e5c80c12499918c3c18fc SHA512 0b59d228213024cd93d9ffbd4ae5947021db2dc71bd320cc0e4ccf523d39f72e61be25c1a49a343729fe7b9abf7181503de3e650b255d80ab6d969d0de317d19
DIST gcc-14.3.0-patches-4.tar.xz 28116 BLAKE2B 5804f10b40befad1cb9eab4e536377c08aed8c54d3de27f188ae2d52fa7c082a529ad9cb64f9574087afe74e64138c9fc918d653bd2c1d062b8b68d5c7ab640d SHA512 75ee4895efea0131107cf664a0f9fd10f38da0d0f93704e1920778e07f1a860d872a97e1e528f8e1ab754cca25948bb09c444b80cc04f5ae3a516336290bb99c
DIST gcc-14.3.0-patches-5.tar.xz 53952 BLAKE2B 3e5f63d760caf3c18c0f683c00170bb71998b4f0e15552103359d5c0954144676f6ca60e3e367a94cbdff0ab9bec21f3e04e30c38aae8f7e79911da30e6aeb76 SHA512 1702b7f6ee791468d02fcb9d418d2dd48e10cd6dc6eab0cf455aaf848bb78d953b00690fd78cab1ddd5af02acc237072c99ee43f0e512ae3e2e5f922f40f0dfe
@@ -63,6 +65,7 @@ DIST gcc-15-20260626.tar.xz 92467392 BLAKE2B 550f3c27ca29390f25930bd457457062bbc
DIST gcc-15-20260703.tar.xz 92460800 BLAKE2B 861549f8c17d79f9613e85ae455989e1ec96aa7d8da872e88254c70193fa2ab26918918ae8a290a5aa8986a55f1d91b3854fee308c5a8c86b960204ff750fbd5 SHA512 0a6889326713c1bac4486512f0d34ac6576293810ab5dd6678766185889e8f55c1af841dca5b3240e89c7aa3421be1fdccfcaf3f20ca58fbbfcf1bd25c958d9c
DIST gcc-15-20260710.tar.xz 92477556 BLAKE2B 2517f39cc25e43ef36ed6de251ecdadf93a604f1de3f95f4fbf26eee8d52f13581e8065890a86a851227dac0709ea5250b4fd1830b64e8ca4110f13ba055c3a2 SHA512 45609630f6207327d7dc5a7e076b6105afb67a4bfa03ee17e392ae14fecb674cb530fe5068f8023f8a5569110fa4ca734d14d7490c11b28e838ba66be33053ae
DIST gcc-15-20260717.tar.xz 92482140 BLAKE2B ae84ad42a0f5a35a36c362340298c94c8e8a64c7695102bb3a29b394527033186bf3599323ae8b1a478e215806cee702bfa48740421c504eefbafacbe74d2086 SHA512 91aaf673637458ebf73df2b1d87c21c9cbf432211b98e6dff965ae0f073f2ea8be8921a9828711fb6c10b9b3ec2e20213d118a05c08f31b8192ab291b448375d
+DIST gcc-15-20260724.tar.xz 92484484 BLAKE2B 5d4803dbf9123408e941f923318b1d9a3a398194113556f87bac9a7b417cba2dec16307b5448bdea91b447000ee860fcb90ac9323465512494ce8c72d179af7b SHA512 4119a5b2eb8312f666dc31946c57f51e308f573f39860ac5db950cc4886920212519f1b4cc9beef588a29d6f6842b60b29f529925fe2014bdd92d8593187ae0c
DIST gcc-15.2.0-musl-patches-1.tar.xz 7168 BLAKE2B 6b7cfb123c3a691693240db815e6852a1e6c3820baa499368c463e0a0c1490c701053cfea10bf1d33f89dd2ba7bbddf63c4e6e0976590e3aaf1fee78b9282079 SHA512 ab80ffd69b9ead1fe06a9433faaa97ae53947d214999e77ea363fa6435de080d031a1aa6869e1dc088e800317952f2dc249a9e872113db56fb76f0a432240871
DIST gcc-15.2.0-patches-2.tar.xz 18708 BLAKE2B 09c54bd1b8436e12a3da1c3ee41017cd3e960268a5d4637252152b44a4cc93934d4dc93eff842d7dcee4d1688b7f2d98be48114ef5c864793242177f7549c933 SHA512 f11cfafe00f7d18e05a316bd1dc522477cc4118fdd65019cf85bca674ff0180951506fef84ce0b5b13190ccfe44c777a64afdc602a4580595005b43b79ae7411
DIST gcc-15.2.0-patches-4.tar.xz 19912 BLAKE2B 255d6435fe5b205d23d04eb885c55b421b1e6ffc30623fad5fe8a4cee5582f210e9851165b0976629d7e49288366a14635acdf1ad70f6d2fe288bdf88a9416a5 SHA512 f36c0a1e8abbb25cebfd93965950c072f33d8dbbc0be285e8e374a3602fe7e7cae3dfe44f24856d2231bcbfb40fe0c1de3b629e2f573d97f82212a7acf52ccc8
@@ -84,6 +87,7 @@ DIST gcc-16-20260627.tar.xz 98980236 BLAKE2B 48c1a93aa5bc19b8253a434e5d618cc90c8
DIST gcc-16-20260704.tar.xz 98986144 BLAKE2B b076e3ead68d27af90c9154c3b0e56fbb6fa07cf7d6d951ae56bec32071487a156c7cbf26bf56a0c29cd3292dbda51b338bcd58f80438d39e08f252effe9afac SHA512 c3501b4a21c4de8dd6cb28b03cb42e9f6d167491ef39f8957d8995e14c4608fa7de9fe3c4ed9fbc0ad169fb24e2d40fdec1e6689c2abf0bc1e57126e1025ec26
DIST gcc-16-20260711.tar.xz 98998588 BLAKE2B 43a6fc591a66a240ec31f301eb5f38bf851e53750a720360f413fdb626ba74c56d5f9c949341d5320b6524003cfae6a712f063664a61da55f1bd968653a56fad SHA512 20b287bf06e263675c8f9bea7ae65432d375ab2005ebcdd7373d60b22ba87b3dfb7808f19167e251ad2c0fbf4d9d21ee1c8cb3736b3b349cbb2f98a25bf921b0
DIST gcc-16-20260718.tar.xz 99011700 BLAKE2B 727ad34ae3f964ad86edd072c159cbb5201efd0cb5996cd515895e1f024a44572090e6595a1082509244b5a7fc4faf3bd75eee07883246905fbb66b9d6effa02 SHA512 b621bd5a602468576cbd563fec4a1a2f1b71e89a9f248403d3dd92d8d1c3d7e6439e93eed912d78f71b9ca0e3acff7f786ecb62d9560ba837dcaaddc6b38d946
+DIST gcc-16-20260725.tar.xz 99059320 BLAKE2B a7573939ff5e0f57cebfd3a570622a9c4f0c55834b1d7be2d6d85b0afe94a5431a51aaae041016464252b03dac04dbae3089968571b51567133da00aac136fbe SHA512 16d82c8f3d4d644d63c34120d101b54f6dc421efd2111deacd25b08252f1154b29bf8a0b52c4d57d816a05f9ab1d7293aab54bf5e8840fd2b49ccb009fad9974
DIST gcc-16.1.0-musl-patches-1.tar.xz 3036 BLAKE2B 348d0233c92e6b269011342a170989bb6375ff267b6ecfc00aafab2f793b925f1cccd654f438a4f88168a7999cab965aadfb6dfc9957a9b1a5bca62c326e0b84 SHA512 dc9c2d4a6e9088ad245039a962333ecba8476288844c686e7df9c867c8018451fccbd645a5690d554ee39809e6467285b3c619553edfed379c5f84c003bcb7e5
DIST gcc-16.1.0-patches-1.tar.xz 25128 BLAKE2B 487f8e1f204b8218ae54ef093fd3b99dd94a24e0fdc22ac37182b28e382e5601edc85e9af5c8374e76a576c8e8280cb84603e6f60bfb645a2adff5ee8e2e0070 SHA512 f5b4aefa101cef70c6bd78c689e90b0a30db14718ae2ff01827fe13af793f812616f16cc705fa333676f31025f3e840e243ef52851d32278b86d8b515589a2d9
DIST gcc-16.1.0-patches-2.tar.xz 26584 BLAKE2B 3597414aa1bedace5444834778bb666fc3372f3703975d5bc4656a792dbe498a76be582254bb3400f157cfcce2925c117d19595380fa2ffb6dab1e6f0d36ad57 SHA512 480a457b8944df5dd189c912d76457d650c348bce161465fd6031dd7c2803f8f9b26ef31b4ae8a8770c88eaa9c59a42c06ee1be3e1c8ec718974dda8b38a84ad
@@ -102,8 +106,10 @@ DIST gcc-17-20260628.tar.xz 99479040 BLAKE2B 0cc20cccf6acd0efbabc0e7a2282bb694af
DIST gcc-17-20260705.tar.xz 99562960 BLAKE2B 940a4601a98682bf268e8f992991866629749bb6ec3613c708c2cbb48829b0315ee7f8bdcb0de34398ba7d3a4a89ea5a538641c145523bda444e36ceed55d673 SHA512 2b76d0549aa6184d75e0cb9ab58210141ed920804eaad28642c8e5423063c1a0295115ee3df9488352b1051e0c01775ac021c8d85d2669b8c2653de598334dd1
DIST gcc-17-20260712.tar.xz 99644004 BLAKE2B 44ec1406c4a244680784f5b0b58680fa46e15c4f6d91b5222d38a24a45c8e8e26df8cec431183a42b94b2b775ac5e680219dfe8e8ff70d56bab9446582bdc9e7 SHA512 805fdb8def2362c9cc87087c86d2a144076371cf3f2da0bfe9ccb2cfcd7b04f40db36869972476bf936213e6eb4aa1a45a2248175a3d717308490f74941171cd
DIST gcc-17-20260719.tar.xz 99705072 BLAKE2B 1b1df12903d2764a55bbaf84e124049102ede274669af17092614670aa1dc74646e60521b1c6dcf13fd4d2979605d02e26b1ff711048cd3727e45d22dfdc694a SHA512 2c102293aeaaa13b046d0f68e6b6ba98b6e1fcf2540437e2dfbb3d07b2b44ab3d7f2b6cfea2a96fbed5cfd28b2aa285bfcb202dc996cbb524255bcf84b098fbc
+DIST gcc-17-20260726.tar.xz 99770080 BLAKE2B 2c3f137cf3a01c57f879a0e84d45815e271cce13d6f043ad5ae12281d4b30d4c5ab6a86a42133683ed2a4ff09250b16846d0f6484880f78fd1b7b9d902231c70 SHA512 6a503ca0cdd5fd6eedfd28ef408581dabefeb603b1e5ec472c99e4b6152af1cb5c23524b27f2503369554f127578f0119d38cb7095ba375ab26ac86be6397dd9
DIST gcc-17.0.0-musl-patches-1.tar.xz 3040 BLAKE2B cc39906facd9c395bae9f87c67124066b8081521df39857d752f1e398dca5113240d24a836ca0f793313f954d6c38ff39961bf71a8036a1d5bc62751e71eb7c9 SHA512 4e330ee1c87229ba30644ad7a6841683aba368ce00585b5a7af433f215e248534a8d81f6f95fcf7b348c7d9aeaf1eeae015d76601e3d918a0ca39d94ed7e521c
DIST gcc-17.0.0-patches-1.tar.xz 25196 BLAKE2B 7db76cfcc56556489c5c0698bad9d8f8f41d57f81ee439c7dc57add47858226fc37e8818e1644be69eff7322d4823b28571784dc0166624c866868b92c9f6e42 SHA512 9349836f0578d121b2b824c91f6ec18e5df3c4fc811f9b5e118e0ee957f9983cb2ff3b8b254b5dd912b5b1113259a3e2ac5e7b06c7c121ba9ca964c89a73bfa0
+DIST gcc-17.0.0-patches-10.tar.xz 23180 BLAKE2B d0a6bcd57675fbd6090341896f0b8427f04ae1a19c1eba37109de08d474cc857283ea9a64e751710d8266e976c07e07f534b55a6c8b683fa7afb3810b2551f9f SHA512 5e7fb665b2468cd8bc68e573a3e883ed70d4f5688d416fd1c471e2441bad95b6117ebdd433b49c8fbc34c937bc291dc1bcc5f99e1913b611d8833445b2d816d1
DIST gcc-17.0.0-patches-2.tar.xz 25148 BLAKE2B 0d1358c7cca8ed3779d0b618160fa31105dd1a84f0b84f351edaf0095e5e72cc59e204b70f843a7c327c4ea8a243c2ddfddfefc61ce1b1bc6275855cf84f4abc SHA512 80bc3b6369a602b4705f8ae658962c5ab23e3e93bcb91fa551ca9e180e3a8cdea534190d21702313a4bf8bbdbf26c6984eee53ee3c5a346ce4cee549b376f1ca
DIST gcc-17.0.0-patches-3.tar.xz 27364 BLAKE2B e7c039dbfb942f5f61b7faed8cd0fd31d52ae27ba256da98722eea8af5d692702faf1419e79d7c34e6d462cb7f4b3dd64ca47e4cd2527209ebbbbc4be819e1fa SHA512 e1ec00b76407aaf640f8b06d626ee85074fed1e936c14ee48f177796f4fd0100aa2e372e31181c84d7feea0c5b1e5a08e9619d572090196e5d1462bdba619450
DIST gcc-17.0.0-patches-4.tar.xz 26632 BLAKE2B 69b491f3b1be38c9d0c72510b9f31a12cc8149f3d7125897095ebeafadc2a99596287a38fd8206af85b49831b336bab7e96920a56a44071d4834dd9aa4297975 SHA512 3c983d9df9a308fdc442b5453c3dd66f27fa731afd4dedc906e0841c23cd8e6f9b8c1ae5de5ac3466e5e0ea923cc6df0af46893ea7dce78135b74c494a0fecca
diff --git a/sys-devel/gcc/gcc-13.4.1_p20260722.ebuild b/sys-devel/gcc/gcc-13.4.1_p20260722.ebuild
new file mode 100644
index 000000000000..1b48162dfa0d
--- /dev/null
+++ b/sys-devel/gcc/gcc-13.4.1_p20260722.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="13.3.0"
+MUSL_GCC_VER="13.3.0"
+PATCH_VER="9"
+MUSL_VER="3"
+PYTHON_COMPAT=( python3_{13..14} )
+
+if [[ ${PV} == *.9999 ]] ; then
+ MY_PV_2=$(ver_cut 2)
+ MY_PV_3=1
+ if [[ ${MY_PV_2} == 0 ]] ; then
+ MY_PV_2=0
+ MY_PV_3=0
+ else
+ MY_PV_2=$((${MY_PV_2} - 1))
+ fi
+
+ # e.g. 12.2.9999 -> 12.1.1
+ TOOLCHAIN_GCC_PV=$(ver_cut 1).${MY_PV_2}.${MY_PV_3}
+elif [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+
+ eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ eapply_user
+}
diff --git a/sys-devel/gcc/gcc-14.4.1_p20260723.ebuild b/sys-devel/gcc/gcc-14.4.1_p20260723.ebuild
new file mode 100644
index 000000000000..b4578274f0d3
--- /dev/null
+++ b/sys-devel/gcc/gcc-14.4.1_p20260723.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="14.3.0"
+PATCH_VER="6"
+MUSL_VER="2"
+MUSL_GCC_VER="14.3.0"
+PYTHON_COMPAT=( python3_{13..14} )
+
+if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=releases/gcc-$(ver_cut 1)
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # m68k doesnt build (ICE, bug 932733)
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+
+ eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ eapply_user
+}
diff --git a/sys-devel/gcc/gcc-15.3.1_p20260724.ebuild b/sys-devel/gcc/gcc-15.3.1_p20260724.ebuild
new file mode 100644
index 000000000000..13c1da8a4cb1
--- /dev/null
+++ b/sys-devel/gcc/gcc-15.3.1_p20260724.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="15.2.0"
+PATCH_VER="8"
+MUSL_VER="1"
+MUSL_GCC_VER="15.2.0"
+PYTHON_COMPAT=( python3_{13..14} )
+
+if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=master
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+ eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch
+ eapply_user
+}
diff --git a/sys-devel/gcc/gcc-16.1.1_p20260725.ebuild b/sys-devel/gcc/gcc-16.1.1_p20260725.ebuild
new file mode 100644
index 000000000000..4ac77031fb7a
--- /dev/null
+++ b/sys-devel/gcc/gcc-16.1.1_p20260725.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="16.1.0"
+PATCH_VER="3"
+MUSL_VER="1"
+MUSL_GCC_VER="16.1.0"
+PYTHON_COMPAT=( python3_{13..14} )
+
+if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=master
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+ eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch
+ eapply_user
+}
diff --git a/sys-devel/gcc/gcc-17.0.0_p20260726.ebuild b/sys-devel/gcc/gcc-17.0.0_p20260726.ebuild
new file mode 100644
index 000000000000..5111cc50e5fc
--- /dev/null
+++ b/sys-devel/gcc/gcc-17.0.0_p20260726.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Maintenance notes and explanations of GCC handling are on the wiki:
+# https://wiki.gentoo.org/wiki/Project:Toolchain/sys-devel/gcc
+
+TOOLCHAIN_HAS_TESTS=1
+PATCH_GCC_VER="17.0.0"
+PATCH_VER="10"
+MUSL_GCC_VER="17.0.0"
+MUSL_VER="1"
+PYTHON_COMPAT=( python3_{13..14} )
+
+if [[ -n ${TOOLCHAIN_GCC_RC} ]] ; then
+ # Cheesy hack for RCs
+ MY_PV=$(ver_cut 1).$((($(ver_cut 2) + 1))).$((($(ver_cut 3) - 1)))-RC-$(ver_cut 5)
+ MY_P=${PN}-${MY_PV}
+ GCC_TARBALL_SRC_URI="mirror://gcc/snapshots/${MY_PV}/${MY_P}.tar.xz"
+ TOOLCHAIN_SET_S=no
+ S="${WORKDIR}"/${MY_P}
+fi
+
+inherit toolchain
+
+if tc_is_live ; then
+ # Needs to be after inherit (for now?), bug #830908
+ EGIT_BRANCH=master
+elif [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
+ # Don't keyword live ebuilds
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ :;
+fi
+
+if [[ ${CATEGORY} != cross-* ]] ; then
+ # Technically only if USE=hardened *too* right now, but no point in complicating it further.
+ # If GCC is enabling CET by default, we need glibc to be built with support for it.
+ # bug #830454
+ RDEPEND="elibc_glibc? ( sys-libs/glibc[cet(-)?] )"
+ DEPEND="${RDEPEND}"
+fi
+
+src_prepare() {
+ local p upstreamed_patches=(
+ # add them here
+ )
+ for p in "${upstreamed_patches[@]}"; do
+ rm -v "${WORKDIR}/patch/${p}" || die
+ done
+
+ toolchain_src_prepare
+ eapply "${FILESDIR}"/${PN}-13-fix-cross-fixincludes.patch
+ [[ ${CHOST} == m68k-* ]] && eapply "${FILESDIR}"/${PN}-15-m68k-workaround.patch
+ eapply_user
+}
diff --git a/sys-fs/ncdu/ncdu-2.9.2.ebuild b/sys-fs/ncdu/ncdu-2.9.2.ebuild
index a85754f32b8f..f98c84f19f5d 100644
--- a/sys-fs/ncdu/ncdu-2.9.2.ebuild
+++ b/sys-fs/ncdu/ncdu-2.9.2.ebuild
@@ -18,7 +18,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64"
+KEYWORDS="amd64 ~arm64"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-yorhel )"
DEPEND="
diff --git a/sys-kernel/git-sources/Manifest b/sys-kernel/git-sources/Manifest
index ec1a30732d2b..bb5e3c06e5e6 100644
--- a/sys-kernel/git-sources/Manifest
+++ b/sys-kernel/git-sources/Manifest
@@ -3,3 +3,4 @@ DIST patch-7.2-rc1.patch 66285326 BLAKE2B dc79502b61dcabe7e8dba9809ce445187cb45a
DIST patch-7.2-rc2.patch 67371285 BLAKE2B ff1a14ea8b823f22d61869d817d454ebb5d1989459bea6130c5f8d58a5e8dacc8abd645ff93fc126fe64118e6c6d371a314c440bd9cc8728cf6db652a6d85838 SHA512 10f5fd0e25eeea0cd239974edfb4674fa4c48de4bdc5a158e361d757403030ae534b93a8725823a5367c13162194beb1c780152760eee5d886e61a043cc28938
DIST patch-7.2-rc3.patch 67920691 BLAKE2B 146416fb494f9d2daa6b77b20253d308eebadd58790f3bf9b2d4c60f5f92fd58787f274dc1933353fbbcc3dcfd798e2869f130d91e06016a49735e9657c9cb5a SHA512 2bf02d65cf74f2baca54f4d711d746ea8f31ec46414cdeed85f1878364a4d1a4992de2bc02c68d127eb64e830893e4d535802254cd22b28f20031507aec62a43
DIST patch-7.2-rc4.patch 68480836 BLAKE2B c2336bd13a35b0901a60d6e4b9d74d0a66e25b2817f97de840644f40205a9f2bfdd15923c3764660d4d6ddb706672e541a2e7c3a4c828a5d4a79b460825e5ffa SHA512 c9323f758a33e09a6361ccb21baa819e3df05ec2a05e4bd31bc6929c78f57d9435852611e97ab028ed9fe68969f89d707ef088cdc219a3dda52785f8c9eb9527
+DIST patch-7.2-rc5.patch 69138794 BLAKE2B 2023df56db4101182dd1be1dc6d9506e3e29b62516a632a646d2a1938a2408f3e66c9e827972bdadfc41997f191db21be913db3a4773f7f8cf1fabd1715f669f SHA512 29abf5f012a8ceca43b087a90d3f3c8f0832fe5d80ce23cc01f3b3a8f1cd75da0ec2132f8c7c78b7e50e98381cf2cde6d7411055f188bd234c508af83ca41f6b
diff --git a/sys-kernel/git-sources/git-sources-7.2_rc5.ebuild b/sys-kernel/git-sources/git-sources-7.2_rc5.ebuild
new file mode 100644
index 000000000000..b9c6828ffddd
--- /dev/null
+++ b/sys-kernel/git-sources/git-sources-7.2_rc5.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+UNIPATCH_STRICTORDER="yes"
+K_NOUSENAME="yes"
+K_NOSETEXTRAVERSION="yes"
+K_NOUSEPR="yes"
+K_SECURITY_UNSUPPORTED="1"
+K_BASE_VER="7.1"
+K_EXP_GENPATCHES_NOUSE="1"
+K_FROM_GIT="yes"
+K_NODRYRUN="yes"
+ETYPE="sources"
+CKV="${PVR/-r/-git}"
+
+# only use this if it's not an _rc/_pre release
+[ "${PV/_pre}" == "${PV}" ] && [ "${PV/_rc}" == "${PV}" ] && OKV="${PV}"
+inherit kernel-2
+detect_version
+
+DESCRIPTION="The very latest -git version of the Linux kernel"
+HOMEPAGE="https://www.kernel.org"
+SRC_URI="${KERNEL_URI}"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+K_EXTRAEINFO="This kernel is not supported by Gentoo due to its unstable and
+experimental nature. If you have any issues, try a matching vanilla-sources
+ebuild -- if the problem is not there, please contact the upstream kernel
+developers at https://bugzilla.kernel.org and on the linux-kernel mailing list to
+report the problem so it can be fixed in time for the next kernel release."
+
+DEPEND="${RDEPEND}
+ sys-devel/patch"
+
+pkg_postinst() {
+ postinst_sources
+}
diff --git a/sys-libs/glibc/Manifest b/sys-libs/glibc/Manifest
index 4153cd4d6622..90f80b449004 100644
--- a/sys-libs/glibc/Manifest
+++ b/sys-libs/glibc/Manifest
@@ -37,6 +37,9 @@ DIST glibc-2.43-patches-2.tar.xz 90172 BLAKE2B 9927b0bfc836597047e2c268a1d5c7b59
DIST glibc-2.43-patches-3.tar.xz 99856 BLAKE2B 4bc4b2fc9b23e7e2d295b8f87919ed676147d3520b27e773db48200768c3f6647a4383fcf8962881611d622ddbc71fe1bc3732fbb7df5c1968ea78ab047226a6 SHA512 0070d0b8552f8385e3133f522dfb563b9fa5f5663e1cce3c4b99a4e1d9da57a4c0305e3908f1c739f4e17113f4775b253af83fc8ee3885a0305aebc970314edf
DIST glibc-2.43.tar.xz 20297012 BLAKE2B a764edf3d0d52809aa94cf1a8f73341159d226ecc2a595aa3c9e1d1fd4b2d4eb9a599d70bda8812b73d8ef58b39746efdd34026772e38c0f091fe071d461ea98 SHA512 25765f86bf54a22fc69dd13023ec9be59bd7e1f9d6ea1630cf21851898df2043bb8a01538c4b5fdd06495d0163289362b0768b391b0617f709b89a777168291c
DIST glibc-2.43.tar.xz.sig 1018 BLAKE2B 99fb3f296795498f6de8090d537e32d8af0bfa75c7d8145ba4c35ca1b54c281fd2b9cb121886aef1800c0a6e508244914a2de67339d113561a9fc2c515110924 SHA512 6e26f0edee146710bcb73c3890c455e8b479009f99d284c43ea695b73bfe45e4ba47d1460300ce8c7496689b0c21a1c77e6359e005957973648b86755160c8f5
+DIST glibc-2.44-patches-1.tar.xz 29216 BLAKE2B ba7ef5f516353b87bbb399f3e4eecd8bfb3779c572552a900eb9de7340044b9f943ebd040e0e817f1318631bdfe1843695607897597fe07dc72651eee5ffc5c0 SHA512 2d8765ecd7f37d489252ae8de7b64e6677e4d80a463ca59f6b5b0914305bcb704468781d4cbed85b6ccec2762c662cd0db60553e32cb5b55cbdace951037c391
+DIST glibc-2.44.tar.xz 20620544 BLAKE2B f943e302ad4e44a204e4c5d85460653bec030717c2a502f16764d74bd6d87c280e126f37820b96ec726aff611a8c4e0dba95a7b4d72907adcb0aa88d304e4823 SHA512 963dc0275f7738653379909b64ee32e28f13cca77440f2cf9bd0ab82cb183f6cd1f7376d25cc5442de69b972713bd81bf0e38dbcca9b2a4d6649843e76fd50a5
+DIST glibc-2.44.tar.xz.sig 870 BLAKE2B 0ecb4965c61714a49f871b3ac24cafe8d6b79ce039c5364082fd8e61f6ac4102f0fab8b26f130707daf9ec6dad5a9b29198e56533ea3d7d3351538ada3f52f02 SHA512 e2034e369d2c233c9f9e155d6bc4b5e7472cace8a000253514a08b4dac3be6ed59cafe9aa6ceea2bdd07678291528c7937b358f43ab02a6f09422e7498837494
DIST glibc-systemd-20210729.tar.gz 1480 BLAKE2B 37722c7579df782d890e44dbab99c3de52ab466eb9de80d82405e9bb5620bf39ffc8c5f466a435bdb86ef6d36dd7019c0736573916bda6c67d02a2581e0ec979 SHA512 efd75af58b50522c28cdac7abd1fc56555bc1bb042512c90d8340c1ec09c5791b3872a305bf83723252bbde5855b75d958c041083457765c4cfd170732d09238
DIST glibc-systemd-20210814.tar.gz 1469 BLAKE2B 10fa7bcb46d4fdce9c0ab353cbd30871e9b09a347a13a9c9a3b5777f931aa3c826c158d2e49532c604d4a834f2fab4089b67495fb88d0398945dc50d45ad9ef1 SHA512 5346a9ea459a1e6ccf665389f2a294de1e16f1e3e05cdf07e3dd99ed0e4f6f8b52cc333d4bff3c75ac90ab6ce70cd4ab2b3e126f920ce7979abd6dda56315efc
DIST locale-gen-2.00.tar.gz 7738 BLAKE2B cde6de5ba3400aea24d0d5f1b79471f89f09fb747c8e371e38316c7ada92f967e0865f573f23cb353d82419c234724143c0aeca9eb70eb945dfc581cc7491eb1 SHA512 b609fddb9ec5e567c008841fef3390eddb5d6e7699a8271b3b8c0ade1b44b0ac2e5d1daa8b9acabf3432e3b88110b538a96f209b1ad0f9e988b7efce66606dff
diff --git a/sys-libs/glibc/glibc-2.44.ebuild b/sys-libs/glibc/glibc-2.44.ebuild
new file mode 100644
index 000000000000..7b39f481948a
--- /dev/null
+++ b/sys-libs/glibc/glibc-2.44.ebuild
@@ -0,0 +1,1934 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bumping notes: https://wiki.gentoo.org/wiki/Project:Toolchain/sys-libs/glibc
+# Please read & adapt the page as necessary if obsolete.
+
+PYTHON_COMPAT=( python3_{13..14} )
+TMPFILES_OPTIONAL=1
+
+EMULTILIB_PKG="true"
+
+# Gentoo patchset (ignored for live ebuilds)
+PATCH_VER=1
+
+# gcc mulitilib bootstrap files version
+GCC_BOOTSTRAP_VER=20201208
+
+# systemd integration version
+GLIBC_SYSTEMD_VER=20210729
+
+# Minimum kernel version that glibc requires (used with USE=old-kernel)
+MIN_KERN_VER_UPSTREAM="3.2.0"
+
+# Minimum kernel version that Gentoo recommends (oldest in the tree)
+MIN_KERN_VER_GENTOO="6.1.0"
+
+# Minimum pax-utils version needed (which contains any new syscall changes for
+# its seccomp filter!). Please double check this!
+MIN_PAX_UTILS_VER="1.3.3"
+
+# Minimum systemd version needed (which contains any new syscall changes for
+# its seccomp filter!). Please double check this!
+MIN_SYSTEMD_VER="254.9-r1"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/glibc.asc
+
+inherit python-any-r1 prefix preserve-libs toolchain-funcs flag-o-matic gnuconfig \
+ multilib systemd multiprocessing tmpfiles eapi9-ver verify-sig
+
+DESCRIPTION="GNU libc C library"
+HOMEPAGE="https://www.gnu.org/software/libc/"
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+else
+ #KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ SRC_URI="mirror://gnu/glibc/${P}.tar.xz"
+ SRC_URI+=" https://distfiles.gentoo.org/pub/proj/toolchain/glibc/patches/${P}-patches-${PATCH_VER}.tar.xz"
+ SRC_URI+=" verify-sig? ( mirror://gnu/glibc/${P}.tar.xz.sig )"
+fi
+
+SRC_URI+=" multilib-bootstrap? ( https://dev.gentoo.org/~dilfridge/distfiles/gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz )"
+SRC_URI+=" systemd? ( https://gitweb.gentoo.org/proj/toolchain/glibc-systemd.git/snapshot/glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz )"
+
+LICENSE="LGPL-2.1+ BSD HPND ISC inner-net rc PCRE"
+SLOT="2.2"
+IUSE="audit caps cet clang compile-locales custom-cflags doc gd hash-sysv-compat headers-only +multiarch multilib multilib-bootstrap nscd old-kernel perl profile selinux sframe +ssp stack-realign +static-libs suid systemd systemtap test vanilla"
+
+# Here's how the cross-compile logic breaks down ...
+# CTARGET - machine that will target the binaries
+# CHOST - machine that will host the binaries
+# CBUILD - machine that will build the binaries
+# If CTARGET != CHOST, it means you want a libc for cross-compiling.
+# If CHOST != CBUILD, it means you want to cross-compile the libc.
+# CBUILD = CHOST = CTARGET - native build/install
+# CBUILD != (CHOST = CTARGET) - cross-compile a native build
+# (CBUILD = CHOST) != CTARGET - libc for cross-compiler
+# CBUILD != CHOST != CTARGET - cross-compile a libc for a cross-compiler
+# For install paths:
+# CHOST = CTARGET - install into /
+# CHOST != CTARGET - install into /usr/CTARGET/
+#
+export CBUILD=${CBUILD:-${CHOST}}
+export CTARGET=${CTARGET:-${CHOST}}
+if [[ ${CTARGET} == ${CHOST} ]] ; then
+ if [[ ${CATEGORY} == cross-* ]] ; then
+ export CTARGET=${CATEGORY#cross-}
+ fi
+fi
+
+# Note [Disable automatic stripping]
+# Disabling automatic stripping for a few reasons:
+# - portage's attempt to strip breaks non-native binaries at least on
+# arm: bug #697428
+# - portage's attempt to strip libpthread.so.0 breaks gdb thread
+# enumeration: bug #697910. This is quite subtle:
+# * gdb uses glibc's libthread_db-1.0.so to enumerate threads.
+# * libthread_db-1.0.so needs access to libpthread.so.0 local symbols
+# via 'ps_pglobal_lookup' symbol defined in gdb.
+# * 'ps_pglobal_lookup' uses '.symtab' section table to resolve all
+# known symbols in 'libpthread.so.0'. Specifically 'nptl_version'
+# (unexported) is used to sanity check compatibility before enabling
+# debugging.
+# Also see https://sourceware.org/gdb/wiki/FAQ#GDB_does_not_see_any_threads_besides_the_one_in_which_crash_occurred.3B_or_SIGTRAP_kills_my_program_when_I_set_a_breakpoint
+# * normal 'strip' command trims '.symtab'
+# Thus our main goal here is to prevent 'libpthread.so.0' from
+# losing it's '.symtab' entries.
+# - similarly, valgrind requires knowledge about symbols in ld.so:
+# bug #920753
+# As Gentoo's strip does not allow us to pass less aggressive stripping
+# options and does not check the machine target we strip selectively.
+
+# We need a new-enough binutils/gcc to match upstream baseline.
+# Also we need to make sure our binutils/gcc supports TLS,
+# and that gcc already contains the hardened patches.
+# Lastly, let's avoid some openssh nastiness, bug 708224, as
+# convenience to our users.
+
+IDEPEND="
+ !compile-locales? ( sys-apps/locale-gen )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-misc/pax-utils-${MIN_PAX_UTILS_VER}
+ sys-devel/bison
+ compile-locales? ( sys-apps/locale-gen )
+ doc? (
+ dev-lang/perl
+ sys-apps/texinfo
+ )
+ sframe? ( >=sys-devel/binutils-2.45 )
+ test? (
+ dev-lang/perl
+ >=net-dns/libidn2-2.3.0
+ sys-apps/gawk[mpfr]
+ )
+ verify-sig? ( sec-keys/openpgp-keys-glibc )
+"
+COMMON_DEPEND="
+ gd? ( media-libs/gd:2= )
+ nscd? ( selinux? (
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap )
+ ) )
+ suid? ( caps? ( sys-libs/libcap ) )
+ selinux? ( sys-libs/libselinux )
+ systemtap? ( dev-debug/systemtap )
+"
+DEPEND="${COMMON_DEPEND}
+"
+RDEPEND="${COMMON_DEPEND}
+ !<app-misc/pax-utils-${MIN_PAX_UTILS_VER}
+ !<sys-apps/systemd-${MIN_SYSTEMD_VER}
+ perl? ( dev-lang/perl )
+"
+
+RESTRICT="!test? ( test )"
+
+if [[ ${CATEGORY} == cross-* ]] ; then
+ BDEPEND+=" !headers-only? (
+ >=${CATEGORY}/binutils-2.27
+ >=${CATEGORY}/gcc-6.2
+ )"
+
+ case ${CATEGORY} in
+ *-linux*)
+ DEPEND+=" ${CATEGORY}/linux-headers"
+ ;;
+ *-gnu)
+ DEPEND+=" ${CATEGORY}/gnumach[-headers-only]"
+ ;;
+ esac
+else
+ BDEPEND+="
+ >=sys-devel/binutils-2.27
+ clang? ( || ( ( >=sys-devel/gcc-6.2 )
+ ( >=sys-devel/gcc-6.2 >=llvm-core/clang-18 )
+ ( >=llvm-core/clang-18 >=llvm-runtimes/libgcc-18 ) ) )
+ !clang? ( >=sys-devel/gcc-6.2 )
+ "
+ DEPEND+=" virtual/os-headers "
+ RDEPEND+="
+ >=net-dns/libidn2-2.3.0
+ vanilla? ( !sys-libs/timezone-data )
+ "
+ PDEPEND+=" !vanilla? ( sys-libs/timezone-data )"
+fi
+
+# Ignore tests whitelisted below
+GENTOO_GLIBC_XFAIL_TESTS="${GENTOO_GLIBC_XFAIL_TESTS:-yes}"
+
+# The following tests fail due to the Gentoo build system and are thus
+# executed but ignored:
+XFAIL_TEST_LIST=(
+ # buggy test, assumes /dev/ and /dev/null on a single filesystem
+ # 'mount --bind /dev/null /chroot/dev/null' breaks it.
+ # https://sourceware.org/PR25909
+ tst-support_descriptors
+
+ # The following tests fail only inside portage
+ # https://bugs.gentoo.org/831267
+ tst-system
+ tst-strerror
+ tst-strsignal
+
+ # Fails with certain PORTAGE_NICENESS/PORTAGE_SCHEDULING_POLICY
+ tst-sched1
+ tst-sched_setattr
+ tst-sched_setattr-thread
+
+ # Fails regularly, unreliable
+ tst-valgrind-smoke
+
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=31877 (bug #927973)
+ tst-shstk-legacy-1g
+
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=33239
+ test-double-compoundn
+ test-float-compoundn
+ test-float32-compoundn
+ test-float32x-compoundn
+ test-float64-compoundn
+
+ # Fails only in portage. Needs investigation.
+ tst-setvbuf2
+)
+
+XFAIL_NSPAWN_TEST_LIST=(
+ # These tests need to be adapted to handle EPERM/ENOSYS(?) properly
+ # upstream, as systemd-nspawn's default seccomp whitelist is too strict.
+ # https://sourceware.org/PR30603
+ test-errno-linux
+ tst-aarch64-pkey
+ tst-bz21269
+ tst-mlock2
+ tst-mseal-pkey
+ tst-ntp_gettime
+ tst-ntp_gettime-time64
+ tst-ntp_gettimex
+ tst-ntp_gettimex-time64
+ tst-pkey
+ tst-process_mrelease
+ tst-adjtime
+ tst-adjtime-time64
+ tst-clock2
+ tst-clock2-time64
+
+ # These fail if --suppress-sync and/or low priority is set
+ tst-sync_file_range
+ test-errno
+)
+
+#
+# Small helper functions
+#
+
+dump_build_environment() {
+ einfo ==== glibc build environment ========================================================
+ local v
+ for v in ABI CBUILD CHOST CTARGET CBUILD_OPT CTARGET_OPT CC CXX CPP LD \
+ {AS,C,CPP,CXX,LD}FLAGS MAKEINFO NM AR AS STRIP RANLIB OBJCOPY \
+ STRINGS OBJDUMP READELF; do
+ einfo " $(printf '%15s' ${v}:) ${!v}"
+ done
+ einfo =====================================================================================
+}
+
+is_crosscompile() {
+ [[ ${CHOST} != ${CTARGET} ]]
+}
+
+is_linux() {
+ [[ ${CTARGET} == *-linux-* ]]
+}
+
+is_hurd() {
+ # Let's hope this holds for a long time
+ [[ ${CTARGET} != *-linux-* ]]
+}
+
+just_headers() {
+ is_crosscompile && use headers-only
+}
+
+alt_prefix() {
+ is_crosscompile && echo /usr/${CTARGET}
+}
+
+# This prefix is applicable to CHOST when building against this
+# glibc. It is baked into the library at configure time.
+host_eprefix() {
+ is_crosscompile || echo "${EPREFIX}"
+}
+
+# This prefix is applicable to CBUILD when building against this
+# glibc. It determines the destination path at install time.
+build_eprefix() {
+ is_crosscompile && echo "${EPREFIX}"
+}
+
+alt_headers() {
+ echo $(alt_prefix)/usr/include
+}
+alt_libdir() {
+ echo $(alt_prefix)/$(get_libdir)
+}
+alt_usrlibdir() {
+ echo $(alt_prefix)/usr/$(get_libdir)
+}
+
+builddir() {
+ echo "${WORKDIR}/build-${ABI}-${CTARGET}-$1"
+}
+
+do_compile_test() {
+ local ret save_cflags=${CFLAGS}
+ CFLAGS+=" $1"
+ shift
+
+ pushd "${T}" >/dev/null
+
+ rm -f glibc-test*
+ printf '%b' "$*" > glibc-test.c
+
+ # We assume CC is already set up.
+ nonfatal emake glibc-test
+ ret=$?
+
+ popd >/dev/null
+
+ CFLAGS=${save_cflags}
+ return ${ret}
+}
+
+do_run_test() {
+ local ret
+
+ if [[ ${MERGE_TYPE} == "binary" ]] ; then
+ # ignore build failures when installing a binary package #324685
+ CC="${glibc__ORIG_CC}" CXX="${glibc__ORIG_CXX}" CPP="${glibc__ORIG_CPP}" \
+ CFLAGS="-O2" LDFLAGS="" do_compile_test "" "$@" 2>/dev/null || return 0
+ else
+ ebegin "Performing simple compile test for ABI=${ABI}"
+ if ! do_compile_test "" "$@" ; then
+ ewarn "Simple build failed ... assuming this is desired #324685"
+ eend 1
+ return 0
+ else
+ eend 0
+ fi
+ fi
+
+ pushd "${T}" >/dev/null
+
+ ./glibc-test
+ ret=$?
+ rm -f glibc-test*
+
+ popd >/dev/null
+
+ return ${ret}
+}
+
+setup_target_flags() {
+ # This largely mucks with compiler flags. None of which should matter
+ # when building up just the headers.
+ just_headers && return 0
+
+ case $(tc-arch) in
+ alpha)
+ # glibc selects its hand-written assembly mem*/str* routines by the
+ # host triplet's machine prefix (sysdeps/alpha/preconfigure does
+ # machine=alpha/$machine), NOT by the -mcpu codegen flag. With the
+ # bare alpha-*-* CHOST only the generic C is built. Map -mcpu to the
+ # most specific sysdeps/alpha/alphaev* dir that exists (Implies chain
+ # alphaev67 -> alphaev6 -> alphaev5) so the tuned asm is selected.
+ local cpu
+ case $(get-flag mcpu) in
+ 21264a|ev67) cpu="alphaev67" ;;
+ 21264|ev6) cpu="alphaev6" ;;
+ 21164*|ev5|ev56|pca56) cpu="alphaev5" ;;
+ esac
+ [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
+ ;;
+ x86)
+ # -march needed for #185404 #199334
+ # TODO: When creating the first glibc cross-compile, this test will
+ # always fail as it does a full link which in turn requires glibc.
+ # Probably also applies when changing multilib profile settings (e.g.
+ # enabling x86 when the profile was amd64-only previously).
+ # We could change main to _start and pass -nostdlib here so that we
+ # only test the gcc code compilation. Or we could do a compile and
+ # then look for the symbol via scanelf.
+ if ! do_compile_test "" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ filter-flags '-march=*'
+ export CFLAGS="-march=${t} ${CFLAGS}"
+ einfo "Auto adding -march=${t} to CFLAGS #185404"
+ fi
+ # For compatibility with older binaries at slight performance cost.
+ use stack-realign && export CFLAGS+=" -mstackrealign"
+ ;;
+ amd64)
+ # -march needed for #185404 #199334
+ # TODO: See cross-compile issues listed above for x86.
+ if [[ ${ABI} == x86 ]]; then
+ if ! do_compile_test "${CFLAGS_x86}" 'void f(int i, void *p) {if (__sync_fetch_and_add(&i, 1)) f(i, p);}\nint main(){return 0;}\n'; then
+ local t=${CTARGET_OPT:-${CTARGET}}
+ t=${t%%-*}
+ # Normally the target is x86_64-xxx, so turn that into the -march that
+ # gcc actually accepts. #528708
+ [[ ${t} == "x86_64" ]] && t="x86-64"
+ filter-flags '-march=*'
+ # ugly, ugly, ugly. ugly.
+ CFLAGS_x86=$(
+ CFLAGS=${CFLAGS_x86}
+ filter-flags '-march=*'
+ is-flagq '-mfpmath=sse' && append-cflags -msse
+ echo "${CFLAGS}"
+ )
+ export CFLAGS_x86="${CFLAGS_x86} -march=${t}"
+ einfo "Auto adding -march=${t} to CFLAGS_x86 #185404 (ABI=${ABI})"
+ fi
+ # For compatibility with older binaries at slight performance cost.
+ use stack-realign && export CFLAGS_x86+=" -mstackrealign"
+ fi
+
+ if is_hurd ; then
+ # doesnt build with -march=native and probably other values, debugging required
+ filter-flags '-march=*'
+ fi
+ ;;
+ mips)
+ # The mips abi cannot support the GNU style hashes. #233233
+ filter-ldflags -Wl,--hash-style=gnu -Wl,--hash-style=both
+ ;;
+ ppc|ppc64)
+ # Many arch-specific implementations do not work on ppc with
+ # cache-block not equal to 128 bytes. This breaks memset:
+ # https://sourceware.org/PR26522
+ # https://bugs.gentoo.org/737996
+ # Use default -mcpu=. For ppc it means non-multiarch setup.
+ filter-flags '-mcpu=*'
+ ;;
+ sparc)
+ # Both sparc and sparc64 can use -fcall-used-g6. -g7 is bad, though.
+ filter-flags "-fcall-used-g7"
+ append-flags "-fcall-used-g6"
+
+ local cpu
+ case ${CTARGET} in
+ sparc64-*)
+ cpu="sparc64"
+ case $(get-flag mcpu) in
+ v9)
+ # We need to force at least v9a because the base build doesn't
+ # work with just v9.
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=19477
+ append-flags "-Wa,-xarch=v9a"
+ ;;
+ esac
+ ;;
+ sparc-*)
+ case $(get-flag mcpu) in
+ v8|supersparc|hypersparc|leon|leon3)
+ cpu="sparcv8"
+ ;;
+ *)
+ cpu="sparcv9"
+ ;;
+ esac
+ ;;
+ esac
+ [[ -n ${cpu} ]] && CTARGET_OPT="${cpu}-${CTARGET#*-}"
+ ;;
+ esac
+}
+
+setup_flags() {
+ # Make sure host make.conf doesn't pollute us
+ if is_crosscompile || tc-is-cross-compiler ; then
+ CHOST=${CTARGET} strip-unsupported-flags
+ fi
+
+ # Store our CFLAGS because it's changed depending on which CTARGET
+ # we are building when pulling glibc on a multilib profile
+ CFLAGS_BASE=${CFLAGS_BASE-${CFLAGS}}
+ CFLAGS=${CFLAGS_BASE}
+ CXXFLAGS_BASE=${CXXFLAGS_BASE-${CXXFLAGS}}
+ CXXFLAGS=${CXXFLAGS_BASE}
+ ASFLAGS_BASE=${ASFLAGS_BASE-${ASFLAGS}}
+ ASFLAGS=${ASFLAGS_BASE}
+
+ # Allow users to explicitly avoid flag sanitization via
+ # USE=custom-cflags.
+ if ! use custom-cflags; then
+ # Over-zealous CFLAGS can often cause problems. What may work for one
+ # person may not work for another. To avoid a large influx of bugs
+ # relating to failed builds, we strip most CFLAGS out to ensure as few
+ # problems as possible.
+ strip-flags
+
+ # Allow -O2 and -O3, but nothing else for now.
+ # TODO: Test -Os, -Oz.
+ if ! is-flagq '-O@(2|3)' ; then
+ # Lock glibc at -O2. We want to be conservative here.
+ filter-flags '-O?'
+ append-flags -O2
+ fi
+ fi
+
+ strip-unsupported-flags
+ filter-lto
+ filter-flags -m32 -m64 '-mabi=*'
+
+ # glibc aborts if rpath is set by LDFLAGS
+ filter-ldflags '-Wl,-rpath=*'
+
+ # ld can't use -r & --relax at the same time, bug #788901
+ # https://sourceware.org/PR27837
+ filter-ldflags '-Wl,--relax'
+
+ # Flag added for cross-prefix, but causes ldconfig to segfault. Not needed
+ # anyway because glibc already handles this by itself.
+ filter-ldflags '-Wl,--dynamic-linker=*'
+
+ # Fails to link (bug #940709) in some cases but even if it manages to,
+ # subtle runtime breakage will occur because the linker scripts need
+ # adaptation. Mentioned in PR21557#c0.
+ filter-ldflags '-Wl,--gc-sections'
+
+ # some weird software relies on sysv hashes in glibc, bug 863863, bug 864100
+ # we have to do that here already so mips can filter it out again :P
+ if use hash-sysv-compat ; then
+ append-ldflags '-Wl,--hash-style=both'
+ fi
+
+ # clang warns about linker flags unused during compilation, but we don't
+ # want that to turn into errors!
+ # Let's turn the warning off entirely since it spams.
+ append-flags -Wno-unused-command-line-argument
+
+ # #492892
+ filter-flags -frecord-gcc-switches
+
+ # #898098
+ filter-flags -fno-builtin
+
+ # #798774
+ filter-flags -fno-semantic-interposition
+
+ # #829583
+ filter-lfs-flags
+
+ case ${CTARGET} in
+ *-linux*)
+ ;;
+ *-gnu)
+ # -g3 confuses MIG which relies on preprocessed input
+ replace-flags -ggdb[3-9] -ggdb2
+ replace-flags -g3 -g
+ ;;
+ esac
+
+ unset CBUILD_OPT CTARGET_OPT
+ if use multilib ; then
+ CTARGET_OPT=$(get_abi_CTARGET)
+ [[ -z ${CTARGET_OPT} ]] && CTARGET_OPT=$(get_abi_CHOST)
+ fi
+
+ setup_target_flags
+
+ if [[ -n ${CTARGET_OPT} && ${CBUILD} == ${CHOST} ]] && ! is_crosscompile; then
+ CBUILD_OPT=${CTARGET_OPT}
+ fi
+
+ # glibc's headers disallow -O0 and fail at build time:
+ # include/libc-symbols.h:75:3: #error "glibc cannot be compiled without optimization"
+ # https://sourceware.org/glibc/wiki/FAQ#Why_do_I_get:.60.23error_.22glibc_cannot_be_compiled_without_optimization.22.27.2C_when_trying_to_compile_GNU_libc_with_GNU_CC.3F
+ replace-flags -O0 -O1
+
+ # Similar issues as with SSP. Can't inject yourself that early.
+ filter-flags '-fsanitize=*'
+
+ # See end of bug #830454; we handle this via USE=cet
+ filter-flags '-fcf-protection=*'
+
+ # When bootstrapping, we may have a situation where
+ # CET-enabled gcc from seed is used to build CET-disabled
+ # glibc. As such, gcc implicitly enables CET if no
+ # -fcf-protection flag is passed. For a typical package it
+ # should not be a problem, but for glibc it matters as it is
+ # dealing with CET in ld.so. So if CET is supposed to be
+ # disabled for glibc, be explicit about it.
+ if ! use cet; then
+ case ${ABI}-${CTARGET} in
+ amd64-x86_64-*|x32-x86_64-*-*-gnux32)
+ append-flags '-fcf-protection=none'
+ ;;
+ arm64-aarch64*)
+ append-flags '-mbranch-protection=none'
+ ;;
+ esac
+ fi
+}
+
+use_multiarch() {
+ # Allow user to disable runtime arch detection in multilib.
+ use multiarch || return 1
+ # Make sure binutils is new enough to support indirect functions,
+ # #336792. This funky sed supports gold and bfd linkers.
+ local bver nver
+ bver=$($(tc-getLD ${CTARGET}) -v | sed -n -r '1{s:[^0-9]*::;s:^([0-9.]*).*:\1:;p}')
+ case $(tc-arch ${CTARGET}) in
+ amd64|x86) nver="2.20" ;;
+ arm) nver="2.22" ;;
+ hppa) nver="2.23" ;;
+ ppc|ppc64) nver="2.20" ;;
+ # ifunc support was added in 2.23, but glibc also needs
+ # machinemode which is in 2.24.
+ s390) nver="2.24" ;;
+ sparc) nver="2.21" ;;
+ *) return 1 ;;
+ esac
+ ver_test ${bver} -ge ${nver}
+}
+
+# Setup toolchain variables that had historically been defined in the
+# profiles for these archs.
+setup_env() {
+ # silly users
+ unset LD_RUN_PATH
+ unset LD_ASSUME_KERNEL
+
+ if is_crosscompile || tc-is-cross-compiler ; then
+ multilib_env ${CTARGET_OPT:-${CTARGET}}
+
+ if ! use multilib ; then
+ MULTILIB_ABIS=${DEFAULT_ABI}
+ else
+ MULTILIB_ABIS=${MULTILIB_ABIS:-${DEFAULT_ABI}}
+ fi
+
+ # If the user has CFLAGS_<CTARGET> in their make.conf, use that,
+ # and fall back on CFLAGS.
+ local VAR=CFLAGS_${CTARGET//[-.]/_}
+ CFLAGS=${!VAR-${CFLAGS}}
+ einfo " $(printf '%15s' 'Manual CFLAGS:') ${CFLAGS}"
+ fi
+
+ setup_flags
+
+ export ABI=${ABI:-${DEFAULT_ABI:-default}}
+
+ if just_headers ; then
+ # Avoid mixing host's CC and target's CFLAGS_${ABI}:
+ # At this bootstrap stage we have only binutils for
+ # target but not compiler yet.
+ einfo "Skip CC ABI injection. We can't use (cross-)compiler yet."
+ return 0
+ fi
+
+ # glibc does not work with non-bfd (for various reasons):
+ # * gold (bug #269274)
+ # * mold (bug #860900)
+ tc-ld-force-bfd
+
+ if use doc ; then
+ export MAKEINFO=makeinfo
+ else
+ export MAKEINFO=/dev/null
+ fi
+
+ # Reset CC and CXX to the value at start of emerge
+ export CC=${glibc__ORIG_CC:-${CC:-$(tc-getCC ${CTARGET})}}
+ export CXX=${glibc__ORIG_CXX:-${CXX:-$(tc-getCXX ${CTARGET})}}
+ export CPP=${glibc__ORIG_CPP:-${CPP:-$(tc-getCPP ${CTARGET})}}
+
+ # and make sure glibc__ORIG_CC and glibc__ORIG_CXX is defined now.
+ export glibc__ORIG_CC=${CC}
+ export glibc__ORIG_CXX=${CXX}
+ export glibc__ORIG_CPP=${CPP}
+
+ if tc-is-clang && ! ( use clang || use custom-cflags ) && ! is_crosscompile ; then
+ export glibc__force_gcc=yes
+ # once this is toggled on, it needs to stay on, since with CPP manipulated
+ # tc-is-clang does not work correctly anymore...
+ fi
+
+ if [[ ${glibc__force_gcc} == "yes" ]] ; then
+ # If we are running in an otherwise clang/llvm environment, we need to
+ # recover the proper gcc and binutils settings here, at least until glibc
+ # is finally building with clang. So let's override everything that is
+ # set in the clang profiles.
+ # Want to shoot yourself into the foot? Set USE="clang" or USE="custom-cflags".
+ # Also, if you are crosscompiling, let's assume you know what you are doing.
+ # Hopefully.
+ # Last, we need the settings of the *build* environment, not of the
+ # target environment...
+
+ local current_binutils_path=$(env CHOST="${CBUILD}" ROOT="${BROOT}" binutils-config -B "${CTARGET}")
+ local current_gcc_path=$(env ROOT="${BROOT}" gcc-config -B)
+ einfo "Overriding clang configuration, since it won't work here"
+
+ export CC="${current_gcc_path}/${CTARGET}-gcc"
+ export CPP="${current_gcc_path}/${CTARGET}-cpp"
+ export CXX="${current_gcc_path}/${CTARGET}-g++"
+ export LD="${current_binutils_path}/ld.bfd"
+ export AR="${current_binutils_path}/ar"
+ export AS="${current_binutils_path}/as"
+ export NM="${current_binutils_path}/nm"
+ export STRIP="${current_binutils_path}/strip"
+ export RANLIB="${current_binutils_path}/ranlib"
+ export OBJCOPY="${current_binutils_path}/objcopy"
+ export STRINGS="${current_binutils_path}/strings"
+ export OBJDUMP="${current_binutils_path}/objdump"
+ export READELF="${current_binutils_path}/readelf"
+ export ADDR2LINE="${current_binutils_path}/addr2line"
+
+ # do we need to also do flags munging here? yes! at least...
+ filter-flags '-fuse-ld=*'
+ filter-flags '-D_FORTIFY_SOURCE=*'
+
+ else
+ # this is the "normal" case
+
+ # Always use tuple-prefixed toolchain. For non-native ABI glibc's configure
+ # can't detect them automatically due to ${CHOST} mismatch and fallbacks
+ # to unprefixed tools. Similar to multilib.eclass:multilib_toolchain_setup().
+ export CC="$(tc-getCC ${CTARGET})"
+ export CXX="$(tc-getCXX ${CTARGET})"
+ export CPP="$(tc-getCPP ${CTARGET})"
+ export NM="$(tc-getNM ${CTARGET})"
+ export READELF="$(tc-getREADELF ${CTARGET})"
+
+ fi
+
+ # We need to move CFLAGS with abi information into CC etc per glibc upstream
+ # requirement. Keep around the original clean value to avoid appending
+ # multiple ABIs on top of each other.
+ export glibc__GLIBC_CC=${CC}
+ export glibc__GLIBC_CXX=${CXX}
+ export glibc__GLIBC_CPP=${CPP}
+
+ export glibc__abi_CFLAGS="$(get_abi_CFLAGS)"
+
+ # CFLAGS can contain ABI-specific flags like -mfpu=neon, see bug #657760
+ # To build .S (assembly) files with the same ABI-specific flags
+ # upstream currently recommends adding CFLAGS to CC/CXX:
+ # https://sourceware.org/PR23273
+ # Note: Passing CFLAGS via CPPFLAGS overrides glibc's arch-specific CFLAGS
+ # and breaks multiarch support. See 659030#c3 for an example.
+ # The glibc configure script doesn't properly use LDFLAGS all the time.
+ export CC="${glibc__GLIBC_CC} ${glibc__abi_CFLAGS} ${CFLAGS} ${LDFLAGS}"
+
+ # Some of the tests are written in C++, so we need to force our multlib abis in, bug 623548
+ export CXX="${glibc__GLIBC_CXX} ${glibc__abi_CFLAGS} ${CFLAGS}"
+
+ export CPP="${glibc__GLIBC_CPP} ${glibc__abi_CFLAGS} ${CFLAGS}"
+
+ if is_crosscompile; then
+ # Assume worst-case bootstrap: glibc is built for the first time
+ # with ${CTARGET}-g++ not available yet. We avoid
+ # building auxiliary programs that require C++: bug #683074
+ # It should not affect final result.
+ export libc_cv_cxx_link_ok=no
+ # The line above has the same effect. We set CXX explicitly
+ # to make build logs less confusing.
+ export CXX=
+ fi
+}
+
+foreach_abi() {
+ setup_env
+
+ local ret=0
+ local abilist=""
+ if use multilib ; then
+ abilist=$(get_install_abis)
+ else
+ abilist=${DEFAULT_ABI}
+ fi
+ local -x ABI
+ for ABI in ${abilist:-default} ; do
+ setup_env
+ einfo "Running $1 for ABI ${ABI}"
+ $1
+ : $(( ret |= $? ))
+ done
+ return ${ret}
+}
+
+glibc_banner() {
+ local b="Gentoo ${PVR}"
+ [[ -n ${PATCH_VER} ]] && ! use vanilla && b+=" (patchset ${PATCH_VER})"
+ echo "${b}"
+}
+
+# The following Kernel version handling functions are mostly copied from portage
+# source. It's better not to use linux-info.eclass here since a) it adds too
+# much magic, see bug 326693 for some of the arguments, and b) some of the
+# functions are just not provided.
+
+g_get_running_KV() {
+ uname -r
+ return $?
+}
+
+g_KV_major() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ echo "${KV%%.*}"
+}
+
+g_KV_minor() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.}
+ echo "${KV%%.*}"
+}
+
+g_KV_micro() {
+ [[ -z $1 ]] && return 1
+ local KV=$@
+ KV=${KV#*.*.}
+ echo "${KV%%[^[:digit:]]*}"
+}
+
+g_KV_to_int() {
+ [[ -z $1 ]] && return 1
+ local KV_MAJOR=$(g_KV_major "$1")
+ local KV_MINOR=$(g_KV_minor "$1")
+ local KV_MICRO=$(g_KV_micro "$1")
+ local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
+
+ # We make version 2.2.0 the minimum version we will handle as
+ # a sanity check ... if its less, we fail ...
+ if [[ ${KV_int} -ge 131584 ]] ; then
+ echo "${KV_int}"
+ return 0
+ fi
+ return 1
+}
+
+g_int_to_KV() {
+ local version=$1 major minor micro
+ major=$((version / 65536))
+ minor=$(((version % 65536) / 256))
+ micro=$((version % 256))
+ echo ${major}.${minor}.${micro}
+}
+
+get_kheader_version() {
+ printf '#include <linux/version.h>\nLINUX_VERSION_CODE\n' | \
+ $(tc-getCPP ${CTARGET}) -I "${ESYSROOT}$(alt_headers)" - | \
+ tail -n 1
+}
+
+# We collect all sanity checks here. Consistency is not guranteed between
+# pkg_ and src_ phases, so we call this function both in pkg_pretend and in
+# src_unpack.
+sanity_prechecks() {
+ # Prevent native builds from downgrading
+ if [[ ${MERGE_TYPE} != "buildonly" ]] && \
+ [[ -z ${ROOT} ]] && \
+ [[ ${CBUILD} == ${CHOST} ]] && \
+ [[ ${CHOST} == ${CTARGET} ]] ; then
+
+ # The high rev # is to allow people to downgrade between -r#
+ # versions. We want to block 2.20->2.19, but 2.20-r3->2.20-r2
+ # should be fine. Hopefully we never actually use a r# this
+ # high.
+ if has_version ">${CATEGORY}/${P}-r10000" ; then
+ eerror "Sanity check to keep you from breaking your system:"
+ eerror " Downgrading glibc is not supported and a sure way to destruction."
+ [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Aborting to save your system."
+ fi
+
+ if is_linux && ! do_run_test '#include <unistd.h>\n#include <sys/syscall.h>\nint main(){return syscall(1000)!=-1;}\n' ; then
+ eerror "Your old kernel is broken. You need to update it to a newer"
+ eerror "version as syscall(<bignum>) will break. See bug 279260."
+ [[ ${I_ALLOW_TO_BREAK_MY_SYSTEM} = yes ]] || die "Old and broken kernel."
+ fi
+ fi
+
+ if [[ ${CTARGET} == i386-* ]] ; then
+ eerror "i386 CHOSTs are no longer supported."
+ eerror "Chances are you don't actually want/need i386."
+ eerror "Please read https://www.gentoo.org/doc/en/change-chost.xml"
+ die "Please fix your CHOST"
+ fi
+
+ if [[ -e /proc/xen ]] && [[ $(tc-arch) == "x86" ]] && ! is-flag -mno-tls-direct-seg-refs ; then
+ ewarn "You are using Xen but don't have -mno-tls-direct-seg-refs in your CFLAGS."
+ ewarn "This will result in a 50% performance penalty when running with a 32bit"
+ ewarn "hypervisor, which is probably not what you want."
+ fi
+
+ # ABI-specific checks follow here. Hey, we have a lot more specific conditions that
+ # we test for...
+ if ! is_crosscompile && ! tc-is-cross-compiler ; then
+ if use amd64 && use multilib && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ ebegin "Checking if the system can execute 32-bit binaries"
+ echo 'int main(){return 0;}' > "${T}/check-ia32-emulation.c"
+ local STAT
+ if ${CC-${CHOST}-gcc} ${CFLAGS_x86} "${T}/check-ia32-emulation.c" -o "${T}/check-ia32-emulation.elf32"; then
+ "${T}/check-ia32-emulation.elf32"
+ STAT=$?
+ else
+ # Don't fail here to allow single->multi ABI switch
+ # or recover from breakage like bug #646424
+ ewarn "Failed to compile the ABI test. Broken host glibc?"
+ STAT=0
+ fi
+ rm -f "${T}/check-ia32-emulation.elf32"
+ eend $STAT
+ if [[ $STAT -ne 0 ]]; then
+ eerror "Ensure that CONFIG_IA32_EMULATION is enabled in the kernel."
+ eerror "Seek support otherwise."
+ die "Unable to execute 32-bit binaries"
+ fi
+ fi
+
+ fi
+
+ # When we actually have to compile something...
+ if ! just_headers && [[ ${MERGE_TYPE} != "binary" ]] ; then
+ if [[ -d "${ESYSROOT}"/usr/lib/include ]] ; then
+ # bug #833620, bug #643302
+ eerror "Found ${ESYSROOT}/usr/lib/include directory!"
+ eerror "This is known to break glibc's build."
+ eerror "Please backup its contents then remove the directory."
+ die "Found directory (${ESYSROOT}/usr/lib/include) which will break build (bug #833620)!"
+ fi
+
+ if is_linux ; then
+ if use old-kernel ; then
+ MIN_KERN_VER=${MIN_KERN_VER_UPSTREAM}
+ else
+ MIN_KERN_VER=${MIN_KERN_VER_GENTOO}
+ fi
+
+ local run_kv build_kv want_kv
+
+ run_kv=$(g_get_running_KV)
+ build_kv=$(g_int_to_KV $(get_kheader_version))
+ want_kv=${MIN_KERN_VER}
+
+ if ! is_crosscompile && ! tc-is-cross-compiler ; then
+ # Building fails on an non-supporting kernel
+ ebegin "Checking running kernel version (${run_kv} >= ${want_kv})"
+ if ! [[ $(g_KV_to_int ${run_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then
+ eend 1
+ echo
+ eerror "You need a kernel of at least ${want_kv}!"
+ die "Kernel version too low! Maybe setting USE=old-kernel helps."
+ fi
+ eend 0
+ fi
+
+ # Do not run this check for pkg_pretend, just pkg_setup and friends (if we ever get used there).
+ # It's plausible (seen it in the wild) that Portage will (correctly) schedule a linux-headers
+ # upgrade before glibc, but because pkg_pretend gets run before any packages are merged at all (not
+ # just glibc), the whole emerge gets aborted without a good reason. We probably don't
+ # need to run this check at all given we have a dependency on the right headers,
+ # but let's leave it as-is for now.
+ if [[ ${EBUILD_PHASE_FUNC} != pkg_pretend ]] ; then
+ ebegin "Checking linux-headers version (${build_kv} >= ${want_kv})"
+ if ! [[ $(g_KV_to_int ${build_kv}) -ge $(g_KV_to_int ${want_kv}) ]] ; then
+ eend 1
+ echo
+ eerror "You need linux-headers of at least ${want_kv}!"
+ die "linux-headers version too low!"
+ fi
+ eend 0
+ fi
+ fi
+ fi
+}
+
+upgrade_warning() {
+ is_crosscompile && return
+
+ if [[ ${MERGE_TYPE} != buildonly && -n ${REPLACING_VERSIONS} && -z ${ROOT} ]]; then
+ if ver_replacing -lt $(ver_cut 1-2 ${PV}); then
+ ewarn "After upgrading glibc, please restart all running processes."
+ ewarn "Be sure to include init (telinit u) or systemd (systemctl daemon-reexec)."
+ ewarn "Alternatively, reboot your system."
+ ewarn "(See bug #660556, bug #741116, bug #823756, etc)"
+ fi
+ fi
+}
+
+#
+# the phases
+#
+
+# pkg_pretend
+
+pkg_pretend() {
+ upgrade_warning
+}
+
+# pkg_setup
+
+pkg_setup() {
+ # see bug 682570
+ [[ -z ${BOOTSTRAP_RAP} ]] && python-any-r1_pkg_setup
+}
+
+# src_unpack
+
+src_unpack() {
+ setup_env
+
+ einfo "Checking general environment sanity."
+ sanity_prechecks
+
+ use multilib-bootstrap && unpack gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}.tar.xz
+
+ if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="
+ https://anongit.gentoo.org/git/proj/toolchain/glibc-patches.git
+ https://github.com/gentoo/glibc-patches.git
+ "
+ EGIT_CHECKOUT_DIR=${WORKDIR}/patches-git
+ git-r3_src_unpack
+ mv patches-git/9999 patches || die
+ EGIT_REPO_URI="
+ https://sourceware.org/git/glibc.git
+ https://git.sr.ht/~sourceware/glibc
+ https://gitlab.com/x86-glibc/glibc.git
+ "
+ EGIT_CHECKOUT_DIR=${S}
+ [[ ${PV} == *.*.9999 ]] && EGIT_BRANCH=release/${PV%.*}/master
+ git-r3_src_unpack
+ else
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}/${P}.tar.xz" "${DISTDIR}/${P}.tar.xz.sig"
+ fi
+ unpack ${P}.tar.xz
+
+ cd "${WORKDIR}" || die
+ unpack ${P}-patches-${PATCH_VER}.tar.xz
+ fi
+
+ cd "${WORKDIR}" || die
+ use systemd && unpack glibc-systemd-${GLIBC_SYSTEMD_VER}.tar.gz
+}
+
+# src_prepare
+
+src_prepare() {
+ local patchsetname
+ if ! use vanilla ; then
+ if [[ ${PV} == 9999* ]] ; then
+ patchsetname="from git master"
+ else
+ patchsetname="${PV}-${PATCH_VER}"
+ fi
+ einfo "Applying Gentoo Glibc patchset ${patchsetname}"
+ eapply "${WORKDIR}"/patches
+ einfo "Done."
+
+ # Patches we should apply only for Hurd to be conservative
+ if is_hurd ; then
+ eapply "${FILESDIR}"/glibc-2.43-hurd-CLOCK_MONOTONIC.patch
+ fi
+ fi
+
+ case ${CTARGET} in
+ m68*-aligned-*)
+ einfo "Applying utmp format fix for m68k with -maligned-int"
+ eapply "${FILESDIR}/glibc-2.41-m68k-malign.patch"
+ ;;
+ *)
+ ;;
+ esac
+
+ default
+
+ gnuconfig_update
+
+ cd "${WORKDIR}" || die
+ find . -name configure -exec touch {} +
+
+ # Fix permissions on some of the scripts.
+ chmod u+x "${S}"/scripts/*.sh
+
+ cd "${S}" || die
+}
+
+# src_configure
+
+glibc_do_configure() {
+ dump_build_environment
+
+ local myconf=()
+
+ # Use '=strong' instead of '=all' to protect only functions
+ # worth protecting from stack smashes.
+ myconf+=( --enable-stack-protector=$(usex ssp strong no) )
+
+ # Keep a whitelist of targets supporting IFUNC. glibc's ./configure
+ # is not robust enough to detect proper support:
+ # https://bugs.gentoo.org/641216
+ # https://sourceware.org/PR22634#c0
+ case $(tc-arch ${CTARGET}) in
+ # Keep whitelist of targets where autodetection mostly works.
+ amd64|x86|sparc|ppc|ppc64|arm|arm64|s390|riscv|loong) ;;
+ # Blacklist everywhere else
+ *) myconf+=( libc_cv_ld_gnu_indirect_function=no ) ;;
+ esac
+
+ case ${ABI}-${CTARGET} in
+ amd64-x86_64-*|x32-x86_64-*-*-gnux32) myconf+=( $(use_enable cet) ) ;;
+ *) ;;
+ esac
+
+ case ${ABI}-${CTARGET} in
+ amd64-x86_64-*|arm64-aarch64-*) myconf+=( $(use_enable sframe) ) ;;
+ *) ;;
+ esac
+
+ [[ $(tc-is-softfloat) == "yes" ]] && myconf+=( --without-fp )
+
+ if use old-kernel ; then
+ MIN_KERN_VER=${MIN_KERN_VER_UPSTREAM}
+ else
+ MIN_KERN_VER=${MIN_KERN_VER_GENTOO}
+ fi
+ myconf+=( --enable-kernel=${MIN_KERN_VER} )
+
+ # Since SELinux support is only required for nscd, only enable it if:
+ # 1. USE selinux
+ # 2. only for the primary ABI on multilib systems
+ # 3. Not a crosscompile
+ if ! is_crosscompile && use selinux ; then
+ if use multilib ; then
+ if is_final_abi ; then
+ myconf+=( --with-selinux )
+ else
+ myconf+=( --without-selinux )
+ fi
+ else
+ myconf+=( --with-selinux )
+ fi
+ else
+ myconf+=( --without-selinux )
+ fi
+
+ # Force a few tests where we always know the answer but
+ # configure is incapable of finding it.
+ if is_crosscompile ; then
+ export \
+ libc_cv_c_cleanup=yes \
+ libc_cv_forced_unwind=yes
+ fi
+
+ myconf+=(
+ --disable-werror
+ --enable-bind-now
+ --enable-fortify-source
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ $(use_enable profile)
+ $(use_with gd)
+ --with-headers="${ESYSROOT}$(alt_headers)"
+ --prefix="$(host_eprefix)/usr"
+ --sysconfdir="$(host_eprefix)/etc"
+ --localstatedir="$(host_eprefix)/var"
+ --libdir='$(prefix)'/$(get_libdir)
+ --mandir='$(prefix)'/share/man
+ --infodir='$(prefix)'/share/info
+ --libexecdir='$(libdir)'/misc/glibc
+ --with-bugurl=https://bugs.gentoo.org/
+ --with-pkgversion="$(glibc_banner)"
+ $(use_multiarch || echo --disable-multi-arch)
+ $(use_enable nscd)
+
+ # /usr/bin/mtrace has a Perl shebang. Gentoo Prefix QA checks fail if
+ # Perl hasn't been installed inside the prefix yet and configure picks
+ # up a Perl from outside the prefix instead. configure will fail to
+ # execute Perl during configure if we're cross-compiling a prefix, but
+ # it will just disable mtrace in that case.
+ # Note: mtrace is needed by the test suite.
+ ac_cv_path_PERL="$(usex perl "${EPREFIX}"/usr/bin/perl $(usex test "${EPREFIX}"/usr/bin/perl $(usex doc "${EPREFIX}"/usr/bin/perl no)))"
+
+ # locale data is arch-independent
+ # https://bugs.gentoo.org/753740
+ libc_cv_complocaledir='${exec_prefix}/lib/locale'
+
+ # On aarch64 there is no way to override -mcpu=native, and if
+ # the current cpu does not support SVE configure fails.
+ # Let's boldly assume our toolchain can always build SVE instructions.
+ libc_cv_aarch64_sve_asm=yes
+
+ ${EXTRA_ECONF}
+ )
+
+ # We rely on sys-libs/timezone-data for timezone tools normally.
+ myconf+=( $(use_enable vanilla timezone-tools) )
+
+ if is_crosscompile ; then
+ myconf+=( --disable-systemtap )
+ else
+ myconf+=( $(use_enable systemtap) )
+ fi
+
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=$(usex audit || echo no)
+ ac_cv_lib_cap_cap_init=$(usex caps || echo no)
+
+ # There is no configure option for this and we need to export it
+ # since the glibc build will re-run configure on itself
+ export libc_cv_rootsbindir="$(host_eprefix)/sbin"
+ export libc_cv_slibdir="$(host_eprefix)/$(get_libdir)"
+
+ local builddir=$(builddir nptl)
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+ set -- "${S}"/configure "${myconf[@]}"
+ echo "$@"
+ "$@" || die "failed to configure glibc"
+
+ # If we're trying to migrate between ABI sets, we need
+ # to lie and use a local copy of gcc. Like if the system
+ # is built with MULTILIB_ABIS="amd64 x86" but we want to
+ # add x32 to it, gcc/glibc don't yet support x32.
+ #
+ if [[ -n ${GCC_BOOTSTRAP_VER} ]] && use multilib-bootstrap ; then
+ echo 'int main(void){}' > "${T}"/test.c || die
+ if ! $(tc-getCC ${CTARGET}) ${CFLAGS} ${LDFLAGS} "${T}"/test.c -Wl,-emain -lgcc 2>/dev/null ; then
+ sed -i -e '/^CC = /s:$: -B$(objdir)/../'"gcc-multilib-bootstrap-${GCC_BOOTSTRAP_VER}/${ABI}:" config.make || die
+ fi
+ fi
+}
+
+glibc_headers_configure() {
+ export ABI=default
+
+ local builddir=$(builddir "headers")
+ mkdir -p "${builddir}"
+ cd "${builddir}"
+
+ # if we don't have a compiler yet, we can't really test it now ...
+ # hopefully they don't affect header generation, so let's hope for
+ # the best here ...
+ local v vars=(
+ ac_cv_header_cpuid_h=yes
+ libc_cv_{386,390,alpha,arm,hppa,mips,{powerpc,sparc}{,32,64},sh,x86_64}_tls=yes
+ libc_cv_asm_cfi_directives=yes
+ libc_cv_broken_visibility_attribute=no
+ libc_cv_c_cleanup=yes
+ libc_cv_compiler_powerpc64le_binary128_ok=yes
+ libc_cv_forced_unwind=yes
+ libc_cv_gcc___thread=yes
+ libc_cv_mlong_double_128=yes
+ libc_cv_mlong_double_128ibm=yes
+ libc_cv_ppc_machine=yes
+ libc_cv_ppc_rel16=yes
+ libc_cv_predef_fortify_source=no
+ libc_cv_target_power8_ok=yes
+ libc_cv_visibility_attribute=yes
+ libc_cv_z_combreloc=yes
+ libc_cv_z_execstack=yes
+ libc_cv_z_initfirst=yes
+ libc_cv_z_nodelete=yes
+ libc_cv_z_nodlopen=yes
+ libc_cv_z_relro=yes
+ libc_mips_abi=${ABI}
+ libc_mips_float=$([[ $(tc-is-softfloat) == "yes" ]] && echo soft || echo hard)
+ # These libs don't have configure flags.
+ ac_cv_lib_audit_audit_log_user_avc_message=no
+ ac_cv_lib_cap_cap_init=no
+ )
+
+ einfo "Forcing cached settings:"
+ for v in "${vars[@]}" ; do
+ einfo " ${v}"
+ export ${v}
+ done
+
+ local headers_only_arch_CPPFLAGS=()
+
+ # Blow away some random CC settings that screw things up. #550192
+ if [[ -d ${S}/sysdeps/mips ]]; then
+ pushd "${S}"/sysdeps/mips >/dev/null
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=32:' mips32/Makefile mips64/n32/Makefile || die
+ sed -i -e '/^CC +=/s:=.*:= -D_MIPS_SZPTR=64:' mips64/n64/Makefile || die
+
+ # Force the mips ABI to the default. This is OK because the set of
+ # installed headers in this phase is the same between the 3 ABIs.
+ # If this ever changes, this hack will break, but that's unlikely
+ # as glibc discourages that behavior.
+ # https://crbug.com/647033
+ sed -i -e 's:abiflag=.*:abiflag=_ABIO32:' preconfigure || die
+
+ popd >/dev/null
+ fi
+
+ local myconf=()
+
+ case ${CTARGET} in
+ aarch64*)
+ # The configure checks fail during cross-build, so disable here
+ # for headers-only
+ myconf+=(
+ --disable-mathvec
+ ) ;;
+ riscv*)
+ # RISC-V interrogates the compiler to determine which target to
+ # build. If building the headers then we don't strictly need a
+ # RISC-V compiler, so the built-in definitions that are provided
+ # along with all RISC-V compiler might not exist. This causes
+ # glibc's RISC-V preconfigure script to blow up. Since we're just
+ # building the headers any value will actually work here, so just
+ # pick the standard one (rv64g/lp64d) to make the build scripts
+ # happy for now -- the headers are all the same anyway so it
+ # doesn't matter.
+ headers_only_arch_CPPFLAGS+=(
+ -D__riscv_xlen=64
+ -D__riscv_flen=64
+ -D__riscv_float_abi_double=1
+ -D__riscv_atomic=1
+ ) ;;
+ esac
+
+ myconf+=(
+ --disable-sanity-checks
+ --enable-hacker-mode
+ --disable-werror
+ --enable-bind-now
+ --build=${CBUILD_OPT:-${CBUILD}}
+ --host=${CTARGET_OPT:-${CTARGET}}
+ --with-headers="${ESYSROOT}$(alt_headers)"
+ --prefix="$(host_eprefix)/usr"
+ ${EXTRA_ECONF}
+ )
+
+ # Nothing is compiled here which would affect the headers for the target.
+ # So forcing CC/CFLAGS is sane.
+ local headers_only_CC=$(tc-getBUILD_CC)
+ local headers_only_CFLAGS="-O1 -pipe"
+ local headers_only_CPPFLAGS="-U_FORTIFY_SOURCE ${headers_only_arch_CPPFLAGS[*]}"
+ local headers_only_LDFLAGS=""
+ set -- "${S}"/configure "${myconf[@]}"
+ echo \
+ "CC=${headers_only_CC}" \
+ "CFLAGS=${headers_only_CFLAGS}" \
+ "CPPFLAGS=${headers_only_CPPFLAGS}" \
+ "LDFLAGS=${headers_only_LDFLAGS}" \
+ "$@"
+ CC=${headers_only_CC} \
+ CFLAGS=${headers_only_CFLAGS} \
+ CPPFLAGS=${headers_only_CPPFLAGS} \
+ LDFLAGS="" \
+ "$@" || die "failed to configure glibc"
+}
+
+do_src_configure() {
+ if just_headers ; then
+ glibc_headers_configure
+ else
+ glibc_do_configure nptl
+ fi
+}
+
+src_configure() {
+ foreach_abi do_src_configure
+}
+
+# src_compile
+
+do_src_compile() {
+ emake -C "$(builddir nptl)"
+}
+
+src_compile() {
+ if just_headers ; then
+ return
+ fi
+
+ foreach_abi do_src_compile
+}
+
+# src_test
+
+glibc_src_test() {
+ cd "$(builddir nptl)"
+
+ local myxfailparams=""
+ if [[ "${GENTOO_GLIBC_XFAIL_TESTS}" == "yes" ]] ; then
+ local virt=$(systemd-detect-virt 2>/dev/null)
+ if [[ ${virt} == systemd-nspawn ]] ; then
+ ewarn "Skipping extra tests because in systemd-nspawn container"
+ XFAIL_TEST_LIST+=( "${XFAIL_NSPAWN_TEST_LIST[@]}" )
+ fi
+ if [[ "$(nice)" == "19" ]] ; then
+ # Expects to be able to increase niceness, which it can't do if
+ # already at the highest nice value
+ XFAIL_TEST_LIST+=( "tst-nice" )
+ fi
+
+ for myt in ${XFAIL_TEST_LIST[@]} ; do
+ myxfailparams+="test-xfail-${myt}=yes "
+ done
+ fi
+
+ # https://inbox.sourceware.org/libc-alpha/lhuikb5ibey.fsf@oldenburg.str.redhat.com/
+ local -x GAWK_GNU_MATCHERS=1
+
+ # sandbox does not understand unshare() and prevents
+ # writes to /proc/, which makes many tests fail
+
+ # we give the tests a bit more time to avoid spurious
+ # bug reports on slow arches
+
+ SANDBOX_ON=0 LD_PRELOAD= TIMEOUTFACTOR=16 nonfatal emake ${myxfailparams} check
+}
+
+src_test() {
+ if just_headers ; then
+ return
+ fi
+
+ # glibc_src_test uses nonfatal so that we can run tests for all ABIs
+ # and fail at the end instead.
+ foreach_abi glibc_src_test || die "tests failed"
+}
+
+# src_install
+
+run_locale_gen() {
+ local fatal=$1 prefix=$2
+ local user_config action config stderr noun ret
+ local -a hasversion_opts localegen_args
+
+ if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then
+ hasversion_opts=( -b )
+ fi
+
+ if has_version "${hasversion_opts[@]}" '>=sys-apps/locale-gen-3'; then
+ localegen_args=( --prefix "${prefix}" )
+ else
+ config="${prefix}/usr/share/i18n/SUPPORTED"
+ user_config="${prefix}/etc/locale.gen"
+ if [[ ${EBUILD_PHASE_FUNC} == src_install ]]; then
+ # For USE=compile-locales, all locales should be built.
+ mkdir -p -- "${prefix}/usr/lib/locale" || die
+ elif locale-gen --list --config "${user_config}" | read -r; then
+ config=${user_config}
+ fi
+ localegen_args=( --config "${config}" --destdir "${prefix}" )
+ fi
+
+ # bug 736794: we need to be careful with the parallelization... the
+ # number of processors saved in the environment of a binary package may
+ # differ strongly from the number of processes available during postinst
+ if [[ ${EMERGE_FROM} != binary ]]; then
+ localegen_args+=( --jobs "$(get_makeopts_jobs)" )
+ fi
+
+ printf 'Executing: locale-gen %s\n' "${localegen_args[*]@Q}" >&2
+ { stderr=$(locale-gen "${localegen_args[@]}" 2>&1 >&3); } 3>&1
+ ret=$?
+ action="ewarn"
+ if (( ret == 0 )); then
+ noun="warning"
+ else
+ noun="error"
+ if (( fatal )); then
+ action="die"
+ fi
+ fi
+ # Convey warnings/errors so that they can be reseen upon emerge exiting.
+ if [[ ${stderr} ]]; then
+ ewarn "locale-gen(8) issued the following ${noun}s:"
+ while read -r; do
+ ewarn "$REPLY"
+ done <<<"${stderr}"
+ fi
+ if (( ret != 0 )); then
+ "${action}" "locale-gen(8) unexpectedly failed during the ${EBUILD_PHASE_FUNC} phase"
+ fi
+}
+
+glibc_do_src_install() {
+ local builddir=$(builddir nptl)
+ cd "${builddir}"
+
+ emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install
+
+ # This version (2.26) provides some compatibility libraries for the NIS/NIS+ support
+ # which come without headers etc. Only needed for binary packages since the
+ # external net-libs/libnsl has increased soversion. Keep only versioned libraries.
+ find "${D}" -name "libnsl.a" -delete
+ find "${D}" -name "libnsl.so" -delete
+
+ # Normally upstream_pv is ${PV}. Live ebuilds are exception, there we need
+ # to infer upstream version:
+ # '#define VERSION "2.26.90"' -> '2.26.90'
+ local upstream_pv=$(sed -n -r 's/#define VERSION "(.*)"/\1/p' "${S}"/version.h)
+
+ # Avoid stripping binaries not targeted by ${CHOST}. Or else
+ # ${CHOST}-strip would break binaries build for ${CTARGET}.
+ is_crosscompile && dostrip -x /
+
+ # gdb thread introspection relies on local libpthreads symbols. stripping breaks it
+ # See Note [Disable automatic stripping]
+ dostrip -x $(alt_libdir)/libpthread-${upstream_pv}.so
+ # valgrind requires knowledge about ld.so symbols.
+ dostrip -x $(alt_libdir)/ld-*.so*
+
+ if [[ -e ${ED}/$(alt_usrlibdir)/libm-${upstream_pv}.a ]] ; then
+ # Move versioned .a file out of libdir to evade portage QA checks
+ # instead of using gen_usr_ldscript(). We fix ldscript as:
+ # "GROUP ( /usr/lib64/libm-<pv>.a ..." -> "GROUP ( /usr/lib64/glibc-<pv>/libm-<pv>.a ..."
+ sed -i "s@\(libm-${upstream_pv}.a\)@${P}/\1@" \
+ "${ED}"/$(alt_usrlibdir)/libm.a || die
+ dodir $(alt_usrlibdir)/${P}
+ mv "${ED}"/$(alt_usrlibdir)/libm-${upstream_pv}.a \
+ "${ED}"/$(alt_usrlibdir)/${P}/libm-${upstream_pv}.a || die
+ fi
+
+ # We configure toolchains for standalone prefix systems with a sysroot,
+ # which is prepended to paths in ld scripts, so strip the prefix from these.
+ # Before: GROUP ( /foo/lib64/libc.so.6 /foo/usr/lib64/libc_nonshared.a AS_NEEDED ( /foo/lib64/ld-linux-x86-64.so.2 ) )
+ # After: GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a AS_NEEDED ( /lib64/ld-linux-x86-64.so.2 ) )
+ if [[ -n $(host_eprefix) ]] ; then
+ local file
+ grep -lZIF "ld script" "${ED}/$(alt_usrlibdir)"/lib*.{a,so} 2>/dev/null | while read -rd '' file ; do
+ sed -i "s|$(host_eprefix)/|/|g" "${file}" || die
+ done
+ fi
+
+ # We'll take care of the cache ourselves
+ rm -f "${ED}"/etc/ld.so.cache
+
+ # Everything past this point just needs to be done once ...
+ is_final_abi || return 0
+
+ # Make sure the non-native interp can be found on multilib systems even
+ # if the main library set isn't installed into the right place. Maybe
+ # we should query the active gcc for info instead of hardcoding it ?
+ local i ldso_abi ldso_name
+ if is_linux ; then
+ local ldso_abi_list=(
+ # x86
+ amd64 /lib64/ld-linux-x86-64.so.2
+ x32 /libx32/ld-linux-x32.so.2
+ x86 /lib/ld-linux.so.2
+ # mips
+ o32 /lib/ld.so.1
+ n32 /lib32/ld.so.1
+ n64 /lib64/ld.so.1
+ # powerpc
+ ppc /lib/ld.so.1
+ # riscv
+ ilp32d /lib/ld-linux-riscv32-ilp32d.so.1
+ ilp32 /lib/ld-linux-riscv32-ilp32.so.1
+ lp64d /lib/ld-linux-riscv64-lp64d.so.1
+ lp64 /lib/ld-linux-riscv64-lp64.so.1
+ # s390
+ s390 /lib/ld.so.1
+ s390x /lib/ld64.so.1
+ # sparc
+ sparc32 /lib/ld-linux.so.2
+ sparc64 /lib64/ld-linux.so.2
+ )
+ case $(tc-endian) in
+ little)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64.so.1
+ # ELFv2 (glibc does not support ELFv1 on LE)
+ ppc64 /lib64/ld64.so.2
+ )
+ ;;
+ big)
+ ldso_abi_list+=(
+ # arm
+ arm64 /lib/ld-linux-aarch64_be.so.1
+ # ELFv1 (glibc does not support ELFv2 on BE)
+ ppc64 /lib64/ld64.so.1
+ )
+ ;;
+ esac
+ else
+ # we must be using hurd then
+ local ldso_abi_list=(
+ # x86
+ amd64 /lib64/ld-x86-64.so.1
+ x86 /lib/ld.so.1
+ )
+ fi
+ if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
+ dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) $(alt_prefix)/lib
+ fi
+ for (( i = 0; i < ${#ldso_abi_list[@]}; i += 2 )) ; do
+ ldso_abi=${ldso_abi_list[i]}
+ has ${ldso_abi} $(get_install_abis) || continue
+
+ ldso_name="$(alt_prefix)${ldso_abi_list[i+1]}"
+ if [[ ! -L ${ED}/${ldso_name} && ! -e ${ED}/${ldso_name} ]] ; then
+ dosym ../$(get_abi_LIBDIR ${ldso_abi})/${ldso_name##*/} ${ldso_name}
+ fi
+ done
+
+ if is_linux ; then
+ # In the LSB 5.0 definition, someone had the excellent idea to "standardize"
+ # the runtime loader name, see also https://xkcd.com/927/
+ # Normally, in Gentoo one should never come across executables that require this.
+ # However, binary commercial packages are known to adhere to weird practices.
+ # https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-AMD64/LSB-Core-AMD64.html#BASELIB
+ local lsb_ldso_name native_ldso_name lsb_ldso_abi
+ local lsb_ldso_abi_list=(
+ # x86
+ amd64 ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3
+ )
+ for (( i = 0; i < ${#lsb_ldso_abi_list[@]}; i += 3 )) ; do
+ lsb_ldso_abi=${lsb_ldso_abi_list[i]}
+ native_ldso_name=${lsb_ldso_abi_list[i+1]}
+ lsb_ldso_name=${lsb_ldso_abi_list[i+2]}
+ has ${lsb_ldso_abi} $(get_install_abis) || continue
+
+ if [[ ! -L ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} && ! -e ${ED}/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name} ]] ; then
+ dosym ${native_ldso_name} "$(alt_prefix)/$(get_abi_LIBDIR ${lsb_ldso_abi})/${lsb_ldso_name}"
+ fi
+ done
+ fi
+
+ # On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for
+ # the dynamic loader. Which is maximally stupid since this one information is hardcoded
+ # into every single binary, and even if we were to fix *our* gcc it could still prevent
+ # us from running binaries prepared anywhere else...
+
+ if is_hurd && has amd64 $(get_install_abis) ; then
+ # First, let's check for sanity
+ if [[ -f "${D}/$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then
+ die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen."
+ fi
+
+ # Then make a compatibility symlink.
+ dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1"
+ fi
+
+ if is_hurd && has x86 $(get_install_abis) ; then
+ # First, let's check for sanity
+ if [[ -f "${D}/$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then
+ die "Somehow your x86 hurd glibc installed ld.so ... this should not happen."
+ fi
+
+ # Then make a compatibility symlink.
+ dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so"
+ fi
+
+ # With devpts under Linux mounted properly, we do not need the pt_chown
+ # binary to be setuid. This is because the default owners/perms will be
+ # exactly what we want.
+ if ! use suid ; then
+ find "${ED}" -name pt_chown -exec chmod -s {} +
+ fi
+
+ #################################################################
+ # EVERYTHING AFTER THIS POINT IS FOR NATIVE GLIBC INSTALLS ONLY #
+ #################################################################
+
+ # Make sure we install some symlink hacks so that when we build
+ # a 2nd stage cross-compiler, gcc finds the target system
+ # headers correctly. See gcc/doc/gccinstall.info
+ if is_crosscompile ; then
+ # We need to make sure that /lib and /usr/lib always exists.
+ # gcc likes to use relative paths to get to its multilibs like
+ # /usr/lib/../lib64/. So while we don't install any files into
+ # /usr/lib/, we do need it to exist.
+ keepdir $(alt_prefix)/lib
+ keepdir $(alt_prefix)/usr/lib
+
+ dosym usr/include $(alt_prefix)/sys-include
+ return 0
+ fi
+
+ # Files for Debian-style locale updating
+ dodir /usr/share/i18n
+ sed \
+ -e "/^#/d" \
+ -e "/SUPPORTED-LOCALES=/d" \
+ -e "s: \\\\::g" -e "s:/: :g" \
+ "${S}"/localedata/SUPPORTED > "${ED}"/usr/share/i18n/SUPPORTED \
+ || die "generating /usr/share/i18n/SUPPORTED failed"
+
+ cd "${S}" || die
+
+ # Install misc network config files
+ insinto /etc
+ doins posix/gai.conf
+
+ if use systemd ; then
+ doins "${WORKDIR}/glibc-systemd-${GLIBC_SYSTEMD_VER}/gentoo-config/nsswitch.conf"
+ else
+ doins nss/nsswitch.conf
+ fi
+
+ # Gentoo-specific
+ newins "${FILESDIR}"/host.conf-1 host.conf
+
+ if use nscd ; then
+ doins nscd/nscd.conf
+
+ newinitd "$(prefixify_ro "${FILESDIR}"/nscd-1)" nscd
+
+ local nscd_args=(
+ -e "s:@PIDFILE@:$(strings "${ED}"/usr/sbin/nscd | grep nscd.pid):"
+ )
+
+ sed -i "${nscd_args[@]}" "${ED}"/etc/init.d/nscd
+
+ use systemd && systemd_dounit nscd/nscd.service
+ newtmpfiles nscd/nscd.tmpfiles nscd.conf
+ fi
+
+ echo 'LDPATH="include ld.so.conf.d/*.conf"' > "${T}"/00glibc
+ doenvd "${T}"/00glibc
+
+ for d in BUGS ChangeLog CONFORMANCE FAQ NEWS NOTES PROJECTS README* ; do
+ [[ -s ${d} ]] && dodoc ${d}
+ done
+ dodoc -r ChangeLog.old
+
+ # Prevent overwriting of the /etc/localtime symlink. We'll handle the
+ # creation of the "factory" symlink in pkg_postinst().
+ rm -f "${ED}"/etc/localtime
+
+ # Generate all locales if this is a native build as locale generation
+ if use compile-locales && ! is_crosscompile; then
+ run_locale_gen 1 "${ED}"
+ fi
+}
+
+glibc_headers_install() {
+ local builddir=$(builddir "headers")
+ cd "${builddir}"
+ emake install_root="${D}/$(build_eprefix)$(alt_prefix)" install-headers
+
+ insinto $(alt_headers)/gnu
+ doins "${S}"/include/gnu/stubs.h
+
+ # Make sure we install the sys-include symlink so that when
+ # we build a 2nd stage cross-compiler, gcc finds the target
+ # system headers correctly. See gcc/doc/gccinstall.info
+ dosym usr/include $(alt_prefix)/sys-include
+}
+
+src_install() {
+ if just_headers ; then
+ export ABI=default
+ glibc_headers_install
+ return
+ fi
+
+ foreach_abi glibc_do_src_install
+
+ if ! use static-libs ; then
+ einfo "Not installing static glibc libraries"
+ find "${ED}" -name "*.a" -and -not -name "*_nonshared.a" -delete
+ fi
+}
+
+# Simple test to make sure our new glibc isn't completely broken.
+# Make sure we don't test with statically built binaries since
+# they will fail. Also, skip if this glibc is a cross compiler.
+#
+# If coreutils is built with USE=multicall, some of these files
+# will just be wrapper scripts, not actual ELFs we can test.
+glibc_sanity_check() {
+ cd / #228809
+
+ # We enter ${ED} so to avoid trouble if the path contains
+ # special characters; for instance if the path contains the
+ # colon character (:), then the linker will try to split it
+ # and look for the libraries in an unexpected place. This can
+ # lead to unsafe code execution if the generated prefix is
+ # within a world-writable directory.
+ # (e.g. /var/tmp/portage:${HOSTNAME})
+ pushd "${ED}"/$(get_libdir) >/dev/null
+
+ # first let's find the actual dynamic linker here
+ # symlinks may point to the wrong abi
+ local newldso=$(find . -maxdepth 1 -name 'ld*so.?' -type f -print -quit)
+
+ einfo Last-minute run tests with ${newldso} in /$(get_libdir) ...
+
+ local x striptest
+ for x in cal date env free ls true uname uptime ; do
+ x=$(type -p ${x})
+ [[ -z ${x} || ${x} != ${EPREFIX}/* ]] && continue
+ striptest=$(LC_ALL="C" file -L ${x} 2>/dev/null) || continue
+ case ${striptest} in
+ *"statically linked"*) continue;;
+ *"ASCII text"*) continue;;
+ esac
+ # We need to clear the locale settings as the upgrade might want
+ # incompatible locale data. This test is not for verifying that.
+ LC_ALL=C \
+ ${newldso} --library-path . ${x} > /dev/null \
+ || die "simple run test (${x}) failed"
+ done
+
+ popd >/dev/null
+}
+
+pkg_preinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ einfo "Checking general environment sanity."
+ sanity_prechecks
+
+ # prepare /etc/ld.so.conf.d/ for files
+ mkdir -p "${EROOT}"/etc/ld.so.conf.d
+
+ # Default /etc/hosts.conf:multi to on for systems with small dbs.
+ if [[ $(wc -l < "${EROOT}"/etc/hosts) -lt 1000 ]] ; then
+ sed -i '/^multi off/s:off:on:' "${ED}"/etc/host.conf
+ einfo "Defaulting /etc/host.conf:multi to on"
+ fi
+
+ [[ -n ${ROOT} ]] && return 0
+ [[ -d ${ED}/$(get_libdir) ]] || return 0
+ [[ -z ${BOOTSTRAP_RAP} ]] && glibc_sanity_check
+
+ if [[ -L ${EROOT}/usr/lib/locale ]]; then
+ # Help portage migrate this to a directory
+ # https://bugs.gentoo.org/753740
+ rm "${EROOT}"/usr/lib/locale || die
+ fi
+
+ # Keep around libcrypt so that Perl doesn't break when merging libxcrypt
+ # (libxcrypt is the new provider for now of libcrypt.so.{1,2}).
+ # bug #802207
+ if has_version "${CATEGORY}/${PN}[crypt]" && ! has preserve-libs ${FEATURES}; then
+ PRESERVED_OLD_LIBCRYPT=1
+ cp -p "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" \
+ "${T}/libcrypt$(get_libname 1)" || die
+ else
+ PRESERVED_OLD_LIBCRYPT=0
+ fi
+}
+
+glibc_refresh_ldconfig() {
+ if [[ ${MERGE_TYPE} == buildonly ]]; then
+ return
+ fi
+
+ # Version check could be added to avoid unnecessary work, but ldconfig
+ # should finish quickly enough to not matter.
+ ebegin "Refreshing ld.so.cache"
+ ldconfig -i
+ if ! eend $?; then
+ ewarn "Failed to refresh the ld.so.cache for you. Some programs may be broken"
+ ewarn "before you manually do so (ldconfig -i)."
+ fi
+}
+
+pkg_postinst() {
+ # nothing to do if just installing headers
+ just_headers && return
+
+ if ! tc-is-cross-compiler && [[ -x ${EROOT}/usr/sbin/iconvconfig ]] ; then
+ # Generate fastloading iconv module configuration file.
+ "${EROOT}"/usr/sbin/iconvconfig --prefix="${ROOT}/"
+ fi
+
+ if ! is_crosscompile && [[ -z ${ROOT} ]] ; then
+ # glibc-2.38+ on loong has ldconfig support added, but the ELF e_flags
+ # handling has changed as well, which means stale ldconfig auxiliary
+ # cache entries and failure to lookup libgcc_s / libstdc++ (breaking
+ # every C++ application) / libgomp etc., among other breakages.
+ #
+ # To fix this, simply refresh the ld.so.cache without using the
+ # auxiliary cache if we're natively installing on loong. This should
+ # be done relatively soon because we want to minimize the breakage
+ # window for the affected programs.
+ use loong && glibc_refresh_ldconfig
+
+ if ! use compile-locales; then
+ run_locale_gen 0 "${EROOT}"
+ fi
+
+ # If fixincludes was/is active for a particular GCC slot, we
+ # must refresh it. See bug #933282 and GCC's documentation:
+ # https://gcc.gnu.org/onlinedocs/gcc/Fixed-Headers.html
+ #
+ # TODO: Could this be done for cross? Some care would be needed
+ # to pass the right arguments.
+ while IFS= read -r -d $'\0' slot ; do
+ local mkheaders_path="${BROOT}"/usr/libexec/gcc/${CBUILD}/${slot##*/}/install-tools/mkheaders
+ local pthread_h="${BROOT}"/usr/lib/gcc/${CBUILD}/${slot##*/}/include-fixed/pthread.h
+ if [[ -x ${mkheaders_path} ]] ; then
+ ebegin "Refreshing fixincludes for ${CBUILD} with gcc-${slot##*/}"
+ ${mkheaders_path} -v
+ eend $?
+ elif [[ -f ${pthread_h} ]] ; then
+ # fixincludes might have been enabled in the past for this
+ # GCC slot but not since we fixed toolchain.eclass to install
+ # mkheaders, so we need to manually delete pthread.h at least.
+ ebegin "Deleting stale fixincludes'd pthread.h for ${CBUILD} with gcc-${slot##*/}"
+ mv -v "${pthread_h}" "${pthread_h}.bak"
+ eend $?
+ fi
+ done < <(find "${BROOT}"/usr/libexec/gcc/${CBUILD}/ -mindepth 1 -maxdepth 1 -type d -print0)
+ fi
+
+ upgrade_warning
+
+ # Check for sanity of /etc/nsswitch.conf, take 2
+ if [[ -e ${EROOT}/etc/nsswitch.conf ]] && ! has_version sys-auth/libnss-nis ; then
+ local entry
+ for entry in passwd group shadow; do
+ if grep -E -q "^[ \t]*${entry}:.*nis" "${EROOT}"/etc/nsswitch.conf; then
+ ewarn ""
+ ewarn "Your ${EROOT}/etc/nsswitch.conf uses NIS. Support for that has been"
+ ewarn "removed from glibc and is now provided by the package"
+ ewarn " sys-auth/libnss-nis"
+ ewarn "Install it now to keep your NIS setup working."
+ ewarn ""
+ fi
+ done
+ fi
+
+ if [[ ${PRESERVED_OLD_LIBCRYPT} -eq 1 ]] ; then
+ cp -p "${T}/libcrypt$(get_libname 1)" "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1)" || die
+ preserve_old_lib_notify /$(get_libdir)/libcrypt$(get_libname 1)
+
+ elog "Please ignore a possible later error message about a file collision involving"
+ elog "${EROOT}/$(get_libdir)/libcrypt$(get_libname 1). We need to preserve this file for the moment to keep"
+ elog "the upgrade working, but it also needs to be overwritten when"
+ elog "sys-libs/libxcrypt is installed. See bug 802210 for more details."
+ fi
+}
diff --git a/www-servers/puma/Manifest b/www-servers/puma/Manifest
index f9f4946bafc3..f7e49b4daf19 100644
--- a/www-servers/puma/Manifest
+++ b/www-servers/puma/Manifest
@@ -1,4 +1,4 @@
DIST puma-6.6.0.tar.gz 408988 BLAKE2B 656a82b50ef0556ae78791ed268a081c868eda85f273d29003ac587691345f066e3c539a3799a364cd89e57791866dd27af2971c05b3e4a906651e99f6d2a296 SHA512 aa55a06f153c3572e68333c1608b2cf624d85eaad315a76fea886adae22ef00ea1d5f316ecad2e7f02b2e923090c0587a8d17666eda69c6526399b23cb83f289
DIST puma-6.6.1.tar.gz 412347 BLAKE2B 6d0146f9bc39b0eb82edcea78cceeccccf9dba69d8d39a4c7710ab1a073f4909d5d7f2ec470c3d9a9d51738639b4fd72b16c359ccfeb6573ecfbbdbbf5384897 SHA512 5838b5eabb1190ba7af5429c08f34428954fb3e9c23bc8b78850021fc628bcb888feefea6f76d24caf490b1a45d890289dfe9b5c90ee9891b6387f81b6c05626
-DIST puma-7.1.0.tar.gz 424242 BLAKE2B be800a0b7ae2850ddbaac3408331956278a13150e20383270f874b404992fe6c80c430658f96fcb29f741c09a966d716f2e80e5fa757943b0bb7f1b4069f5686 SHA512 f00140080664e9f44181b289fb98059d1da70d6f6e555d8506a8e971954187635e36444d5aec14b9a849fec53b4e41d72961ca5550e69043dab2f211494455a5
DIST puma-7.2.0.tar.gz 426885 BLAKE2B ed2849482d00731a7098627891690bc314c7048e64d352a481b432cede78ca310f01dcd5c0658475467804430b63b8cc67fd09245b5781571bcaeaae24913920 SHA512 4439f2f752eef8f2f9aa45ad879f9b5a4e40e27af66623f4b7c54b5c93b1648e4713ef5c00d9a77e874960a3d8ecdddf6e77f9c80d2319215fd5fc7b312d1c46
+DIST puma-7.2.1.tar.gz 427475 BLAKE2B 391897599643da5f92eaf6dcc9861900b65d1718893e5f131ef46f25f78d88ffc4e64a9dde3d8d9c86dd8d408d34ea03834a18602f030a5c6019fa2fba22cee2 SHA512 543a78a6648d0ce5283a110e0bfb987d4f4a0fc48a7e8d6eddb0036e475a46c4eae99b5ce654191ceea312e42600c33572764154f6b7d995262a79c13c1e1b4c
diff --git a/www-servers/puma/puma-7.1.0.ebuild b/www-servers/puma/puma-7.2.1.ebuild
index 55a315c44bad..654cd1620f72 100644
--- a/www-servers/puma/puma-7.1.0.ebuild
+++ b/www-servers/puma/puma-7.2.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2025 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# 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_GEMSPEC="puma.gemspec"
@@ -18,7 +18,7 @@ SRC_URI="https://github.com/puma/puma/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="3"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~riscv ~sparc ~x86"
DEPEND="dev-libs/openssl:0 test? ( net-misc/curl )"
RDEPEND="dev-libs/openssl:0="
@@ -27,7 +27,7 @@ ruby_add_bdepend "virtual/ruby-ssl
test? (
dev-ruby/concurrent-ruby
dev-ruby/localhost
- || ( dev-ruby/rack:3.1 dev-ruby/rack:3.0 )
+ || ( dev-ruby/rack:3.2 dev-ruby/rack:3.1 dev-ruby/rack:3.0 )
dev-ruby/rackup
>=dev-ruby/minitest-5.9:5
>=dev-ruby/test-unit-3.0:2
@@ -83,5 +83,5 @@ each_ruby_test() {
einfo "Running test suite"
MT_NO_PLUGINS=true ${RUBY} -Ilib:.:test \
- -e "require 'minitest/autorun'; Dir['test/**/*test_*.rb'].each{require _1}" || die
+ -e "gem 'minitest', '~> 5.0'; require 'minitest/autorun'; Dir['test/**/*test_*.rb'].each{require _1}" || die
}
diff --git a/x11-wm/herbstluftwm/herbstluftwm-0.9.6.ebuild b/x11-wm/herbstluftwm/herbstluftwm-0.9.6-r1.ebuild
index fcf95cbc7886..644c61ceeb58 100644
--- a/x11-wm/herbstluftwm/herbstluftwm-0.9.6.ebuild
+++ b/x11-wm/herbstluftwm/herbstluftwm-0.9.6-r1.ebuild
@@ -7,7 +7,7 @@ PYTHON_COMPAT=( python3_{13..14} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_OPTIONAL=1
-inherit cmake desktop distutils-r1
+inherit cmake desktop distutils-r1 systemd
DESCRIPTION="A manual tiling window manager for X"
HOMEPAGE="https://herbstluftwm.org/"
@@ -149,6 +149,17 @@ src_install() {
# also in applications/. This allows herbstluftwm to be used as
# window manager of a Gnome flashback session.
domenu "${ED}"/usr/share/xsessions/herbstluftwm.desktop
+
+ systemd_newuserunit - herbstluftwm.service <<-EOF
+ [Unit]
+ Description=Herbstluftwm Window Manager
+ PartOf=graphical-session.target
+ After=graphical-session-pre.target
+
+ [Service]
+ ExecStart=/usr/bin/herbstluftwm
+ Restart=on-failure
+ EOF
}
distutils_enable_tests pytest
diff --git a/x11-wm/herbstluftwm/herbstluftwm-9999.ebuild b/x11-wm/herbstluftwm/herbstluftwm-9999.ebuild
index fcf95cbc7886..644c61ceeb58 100644
--- a/x11-wm/herbstluftwm/herbstluftwm-9999.ebuild
+++ b/x11-wm/herbstluftwm/herbstluftwm-9999.ebuild
@@ -7,7 +7,7 @@ PYTHON_COMPAT=( python3_{13..14} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_OPTIONAL=1
-inherit cmake desktop distutils-r1
+inherit cmake desktop distutils-r1 systemd
DESCRIPTION="A manual tiling window manager for X"
HOMEPAGE="https://herbstluftwm.org/"
@@ -149,6 +149,17 @@ src_install() {
# also in applications/. This allows herbstluftwm to be used as
# window manager of a Gnome flashback session.
domenu "${ED}"/usr/share/xsessions/herbstluftwm.desktop
+
+ systemd_newuserunit - herbstluftwm.service <<-EOF
+ [Unit]
+ Description=Herbstluftwm Window Manager
+ PartOf=graphical-session.target
+ After=graphical-session-pre.target
+
+ [Service]
+ ExecStart=/usr/bin/herbstluftwm
+ Restart=on-failure
+ EOF
}
distutils_enable_tests pytest