summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-09-19 19:27:39 -0500
committerroot <root@alpha.trunkmasters.com>2026-09-19 19:27:39 -0500
commit47516b9667518dacb1efd6d257f7b3e6a481ec93 (patch)
tree15968af203a3ff5970f912ab816b33e3a8648196
parent1e827c97be50f4e8e4da3697da898689b2bde9d5 (diff)
downloadsrcux-47516b9667518dacb1efd6d257f7b3e6a481ec93.tar.gz
srcux-47516b9667518dacb1efd6d257f7b3e6a481ec93.tar.xz
srcux-47516b9667518dacb1efd6d257f7b3e6a481ec93.zip
Adding metadata
-rw-r--r--app-accessibility/at-spi2-core/Manifest3
-rw-r--r--app-accessibility/at-spi2-core/at-spi2-core-2.58.6.ebuild86
-rw-r--r--app-accessibility/at-spi2-core/at-spi2-core-2.60.7.ebuild (renamed from app-accessibility/at-spi2-core/at-spi2-core-2.60.5.ebuild)0
-rw-r--r--app-admin/checksec/checksec-2.7.1-r2.ebuild2
-rw-r--r--app-admin/conky/conky-1.24.2-r1.ebuild4
-rw-r--r--app-admin/conky/files/conky-1.24.2-x11.patch332
-rw-r--r--app-admin/logrotate/logrotate-3.22.0-r1.ebuild2
-rw-r--r--app-admin/metalog/metalog-20260811.ebuild2
-rw-r--r--app-admin/rsyslog/rsyslog-8.2606.0.ebuild2
-rw-r--r--app-admin/salt/salt-3007.1-r2.ebuild2
-rw-r--r--app-admin/salt/salt-3007.12.ebuild2
-rw-r--r--app-arch/arj/arj-3.10.22_p29.ebuild2
-rw-r--r--app-arch/brotli/brotli-1.2.0-r1.ebuild2
-rw-r--r--app-arch/dpkg/dpkg-1.22.21.ebuild2
-rw-r--r--app-arch/makeself/makeself-2.7.1.ebuild2
-rw-r--r--app-backup/borgmatic/Manifest2
-rw-r--r--app-backup/borgmatic/borgmatic-2.1.8.ebuild (renamed from app-backup/borgmatic/borgmatic-2.1.6.ebuild)0
-rw-r--r--app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild2
-rw-r--r--app-crypt/acme/acme-3.2.0-r100.ebuild4
-rw-r--r--app-crypt/certbot-apache/certbot-apache-3.2.0-r100.ebuild4
-rw-r--r--app-crypt/certbot-dns-dnsimple/certbot-dns-dnsimple-3.2.0-r100.ebuild4
-rw-r--r--app-crypt/certbot-dns-nsone/certbot-dns-nsone-3.2.0-r100.ebuild4
-rw-r--r--app-crypt/certbot-nginx/certbot-nginx-3.2.0-r100.ebuild4
-rw-r--r--app-crypt/certbot/certbot-5.5.0-r2.ebuild2
-rw-r--r--app-crypt/certbot/certbot-5.6.0-r2.ebuild2
-rw-r--r--app-crypt/certbot/certbot-5.7.0-r1.ebuild2
-rw-r--r--app-crypt/certbot/certbot-5.8.0.ebuild2
-rw-r--r--app-crypt/certbot/certbot-9999.ebuild2
-rw-r--r--app-crypt/gcr/Manifest1
-rw-r--r--app-crypt/gcr/gcr-4.4.1.ebuild93
-rw-r--r--app-crypt/jitterentropy/jitterentropy-3.6.3.ebuild4
-rw-r--r--app-crypt/libsecret/files/libsecret-0.21.8.2-musl-fcntl.patch30
-rw-r--r--app-crypt/libsecret/libsecret-0.21.8.2-r1.ebuild13
-rw-r--r--app-crypt/veracrypt/veracrypt-1.26.20.ebuild5
-rw-r--r--app-editors/bluefish/bluefish-2.4.2.ebuild2
-rw-r--r--app-editors/gvim-classic/Manifest2
-rw-r--r--app-editors/gvim-classic/files/gvim-completion40
-rw-r--r--app-editors/gvim-classic/files/gvimrc-r128
-rw-r--r--app-editors/gvim-classic/gvim-classic-8.3.0.ebuild352
-rw-r--r--app-editors/gvim-classic/gvim-classic-9999.ebuild352
-rw-r--r--app-editors/gvim-classic/metadata.xml23
-rw-r--r--app-editors/gvim/Manifest2
-rw-r--r--app-editors/gvim/gvim-9.2.1119.ebuild370
-rw-r--r--app-editors/gvim/metadata.xml12
-rw-r--r--app-editors/moe/moe-1.16.ebuild2
-rw-r--r--app-editors/nedit/nedit-5.8.ebuild2
-rw-r--r--app-editors/vim-classic-core/Manifest2
-rw-r--r--app-editors/vim-classic-core/files/gvim.svg94
-rw-r--r--app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch37
-rw-r--r--app-editors/vim-classic-core/files/vimrc-r8218
-rw-r--r--app-editors/vim-classic-core/metadata.xml17
-rw-r--r--app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild237
-rw-r--r--app-editors/vim-classic-core/vim-classic-core-9999.ebuild237
-rw-r--r--app-editors/vim-classic/Manifest2
-rw-r--r--app-editors/vim-classic/files/vim-classic-completion36
-rw-r--r--app-editors/vim-classic/metadata.xml26
-rw-r--r--app-editors/vim-classic/vim-classic-8.3.0.ebuild382
-rw-r--r--app-editors/vim-classic/vim-classic-9999.ebuild382
-rw-r--r--app-editors/vim-core/Manifest2
-rw-r--r--app-editors/vim-core/metadata.xml4
-rw-r--r--app-editors/vim-core/vim-core-9.2.1119.ebuild235
-rw-r--r--app-editors/vim/Manifest2
-rw-r--r--app-editors/vim/metadata.xml6
-rw-r--r--app-editors/vim/vim-9.2.1119.ebuild400
-rw-r--r--app-eselect/eselect-pinentry/eselect-pinentry-0.7.5.ebuild2
-rw-r--r--app-misc/evtest/evtest-1.36.ebuild4
-rw-r--r--app-misc/jot/jot-9.0-r2.ebuild2
-rw-r--r--app-misc/lockfile-progs/lockfile-progs-0.2.0.ebuild4
-rw-r--r--app-mobilephone/gammu/gammu-1.44.1.ebuild2
-rw-r--r--app-office/scribus/Manifest1
-rw-r--r--app-office/scribus/files/scribus-1.7.2-poppler-26.02.patch407
-rw-r--r--app-office/scribus/files/scribus-1.7.2-poppler-26.03.patch14
-rw-r--r--app-office/scribus/scribus-1.7.2.ebuild156
-rw-r--r--app-text/groonga-normalizer-mysql/groonga-normalizer-mysql-1.1.1-r1.ebuild4
-rw-r--r--app-text/groonga/groonga-16.0.1.ebuild2
-rw-r--r--app-text/groonga/groonga-16.1.0.ebuild2
-rw-r--r--app-text/mupdf/mupdf-1.27.2.ebuild2
-rw-r--r--app-text/pelican/pelican-4.12.0.ebuild2
-rw-r--r--app-text/poppler/Manifest3
-rw-r--r--app-text/poppler/files/poppler-26.01.0-qt-deps.patch71
-rw-r--r--app-text/poppler/metadata.xml2
-rw-r--r--app-text/poppler/poppler-26.03.0.ebuild146
-rw-r--r--app-vim/airline/Manifest1
-rw-r--r--app-vim/airline/airline-0.12.ebuild24
-rw-r--r--app-vim/airline/airline-9999.ebuild11
-rw-r--r--app-vim/editorconfig-vim/Manifest1
-rw-r--r--app-vim/editorconfig-vim/editorconfig-vim-1.2.1.ebuild26
-rw-r--r--dev-build/bmake/bmake-20260508.ebuild2
-rw-r--r--dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild2
-rw-r--r--dev-cpp/cairomm/Manifest1
-rw-r--r--dev-cpp/cairomm/cairomm-1.18.1.ebuild58
-rw-r--r--dev-cpp/eigen/eigen-3.4.1-r1.ebuild (renamed from dev-cpp/eigen/eigen-3.4.1.ebuild)4
-rw-r--r--dev-cpp/eigen/files/eigen-3.4.1-fix-Werror-undef.patch19
-rw-r--r--dev-cpp/gtkmm/Manifest2
-rw-r--r--dev-cpp/gtkmm/gtkmm-4.20.0.ebuild52
-rw-r--r--dev-cpp/gtkmm/gtkmm-4.22.0.ebuild (renamed from dev-cpp/gtkmm/gtkmm-4.18.0-r1.ebuild)20
-rw-r--r--dev-cpp/msgpack-cxx/Manifest1
-rw-r--r--dev-cpp/msgpack-cxx/msgpack-cxx-9.0.0.ebuild59
-rw-r--r--dev-db/freetds/freetds-1.5.6.ebuild4
-rw-r--r--dev-db/unixODBC/unixODBC-2.3.14.ebuild4
-rw-r--r--dev-debug/gef/gef-2023.08.ebuild2
-rw-r--r--dev-debug/gef/gef-2025.01.ebuild2
-rw-r--r--dev-debug/gef/gef-2026.01.ebuild2
-rw-r--r--dev-debug/gef/gef-9999.ebuild2
-rw-r--r--dev-debug/pwndbg/pwndbg-20250418-r1.ebuild2
-rw-r--r--dev-debug/pwndbg/pwndbg-20250530-r3.ebuild2
-rw-r--r--dev-debug/pwndbg/pwndbg-20251010-r3.ebuild2
-rw-r--r--dev-debug/pwndbg/pwndbg-20251020-r3.ebuild2
-rw-r--r--dev-debug/pwndbg/pwndbg-99999999.ebuild2
-rw-r--r--dev-embedded/esptool/esptool-5.4.0.ebuild2
-rw-r--r--dev-java/leiningen-bin/leiningen-bin-2.12.0.ebuild2
-rw-r--r--dev-lang/erlang/erlang-29.0.ebuild2
-rw-r--r--dev-lang/spidermonkey/Manifest2
-rw-r--r--dev-lang/spidermonkey/spidermonkey-140.16.0.ebuild467
-rw-r--r--dev-lang/spidermonkey/spidermonkey-153.3.0.ebuild476
-rw-r--r--dev-libs/apache-arrow/apache-arrow-23.0.1.ebuild2
-rw-r--r--dev-libs/apache-arrow/apache-arrow-24.0.0.ebuild2
-rw-r--r--dev-libs/apache-arrow/apache-arrow-25.0.1-r1.ebuild2
-rw-r--r--dev-libs/botan/botan-3.13.0.ebuild2
-rw-r--r--dev-libs/collada-dom/collada-dom-2.5.0-r3.ebuild2
-rw-r--r--dev-libs/elfutils/elfutils-0.196.ebuild1
-rw-r--r--dev-libs/elfutils/files/elfutils-0.196-skip-static-test.patch13
-rw-r--r--dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild2
-rw-r--r--dev-libs/kirigami-addons/Manifest2
-rw-r--r--dev-libs/kirigami-addons/kirigami-addons-1.14.1.ebuild (renamed from dev-libs/kirigami-addons/kirigami-addons-1.14.0.ebuild)0
-rw-r--r--dev-libs/libayatana-appindicator/Manifest1
-rw-r--r--dev-libs/libayatana-appindicator/libayatana-appindicator-0.6.0.ebuild51
-rw-r--r--dev-libs/libayatana-indicator/Manifest1
-rw-r--r--dev-libs/libayatana-indicator/libayatana-indicator-0.9.5.ebuild51
-rw-r--r--dev-libs/libcec/Manifest1
-rw-r--r--dev-libs/libcec/libcec-8.1.6.ebuild2
-rw-r--r--dev-libs/libcec/libcec-8.1.7.ebuild130
-rw-r--r--dev-libs/libp11/libp11-0.4.17.ebuild2
-rw-r--r--dev-libs/libpfm/libpfm-4.13.0_p20260328.ebuild2
-rw-r--r--dev-libs/librdkafka/librdkafka-2.12.1.ebuild4
-rw-r--r--dev-libs/libxmlb/libxmlb-0.3.28.ebuild2
-rw-r--r--dev-libs/lockdev/lockdev-1.0.3.1.2-r5.ebuild4
-rw-r--r--dev-libs/mimalloc/mimalloc-3.4.5.ebuild2
-rw-r--r--dev-libs/ossp-uuid/ossp-uuid-1.6.6.ebuild2
-rw-r--r--dev-libs/pkcs11-helper/pkcs11-helper-1.31.0.ebuild2
-rw-r--r--dev-libs/pugixml/pugixml-1.16.ebuild2
-rw-r--r--dev-libs/unibilium/Manifest1
-rw-r--r--dev-libs/unibilium/unibilium-2.1.4.ebuild30
-rw-r--r--dev-libs/xerces-c/xerces-c-3.3.0-r1.ebuild2
-rw-r--r--dev-libs/xmlsec/xmlsec-1.3.12.ebuild2
-rw-r--r--dev-ml/llvm/Manifest1
-rw-r--r--dev-ml/llvm/llvm-24.0.0_pre20260919.ebuild107
-rw-r--r--dev-perl/AnyEvent-I3/AnyEvent-I3-0.190.0.ebuild2
-rw-r--r--dev-perl/Cwd-Guard/Cwd-Guard-0.50.0-r1.ebuild2
-rw-r--r--dev-perl/Devel-CheckCompiler/Devel-CheckCompiler-0.70.0-r1.ebuild2
-rw-r--r--dev-perl/File-Copy-Link/File-Copy-Link-0.200.0-r1.ebuild2
-rw-r--r--dev-perl/File-Copy-Recursive-Reduced/File-Copy-Recursive-Reduced-0.8.0.ebuild2
-rw-r--r--dev-perl/Module-Build-XSUtil/Module-Build-XSUtil-0.190.0.ebuild2
-rw-r--r--dev-perl/Mouse/Mouse-2.5.11.ebuild2
-rw-r--r--dev-perl/X11-XCB/X11-XCB-0.240.0.ebuild2
-rw-r--r--dev-perl/XML-Descent/XML-Descent-1.40.0-r1.ebuild2
-rw-r--r--dev-perl/XML-TokeParser/XML-TokeParser-0.50.0-r1.ebuild2
-rw-r--r--dev-perl/XS-Object-Magic/XS-Object-Magic-0.50.0.ebuild2
-rw-r--r--dev-perl/local-lib/local-lib-2.0.29-r1.ebuild2
-rw-r--r--dev-python/annotated-doc/annotated-doc-0.0.5.ebuild2
-rw-r--r--dev-python/argon2-cffi-bindings/argon2-cffi-bindings-26.1.0.ebuild2
-rw-r--r--dev-python/argparse-manpage/argparse-manpage-4.7-r1.ebuild2
-rw-r--r--dev-python/array-api-compat/array-api-compat-1.15.0.ebuild2
-rw-r--r--dev-python/ast-serialize/ast-serialize-0.8.0.ebuild2
-rw-r--r--dev-python/astroid/astroid-4.3.1.ebuild2
-rw-r--r--dev-python/bandit/bandit-1.9.4.ebuild2
-rw-r--r--dev-python/bitarray/bitarray-3.11.0.ebuild2
-rw-r--r--dev-python/bitstring/bitstring-4.4.0-r2.ebuild2
-rw-r--r--dev-python/blockbuster/blockbuster-1.5.27.ebuild2
-rw-r--r--dev-python/boto3/boto3-1.43.78.ebuild2
-rw-r--r--dev-python/botocore/botocore-1.43.78.ebuild2
-rw-r--r--dev-python/brotlicffi/brotlicffi-1.2.0.2.ebuild2
-rw-r--r--dev-python/cachelib/cachelib-0.16.1.ebuild2
-rw-r--r--dev-python/cachelib/cachelib-0.17.0.ebuild33
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.55.1.ebuild2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.0.ebuild2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.2.ebuild2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.56.3.ebuild2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.57.0.ebuild2
-rw-r--r--dev-python/charset-normalizer/charset-normalizer-3.5.1.ebuild2
-rw-r--r--dev-python/cheetah3/cheetah3-3.4.0-r1.ebuild2
-rw-r--r--dev-python/clang/Manifest1
-rw-r--r--dev-python/clang/clang-24.0.0_pre20260919.ebuild49
-rw-r--r--dev-python/deepdiff/deepdiff-8.6.2.ebuild2
-rw-r--r--dev-python/deepdiff/deepdiff-9.1.0.ebuild2
-rw-r--r--dev-python/deepmerge/deepmerge-3.0.1.ebuild2
-rw-r--r--dev-python/dependency-groups/dependency-groups-1.3.2.ebuild2
-rw-r--r--dev-python/elasticsearch/elasticsearch-9.5.0.ebuild2
-rw-r--r--dev-python/elasticsearch/elasticsearch-9.5.1.ebuild2
-rw-r--r--dev-python/esp-pylib/esp-pylib-1.1.4.ebuild2
-rw-r--r--dev-python/faker/faker-40.37.0.ebuild2
-rw-r--r--dev-python/fastjsonschema/fastjsonschema-2.22.2.ebuild2
-rw-r--r--dev-python/feedparser-sgmllib/feedparser-sgmllib-2.1.0.ebuild2
-rw-r--r--dev-python/feedparser/feedparser-6.0.14.ebuild2
-rw-r--r--dev-python/gfloat/files/gfloat-0.5.2-signed-zero-overflow.patch51
-rw-r--r--dev-python/gfloat/gfloat-0.5.2-r1.ebuild6
-rw-r--r--dev-python/gfloat/gfloat-0.5.2-r2.ebuild79
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.199.0.ebuild2
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild2
-rw-r--r--dev-python/httpx2/httpx2-2.13.0.ebuild1
-rw-r--r--dev-python/hypothesis/hypothesis-6.165.10.ebuild2
-rw-r--r--dev-python/icalendar/icalendar-7.3.0.ebuild2
-rw-r--r--dev-python/idna/idna-3.19.ebuild2
-rw-r--r--dev-python/imageio/imageio-2.37.3-r1.ebuild2
-rw-r--r--dev-python/imageio/imageio-2.37.4.ebuild2
-rw-r--r--dev-python/ipykernel/ipykernel-7.3.0.ebuild2
-rw-r--r--dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild2
-rw-r--r--dev-python/jsonpickle/jsonpickle-4.1.2.ebuild2
-rw-r--r--dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.17.ebuild2
-rw-r--r--dev-python/lit/Manifest1
-rw-r--r--dev-python/lit/lit-24.0.0_pre20260919.ebuild41
-rw-r--r--dev-python/logbook/logbook-1.10.1.ebuild2
-rw-r--r--dev-python/lxml/lxml-6.1.2.ebuild2
-rw-r--r--dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild2
-rw-r--r--dev-python/moto/moto-4.2.14.ebuild2
-rw-r--r--dev-python/moto/moto-5.2.2.ebuild2
-rw-r--r--dev-python/moto/moto-5.2.3.ebuild2
-rw-r--r--dev-python/mypy/mypy-2.3.1.ebuild2
-rw-r--r--dev-python/nanobind/nanobind-2.15.0.ebuild2
-rw-r--r--dev-python/narwhals/narwhals-2.25.0.ebuild2
-rw-r--r--dev-python/nbformat/nbformat-5.11.1.ebuild2
-rw-r--r--dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild2
-rw-r--r--dev-python/numpy/numpy-2.5.2-r1.ebuild2
-rw-r--r--dev-python/oct2py/oct2py-6.0.4.ebuild2
-rw-r--r--dev-python/oct2py/oct2py-6.1.1.ebuild2
-rw-r--r--dev-python/pandas/pandas-2.3.3.ebuild2
-rw-r--r--dev-python/pandas/pandas-3.0.5.ebuild2
-rw-r--r--dev-python/pandas/pandas-3.0.6.ebuild2
-rw-r--r--dev-python/pikepdf/pikepdf-10.12.0.ebuild2
-rw-r--r--dev-python/poetry-plugin-export/poetry-plugin-export-1.10.0.ebuild2
-rw-r--r--dev-python/poetry/poetry-2.4.1.ebuild2
-rw-r--r--dev-python/poetry/poetry-2.4.2.ebuild2
-rw-r--r--dev-python/poetry/poetry-2.4.3.ebuild2
-rw-r--r--dev-python/portalocker/portalocker-4.2.0.ebuild2
-rw-r--r--dev-python/pyarrow/pyarrow-23.0.1.ebuild2
-rw-r--r--dev-python/pyarrow/pyarrow-24.0.0.ebuild2
-rw-r--r--dev-python/pyarrow/pyarrow-25.0.1.ebuild2
-rw-r--r--dev-python/pygithub/pygithub-2.10.0.ebuild2
-rw-r--r--dev-python/pygments/pygments-2.21.0.ebuild2
-rw-r--r--dev-python/pygraphviz/pygraphviz-2.0.1-r1.ebuild2
-rw-r--r--dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild2
-rw-r--r--dev-python/pyopencl/pyopencl-2026.1.2.ebuild2
-rw-r--r--dev-python/pyproj/pyproj-3.7.2.ebuild2
-rw-r--r--dev-python/pyproj/pyproj-3.8.0.ebuild2
-rw-r--r--dev-python/pysnmp/pysnmp-7.1.29.ebuild2
-rw-r--r--dev-python/pysubs2/pysubs2-1.9.0.ebuild2
-rw-r--r--dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.ebuild2
-rw-r--r--dev-python/pytest-salt-factories/pytest-salt-factories-1.0.1.ebuild4
-rw-r--r--dev-python/pytest-salt-factories/pytest-salt-factories-1.0.5.ebuild2
-rw-r--r--dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild2
-rw-r--r--dev-python/python-dotenv/python-dotenv-1.2.3.ebuild2
-rw-r--r--dev-python/python-json-logger/python-json-logger-4.2.0.ebuild2
-rw-r--r--dev-python/python-lsp-black/python-lsp-black-2.0.0-r2.ebuild2
-rw-r--r--dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild2
-rw-r--r--dev-python/python-lsp-server/python-lsp-server-1.15.0.ebuild2
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-13.0.0.ebuild2
-rw-r--r--dev-python/python-neutronclient/python-neutronclient-14.0.0.ebuild2
-rw-r--r--dev-python/pythran/pythran-0.19.0.ebuild2
-rw-r--r--dev-python/pywayland/pywayland-0.4.19.ebuild2
-rw-r--r--dev-python/pyzmq/pyzmq-27.2.0.ebuild2
-rw-r--r--dev-python/quart/quart-0.22.0.ebuild2
-rw-r--r--dev-python/reedsolo/reedsolo-2.1.1_beta1-r2.ebuild2
-rw-r--r--dev-python/rich-click/rich-click-1.9.9.ebuild2
-rw-r--r--dev-python/rpyc/rpyc-6.0.0.ebuild2
-rw-r--r--dev-python/rq/rq-2.11.0.ebuild2
-rw-r--r--dev-python/scikit-image/scikit-image-0.26.0-r1.ebuild2
-rw-r--r--dev-python/shtab/shtab-1.11.0.ebuild2
-rw-r--r--dev-python/sphinx-argparse/sphinx-argparse-0.6.1.ebuild2
-rw-r--r--dev-python/spyder-kernels/spyder-kernels-3.1.5-r1.ebuild2
-rw-r--r--dev-python/spyder-kernels/spyder-kernels-3.1.6.ebuild2
-rw-r--r--dev-python/statsmodels/statsmodels-0.14.6.ebuild2
-rw-r--r--dev-python/statsmodels/statsmodels-0.15.0.ebuild2
-rw-r--r--dev-python/stevedore/stevedore-5.9.1.ebuild2
-rw-r--r--dev-python/stripe/stripe-15.5.1.ebuild2
-rw-r--r--dev-python/tibs/tibs-2.0.1.ebuild2
-rw-r--r--dev-python/tifffile/tifffile-2026.9.15.ebuild2
-rw-r--r--dev-python/tifffile/tifffile-2026.9.9.ebuild2
-rw-r--r--dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild2
-rw-r--r--dev-python/typer/typer-0.27.2.ebuild2
-rw-r--r--dev-python/urwid/urwid-4.0.11.ebuild2
-rw-r--r--dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.1.ebuild2
-rw-r--r--dev-python/uvicorn/uvicorn-0.52.4.ebuild2
-rw-r--r--dev-python/vcs-versioning/vcs-versioning-2.3.1.ebuild2
-rw-r--r--dev-python/webencodings/webencodings-0.6.1.ebuild2
-rw-r--r--dev-python/widgetsnbextension/widgetsnbextension-4.0.16.ebuild2
-rw-r--r--dev-python/xarray/xarray-2026.2.0.ebuild2
-rw-r--r--dev-python/xarray/xarray-2026.4.0.ebuild2
-rw-r--r--dev-python/xarray/xarray-2026.7.0.ebuild2
-rw-r--r--dev-python/xxhash/xxhash-4.0.1.ebuild2
-rw-r--r--dev-python/zipstream-ng/zipstream-ng-1.9.3.ebuild2
-rw-r--r--dev-python/zope-hookable/zope-hookable-8.3.ebuild2
-rw-r--r--dev-python/zope-i18nmessageid/zope-i18nmessageid-8.3.ebuild2
-rw-r--r--dev-python/zope-interface/zope-interface-8.6.ebuild2
-rw-r--r--dev-qt/qt-docs/qt-docs-6.11.2_p202608131018.ebuild2
-rw-r--r--dev-qt/qt3d/qt3d-6.11.2.ebuild2
-rw-r--r--dev-qt/qt5compat/qt5compat-6.11.2.ebuild2
-rw-r--r--dev-qt/qtbase/qtbase-6.11.2-r2.ebuild2
-rw-r--r--dev-qt/qtcharts/qtcharts-6.11.2.ebuild2
-rw-r--r--dev-qt/qtconnectivity/qtconnectivity-6.11.2.ebuild2
-rw-r--r--dev-qt/qtdeclarative/qtdeclarative-6.11.2-r1.ebuild2
-rw-r--r--dev-qt/qtimageformats/qtimageformats-6.11.2.ebuild2
-rw-r--r--dev-qt/qtlocation/qtlocation-6.11.2.ebuild2
-rw-r--r--dev-qt/qtmultimedia/qtmultimedia-6.11.2.ebuild2
-rw-r--r--dev-qt/qtpositioning/qtpositioning-6.11.2.ebuild2
-rw-r--r--dev-qt/qtquick3d/qtquick3d-6.11.2.ebuild2
-rw-r--r--dev-qt/qtquicktimeline/qtquicktimeline-6.11.2.ebuild2
-rw-r--r--dev-qt/qtscxml/qtscxml-6.11.2.ebuild2
-rw-r--r--dev-qt/qtsensors/qtsensors-6.11.2.ebuild2
-rw-r--r--dev-qt/qtserialport/qtserialport-6.11.2.ebuild2
-rw-r--r--dev-qt/qtshadertools/qtshadertools-6.11.2.ebuild2
-rw-r--r--dev-qt/qtspeech/qtspeech-6.11.2.ebuild2
-rw-r--r--dev-qt/qtsvg/qtsvg-6.11.2.ebuild2
-rw-r--r--dev-qt/qttools/qttools-6.11.2.ebuild2
-rw-r--r--dev-qt/qttranslations/qttranslations-6.11.2.ebuild2
-rw-r--r--dev-qt/qtvirtualkeyboard/qtvirtualkeyboard-6.11.2.ebuild2
-rw-r--r--dev-qt/qtwayland/qtwayland-6.11.2.ebuild2
-rw-r--r--dev-qt/qtwebchannel/qtwebchannel-6.11.2.ebuild2
-rw-r--r--dev-qt/qtwebsockets/qtwebsockets-6.11.2.ebuild2
-rw-r--r--dev-util/aruba/aruba-2.3.3.ebuild4
-rw-r--r--dev-util/bloaty/bloaty-1.1-r2.ebuild4
-rw-r--r--dev-util/diffoscope/diffoscope-327.ebuild2
-rw-r--r--dev-util/opencl-headers/opencl-headers-2026.05.29.ebuild2
-rw-r--r--dev-util/pwntools/pwntools-4.14.1.ebuild2
-rw-r--r--dev-util/pwntools/pwntools-4.15.0.ebuild2
-rw-r--r--dev-util/pwntools/pwntools-9999.ebuild2
-rw-r--r--dev-vcs/gagit/gagit-4.ebuild2
-rw-r--r--eclass/font-ebdftopcf.eclass5
-rw-r--r--eclass/font.eclass119
-rw-r--r--eclass/llvm.org.eclass3
-rw-r--r--games-engines/uzdoom/Manifest1
-rw-r--r--games-engines/uzdoom/files/uzdoom-5.0.1-deps.patch195
-rw-r--r--games-engines/uzdoom/metadata.xml2
-rw-r--r--games-engines/uzdoom/uzdoom-5.0.1.ebuild101
-rw-r--r--gnome-base/gdm/Manifest2
-rw-r--r--gnome-base/gdm/gdm-50.3-r1.ebuild202
-rw-r--r--gnome-base/gdm/gdm-50.3.ebuild (renamed from gnome-base/gdm/gdm-49.3-r3.ebuild)36
-rw-r--r--gnome-base/gnome-control-center/Manifest4
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-49.7.ebuild212
-rw-r--r--gnome-base/gnome-control-center/gnome-control-center-50.4.ebuild (renamed from gnome-base/gnome-control-center/gnome-control-center-49.8-r1.ebuild)33
-rw-r--r--gnome-base/gnome-session-openrc/Manifest1
-rw-r--r--gnome-base/gnome-session-openrc/files/0001-leader-Get-DCONF_PROFILE-from-gdm-s-.config-environm.patch115
-rw-r--r--gnome-base/gnome-session-openrc/gnome-session-openrc-50.0.ebuild32
-rw-r--r--gnome-base/gnome-session/Manifest3
-rw-r--r--gnome-base/gnome-session/files/data-Install-XWayland-targets-even-if-x11-is-off.patch37
-rw-r--r--gnome-base/gnome-session/files/exclude-gnome-shell-from-queryendSession-and-endSession.patch40
-rw-r--r--gnome-base/gnome-session/files/gnome-session-46.0-meson-Support-elogind.patch18
-rw-r--r--gnome-base/gnome-session/files/gnome-session-50.1-Make-systemd-optional.patch197
-rw-r--r--gnome-base/gnome-session/gnome-session-48.0-r2.ebuild124
-rw-r--r--gnome-base/gnome-session/gnome-session-50.1.ebuild (renamed from gnome-base/gnome-session/gnome-session-49.2.ebuild)35
-rw-r--r--gnome-base/gnome-settings-daemon/Manifest2
-rw-r--r--gnome-base/gnome-settings-daemon/files/42.1-build-Make-wacom-optional-and-controllable-via-meson.patch40
-rw-r--r--gnome-base/gnome-settings-daemon/gnome-settings-daemon-48.1.ebuild144
-rw-r--r--gnome-base/gnome-settings-daemon/gnome-settings-daemon-50.1.ebuild (renamed from gnome-base/gnome-settings-daemon/gnome-settings-daemon-49.1.ebuild)11
-rw-r--r--gnome-base/gnome-settings-daemon/metadata.xml2
-rw-r--r--gnome-base/gnome-shell/Manifest2
-rw-r--r--gnome-base/gnome-shell/gnome-shell-50.5.ebuild (renamed from gnome-base/gnome-shell/gnome-shell-49.8.ebuild)24
-rw-r--r--gnome-base/gnome-shell/metadata.xml1
-rw-r--r--gnome-base/gsettings-desktop-schemas/Manifest2
-rw-r--r--gnome-base/gsettings-desktop-schemas/gsettings-desktop-schemas-50.1.ebuild (renamed from gnome-base/gsettings-desktop-schemas/gsettings-desktop-schemas-48.0.ebuild)6
-rw-r--r--gnome-base/nautilus/Manifest1
-rw-r--r--gnome-base/nautilus/nautilus-50.3.1.ebuild124
-rw-r--r--gnome-extra/gnome-calendar/Manifest3
-rw-r--r--gnome-extra/gnome-calendar/gnome-calendar-48.1.ebuild47
-rw-r--r--gnome-extra/gnome-calendar/gnome-calendar-50.0.ebuild (renamed from gnome-extra/gnome-calendar/gnome-calendar-49.0.1.ebuild)3
-rw-r--r--gnome-extra/gnome-shell-extension-applications-overview-tooltip/files/gnome-shell-extension-applications-overview-tooltip-24-gnome50.patch11
-rw-r--r--gnome-extra/gnome-shell-extension-applications-overview-tooltip/gnome-shell-extension-applications-overview-tooltip-24-r1.ebuild49
-rw-r--r--gnome-extra/gnome-shell-extension-bing-wallpaper/Manifest1
-rw-r--r--gnome-extra/gnome-shell-extension-bing-wallpaper/gnome-shell-extension-bing-wallpaper-52.ebuild53
-rw-r--r--gnome-extra/gnome-shell-extension-dash-to-panel/Manifest2
-rw-r--r--gnome-extra/gnome-shell-extension-dash-to-panel/gnome-shell-extension-dash-to-panel-74.ebuild (renamed from gnome-extra/gnome-shell-extension-dash-to-panel/gnome-shell-extension-dash-to-panel-72.ebuild)5
-rw-r--r--gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest1
-rw-r--r--gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-51.0.8.ebuild41
-rw-r--r--gnome-extra/gnome-shell-extension-gsconnect/Manifest1
-rw-r--r--gnome-extra/gnome-shell-extension-gsconnect/gnome-shell-extension-gsconnect-71.ebuild77
-rw-r--r--gnome-extra/gnome-shell-extension-weather-oclock/gnome-shell-extension-weather-oclock-50.5.ebuild3
-rw-r--r--gnome-extra/gnome-shell-extensions/Manifest1
-rw-r--r--gnome-extra/gnome-shell-extensions/gnome-shell-extensions-50.4.ebuild71
-rw-r--r--gnome-extra/gnome-shell-frippery/Manifest2
-rw-r--r--gnome-extra/gnome-shell-frippery/gnome-shell-frippery-50.0.ebuild (renamed from gnome-extra/gnome-shell-frippery/gnome-shell-frippery-48.0.ebuild)6
-rw-r--r--gnome-extra/gucharmap/Manifest2
-rw-r--r--gnome-extra/gucharmap/gucharmap-16.0.1.ebuild79
-rw-r--r--gnome-extra/gucharmap/gucharmap-17.0.1.ebuild81
-rw-r--r--gnome-extra/pch-session/Manifest3
-rw-r--r--gnome-extra/pch-session/pch-session-48.0-r1.ebuild61
-rw-r--r--gnome-extra/pch-session/pch-session-50.0.ebuild (renamed from gnome-extra/pch-session/pch-session-49.0.ebuild)28
-rw-r--r--gui-apps/sddm-gentoo-config/metadata.xml5
-rw-r--r--gui-apps/sddm-gentoo-config/sddm-gentoo-config-0.ebuild26
-rw-r--r--gui-libs/libadwaita/Manifest1
-rw-r--r--gui-libs/libadwaita/libadwaita-1.9.4.ebuild73
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-cube-panel-overlay.patch63
-rw-r--r--gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md17
-rw-r--r--gui-wm/wayfire/graphify-out/.graphify_labels.json4
-rw-r--r--gui-wm/wayfire/graphify-out/.graphify_labels.json.sig2
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-19/.graphify_labels.json12
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-19/GRAPH_REPORT.md73
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-19/graph.json1142
-rw-r--r--gui-wm/wayfire/graphify-out/2026-09-19/manifest.json62
-rw-r--r--gui-wm/wayfire/graphify-out/GRAPH_REPORT.md40
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/180da5328929e76670522b024f0ff14e744359b942ef36461d95777a915ac683.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/1c97369709dde6633f6626a1b82403830a931ba16fcb0dd0fd2bc783f42eaade.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/2d8de9b8f2396b4cc50dc4cb14aa49ecafdeb94277d3415ab52d1d998c517802.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/746da56d8640ac99a1661c96b44251fb4cf44762d42ef83a6f0c968f1f0afd78.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/bd26cdd8368afd1dc3250b9b618bf5b18ae82eefeca24060efde7ae53d2d8d37.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/fec7fb7761be99ac30e14eb2962aeae78a1e6add90cb735d89c671b2f9b75ed6.json1
-rw-r--r--gui-wm/wayfire/graphify-out/cache/last_query_stamp2
-rw-r--r--gui-wm/wayfire/graphify-out/cache/stat-index.json2
-rw-r--r--gui-wm/wayfire/graphify-out/graph.html8
-rw-r--r--gui-wm/wayfire/graphify-out/graph.json208
-rw-r--r--gui-wm/wayfire/graphify-out/manifest.json36
-rw-r--r--gui-wm/wayfire/tests/render-regression/README.md14
-rw-r--r--gui-wm/wayfire/tests/render-regression/layer-check.py51
-rw-r--r--gui-wm/wayfire/tests/render-regression/redraw-check.py9
-rw-r--r--gui-wm/wayfire/tests/render-regression/render-test.cpp35
-rw-r--r--gui-wm/wayfire/tests/render-regression/run.py8
-rw-r--r--gui-wm/wayfire/wayfire-0.11.0-r4.ebuild171
-rw-r--r--kde-frameworks/extra-cmake-modules/extra-cmake-modules-6.29.0.ebuild2
-rw-r--r--kde-misc/kdiff3/Manifest1
-rw-r--r--kde-misc/kdiff3/kdiff3-1.12.4.ebuild41
-rw-r--r--kde-plasma/powerdevil/files/powerdevil-6.7.5-solid-6.30-negative-percentage.patch32
-rw-r--r--kde-plasma/powerdevil/powerdevil-6.7.5-r1.ebuild (renamed from kde-plasma/powerdevil/powerdevil-6.7.5.ebuild)4
-rw-r--r--llvm-core/clang-common/Manifest1
-rw-r--r--llvm-core/clang-common/clang-common-24.0.0_pre20260919.ebuild341
-rw-r--r--llvm-core/clang/Manifest1
-rw-r--r--llvm-core/clang/clang-24.0.0_pre20260919.ebuild468
-rw-r--r--llvm-core/flang/Manifest1
-rw-r--r--llvm-core/flang/flang-24.0.0_pre20260919.ebuild159
-rw-r--r--llvm-core/lld/Manifest1
-rw-r--r--llvm-core/lld/lld-24.0.0_pre20260919.ebuild95
-rw-r--r--llvm-core/lldb/Manifest1
-rw-r--r--llvm-core/lldb/lldb-24.0.0_pre20260919.ebuild116
-rw-r--r--llvm-core/llvm-common/Manifest1
-rw-r--r--llvm-core/llvm-common/llvm-common-24.0.0_pre20260919.ebuild53
-rw-r--r--llvm-core/llvm/Manifest1
-rw-r--r--llvm-core/llvm/llvm-24.0.0_pre20260919.ebuild575
-rw-r--r--llvm-core/mlir/Manifest1
-rw-r--r--llvm-core/mlir/mlir-24.0.0_pre20260919.ebuild215
-rw-r--r--llvm-core/polly/Manifest1
-rw-r--r--llvm-core/polly/polly-24.0.0_pre20260919.ebuild59
-rw-r--r--llvm-runtimes/compiler-rt-sanitizers/Manifest1
-rw-r--r--llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0.9999.ebuild12
-rw-r--r--llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0_pre20260919.ebuild239
-rw-r--r--llvm-runtimes/compiler-rt-sanitizers/metadata.xml1
-rw-r--r--llvm-runtimes/compiler-rt/Manifest1
-rw-r--r--llvm-runtimes/compiler-rt/compiler-rt-24.0.0.9999.ebuild10
-rw-r--r--llvm-runtimes/compiler-rt/compiler-rt-24.0.0_pre20260919.ebuild192
-rw-r--r--llvm-runtimes/flang-rt/Manifest1
-rw-r--r--llvm-runtimes/flang-rt/flang-rt-24.0.0_pre20260919.ebuild83
-rw-r--r--llvm-runtimes/libclc/Manifest1
-rw-r--r--llvm-runtimes/libclc/libclc-24.0.0_pre20260919.ebuild80
-rw-r--r--llvm-runtimes/libcxx/Manifest1
-rw-r--r--llvm-runtimes/libcxx/libcxx-24.0.0_pre20260919.ebuild262
-rw-r--r--llvm-runtimes/libcxxabi/Manifest1
-rw-r--r--llvm-runtimes/libcxxabi/libcxxabi-24.0.0_pre20260919.ebuild146
-rw-r--r--llvm-runtimes/libgcc/Manifest1
-rw-r--r--llvm-runtimes/libgcc/libgcc-24.0.0_pre20260919.ebuild173
-rw-r--r--llvm-runtimes/libunwind/Manifest1
-rw-r--r--llvm-runtimes/libunwind/libunwind-24.0.0_pre20260919.ebuild194
-rw-r--r--llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest1
-rw-r--r--llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-24.0.0_pre20260919.ebuild42
-rw-r--r--llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest1
-rw-r--r--llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-24.0.0_pre20260919.ebuild42
-rw-r--r--llvm-runtimes/openmp-spirv64-intel/Manifest1
-rw-r--r--llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-24.0.0_pre20260919.ebuild44
-rw-r--r--llvm-runtimes/openmp/Manifest1
-rw-r--r--llvm-runtimes/openmp/openmp-24.0.0_pre20260919.ebuild213
-rw-r--r--media-fonts/dina/dina-2.93-r1.ebuild21
-rw-r--r--media-fonts/ibm-plex/ibm-plex-5.1.3.ebuild2
-rw-r--r--media-fonts/unifont/Manifest3
-rw-r--r--media-fonts/unifont/metadata.xml2
-rw-r--r--media-fonts/unifont/unifont-18.0.01.ebuild (renamed from media-fonts/unifont/unifont-17.0.03.ebuild)49
-rw-r--r--media-gfx/exiv2/exiv2-0.28.9.ebuild2
-rw-r--r--media-gfx/inkscape/Manifest1
-rw-r--r--media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01-warnings.patch55
-rw-r--r--media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01.patch62
-rw-r--r--media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.02.patch214
-rw-r--r--media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.03.patch45
-rw-r--r--media-gfx/inkscape/inkscape-1.4.3-r1.ebuild210
-rw-r--r--media-gfx/jp2a/jp2a-1.3.2.ebuild4
-rw-r--r--media-gfx/pngcheck/pngcheck-4.0.1.ebuild2
-rw-r--r--media-gfx/shotwell/Manifest1
-rw-r--r--media-gfx/shotwell/shotwell-33.0.ebuild91
-rw-r--r--media-gfx/viewnior/viewnior-1.8_p20210825.ebuild2
-rw-r--r--media-gfx/wings/wings-2.4.1.ebuild4
-rw-r--r--media-libs/SoQt/Manifest1
-rw-r--r--media-libs/SoQt/SoQt-1.6.3.ebuild45
-rw-r--r--media-libs/SoXt/Manifest1
-rw-r--r--media-libs/SoXt/SoXt-1.4.1.ebuild45
-rw-r--r--media-libs/alsa-lib/alsa-lib-1.2.16.1.ebuild2
-rw-r--r--media-libs/alsa-ucm-conf/alsa-ucm-conf-1.2.16.1.ebuild2
-rw-r--r--media-libs/coin/Manifest1
-rw-r--r--media-libs/coin/coin-4.0.4.ebuild107
-rw-r--r--media-libs/kvazaar/kvazaar-2.3.2.ebuild2
-rw-r--r--media-libs/libass/libass-0.17.5.ebuild2
-rw-r--r--media-libs/libbluray/libbluray-1.4.1.ebuild2
-rw-r--r--media-libs/libdvdnav/libdvdnav-7.0.0.ebuild2
-rw-r--r--media-libs/libdvdread/Manifest1
-rw-r--r--media-libs/libdvdread/libdvdread-7.0.1.ebuild2
-rw-r--r--media-libs/libdvdread/libdvdread-7.1.1.ebuild41
-rw-r--r--media-libs/libheif/libheif-1.23.4.ebuild2
-rw-r--r--media-libs/libwmf/libwmf-0.2.15-r1.ebuild2
-rw-r--r--media-libs/mlt/mlt-7.40.0.ebuild2
-rw-r--r--media-libs/quarter/Manifest1
-rw-r--r--media-libs/quarter/quarter-1.2.2.ebuild66
-rw-r--r--media-libs/simage/Manifest1
-rw-r--r--media-libs/simage/files/simage-1.8.3-cmake4.patch19
-rw-r--r--media-libs/simage/simage-1.8.3-r1.ebuild87
-rw-r--r--media-libs/taglib/Manifest1
-rw-r--r--media-libs/taglib/taglib-2.3.ebuild59
-rw-r--r--media-libs/ttf/ttf-1.1.0.ebuild2
-rw-r--r--media-libs/ttf/ttf-9999.ebuild2
-rw-r--r--media-libs/x264/x264-0.0.20240513-r1.ebuild2
-rw-r--r--media-libs/zint/zint-2.16.0.ebuild2
-rw-r--r--media-plugins/live/live-2026.07.23.ebuild2
-rw-r--r--media-sound/alsa-utils/alsa-utils-1.2.16.ebuild2
-rw-r--r--media-sound/kid3/Manifest1
-rw-r--r--media-sound/kid3/kid3-3.10.0.ebuild95
-rw-r--r--media-sound/mac/mac-13.26.ebuild2
-rw-r--r--media-sound/pavucontrol/Manifest1
-rw-r--r--media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch125
-rw-r--r--media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch13
-rw-r--r--media-sound/pavucontrol/pavucontrol-5.0-r4.ebuild55
-rw-r--r--media-sound/pavucontrol/pavucontrol-6.1.ebuild41
-rw-r--r--media-video/mpv/mpv-9999.ebuild9
-rw-r--r--media-video/recordmydesktop/recordmydesktop-0.4.0-r2.ebuild2
-rw-r--r--metadata/stabilization-groups/vim-classic.group3
-rw-r--r--net-dns/cares-tools/cares-tools-0.4.ebuild2
-rw-r--r--net-dns/dnstop/dnstop-20250530.ebuild4
-rw-r--r--net-firewall/firewalld/firewalld-2.5.2.ebuild2
-rw-r--r--net-irc/quassel/quassel-0.14.50_pre20260525.ebuild214
-rw-r--r--net-libs/libgssglue/libgssglue-0.9-r1.ebuild2
-rw-r--r--net-libs/loudmouth/loudmouth-1.5.4-r1.ebuild2
-rw-r--r--net-libs/webkit-gtk/webkit-gtk-2.52.6-r410.ebuild2
-rw-r--r--net-libs/webkit-gtk/webkit-gtk-2.52.6-r600.ebuild2
-rw-r--r--net-libs/wvstreams/wvstreams-4.6.1_p14-r3.ebuild2
-rw-r--r--net-mail/dovecot/dovecot-2.4.5-r1.ebuild2
-rw-r--r--net-misc/dropbear/dropbear-2026.94.ebuild2
-rw-r--r--net-misc/electrum/electrum-4.8.1.ebuild2
-rw-r--r--net-misc/openrsync/openrsync-0.5.0_p20260706.ebuild2
-rw-r--r--net-misc/stunnel/stunnel-5.79.ebuild2
-rw-r--r--net-misc/tuba/tuba-0.11.0.ebuild2
-rw-r--r--net-news/rssguard/rssguard-5.2.5.ebuild2
-rw-r--r--net-nntp/leafnode/leafnode-1.12.0-r1.ebuild4
-rw-r--r--net-nntp/tin/tin-2.6.5.ebuild2
-rw-r--r--net-p2p/gtk-gnutella/gtk-gnutella-1.2.3.ebuild4
-rw-r--r--net-print/cups-filters/cups-filters-2.0.1-r1.ebuild17
-rw-r--r--net-print/cups-filters/cups-filters-9999.ebuild68
-rw-r--r--net-print/libcupsfilters/libcupsfilters-2.2.1.ebuild21
-rw-r--r--net-print/libcupsfilters/libcupsfilters-9999.ebuild93
-rw-r--r--net-proxy/tsocks/tsocks-1.8_beta5-r10.ebuild2
-rw-r--r--net-vpn/networkmanager-libreswan/Manifest1
-rw-r--r--net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.31.ebuild46
-rw-r--r--net-vpn/openconnect/openconnect-9.12-r2.ebuild2
-rw-r--r--profiles/arch/base/package.use.mask2
-rw-r--r--profiles/base/package.use.mask4
-rw-r--r--profiles/package.mask/00-gentoo2
-rw-r--r--sci-libs/cantera/cantera-3.2.0-r1.ebuild2
-rw-r--r--sci-libs/cantera/cantera-3.2.0-r2.ebuild2
-rw-r--r--sci-libs/cartopy/cartopy-0.24.1-r2.ebuild4
-rw-r--r--sci-libs/cartopy/cartopy-0.25.0.ebuild2
-rw-r--r--sci-libs/indilib/indilib-2.2.4.2.ebuild2
-rw-r--r--sci-libs/libgeotiff/libgeotiff-1.7.4.ebuild4
-rw-r--r--sci-libs/nfft/files/nfft-3.5.3-openmp.patch58
-rw-r--r--sci-libs/nfft/nfft-3.5.3-r1.ebuild1
-rw-r--r--sci-libs/proj/proj-9.4.1.ebuild4
-rw-r--r--sci-mathematics/z3/z3-5.1.0.ebuild2
-rw-r--r--sci-visualization/pythonprop/pythonprop-0.30.1_p20240217-r1.ebuild2
-rw-r--r--sec-keys/openpgp-keys-ddevault/Manifest1
-rw-r--r--sec-keys/openpgp-keys-ddevault/metadata.xml14
-rw-r--r--sec-keys/openpgp-keys-ddevault/openpgp-keys-ddevault-20250219.ebuild16
-rw-r--r--sec-keys/openpgp-keys-nabijaczleweli/openpgp-keys-nabijaczleweli-20260717.ebuild2
-rw-r--r--sec-keys/openpgp-keys-paulhardy/Manifest1
-rw-r--r--sec-keys/openpgp-keys-paulhardy/metadata.xml13
-rw-r--r--sec-keys/openpgp-keys-paulhardy/openpgp-keys-paulhardy-20220319.ebuild15
-rw-r--r--sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild2
-rw-r--r--sys-apps/coreutils/coreutils-9.11-r1.ebuild2
-rw-r--r--sys-apps/epoch/epoch-1.3.0-r1.ebuild4
-rw-r--r--sys-apps/miller/miller-6.20.2.ebuild2
-rw-r--r--sys-apps/moor/moor-2.17.0.ebuild2
-rw-r--r--sys-apps/portage/portage-3.0.82.2.ebuild2
-rw-r--r--sys-apps/shadow/shadow-4.20.2.ebuild2
-rw-r--r--sys-apps/xdg-desktop-portal-gnome/Manifest2
-rw-r--r--sys-apps/xdg-desktop-portal-gnome/xdg-desktop-portal-gnome-50.0.ebuild (renamed from sys-apps/xdg-desktop-portal-gnome/xdg-desktop-portal-gnome-48.0.ebuild)6
-rw-r--r--sys-auth/pam_xdg/pam_xdg-0.8.5.ebuild2
-rw-r--r--sys-auth/pambase/pambase-20260730.ebuild2
-rw-r--r--sys-devel/gcc/Manifest1
-rw-r--r--sys-devel/gcc/gcc-15.3.1_p20260918.ebuild56
-rw-r--r--sys-fs/exfatprogs/exfatprogs-1.4.3.ebuild2
-rw-r--r--sys-libs/libblockdev/libblockdev-3.5.0.ebuild2
-rw-r--r--sys-process/minicoredumper/Manifest3
-rw-r--r--sys-process/minicoredumper/minicoredumper-2.1.0.ebuild (renamed from sys-process/minicoredumper/minicoredumper-2.0.7.ebuild)24
-rw-r--r--virtual/editor/editor-0-r8.ebuild (renamed from virtual/editor/editor-0-r7.ebuild)4
-rw-r--r--www-client/ungoogled-chromium/Manifest2
-rw-r--r--www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.36_p1.ebuild2646
-rw-r--r--www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.52_p1.ebuild4
-rw-r--r--www-servers/gunicorn/gunicorn-26.1.0.ebuild2
-rw-r--r--x11-misc/sddm/Manifest1
-rw-r--r--x11-misc/sddm/files/sddm-0.21.0_p20251101-cmake-minreqver-3.16.patch2
-rw-r--r--x11-misc/sddm/files/sddm-0.21.0_p20260819-dont-request-vt-signal-delivery.patch34
-rw-r--r--x11-misc/sddm/sddm-0.21.0_p20260819.ebuild149
-rw-r--r--x11-terms/xterm/xterm-410.ebuild2
-rw-r--r--x11-terms/zutty/zutty-0.16.ebuild2
-rw-r--r--x11-themes/adwaita-icon-theme/Manifest2
-rw-r--r--x11-themes/adwaita-icon-theme/adwaita-icon-theme-3.32.0.ebuild7
-rw-r--r--x11-themes/adwaita-icon-theme/adwaita-icon-theme-50.0.ebuild (renamed from x11-themes/adwaita-icon-theme/adwaita-icon-theme-48.1.ebuild)20
-rw-r--r--x11-themes/numix-icon-theme/numix-icon-theme-25.10.26.ebuild2
-rw-r--r--x11-wm/i3/i3-4.24.ebuild2
-rw-r--r--x11-wm/mutter/Manifest4
-rw-r--r--x11-wm/mutter/files/mutter-49.5-update-kms-resource-lists.patch43
-rw-r--r--x11-wm/mutter/files/mutter-50.3-meta-wayland-touch.patch9
-rw-r--r--x11-wm/mutter/metadata.xml2
-rw-r--r--x11-wm/mutter/mutter-48.5.ebuild269
-rw-r--r--x11-wm/mutter/mutter-48.7.ebuild271
-rw-r--r--x11-wm/mutter/mutter-50.5.ebuild (renamed from x11-wm/mutter/mutter-49.5-r1.ebuild)142
-rw-r--r--x11-wm/mutter/mutter-9999.ebuild118
-rw-r--r--xfce-extra/xfce4-dict/xfce4-dict-0.8.10.ebuild2
616 files changed, 14208 insertions, 7682 deletions
diff --git a/app-accessibility/at-spi2-core/Manifest b/app-accessibility/at-spi2-core/Manifest
index 3f3e900ffd32..282c9fdc2afa 100644
--- a/app-accessibility/at-spi2-core/Manifest
+++ b/app-accessibility/at-spi2-core/Manifest
@@ -1,4 +1,3 @@
-DIST at-spi2-core-2.58.6.tar.xz 589008 BLAKE2B 5940283d8c1c0ee819df48f66e3ad50a1e7ed2f3ad8ef5daa0dd2753da2e2f0ddfc9b75fd420309bfd1633b7fca72eeec3206671a55c3ac39bdf2ba80958e895 SHA512 4b26c4bac5ae99596fbde39f5fdce91fc3f47bc033f37be3ae354f0bb3c44ffeaeaf9b75e43c2fdc715aaa24536f44a353a4e03ccaf45c69d618d99f621a3c92
DIST at-spi2-core-2.58.8.tar.xz 589752 BLAKE2B 58038b3e16ba9e752091351d0dceab3e622ba01f4cdd7afafe5b22a7489ee8a8df9865512ed1da1b6913a2361b345b8a78e7436e6a1b65f0a6da0f2ee4fc8639 SHA512 f5f504db3b3c25718a83b0151bf831c3fb5e6d1193c12d16bc38cf9c00ff4107242ebbfcc787e6b2f340c287802e5e158ee1fafefe8e9f880086a5291c7f8339
-DIST at-spi2-core-2.60.5.tar.xz 599736 BLAKE2B 94ad495d97b3c43410a2720e341fd90b91b5b33623b2b07abe849e72af874426fd50e92e75e8aecc16f3e5ae7463fa57f3654ca6f5f9293996849a77a7c0e526 SHA512 175811b9ca918908583699ca83e8ec8ec758581da58969e7c2058b3a0ab11179c5361bec035c2a80dbfa77bd10051b1cc947c8851258fac1cb0d8547a4f75342
DIST at-spi2-core-2.60.6.tar.xz 599128 BLAKE2B f88b4ac1e84a151d925b55c45a9747ae0ad598e432e2128a03ffd6d08e68242bc3b67d1214a14f6234f51193da24ff3a6c1ec081b52a07d87a74f66bc99ef73e SHA512 ed69347a002b805358f05875edff2e2a8ac7b8a64219c820f22ecc3ea7c59f47bf6b6440045bfc9771219223c527c78c0edbdf11fe62083abd3cada96f0f4769
+DIST at-spi2-core-2.60.7.tar.xz 600576 BLAKE2B 05b0d6aba431aa7f567db7b4c80eb781803a1b6c8ee10a34f1684b695b7611e0bd02c13578bef6cd6fd97f610b46e26dcca40b1611f4e7a43e08538dcd52f436 SHA512 6ebd470b75bb932e83b310c5ad7067f39c22b0a4bb5e2849e84e39284bc342913929320bfb168026abc3695094a04ef40248faca369f62ac9bb9a4f409b73ed9
diff --git a/app-accessibility/at-spi2-core/at-spi2-core-2.58.6.ebuild b/app-accessibility/at-spi2-core/at-spi2-core-2.58.6.ebuild
deleted file mode 100644
index 4281f827feb1..000000000000
--- a/app-accessibility/at-spi2-core/at-spi2-core-2.58.6.ebuild
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org meson-multilib python-r1 systemd virtualx xdg
-
-DESCRIPTION="D-Bus accessibility specifications and registration daemon"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/at-spi2-core"
-
-LICENSE="LGPL-2.1+"
-SLOT="2"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
-IUSE="X dbus-broker gtk-doc +introspection systemd"
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
- dbus-broker? ( systemd )
- gtk-doc? ( X )
-"
-
-DEPEND="
- >=sys-apps/dbus-1.5[${MULTILIB_USEDEP}]
- >=dev-libs/glib-2.67.4:2[${MULTILIB_USEDEP}]
- >=dev-libs/libxml2-2.9.1:2=[${MULTILIB_USEDEP}]
- introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
- systemd? ( sys-apps/systemd[${MULTILIB_USEDEP}] )
- X? (
- x11-libs/libX11[${MULTILIB_USEDEP}]
- x11-libs/libXtst[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- )
-
- !<dev-libs/atk-2.46.0
-"
-RDEPEND="${DEPEND}
- dbus-broker? ( sys-apps/dbus-broker )
- ${PYTHON_DEPS}
-"
-BDEPEND="
- dev-util/glib-utils
- gtk-doc? (
- dev-python/sphinx
- dev-util/gdbus-codegen
- >=dev-util/gi-docgen-2021.1
- )
- ${PYTHON_DEPS}
- test? ( dev-python/pygobject[${PYTHON_USEDEP}] )
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
-"
-
-multilib_src_configure() {
- python_setup
-
- local emesonargs=(
- -Ddefault_bus=$(usex dbus-broker dbus-broker dbus-daemon)
- $(meson_use systemd use_systemd)
- -Dgtk2_atk_adaptor=true
- -Dsystemd_user_dir="$(systemd_get_userunitdir)"
- $(meson_native_use_bool gtk-doc docs)
- $(meson_native_use_feature introspection)
- $(meson_feature X x11)
- -Datk_only=false
- -Dpython="${EPYTHON}"
- )
- meson_src_configure
-}
-
-multilib_src_test() {
- # Avoid locales using commas as decimal separators and breaking some
- # tests
- LC_ALL=C.UTF-8 virtx dbus-run-session meson test -C "${BUILD_DIR}" --print-errorlogs || die
-}
-
-multilib_src_install_all() {
- einstalldocs
- python_optimize
-
- if use gtk-doc; then
- mkdir -p "${ED}"/usr/share/gtk-doc/{libatspi,atk} || die
- mv "${ED}"/usr/share/doc/libatspi "${ED}"/usr/share/gtk-doc/libatspi/html || die
- mv "${ED}"/usr/share/doc/atk "${ED}"/usr/share/gtk-doc/atk/html || die
- fi
-}
diff --git a/app-accessibility/at-spi2-core/at-spi2-core-2.60.5.ebuild b/app-accessibility/at-spi2-core/at-spi2-core-2.60.7.ebuild
index 89001c6fca0a..89001c6fca0a 100644
--- a/app-accessibility/at-spi2-core/at-spi2-core-2.60.5.ebuild
+++ b/app-accessibility/at-spi2-core/at-spi2-core-2.60.7.ebuild
diff --git a/app-admin/checksec/checksec-2.7.1-r2.ebuild b/app-admin/checksec/checksec-2.7.1-r2.ebuild
index e51e698fa83e..6c4325c72ce9 100644
--- a/app-admin/checksec/checksec-2.7.1-r2.ebuild
+++ b/app-admin/checksec/checksec-2.7.1-r2.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/slimm609/checksec/archive/${PV}.tar.gz -> ${P}.gh.ta
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc ~x86"
RDEPEND="
sys-apps/grep[pcre]
diff --git a/app-admin/conky/conky-1.24.2-r1.ebuild b/app-admin/conky/conky-1.24.2-r1.ebuild
index a75a9a64e34a..3f9dd600f389 100644
--- a/app-admin/conky/conky-1.24.2-r1.ebuild
+++ b/app-admin/conky/conky-1.24.2-r1.ebuild
@@ -119,6 +119,10 @@ REQUIRED_USE="
xinerama? ( X )
"
+PATCHES=(
+ "${FILESDIR}/${P}-x11.patch"
+)
+
CONFIG_CHECK="~IPV6"
DOCS=( README.md AUTHORS )
diff --git a/app-admin/conky/files/conky-1.24.2-x11.patch b/app-admin/conky/files/conky-1.24.2-x11.patch
new file mode 100644
index 000000000000..bf188d49f0d8
--- /dev/null
+++ b/app-admin/conky/files/conky-1.24.2-x11.patch
@@ -0,0 +1,332 @@
+From f8d988624b8a848110596e5377a1543893872b52 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tin=20=C5=A0vagelj?= <tin.svagelj@live.com>
+Date: Mon, 22 Jun 2026 07:18:18 +0200
+Subject: [PATCH] fix: add missing x11.h imports
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Also simplified some code by removing noisy BUILD_XDBE preprocessor guards
+that have identical branches.
+
+Fixes #2408.
+
+Signed-off-by: Tin Å vagelj <tin.svagelj@live.com>
+---
+ src/conky.cc | 9 +------
+ src/lua/x11-settings.h | 6 +----
+ src/output/display-x11.cc | 50 ++++++++++-----------------------------
+ src/output/display-x11.hh | 9 ++-----
+ src/output/x11.cc | 18 +++++---------
+ src/output/x11.h | 38 ++++++++++++++++-------------
+ 6 files changed, 44 insertions(+), 86 deletions(-)
+
+Index: conky-1.24.2/src/conky.cc
+===================================================================
+--- conky-1.24.2.orig/src/conky.cc
++++ conky-1.24.2/src/conky.cc
+@@ -2404,17 +2404,10 @@ void initialisation(int argc, char **arg
+ own_window.lua_set(*state);
+ break;
+ #endif
+-#ifdef BUILD_XDBE
+ case 'b':
+ state->pushboolean(true);
+- use_xdbe.lua_set(*state);
++ use_double_buffer.lua_set(*state);
+ break;
+-#else
+- case 'b':
+- state->pushboolean(true);
+- use_xpmdb.lua_set(*state);
+- break;
+-#endif
+ #endif /* BUILD_X11 */
+ case 't':
+ free_and_zero(global_text);
+Index: conky-1.24.2/src/lua/x11-settings.h
+===================================================================
+--- conky-1.24.2.orig/src/lua/x11-settings.h
++++ conky-1.24.2/src/lua/x11-settings.h
+@@ -51,10 +51,6 @@ extern priv::out_to_x_setting out_to_x;
+ extern conky::simple_config_setting<bool> use_xft;
+ #endif
+
+-#ifdef BUILD_XDBE
+-extern priv::use_xdbe_setting use_xdbe;
+-#else
+-extern priv::use_xpmdb_setting use_xpmdb;
+-#endif
++extern conky::simple_config_setting<bool> use_double_buffer;
+
+ #endif /* CONKY_X11_SETTINGS_H */
+Index: conky-1.24.2/src/output/display-x11.cc
+===================================================================
+--- conky-1.24.2.orig/src/output/display-x11.cc
++++ conky-1.24.2/src/output/display-x11.cc
+@@ -235,9 +235,7 @@ bool display_output_x11::detect() {
+
+ bool display_output_x11::initialize() {
+ X11_create_window();
+-#ifdef BUILD_LUA_CAIRO_XLIB
+ update_surface();
+-#endif /* BUILD_LUA_CAIRO_XLIB */
+ return true;
+ }
+
+@@ -300,9 +298,9 @@ bool display_output_x11::main_loop_wait(
+ set_transparent_background(&window);
+ #ifdef BUILD_XDBE
+ /* swap buffers */
+- xdbe_swap_buffers();
++ swap_x11_buffers();
+ #else
+- if (use_xpmdb.get(*state)) {
++ if (use_double_buffer.get(*state)) {
+ XFreePixmap(display, window.back_buffer);
+ unsigned int depth = window.color_depth != 0
+ ? window.color_depth
+@@ -331,9 +329,7 @@ bool display_output_x11::main_loop_wait(
+ #endif
+
+ changed++;
+-#ifdef BUILD_LUA_CAIRO_XLIB
+ update_surface();
+-#endif /* BUILD_LUA_CAIRO_XLIB */
+ }
+
+ /* move window if it isn't in right position */
+@@ -358,11 +354,7 @@ bool display_output_x11::main_loop_wait(
+
+ clear_text(1);
+
+-#if defined(BUILD_XDBE)
+- if (use_xdbe.get(*state)) {
+-#else
+- if (use_xpmdb.get(*state)) {
+-#endif
++ if (use_double_buffer.get(*state)) {
+ XRectangle rect = conky::rect<int>(text_start - border_total,
+ text_size + border_total * 2)
+ .to_xrectangle();
+@@ -387,11 +379,7 @@ bool display_output_x11::main_loop_wait(
+ * all, then no swap happens and we can safely do nothing. */
+
+ if (XEmptyRegion(window.repaint_region) == 0) {
+-#if defined(BUILD_XDBE)
+- if (use_xdbe.get(*state)) {
+-#else
+- if (use_xpmdb.get(*state)) {
+-#endif
++ if (use_double_buffer.get(*state)) {
+ XRectangle rect = conky::rect<int>(text_start - border_total,
+ text_size + border_total * 2)
+ .to_xrectangle();
+@@ -984,23 +972,16 @@ float display_output_x11::get_dpi_scale(
+ }
+
+ void display_output_x11::end_draw_stuff() {
+-#if defined(BUILD_XDBE)
+- xdbe_swap_buffers();
+-#else
+- xpmdb_swap_buffers();
+-#endif
++ swap_x11_buffers();
+ }
+
+ void display_output_x11::clear_text(int exposures) {
+-#ifdef BUILD_XDBE
+- if (use_xdbe.get(*state)) {
++ if (use_double_buffer.get(*state)) {
+ /* The swap action is XdbeBackground, which clears */
+ return;
+ }
+-#else
+- if (use_xpmdb.get(*state)) {
+- return;
+- } else
++#ifndef BUILD_XDBE
++ else
+ #endif
+ if ((display != nullptr) &&
+ (window.window != 0u)) { // make sure these are !null
+@@ -1165,14 +1146,14 @@ void display_output_x11::load_fonts(bool
+ }
+ }
+
+-#ifdef BUILD_LUA_CAIRO_XLIB
+ void display_output_x11::update_surface() {
++ #ifdef BUILD_LUA_CAIRO_XLIB
+ current_surface.reset(cairo_xlib_surface_create(
+ display, window.drawable, window.visual,
+ window.geometry.width(), window.geometry.height()),
+ cairo_surface_destroy);
++ #endif /* BUILD_LUA_CAIRO_XLIB */
+ }
+-#endif /* BUILD_LUA_CAIRO_XLIB */
+
+ std::weak_ptr<conky::draw_surface> display_output_x11::drawing_surface() {
+ #ifdef BUILD_LUA_CAIRO_XLIB
+Index: conky-1.24.2/src/output/display-x11.hh
+===================================================================
+--- conky-1.24.2.orig/src/output/display-x11.hh
++++ conky-1.24.2/src/output/display-x11.hh
+@@ -25,12 +25,8 @@
+
+ #include "config.h"
+
+-#include <limits>
+ #include <memory>
+-#include <string>
+-#include <type_traits>
+
+-#include "../lua/luamm.hh"
+ #include "display-output.hh"
+
+ namespace conky {
+@@ -85,10 +81,9 @@ class display_output_x11 : public displa
+
+ virtual std::weak_ptr<conky::draw_surface> drawing_surface();
+
+-#ifdef BUILD_LUA_CAIRO_XLIB
+- /// (Re)create the cairo xlib surface for the current drawable/geometry.
++ /// (Re)create the cairo xlib surface for the current drawable/geometry if
++ /// `BUILD_LUA_CAIRO_XLIB` is enabled, no-op otherwise.
+ void update_surface();
+-#endif /* BUILD_LUA_CAIRO_XLIB */
+
+ // X11-specific
+ private:
+Index: conky-1.24.2/src/output/x11.cc
+===================================================================
+--- conky-1.24.2.orig/src/output/x11.cc
++++ conky-1.24.2/src/output/x11.cc
+@@ -109,6 +109,8 @@ xcb_errors_context_t *xcb_errors_ctx;
+ /* Window stuff */
+ struct conky_x11_window window;
+
++conky::simple_config_setting<bool> use_double_buffer("double_buffer", false, false);
++
+ /* local prototypes */
+ static Window find_desktop_window(Window *p_root, Window *p_desktop);
+ static Window find_desktop_window_impl(Window win, int w, int h);
+@@ -1396,19 +1398,17 @@ void set_struts() {
+ }
+ #endif /* OWN_WINDOW */
+
++void swap_x11_buffers() {
+ #ifdef BUILD_XDBE
+-void xdbe_swap_buffers() {
+- if (use_xdbe.get(*state)) {
++ if (use_double_buffer.get(*state)) {
+ XdbeSwapInfo swap;
+
+ swap.swap_window = window.window;
+ swap.swap_action = XdbeBackground;
+ XdbeSwapBuffers(display, &swap, 1);
+ }
+-}
+-#else
+-void xpmdb_swap_buffers(void) {
+- if (use_xpmdb.get(*state)) {
++#else /* BUILD_XDBE */
++ if (use_double_buffer.get(*state)) {
+ XCopyArea(display, window.back_buffer, window.window, window.gc, 0, 0,
+ window.geometry.width(), window.geometry.height(), 0, 0);
+ Colour c = get_background_colour_preference(*state);
+@@ -1421,8 +1421,8 @@ void xpmdb_swap_buffers(void) {
+ window.geometry.width(), window.geometry.height());
+ XFlush(display);
+ }
+-}
+ #endif /* BUILD_XDBE */
++}
+
+ void print_kdb_led(const int keybit, char *p, unsigned int p_max_size) {
+ XKeyboardState x;
+Index: conky-1.24.2/src/output/x11.h
+===================================================================
+--- conky-1.24.2.orig/src/output/x11.h
++++ conky-1.24.2/src/output/x11.h
+@@ -31,7 +31,10 @@
+ #error x11.h included when BUILD_X11 is disabled
+ #endif
+
++extern "C" {
++#include <X11/X.h>
+ #include <X11/Xatom.h>
++#include <X11/Xutil.h>
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wvariadic-macros"
+ #include <X11/Xlib.h>
+@@ -46,16 +49,16 @@
+ #ifdef BUILD_XDAMAGE
+ #include <X11/extensions/Xdamage.h>
+ #endif
++#ifdef BUILD_XFIXES
++#include <X11/extensions/Xfixes.h>
++#endif
++}
+
+ #include <cstdint>
+ #include <functional>
+ #include <vector>
+
+-// TODO: remove lua requirement from x11_init_window
+-#include "../lua/llua.h"
+-
+ #include "../geometry.h"
+-#include "gui.h"
+ #include "x11-event.h"
+
+ #define ATOM(a) XInternAtom(display, #a, False)
+@@ -67,9 +70,19 @@ extern int screen;
+
+ constexpr int argb8888_color_depth = 32;
+
++#ifndef BUILD_XFIXES
++using XserverRegion = XID;
++#endif
+ #ifndef BUILD_XDAMAGE
+ using Damage = XID;
+-using XserverRegion = XID;
++#endif
++#ifndef BUILD_XFT
++using XftDraw = void;
++#endif
++#ifdef BUILD_XDBE
++using back_buffer_t = XdbeBackBuffer;
++#else
++using back_buffer_t = Pixmap;
+ #endif
+
+ struct conky_x11_window {
+@@ -120,14 +133,9 @@ struct conky_x11_window {
+ /// is unioned into `damage_region`.
+ XserverRegion damage_scratch = 0;
+
+-#ifdef BUILD_XDBE
+- XdbeBackBuffer back_buffer;
+-#else /*BUILD_XDBE*/
+- Pixmap back_buffer;
+-#endif /*BUILD_XDBE*/
+-#ifdef BUILD_XFT
++ back_buffer_t back_buffer;
+ XftDraw *xftdraw;
+-#endif /*BUILD_XFT*/
++
+ /// XInput2 extension opcode; 0 if unavailable.
+ std::int32_t xi_opcode;
+
+@@ -225,10 +233,6 @@ std::vector<Window> query_x11_windows_at
+ [](XWindowAttributes &a) { return true; },
+ bool eager = false);
+
+-#ifdef BUILD_XDBE
+-void xdbe_swap_buffers(void);
+-#else
+-void xpmdb_swap_buffers(void);
+-#endif /* BUILD_XDBE */
++void swap_x11_buffers();
+
+ #endif /* CONKY_X11_H */
diff --git a/app-admin/logrotate/logrotate-3.22.0-r1.ebuild b/app-admin/logrotate/logrotate-3.22.0-r1.ebuild
index d1d07a34b9aa..c4d4531f70b0 100644
--- a/app-admin/logrotate/logrotate-3.22.0-r1.ebuild
+++ b/app-admin/logrotate/logrotate-3.22.0-r1.ebuild
@@ -18,7 +18,7 @@ else
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz"
SRC_URI+=" verify-sig? ( https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz.asc )"
- KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+ KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-cgzones )"
fi
diff --git a/app-admin/metalog/metalog-20260811.ebuild b/app-admin/metalog/metalog-20260811.ebuild
index 61a6a9d8e00a..e01285d37630 100644
--- a/app-admin/metalog/metalog-20260811.ebuild
+++ b/app-admin/metalog/metalog-20260811.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/hvisage/metalog/archive/refs/tags/${PV}.tar.gz -> ${
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="unicode zlib"
RDEPEND="
diff --git a/app-admin/rsyslog/rsyslog-8.2606.0.ebuild b/app-admin/rsyslog/rsyslog-8.2606.0.ebuild
index 13b9480e026d..b23c5070d269 100644
--- a/app-admin/rsyslog/rsyslog-8.2606.0.ebuild
+++ b/app-admin/rsyslog/rsyslog-8.2606.0.ebuild
@@ -19,7 +19,7 @@ else
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz
-> ${P}.gh.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-3 LGPL-3 Apache-2.0"
diff --git a/app-admin/salt/salt-3007.1-r2.ebuild b/app-admin/salt/salt-3007.1-r2.ebuild
index 93ecf04f4018..f0a03fb111fe 100644
--- a/app-admin/salt/salt-3007.1-r2.ebuild
+++ b/app-admin/salt/salt-3007.1-r2.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == 9999* ]]; then
EGIT_BRANCH="develop"
else
inherit pypi
- KEYWORDS="amd64 ~riscv ~x86"
+ KEYWORDS="amd64 ~riscv"
fi
LICENSE="Apache-2.0"
diff --git a/app-admin/salt/salt-3007.12.ebuild b/app-admin/salt/salt-3007.12.ebuild
index e11049bb280b..70f2905c426a 100644
--- a/app-admin/salt/salt-3007.12.ebuild
+++ b/app-admin/salt/salt-3007.12.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == 9999* ]]; then
EGIT_BRANCH="develop"
else
inherit pypi
- KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm64 ~riscv"
fi
LICENSE="Apache-2.0"
diff --git a/app-arch/arj/arj-3.10.22_p29.ebuild b/app-arch/arj/arj-3.10.22_p29.ebuild
index f3e98b190a5f..b92eb94bac14 100644
--- a/app-arch/arj/arj-3.10.22_p29.ebuild
+++ b/app-arch/arj/arj-3.10.22_p29.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ppc64 ~sparc ~x86"
DOCS=( doc/compile.txt doc/debug.txt doc/glossary.txt doc/rev_hist.txt doc/xlation.txt )
diff --git a/app-arch/brotli/brotli-1.2.0-r1.ebuild b/app-arch/brotli/brotli-1.2.0-r1.ebuild
index 7a363cb79d4f..f7d1792a6aff 100644
--- a/app-arch/brotli/brotli-1.2.0-r1.ebuild
+++ b/app-arch/brotli/brotli-1.2.0-r1.ebuild
@@ -14,7 +14,7 @@ if [[ ${PV} == *9999* ]] ; then
EGIT_REPO_URI="https://github.com/google/${PN}.git"
inherit git-r3
else
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
SRC_URI="
https://github.com/google/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz
diff --git a/app-arch/dpkg/dpkg-1.22.21.ebuild b/app-arch/dpkg/dpkg-1.22.21.ebuild
index 809ae49d13c1..223a0a9f8e7b 100644
--- a/app-arch/dpkg/dpkg-1.22.21.ebuild
+++ b/app-arch/dpkg/dpkg-1.22.21.ebuild
@@ -11,7 +11,7 @@ SRC_URI="mirror://debian/pool/main/d/${PN}/${P/-/_}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="+bzip2 +lzma nls selinux test +update-alternatives +zlib +zstd"
RESTRICT="!test? ( test )"
diff --git a/app-arch/makeself/makeself-2.7.1.ebuild b/app-arch/makeself/makeself-2.7.1.ebuild
index db6bae7c6a67..59cf8abbf491 100644
--- a/app-arch/makeself/makeself-2.7.1.ebuild
+++ b/app-arch/makeself/makeself-2.7.1.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/${PN}-release-${PV}"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~hppa ~ppc ~x86"
+KEYWORDS="amd64 ~hppa ppc x86"
# NB: The test framework requires bashunit (which isn't a big deal), but the
# tests themselves are not of great quality. You should avoid running them
diff --git a/app-backup/borgmatic/Manifest b/app-backup/borgmatic/Manifest
index f2c47467ed4e..9b727fa6d323 100644
--- a/app-backup/borgmatic/Manifest
+++ b/app-backup/borgmatic/Manifest
@@ -1,4 +1,4 @@
DIST borgmatic-2.0.13.gh.tar.gz 883059 BLAKE2B e2a811b92c7ec651ea79d69e092e39a4d145dd624c9c5e59ba31c19ec38aa087fb640152e174149d3c8b41b0724f008c21be8d6e557484b7598c7e4fbde343f9 SHA512 d0be944f19a5ceced51cb3ab52391ee80317ab16359d36ba480cca065941f8c007466951347290b3adce35dfbee082efafb6ea92473c2e6400eca7daf4beb47d
DIST borgmatic-2.1.5.gh.tar.gz 911694 BLAKE2B 275bf92f8ae3d040e0a7ce4698cafa6e5dcfe009421fb72a5612100184b76bffc2129efe3dc2712664ed2467cb28807580e53887fa8991e5edb2982176366e06 SHA512 10b8d411f6e363a4a77585f5b1911b15083f3a07b6546967fe18388b5cc433754e8d6200307bb0a55722f67749c416ead179b7c64db671407b5960cbf2082aef
-DIST borgmatic-2.1.6.gh.tar.gz 965467 BLAKE2B 8d4f3d035a6a77cd8481b0e76ee7578a67c1f5421bddc5e4803823db818f8c361ab1477461202cefb4fba68aed85b9461ad1cbcb830b0c74a7e4b1500c30aeb9 SHA512 60991258da1838f271a92f29b6d9733804f6834d485f2e56697bc52c838cd27778d6572952d9722b4970635e82f02d94d335ba864553335e1d307a94195d0c0e
DIST borgmatic-2.1.7.gh.tar.gz 982283 BLAKE2B 8097aabdd9d448515504d75abaac784d5febd18375549894be12028d634d37d9395d18c352ed097000d5b876b3f5cfd1e43105c78575f2a082eac2b9c0f31f79 SHA512 03557a871805d82d08cb01590e8c9b5754bf213dd8fd30f954d4c1383bd5b4d618f38355d5d2222684c62f7a10c1bf66f71bdb68a432aa20c2330a2ce4785d79
+DIST borgmatic-2.1.8.gh.tar.gz 1052367 BLAKE2B 210a06918c41329104ce68f282f128b431ddedcb83b6da6bba40047366eafbf52da45de34f2fc9674b3ca3f075ae59fd56be7482430597b88e3913431a35bfeb SHA512 5c43bf9f0bfc4d23b1d5221feb016b02d24cc5e147008639c2ed9e6a9451a5c1fd5ef23c69ba5b8fcba50953a23c71e259a6ccd8f247361a32d0fba0dea9cbe9
diff --git a/app-backup/borgmatic/borgmatic-2.1.6.ebuild b/app-backup/borgmatic/borgmatic-2.1.8.ebuild
index 591b89a2d76d..591b89a2d76d 100644
--- a/app-backup/borgmatic/borgmatic-2.1.6.ebuild
+++ b/app-backup/borgmatic/borgmatic-2.1.8.ebuild
diff --git a/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild b/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild
index f6c1ce24a282..7410bc43b3ec 100644
--- a/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild
+++ b/app-containers/containers-shortnames/containers-shortnames-2025.03.19_p20260615.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == 9999* ]]; then
else
SRC_URI="https://github.com/containers/shortnames/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN#containers-}-${GIT_COMMIT}"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390"
fi
LICENSE="Apache-2.0"
diff --git a/app-crypt/acme/acme-3.2.0-r100.ebuild b/app-crypt/acme/acme-3.2.0-r100.ebuild
index d1bd1b9c28af..7a099ee5e718 100644
--- a/app-crypt/acme/acme-3.2.0-r100.ebuild
+++ b/app-crypt/acme/acme-3.2.0-r100.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
@@ -13,7 +13,7 @@ HOMEPAGE="
LICENSE="metapackage"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv"
# Meta package for transition
# No need to upgrade thanks to ">="
diff --git a/app-crypt/certbot-apache/certbot-apache-3.2.0-r100.ebuild b/app-crypt/certbot-apache/certbot-apache-3.2.0-r100.ebuild
index a9b9c7bcdc63..9b813f71fe77 100644
--- a/app-crypt/certbot-apache/certbot-apache-3.2.0-r100.ebuild
+++ b/app-crypt/certbot-apache/certbot-apache-3.2.0-r100.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
@@ -13,7 +13,7 @@ HOMEPAGE="
LICENSE="metapackage"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv"
# Meta package for transition
# No need to upgrade thanks to ">="
diff --git a/app-crypt/certbot-dns-dnsimple/certbot-dns-dnsimple-3.2.0-r100.ebuild b/app-crypt/certbot-dns-dnsimple/certbot-dns-dnsimple-3.2.0-r100.ebuild
index b8413107bf2a..1247b24ba967 100644
--- a/app-crypt/certbot-dns-dnsimple/certbot-dns-dnsimple-3.2.0-r100.ebuild
+++ b/app-crypt/certbot-dns-dnsimple/certbot-dns-dnsimple-3.2.0-r100.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
@@ -14,7 +14,7 @@ HOMEPAGE="
LICENSE="metapackage"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv"
# Meta package for transition
# No need to upgrade thanks to ">="
diff --git a/app-crypt/certbot-dns-nsone/certbot-dns-nsone-3.2.0-r100.ebuild b/app-crypt/certbot-dns-nsone/certbot-dns-nsone-3.2.0-r100.ebuild
index 42bd3559d171..4a3a88b6cddd 100644
--- a/app-crypt/certbot-dns-nsone/certbot-dns-nsone-3.2.0-r100.ebuild
+++ b/app-crypt/certbot-dns-nsone/certbot-dns-nsone-3.2.0-r100.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
@@ -13,7 +13,7 @@ HOMEPAGE="
LICENSE="metapackage"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv"
# Meta package for transition
# No need to upgrade thanks to ">="
diff --git a/app-crypt/certbot-nginx/certbot-nginx-3.2.0-r100.ebuild b/app-crypt/certbot-nginx/certbot-nginx-3.2.0-r100.ebuild
index 9c24c7dab01a..5a7b67cf7e8c 100644
--- a/app-crypt/certbot-nginx/certbot-nginx-3.2.0-r100.ebuild
+++ b/app-crypt/certbot-nginx/certbot-nginx-3.2.0-r100.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
@@ -13,7 +13,7 @@ HOMEPAGE="
LICENSE="metapackage"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv"
# Meta package for transition
# No need to upgrade thanks to ">="
diff --git a/app-crypt/certbot/certbot-5.5.0-r2.ebuild b/app-crypt/certbot/certbot-5.5.0-r2.ebuild
index 6d96fbbf555e..6e628eaa8cb9 100644
--- a/app-crypt/certbot/certbot-5.5.0-r2.ebuild
+++ b/app-crypt/certbot/certbot-5.5.0-r2.ebuild
@@ -19,7 +19,7 @@ else
https://github.com/certbot/certbot/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
- KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
+ KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv"
fi
DESCRIPTION="Let's Encrypt client to automate deployment of X.509 certificates"
diff --git a/app-crypt/certbot/certbot-5.6.0-r2.ebuild b/app-crypt/certbot/certbot-5.6.0-r2.ebuild
index 25a77f0f5f6b..6a76342b8d1c 100644
--- a/app-crypt/certbot/certbot-5.6.0-r2.ebuild
+++ b/app-crypt/certbot/certbot-5.6.0-r2.ebuild
@@ -19,7 +19,7 @@ else
https://github.com/certbot/certbot/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
fi
DESCRIPTION="Let's Encrypt client to automate deployment of X.509 certificates"
diff --git a/app-crypt/certbot/certbot-5.7.0-r1.ebuild b/app-crypt/certbot/certbot-5.7.0-r1.ebuild
index 25a77f0f5f6b..6a76342b8d1c 100644
--- a/app-crypt/certbot/certbot-5.7.0-r1.ebuild
+++ b/app-crypt/certbot/certbot-5.7.0-r1.ebuild
@@ -19,7 +19,7 @@ else
https://github.com/certbot/certbot/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
fi
DESCRIPTION="Let's Encrypt client to automate deployment of X.509 certificates"
diff --git a/app-crypt/certbot/certbot-5.8.0.ebuild b/app-crypt/certbot/certbot-5.8.0.ebuild
index 4923ff241132..30a76584daec 100644
--- a/app-crypt/certbot/certbot-5.8.0.ebuild
+++ b/app-crypt/certbot/certbot-5.8.0.ebuild
@@ -19,7 +19,7 @@ else
https://github.com/certbot/certbot/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
fi
DESCRIPTION="Let's Encrypt client to automate deployment of X.509 certificates"
diff --git a/app-crypt/certbot/certbot-9999.ebuild b/app-crypt/certbot/certbot-9999.ebuild
index 4923ff241132..30a76584daec 100644
--- a/app-crypt/certbot/certbot-9999.ebuild
+++ b/app-crypt/certbot/certbot-9999.ebuild
@@ -19,7 +19,7 @@ else
https://github.com/certbot/certbot/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
fi
DESCRIPTION="Let's Encrypt client to automate deployment of X.509 certificates"
diff --git a/app-crypt/gcr/Manifest b/app-crypt/gcr/Manifest
index acb58e350ae0..08f29f410764 100644
--- a/app-crypt/gcr/Manifest
+++ b/app-crypt/gcr/Manifest
@@ -1,2 +1,3 @@
DIST gcr-3.41.2.tar.xz 1034532 BLAKE2B ac2c1cd7c1ff458b554a4c0b667fa9a6a9629f14ad173ec84e3bb76b17fefe007a47ed861fc820cb1a4f48b81b3dfe9860d521fe677c7dbcce004766b43afe9a SHA512 056c6c6a3910dae6997cef34fc95d22510ddea37be0ccc329996575a95e20582fa428bd491389aa77f8b6ffbd8674a2b3ba444cb83bdf3a2be5fd7aed276606d
DIST gcr-4.4.0.1.tar.xz 745244 BLAKE2B 8a7e18fd0cac203c0f04e694f38ec872ac81a064290147d02c3a52c0091aab1bee0af85b38d38286d283a277ac7309a59c020545e4839e32b05708d220cb4425 SHA512 f84724e0e9850c6150ec93430a0c3a714f4b4376df2fd3fd68340463acf04d89de236510b40bab4f3dc8fd82a2e8dc98b53c2684df07fdb9a6a3528ed35652d1
+DIST gcr-4.4.1.tar.xz 750804 BLAKE2B 6bec00545c48e661a1391cb06491df7fea60efc67e1cb88804260a0d4badd92f5a1d5962c8b58305506ceb262b6dcc928d9f959daf4ec5f482f34a4df44600e3 SHA512 5bc9ee17b7abdf6b2150263b9c9904182cbf4b346589fd645d646d3ae58cb8f9b4e22428dd5a402da926f5706d91ef092663e809e150b8d5b82f0ef84196b4b7
diff --git a/app-crypt/gcr/gcr-4.4.1.ebuild b/app-crypt/gcr/gcr-4.4.1.ebuild
new file mode 100644
index 000000000000..aedea27fdb20
--- /dev/null
+++ b/app-crypt/gcr/gcr-4.4.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic gnome.org gnome2-utils meson vala xdg
+
+DESCRIPTION="Libraries for cryptographic UIs and accessing PKCS#11 modules"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/gcr"
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="4/gcr-4.4-gck-2.2" # subslot = soname and soversion of libgcr and libgck
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+IUSE="gnutls gtk gtk-doc +introspection systemd test +vala"
+REQUIRED_USE="
+ gtk-doc? ( introspection )
+ vala? ( introspection )
+"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ >=dev-libs/glib-2.74:2
+ !gnutls? ( >=dev-libs/libgcrypt-1.2.2:0= )
+ gnutls? ( >=net-libs/gnutls-3.8.5:0 )
+ >=app-crypt/p11-kit-0.19.0
+ >=app-crypt/libsecret-0.20
+ systemd? ( sys-apps/systemd:= )
+ gtk? ( gui-libs/gtk:4[introspection?] )
+ >=sys-apps/dbus-1
+ introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
+"
+RDEPEND="${DEPEND}"
+PDEPEND="app-alternatives/gpg"
+BDEPEND="
+ gtk? ( dev-libs/libxml2:2 )
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/glib-utils
+ gtk-doc? ( dev-util/gi-docgen )
+ >=sys-devel/gettext-0.19.8
+ test? ( app-alternatives/gpg )
+ virtual/pkgconfig
+ vala? ( $(vala_depend) )
+"
+
+src_prepare() {
+ default
+ use vala && vala_setup
+ xdg_environment_reset
+}
+
+src_configure() {
+ filter-lto # https://gitlab.gnome.org/GNOME/gcr/-/issues/43
+ local emesonargs=(
+ $(meson_use introspection)
+ $(meson_use gtk gtk4)
+ $(meson_use gtk-doc gtk_doc)
+ -Dgpg_path="${EPREFIX}"/usr/bin/gpg
+ -Dssh_agent=true
+ $(meson_feature systemd)
+ $(meson_use vala vapi)
+ )
+ if use gnutls; then
+ emesonargs+=( -Dcrypto=gnutls )
+ else
+ emesonargs+=( -Dcrypto=libgcrypt )
+ fi
+ meson_src_configure
+}
+
+src_test() {
+ dbus-run-session meson test -C "${BUILD_DIR}" --print-errorlogs || die 'tests failed'
+}
+
+src_install() {
+ meson_src_install
+
+ if use gtk-doc; then
+ mkdir -p "${ED}"/usr/share/gtk-doc/html/ || die
+ mv "${ED}"/usr/share/doc/{gck-2,gcr-4} "${ED}"/usr/share/gtk-doc/html/ || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/app-crypt/jitterentropy/jitterentropy-3.6.3.ebuild b/app-crypt/jitterentropy/jitterentropy-3.6.3.ebuild
index 1fce9535c7fc..38d3b8e7a7b1 100644
--- a/app-crypt/jitterentropy/jitterentropy-3.6.3.ebuild
+++ b/app-crypt/jitterentropy/jitterentropy-3.6.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
@@ -18,7 +18,7 @@ S="${WORKDIR}/${PN}-library-${PV}"
# Do not package these two components!
LICENSE="BSD"
SLOT="0/3"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="static-libs"
src_prepare() {
diff --git a/app-crypt/libsecret/files/libsecret-0.21.8.2-musl-fcntl.patch b/app-crypt/libsecret/files/libsecret-0.21.8.2-musl-fcntl.patch
new file mode 100644
index 000000000000..b29a824d1819
--- /dev/null
+++ b/app-crypt/libsecret/files/libsecret-0.21.8.2-musl-fcntl.patch
@@ -0,0 +1,30 @@
+From a5cd57f103038c06b64d5f6ebfd0e627bb40af4e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Schwarz?= <aschwarz@usp.br>
+Date: Tue, 15 Sep 2026 00:11:56 +0000
+Subject: [PATCH] file-collection: Make sure we include <fcntl.h>
+
+Without it, libsecret fails to compile with musl/libc++. Specifically,
+Clang compiler complains that the `open()` and the constants `O_CREAT`
+and `O_RDRW` are not defined.
+
+Fixes: https://gitlab.gnome.org/GNOME/libsecret/-/work_items/117
+---
+ libsecret/secret-file-collection.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/libsecret/secret-file-collection.c b/libsecret/secret-file-collection.c
+index d528023..59667a4 100644
+--- a/libsecret/secret-file-collection.c
++++ b/libsecret/secret-file-collection.c
+@@ -24,6 +24,8 @@
+ #include <sys/file.h>
+ #include <errno.h>
+
++#include <fcntl.h>
++
+ EGG_SECURE_DECLARE (secret_file_collection);
+
+ #ifdef WITH_GCRYPT
+--
+GitLab
+
diff --git a/app-crypt/libsecret/libsecret-0.21.8.2-r1.ebuild b/app-crypt/libsecret/libsecret-0.21.8.2-r1.ebuild
index 5195c9c04326..e895de60691f 100644
--- a/app-crypt/libsecret/libsecret-0.21.8.2-r1.ebuild
+++ b/app-crypt/libsecret/libsecret-0.21.8.2-r1.ebuild
@@ -5,7 +5,7 @@ EAPI=8
PYTHON_COMPAT=( python3_{13..14} )
-inherit bash-completion-r1 gnome2 meson-multilib python-any-r1 vala virtualx
+inherit gnome2 meson-multilib python-any-r1 shell-completion vala virtualx
DESCRIPTION="GObject library for accessing the freedesktop.org Secret Service API"
HOMEPAGE="https://gnome.pages.gitlab.gnome.org/libsecret"
@@ -19,7 +19,7 @@ IUSE="+crypt +gcrypt gnutls gtk-doc +introspection pam test test-rust tpm +vala"
RESTRICT="!test? ( test )"
REQUIRED_USE="
vala? ( introspection )
- gtk-doc? ( crypt )
+ gtk-doc? ( crypt introspection )
crypt? ( || ( gcrypt gnutls ) )
"
@@ -62,6 +62,8 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-0.21.7-optional-vala-tests.patch
+ "${FILESDIR}"/${P}-musl-fcntl.patch
+
# Collides with gnome-base/gnome-keyring and no other distros
# seem to install it because of that, so just leave it uninstalled
# for now: https://gitlab.gnome.org/GNOME/libsecret/-/work_items/90
@@ -173,3 +175,10 @@ multilib_src_test() {
virtx dbus-run-session meson test -C "${BUILD_DIR}" --print-errorlogs
fi
}
+
+multilib_src_install_all() {
+ if use gtk-doc; then
+ mkdir -p "${ED}"/usr/share/gtk-doc/html/ || die
+ mv "${ED}"/usr/share/doc/libsecret-1 "${ED}"/usr/share/gtk-doc/html/ || die
+ fi
+}
diff --git a/app-crypt/veracrypt/veracrypt-1.26.20.ebuild b/app-crypt/veracrypt/veracrypt-1.26.20.ebuild
index c82ad1e2093d..01e6a2d16e9e 100644
--- a/app-crypt/veracrypt/veracrypt-1.26.20.ebuild
+++ b/app-crypt/veracrypt/veracrypt-1.26.20.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
@@ -18,7 +18,7 @@ S="${WORKDIR}/VeraCrypt-VeraCrypt_${PV}/src"
LICENSE="Apache-2.0 BSD RSA truecrypt-3.0"
SLOT="0"
KEYWORDS="amd64"
-IUSE="+asm cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_ssse3 doc X"
+IUSE="+asm cpu_flags_x86_aes cpu_flags_x86_sse2 cpu_flags_x86_sse4_1 cpu_flags_x86_ssse3 doc X"
RESTRICT="bindist mirror"
RDEPEND="
@@ -53,6 +53,7 @@ src_compile() {
WX_CONFIG="${WX_CONFIG}"
$(usex X "" "NOGUI=1")
$(usex asm "" "NOASM=1")
+ $(usex cpu_flags_x86_aes "" "NOAESNI=1")
$(usex cpu_flags_x86_sse2 "" "NOSSE2=1")
$(usex cpu_flags_x86_sse4_1 "SSE41=1" "")
$(usex cpu_flags_x86_ssse3 "SSSE3=1" "")
diff --git a/app-editors/bluefish/bluefish-2.4.2.ebuild b/app-editors/bluefish/bluefish-2.4.2.ebuild
index 9bc40c9fce8a..e2f6cb27f6c9 100644
--- a/app-editors/bluefish/bluefish-2.4.2.ebuild
+++ b/app-editors/bluefish/bluefish-2.4.2.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://www.bennewitz.com/bluefish/stable/source/${P}.tar.bz2"
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="gucharmap nls python spell"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/app-editors/gvim-classic/Manifest b/app-editors/gvim-classic/Manifest
new file mode 100644
index 000000000000..09279f010393
--- /dev/null
+++ b/app-editors/gvim-classic/Manifest
@@ -0,0 +1,2 @@
+DIST gvim-classic-8.3.0.tar.gz 14767832 BLAKE2B 309305bf99997e4c8f6d309de118f78da9e88de2e2909d4216f8991526fc430f7b0eedf6f7d5d91fdeb3dfe80935b2196880ab9438a8b9496d675d37f9386b11 SHA512 83417abe7989728aa4ed9da26b2779578cbad676f501953eaf04d4b99ea5615e8cf1df129c18c3e745aba7ed065d37c59015bc6461a5e5d4a5ea8a9c0364d7ca
+DIST gvim-classic-8.3.0.tar.gz.sig 119 BLAKE2B f54d8a514146cca189966ecedf707590a0f76ff7ef2cd2bb6729c70dd68bb3e4644cb53ca28a7b7efa237466755d23acb2011bcd088f9c9e24d77d782a4c3a2f SHA512 947285dd9359c7399c358176c327f45b43c2bc58a3bec7a1d2ec838a7d070551f4f510ce92523110b6c590ef3ff0115683ebe7144ef4b6b9bb6dde72d8e11084
diff --git a/app-editors/gvim-classic/files/gvim-completion b/app-editors/gvim-classic/files/gvim-completion
new file mode 100644
index 000000000000..6488a82bc76e
--- /dev/null
+++ b/app-editors/gvim-classic/files/gvim-completion
@@ -0,0 +1,40 @@
+# Author: Ciaran McCreesh <ciaranm@gentoo.org>
+#
+# completion for gvim
+
+_gvim()
+{
+ local cur prev cmd args
+
+ COMPREPLY=()
+ cur=${COMP_WORDS[COMP_CWORD]}
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+ cmd=${COMP_WORDS[0]}
+
+ if [[ "${prev}" == "--servername" ]] ; then
+ local servers
+ servers=$(gvim --serverlist )
+ COMPREPLY=( $( compgen -W "${servers}" -- $cur ) )
+
+ elif [[ "${prev}" == -[uUi] ]] ; then
+ COMPREPLY=( $( compgen -W "NONE" ) \
+ $( compgen -f -X "!*vim*" -- "$cur" ) )
+
+ elif [[ "${cur}" == -* ]] ; then
+ args='-t -q -c -S --cmd -A -b -C -d -D -e -E -f --nofork \
+ -F -g -h -H -i -L -l -m -M -N -n -nb -o -R -r -s \
+ -T -u -U -V -v -w -W -x -X -y -Y -Z --echo-wid \
+ --help --literal --noplugin --version'
+ args="${args} --echo-wid --remote --remote-expr \
+ --remote-send --remote-silent --remote-wait \
+ --remote-wait-silent --serverlist \
+ --servername --socketid"
+ COMPREPLY=( $( compgen -W "${args}" -- $cur ) )
+ else
+ _filedir
+ fi
+}
+
+complete -o filenames -F _gvim gvim evim eview gview gvimdiff rgvim rgview
+
+# vim: set ft=sh sw=4 et sts=4 :
diff --git a/app-editors/gvim-classic/files/gvimrc-r1 b/app-editors/gvim-classic/files/gvimrc-r1
new file mode 100644
index 000000000000..27f398c1011c
--- /dev/null
+++ b/app-editors/gvim-classic/files/gvimrc-r1
@@ -0,0 +1,28 @@
+scriptencoding utf-8
+" ^^ Please leave the above line at the start of the file.
+
+" Default configuration file for gvim
+"
+" Written by Aron Griffis <agriffis@gentoo.org>
+"
+" This file is read AFTER normal Vim initializations, like reading your .vimrc
+" file (and the default /usr/share/vim/vimrc). So there's no reason to
+" duplicate settings from vimrc. Red Hat has had this wrong for years, to the
+" great annoyance of users.
+
+" Pre-GUI settings
+set columns=80 lines=30 " don't inherit geometry from parent term
+set mousemodel=popup " right mouse button pops up a menu in the GUI
+
+" Use a sufficiently wide window automatically when started as "gvimdiff"
+if (&foldmethod == 'diff')
+ set columns=165
+endif
+
+" For bug 33327, add a mapping which allows shift-insert to function
+" as expected in insert and command-line modes
+map! <s-insert> <c-r>*
+
+if filereadable("@GENTOO_PORTAGE_EPREFIX@/etc/vim/gvimrc.local")
+ source @GENTOO_PORTAGE_EPREFIX@/etc/vim/gvimrc.local
+endif
diff --git a/app-editors/gvim-classic/gvim-classic-8.3.0.ebuild b/app-editors/gvim-classic/gvim-classic-8.3.0.ebuild
new file mode 100644
index 000000000000..485fc0c1f49e
--- /dev/null
+++ b/app-editors/gvim-classic/gvim-classic-8.3.0.ebuild
@@ -0,0 +1,352 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-classic-core and app-editors/vim-classic
+
+VIM_VERSION="8.3"
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+USE_RUBY="ruby32 ruby33"
+GENTOO_DEPEND_ON_PERL=no
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc
+inherit bash-completion-r1 flag-o-matic lua-single perl-module prefix python-single-r1 \
+ ruby-single toolchain-funcs verify-sig vim-doc xdg-utils
+
+MYWORKDIR="${WORKDIR}/vim-classic-v${PV}"
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic"
+ EGIT_CHECKOUT_DIR="${MYWORKDIR}"
+else
+ SRC_URI="
+ https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ verify-sig? (
+ https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig
+ -> ${P}.tar.gz.sig
+ )
+ "
+ KEYWORDS="~amd64"
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) "
+fi
+
+DESCRIPTION="GUI version of the Vim text editor"
+HOMEPAGE="https://vim-classic.org/"
+S="${MYWORKDIR}"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="acl cscope debug lua minimal motif netbeans nls perl python racket ruby selinux session sound tcl ${GENTOO_PERL_USESTRING}"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+RDEPEND="
+ !app-editors/gvim
+ ~app-editors/vim-classic-core-${PV}
+ >=app-eselect/eselect-vi-1.1
+ >=sys-libs/ncurses-5.2-r2:0=
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXext
+ x11-libs/libXt
+ acl? ( kernel_linux? ( sys-apps/acl ) )
+ motif? ( >=x11-libs/motif-2.3:0 )
+ !motif? (
+ x11-libs/gtk+:3[X]
+ x11-libs/libXft
+ )
+ cscope? ( dev-util/cscope )
+ lua? (
+ ${LUA_DEPS}
+ $(lua_gen_impl_dep 'deprecated' lua5-1)
+ )
+ nls? ( virtual/libintl )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ racket? ( dev-scheme/racket )
+ ruby? ( ${RUBY_DEPS} )
+ selinux? ( sys-libs/libselinux )
+ session? ( x11-libs/libSM )
+ sound? ( media-libs/libcanberra )
+ tcl? ( dev-lang/tcl:0= )
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+# configure runs the Lua interpreter
+BDEPEND+="
+ dev-build/autoconf
+ virtual/pkgconfig
+ lua? ( ${LUA_DEPS} )
+ nls? ( sys-devel/gettext )
+"
+PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
+
+# various failures (bugs #630042 and #682320)
+RESTRICT="test"
+
+# platform-specific checks (bug #898450 #898452):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i -e \
+ '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug 29398 (27 Sep 2003 agriffis)
+ sed -i -e \
+ 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug 18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i -e \
+ 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+ rm -v src/auto/configure || die "rm failed"
+
+ # --with-features=huge forces on cscope even if we --disable it. We need
+ # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
+ if ! use cscope; then
+ sed -i -e \
+ '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
+ fi
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ local file
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e ${file} ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ use debug && append-flags "-DDEBUG"
+
+ local myconf=(
+ --with-features=huge
+ --disable-gpm
+ --with-gnome=no
+ $(use_enable sound canberra)
+ $(use_enable acl)
+ $(use_enable cscope)
+ $(use_enable netbeans)
+ $(use_enable nls)
+ $(use_enable perl perlinterp)
+ $(use_enable python python3interp)
+ $(use_with python python3-command "${PYTHON}")
+ $(use_enable racket mzschemeinterp)
+ $(use_enable ruby rubyinterp)
+ $(use_enable selinux)
+ $(use_enable session xsmp)
+ $(use_enable tcl tclinterp)
+ )
+
+ if use lua; then
+ # -DLUA_COMPAT_OPENLIB=1 is required to enable the
+ # deprecated (in 5.1) luaL_openlib API (#874690)
+ use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
+
+ myconf+=(
+ --enable-luainterp
+ $(use_with lua_single_target_luajit luajit)
+ --with-lua-prefix="${EPREFIX}/usr"
+ )
+ fi
+
+ # Default is gtk unless motif is enabled
+ echo ; echo
+ if use motif; then
+ einfo "Building gvim with the MOTIF GUI"
+ myconf+=( --enable-gui=motif )
+ else
+ myconf+=( --enable-gtk3-check )
+ einfo "Building gvim with the gtk+-3 GUI"
+ myconf+=( --enable-gui=gtk3 )
+ fi
+ echo ; echo
+
+ # let package manager strip binaries
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ # keep prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf \
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)" \
+ --with-vim-name=gvim \
+ --with-x \
+ "${myconf[@]}"
+}
+
+src_compile() {
+ # The following allows emake to be used
+ emake -j1 -C src auto/osdef.h objects
+
+ emake
+}
+
+src_test() {
+ einfo
+ einfo "Starting vim tests. Several error messages will be shown"
+ einfo "while the tests run. This is normal behaviour and does not"
+ einfo "indicate a fault."
+ einfo
+ ewarn "If the tests fail, your terminal may be left in a strange"
+ ewarn "state. Usually, running 'reset' will fix this."
+ einfo
+
+ # Don't let vim talk to X
+ unset DISPLAY
+
+ # Make gvim not try to connect to X. See :help gui-x11-start in vim for how
+ # this evil trickery works.
+ ln -s "${S}"/src/gvim "${S}"/src/testvim || die
+
+ # Make sure our VIMPROG is used.
+ sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die
+
+ # Don't do additional GUI tests.
+ emake -j1 VIMPROG=../testvim -C src/testdir nongui
+}
+
+# Call eselect vi update with --if-unset
+# to respect user's choice (bug #187449)
+eselect_vi_update() {
+ ebegin "Calling eselect vi update"
+ eselect vi update --if-unset
+ eend $?
+}
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dobin src/gvim
+ dosym gvim /usr/bin/gvimdiff
+ dosym gvim /usr/bin/evim
+ dosym gvim /usr/bin/eview
+ dosym gvim /usr/bin/gview
+ dosym gvim /usr/bin/rgvim
+ dosym gvim /usr/bin/rgview
+
+ emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons
+
+ dodir /usr/share/man/man1
+ echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed"
+ echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed"
+ echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \
+ die "echo failed"
+
+ insinto /etc/vim
+ newins "${FILESDIR}"/gvimrc-r1 gvimrc
+ eprefixify "${ED}"/etc/vim/gvimrc
+
+ # bash completion script, bug #79018.
+ newbashcomp "${FILESDIR}"/gvim-completion ${PN}
+
+ # don't install vim desktop file
+ rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop"
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update fdo mime stuff, bug #78394
+ xdg_desktop_database_update
+
+ # update icon cache
+ xdg_icon_cache_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
+
+pkg_postrm() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update fdo mime stuff, bug #78394
+ xdg_desktop_database_update
+
+ # update icon cache
+ xdg_icon_cache_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
diff --git a/app-editors/gvim-classic/gvim-classic-9999.ebuild b/app-editors/gvim-classic/gvim-classic-9999.ebuild
new file mode 100644
index 000000000000..485fc0c1f49e
--- /dev/null
+++ b/app-editors/gvim-classic/gvim-classic-9999.ebuild
@@ -0,0 +1,352 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-classic-core and app-editors/vim-classic
+
+VIM_VERSION="8.3"
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+USE_RUBY="ruby32 ruby33"
+GENTOO_DEPEND_ON_PERL=no
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc
+inherit bash-completion-r1 flag-o-matic lua-single perl-module prefix python-single-r1 \
+ ruby-single toolchain-funcs verify-sig vim-doc xdg-utils
+
+MYWORKDIR="${WORKDIR}/vim-classic-v${PV}"
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic"
+ EGIT_CHECKOUT_DIR="${MYWORKDIR}"
+else
+ SRC_URI="
+ https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ verify-sig? (
+ https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig
+ -> ${P}.tar.gz.sig
+ )
+ "
+ KEYWORDS="~amd64"
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) "
+fi
+
+DESCRIPTION="GUI version of the Vim text editor"
+HOMEPAGE="https://vim-classic.org/"
+S="${MYWORKDIR}"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="acl cscope debug lua minimal motif netbeans nls perl python racket ruby selinux session sound tcl ${GENTOO_PERL_USESTRING}"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+RDEPEND="
+ !app-editors/gvim
+ ~app-editors/vim-classic-core-${PV}
+ >=app-eselect/eselect-vi-1.1
+ >=sys-libs/ncurses-5.2-r2:0=
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXext
+ x11-libs/libXt
+ acl? ( kernel_linux? ( sys-apps/acl ) )
+ motif? ( >=x11-libs/motif-2.3:0 )
+ !motif? (
+ x11-libs/gtk+:3[X]
+ x11-libs/libXft
+ )
+ cscope? ( dev-util/cscope )
+ lua? (
+ ${LUA_DEPS}
+ $(lua_gen_impl_dep 'deprecated' lua5-1)
+ )
+ nls? ( virtual/libintl )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ racket? ( dev-scheme/racket )
+ ruby? ( ${RUBY_DEPS} )
+ selinux? ( sys-libs/libselinux )
+ session? ( x11-libs/libSM )
+ sound? ( media-libs/libcanberra )
+ tcl? ( dev-lang/tcl:0= )
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+# configure runs the Lua interpreter
+BDEPEND+="
+ dev-build/autoconf
+ virtual/pkgconfig
+ lua? ( ${LUA_DEPS} )
+ nls? ( sys-devel/gettext )
+"
+PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
+
+# various failures (bugs #630042 and #682320)
+RESTRICT="test"
+
+# platform-specific checks (bug #898450 #898452):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i -e \
+ '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug 29398 (27 Sep 2003 agriffis)
+ sed -i -e \
+ 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug 18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i -e \
+ 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+ rm -v src/auto/configure || die "rm failed"
+
+ # --with-features=huge forces on cscope even if we --disable it. We need
+ # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
+ if ! use cscope; then
+ sed -i -e \
+ '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
+ fi
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ local file
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e ${file} ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ use debug && append-flags "-DDEBUG"
+
+ local myconf=(
+ --with-features=huge
+ --disable-gpm
+ --with-gnome=no
+ $(use_enable sound canberra)
+ $(use_enable acl)
+ $(use_enable cscope)
+ $(use_enable netbeans)
+ $(use_enable nls)
+ $(use_enable perl perlinterp)
+ $(use_enable python python3interp)
+ $(use_with python python3-command "${PYTHON}")
+ $(use_enable racket mzschemeinterp)
+ $(use_enable ruby rubyinterp)
+ $(use_enable selinux)
+ $(use_enable session xsmp)
+ $(use_enable tcl tclinterp)
+ )
+
+ if use lua; then
+ # -DLUA_COMPAT_OPENLIB=1 is required to enable the
+ # deprecated (in 5.1) luaL_openlib API (#874690)
+ use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
+
+ myconf+=(
+ --enable-luainterp
+ $(use_with lua_single_target_luajit luajit)
+ --with-lua-prefix="${EPREFIX}/usr"
+ )
+ fi
+
+ # Default is gtk unless motif is enabled
+ echo ; echo
+ if use motif; then
+ einfo "Building gvim with the MOTIF GUI"
+ myconf+=( --enable-gui=motif )
+ else
+ myconf+=( --enable-gtk3-check )
+ einfo "Building gvim with the gtk+-3 GUI"
+ myconf+=( --enable-gui=gtk3 )
+ fi
+ echo ; echo
+
+ # let package manager strip binaries
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ # keep prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf \
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)" \
+ --with-vim-name=gvim \
+ --with-x \
+ "${myconf[@]}"
+}
+
+src_compile() {
+ # The following allows emake to be used
+ emake -j1 -C src auto/osdef.h objects
+
+ emake
+}
+
+src_test() {
+ einfo
+ einfo "Starting vim tests. Several error messages will be shown"
+ einfo "while the tests run. This is normal behaviour and does not"
+ einfo "indicate a fault."
+ einfo
+ ewarn "If the tests fail, your terminal may be left in a strange"
+ ewarn "state. Usually, running 'reset' will fix this."
+ einfo
+
+ # Don't let vim talk to X
+ unset DISPLAY
+
+ # Make gvim not try to connect to X. See :help gui-x11-start in vim for how
+ # this evil trickery works.
+ ln -s "${S}"/src/gvim "${S}"/src/testvim || die
+
+ # Make sure our VIMPROG is used.
+ sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die
+
+ # Don't do additional GUI tests.
+ emake -j1 VIMPROG=../testvim -C src/testdir nongui
+}
+
+# Call eselect vi update with --if-unset
+# to respect user's choice (bug #187449)
+eselect_vi_update() {
+ ebegin "Calling eselect vi update"
+ eselect vi update --if-unset
+ eend $?
+}
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dobin src/gvim
+ dosym gvim /usr/bin/gvimdiff
+ dosym gvim /usr/bin/evim
+ dosym gvim /usr/bin/eview
+ dosym gvim /usr/bin/gview
+ dosym gvim /usr/bin/rgvim
+ dosym gvim /usr/bin/rgview
+
+ emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons
+
+ dodir /usr/share/man/man1
+ echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed"
+ echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed"
+ echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \
+ die "echo failed"
+
+ insinto /etc/vim
+ newins "${FILESDIR}"/gvimrc-r1 gvimrc
+ eprefixify "${ED}"/etc/vim/gvimrc
+
+ # bash completion script, bug #79018.
+ newbashcomp "${FILESDIR}"/gvim-completion ${PN}
+
+ # don't install vim desktop file
+ rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop"
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update fdo mime stuff, bug #78394
+ xdg_desktop_database_update
+
+ # update icon cache
+ xdg_icon_cache_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
+
+pkg_postrm() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update fdo mime stuff, bug #78394
+ xdg_desktop_database_update
+
+ # update icon cache
+ xdg_icon_cache_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
diff --git a/app-editors/gvim-classic/metadata.xml b/app-editors/gvim-classic/metadata.xml
new file mode 100644
index 000000000000..0fa40a5da6a0
--- /dev/null
+++ b/app-editors/gvim-classic/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>bacs@librecast.net</email>
+ <name>Brett A C Sheffield</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>vim@gentoo.org</email>
+ <name>Gentoo Vim Project</name>
+ </maintainer>
+ <use>
+ <flag name="cscope">Enable cscope interface</flag>
+ <flag name="netbeans">Include netbeans external editor integration support</flag>
+ <flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/app-editors/gvim/Manifest b/app-editors/gvim/Manifest
index 5d2dad07d4b6..2e778d817f8f 100644
--- a/app-editors/gvim/Manifest
+++ b/app-editors/gvim/Manifest
@@ -1,2 +1,4 @@
DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7
+DIST vim-9.2.1119.tar.gz 20196061 BLAKE2B 2ccd209c5b5c8bab08d37147ba33f1d1a0ef2e3d6c5e26e165159bbafee311ccd3b236f852e3e12796e4618476c26985a5eea2a27c31087e2d3c1ee2957da34b SHA512 4939487f25757d571d1dc0bfa4888ebaf5c8799818da1c09e0d4781b3e7b27020d974e4ce3fb6e2c4e61198c09d1a2a51585c965107850c078ef1ea6d33d9d72
DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af
+DIST vim-patches-vim-9.2.1119-patches.tar.bz2 2619 BLAKE2B 32fe08c18bf276a21cb7067cd3f8c61dd07f6e0613e8afe32d4616546e1a93e0b20a3306ee1a695474d660c6ae42cfd9666c9f36f0bfccbb033705598deb0543 SHA512 58fc52058b3404588ca29f85ae1eb2740cba434952b7ad5636f76937f09121fd5d8c026e2f2489277d1ef5fc9a9c8a182dfc86346b233f08269ef6b68a056160
diff --git a/app-editors/gvim/gvim-9.2.1119.ebuild b/app-editors/gvim/gvim-9.2.1119.ebuild
new file mode 100644
index 000000000000..14d3b017da1d
--- /dev/null
+++ b/app-editors/gvim/gvim-9.2.1119.ebuild
@@ -0,0 +1,370 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-core and app-editors/vim
+
+VIM_VERSION="9.2"
+VIM_PATCHES_VERSION="9.2.1119"
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+USE_RUBY="ruby32 ruby33"
+GENTOO_DEPEND_ON_PERL=no
+
+inherit flag-o-matic lua-single perl-module prefix python-single-r1 ruby-single shell-completion toolchain-funcs vim-doc xdg-utils
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/vim/vim.git"
+ EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
+else
+ SRC_URI="
+ https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
+ https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2
+ "
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="GUI version of the Vim text editor"
+HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
+S="${WORKDIR}"/vim-${PV}
+
+LICENSE="vim"
+SLOT="0"
+IUSE="acl crypt cscope debug gtk4 lua minimal motif netbeans nls +pango perl python racket ruby selinux session sound tcl wayland ${GENTOO_PERL_USESTRING}"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ ?? ( gtk4 motif )
+ gtk4? ( !session )
+"
+
+RDEPEND="
+ ~app-editors/vim-core-${PV}
+ >=app-eselect/eselect-vi-1.1
+ >=sys-libs/ncurses-5.2-r2:0=
+ acl? ( kernel_linux? ( sys-apps/acl ) )
+ motif? ( >=x11-libs/motif-2.3:0 )
+ gtk4? ( gui-libs/gtk:4 )
+ !gtk4? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXext
+ x11-libs/libXt
+ !motif? (
+ x11-libs/gtk+:3[X]
+ x11-libs/libXft
+ )
+ )
+ pango? (
+ x11-libs/cairo
+ >=x11-libs/pango-1.44
+ )
+ crypt? ( dev-libs/libsodium:= )
+ cscope? ( dev-util/cscope )
+ lua? (
+ ${LUA_DEPS}
+ $(lua_gen_impl_dep 'deprecated' lua5-1)
+ )
+ nls? ( virtual/libintl )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ racket? ( dev-scheme/racket )
+ ruby? ( ${RUBY_DEPS} )
+ selinux? ( sys-libs/libselinux )
+ session? ( x11-libs/libSM )
+ sound? ( media-libs/libcanberra )
+ tcl? ( dev-lang/tcl:0= )
+ wayland? ( dev-libs/wayland )
+"
+DEPEND="${RDEPEND}
+ !gtk4? ( x11-base/xorg-proto )"
+# configure runs the Lua interpreter
+BDEPEND="
+ >=dev-build/autoconf-2.71
+ virtual/pkgconfig
+ lua? ( ${LUA_DEPS} )
+ nls? ( sys-devel/gettext )
+"
+PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
+
+if [[ ${PV} != 9999* ]]; then
+ # Gentoo patches to fix runtime issues, cross-compile errors, etc
+ PATCHES=(
+ "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
+ )
+fi
+
+# various failures (bugs #630042 and #682320)
+RESTRICT="test"
+
+# platform-specific checks (bug #898450):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug 82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i -e \
+ '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug 29398 (27 Sep 2003 agriffis)
+ sed -i -e \
+ 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug 18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i -e \
+ 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+ rm -v src/auto/configure || die "rm failed"
+
+ # --with-features=huge forces on cscope even if we --disable it. We need
+ # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
+ if ! use cscope; then
+ sed -i -e \
+ '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
+ fi
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ local file
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e ${file} ]]; then
+ addwrite $file
+ fi
+ done
+
+ use debug && append-flags "-DDEBUG"
+
+ local myconf=(
+ --with-features=huge
+ --disable-gpm
+ --with-gnome=no
+ $(use_enable sound canberra)
+ $(use_enable acl)
+ $(use_enable crypt libsodium)
+ $(use_enable cscope)
+ $(use_enable netbeans)
+ $(use_enable nls)
+ $(use_enable perl perlinterp)
+ $(use_enable python python3interp)
+ $(use_with python python3-command "${PYTHON}")
+ $(use_enable racket mzschemeinterp)
+ $(use_enable ruby rubyinterp)
+ $(use_enable selinux)
+ $(use_enable session xsmp)
+ $(use_enable tcl tclinterp)
+ $(use_with wayland)
+ )
+
+ if use lua; then
+ # -DLUA_COMPAT_OPENLIB=1 is required to enable the
+ # deprecated (in 5.1) luaL_openlib API (#874690)
+ use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
+
+ myconf+=(
+ --enable-luainterp
+ $(use_with lua_single_target_luajit luajit)
+ --with-lua-prefix="${EPREFIX}/usr"
+ )
+ fi
+
+ # Default is gtk+-3 unless motif or gtk4 is enabled
+ echo ; echo
+ if use motif; then
+ einfo "Building gvim with the MOTIF GUI"
+ myconf+=( --enable-gui=motif --with-x )
+ elif use gtk4; then
+ einfo "Building gvim with the GTK 4 GUI"
+ # GTK4 talks to no X11 API of its own, and configure forces
+ # with_x=no for it; so do not drag in the X11 libraries.
+ myconf+=( --enable-gui=gtk4 --without-x )
+ else
+ myconf+=( --enable-gtk3-check --disable-gtk4-check )
+ einfo "Building gvim with the gtk+-3 GUI"
+ myconf+=( --enable-gui=gtk3 --with-x )
+ fi
+ echo ; echo
+
+ # Render hardcopy with system Pango/Cairo instead of Vim's own PostScript generator
+ myconf+=( $(use_enable pango hardcopy-pango) )
+
+ # let package manager strip binaries
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ # keep prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf \
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)" \
+ --with-vim-name=gvim \
+ "${myconf[@]}"
+}
+
+src_compile() {
+ # The following allows emake to be used
+ emake -j1 -C src auto/osdef.h objects
+
+ emake
+}
+
+src_test() {
+ einfo
+ einfo "Starting vim tests. Several error messages will be shown"
+ einfo "while the tests run. This is normal behaviour and does not"
+ einfo "indicate a fault."
+ einfo
+ ewarn "If the tests fail, your terminal may be left in a strange"
+ ewarn "state. Usually, running 'reset' will fix this."
+ einfo
+
+ # Don't let vim talk to X
+ unset DISPLAY
+
+ # Make gvim not try to connect to X. See :help gui-x11-start in vim for how
+ # this evil trickery works.
+ ln -s "${S}"/src/gvim "${S}"/src/testvim || die
+
+ # Make sure our VIMPROG is used.
+ sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die
+
+ # Don't do additional GUI tests.
+ emake -j1 VIMPROG=../testvim -C src/testdir nongui
+}
+
+# Call eselect vi update with --if-unset
+# to respect user's choice (bug 187449)
+eselect_vi_update() {
+ ebegin "Calling eselect vi update"
+ eselect vi update --if-unset
+ eend $?
+}
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dobin src/gvim
+ dosym gvim /usr/bin/gvimdiff
+ dosym gvim /usr/bin/evim
+ dosym gvim /usr/bin/eview
+ dosym gvim /usr/bin/gview
+ dosym gvim /usr/bin/rgvim
+ dosym gvim /usr/bin/rgview
+
+ emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons
+
+ dodir /usr/share/man/man1
+ echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed"
+ echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed"
+ echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \
+ die "echo failed"
+
+ insinto /etc/vim
+ newins "${FILESDIR}"/gvimrc-r1 gvimrc
+ eprefixify "${ED}"/etc/vim/gvimrc
+
+ # bash completion script, bug #79018.
+ newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
+
+ # don't install vim desktop file
+ rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop"
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update fdo mime stuff, bug #78394
+ xdg_desktop_database_update
+
+ # update icon cache
+ xdg_icon_cache_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
+
+pkg_postrm() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update fdo mime stuff, bug #78394
+ xdg_desktop_database_update
+
+ # update icon cache
+ xdg_icon_cache_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
diff --git a/app-editors/gvim/metadata.xml b/app-editors/gvim/metadata.xml
index 7e0ac1b87fad..8726f49821a7 100644
--- a/app-editors/gvim/metadata.xml
+++ b/app-editors/gvim/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<maintainer type="person" proxied="yes">
<email>xxc3ncoredxx@gmail.com</email>
<name>Oskari Pirhonen</name>
@@ -16,7 +20,15 @@
<use>
<flag name="crypt">Use <pkg>dev-libs/libsodium</pkg> for crypto support</flag>
<flag name="cscope">Enable cscope interface</flag>
+ <flag name="gtk4">Build the GTK 4 GUI using <pkg>gui-libs/gtk</pkg>:4 instead of
+ the default GTK+ 3 one. The GTK 4 GUI uses no X11 API, so 'session'
+ (X session management) is unavailable with it.</flag>
<flag name="netbeans">Include netbeans external editor integration support</flag>
+ <flag name="pango">Render |:hardcopy| output with <pkg>x11-libs/pango</pkg>
+ and <pkg>x11-libs/cairo</pkg> rather than Vim's own PostScript generator.
+ Gains full Unicode support and PDF output, at the cost of the
+ 'printencoding', 'printmbcharset' and 'printmbfont' options, which
+ exist only for the built-in generator.</flag>
<flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg>
</flag>
</use>
diff --git a/app-editors/moe/moe-1.16.ebuild b/app-editors/moe/moe-1.16.ebuild
index 7efaac94a7b7..681ce22b9454 100644
--- a/app-editors/moe/moe-1.16.ebuild
+++ b/app-editors/moe/moe-1.16.ebuild
@@ -15,7 +15,7 @@ SRC_URI="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~riscv ~x86"
+KEYWORDS="~amd64 arm ~riscv ~x86"
RDEPEND="sys-libs/ncurses:="
DEPEND="${RDEPEND}"
diff --git a/app-editors/nedit/nedit-5.8.ebuild b/app-editors/nedit/nedit-5.8.ebuild
index e972164299f0..6efaffc9ca73 100644
--- a/app-editors/nedit/nedit-5.8.ebuild
+++ b/app-editors/nedit/nedit-5.8.ebuild
@@ -14,7 +14,7 @@ SRC_URI="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~mips ~ppc ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~mips ppc ~riscv ~sparc ~x86"
IUSE="doc"
RDEPEND="
diff --git a/app-editors/vim-classic-core/Manifest b/app-editors/vim-classic-core/Manifest
new file mode 100644
index 000000000000..f97f1a171e53
--- /dev/null
+++ b/app-editors/vim-classic-core/Manifest
@@ -0,0 +1,2 @@
+DIST vim-classic-core-8.3.0.tar.gz 14767832 BLAKE2B 309305bf99997e4c8f6d309de118f78da9e88de2e2909d4216f8991526fc430f7b0eedf6f7d5d91fdeb3dfe80935b2196880ab9438a8b9496d675d37f9386b11 SHA512 83417abe7989728aa4ed9da26b2779578cbad676f501953eaf04d4b99ea5615e8cf1df129c18c3e745aba7ed065d37c59015bc6461a5e5d4a5ea8a9c0364d7ca
+DIST vim-classic-core-8.3.0.tar.gz.sig 119 BLAKE2B f54d8a514146cca189966ecedf707590a0f76ff7ef2cd2bb6729c70dd68bb3e4644cb53ca28a7b7efa237466755d23acb2011bcd088f9c9e24d77d782a4c3a2f SHA512 947285dd9359c7399c358176c327f45b43c2bc58a3bec7a1d2ec838a7d070551f4f510ce92523110b6c590ef3ff0115683ebe7144ef4b6b9bb6dde72d8e11084
diff --git a/app-editors/vim-classic-core/files/gvim.svg b/app-editors/vim-classic-core/files/gvim.svg
new file mode 100644
index 000000000000..b82742a79012
--- /dev/null
+++ b/app-editors/vim-classic-core/files/gvim.svg
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="256"
+ height="256"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.47 r22583"
+ sodipodi:docname="vim.svg">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <inkscape:perspective
+ id="perspective2884"
+ inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
+ inkscape:vp_z="1 : 0.5 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_x="0 : 0.5 : 1"
+ sodipodi:type="inkscape:persp3d" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.7"
+ inkscape:cx="107.83967"
+ inkscape:cy="146.01885"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="743"
+ inkscape:window-height="605"
+ inkscape:window-x="88"
+ inkscape:window-y="321"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-796.36218)">
+ <path
+ style="fill:#19953f;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="M 128.02596,805.31213 8.0259779,926.7407 127.31168,1046.0264 l 120,-120.71427 -119.28572,-120 z"
+ id="path2890" />
+ <path
+ style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 26.24294,816.92274 -5,5 0,19.28572 5.446429,5.26785 7.232142,0.17858 0.178571,168.12501 7.142857,7.1429 22.142858,0 177.142853,-180.00006 0,-18.57143 -5,-5 -80,-0.71428 -5,7.14285 0,15.71429 5,6.42857 6.42857,0 -62.142855,60.00001 0.625005,-59.73215 7.14285,-10e-6 5.80357,-5.98214 0,-15.71429 -6.42857,-7.14286 -80.71428,-1.42857 0,10e-6 z"
+ id="path3664"
+ sodipodi:nodetypes="cccccccccccccccccccccccc" />
+ <path
+ style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 136.90826,933.24978 4.28572,-3.57143 12.14285,0.35715 3.92857,3.92857 -4.28571,12.14286 -3.57143,3.21428 -12.64794,-0.14794 -3.42349,-4.13777 3.57143,-11.78572 z"
+ id="path3666"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 121.90826,956.10693 28.57143,0.35714 -15,45.00003 5.35714,0 -3.21428,8.9285 -26.78572,-0.3571 14.64286,-43.21429 -7.14286,0.35714 3.57143,-11.07142 z"
+ id="path3668" />
+ <path
+ style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 157.2654,956.46407 -3.71936,9.68618 6.82905,0 -15.25254,44.24235 23.57143,0 3.40554,-8.7193 -6.11475,-0.4005 8.42349,-26.2373 15,-0.35715 -11.07143,34.99995 23.15301,0.3572 2.91579,-8.2576 -5.56371,-0.1633 9.13777,-26.5791 12.85714,0 -11.07143,35 24.32904,0.2525 3.00508,-8.2729 -5.81626,-0.1939 11.69643,-37.14285 -4.64286,-7.5 -14.64285,0 -5.71429,5.71429 -5.71429,0 -6.07142,-6.07143 -12.5,0 -5.35715,5.35714 -6.07143,0 -6.07142,-5.71428 -18.92858,0 z"
+ id="path3670"
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccc" />
+ </g>
+</svg>
diff --git a/app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch b/app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch
new file mode 100644
index 000000000000..a401b72c7bf1
--- /dev/null
+++ b/app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch
@@ -0,0 +1,37 @@
+The xxd utility is packaged in dev-util/xxd. With USE=nls, the prerequisite
+$(INSTALL_TOOL_LANGS) target variable contains install-tool-languages, which
+only installs xxd manpages. Remove it to prevent file collisions with
+dev-util/xxd.
+
+Original patch From: Lucio Sauer <watermanpaint@posteo.net>
+diff --git a/src/Makefile b/src/Makefile
+index 30b315b6e..6fb8e0baa 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1000,7 +1000,7 @@ EVIEWTARGET = $(EVIEWNAME)$(LNKEXT)
+
+ ### Names of the tools that are also made {{{1
+ XXDTARGET = xxd/$(XXDNAME)$(EXEEXT)
+-TOOLS = $(XXDTARGET)
++TOOLS =
+
+ ### Installation directories. The defaults come from configure. {{{1
+ #
+@@ -2489,16 +2489,11 @@ installspell: $(DEST_VIM) $(DEST_RT) $(DEST_SPELL)
+
+ # install helper program xxd
+ installtools: $(TOOLS) $(DESTDIR)$(exec_prefix) $(DEST_BIN) \
+- $(TOOLSSOURCE) $(DEST_VIM) $(DEST_RT) $(DEST_TOOLS) \
+- $(INSTALL_TOOL_LANGS)
++ $(TOOLSSOURCE) $(DEST_VIM) $(DEST_RT) $(DEST_TOOLS)
+ if test -f $(DEST_BIN)/$(XXDNAME)$(EXEEXT); then \
+ mv -f $(DEST_BIN)/$(XXDNAME)$(EXEEXT) $(DEST_BIN)/$(XXDNAME).rm; \
+ rm -f $(DEST_BIN)/$(XXDNAME).rm; \
+ fi
+- $(INSTALL_PROG) xxd/$(XXDNAME)$(EXEEXT) $(DEST_BIN)
+- $(STRIP) $(DEST_BIN)/$(XXDNAME)$(EXEEXT)
+- chmod $(BINMOD) $(DEST_BIN)/$(XXDNAME)$(EXEEXT)
+- -$(SHELL) ./installman.sh xxd $(DEST_MAN) "" $(INSTALLMANARGS)
+
+ # install the runtime tools
+ $(INSTALL_DATA_R) $(TOOLSSOURCE)/* $(DEST_TOOLS)
diff --git a/app-editors/vim-classic-core/files/vimrc-r8 b/app-editors/vim-classic-core/files/vimrc-r8
new file mode 100644
index 000000000000..c4abc23e7496
--- /dev/null
+++ b/app-editors/vim-classic-core/files/vimrc-r8
@@ -0,0 +1,218 @@
+scriptencoding utf-8
+" ^^ Please leave the above line at the start of the file.
+
+" If you want to completely disable this script, make sure to put
+" "let skip_etc_vimrc = 1" in a skip_etc_vimrc.vim in your runtimepath, like
+" ~/.vim/skip_etc_vimrc.
+runtime! skip_etc_vimrc.vim
+" Bail out when a power user would prefer to avoid the system configuration
+if exists('skip_etc_vimrc')
+ finish
+endif
+
+" Default configuration file for Vim
+
+" Written by Aron Griffis <agriffis@gentoo.org>
+" Modified by Ryan Phillips <rphillips@gentoo.org>
+" Modified some more by Ciaran McCreesh <ciaranm@gentoo.org>
+" Added Redhat's vimrc info by Seemant Kulleen <seemant@gentoo.org>
+
+" You can override any of these settings on a global basis via the
+" "/etc/vim/vimrc.local" file, and on a per-user basis via "~/.vimrc". You may
+" need to create these.
+
+" {{{ General settings
+" The following are some sensible defaults for Vim for most users.
+" We attempt to change as little as possible from Vim's defaults,
+" deviating only where it makes sense
+set nocompatible " Use Vim defaults (much better!)
+set bs=2 " Allow backspacing over everything in insert mode
+set ai " Always set auto-indenting on
+set history=50 " keep 50 lines of command history
+set ruler " Show the cursor position all the time
+
+set viminfo='20,\"500 " Keep a .viminfo file.
+
+" Don't use Ex mode, use Q for formatting
+map Q gq
+
+" When doing tab completion, give the following files lower priority. You may
+" wish to set 'wildignore' to completely ignore files, and 'wildmenu' to enable
+" enhanced tab completion. These can be done in the user vimrc file.
+set suffixes+=.info,.aux,.log,.dvi,.bbl,.out,.o,.lo
+
+" When displaying line numbers, don't use an annoyingly wide number column. This
+" doesn't enable line numbers -- :set number will do that. The value given is a
+" minimum width to use for the number column, not a fixed size.
+if v:version >= 700
+ set numberwidth=3
+endif
+" }}}
+
+" {{{ Modeline settings
+" We don't allow modelines by default. See bug #14088 and bug #73715.
+" If you're not concerned about these, you can enable them on a per-user
+" basis by adding "set modeline" to your ~/.vimrc file.
+set nomodeline
+" }}}
+
+" {{{ Locale settings
+" Try to come up with some nice sane GUI fonts. Also try to set a sensible
+" value for fileencodings based upon locale. These can all be overridden in
+" the user vimrc file.
+if v:lang =~? "^ko"
+ set fileencodings=euc-kr
+ set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-*
+elseif v:lang =~? "^ja_JP"
+ set fileencodings=euc-jp
+ set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
+elseif v:lang =~? "^zh_TW"
+ set fileencodings=big5
+ set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
+elseif v:lang =~? "^zh_CN"
+ set fileencodings=gb2312
+ set guifontset=*-r-*
+endif
+
+" If we have a BOM, always honour that rather than trying to guess.
+if &fileencodings !~? "ucs-bom"
+ set fileencodings^=ucs-bom
+endif
+
+" Always check for UTF-8 when trying to determine encodings.
+if &fileencodings !~? "utf-8"
+ " If we have to add this, the default encoding is not Unicode.
+ " We use this fact later to revert to the default encoding in plaintext/empty
+ " files.
+ let g:added_fenc_utf8 = 1
+ set fileencodings+=utf-8
+endif
+
+" Make sure we have a sane fallback for encoding detection
+if &fileencodings !~? "default"
+ set fileencodings+=default
+endif
+" }}}
+
+" {{{ Syntax highlighting settings
+" Switch syntax highlighting on, when the terminal has colors
+" Also switch on highlighting the last used search pattern.
+if &t_Co > 2 || has("gui_running")
+ syntax on
+ set hlsearch
+endif
+" }}}
+
+" {{{ Terminal fixes
+if &term ==? "xterm"
+ set t_Sb=^[4%dm
+ set t_Sf=^[3%dm
+ set ttymouse=xterm2
+endif
+
+if &term ==? "gnome" && has("eval")
+ " Set useful keys that vim doesn't discover via termcap but are in the
+ " builtin xterm termcap. See bug #122562. We use exec to avoid having to
+ " include raw escapes in the file.
+ exec "set <C-Left>=\eO5D"
+ exec "set <C-Right>=\eO5C"
+endif
+" }}}
+
+" {{{ Filetype plugin settings
+" Enable plugin-provided filetype settings, but only if the ftplugin
+" directory exists (which it won't on livecds, for example).
+if isdirectory(expand("$VIMRUNTIME/ftplugin"))
+ filetype plugin on
+
+ " Uncomment the next line (or copy to your ~/.vimrc) for plugin-provided
+ " indent settings. Some people don't like these, so we won't turn them on by
+ " default.
+ " filetype indent on
+endif
+" }}}
+
+" {{{ Fix &shell, see bug #101665.
+if "" == &shell
+ if executable("@GENTOO_PORTAGE_EPREFIX@/bin/bash")
+ set shell=@GENTOO_PORTAGE_EPREFIX@/bin/bash
+ elseif executable("@GENTOO_PORTAGE_EPREFIX@/bin/sh")
+ set shell=@GENTOO_PORTAGE_EPREFIX@/bin/sh
+ endif
+endif
+"}}}
+
+" {{{ Our default /bin/sh is bash, not ksh, so syntax highlighting for .sh
+" files should default to bash. See :help sh-syntax and bug #101819.
+if has("eval")
+ let is_bash=1
+endif
+" }}}
+
+" {{{ Autocommands
+if has("autocmd")
+
+augroup gentoo
+ au!
+
+ " Gentoo-specific settings for ebuilds. These are the federally-mandated
+ " required tab settings. See the following for more information:
+ " http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml
+ " Note that the rules below are very minimal and don't cover everything.
+ " Better to emerge app-vim/gentoo-syntax, which provides full syntax,
+ " filetype and indent settings for all things Gentoo.
+ au BufRead,BufNewFile *.e{build,class} let is_bash=1|setfiletype sh
+ au BufRead,BufNewFile *.e{build,class} setl ts=4 sw=4 noexpandtab
+
+ " When editing a file, always jump to the last cursor position
+ autocmd BufReadPost *
+ \ if ! exists("g:leave_my_cursor_position_alone") |
+ \ if line("'\"") > 0 && line ("'\"") <= line("$") |
+ \ exe "normal! g'\"" |
+ \ endif |
+ \ endif
+
+ " When editing a crontab file, set backupcopy to yes rather than auto. See
+ " :help crontab and bug #53437.
+ autocmd FileType crontab setl backupcopy=yes
+
+ " If we previously detected that the default encoding is not UTF-8
+ " (g:added_fenc_utf8), assume that a file with only ASCII characters (or no
+ " characters at all) isn't a Unicode file, but is in the default encoding.
+ " Except of course if a byte-order mark is in effect.
+ autocmd BufReadPost *
+ \ if exists("g:added_fenc_utf8") && &fileencoding == "utf-8" &&
+ \ ! &bomb && search('[\x80-\xFF]','nw') == 0 && &modifiable |
+ \ set fileencoding= |
+ \ endif
+
+augroup END
+
+endif " has("autocmd")
+" }}}
+
+" We don't want VIM to load their own built-in defaults, preferring ours here
+" instead. This option cannot apply to minimal builds, so it is guarded by a
+" test that's guaranteed to fail for those, owing to the lack of +eval.
+if 1
+ let g:skip_defaults_vim = 1
+endif
+
+" Enable Omni completion when opening a file only if a specific plugin does
+" not already exist for that filetype. This allows Omni completion
+" (Ctrl-x/Ctrl-o) to work with any programming language if and only if a syntax
+" file exists for the said language.
+if exists("+omnifunc")
+ autocmd gentoo Filetype *
+ \ if &omnifunc == "" |
+ \ setlocal omnifunc=syntaxcomplete#Complete |
+ \ endif
+endif
+
+" {{{ vimrc.local
+if filereadable("@GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local")
+ source @GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local
+endif
+" }}}
+
+" vim: set fenc=utf-8 tw=80 sw=2 sts=2 et foldmethod=marker :
diff --git a/app-editors/vim-classic-core/metadata.xml b/app-editors/vim-classic-core/metadata.xml
new file mode 100644
index 000000000000..9f2576b4cad6
--- /dev/null
+++ b/app-editors/vim-classic-core/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>bacs@librecast.net</email>
+ <name>Brett A C Sheffield</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>vim@gentoo.org</email>
+ <name>Gentoo Vim Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild b/app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild
new file mode 100644
index 000000000000..ff11e99bd902
--- /dev/null
+++ b/app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-classic and app-editors/gvim-classic
+
+VIM_VERSION="8.3"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc
+inherit desktop flag-o-matic prefix toolchain-funcs verify-sig vim-doc xdg-utils
+
+MYWORKDIR="${WORKDIR}/vim-classic-v${PV}"
+if [[ ${PV} == 9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic"
+ EGIT_CHECKOUT_DIR="${MYWORKDIR}"
+else
+ SRC_URI="
+ https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ verify-sig? (
+ https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig
+ -> ${P}.tar.gz.sig
+ )
+ "
+ KEYWORDS="~amd64"
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) "
+fi
+
+DESCRIPTION="vim-classic and gvim-classic shared files"
+HOMEPAGE="https://vim-classic.org/"
+S="${MYWORKDIR}"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="nls acl minimal"
+
+RDEPEND="
+ !app-editors/vim-core
+ dev-util/xxd
+ >=virtual/editor-0-r8
+"
+# ncurses is only needed by ./configure, so no subslot operator required
+DEPEND=">=sys-libs/ncurses-5.2-r2:0"
+BDEPEND+="dev-build/autoconf"
+
+# unbundle xxd
+PATCHES+=( "${FILESDIR}/vim-core-unbundle-xxd.patch" )
+
+# platform-specific checks (bug #898406):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i \
+ -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "sed failed"
+
+ # See bug #77841. We remove this file after the tarball extraction.
+ rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
+ # everyone since previous flag filtering bugs have turned out to affect
+ # multiple archs...
+ replace-flags -O3 -O2
+
+ # Fix bug #18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+
+ # Remove src/auto/configure file.
+ rm -v src/auto/configure || die "rm configure failed"
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e "${file}" ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ # Let Portage do the stripping. Some people like that.
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ local myconf=(
+ --with-modified-by=Gentoo-${PVR}
+ --enable-gui=no
+ --without-x
+ --disable-darwin
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-rubyinterp
+ --disable-gpm
+ --disable-selinux
+ $(use_enable nls)
+ $(use_enable acl)
+ )
+
+ # Keep Gentoo Prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake -j1 -C src auto/osdef.h objects
+}
+
+src_test() { :; }
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dodir /usr/{bin,share/{man/man1,vim}}
+ emake -C src \
+ installruntime \
+ installmanlinks \
+ installmacros \
+ installtutor \
+ installtutorbin \
+ installtools \
+ install-languages \
+ DESTDIR="${D}" \
+ BINDIR="${EPREFIX}"/usr/bin \
+ MANDIR="${EPREFIX}"/usr/share/man \
+ DATADIR="${EPREFIX}"/usr/share
+
+ keepdir ${vimfiles}/keymap
+
+ # default vimrc is installed by vim-core since it applies to
+ # both vim and gvim
+ insinto /etc/vim/
+ newins "${FILESDIR}"/vimrc-r8 vimrc
+ eprefixify "${ED}"/etc/vim/vimrc
+
+ if use minimal; then
+ # To save space, install only a subset of the files.
+ # Helps minimalize the livecd, bug 65144.
+ rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
+ rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
+ rm -v "${ED}"/usr/bin/vimtutor || die
+
+ for f in "${ED}${vimfiles}"/colors/*.vim; do
+ if [[ ${f} != */@(default).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+
+ for f in "${ED}${vimfiles}"/syntax/*.vim; do
+ if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+ fi
+
+ # install gvim icon since both vim/gvim desktop files reference it
+ doicon -s scalable "${FILESDIR}"/gvim.svg
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ # Update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
diff --git a/app-editors/vim-classic-core/vim-classic-core-9999.ebuild b/app-editors/vim-classic-core/vim-classic-core-9999.ebuild
new file mode 100644
index 000000000000..ff11e99bd902
--- /dev/null
+++ b/app-editors/vim-classic-core/vim-classic-core-9999.ebuild
@@ -0,0 +1,237 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-classic and app-editors/gvim-classic
+
+VIM_VERSION="8.3"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc
+inherit desktop flag-o-matic prefix toolchain-funcs verify-sig vim-doc xdg-utils
+
+MYWORKDIR="${WORKDIR}/vim-classic-v${PV}"
+if [[ ${PV} == 9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic"
+ EGIT_CHECKOUT_DIR="${MYWORKDIR}"
+else
+ SRC_URI="
+ https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ verify-sig? (
+ https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig
+ -> ${P}.tar.gz.sig
+ )
+ "
+ KEYWORDS="~amd64"
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) "
+fi
+
+DESCRIPTION="vim-classic and gvim-classic shared files"
+HOMEPAGE="https://vim-classic.org/"
+S="${MYWORKDIR}"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="nls acl minimal"
+
+RDEPEND="
+ !app-editors/vim-core
+ dev-util/xxd
+ >=virtual/editor-0-r8
+"
+# ncurses is only needed by ./configure, so no subslot operator required
+DEPEND=">=sys-libs/ncurses-5.2-r2:0"
+BDEPEND+="dev-build/autoconf"
+
+# unbundle xxd
+PATCHES+=( "${FILESDIR}/vim-core-unbundle-xxd.patch" )
+
+# platform-specific checks (bug #898406):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i \
+ -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "sed failed"
+
+ # See bug #77841. We remove this file after the tarball extraction.
+ rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
+ # everyone since previous flag filtering bugs have turned out to affect
+ # multiple archs...
+ replace-flags -O3 -O2
+
+ # Fix bug #18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+
+ # Remove src/auto/configure file.
+ rm -v src/auto/configure || die "rm configure failed"
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e "${file}" ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ # Let Portage do the stripping. Some people like that.
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ local myconf=(
+ --with-modified-by=Gentoo-${PVR}
+ --enable-gui=no
+ --without-x
+ --disable-darwin
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-rubyinterp
+ --disable-gpm
+ --disable-selinux
+ $(use_enable nls)
+ $(use_enable acl)
+ )
+
+ # Keep Gentoo Prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake -j1 -C src auto/osdef.h objects
+}
+
+src_test() { :; }
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dodir /usr/{bin,share/{man/man1,vim}}
+ emake -C src \
+ installruntime \
+ installmanlinks \
+ installmacros \
+ installtutor \
+ installtutorbin \
+ installtools \
+ install-languages \
+ DESTDIR="${D}" \
+ BINDIR="${EPREFIX}"/usr/bin \
+ MANDIR="${EPREFIX}"/usr/share/man \
+ DATADIR="${EPREFIX}"/usr/share
+
+ keepdir ${vimfiles}/keymap
+
+ # default vimrc is installed by vim-core since it applies to
+ # both vim and gvim
+ insinto /etc/vim/
+ newins "${FILESDIR}"/vimrc-r8 vimrc
+ eprefixify "${ED}"/etc/vim/vimrc
+
+ if use minimal; then
+ # To save space, install only a subset of the files.
+ # Helps minimalize the livecd, bug 65144.
+ rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
+ rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
+ rm -v "${ED}"/usr/bin/vimtutor || die
+
+ for f in "${ED}${vimfiles}"/colors/*.vim; do
+ if [[ ${f} != */@(default).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+
+ for f in "${ED}${vimfiles}"/syntax/*.vim; do
+ if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+ fi
+
+ # install gvim icon since both vim/gvim desktop files reference it
+ doicon -s scalable "${FILESDIR}"/gvim.svg
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ # Update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
diff --git a/app-editors/vim-classic/Manifest b/app-editors/vim-classic/Manifest
new file mode 100644
index 000000000000..b25ab36fc6c4
--- /dev/null
+++ b/app-editors/vim-classic/Manifest
@@ -0,0 +1,2 @@
+DIST vim-classic-8.3.0.tar.gz 14767832 BLAKE2B 309305bf99997e4c8f6d309de118f78da9e88de2e2909d4216f8991526fc430f7b0eedf6f7d5d91fdeb3dfe80935b2196880ab9438a8b9496d675d37f9386b11 SHA512 83417abe7989728aa4ed9da26b2779578cbad676f501953eaf04d4b99ea5615e8cf1df129c18c3e745aba7ed065d37c59015bc6461a5e5d4a5ea8a9c0364d7ca
+DIST vim-classic-8.3.0.tar.gz.sig 119 BLAKE2B f54d8a514146cca189966ecedf707590a0f76ff7ef2cd2bb6729c70dd68bb3e4644cb53ca28a7b7efa237466755d23acb2011bcd088f9c9e24d77d782a4c3a2f SHA512 947285dd9359c7399c358176c327f45b43c2bc58a3bec7a1d2ec838a7d070551f4f510ce92523110b6c590ef3ff0115683ebe7144ef4b6b9bb6dde72d8e11084
diff --git a/app-editors/vim-classic/files/vim-classic-completion b/app-editors/vim-classic/files/vim-classic-completion
new file mode 100644
index 000000000000..67537d63101d
--- /dev/null
+++ b/app-editors/vim-classic/files/vim-classic-completion
@@ -0,0 +1,36 @@
+# Author: Ciaran McCreesh <ciaranm@gentoo.org>
+#
+# completion for vim
+
+_vim()
+{
+ local cur prev cmd args
+
+ COMPREPLY=()
+ cur=${COMP_WORDS[COMP_CWORD]}
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+ cmd=${COMP_WORDS[0]}
+
+ if [[ "${prev}" == "--servername" ]] ; then
+ local servers
+ servers=$(gvim --serverlist )
+ COMPREPLY=( $( compgen -W "${servers}" -- $cur ) )
+
+ elif [[ "${prev}" == -[uUi] ]] ; then
+ COMPREPLY=( $( compgen -W "NONE" ) \
+ $( compgen -f -X "!*vim*" -- "$cur" ) )
+
+ elif [[ "${cur}" == -* ]] ; then
+ args='-t -q -c -S --cmd -A -b -C -d -D -e -E -f --nofork \
+ -F -g -h -H -i -L -l -m -M -N -n -nb -o -R -r -s \
+ -T -u -U -V -v -w -W -x -X -y -Y -Z --echo-wid \
+ --help --literal --noplugin --version'
+ COMPREPLY=( $( compgen -W "${args}" -- $cur ) )
+ else
+ _filedir
+ fi
+}
+
+complete -o filenames -F _vim vim ex vi view rvim rview vimdiff
+
+# vim: set ft=sh sw=4 et sts=4 :
diff --git a/app-editors/vim-classic/metadata.xml b/app-editors/vim-classic/metadata.xml
new file mode 100644
index 000000000000..15614d977135
--- /dev/null
+++ b/app-editors/vim-classic/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>bacs@librecast.net</email>
+ <name>Brett A C Sheffield</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>vim@gentoo.org</email>
+ <name>Gentoo Vim Project</name>
+ </maintainer>
+ <use>
+ <flag name="cscope">Enable cscope interface</flag>
+ <flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg>
+ </flag>
+ <flag name="terminal">Enable terminal emulation support</flag>
+ <flag name="vim-pager">Install vimpager and vimmanpager links</flag>
+ <flag name="X">Link console vim against X11 libraries to enable title and
+ clipboard features in xterm</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/app-editors/vim-classic/vim-classic-8.3.0.ebuild b/app-editors/vim-classic/vim-classic-8.3.0.ebuild
new file mode 100644
index 000000000000..f313e333612b
--- /dev/null
+++ b/app-editors/vim-classic/vim-classic-8.3.0.ebuild
@@ -0,0 +1,382 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-classic-core and app-editors/gvim-classic
+
+VIM_VERSION="8.3"
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+USE_RUBY="ruby32 ruby33"
+GENTOO_DEPEND_ON_PERL=no
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc
+inherit bash-completion-r1 flag-o-matic lua-single desktop perl-module python-single-r1 \
+ ruby-single toolchain-funcs verify-sig vim-doc xdg-utils
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic"
+else
+ SRC_URI="
+ https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ verify-sig? (
+ https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig
+ -> ${P}.tar.gz.sig
+ )
+ "
+ KEYWORDS="~amd64"
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) "
+fi
+
+DESCRIPTION="Long term support Vim text editor"
+HOMEPAGE="https://vim-classic.org/"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="acl cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager X ${GENTOO_PERL_USESTRING}"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ vim-pager? ( !minimal )
+"
+
+RDEPEND="
+ !app-editors/vim
+ ~app-editors/vim-classic-core-${PV}
+ >=app-eselect/eselect-vi-1.1
+ >=sys-libs/ncurses-5.2-r2:0=
+ acl? ( kernel_linux? ( sys-apps/acl ) )
+ cscope? ( dev-util/cscope )
+ gpm? ( >=sys-libs/gpm-1.19.3 )
+ lua? (
+ ${LUA_DEPS}
+ $(lua_gen_impl_dep 'deprecated' lua5-1)
+ )
+ nls? ( virtual/libintl )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ racket? ( dev-scheme/racket )
+ ruby? ( ${RUBY_DEPS} )
+ selinux? ( sys-libs/libselinux )
+ sound? ( media-libs/libcanberra )
+ tcl? ( dev-lang/tcl:0= )
+ vim-pager? ( app-editors/vim-classic-core[-minimal] )
+ X? ( x11-libs/libXt )
+"
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+# configure runs the Lua interpreter
+BDEPEND+="
+ dev-build/autoconf
+ lua? ( ${LUA_DEPS} )
+ nls? ( sys-devel/gettext )
+"
+PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
+
+# platform-specific checks (bug #898450 #898452):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+ if [[ ${PV} != 9999* ]] ; then
+ mv "${WORKDIR}/vim-classic-v${PV}" "${WORKDIR}/vim-classic-${PV}" || die
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i -e \
+ '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i -e \
+ 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # conditionally make the manpager.sh script
+ if use vim-pager; then
+ cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
+ #!/bin/sh
+ sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
+ vim \\
+ -c 'let no_plugin_maps = 1' \\
+ -c 'set nolist nomod ft=man ts=8' \\
+ -c 'let g:showmarks_enable=0' \\
+ -c 'runtime! macros/less.vim' -
+ _EOF_
+ fi
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug 18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i -e \
+ 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+ rm src/auto/configure || die "rm failed"
+
+ # --with-features=huge forces on cscope even if we --disable it. We need
+ # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
+ if ! use cscope; then
+ sed -i -e \
+ '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
+ fi
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug #24447). The hvc
+ # things are for ppc64, see bug #86433.
+ local file
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e ${file} ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ local myconf=(
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)"
+ --enable-gui=no
+ --disable-darwin
+ )
+
+ if use minimal; then
+ myconf+=(
+ --with-features=tiny
+ --disable-nls
+ --disable-canberra
+ --disable-acl
+ --without-x
+ --disable-luainterp
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-mzschemeinterp
+ --disable-rubyinterp
+ --disable-selinux
+ --disable-tclinterp
+ --disable-gpm
+ )
+ else
+ use debug && append-flags "-DDEBUG"
+
+ myconf+=(
+ --with-features=huge
+ $(use_enable sound canberra)
+ $(use_enable acl)
+ $(use_enable cscope)
+ $(use_enable gpm)
+ $(use_enable nls)
+ $(use_enable perl perlinterp)
+ $(use_enable python python3interp)
+ $(use_with python python3-command "${PYTHON}")
+ $(use_enable racket mzschemeinterp)
+ $(use_enable ruby rubyinterp)
+ $(use_enable selinux)
+ $(use_enable tcl tclinterp)
+ $(use_enable terminal)
+ )
+
+ if use lua; then
+ # -DLUA_COMPAT_OPENLIB=1 is required to enable the
+ # deprecated (in 5.1) luaL_openlib API (#874690)
+ use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
+
+ myconf+=(
+ --enable-luainterp
+ $(use_with lua_single_target_luajit luajit)
+ --with-lua-prefix="${EPREFIX}/usr"
+ )
+ fi
+
+ # don't test USE=X here ... see bug #19115
+ # but need to provide a way to link against X ... see bug #20093
+ myconf+=(
+ $(use_with X x)
+ )
+ fi
+
+ # let package manager strip binaries
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ # keep prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ # The following allows emake to be used
+ emake -j1 -C src auto/osdef.h objects
+
+ emake
+}
+
+src_test() {
+ einfo
+ einfo "Starting vim tests. Several error messages will be shown"
+ einfo "while the tests run. This is normal behaviour and does not"
+ einfo "indicate a fault."
+ einfo
+ ewarn "If the tests fail, your terminal may be left in a strange"
+ ewarn "state. Usually, running 'reset' will fix this."
+ einfo
+
+ # Don't let vim talk to X
+ unset DISPLAY
+
+ # Arch and opensuse seem to do this and at this point, I'm willing
+ # to try anything to avoid random test hangs!
+ export TERM=xterm
+
+ # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
+ # for more information on test variables we can use.
+ # Note that certain variables need vim-compatible regex (not PCRE), see e.g.
+ # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
+ #
+ # Skipped tests:
+ # - Test_expand_star_star
+ # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
+ # - Test_exrc
+ # Looks in wrong location? (bug #742710)
+ # - Test_job_tty_in_out
+ # Fragile and depends on TERM(?)
+ # - Test_spelldump_bang
+ # Hangs.
+ # - Test_fuzzy_completion_env
+ # Too sensitive to leaked environment variables.
+ # - Test_term_mouse_multiple_clicks_to_select_mode
+ # Hangs.
+ # - Test_spelldump
+ # Hangs.
+ # - Test_glvs_*
+ # Depends on local network.
+ export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)'
+
+ # Don't do additional GUI tests.
+ emake -j1 -C src/testdir nongui
+}
+
+# Call eselect vi update with --if-unset
+# to respect user's choice (bug #187449)
+eselect_vi_update() {
+ ebegin "Calling eselect vi update"
+ eselect vi update --if-unset
+ eend $?
+}
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
+ # managed by eselect-vi
+ dobin src/vim
+ if ! use minimal ; then
+ dosym vim /usr/bin/vimdiff
+ fi
+ dosym vim /usr/bin/rvim
+ dosym vim /usr/bin/rview
+ if use vim-pager ; then
+ dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
+ dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
+ insinto ${vimfiles}/macros
+ doins runtime/macros/manpager.sh
+ fperms a+x ${vimfiles}/macros/manpager.sh
+ fi
+
+ domenu runtime/vim.desktop
+
+ newbashcomp "${FILESDIR}"/${PN}-completion vim
+
+ # keep in sync with 'complete ... -F' list
+ bashcomp_alias vim ex vi view rvim rview vimdiff
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update desktop file mime cache
+ xdg_desktop_database_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
+
+pkg_postrm() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update desktop file mime cache
+ xdg_desktop_database_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
diff --git a/app-editors/vim-classic/vim-classic-9999.ebuild b/app-editors/vim-classic/vim-classic-9999.ebuild
new file mode 100644
index 000000000000..f313e333612b
--- /dev/null
+++ b/app-editors/vim-classic/vim-classic-9999.ebuild
@@ -0,0 +1,382 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-classic-core and app-editors/gvim-classic
+
+VIM_VERSION="8.3"
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+USE_RUBY="ruby32 ruby33"
+GENTOO_DEPEND_ON_PERL=no
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc
+inherit bash-completion-r1 flag-o-matic lua-single desktop perl-module python-single-r1 \
+ ruby-single toolchain-funcs verify-sig vim-doc xdg-utils
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic"
+else
+ SRC_URI="
+ https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ verify-sig? (
+ https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig
+ -> ${P}.tar.gz.sig
+ )
+ "
+ KEYWORDS="~amd64"
+ BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) "
+fi
+
+DESCRIPTION="Long term support Vim text editor"
+HOMEPAGE="https://vim-classic.org/"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="acl cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager X ${GENTOO_PERL_USESTRING}"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ vim-pager? ( !minimal )
+"
+
+RDEPEND="
+ !app-editors/vim
+ ~app-editors/vim-classic-core-${PV}
+ >=app-eselect/eselect-vi-1.1
+ >=sys-libs/ncurses-5.2-r2:0=
+ acl? ( kernel_linux? ( sys-apps/acl ) )
+ cscope? ( dev-util/cscope )
+ gpm? ( >=sys-libs/gpm-1.19.3 )
+ lua? (
+ ${LUA_DEPS}
+ $(lua_gen_impl_dep 'deprecated' lua5-1)
+ )
+ nls? ( virtual/libintl )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ racket? ( dev-scheme/racket )
+ ruby? ( ${RUBY_DEPS} )
+ selinux? ( sys-libs/libselinux )
+ sound? ( media-libs/libcanberra )
+ tcl? ( dev-lang/tcl:0= )
+ vim-pager? ( app-editors/vim-classic-core[-minimal] )
+ X? ( x11-libs/libXt )
+"
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+# configure runs the Lua interpreter
+BDEPEND+="
+ dev-build/autoconf
+ lua? ( ${LUA_DEPS} )
+ nls? ( sys-devel/gettext )
+"
+PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
+
+# platform-specific checks (bug #898450 #898452):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+ if [[ ${PV} != 9999* ]] ; then
+ mv "${WORKDIR}/vim-classic-v${PV}" "${WORKDIR}/vim-classic-${PV}" || die
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i -e \
+ '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i -e \
+ 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # conditionally make the manpager.sh script
+ if use vim-pager; then
+ cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
+ #!/bin/sh
+ sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
+ vim \\
+ -c 'let no_plugin_maps = 1' \\
+ -c 'set nolist nomod ft=man ts=8' \\
+ -c 'let g:showmarks_enable=0' \\
+ -c 'runtime! macros/less.vim' -
+ _EOF_
+ fi
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug 18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i -e \
+ 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+ rm src/auto/configure || die "rm failed"
+
+ # --with-features=huge forces on cscope even if we --disable it. We need
+ # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
+ if ! use cscope; then
+ sed -i -e \
+ '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope"
+ fi
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug #24447). The hvc
+ # things are for ppc64, see bug #86433.
+ local file
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e ${file} ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ local myconf=(
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)"
+ --enable-gui=no
+ --disable-darwin
+ )
+
+ if use minimal; then
+ myconf+=(
+ --with-features=tiny
+ --disable-nls
+ --disable-canberra
+ --disable-acl
+ --without-x
+ --disable-luainterp
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-mzschemeinterp
+ --disable-rubyinterp
+ --disable-selinux
+ --disable-tclinterp
+ --disable-gpm
+ )
+ else
+ use debug && append-flags "-DDEBUG"
+
+ myconf+=(
+ --with-features=huge
+ $(use_enable sound canberra)
+ $(use_enable acl)
+ $(use_enable cscope)
+ $(use_enable gpm)
+ $(use_enable nls)
+ $(use_enable perl perlinterp)
+ $(use_enable python python3interp)
+ $(use_with python python3-command "${PYTHON}")
+ $(use_enable racket mzschemeinterp)
+ $(use_enable ruby rubyinterp)
+ $(use_enable selinux)
+ $(use_enable tcl tclinterp)
+ $(use_enable terminal)
+ )
+
+ if use lua; then
+ # -DLUA_COMPAT_OPENLIB=1 is required to enable the
+ # deprecated (in 5.1) luaL_openlib API (#874690)
+ use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
+
+ myconf+=(
+ --enable-luainterp
+ $(use_with lua_single_target_luajit luajit)
+ --with-lua-prefix="${EPREFIX}/usr"
+ )
+ fi
+
+ # don't test USE=X here ... see bug #19115
+ # but need to provide a way to link against X ... see bug #20093
+ myconf+=(
+ $(use_with X x)
+ )
+ fi
+
+ # let package manager strip binaries
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ # keep prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ # The following allows emake to be used
+ emake -j1 -C src auto/osdef.h objects
+
+ emake
+}
+
+src_test() {
+ einfo
+ einfo "Starting vim tests. Several error messages will be shown"
+ einfo "while the tests run. This is normal behaviour and does not"
+ einfo "indicate a fault."
+ einfo
+ ewarn "If the tests fail, your terminal may be left in a strange"
+ ewarn "state. Usually, running 'reset' will fix this."
+ einfo
+
+ # Don't let vim talk to X
+ unset DISPLAY
+
+ # Arch and opensuse seem to do this and at this point, I'm willing
+ # to try anything to avoid random test hangs!
+ export TERM=xterm
+
+ # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
+ # for more information on test variables we can use.
+ # Note that certain variables need vim-compatible regex (not PCRE), see e.g.
+ # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
+ #
+ # Skipped tests:
+ # - Test_expand_star_star
+ # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
+ # - Test_exrc
+ # Looks in wrong location? (bug #742710)
+ # - Test_job_tty_in_out
+ # Fragile and depends on TERM(?)
+ # - Test_spelldump_bang
+ # Hangs.
+ # - Test_fuzzy_completion_env
+ # Too sensitive to leaked environment variables.
+ # - Test_term_mouse_multiple_clicks_to_select_mode
+ # Hangs.
+ # - Test_spelldump
+ # Hangs.
+ # - Test_glvs_*
+ # Depends on local network.
+ export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)'
+
+ # Don't do additional GUI tests.
+ emake -j1 -C src/testdir nongui
+}
+
+# Call eselect vi update with --if-unset
+# to respect user's choice (bug #187449)
+eselect_vi_update() {
+ ebegin "Calling eselect vi update"
+ eselect vi update --if-unset
+ eend $?
+}
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
+ # managed by eselect-vi
+ dobin src/vim
+ if ! use minimal ; then
+ dosym vim /usr/bin/vimdiff
+ fi
+ dosym vim /usr/bin/rvim
+ dosym vim /usr/bin/rview
+ if use vim-pager ; then
+ dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
+ dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
+ insinto ${vimfiles}/macros
+ doins runtime/macros/manpager.sh
+ fperms a+x ${vimfiles}/macros/manpager.sh
+ fi
+
+ domenu runtime/vim.desktop
+
+ newbashcomp "${FILESDIR}"/${PN}-completion vim
+
+ # keep in sync with 'complete ... -F' list
+ bashcomp_alias vim ex vi view rvim rview vimdiff
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update desktop file mime cache
+ xdg_desktop_database_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
+
+pkg_postrm() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update desktop file mime cache
+ xdg_desktop_database_update
+
+ # call eselect vi update
+ eselect_vi_update
+}
diff --git a/app-editors/vim-core/Manifest b/app-editors/vim-core/Manifest
index 5d2dad07d4b6..2e778d817f8f 100644
--- a/app-editors/vim-core/Manifest
+++ b/app-editors/vim-core/Manifest
@@ -1,2 +1,4 @@
DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7
+DIST vim-9.2.1119.tar.gz 20196061 BLAKE2B 2ccd209c5b5c8bab08d37147ba33f1d1a0ef2e3d6c5e26e165159bbafee311ccd3b236f852e3e12796e4618476c26985a5eea2a27c31087e2d3c1ee2957da34b SHA512 4939487f25757d571d1dc0bfa4888ebaf5c8799818da1c09e0d4781b3e7b27020d974e4ce3fb6e2c4e61198c09d1a2a51585c965107850c078ef1ea6d33d9d72
DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af
+DIST vim-patches-vim-9.2.1119-patches.tar.bz2 2619 BLAKE2B 32fe08c18bf276a21cb7067cd3f8c61dd07f6e0613e8afe32d4616546e1a93e0b20a3306ee1a695474d660c6ae42cfd9666c9f36f0bfccbb033705598deb0543 SHA512 58fc52058b3404588ca29f85ae1eb2740cba434952b7ad5636f76937f09121fd5d8c026e2f2489277d1ef5fc9a9c8a182dfc86346b233f08269ef6b68a056160
diff --git a/app-editors/vim-core/metadata.xml b/app-editors/vim-core/metadata.xml
index ae7f66852a04..c4211b30921e 100644
--- a/app-editors/vim-core/metadata.xml
+++ b/app-editors/vim-core/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<maintainer type="person" proxied="yes">
<email>xxc3ncoredxx@gmail.com</email>
<name>Oskari Pirhonen</name>
diff --git a/app-editors/vim-core/vim-core-9.2.1119.ebuild b/app-editors/vim-core/vim-core-9.2.1119.ebuild
new file mode 100644
index 000000000000..c2955632ca65
--- /dev/null
+++ b/app-editors/vim-core/vim-core-9.2.1119.ebuild
@@ -0,0 +1,235 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim and app-editors/gvim
+
+VIM_VERSION="9.2"
+VIM_PATCHES_VERSION="9.2.1119"
+inherit desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils
+
+if [[ ${PV} == 9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/vim/vim.git"
+ EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
+else
+ SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
+ https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="vim and gvim shared files"
+HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
+S="${WORKDIR}/vim-${PV}"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="nls acl minimal"
+
+RDEPEND="dev-util/xxd"
+# ncurses is only needed by ./configure, so no subslot operator required
+DEPEND=">=sys-libs/ncurses-5.2-r2:0"
+BDEPEND=">=dev-build/autoconf-2.71"
+
+if [[ ${PV} != 9999* ]]; then
+ # Gentoo patches to fix runtime issues, cross-compile errors, etc
+ PATCHES=(
+ "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
+ )
+fi
+
+# unbundle xxd
+PATCHES+=( "${FILESDIR}/vim-core-9.1.1652-r1-unbundle-xxd.patch" )
+
+# platform-specific checks (bug #898406):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i \
+ -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "sed failed"
+
+ # See bug #77841. We remove this file after the tarball extraction.
+ rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
+ # everyone since previous flag filtering bugs have turned out to affect
+ # multiple archs...
+ replace-flags -O3 -O2
+
+ # Fix bug #18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+
+ # Remove src/auto/configure file.
+ rm -v src/auto/configure || die "rm configure failed"
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e "${file}" ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ # Let Portage do the stripping. Some people like that.
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ local myconf=(
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)"
+ --enable-gui=no
+ --disable-hardcopy-pango
+ --without-wayland
+ --without-x
+ --disable-darwin
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-rubyinterp
+ --disable-gpm
+ --disable-selinux
+ $(use_enable nls)
+ $(use_enable acl)
+ )
+
+ # Keep Gentoo Prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake -j1 -C src auto/osdef.h objects
+}
+
+src_test() { :; }
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dodir /usr/{bin,share/{man/man1,vim}}
+ emake -C src \
+ installruntime \
+ installmanlinks \
+ installmacros \
+ installtutor \
+ installtutorbin \
+ installtools \
+ install-languages \
+ DESTDIR="${D}" \
+ BINDIR="${EPREFIX}"/usr/bin \
+ MANDIR="${EPREFIX}"/usr/share/man \
+ DATADIR="${EPREFIX}"/usr/share
+
+ keepdir ${vimfiles}/keymap
+
+ # default vimrc is installed by vim-core since it applies to
+ # both vim and gvim
+ insinto /etc/vim/
+ newins "${FILESDIR}"/vimrc-r8 vimrc
+ eprefixify "${ED}"/etc/vim/vimrc
+
+ if use minimal; then
+ # To save space, install only a subset of the files.
+ # Helps minimalize the livecd, bug 65144.
+ rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
+ rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
+ rm -v "${ED}"/usr/bin/vimtutor || die
+
+ for f in "${ED}${vimfiles}"/colors/*.vim; do
+ if [[ ${f} != */@(default).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+
+ for f in "${ED}${vimfiles}"/syntax/*.vim; do
+ if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+ fi
+
+ # install gvim icon since both vim/gvim desktop files reference it
+ doicon -s scalable "${FILESDIR}"/gvim.svg
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ # Update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
diff --git a/app-editors/vim/Manifest b/app-editors/vim/Manifest
index 5d2dad07d4b6..2e778d817f8f 100644
--- a/app-editors/vim/Manifest
+++ b/app-editors/vim/Manifest
@@ -1,2 +1,4 @@
DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7
+DIST vim-9.2.1119.tar.gz 20196061 BLAKE2B 2ccd209c5b5c8bab08d37147ba33f1d1a0ef2e3d6c5e26e165159bbafee311ccd3b236f852e3e12796e4618476c26985a5eea2a27c31087e2d3c1ee2957da34b SHA512 4939487f25757d571d1dc0bfa4888ebaf5c8799818da1c09e0d4781b3e7b27020d974e4ce3fb6e2c4e61198c09d1a2a51585c965107850c078ef1ea6d33d9d72
DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af
+DIST vim-patches-vim-9.2.1119-patches.tar.bz2 2619 BLAKE2B 32fe08c18bf276a21cb7067cd3f8c61dd07f6e0613e8afe32d4616546e1a93e0b20a3306ee1a695474d660c6ae42cfd9666c9f36f0bfccbb033705598deb0543 SHA512 58fc52058b3404588ca29f85ae1eb2740cba434952b7ad5636f76937f09121fd5d8c026e2f2489277d1ef5fc9a9c8a182dfc86346b233f08269ef6b68a056160
diff --git a/app-editors/vim/metadata.xml b/app-editors/vim/metadata.xml
index 0ee0c646e63e..a6c1c9674b88 100644
--- a/app-editors/vim/metadata.xml
+++ b/app-editors/vim/metadata.xml
@@ -1,6 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
<pkgmetadata>
+ <maintainer type="person">
+ <email>arthurzam@gentoo.org</email>
+ <name>Arthur Zamarin</name>
+ </maintainer>
<maintainer type="person" proxied="yes">
<email>xxc3ncoredxx@gmail.com</email>
<name>Oskari Pirhonen</name>
@@ -16,6 +20,8 @@
<use>
<flag name="crypt">Use <pkg>dev-libs/libsodium</pkg> for crypto support</flag>
<flag name="cscope">Enable cscope interface</flag>
+ <flag name="pango">Render |:hardcopy| output with <pkg>x11-libs/pango</pkg>
+ and <pkg>x11-libs/cairo</pkg> rather than Vim's own PostScript generator</flag>
<flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg>
</flag>
<flag name="terminal">Enable terminal emulation support</flag>
diff --git a/app-editors/vim/vim-9.2.1119.ebuild b/app-editors/vim/vim-9.2.1119.ebuild
new file mode 100644
index 000000000000..3a7fe745088f
--- /dev/null
+++ b/app-editors/vim/vim-9.2.1119.ebuild
@@ -0,0 +1,400 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim-core and app-editors/gvim
+
+VIM_VERSION="9.2"
+VIM_PATCHES_VERSION="9.2.1119"
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="threads(+)"
+USE_RUBY="ruby32 ruby33"
+GENTOO_DEPEND_ON_PERL=no
+
+inherit vim-doc flag-o-matic lua-single perl-module python-single-r1 ruby-single shell-completion toolchain-funcs desktop xdg-utils
+
+if [[ ${PV} == 9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/vim/vim.git"
+else
+ SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="Vim, an improved vi-style text editor"
+HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="X acl crypt cscope debug gpm lua minimal nls pango perl python racket ruby selinux sound tcl terminal vim-pager wayland ${GENTOO_PERL_USESTRING}"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ pango? ( !minimal )
+ vim-pager? ( !minimal )
+"
+
+RDEPEND="
+ >=app-eselect/eselect-vi-1.1
+ >=sys-libs/ncurses-5.2-r2:0=
+ nls? ( virtual/libintl )
+ acl? ( kernel_linux? ( sys-apps/acl ) )
+ pango? (
+ x11-libs/cairo
+ >=x11-libs/pango-1.44
+ )
+ crypt? ( dev-libs/libsodium:= )
+ cscope? ( dev-util/cscope )
+ gpm? ( >=sys-libs/gpm-1.19.3 )
+ lua? ( ${LUA_DEPS}
+ $(lua_gen_impl_dep 'deprecated' lua5-1)
+ )
+ ~app-editors/vim-core-${PV}
+ vim-pager? ( app-editors/vim-core[-minimal] )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ racket? ( dev-scheme/racket )
+ ruby? ( ${RUBY_DEPS} )
+ selinux? ( sys-libs/libselinux )
+ sound? ( media-libs/libcanberra )
+ tcl? ( dev-lang/tcl:0= )
+ wayland? ( dev-libs/wayland )
+ X? ( x11-libs/libXt )
+"
+DEPEND="${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+# configure runs the Lua interpreter
+BDEPEND="
+ >=dev-build/autoconf-2.71
+ lua? ( ${LUA_DEPS} )
+ nls? ( sys-devel/gettext )
+"
+PDEPEND="!minimal? ( app-vim/gentoo-syntax )"
+
+if [[ ${PV} != 9999* ]]; then
+ # Gentoo patches to fix runtime issues, cross-compile errors, etc
+ PATCHES=(
+ "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
+ )
+fi
+
+# platform-specific checks (bug #898452):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i -e \
+ '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "mve.awk sed failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \
+ >> "${S}"/src/feature.h || die "echo failed"
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i -e \
+ 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # conditionally make the manpager.sh script
+ if use vim-pager; then
+ cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed"
+ #!/bin/sh
+ sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\
+ vim \\
+ -c 'let no_plugin_maps = 1' \\
+ -c 'set nolist nomod ft=man ts=8' \\
+ -c 'let g:showmarks_enable=0' \\
+ -c 'runtime! macros/less.vim' -
+ _EOF_
+ fi
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug 18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+ rm src/auto/configure || die "rm failed"
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug #24447). The hvc
+ # things are for ppc64, see bug #86433.
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e "${file}" ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ local myconf=()
+ if use minimal; then
+ myconf=(
+ --with-features=tiny
+ --disable-hardcopy-pango
+ --disable-nls
+ --disable-canberra
+ --disable-acl
+ --enable-gui=no
+ --without-wayland
+ --without-x
+ --disable-darwin
+ --disable-luainterp
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-mzschemeinterp
+ --disable-rubyinterp
+ --disable-selinux
+ --disable-tclinterp
+ --disable-gpm
+ )
+ else
+ use debug && append-flags "-DDEBUG"
+
+ myconf=(
+ --with-features=huge
+ $(use_enable sound canberra)
+ $(use_enable acl)
+ $(use_enable crypt libsodium)
+ $(use_enable cscope)
+ $(use_enable gpm)
+ $(use_enable nls)
+ # Render :hardcopy with system Pango/Cairo instead of Vim's
+ # own PostScript generator: proper Unicode, and PDF output.
+ $(use_enable pango hardcopy-pango)
+ $(use_enable perl perlinterp)
+ $(use_enable python python3interp)
+ $(use_with python python3-command "${PYTHON}")
+ $(use_enable racket mzschemeinterp)
+ $(use_enable ruby rubyinterp)
+ $(use_enable selinux)
+ $(use_enable tcl tclinterp)
+ $(use_enable terminal)
+ $(use_with wayland)
+ )
+
+ # --with-features=huge forces on cscope even if we --disable it. We need
+ # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm)
+ if ! use cscope; then
+ sed -i -e \
+ '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed"
+ fi
+
+ if use lua; then
+ # -DLUA_COMPAT_OPENLIB=1 is required to enable the
+ # deprecated (in 5.1) luaL_openlib API (#874690)
+ use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1
+
+ myconf+=(
+ --enable-luainterp
+ $(use_with lua_single_target_luajit luajit)
+ --with-lua-prefix="${EPREFIX}/usr"
+ )
+ fi
+
+ # don't test USE=X here ... see bug #19115
+ # but need to provide a way to link against X ... see bug #20093
+ myconf+=(
+ --enable-gui=no
+ --disable-darwin
+ $(use_with X x)
+ )
+ fi
+
+ # let package manager strip binaries
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ # keep prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf \
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)" \
+ "${myconf[@]}"
+}
+
+src_compile() {
+ # The following allows emake to be used
+ emake -j1 -C src auto/osdef.h objects
+
+ emake
+}
+
+src_test() {
+ einfo
+ einfo "Starting vim tests. Several error messages will be shown"
+ einfo "while the tests run. This is normal behaviour and does not"
+ einfo "indicate a fault."
+ einfo
+ ewarn "If the tests fail, your terminal may be left in a strange"
+ ewarn "state. Usually, running 'reset' will fix this."
+ einfo
+
+ # Don't let vim talk to X
+ unset DISPLAY
+
+ # Arch and opensuse seem to do this and at this point, I'm willing
+ # to try anything to avoid random test hangs!
+ export TERM=xterm
+
+ # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5
+ # for more information on test variables we can use.
+ # Note that certain variables need vim-compatible regex (not PCRE), see e.g.
+ # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml.
+ local skip_tests=(
+ # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680)
+ Test_expand_star_star
+ # Looks in wrong location? (bug #742710)
+ Test_exrc
+ # Fragile and depends on TERM(?)
+ Test_job_tty_in_out
+ # Hangs.
+ Test_spelldump_bang
+ # Too sensitive to leaked environment variables.
+ Test_fuzzy_completion_env
+ # Hangs.
+ Test_term_mouse_multiple_clicks_to_select_mode
+ # Hangs.
+ Test_spelldump
+ # Depends on local network.
+ Test_glvs_
+ # sensitive to the terminal geometry
+ Test_splitkeep_screen_smoothscroll
+ )
+ # \v (very magic) so the list can be joined with a plain '|'
+ local -x TEST_SKIP_PAT="\\v($(IFS='|'; echo "${skip_tests[*]}"))"
+
+ local skip_test_files=(
+ # TODO
+ test_crypt.vim
+ # Tests needing X
+ test_clientserver.vim
+ test_vim9_builtin.vim
+ )
+ local f
+ for f in "${skip_test_files[@]}"; do
+ echo "throw 'Skipped: needs X'" > "src/testdir/${f}" || die
+ done
+
+ emake -j1 -C src/testdir nongui
+}
+
+# Call eselect vi update with --if-unset
+# to respect user's choice (bug #187449)
+eselect_vi_update() {
+ ebegin "Calling eselect vi update"
+ eselect vi update --if-unset
+ eend $?
+}
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are
+ # managed by eselect-vi
+ dobin src/vim
+ if ! use minimal ; then
+ dosym vim /usr/bin/vimdiff
+ fi
+ dosym vim /usr/bin/rvim
+ dosym vim /usr/bin/rview
+ if use vim-pager ; then
+ dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager
+ dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager
+ insinto ${vimfiles}/macros
+ doins runtime/macros/manpager.sh
+ fperms a+x ${vimfiles}/macros/manpager.sh
+ fi
+
+ domenu runtime/vim.desktop
+
+ newbashcomp "${FILESDIR}"/${PN}-completion ${PN}
+
+ # keep in sync with 'complete ... -F' list
+ bashcomp_alias vim ex vi view rvim rview vimdiff
+}
+
+pkg_postinst() {
+ # Update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # Call eselect vi update
+ eselect_vi_update
+
+ # update desktop file mime cache
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ # Update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # Call eselect vi update
+ eselect_vi_update
+
+ # update desktop file mime cache
+ xdg_desktop_database_update
+}
diff --git a/app-eselect/eselect-pinentry/eselect-pinentry-0.7.5.ebuild b/app-eselect/eselect-pinentry/eselect-pinentry-0.7.5.ebuild
index 25a23ca03d2d..b6917b3b418c 100644
--- a/app-eselect/eselect-pinentry/eselect-pinentry-0.7.5.ebuild
+++ b/app-eselect/eselect-pinentry/eselect-pinentry-0.7.5.ebuild
@@ -9,7 +9,7 @@ S="${WORKDIR}"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
RDEPEND=">=app-eselect/eselect-lib-bin-symlink-0.1.1"
diff --git a/app-misc/evtest/evtest-1.36.ebuild b/app-misc/evtest/evtest-1.36.ebuild
index ef41482a07f5..d740bc7d5b84 100644
--- a/app-misc/evtest/evtest-1.36.ebuild
+++ b/app-misc/evtest/evtest-1.36.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
@@ -12,7 +12,7 @@ S="${WORKDIR}/${PN}-${P}"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
BDEPEND="
app-text/asciidoc
diff --git a/app-misc/jot/jot-9.0-r2.ebuild b/app-misc/jot/jot-9.0-r2.ebuild
index dc3323b878c8..3ebe9ca4d381 100644
--- a/app-misc/jot/jot-9.0-r2.ebuild
+++ b/app-misc/jot/jot-9.0-r2.ebuild
@@ -14,7 +14,7 @@ S="${WORKDIR}/athena-${P}"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~mips ppc ~ppc64 ~riscv x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~mips ppc ~ppc64 ~riscv ~s390 x86"
src_prepare() {
default
diff --git a/app-misc/lockfile-progs/lockfile-progs-0.2.0.ebuild b/app-misc/lockfile-progs/lockfile-progs-0.2.0.ebuild
index d973d6de2036..137cab179777 100644
--- a/app-misc/lockfile-progs/lockfile-progs-0.2.0.ebuild
+++ b/app-misc/lockfile-progs/lockfile-progs-0.2.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
@@ -9,7 +9,7 @@ SRC_URI="mirror://debian/pool/main/l/${PN}/${PN}_${PV}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~mips ~ppc ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 arm ~mips ~ppc ~s390 ~sparc ~x86"
DEPEND="net-libs/liblockfile"
RDEPEND="${DEPEND}"
diff --git a/app-mobilephone/gammu/gammu-1.44.1.ebuild b/app-mobilephone/gammu/gammu-1.44.1.ebuild
index cb182934ffae..fb6cbf42b6f0 100644
--- a/app-mobilephone/gammu/gammu-1.44.1.ebuild
+++ b/app-mobilephone/gammu/gammu-1.44.1.ebuild
@@ -12,7 +12,7 @@ S=${WORKDIR}/${P^}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 x86"
+KEYWORDS="amd64 x86"
IUSE="bluetooth curl dbi debug irda mysql nls odbc postgres usb"
COMMON_DEPEND="
diff --git a/app-office/scribus/Manifest b/app-office/scribus/Manifest
index f0534a1c2fd7..0511a092ec53 100644
--- a/app-office/scribus/Manifest
+++ b/app-office/scribus/Manifest
@@ -1,2 +1 @@
-DIST scribus-1.7.2.tar.xz 97976736 BLAKE2B 06a4360a05f1ce8deec6178f0ac53859663b7a65aa6c6367e82732e5c3f8f577990830ddd17bb530385961f5fae54e009dc051003fdd07355d1c53aacc0c607e SHA512 9ced669fe3f337b6136840027a8c10d8fa699d014519960917a1f38c4de1752299c65a35c3c3f1feec990f930f5778e5f02e7549148a0320c209713bdddb896a
DIST scribus-1.7.3.tar.xz 98101324 BLAKE2B 4af3b3531c3eaa381c26ab5dc5d5637eb99d8886d27259042b86a9fe7ec37cd919de817a4e71f1561e9f96b953058ddd751f75bb09e306f2b9ad8a9e6b311057 SHA512 50f568b76829deb89d2fafcaa4d9f6655876dfef1bcefd3f547ede15b704a54c9c95d7de379312a6351c698893ac00f7fd56784436f0bf00631640e42e2b155e
diff --git a/app-office/scribus/files/scribus-1.7.2-poppler-26.02.patch b/app-office/scribus/files/scribus-1.7.2-poppler-26.02.patch
deleted file mode 100644
index e3f3252c2d16..000000000000
--- a/app-office/scribus/files/scribus-1.7.2-poppler-26.02.patch
+++ /dev/null
@@ -1,407 +0,0 @@
---- Scribus/scribus/plugins/import/pdf/importpdf.cpp
-+++ Scribus/scribus/plugins/import/pdf/importpdf.cpp
-@@ -79,7 +79,11 @@
- bgColor[0] = 255;
- bgColor[1] = 255;
- bgColor[2] = 255;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ SplashOutputDev dev(splashModeXBGR8, 4, bgColor, true);
-+#else
- SplashOutputDev dev(splashModeXBGR8, 4, false, bgColor, true);
-+#endif
- dev.setVectorAntialias(true);
- dev.setFreeTypeHinting(true, false);
- dev.startDoc(&pdfDoc);
-@@ -154,20 +158,17 @@
- }
- double docWidth = PrefsManager::instance().appPrefs.docSetupPrefs.pageWidth;
- double docHeight = PrefsManager::instance().appPrefs.docSetupPrefs.pageHeight;
-- if (!m_interactive || (flags & LoadSavePlugin::lfInsertPage))
-+ if (m_Doc && (!m_interactive || (flags & LoadSavePlugin::lfInsertPage)))
- {
- m_Doc->setPage(docWidth, docHeight, 0, 0, 0, 0, 0, 0, false, false);
- m_Doc->addPage(0);
- m_Doc->view()->addPage(0, true);
- }
-- else
-+ else if (!m_Doc || (flags & LoadSavePlugin::lfCreateDoc))
- {
-- if (!m_Doc || (flags & LoadSavePlugin::lfCreateDoc))
-- {
-- m_Doc = ScCore->primaryMainWindow()->doFileNew(docWidth, docHeight, 0, 0, 0, 0, 0, 0, false, 0, 0, 0, 0, 1, "Custom", true);
-- ScCore->primaryMainWindow()->HaveNewDoc();
-- ret = true;
-- }
-+ m_Doc = ScCore->primaryMainWindow()->doFileNew(docWidth, docHeight, 0, 0, 0, 0, 0, 0, false, 0, 0, 0, 0, 1, "Custom", true);
-+ ScCore->primaryMainWindow()->HaveNewDoc();
-+ ret = true;
- }
-
- if (ret || !m_interactive)
-@@ -801,11 +802,15 @@
- bgColor[0] = 255;
- bgColor[1] = 255;
- bgColor[2] = 255;
-- SplashOutputDev *dev = new SplashOutputDev(splashModeXBGR8, 4, false, bgColor, true);
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ auto dev = std::make_unique<SplashOutputDev>(splashModeXBGR8, 4, bgColor, true);
-+#else
-+ auto dev = std::make_unique<SplashOutputDev>(splashModeXBGR8, 4, false, bgColor, true);
-+#endif
- dev->setVectorAntialias(true);
- dev->setFreeTypeHinting(true, false);
- dev->startDoc(m_pdfDoc);
-- m_pdfDoc->displayPage(dev, pgNum, hDPI, vDPI, 0, true, false, false);
-+ m_pdfDoc->displayPage(dev.get(), pgNum, hDPI, vDPI, 0, true, false, false);
- SplashBitmap *bitmap = dev->getBitmap();
- int bw = bitmap->getWidth();
- int bh = bitmap->getHeight();
-@@ -843,7 +848,6 @@
- pp.drawRect(cRect);
- pp.end();
- }
-- delete dev;
- return image;
- }
-
---- Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
-+++ Scribus/scribus/plugins/import/pdf/pdftextrecognition.cpp
-@@ -81,7 +81,7 @@
- */
- PdfGlyph PdfTextRecognition::AddCharCommon(GfxState* state, double x, double y, double dx, double dy, Unicode const* u, int uLen)
- {
-- const double * ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- QTransform trans(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- QPointF charDelta1 = trans.map(QPointF(0.0, 0.0));
- QPointF charDelta2 = trans.map(QPointF(dx, dy));
-@@ -121,7 +121,7 @@
- setCharMode(AddCharMode::ADDBASICCHAR);
-
- //only need to be called for the very first point
-- const double * ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- QTransform trans(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- QPointF glyphPos = trans.map(QPointF(x, y));
-
-@@ -136,7 +136,7 @@
- */
- PdfGlyph PdfTextRecognition::AddBasicChar(GfxState* state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, Unicode const* u, int uLen)
- {
-- const double * ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- QTransform trans(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
-
- PdfGlyph newGlyph = AddCharCommon(state, x, y, dx, dy, u, uLen);
-@@ -461,7 +461,7 @@
- */
- void PdfTextOutputDev::updateTextPos(GfxState* state)
- {
-- const double * ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- QTransform trans(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
-
- QPointF newPosition = trans.map(QPointF(state->getCurX(), state->getCurY()));
---- Scribus/scribus/plugins/import/pdf/slaoutput.cpp
-+++ Scribus/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -1535,7 +1535,7 @@
-
- void SlaOutputDev::adjustClip(GfxState *state, Qt::FillRule fillRule)
- {
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- QString output = convertPath(state->getPath());
- if (output.isEmpty())
-@@ -1563,7 +1563,7 @@
- void SlaOutputDev::stroke(GfxState *state)
- {
- // qDebug() << "Stroke";
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- double xCoor = m_doc->currentPage()->xOffset();
- double yCoor = m_doc->currentPage()->yOffset();
-@@ -1671,8 +1671,7 @@
-
- void SlaOutputDev::createFillItem(GfxState *state, Qt::FillRule fillRule)
- {
-- const double *ctm;
-- ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- double xCoor = m_doc->currentPage()->xOffset();
- double yCoor = m_doc->currentPage()->yOffset();
-@@ -1799,7 +1798,7 @@
- out = intersection(m_graphicStack.top().clipPath, out);
- crect = out.boundingRect();
- }
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- FPointArray gr;
- gr.addPoint(GrStartX, GrStartY);
-@@ -1938,7 +1937,7 @@
- double GrFocalY = y1;
- GrEndX = GrFocalX + r1;
- GrEndY = GrFocalY;
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- FPointArray gr;
- gr.addPoint(GrStartX, GrStartY);
-@@ -2023,7 +2022,7 @@
- output += QString("Z");
- m_pathIsClosed = true;
- m_coords = output;
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- const auto& graphicState = m_graphicStack.top();
- int z = m_doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, xCoor + crect.x(), yCoor + crect.y(), crect.width(), crect.height(), 0, graphicState.fillColor, CommonStrings::None);
-@@ -2104,7 +2103,7 @@
- output += QString("Z");
- m_pathIsClosed = true;
- m_coords = output;
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- const auto& graphicState = m_graphicStack.top();
- int z = m_doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, xCoor + crect.x(), yCoor + crect.y(), crect.width(), crect.height(), 0, graphicState.fillColor, CommonStrings::None);
-@@ -2265,7 +2264,7 @@
- box.x2 = bbox[2];
- box.y2 = bbox[3];
-
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- QTransform mm(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5]);
- QTransform mmx = mm * m_ctm;
-@@ -2712,7 +2711,7 @@
- void SlaOutputDev::createImageFrame(QImage& image, GfxState *state, int numColorComponents)
- {
- // qDebug() << "SlaOutputDev::createImageFrame";
-- const double *ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- double xCoor = m_doc->currentPage()->xOffset();
- double yCoor = m_doc->currentPage()->yOffset();
-
-@@ -3002,8 +3001,16 @@
- #else
- SlaOutFontFileID *id;
- #endif
-- SplashFontFile *fontFile;
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ std::shared_ptr<SplashFontFile> fontFile;
-+#else
-+ SplashFontFile *fontFile = nullptr;
-+#endif
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ std::unique_ptr<SplashFontSrc> fontsrc;
-+#else
- SplashFontSrc *fontsrc = nullptr;
-+#endif
- Object refObj, strObj;
- #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
- std::vector<int> codeToGID;
-@@ -3010,7 +3017,11 @@
- #else
- int *codeToGID = nullptr;
- #endif
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ std::array<double, 6> textMat;
-+#else
- const double *textMat = nullptr;
-+#endif
- double m11, m12, m21, m22, fontSize;
- #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 1, 0)
- std::array<SplashCoord, 4> mat = { 1.0, 0.0, 0.0, 1.0 };
-@@ -3070,16 +3081,29 @@
- fontType = fontLoc->fontType;
- }
-
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!fileName.empty())
-+ fontsrc = std::make_unique<SplashFontSrc>(fileName);
-+ else
-+ fontsrc = std::make_unique<SplashFontSrc>(std::move(tmpBuf.value()));
-+#else
- fontsrc = new SplashFontSrc;
- if (!fileName.empty())
- fontsrc->setFile(fileName);
- else
- fontsrc->setBuf(std::move(tmpBuf.value()));
-+#endif
-
- // load the font file
- switch (fontType) {
- case fontType1:
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadType1Font(std::move(id), std::move(fontsrc), (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
- if (!(fontFile = m_fontEngine->loadType1Font(std::move(id), fontsrc, (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-@@ -3094,7 +3118,13 @@
- #endif
- break;
- case fontType1C:
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadType1CFont(std::move(id), std::move(fontsrc), (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
- if (!(fontFile = m_fontEngine->loadType1CFont(std::move(id), fontsrc, (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-@@ -3109,7 +3139,13 @@
- #endif
- break;
- case fontType1COT:
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(std::move(id), std::move(fontsrc), (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
- if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(std::move(id), fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding(), fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-@@ -3125,10 +3161,15 @@
- break;
- case fontTrueType:
- case fontTrueTypeOT:
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 7, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
- if (!fileName.empty())
- ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum);
- else
-+ ff = FoFiTrueType::make(fontsrc->buf(), fontLoc->fontNum);
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 7, 0)
-+ if (!fileName.empty())
-+ ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum);
-+ else
- ff = FoFiTrueType::make(fontsrc->buf, fontLoc->fontNum);
- #elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
- if (!fileName.empty())
-@@ -3156,7 +3197,13 @@
- #endif
- n = 0;
- }
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), std::move(fontsrc), std::move(codeToGID), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
- if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-@@ -3178,7 +3225,13 @@
- break;
- case fontCIDType0:
- case fontCIDType0C:
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadCIDFont(std::move(id), std::move(fontsrc), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
- if (!(fontFile = m_fontEngine->loadCIDFont(std::move(id), fontsrc, fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-@@ -3217,7 +3270,14 @@
- n = 0;
- }
- #endif
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), std::move(fontsrc), std::move(codeToGID), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
-+ gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
- if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'",
-@@ -3265,10 +3325,15 @@
- #endif
- else
- {
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 7, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
- if (!fileName.empty())
- ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum);
- else
-+ ff = FoFiTrueType::make(fontsrc->buf(), fontLoc->fontNum);
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 7, 0)
-+ if (!fileName.empty())
-+ ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum);
-+ else
- ff = FoFiTrueType::make(fontsrc->buf, fontLoc->fontNum);
- #elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0)
- if (!fileName.empty())
-@@ -3290,7 +3355,13 @@
- #endif
- ff.reset();
- }
--#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), std::move(fontsrc), std::move(codeToGID), fontLoc->fontNum)))
-+ {
-+ error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-+ goto err2;
-+ }
-+#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(25, 2, 0)
- if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, std::move(codeToGID), fontLoc->fontNum)))
- {
- error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)");
-@@ -3335,8 +3406,10 @@
- mat[3] = -m22;
- m_font = m_fontEngine->getFont(fontFile, mat, matrix);
-
-+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(26, 2, 0)
- if (fontsrc && !fontsrc->isFile)
- fontsrc->unref();
-+#endif
- return;
-
- err2:
-@@ -3347,8 +3420,12 @@
- #endif
-
- err1:
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 2, 0)
-+ fontsrc.reset();
-+#else
- if (fontsrc && !fontsrc->isFile)
- fontsrc->unref();
-+#endif
- }
-
- void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode* u, int uLen)
-@@ -3402,7 +3479,7 @@
- if (f & splashPathLast)
- qPath.closeSubpath();
- }
-- const double * ctm = state->getCTM();
-+ const auto ctm = state->getCTM();
- m_ctm = QTransform(ctm[0], ctm[1], ctm[2], ctm[3], ctm[4], ctm[5]);
- double xCoor = m_doc->currentPage()->xOffset();
- double yCoor = m_doc->currentPage()->yOffset();
diff --git a/app-office/scribus/files/scribus-1.7.2-poppler-26.03.patch b/app-office/scribus/files/scribus-1.7.2-poppler-26.03.patch
deleted file mode 100644
index dbec17a60e47..000000000000
--- a/app-office/scribus/files/scribus-1.7.2-poppler-26.03.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- Scribus/scribus/plugins/import/pdf/slaoutput.cpp
-+++ Scribus/scribus/plugins/import/pdf/slaoutput.cpp
-@@ -884,7 +884,11 @@
- const Ref ref = childRef.getRef();
- radList.append(ref.num);
- }
-+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(26, 3, 0)
-+ QString tmTxt = UnicodeParsedString(annota->getUniqueName());
-+#else
- QString tmTxt = UnicodeParsedString(annota->getName());
-+#endif
- m_radioMap.insert(tmTxt, radList);
- }
- }
diff --git a/app-office/scribus/scribus-1.7.2.ebuild b/app-office/scribus/scribus-1.7.2.ebuild
deleted file mode 100644
index 644e69232376..000000000000
--- a/app-office/scribus/scribus-1.7.2.ebuild
+++ /dev/null
@@ -1,156 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="tk?"
-inherit cmake desktop flag-o-matic optfeature python-single-r1 xdg
-
-DESCRIPTION="Desktop publishing (DTP) and layout program"
-HOMEPAGE="https://www.scribus.net/"
-
-if [[ ${PV} == *9999* ]] ; then
- EGIT_REPO_URI="https://github.com/scribusproject/scribus"
- inherit git-r3
-else
- SRC_URI="
- https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}.tar.xz
- https://downloads.sourceforge.net/project/${PN}/${PN}-devel/${PV}/${P}.tar.xz
- "
- S="${WORKDIR}/${P}"
- KEYWORDS="amd64 ppc ppc64 x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="$(ver_cut 1-2)"
-IUSE="+boost debug examples graphicsmagick +minimal osg +pdf scripts +templates tk"
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
- tk? ( scripts )"
-
-# osg
-# couple of third_party libs bundled
-DEPEND="${PYTHON_DEPS}
- app-text/hunspell:=
- app-text/libmspub
- app-text/libqxp
- app-text/poppler:=
- dev-libs/hyphen
- dev-libs/icu:0=
- dev-libs/librevenge
- dev-libs/libxml2:=
- dev-qt/qt5compat:6
- dev-qt/qtbase:6[gui,network,opengl,X,xml,widgets]
- dev-qt/qtsvg:6
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/harfbuzz:0=[icu]
- media-libs/lcms:2
- media-libs/libcdr
- media-libs/libfreehand
- media-libs/libjpeg-turbo:=
- media-libs/libpagemaker
- media-libs/libpng:0=
- media-libs/libvisio
- media-libs/libzmf
- media-libs/tiff:=
- net-print/cups
- virtual/minizip:=
- x11-libs/cairo[X,svg(+)]
- x11-libs/libxcb
- boost? ( dev-libs/boost:= )
- graphicsmagick? ( media-gfx/graphicsmagick:= )
- osg? ( dev-games/openscenegraph:= )
- pdf? ( app-text/podofo:0= )
- scripts? (
- $(python_gen_cond_dep '
- dev-python/pillow[tk?,${PYTHON_USEDEP}]
- ')
- )
-"
-RDEPEND="${DEPEND}
- app-text/ghostscript-gpl
-"
-BDEPEND="
- dev-qt/qttools:6[linguist]
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.5.8-cmake.patch # bug 886251
- "${FILESDIR}"/${PN}-1.5.3-fpic.patch
- "${FILESDIR}"/${PN}-1.7.0-findhyphen.patch
- "${FILESDIR}"/${PN}-1.7.0-dont-install-qtadvanceddocking.patch # bugs 961290, 960017
- "${FILESDIR}"/${PN}-1.7.0-fix-icon-version.patch
- "${FILESDIR}"/${P}-poppler-26.0{2,3}.patch # upstream trunk
-)
-
-src_prepare() {
- cmake_src_prepare
-
- # for safety remove files that we patched out
- rm -r scribus/third_party/hyphen || die
-}
-
-src_configure() {
- # bug #550818
- append-cppflags -DHAVE_MEMRCHR
-
- local mycmakeargs=(
- -DTAG_VERSION="-${SLOT}"
- -DHAVE_PYTHON=ON
- -DWANT_DISTROBUILD=ON
- -DWANT_CPP17=ON
- -DDOCDIR="${EPREFIX}"/usr/share/doc/${PF}/
- -DPython3_EXECUTABLE="${PYTHON}"
- -DWITH_BOOST=$(usex boost)
- -DWANT_DEBUG=$(usex debug)
- -DWANT_NOEXAMPLES=$(usex !examples)
- -DWANT_GRAPHICSMAGICK=$(usex graphicsmagick)
- -DWANT_HEADERINSTALL=$(usex !minimal)
- -DWANT_NOOSG=$(usex !osg)
- -DWITH_PODOFO=$(usex pdf)
- -DWANT_NOTEMPLATES=$(usex !templates)
- )
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
-
- if ! use tk; then
- rm "${ED}"/usr/share/scribus-${SLOT}/scripts/{FontSample,CalendarWizard}.py || die
- fi
- if use scripts; then
- python_fix_shebang "${ED}"/usr/share/scribus-${SLOT}/scripts
- python_optimize "${ED}"/usr/share/scribus-${SLOT}/scripts
- else
- rm "${ED}"/usr/share/scribus-${SLOT}/scripts/*.py || die
- fi
-
- mv "${ED}"/usr/share/doc/${PF}/{en,html} || die
- ln -sf html "${ED}"/usr/share/doc/${PF}/en || die
-
- # These files are parsed to populate the help/about window.
- cat >> "${T}"/COPYING <<- EOF || die
- ${PN} is licensed under the "${LICENSE}".
- Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text.
- EOF
- dodoc "${T}"/COPYING
- docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING}
-
- local size
- for size in 16 32 128 256 512; do
- newicon -s $size resources/iconsets/artwork/icon_${size}x${size}.png scribus-${SLOT}.png
- done
- newicon -s 64 resources/iconsets/artwork/icon_32x32@2x.png scribus-${SLOT}.png
- newicon resources/iconsets/1_7_0/scribus-icon.svg scribus-${SLOT}.png
- newmenu scribus.desktop scribus-${SLOT}.desktop
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- optfeature "MS Word .doc file import filter support" app-text/antiword
-}
diff --git a/app-text/groonga-normalizer-mysql/groonga-normalizer-mysql-1.1.1-r1.ebuild b/app-text/groonga-normalizer-mysql/groonga-normalizer-mysql-1.1.1-r1.ebuild
index c2a7aacdc072..7402a187f366 100644
--- a/app-text/groonga-normalizer-mysql/groonga-normalizer-mysql-1.1.1-r1.ebuild
+++ b/app-text/groonga-normalizer-mysql/groonga-normalizer-mysql-1.1.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -11,7 +11,7 @@ SRC_URI="https://packages.groonga.org/source/${PN}/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
RDEPEND="app-text/groonga"
DEPEND="${RDEPEND}"
diff --git a/app-text/groonga/groonga-16.0.1.ebuild b/app-text/groonga/groonga-16.0.1.ebuild
index 4933a4d20782..77bae253525f 100644
--- a/app-text/groonga/groonga-16.0.1.ebuild
+++ b/app-text/groonga/groonga-16.0.1.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://packages.groonga.org/source/groonga/${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
IUSE="apache-arrow blosc curl debug json libedit lz4 +mecab msgpack stemmer suggest-learner xxhash zstd"
CPU_USE=(
cpu_flags_x86_{avx,avx2,avx512dq}
diff --git a/app-text/groonga/groonga-16.1.0.ebuild b/app-text/groonga/groonga-16.1.0.ebuild
index df7aa2341d0d..b779658770be 100644
--- a/app-text/groonga/groonga-16.1.0.ebuild
+++ b/app-text/groonga/groonga-16.1.0.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://packages.groonga.org/source/groonga/${P}.tar.gz"
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
IUSE="apache-arrow blosc curl debug json libedit lz4 +mecab msgpack stemmer suggest-learner xxhash zstd"
CPU_USE=(
cpu_flags_x86_{avx,avx2,avx512dq}
diff --git a/app-text/mupdf/mupdf-1.27.2.ebuild b/app-text/mupdf/mupdf-1.27.2.ebuild
index e74fa2c0bf4c..6fdf41f563fa 100644
--- a/app-text/mupdf/mupdf-1.27.2.ebuild
+++ b/app-text/mupdf/mupdf-1.27.2.ebuild
@@ -15,7 +15,7 @@ S="${WORKDIR}"/${P}-source
LICENSE="AGPL-3"
SLOT="0/${PV}"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="archive barcode brotli +javascript +jpeg2k opengl ssl X"
REQUIRED_USE="opengl? ( javascript )"
diff --git a/app-text/pelican/pelican-4.12.0.ebuild b/app-text/pelican/pelican-4.12.0.ebuild
index 3d57c3311968..460e09c74f6a 100644
--- a/app-text/pelican/pelican-4.12.0.ebuild
+++ b/app-text/pelican/pelican-4.12.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="AGPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~riscv x86"
IUSE="doc examples markdown"
RDEPEND="
diff --git a/app-text/poppler/Manifest b/app-text/poppler/Manifest
index 7d9f37d147e1..c3c022e31d9f 100644
--- a/app-text/poppler/Manifest
+++ b/app-text/poppler/Manifest
@@ -1,6 +1,3 @@
-DIST poppler-26.03.0.tar.xz 2029264 BLAKE2B cde442181f849250e63a1778e466787ff16eb913af43727481b2593823ca357920f7473bb2c770ed6566e494f4411b0725b66af6bba26868c6481bff37bf296f SHA512 f3682ce6eb3fe862c1f5e01a0d27ffe948702262b0cf930b103d24992b79048cd950c48ac41f016a918318300170a35ef08339a0b69837944744ebe4110e620b
-DIST poppler-26.03.0.tar.xz.sig 833 BLAKE2B eea034ec8391dc6f8e0901c2672e35265285679493dee5d61fb30d84091a83fdc41afb9cb70bf704df6020ec0197487f29e8fdb4ea270d22d7adc06731d9e76c SHA512 fa63e7463871ed8b4983a80a96d958c4c2eaedd9413825e06e313bdeb8c14250450ccb6f8840ef792280eee5a4b89a62d411fddfa486e5ea5b3c4535746daf5d
DIST poppler-26.05.0.tar.xz 2037356 BLAKE2B 0054b2d012a0f62fb5141ad2dc019e1f0049b785b46866a6a924c157ce6c11645b51a2ee963853d4e5a4512dea6c5d5472fc11a444a2a415d11f232a577f23c1 SHA512 e9c3e091d927156d64425830e88bea43df52bef2d77aa84847d529a4b3e11f0e82170030379016db7de45748f39d92d894b02de134e44244e42f2076cd75ce79
DIST poppler-26.05.0.tar.xz.sig 833 BLAKE2B 5e34d555dcad19cff70fd173c349d1408dec985551547a8fab01bd40a9519d96617178213c84a76d5ad383e985b5a24586f2dfd60fd8cb53de97a22d880042f4 SHA512 7a346821ec64b0686468657e9da1f18960d3ec63ede711030f844f9aac5464536a3fddb32708653ab302fbce9597157268e94e67ef270323a76379efd5a7ad1d
-DIST poppler-test-9d5011815a14c157ba25bb160187842fb81579a5.tar.bz2 5500878 BLAKE2B 4ced4be267431cfd7c39398055e22c7228df2f1de09cba86bfbd76d785b26f4767a69eefccaa7473b4f410a7f1a4b97d9133141b8c66892bb3f209376d5d231e SHA512 89982192b2d98c5c1e9c03ad1e4a09fe38d1525669799690e8d5f333d2e5905b5b57f58dd09483e5a4d3634fa35da22984b9d2797f4e11c3d821eaaf67865f6c
DIST poppler-test-b85e4d1ce75636b3e727555a9d31da34ad771c1c.tar.bz2 5576682 BLAKE2B fcef2a728c41ad4c228bc79b6b3b73a23f0bdd199389911059b59e32cb413721f9b3ca0bf29777341f4624700d64ea15a8470d1b9df102ee0d1065ec21b16df9 SHA512 58894faac57f77a3143d5c42923307c0ab22a70e2f105b4b7eb9a041b341864a9ab293a9cf09bf397bf00220bbbf4a0fef8c29125d7635f6a3810dd2836e7cc8
diff --git a/app-text/poppler/files/poppler-26.01.0-qt-deps.patch b/app-text/poppler/files/poppler-26.01.0-qt-deps.patch
deleted file mode 100644
index fc16074965a3..000000000000
--- a/app-text/poppler/files/poppler-26.01.0-qt-deps.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-Source: https://gitlab.freedesktop.org/poppler/poppler/-/merge_requests/2013
-
-From 1fccd6fefd96b2934a886ebd12bc27da0afc70bc Mon Sep 17 00:00:00 2001
-From: Andreas Sturmlechner <asturm@gentoo.org>
-Date: Wed, 9 Dec 2020 01:28:25 +0100
-Subject: [PATCH] Move Qt test dependencies into test dir
-
-Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-Signed-off-by: Sam James <sam@gentoo.org>
----
- CMakeLists.txt | 8 ++++----
- qt5/CMakeLists.txt | 7 +++++--
- qt6/CMakeLists.txt | 6 ++++--
- 3 files changed, 13 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 48033dce..4785f2b2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -216,15 +216,15 @@ set(QT5_VERSION "5.15")
- find_soft_mandatory_package(ENABLE_QT5 Qt5Core ${QT5_VERSION})
- find_soft_mandatory_package(ENABLE_QT5 Qt5Gui ${QT5_VERSION})
- find_soft_mandatory_package(ENABLE_QT5 Qt5Xml ${QT5_VERSION})
--find_soft_mandatory_package(ENABLE_QT5 Qt5Widgets ${QT5_VERSION})
--find_soft_mandatory_package(ENABLE_QT5 Qt5Test ${QT5_VERSION})
-+find_soft_mandatory_package(BUILD_QT5_TESTS Qt5Widgets ${QT5_VERSION})
-+find_soft_mandatory_package(BUILD_QT5_TESTS Qt5Test ${QT5_VERSION})
-
- set(QT6_VERSION "6.2")
- SET(QT_NO_CREATE_VERSIONLESS_TARGETS ON)
- find_soft_mandatory_package(ENABLE_QT6 Qt6Core ${QT6_VERSION})
- find_soft_mandatory_package(ENABLE_QT6 Qt6Gui ${QT6_VERSION})
--find_soft_mandatory_package(ENABLE_QT6 Qt6Widgets ${QT6_VERSION})
--find_soft_mandatory_package(ENABLE_QT6 Qt6Test ${QT6_VERSION})
-+find_soft_mandatory_package(BUILD_QT6_TESTS Qt6Widgets ${QT6_VERSION})
-+find_soft_mandatory_package(BUILD_QT6_TESTS Qt6Test ${QT6_VERSION})
-
- add_definitions(-DQT_NO_CAST_FROM_ASCII)
- add_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
-diff --git a/qt5/CMakeLists.txt b/qt5/CMakeLists.txt
-index 431d2d35..bd4194e5 100644
---- a/qt5/CMakeLists.txt
-+++ b/qt5/CMakeLists.txt
-@@ -9,5 +9,8 @@ add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050E00)
- add_definitions(-DQT_NO_DEPRECATED_WARNINGS)
-
- add_subdirectory(src)
--add_subdirectory(tests)
--add_subdirectory(demos)
-+
-+if(BUILD_QT5_TESTS)
-+ add_subdirectory(tests)
-+ add_subdirectory(demos)
-+endif()
-diff --git a/qt6/CMakeLists.txt b/qt6/CMakeLists.txt
-index 89e612d1..23b39d72 100644
---- a/qt6/CMakeLists.txt
-+++ b/qt6/CMakeLists.txt
-@@ -7,5 +7,7 @@ endif()
-
- add_subdirectory(src)
-
--add_subdirectory(tests)
--add_subdirectory(demos)
-+if(BUILD_QT6_TESTS)
-+ add_subdirectory(tests)
-+ add_subdirectory(demos)
-+endif()
---
-2.52.0
-
diff --git a/app-text/poppler/metadata.xml b/app-text/poppler/metadata.xml
index 6dc5adc3ed44..5a4792478f3b 100644
--- a/app-text/poppler/metadata.xml
+++ b/app-text/poppler/metadata.xml
@@ -20,8 +20,6 @@
<flag name="boost">Use boost::small_vector for a serious performance gain</flag>
<flag name="gpg">Enable signatures handling with <pkg>app-crypt/gpgme</pkg>
</flag>
- <flag name="gpgme">Enable signatures handling with <pkg>app-crypt/gpgme</pkg>
- </flag>
<flag name="nss">Enable signatures handling with <pkg>dev-libs/nss</pkg>
</flag>
<flag name="utils">Install command-line PDF converters and various utilities</flag>
diff --git a/app-text/poppler/poppler-26.03.0.ebuild b/app-text/poppler/poppler-26.03.0.ebuild
deleted file mode 100644
index 8e97000d992a..000000000000
--- a/app-text/poppler/poppler-26.03.0.ebuild
+++ /dev/null
@@ -1,146 +0,0 @@
-# Copyright 2005-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-inherit cmake flag-o-matic python-any-r1 toolchain-funcs xdg-utils
-
-if [[ ${PV} == *9999* ]] ; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.freedesktop.org/poppler/poppler"
- SLOT="0/9999"
-else
- VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/aacid.asc
- inherit verify-sig
-
- TEST_COMMIT="9d5011815a14c157ba25bb160187842fb81579a5"
- SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
- SRC_URI+=" test? ( https://gitlab.freedesktop.org/poppler/test/-/archive/${TEST_COMMIT}/test-${TEST_COMMIT}.tar.bz2 -> ${PN}-test-${TEST_COMMIT}.tar.bz2 )"
- SRC_URI+=" verify-sig? ( https://poppler.freedesktop.org/${P}.tar.xz.sig )"
- KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
- SLOT="0/158" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
-fi
-
-DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
-HOMEPAGE="https://poppler.freedesktop.org/"
-
-LICENSE="GPL-2"
-IUSE="boost cairo cjk curl +cxx debug doc gpgme +introspection +jpeg +jpeg2k +lcms nss png qt6 test tiff +utils"
-RESTRICT="!test? ( test )"
-
-COMMON_DEPEND="
- >=media-libs/fontconfig-2.13
- >=media-libs/freetype-2.10
- virtual/zlib:=
- cairo? (
- >=dev-libs/glib-2.64:2
- >=x11-libs/cairo-1.16
- introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
- )
- curl? ( net-misc/curl )
- gpgme? ( dev-cpp/gpgmepp:= )
- jpeg? ( >=media-libs/libjpeg-turbo-1.1.0:= )
- jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
- lcms? ( media-libs/lcms:2 )
- nss? ( >=dev-libs/nss-3.49 )
- png? ( media-libs/libpng:0= )
- qt6? ( dev-qt/qtbase:6[gui,xml] )
- tiff? ( media-libs/tiff:= )
-"
-RDEPEND="${COMMON_DEPEND}
- cjk? ( app-text/poppler-data )
-"
-DEPEND="${COMMON_DEPEND}
- boost? ( >=dev-libs/boost-1.74 )
- test? ( qt6? ( dev-qt/qtbase:6[widgets] ) )
-"
-BDEPEND="
- ${PYTHON_DEPS}
- >=dev-util/glib-utils-2.64
- virtual/pkgconfig
- qt6? ( dev-qt/qtbase:6 )
-"
-
-if [[ ${PV} != *9999* ]] ; then
- BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-aacid-20230907 )"
-fi
-
-DOCS=( AUTHORS NEWS README.md README-XPDF )
-
-PATCHES=(
- "${FILESDIR}/${PN}-26.01.0-qt-deps.patch"
- "${FILESDIR}/${PN}-26.01.0-respect-cflags.patch"
- "${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
-)
-
-src_unpack() {
- if [[ ${PV} == *9999* ]] ; then
- git-r3_src_unpack
- elif use verify-sig ; then
- verify-sig_verify_detached "${DISTDIR}"/${P}.tar.xz{,.sig}
- fi
-
- default
-}
-
-src_prepare() {
- cmake_src_prepare
-
- # Clang doesn't grok this flag, the configure nicely tests that, but
- # cmake just uses it, so remove it if we use clang
- if tc-is-clang ; then
- sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
- fi
-}
-
-src_configure() {
- xdg_environment_reset
- append-lfs-flags # bug #898506
-
- # giscanner is called if cairo and introspection are enabled.
- # In that case, PKG_CONFIG must be defined.
- tc-export PKG_CONFIG
-
- local mycmakeargs=(
- -DBUILD_GTK_TESTS=OFF
- -DBUILD_QT5_TESTS=OFF
- -DBUILD_QT6_TESTS=$(usex test $(usex qt6))
- -DBUILD_CPP_TESTS=$(usex test)
- -DBUILD_MANUAL_TESTS=$(usex test)
- -DTESTDATADIR="${WORKDIR}"/test-${TEST_COMMIT}
- -DRUN_GPERF_IF_PRESENT=OFF
- -DENABLE_BOOST="$(usex boost)"
- -DENABLE_ZLIB_UNCOMPRESS=OFF
- -DENABLE_UNSTABLE_API_ABI_HEADERS=ON
- -DWITH_Cairo=$(usex cairo)
- -DENABLE_LIBCURL=$(usex curl)
- -DENABLE_CPP=$(usex cxx)
- -DENABLE_GPGME=$(usex gpgme)
- -DWITH_JPEG=$(usex jpeg)
- -DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
- -DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
- -DENABLE_LCMS=$(usex lcms)
- -DENABLE_NSS3=$(usex nss)
- -DWITH_PNG=$(usex png)
- -DENABLE_QT5=OFF
- -DENABLE_QT6=$(usex qt6)
- -DENABLE_LIBTIFF=$(usex tiff)
- -DENABLE_UTILS=$(usex utils)
- )
- use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
- use qt6 && tc-is-cross-compiler && mycmakeargs+=( -DQT_HOST_PATH="${BROOT}" )
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
-
- # live version doesn't provide html documentation
- if use cairo && use doc && [[ ${PV} != *9999* ]]; then
- # For now install gtk-doc there
- insinto /usr/share/gtk-doc/html/poppler
- doins -r "${S}"/glib/reference/html/*
- fi
-}
diff --git a/app-vim/airline/Manifest b/app-vim/airline/Manifest
index 75a4d9a4e8bc..4748f3b329d8 100644
--- a/app-vim/airline/Manifest
+++ b/app-vim/airline/Manifest
@@ -1 +1,2 @@
DIST airline-0.11.tar.gz 94961 BLAKE2B 7cb5cd6afbe1d30c664c6f2de75553972792806e4c75a9a178b497e92f3545e686111af08bb0b0b47e196a8ee04771947101bfe4d0d070023300f9479983f6ec SHA512 7837f9ae02c1503c7eb6918776292ac6e4b03535eb95aaf20ee091264af5e62c12b471a6e243db80891114848e71f75d9d1022df68909dd4940c88f093e3deb8
+DIST airline-0.12.tar.gz 122102 BLAKE2B adc0649cb51236c6ef834d3ca7a96fe246127ea8fda28b0c6799a21fa592d144cabc08c2c1684e56c0c6ec9888ec9b2ab1386a80d054eb6f386effee5c7e5f5c SHA512 47a3b7dcfd8d798e38de54c16b76a5c0da963c284a30a0380486fb50ce087b9fdbd6aac92f2fb407f8db603cfe4354039a77f01f46ee2e6c1c35d75d219fbd5a
diff --git a/app-vim/airline/airline-0.12.ebuild b/app-vim/airline/airline-0.12.ebuild
new file mode 100644
index 000000000000..b5102148fb6d
--- /dev/null
+++ b/app-vim/airline/airline-0.12.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit vim-plugin
+
+if [[ ${PV} != 9999* ]] ; then
+ MY_PN=vim-${PN}
+ MY_P=${MY_PN}-${PV}
+ SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+ S=${WORKDIR}/${MY_P}
+else
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/vim-airline/vim-airline.git"
+fi
+
+DESCRIPTION="vim plugin: lean & mean statusline for vim that's light as air"
+HOMEPAGE="https://github.com/vim-airline/vim-airline/ https://www.vim.org/scripts/script.php?script_id=4661"
+LICENSE="MIT"
+VIM_PLUGIN_HELPFILES="${PN}.txt"
+
+DOCS=( CHANGELOG.md README.md )
diff --git a/app-vim/airline/airline-9999.ebuild b/app-vim/airline/airline-9999.ebuild
index 2d849bf686fe..b5102148fb6d 100644
--- a/app-vim/airline/airline-9999.ebuild
+++ b/app-vim/airline/airline-9999.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit vim-plugin
@@ -21,9 +21,4 @@ HOMEPAGE="https://github.com/vim-airline/vim-airline/ https://www.vim.org/script
LICENSE="MIT"
VIM_PLUGIN_HELPFILES="${PN}.txt"
-src_prepare() {
- default
-
- # remove unwanted test dir
- rm -r t || die
-}
+DOCS=( CHANGELOG.md README.md )
diff --git a/app-vim/editorconfig-vim/Manifest b/app-vim/editorconfig-vim/Manifest
index 89f922e62bf4..70c5d373b6fa 100644
--- a/app-vim/editorconfig-vim/Manifest
+++ b/app-vim/editorconfig-vim/Manifest
@@ -1 +1,2 @@
DIST editorconfig-vim-1.2.0.tar.gz 34457 BLAKE2B 969e650c69abaa4e7fb652f3384f2b4ac779e2d6d3f39d898bcc7e69c7399510bfabb1aae5bd90cbb2e5276f5200a87797f6da976df040e39626d883b907792c SHA512 1101562e71f2a9f356a3773cc32f4f091d5a0b67c85a8d78d70f76a73ec3b709f5ac5b7db7448972409031d37176190922912945be05037b627d1cf766bbb731
+DIST editorconfig-vim-1.2.1.tar.gz 35376 BLAKE2B 749b1ce7010b67db31231b4de0027320e9056eb0f7f2c5d2113fe585fbf5f42910791fe09efd82cf6435a02ca385c6413d7bb95dde3e56b78f62f38493447153 SHA512 515e0266a0ba16dc849bfecc54890c9b012215e958418c3a28697b5f07872327504bcac49b8bdbf01dbc09c5d9bf9c20a72386fb390687b1145ef13b38f0ca32
diff --git a/app-vim/editorconfig-vim/editorconfig-vim-1.2.1.ebuild b/app-vim/editorconfig-vim/editorconfig-vim-1.2.1.ebuild
new file mode 100644
index 000000000000..f2e1e4bcaadf
--- /dev/null
+++ b/app-vim/editorconfig-vim/editorconfig-vim-1.2.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit vim-plugin
+
+MY_PV="${PV//_/-}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="vim plugin: Support EditorConfig files"
+HOMEPAGE="https://editorconfig.org/"
+SRC_URI="https://github.com/${PN%-vim}/${PN}/archive/v${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD-2 PSF-2"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+VIM_PLUGIN_HELPFILES="${PN%-vim}.txt"
+
+src_install() {
+ # we don't want to install the tests
+ rm -r tests || die
+
+ vim-plugin_src_install
+}
diff --git a/dev-build/bmake/bmake-20260508.ebuild b/dev-build/bmake/bmake-20260508.ebuild
index 6a0f42c9bf36..1b680a3a1c11 100644
--- a/dev-build/bmake/bmake-20260508.ebuild
+++ b/dev-build/bmake/bmake-20260508.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${PN}"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild b/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild
index ffd4d23d14fa..cfca1a6974f2 100644
--- a/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild
+++ b/dev-build/boost-m4/boost-m4-0.4_p20250404.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}"/${PN/-/.}-${BOOST_COMMIT}
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
# boost.m4 has a buildsystem, but the distributer didn't use make dist
# so we'd have to eautoreconf to use it. Also, its ./configure script
diff --git a/dev-cpp/cairomm/Manifest b/dev-cpp/cairomm/Manifest
index 1684ed88eda5..92561f5e83c5 100644
--- a/dev-cpp/cairomm/Manifest
+++ b/dev-cpp/cairomm/Manifest
@@ -1,2 +1,3 @@
DIST cairomm-1.14.5.tar.xz 653276 BLAKE2B ad26a3eff8adae3b7202ed6a6c8706394ea0b508eadc0a526c2b18bec912645b09f25e786ec9021fef56ba6a6b4ffa76fed24bcf7e14252044cafdc6afd49fed SHA512 19e5f84f6167c1641b27545c3af4e780b6a072513322adc6296577e2d0ebcffe933afd15c32117a203394e9f5f28734820aaf1802dfdeb35ff2a657f140570b0
DIST cairomm-1.18.0.tar.xz 632520 BLAKE2B e05135eb2e22ed6002821567dd951644febc173b04e001f3574d6dac36d0c6d012c3806e7485fa7856402945934c653c4546855a8e97b016130edac31726d827 SHA512 d358a765136e244773b4a0fdcb2d9c81dd0b76f7a27c7108f94df9765f2d790f5f50b5645c09c292efce3e012528f85114d51916450c5fe6fa87d09f5a405d4c
+DIST cairomm-1.18.1.tar.xz 613728 BLAKE2B 698e408bbf727758c392393cb551defae69660d57f521e29468a9c3a94ee5e900abfa0ceb00943513aca5a5ea5b299f5c7588a6ea876ec114da301458001228e SHA512 ff23565dba657b45658613971429b5f06a60c585b467e9a302bda8ded7cf33dc3d4290b1699bd2bde907f5cbd3c8b4219d4e7f8442d65f61712767db6cb21874
diff --git a/dev-cpp/cairomm/cairomm-1.18.1.ebuild b/dev-cpp/cairomm/cairomm-1.18.1.ebuild
new file mode 100644
index 000000000000..5f3ad5e8fc55
--- /dev/null
+++ b/dev-cpp/cairomm/cairomm-1.18.1.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit meson-multilib python-any-r1
+
+DESCRIPTION="C++ bindings for the Cairo vector graphics library"
+HOMEPAGE="https://cairographics.org/cairomm/ https://gitlab.freedesktop.org/cairo/cairomm"
+SRC_URI="https://www.cairographics.org/releases/${P}.tar.xz"
+
+LICENSE="LGPL-2.1+"
+SLOT="1.16"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="gtk-doc test X"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/libsigc++:3[gtk-doc?,${MULTILIB_USEDEP}]
+ >=x11-libs/cairo-1.14.10[X=,${MULTILIB_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ test? (
+ dev-libs/boost[${MULTILIB_USEDEP}]
+ media-libs/fontconfig[${MULTILIB_USEDEP}]
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ gtk-doc? (
+ ${PYTHON_DEPS}
+ >=dev-cpp/mm-common-1.0.4
+ app-text/doxygen[dot]
+ dev-libs/libxslt
+ )
+"
+
+pkg_setup() {
+ use gtk-doc && python-any-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ $(meson_native_use_bool gtk-doc build-documentation)
+ -Dbuild-examples=false
+ $(meson_use test build-tests)
+ -Dboost-shared=true
+ )
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ if use gtk-doc; then
+ mkdir -p "${ED}/usr/share/gtk-doc/html/" || die
+ mv "${ED}/usr/share/doc/cairomm-1.16" "${ED}/usr/share/gtk-doc/html/" || die
+ fi
+}
diff --git a/dev-cpp/eigen/eigen-3.4.1.ebuild b/dev-cpp/eigen/eigen-3.4.1-r1.ebuild
index 65f1b42f809f..6613dcead10b 100644
--- a/dev-cpp/eigen/eigen-3.4.1.ebuild
+++ b/dev-cpp/eigen/eigen-3.4.1-r1.ebuild
@@ -30,7 +30,7 @@ else
https://gitlab.com/libeigen/eigen/-/commit/0295f81a835ef69e2bacd9e75ab5782eca398720.patch -> ${P}_p1.patch
https://gitlab.com/libeigen/eigen/-/commit/28ded8800c26864e537852658428ab44c8399e87.patch -> ${P}_p2.patch
"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
fi
SRC_URI+="
@@ -231,6 +231,8 @@ PATCHES=(
"${DISTDIR}/${P}_p1.patch"
"${DISTDIR}/${P}_p2.patch"
+
+ "${FILESDIR}/${P}-fix-Werror-undef.patch" # bug 976285
)
# TODO should be in cuda.eclass
diff --git a/dev-cpp/eigen/files/eigen-3.4.1-fix-Werror-undef.patch b/dev-cpp/eigen/files/eigen-3.4.1-fix-Werror-undef.patch
new file mode 100644
index 000000000000..9772616e9c16
--- /dev/null
+++ b/dev-cpp/eigen/files/eigen-3.4.1-fix-Werror-undef.patch
@@ -0,0 +1,19 @@
+Fixes likely mistake in conflict resolution of upstream backport
+of a73970a8640330c4908d68ef9257fd31a4fdae9.
+
+EIGEN_COMP_CLANG_STRICT does not exist in 3.4 branch and was not
+touched in the original commit.
+
+Gentoo-bug: https://bugs.gentoo.org/976285
+
+--- a/Eigen/src/Core/util/ConfigureVectorization.h
++++ b/Eigen/src/Core/util/ConfigureVectorization.h
+@@ -445,7 +445,7 @@
+ #define EIGEN_VECTORIZE_FMA
+ #endif
+
+-#if defined(__F16C__) && !defined(EIGEN_GPUCC) && (!EIGEN_COMP_CLANG_STRICT || EIGEN_COMP_CLANG>=380)
++#if defined(__F16C__) && (!defined(EIGEN_GPUCC) && (!defined(EIGEN_COMP_CLANG) || EIGEN_COMP_CLANG>=380))
+ // We can use the optimized fp16 to float and float to fp16 conversion routines
+ #define EIGEN_HAS_FP16_C
+
diff --git a/dev-cpp/gtkmm/Manifest b/dev-cpp/gtkmm/Manifest
index 61683b28171e..cc7e573286b0 100644
--- a/dev-cpp/gtkmm/Manifest
+++ b/dev-cpp/gtkmm/Manifest
@@ -1,4 +1,4 @@
DIST gtkmm-2.24.5.tar.xz 12022024 BLAKE2B 6b2bca9fe6ad81cd956e1f3cc3140bc503b78386cf3931c8eeac08c8b2a08c73450bdbb703d1febaee67cdf834093ff5e89790f866357190822613a68a596ad3 SHA512 c50e52830977c37181439f4b82a30ac8bead0cf9022d2bec8225f8dc33e08414f863bf67056e1938fae8f888c09a5a6d757acc011fa9331a78caa6bb626dd51e
DIST gtkmm-3.24.11.tar.xz 13455720 BLAKE2B 17cc7a77f2a7799fe67e1d439ee60d053e985566d3b0f630231c2d7a8883fabbb54254970d1cd29b0ddaad66355e5336df6f769724df7b87814d2e9641f782e9 SHA512 018d4c9b598956c71da030a00ba8097fe0215667ddcad6f76b7f0049ef0f7dd6239bb863058f2b138de79a3e7bc6e700f5c34cc9dea230af3e60148614928abc
-DIST gtkmm-4.18.0.tar.xz 17063416 BLAKE2B bb2a369a80f5e817481e8e3563f97001aa98ec0170b5cfb82ec66d47574c8475be7da14079bf8c75818a2557eece1ada73e050f2300fd990c7d11186379b9514 SHA512 a5469ae03eda2fab466c3a1ac9790debec0715beab8bdfd02283ebea83c7c742ea04fc3bf800f18f171250b7b2441b0d8c4681f350284de9a791760ed6cd5d4c
DIST gtkmm-4.20.0.tar.xz 17463040 BLAKE2B bda16860ead2073b07d4badc21b5dbb377fde84fe2da10557975b816176571017331ee195a3e9679b83ac90b09c6b22460b88a51ce0b1620048b3d6c13db9f83 SHA512 c65bfa6dc0788cdd698c25e3b29861cb47aa0cd9c8bd3632005958ecd5a8d92802fc8ecaf498bcfc281a9b4035e751eeb6c05fa351f4b14c063870218127dabd
+DIST gtkmm-4.22.0.tar.xz 17841520 BLAKE2B e62d9f42db283601a5f01d7fc9e0844a650c882c0b95a98c0757e3e6088606d015bd1aba73abd36d38d19d2fdb368e7ec0ee8a9562fc3e6e4747f714c119c610 SHA512 b0c4b77249dcf2d917919d43b04e41b819507ab34366aa4bbffd53bbe5edbb195081d69ae4996a116573a5d4e6d2affbbbc62d4ff986dcbf95045c5d64284d7f
diff --git a/dev-cpp/gtkmm/gtkmm-4.20.0.ebuild b/dev-cpp/gtkmm/gtkmm-4.20.0.ebuild
deleted file mode 100644
index 5e1456a151d0..000000000000
--- a/dev-cpp/gtkmm/gtkmm-4.20.0.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-inherit gnome.org meson python-any-r1 virtualx
-
-DESCRIPTION="C++ interface for GTK+"
-HOMEPAGE="https://gtkmm.gnome.org/en/index.html"
-
-LICENSE="LGPL-2.1+"
-SLOT="4.0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
-IUSE="gtk-doc test"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-cpp/glibmm-2.75.0:2.68[gtk-doc?]
- >=gui-libs/gtk-4.19.4:4
- >=dev-cpp/cairomm-1.15.4:1.16[gtk-doc?]
- >=dev-cpp/pangomm-2.50.0:2.48[gtk-doc?]
- >=x11-libs/gdk-pixbuf-2.35.5:2
- >=media-libs/libepoxy-1.2
-"
-DEPEND="
- ${RDEPEND}
- gtk-doc? ( dev-libs/libsigc++:3 )
-"
-BDEPEND="
- virtual/pkgconfig
- gtk-doc? (
- app-text/doxygen[dot]
- dev-lang/perl
- dev-libs/libxslt
- )
- ${PYTHON_DEPS}
-"
-
-src_configure() {
- local emesonargs=(
- -Dbuild-demos=false
- $(meson_use gtk-doc build-documentation)
- $(meson_use test build-tests)
- )
- meson_src_configure
-}
-
-src_test() {
- virtx meson_src_test
-}
diff --git a/dev-cpp/gtkmm/gtkmm-4.18.0-r1.ebuild b/dev-cpp/gtkmm/gtkmm-4.22.0.ebuild
index 68ae57c68576..9a1fa044e2de 100644
--- a/dev-cpp/gtkmm/gtkmm-4.18.0-r1.ebuild
+++ b/dev-cpp/gtkmm/gtkmm-4.22.0.ebuild
@@ -11,19 +11,23 @@ HOMEPAGE="https://gtkmm.gnome.org/en/index.html"
LICENSE="LGPL-2.1+"
SLOT="4.0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
-IUSE="gtk-doc test"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="gtk-doc test vulkan"
RESTRICT="!test? ( test )"
+PATCHES=(
+ "${FILESDIR}"/MR-101.patch
+)
+
RDEPEND="
>=dev-cpp/glibmm-2.75.0:2.68[gtk-doc?]
- >=gui-libs/gtk-4.17.5:4
- <gui-libs/gtk-4.20:4
+ >=gui-libs/gtk-4.22.0:4[vulkan?]
>=dev-cpp/cairomm-1.15.4:1.16[gtk-doc?]
>=dev-cpp/pangomm-2.50.0:2.48[gtk-doc?]
>=x11-libs/gdk-pixbuf-2.35.5:2
>=media-libs/libepoxy-1.2
+ vulkan? ( media-libs/vulkan-loader )
"
DEPEND="
${RDEPEND}
@@ -51,3 +55,11 @@ src_configure() {
src_test() {
virtx meson_src_test
}
+
+src_install() {
+ meson_src_install
+ if use gtk-doc; then
+ mkdir -p "${ED}"/usr/share/gtk-doc/html/ || die
+ mv "${ED}"/usr/share/doc/gtkmm-4.0 "${ED}"/usr/share/gtk-doc/html/ || die
+ fi
+}
diff --git a/dev-cpp/msgpack-cxx/Manifest b/dev-cpp/msgpack-cxx/Manifest
index 4228a9f0c6a0..838bc847b26b 100644
--- a/dev-cpp/msgpack-cxx/Manifest
+++ b/dev-cpp/msgpack-cxx/Manifest
@@ -1,2 +1,3 @@
DIST msgpack-cxx-6.1.1.tar.gz 476459 BLAKE2B 6ec940af9b9e02d892c5f118791015baa6b12baa60c77aaf2ff867e8836f21b4f16c436ce448cdfeb7dc8f8a9356a75f3ac829eba9059ca5d78f42a4393700ff SHA512 6a3df977e7a9c8b50feb7c88cff7a78814d1d41d2f7a657dd37d6cfcfe24f44746f40a6dd46bd5dba7ea59d94b9e40c2baa62c08d9b02168ac93c58cbff3becc
DIST msgpack-cxx-8.0.0.tar.gz 480783 BLAKE2B c01a39012dd137e6bd767a350f21e8ddd37d982f01cc95f2b6bf7582823ea79603de332241a77871ba6d7387243cdfe7a514378d591011120dac2b01cc7c9b04 SHA512 8d3a20b04a201a7095556ab901f55ca0ca664940c4b7bebcdddd405fbb3f052fb38720e49aec5259a5513f2c272b9584d8b108139fb7de7d63438ee4258cdfd9
+DIST msgpack-cxx-9.0.0.tar.gz 483566 BLAKE2B 3798e5b323159a35e2b85b12466e27482435282f8f172d6f4d41194a215b47a35daf0c4b0156f5b391ac1802595e274fc0a284e7d9ed7d484db1205e2c7f8927 SHA512 5e230b60d0d62486b51dedb9d6ff81a2f2fcea6345fc803cb19540df665c6889776b1059945a391395e2a7068b25104a7af472347bd5acfbf48b93c7393c2cd0
diff --git a/dev-cpp/msgpack-cxx/msgpack-cxx-9.0.0.ebuild b/dev-cpp/msgpack-cxx/msgpack-cxx-9.0.0.ebuild
new file mode 100644
index 000000000000..6b11b844aa48
--- /dev/null
+++ b/dev-cpp/msgpack-cxx/msgpack-cxx-9.0.0.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="MessagePack for C++"
+HOMEPAGE="https://msgpack.org/ https://github.com/msgpack/msgpack-c/"
+SRC_URI="https://github.com/msgpack/msgpack-c/releases/download/cpp-${PV}/${P}.tar.gz"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86 ~x64-macos"
+IUSE="+boost doc examples test"
+REQUIRED_USE="test? ( boost )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ boost? ( dev-libs/boost[context] )
+ !<dev-libs/msgpack-5.0.0
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ doc? ( app-text/doxygen[dot] )
+ test? ( virtual/zlib )
+"
+
+src_configure() {
+ local mycmakeargs=(
+ -DMSGPACK_BUILD_EXAMPLES=OFF
+ -DMSGPACK_CXX17=ON
+ -DMSGPACK_BUILD_TESTS="$(usex test)"
+ -DMSGPACK_USE_BOOST="$(usex boost)"
+ -DMSGPACK_USE_X3_PARSE="$(usex boost)"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ use doc && cmake_build doxygen
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}"/doc_cpp/html/. )
+ fi
+
+ if use examples; then
+ docinto examples
+ dodoc -r example/.
+ docompress -x /usr/share/doc/${PF}/examples
+ fi
+
+ cmake_src_install
+}
diff --git a/dev-db/freetds/freetds-1.5.6.ebuild b/dev-db/freetds/freetds-1.5.6.ebuild
index 35c237283b31..2e5e3afcc720 100644
--- a/dev-db/freetds/freetds-1.5.6.ebuild
+++ b/dev-db/freetds/freetds-1.5.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
@@ -12,7 +12,7 @@ SRC_URI="
LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="debug gnutls iconv kerberos mssql iodbc odbc ssl static-libs"
# iODBC and unixODBC are mutually-exclusive choices for
# the ODBC driver manager. Future versions of FreeTDS
diff --git a/dev-db/unixODBC/unixODBC-2.3.14.ebuild b/dev-db/unixODBC/unixODBC-2.3.14.ebuild
index 0c6d8bd81b9a..93739ef6be54 100644
--- a/dev-db/unixODBC/unixODBC-2.3.14.ebuild
+++ b/dev-db/unixODBC/unixODBC-2.3.14.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
@@ -11,7 +11,7 @@ SRC_URI="https://www.unixodbc.org/unixODBC-${PV}.tar.gz"
LICENSE="GPL-2 LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
IUSE="+minimal odbcmanual static-libs unicode"
RDEPEND="
diff --git a/dev-debug/gef/gef-2023.08.ebuild b/dev-debug/gef/gef-2023.08.ebuild
index f1e8b847ea11..0cbefa618cfb 100644
--- a/dev-debug/gef/gef-2023.08.ebuild
+++ b/dev-debug/gef/gef-2023.08.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/hugsy/gef"
else
SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
+ KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64"
fi
LICENSE="MIT"
diff --git a/dev-debug/gef/gef-2025.01.ebuild b/dev-debug/gef/gef-2025.01.ebuild
index 0ad1e35635be..5d430dc12d70 100644
--- a/dev-debug/gef/gef-2025.01.ebuild
+++ b/dev-debug/gef/gef-2025.01.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/hugsy/gef"
else
SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 x86"
+ KEYWORDS="amd64 ~arm64"
fi
LICENSE="MIT"
diff --git a/dev-debug/gef/gef-2026.01.ebuild b/dev-debug/gef/gef-2026.01.ebuild
index 3026e6c21870..eef7edd4fd88 100644
--- a/dev-debug/gef/gef-2026.01.ebuild
+++ b/dev-debug/gef/gef-2026.01.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/hugsy/gef"
else
SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 x86"
+ KEYWORDS="amd64 ~arm64"
fi
LICENSE="MIT"
diff --git a/dev-debug/gef/gef-9999.ebuild b/dev-debug/gef/gef-9999.ebuild
index e6f8121a7c7a..a055f45f5612 100644
--- a/dev-debug/gef/gef-9999.ebuild
+++ b/dev-debug/gef/gef-9999.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://github.com/hugsy/gef"
else
SRC_URI="https://github.com/hugsy/gef/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64"
fi
LICENSE="MIT"
diff --git a/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild b/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild
index 6d1a95f91eef..0a4774da1457 100644
--- a/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild
+++ b/dev-debug/pwndbg/pwndbg-20250418-r1.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == "99999999" ]]; then
else
MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}"
SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 x86"
+ KEYWORDS="amd64 ~arm64"
S="${WORKDIR}/${PN}-${MY_PV}"
fi
diff --git a/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild b/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild
index b2cfef919c06..80dc425a921e 100644
--- a/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild
+++ b/dev-debug/pwndbg/pwndbg-20250530-r3.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == "99999999" ]]; then
else
MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}"
SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64"
S="${WORKDIR}/${PN}-${MY_PV}"
fi
diff --git a/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild b/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild
index 2767f63e6fdc..79beef91a7c0 100644
--- a/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild
+++ b/dev-debug/pwndbg/pwndbg-20251010-r3.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == "99999999" ]]; then
else
MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}"
SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64"
S="${WORKDIR}/${PN}-${MY_PV}"
fi
diff --git a/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild b/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild
index 2767f63e6fdc..79beef91a7c0 100644
--- a/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild
+++ b/dev-debug/pwndbg/pwndbg-20251020-r3.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == "99999999" ]]; then
else
MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}"
SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64"
S="${WORKDIR}/${PN}-${MY_PV}"
fi
diff --git a/dev-debug/pwndbg/pwndbg-99999999.ebuild b/dev-debug/pwndbg/pwndbg-99999999.ebuild
index 2767f63e6fdc..79beef91a7c0 100644
--- a/dev-debug/pwndbg/pwndbg-99999999.ebuild
+++ b/dev-debug/pwndbg/pwndbg-99999999.ebuild
@@ -18,7 +18,7 @@ if [[ ${PV} == "99999999" ]]; then
else
MY_PV="${PV:0:4}.${PV:4:2}.${PV:6:2}"
SRC_URI="https://github.com/pwndbg/pwndbg/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64"
S="${WORKDIR}/${PN}-${MY_PV}"
fi
diff --git a/dev-embedded/esptool/esptool-5.4.0.ebuild b/dev-embedded/esptool/esptool-5.4.0.ebuild
index bffae56638b8..7567af1c19e9 100644
--- a/dev-embedded/esptool/esptool-5.4.0.ebuild
+++ b/dev-embedded/esptool/esptool-5.4.0.ebuild
@@ -15,7 +15,7 @@ SRC_URI="https://github.com/espressif/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm"
+KEYWORDS="~amd64 ~arm ~riscv"
RDEPEND="
$(python_gen_cond_dep '
diff --git a/dev-java/leiningen-bin/leiningen-bin-2.12.0.ebuild b/dev-java/leiningen-bin/leiningen-bin-2.12.0.ebuild
index 37d0532e4648..1cd06a542376 100644
--- a/dev-java/leiningen-bin/leiningen-bin-2.12.0.ebuild
+++ b/dev-java/leiningen-bin/leiningen-bin-2.12.0.ebuild
@@ -18,7 +18,7 @@ SRC_URI="
LICENSE="EPL-1.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x64-macos"
+KEYWORDS="~amd64 arm64 ~x64-macos"
RDEPEND=">=virtual/jre-1.8"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-leiningen )"
diff --git a/dev-lang/erlang/erlang-29.0.ebuild b/dev-lang/erlang/erlang-29.0.ebuild
index d46825d612d0..d99c9b2fa61e 100644
--- a/dev-lang/erlang/erlang-29.0.ebuild
+++ b/dev-lang/erlang/erlang-29.0.ebuild
@@ -22,7 +22,7 @@ LICENSE="Apache-2.0"
# same build of ERTS that was used when compiling the code. See
# http://erlang.org/doc/system_principles/misc.html for more information.
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos ~x64-solaris"
IUSE="doc java +kpoll odbc sctp ssl systemd tk wxwidgets"
RDEPEND="
diff --git a/dev-lang/spidermonkey/Manifest b/dev-lang/spidermonkey/Manifest
index d6cfdf7fd09b..c2b7c51af7ed 100644
--- a/dev-lang/spidermonkey/Manifest
+++ b/dev-lang/spidermonkey/Manifest
@@ -6,11 +6,13 @@ DIST firefox-140.11.0esr.source.tar.xz 637083992 BLAKE2B 987913236b1d64cb0a17fa2
DIST firefox-140.12.0esr.source.tar.xz 641934156 BLAKE2B c9e3b2fd860edf1e91475419a7420f9d22155cd641226c70f381650d9df2fbb450c85d8f4e1b02eaf7ca86d4ce09ce8cba5674e1afcc4810ae5dd3cb70050cbb SHA512 3d598dd964bca074d11b71f84d586811b0a736bdd4d1e6cedb9286c56b1e11584e85ca1d0369c9b2f8d9e4d0eaf014d1b9232a96e71ac25f71fa9ed0807f642d
DIST firefox-140.13.0esr.source.tar.xz 644768324 BLAKE2B c30fcd2ddd6361cd0a94d4b4fa9cc3d48874e10da273f49fc42fd1397a09974aec18b35e9bb3aa13652736116dfdb4c6a2816ce3bf86acbce6ffa9340ae0f41a SHA512 937a4103d71c5e1e4bf051821729f6ea70b5c18d444930a487695cc23d74712a0134047248f6ac02305e01becb705426a55b9d89739f02a01eda01ecf5bc27f1
DIST firefox-140.14.0esr.source.tar.xz 643083928 BLAKE2B cede36a6a323db711972c10159de2ac014c7554ce93f301a521f80ced4e4a3f4938867aa3ce423434e0365cae136ba30f057eb053120803e55a30353f4665f21 SHA512 0609cca9bfaecbff56cdf13458534bd8cfa43f139056867d3b6394a767281599ee600f83165ad25565ced59b552592aa84431357458ccecfbe5bf104dca501c7
+DIST firefox-140.16.0esr.source.tar.xz 632581380 BLAKE2B 1fb3bde4477e330cbe080ef322326095e905322851a32f097aff49dc55926a5502dfc06be35411a5924433d6f2b75fbd7891bafa537dad7245b5080393eddf9d SHA512 fabf5b481594a9a860b6ae379d2ee89ba291b807c94334ee15bad1fe862edb47c22e890d892e33d6a6ec57fce4ab12aa9c9c6fa4a501b881ecc6211ac04bd9a0
DIST firefox-140esr-patches-10.tar.xz 15052 BLAKE2B 1e9f1d401590958422f91d5df98dc2286b76de1cefd279ede23afa9493ec61d4a231873e000ea73bc26cc2433af7a2a6d87f94bc257a2763283b3d3d5e683462 SHA512 8276a3b37424d476f63c4669124120ab310d8a132e4fb82250fec033683456960fb83e31e12860ccb5064268bc72ebabb65b212bba161766832109dbd3d14676
DIST firefox-140esr-patches-12.tar.xz 16200 BLAKE2B 51110f80537b2c3fd2e53e6c65c8d19b78b6ec828161da8697dfb3eb008c39e036517c78b0491f1131351967d3a775154d795bafe978850415b2f9fa5415b8a2 SHA512 a73007646116a1e50da1e2cfab623794283ba6890743c17bfefe4115ee4b1dca5a55fe1ed798a6efcad0c2ff708dd38bab0d328007b4ebd99c9c90f880920bc4
DIST firefox-140esr-patches-13.tar.xz 15628 BLAKE2B 824c3d42f2f6cf70932fe395cf11dfe9043e09e20d6dfd2bd64ce4567206def45424e82b738f27c71648f0b2d97608746d22565cf7aa35713dedd71a24cde449 SHA512 d4d59818944f6a8213598308a1095a0f3c9818e6c517587e4630056d432a0e9673ad627447ca18dfa884dbb35bc2921e54cfc63f9c5646765e0f66a75279584d
DIST firefox-153.1.0esr.source.tar.xz 801285696 BLAKE2B c72b60b0cace881b4cee125615f6710b3c2aa1d5498100b7d764ecb324f0bc961c992f9829cfd051ffd54985ed0403b8684ec47d9043b30994338dc293455905 SHA512 0e5be18878a1bb8575d4ff03b499a092663fcd1779a05b59b82a8b663a3d7047cf3d6f971faeb3d1262f83b23022a703a2033e8ea38bcbd9c85f44bdd35d86c1
DIST firefox-153.2.0esr.source.tar.xz 807705672 BLAKE2B 73798f3bb282f39ceb302989caf74ca4385c9079b98c783f8ac16401feae820a7183fb35ece9308bb1e029356d1e7d6ebe745031ed4f0706de565fb3ab8903df SHA512 a8cd4784bb52ca89c0fe37404e894c044f6145c62e9fcdeffe621fde81ae4602078be575e26c90d83e5e47f26675d3ee897cd6a20027d09d4ba7d0e785ce39bc
+DIST firefox-153.3.0esr.source.tar.xz 804997520 BLAKE2B a01a4e3efec1c81ca462b915e448750a4d76ec81fad4cb2b909db584cd14df7437154fde82bc6547689466e811dccf70dc8d27d1e76b00572f5137d653040319 SHA512 56a5e092f0aba91febf01d227e8068520513f632d09c5ffbad4cbb2de307d9066425f353a1b7fcf5648733e02a9b17cfc9aaed5e39d7562a6b143b1c9827a668
DIST firefox-153esr-patches-01.tar.xz 11308 BLAKE2B cfb7e8528f46e780ff10d728d6f2f00215c9cb940f3ba289aafee183199fd2a38cbe866697b5bd89458d8dce7e82e9a7dc6977e817bbeac1a01178a64adb0405 SHA512 11895ae7eba03b12ae60c280c3ea555c2954dd15eaa8a459f9a95b96629723ed599ab4e7738b33f1bdb0d09d19bccb53d511eaac9913a58e6418c11fe93c92bc
DIST firefox-153esr-patches-03.tar.xz 13056 BLAKE2B 25dcb9db586180e2e695a148eabcf226a271abac110c632bfca0f8f659387c2d14c5a5fd5706eb300cf990a4f424e34abc3d7edb3db0e62b662aa0ade47b75a9 SHA512 686164839139581802e08cae254d84e2e5c13a8f0826b47be645c697024af89eec51175f823586851ff18de717a366362898bb5a42ecbaa863ccfaf11af66dd3
DIST spidermonkey-115-patches-02.tar.xz 4896 BLAKE2B f78d9804c1427b45d6fda496b4991ec6f672dec9ce031ed57a2920fa1968c942a235f46e40166c8ab8d731a1963f322d34bb2f6984133179175e6f7376d27d13 SHA512 11fd01152d1e7b8ca89bf628076e1f4fb4f1ba6c9dc0f9dd544252495c580c04e4d5ffc238d5587f9e993aa91a47828333564ca55f60e008bd370089cd07d2e6
diff --git a/dev-lang/spidermonkey/spidermonkey-140.16.0.ebuild b/dev-lang/spidermonkey/spidermonkey-140.16.0.ebuild
new file mode 100644
index 000000000000..13441e316a7b
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-140.16.0.ebuild
@@ -0,0 +1,467 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+FIREFOX_PATCHSET="firefox-140esr-patches-13.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-140-patches-02.tar.xz"
+
+LLVM_COMPAT=( 20 21 )
+RUST_NEEDS_LLVM=1
+RUST_MIN_VER=1.82.0
+RUST_MAX_VER=1.94.1
+
+PYTHON_COMPAT=( python3_{12..14} )
+PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+
+WANT_AUTOCONF="2.1"
+
+inherit check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust toolchain-funcs
+
+MY_PN="mozjs"
+MY_PV="${PV/_pre*}"
+
+MY_MAJOR=$(ver_cut 1)
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="firefox"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+)
+
+DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+S="${WORKDIR}/firefox-${PV%_*}"
+LICENSE="MPL-2.0"
+SLOT="$(ver_cut 1)/140.11.0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+IUSE="clang cpu_flags_arm_neon debug +jit test"
+
+#RESTRICT="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ clang? (
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/lld:${LLVM_SLOT}
+ llvm-core/llvm:${LLVM_SLOT}
+ )
+ ')
+ >=dev-util/cbindgen-0.27.0
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+DEPEND=">=dev-libs/icu-76.1:=
+ >=dev-libs/nspr-4.36
+ sys-libs/readline:0=
+ virtual/zlib:="
+RDEPEND="${DEPEND}"
+
+llvm_check_deps() {
+ if use clang ; then
+ if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
+ einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! tc-ld-is-mold ; then
+ if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+python_check_deps() {
+ if use test ; then
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4400M"
+ else
+ CHECKREQS_DISK_BUILD="4300M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ filter-lto
+ fi
+
+ if [[ ${use_lto} = yes ]]; then
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
+ if use test ; then
+ CHECKREQS_DISK_BUILD="4400M"
+ else
+ CHECKREQS_DISK_BUILD="4300M"
+ fi
+
+ check-reqs_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+ python-any-r1_pkg_setup
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ export use_lto
+}
+
+src_prepare() {
+ if [[ ${use_lto} == "yes" ]]; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ fi
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ elif use arm64 ; then
+ export RUST_TARGET="aarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
+ fi
+ fi
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
+ die "sed failed to set toolchain prefix"
+
+ einfo "Removing pre-built binaries ..."
+ find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
+ einfo "Current LDFLAGS: ${LDFLAGS}"
+ einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+ local have_switched_compiler=
+ if use clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ READELF=llvm-readelf
+ OBJDUMP=llvm-objdump
+
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ READELF=readelf
+ OBJDUMP=objdump
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # ../python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-project=js
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --host="${CBUILD:-${CHOST}}" \
+ --target="${CHOST}" \
+ --disable-ctype \
+ --disable-jemalloc \
+ --disable-smoosh \
+ --disable-strip \
+ --enable-packed-relative-relocs \
+ --enable-readline \
+ --enable-release \
+ --enable-shared-js \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --with-intl-api \
+ --with-system-icu \
+ --with-system-nspr \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-"
+
+ mozconfig_use_enable debug
+ mozconfig_use_enable jit
+ mozconfig_use_enable test tests
+
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-debug-symbols
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac '-debug' --enable-optimize
+ mozconfig_add_options_ac '-debug' --disable-debug-symbols
+ mozconfig_add_options_ac '-debug' --disable-real-time-tracing
+ fi
+
+ # We always end up disabling this at some point due to newer rust versions. bgo#933372
+ mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb=yes
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb-interwork=no
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if [[ ${use_lto} == "yes" ]] ; then
+ if use clang ; then
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac '+lto' --enable-linker=mold
+ else
+ mozconfig_add_options_ac '+lto' --enable-linker=lld
+ fi
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ mozconfig_add_options_ac '+lto' --enable-linker=bfd
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ # Pass MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
+ einfo "Build LDFLAGS: ${LDFLAGS}"
+ einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+ ./mach configure || die
+}
+
+src_compile() {
+ ./mach build --verbose || die
+}
+
+src_test() {
+ if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
+ einfo "Smoke-test successful, continuing with full test suite"
+ else
+ die "Smoke-test failed: did interpreter initialization fail?"
+ fi
+
+ cp "${FILESDIR}"/spidermonkey-140-known-test-failures.txt "${T}"/known_test_failures.list || die
+ ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
+}
+
+src_install() {
+ cd "${BUILD_DIR}" || die
+ default
+
+ # fix soname links
+ pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
+ mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
+ popd &>/dev/null || die
+
+ # remove unneeded files
+ rm \
+ "${ED}"/usr/bin/js${MY_MAJOR}-config \
+ "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
+
+ # fix permissions
+ chmod -x \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
+ "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
+}
diff --git a/dev-lang/spidermonkey/spidermonkey-153.3.0.ebuild b/dev-lang/spidermonkey/spidermonkey-153.3.0.ebuild
new file mode 100644
index 000000000000..25423090fdcc
--- /dev/null
+++ b/dev-lang/spidermonkey/spidermonkey-153.3.0.ebuild
@@ -0,0 +1,476 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+FIREFOX_PATCHSET="firefox-153esr-patches-03.tar.xz"
+SPIDERMONKEY_PATCHSET="spidermonkey-140-patches-02.tar.xz"
+
+LLVM_COMPAT=( 22 )
+RUST_NEEDS_LLVM=1
+RUST_MIN_VER=1.90.0
+# RUST_MAX_VER=1.94.1
+
+PYTHON_COMPAT=( python3_{12..14} )
+PYTHON_REQ_USE="ncurses,ssl,xml(+)"
+
+WANT_AUTOCONF="2.1"
+
+inherit check-reqs flag-o-matic llvm-r1 multiprocessing python-any-r1 rust toolchain-funcs
+
+MY_PN="mozjs"
+MY_PV="${PV/_pre*}"
+
+MY_MAJOR=$(ver_cut 1)
+
+MOZ_ESR=yes
+
+MOZ_PV=${PV}
+MOZ_PV_SUFFIX=
+if [[ ${PV} =~ (_(alpha|beta|rc).*)$ ]] ; then
+ MOZ_PV_SUFFIX=${BASH_REMATCH[1]}
+
+ # Convert the ebuild version to the upstream Mozilla version
+ MOZ_PV="${MOZ_PV/_alpha/a}" # Handle alpha for SRC_URI
+ MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI
+ MOZ_PV="${MOZ_PV%%_rc*}" # Handle rc for SRC_URI
+fi
+
+if [[ -n ${MOZ_ESR} ]] ; then
+ # ESR releases have slightly different version numbers
+ MOZ_PV="${MOZ_PV}esr"
+fi
+
+MOZ_PN="firefox"
+MOZ_P="${MOZ_PN}-${MOZ_PV}"
+MOZ_PV_DISTFILES="${MOZ_PV}${MOZ_PV_SUFFIX}"
+MOZ_P_DISTFILES="${MOZ_PN}-${MOZ_PV_DISTFILES}"
+
+MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/releases/${MOZ_PV}"
+
+if [[ ${PV} == *_rc* ]] ; then
+ MOZ_SRC_BASE_URI="https://archive.mozilla.org/pub/${MOZ_PN}/candidates/${MOZ_PV}-candidates/build${PV##*_rc}"
+fi
+
+PATCH_URIS=(
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${FIREFOX_PATCHSET}
+ https://dev.gentoo.org/~juippis/mozilla/patchsets/${SPIDERMONKEY_PATCHSET}
+)
+
+DESCRIPTION="Mozilla's JavaScript engine written in C and C++"
+HOMEPAGE="https://spidermonkey.dev https://firefox-source-docs.mozilla.org/js/index.html"
+SRC_URI="${MOZ_SRC_BASE_URI}/source/${MOZ_P}.source.tar.xz -> ${MOZ_P_DISTFILES}.source.tar.xz
+ ${PATCH_URIS[@]}"
+S="${WORKDIR}/firefox-${PV%_*}"
+LICENSE="MPL-2.0"
+SLOT="$(ver_cut 1)/153.1.0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+IUSE="clang cpu_flags_arm_neon debug +jit test"
+
+#RESTRICT="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="${PYTHON_DEPS}
+ $(llvm_gen_dep '
+ llvm-core/llvm:${LLVM_SLOT}
+ clang? (
+ llvm-core/clang:${LLVM_SLOT}
+ llvm-core/lld:${LLVM_SLOT}
+ )
+ ')
+ >=dev-util/cbindgen-0.27.0
+ virtual/pkgconfig
+ test? (
+ $(python_gen_any_dep 'dev-python/six[${PYTHON_USEDEP}]')
+ )"
+DEPEND=">=dev-libs/icu-78.1:=
+ >=dev-libs/nspr-4.39
+ sys-libs/readline:0=
+ virtual/zlib:="
+RDEPEND="${DEPEND}"
+
+llvm_check_deps() {
+ if use clang ; then
+ if ! has_version -b "llvm-core/clang:${LLVM_SLOT}" ; then
+ einfo "llvm-core/clang:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! has_version -b "llvm-core/llvm:${LLVM_SLOT}" ; then
+ einfo "llvm-core/llvm:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+
+ if ! tc-ld-is-mold ; then
+ if ! has_version -b "llvm-core/lld:${LLVM_SLOT}" ; then
+ einfo "llvm-core/lld:${LLVM_SLOT} is missing! Cannot use LLVM slot ${LLVM_SLOT} ..." >&2
+ return 1
+ fi
+ fi
+ fi
+
+ einfo "Using LLVM slot ${LLVM_SLOT} to build" >&2
+}
+
+mozconfig_add_options_ac() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "ac_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_add_options_mk() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 2 ]] ; then
+ die "${FUNCNAME} requires at least two arguments"
+ fi
+
+ local reason=${1}
+ shift
+
+ local option
+ for option in ${@} ; do
+ echo "mk_add_options ${option} # ${reason}" >>${MOZCONFIG}
+ done
+}
+
+mozconfig_use_enable() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ if [[ ${#} -lt 1 ]] ; then
+ die "${FUNCNAME} requires at least one arguments"
+ fi
+
+ local flag=$(use_enable "${@}")
+ mozconfig_add_options_ac "$(use ${1} && echo +${1} || echo -${1})" "${flag}"
+}
+
+python_check_deps() {
+ if use test ; then
+ python_has_version "dev-python/six[${PYTHON_USEDEP}]"
+ fi
+}
+
+pkg_pretend() {
+ if use test ; then
+ CHECKREQS_DISK_BUILD="5600M"
+ else
+ CHECKREQS_DISK_BUILD="5500M"
+ fi
+
+ check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+ # Get LTO from environment; export after this phase for use in src_configure (etc)
+ use_lto=no
+
+ if [[ ${MERGE_TYPE} != binary ]] ; then
+ if tc-is-lto; then
+ use_lto=yes
+ # LTO is handled via configure
+ filter-lto
+ fi
+
+ if [[ ${use_lto} = yes ]]; then
+ # -Werror=lto-type-mismatch -Werror=odr are going to fail with GCC,
+ # bmo#1516758, bgo#942288
+ filter-flags -Werror=lto-type-mismatch -Werror=odr
+ fi
+
+ if use test ; then
+ CHECKREQS_DISK_BUILD="5600M"
+ else
+ CHECKREQS_DISK_BUILD="5500M"
+ fi
+
+ check-reqs_pkg_setup
+ llvm-r1_pkg_setup
+ rust_pkg_setup
+ python-any-r1_pkg_setup
+
+ # Build system is using /proc/self/oom_score_adj, bug #604394
+ addpredict /proc/self/oom_score_adj
+
+ if ! mountpoint -q /dev/shm ; then
+ # If /dev/shm is not available, configure is known to fail with
+ # a traceback report referencing /usr/lib/pythonN.N/multiprocessing/synchronize.py
+ ewarn "/dev/shm is not mounted -- expect build failures!"
+ fi
+
+ # Ensure we use C locale when building, bug #746215
+ export LC_ALL=C
+ fi
+
+ export use_lto
+}
+
+src_prepare() {
+ if [[ ${use_lto} == "yes" ]]; then
+ rm -v "${WORKDIR}"/firefox-patches/*-LTO-Only-enable-LTO-*.patch || die
+ fi
+
+ # Workaround for bgo #915651,915651,929013 and bmo#1988166 on musl
+ if use elibc_glibc ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-967694-musl-prctrl-exception-on-musl.patch || die
+ else
+ # in musl, the rust-1.98 patch probably handles RUST_TARGET like we want to?
+ local rustver=$(rustc --version | cut -d' ' -f2)
+ if ver_test "${rustver}" -ge 1.98 ; then
+ rm -v "${WORKDIR}"/firefox-patches/*bgo-748849-RUST_TARGET_override.patch || die
+ else
+ rm -v "${WORKDIR}"/firefox-patches/*-bmo-2053518-handle-oe-linux-rust-targets-added-in-rustc-1.98.patch || die
+ fi
+ fi
+
+ eapply "${WORKDIR}"/firefox-patches
+ eapply "${WORKDIR}"/spidermonkey-patches
+
+ default
+
+ # Make cargo respect MAKEOPTS
+ export CARGO_BUILD_JOBS="$(makeopts_jobs)"
+
+ # Workaround for bgo #915651,915651,929013 on musl
+ if ! use elibc_glibc ; then
+ if use amd64 ; then
+ export RUST_TARGET="x86_64-unknown-linux-musl"
+ elif use x86 ; then
+ export RUST_TARGET="i686-unknown-linux-musl"
+ elif use arm64 ; then
+ export RUST_TARGET="aarch64-unknown-linux-musl"
+ elif use ppc64 ; then
+ export RUST_TARGET="powerpc64le-unknown-linux-musl"
+ else
+ die "Unknown musl chost, please post your rustc -vV along with emerge --info on Gentoo's bug #915651"
+ fi
+ fi
+
+ # sed-in toolchain prefix
+ sed -i \
+ -e "s/objdump/${CHOST}-objdump/" \
+ python/mozbuild/mozbuild/configure/check_debug_ranges.py ||
+ die "sed failed to set toolchain prefix"
+
+ einfo "Removing pre-built binaries ..."
+ find third_party -type f \( -name '*.so' -o -name '*.o' \) -print -delete || die
+
+ # Create build dir
+ BUILD_DIR="${WORKDIR}/${PN}_build"
+ mkdir -p "${BUILD_DIR}" || die
+}
+
+src_configure() {
+ # Show flags set at the beginning
+ einfo "Current BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Current CFLAGS: ${CFLAGS}"
+ einfo "Current CXXFLAGS: ${CXXFLAGS}"
+ einfo "Current LDFLAGS: ${LDFLAGS}"
+ einfo "Current RUSTFLAGS: ${RUSTFLAGS}"
+
+ local have_switched_compiler=
+ if use clang ; then
+ # Force clang
+ einfo "Enforcing the use of clang due to USE=clang ..."
+
+ local version_clang=$(clang --version 2>/dev/null | grep -F -- 'clang version' | awk '{ print $3 }')
+ [[ -n ${version_clang} ]] && version_clang=$(ver_cut 1 "${version_clang}")
+ [[ -z ${version_clang} ]] && die "Failed to read clang version!"
+
+ if tc-is-gcc; then
+ have_switched_compiler=yes
+ fi
+
+ AR=llvm-ar
+ CC=${CHOST}-clang-${version_clang}
+ CXX=${CHOST}-clang++-${version_clang}
+ NM=llvm-nm
+ RANLIB=llvm-ranlib
+ READELF=llvm-readelf
+ OBJDUMP=llvm-objdump
+
+ elif ! use clang && ! tc-is-gcc ; then
+ # Force gcc
+ have_switched_compiler=yes
+ einfo "Enforcing the use of gcc due to USE=-clang ..."
+ AR=gcc-ar
+ CC=${CHOST}-gcc
+ CXX=${CHOST}-g++
+ NM=gcc-nm
+ RANLIB=gcc-ranlib
+ READELF=readelf
+ OBJDUMP=objdump
+ fi
+
+ if [[ -n "${have_switched_compiler}" ]] ; then
+ # Because we switched active compiler we have to ensure
+ # that no unsupported flags are set
+ strip-unsupported-flags
+ fi
+
+ # Ensure we use correct toolchain,
+ # AS is used in a non-standard way by upstream, #bmo1654031
+ export HOST_CC="$(tc-getBUILD_CC)"
+ export HOST_CXX="$(tc-getBUILD_CXX)"
+ export AS="$(tc-getCC) -c"
+
+ tc-export CC CXX LD AR AS NM OBJDUMP RANLIB READELF PKG_CONFIG
+
+ # Pass the correct toolchain paths through cbindgen
+ if tc-is-cross-compiler ; then
+ export BINDGEN_CFLAGS="${SYSROOT:+--sysroot=${ESYSROOT}} --target=${CHOST} ${BINDGEN_CFLAGS-}"
+ fi
+
+ # ../python/mach/mach/mixin/process.py fails to detect SHELL
+ export SHELL="${EPREFIX}/bin/bash"
+
+ # Set state path
+ export MOZBUILD_STATE_PATH="${BUILD_DIR}"
+
+ # Set MOZCONFIG
+ export MOZCONFIG="${S}/.mozconfig"
+
+ # Initialize MOZCONFIG
+ mozconfig_add_options_ac '' --enable-project=js
+
+ mozconfig_add_options_ac 'Gentoo default' \
+ --host="${CBUILD:-${CHOST}}" \
+ --target="${CHOST}" \
+ --disable-ctype \
+ --disable-jemalloc \
+ --disable-smoosh \
+ --disable-strip \
+ --enable-packed-relative-relocs \
+ --enable-readline \
+ --enable-release \
+ --enable-shared-js \
+ --libdir="${EPREFIX}/usr/$(get_libdir)" \
+ --prefix="${EPREFIX}/usr" \
+ --with-intl-api \
+ --with-system-icu \
+ --with-system-nspr \
+ --with-system-zlib \
+ --with-toolchain-prefix="${CHOST}-"
+
+ mozconfig_use_enable debug
+ mozconfig_use_enable jit
+ mozconfig_use_enable test tests
+
+ if use debug ; then
+ mozconfig_add_options_ac '+debug' --disable-optimize
+ mozconfig_add_options_ac '+debug' --enable-debug-symbols
+ mozconfig_add_options_ac '+debug' --enable-real-time-tracing
+ else
+ mozconfig_add_options_ac '-debug' --enable-optimize
+ mozconfig_add_options_ac '-debug' --disable-debug-symbols
+ mozconfig_add_options_ac '-debug' --disable-real-time-tracing
+ fi
+
+ # We always end up disabling this at some point due to newer rust versions. bgo#933372
+ mozconfig_add_options_ac '--disable-rust-simd' --disable-rust-simd
+
+ # Modifications to better support ARM, bug 717344
+ if use cpu_flags_arm_neon ; then
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-fpu=neon
+
+ if ! tc-is-clang ; then
+ # thumb options aren't supported when using clang, bug 666966
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb=yes
+ mozconfig_add_options_ac '+cpu_flags_arm_neon' --with-thumb-interwork=no
+ fi
+ fi
+
+ # Tell build system that we want to use LTO
+ if [[ ${use_lto} == "yes" ]] ; then
+ if use clang ; then
+ if tc-ld-is-mold ; then
+ mozconfig_add_options_ac '+lto' --enable-linker=mold
+ else
+ mozconfig_add_options_ac '+lto' --enable-linker=lld
+ fi
+ mozconfig_add_options_ac '+lto' --enable-lto=cross
+
+ else
+ mozconfig_add_options_ac '+lto' --enable-linker=bfd
+ mozconfig_add_options_ac '+lto' --enable-lto=full
+ fi
+ fi
+
+ # LTO flag was handled via configure
+ filter-lto
+
+ # Pass MAKEOPTS to build system
+ export MOZ_MAKE_FLAGS="${MAKEOPTS}"
+
+ # Use system's Python environment
+ export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE="none"
+ export PIP_NETWORK_INSTALL_RESTRICTED_VIRTUALENVS=mach
+
+ # Disable notification when build system has finished
+ export MOZ_NOSPAM=1
+
+ # Portage sets XARGS environment variable to "xargs -r" by default which
+ # breaks build system's check_prog() function which doesn't support arguments
+ mozconfig_add_options_ac 'Gentoo default' "XARGS=${EPREFIX}/usr/bin/xargs"
+
+ # Set build dir
+ mozconfig_add_options_mk 'Gentoo default' "MOZ_OBJDIR=${BUILD_DIR}"
+
+ # Show flags we will use
+ einfo "Build BINDGEN_CFLAGS:\t${BINDGEN_CFLAGS:-no value set}"
+ einfo "Build CFLAGS: ${CFLAGS}"
+ einfo "Build CXXFLAGS: ${CXXFLAGS}"
+ einfo "Build LDFLAGS: ${LDFLAGS}"
+ einfo "Build RUSTFLAGS: ${RUSTFLAGS}"
+
+ ./mach configure || die
+}
+
+src_compile() {
+ ./mach build --verbose || die
+}
+
+src_test() {
+ if "${BUILD_DIR}/js/src/js" -e 'print("Hello world!")'; then
+ einfo "Smoke-test successful, continuing with full test suite"
+ else
+ die "Smoke-test failed: did interpreter initialization fail?"
+ fi
+
+ cp "${FILESDIR}"/spidermonkey-${PV%%.*}-known-test-failures.txt "${T}"/known_test_failures.list || die
+ ./mach jstests --exclude-file="${T}"/known_test_failures.list || die
+}
+
+src_install() {
+ cd "${BUILD_DIR}" || die
+ default
+
+ # fix soname links
+ pushd "${ED}"/usr/$(get_libdir) &>/dev/null || die
+ mv lib${MY_PN}-${MY_MAJOR}.so lib${MY_PN}-${MY_MAJOR}.so.0.0.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0.0.0 lib${MY_PN}-${MY_MAJOR}.so.0 || die
+ ln -s lib${MY_PN}-${MY_MAJOR}.so.0 lib${MY_PN}-${MY_MAJOR}.so || die
+ popd &>/dev/null || die
+
+ # remove unneeded files
+ rm \
+ "${ED}"/usr/bin/js${MY_MAJOR}-config \
+ "${ED}"/usr/$(get_libdir)/libjs_static.ajs || die
+
+ # fix permissions
+ chmod -x \
+ "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc \
+ "${ED}"/usr/include/mozjs-${MY_MAJOR}/js-config.h || die
+}
diff --git a/dev-libs/apache-arrow/apache-arrow-23.0.1.ebuild b/dev-libs/apache-arrow/apache-arrow-23.0.1.ebuild
index e77b8a3dcf35..ce3b23470679 100644
--- a/dev-libs/apache-arrow/apache-arrow-23.0.1.ebuild
+++ b/dev-libs/apache-arrow/apache-arrow-23.0.1.ebuild
@@ -30,7 +30,7 @@ S="${WORKDIR}/${P}/cpp"
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~riscv ~s390 x86"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~riscv ~s390"
IUSE="
+brotli bzip2 +compute +dataset +json lz4 +parquet +re2 +snappy ssl
test zlib zstd
diff --git a/dev-libs/apache-arrow/apache-arrow-24.0.0.ebuild b/dev-libs/apache-arrow/apache-arrow-24.0.0.ebuild
index 610e577dab91..18fffe9fa00d 100644
--- a/dev-libs/apache-arrow/apache-arrow-24.0.0.ebuild
+++ b/dev-libs/apache-arrow/apache-arrow-24.0.0.ebuild
@@ -30,7 +30,7 @@ S="${WORKDIR}/${P}/cpp"
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~riscv ~s390 x86"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~riscv ~s390"
IUSE="
+brotli bzip2 +compute +dataset +json lz4 +parquet +re2 +snappy ssl
test zlib zstd
diff --git a/dev-libs/apache-arrow/apache-arrow-25.0.1-r1.ebuild b/dev-libs/apache-arrow/apache-arrow-25.0.1-r1.ebuild
index 3618f2e2ae88..d3065fd048e4 100644
--- a/dev-libs/apache-arrow/apache-arrow-25.0.1-r1.ebuild
+++ b/dev-libs/apache-arrow/apache-arrow-25.0.1-r1.ebuild
@@ -30,7 +30,7 @@ S="${WORKDIR}/${P}/cpp"
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~riscv ~s390 x86"
+KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ~riscv ~s390"
IUSE="
+brotli bzip2 +compute +dataset +json lz4 +parquet +re2 +snappy ssl
test zlib zstd
diff --git a/dev-libs/botan/botan-3.13.0.ebuild b/dev-libs/botan/botan-3.13.0.ebuild
index ff73f92bf3bf..abb25e139c44 100644
--- a/dev-libs/botan/botan-3.13.0.ebuild
+++ b/dev-libs/botan/botan-3.13.0.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="BSD-2"
# New major versions are parallel-installable
SLOT="$(ver_cut 1)/$(ver_cut 1-2)" # soname version
-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="doc boost bzip2 lzma python static-libs sqlite test tools zlib"
RESTRICT="!test? ( test )"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/dev-libs/collada-dom/collada-dom-2.5.0-r3.ebuild b/dev-libs/collada-dom/collada-dom-2.5.0-r3.ebuild
index 856aa02f8924..5892dfb4f2ad 100644
--- a/dev-libs/collada-dom/collada-dom-2.5.0-r3.ebuild
+++ b/dev-libs/collada-dom/collada-dom-2.5.0-r3.ebuild
@@ -10,7 +10,7 @@ if [[ ${PV} == *9999 ]]; then
EGIT_REPO_URI="https://github.com/rdiankov/collada-dom"
else
SRC_URI="https://github.com/rdiankov/collada-dom/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ppc64 x86"
fi
DESCRIPTION="COLLADA Document Object Model (DOM) C++ Library"
diff --git a/dev-libs/elfutils/elfutils-0.196.ebuild b/dev-libs/elfutils/elfutils-0.196.ebuild
index 6f43af1f01f9..64e3da562586 100644
--- a/dev-libs/elfutils/elfutils-0.196.ebuild
+++ b/dev-libs/elfutils/elfutils-0.196.ebuild
@@ -66,6 +66,7 @@ BDEPEND+="
PATCHES=(
"${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
"${FILESDIR}"/${PN}-0.191-musl-macros.patch
+ "${FILESDIR}"/${PN}-0.196-skip-static-test.patch
)
src_prepare() {
diff --git a/dev-libs/elfutils/files/elfutils-0.196-skip-static-test.patch b/dev-libs/elfutils/files/elfutils-0.196-skip-static-test.patch
new file mode 100644
index 000000000000..8bb9642a1841
--- /dev/null
+++ b/dev-libs/elfutils/files/elfutils-0.196-skip-static-test.patch
@@ -0,0 +1,13 @@
+Needed so the test links s.t. we can skip it in the ebuild. It needs
+internal symbols only exposed when linking statically.
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -901,7 +901,7 @@ deleted_lib_so_CFLAGS = $(fpic_CFLAGS) -fasynchronous-unwind-tables
+ aggregate_size_LDADD = $(libdw) $(libelf) $(argp_LDADD)
+ peel_type_LDADD = $(libdw) $(libelf) $(argp_LDADD)
+ vdsosyms_LDADD = $(libeu) $(libdw) $(libelf)
+-elf_from_memory_LDADD = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) $(libeu) -ldl -lpthread
++elf_from_memory_LDADD = $(libdw) -lz $(zip_LIBS) $(libelf) $(libebl) $(libeu) -ldl -lpthread
+ getsrc_die_LDADD = $(libeu) $(libdw) $(libelf)
+ strptr_LDADD = $(libelf)
+ newdata_LDADD = $(libelf)
diff --git a/dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild b/dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild
index 9155c5148016..355251f15aac 100644
--- a/dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild
+++ b/dev-libs/jemalloc/jemalloc-5.3.0-r3.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/jemalloc/jemalloc/releases/download/${PV}/${P}.tar.b
LICENSE="BSD"
SLOT="0/2"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="debug lazy-lock prof stats xmalloc"
HTML_DOCS=( doc/jemalloc.html )
PATCHES=(
diff --git a/dev-libs/kirigami-addons/Manifest b/dev-libs/kirigami-addons/Manifest
index d9ae965ce0d1..5e965610df6f 100644
--- a/dev-libs/kirigami-addons/Manifest
+++ b/dev-libs/kirigami-addons/Manifest
@@ -1,3 +1,3 @@
DIST kirigami-addons-1.12.1.tar.xz 2815592 BLAKE2B 4635e756e7c463b0d7c091db2714a23cf0a005666abf05063be96a0221b4147ec3d701f1b1366014769821fea6f55f9e84ed4aa899b222adccd5b2870a10e267 SHA512 365021b896c8a6ad7bfc1e98ff554040bdc50c109e25b362e8e4dc9219b721cf68092d0cef5b64884c9cee6367d65377621cccd0a9fdd8a79a515c739b136c2d
DIST kirigami-addons-1.13.1.tar.xz 3023492 BLAKE2B 026f56a978b079cb85c3273bcf547dbb84cb783d791a9dd8b88296abac824d94951ddf80e37f01706be0b5a1236456f512749dcda6eb0672db50c1754b3fb4bd SHA512 be7499358b5a30ca44e50b8579a7fbf69569c42cc4bfb28473f05444f534548d301997f4608b3c2ab68bef22e56cbf8b21c474949125d116ac945b7357ca51f8
-DIST kirigami-addons-1.14.0.tar.xz 3068160 BLAKE2B 58d538d2d52b0d027b94cec2e20eebff3d61713fcda60dbb6e95e654bfd2a08c6667cf9c7d536f8314b33cc2bfff321914184995b91ce4ec186b20695dea1aa0 SHA512 46067606afa0c3084f46a3e421b04f0dc51c3105289e24991bb7340d6055592c1de86983635be4fc6375bad5c975def8c378b74bfcd9451b22376ec0306a5740
+DIST kirigami-addons-1.14.1.tar.xz 3073168 BLAKE2B 9a4122bb35bd58e9845eea7f5331fd7cc43c23bc3435e8cd0aa40d223b19a388279a5eace3ffa83f9a32d410882aca8268b5de63fa9728f24f367312f9d3ad59 SHA512 ac5525d3f52a360b08c4977bd6df476191b5f036b74b1eb1fbb4461ba138ca934e1b05e52c04bc7b0628a47cb3fba5d2cdbc08d1b329df2205c0ff22bc087429
diff --git a/dev-libs/kirigami-addons/kirigami-addons-1.14.0.ebuild b/dev-libs/kirigami-addons/kirigami-addons-1.14.1.ebuild
index f55fee8ab698..f55fee8ab698 100644
--- a/dev-libs/kirigami-addons/kirigami-addons-1.14.0.ebuild
+++ b/dev-libs/kirigami-addons/kirigami-addons-1.14.1.ebuild
diff --git a/dev-libs/libayatana-appindicator/Manifest b/dev-libs/libayatana-appindicator/Manifest
index cb0465f4eb96..4821817d27ec 100644
--- a/dev-libs/libayatana-appindicator/Manifest
+++ b/dev-libs/libayatana-appindicator/Manifest
@@ -1 +1,2 @@
DIST libayatana-appindicator-0.5.94.tar.gz 164282 BLAKE2B 3629a6b8647fb71464cd2c2ad5e4abab77544be85a4f720f90ac728c638b6c82a7b538876bdce026dff073f6e1f00260ceea2a593eec5e94bdb56ac454edcedf SHA512 4bd251dd56601dfb99b0085cc272118680c9145cdac671ad6695ef3200e582343a07e99dc30f5a72b586b6e2e60de0042d4a95b9d9eeafa7695b0afe2425dba4
+DIST libayatana-appindicator-0.6.0.tar.gz 167821 BLAKE2B 1b6b8974a0bea8adeea51eb244982332fcc4e66e13dd5bfea23f649d084e22178d2cc1b881a1414f8abd5f72de6b94b8d97c704c6a1f85e679583d315f602536 SHA512 5da126e36650e3953cac4defbd45b5f566b12331ada4c7a7882cb8667f570bef7096d2b7bc03f5cb5dc191bb876c918c4a5f8b8aa551291e053266dc9882c2c9
diff --git a/dev-libs/libayatana-appindicator/libayatana-appindicator-0.6.0.ebuild b/dev-libs/libayatana-appindicator/libayatana-appindicator-0.6.0.ebuild
new file mode 100644
index 000000000000..32f6f88b8fa5
--- /dev/null
+++ b/dev-libs/libayatana-appindicator/libayatana-appindicator-0.6.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VALA_USE_DEPEND="vapigen"
+
+inherit cmake vala virtualx
+
+DESCRIPTION="Ayatana Application Indicators (Shared Library)"
+HOMEPAGE="https://github.com/AyatanaIndicators/libayatana-appindicator"
+SRC_URI="https://github.com/AyatanaIndicators/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3 LGPL-2 LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/glib-2.37:2
+ >=x11-libs/gtk+-3.24:3[introspection]
+ dev-libs/libdbusmenu[gtk3]
+ >=dev-libs/libayatana-indicator-0.8.4
+"
+DEPEND="${RDEPEND}"
+BDEPEND="$(vala_depend)
+ test? ( dev-util/dbus-test-runner )
+"
+
+src_prepare() {
+ vala_setup
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs+=(
+ -DVALA_COMPILER="${VALAC}"
+ -DVAPI_GEN="${VAPIGEN}"
+ -DENABLE_TESTS="$(usex test)"
+ -DENABLE_GTKDOC=OFF
+ -DENABLE_BINDINGS_MONO=OFF
+ -DFLAVOUR_GTK2=OFF
+ -DFLAVOUR_GTK3=ON
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}
diff --git a/dev-libs/libayatana-indicator/Manifest b/dev-libs/libayatana-indicator/Manifest
index b81c651d9a52..c1c326be7d42 100644
--- a/dev-libs/libayatana-indicator/Manifest
+++ b/dev-libs/libayatana-indicator/Manifest
@@ -1 +1,2 @@
DIST libayatana-indicator-0.9.4.tar.gz 150030 BLAKE2B 742b42ec930f2e3ae116b2be7dbd63169bc8fe0cc97b1425c16324e00ae68901f4132ea72ef97e2a36a1aecf61ca87185bb2ff2bb24ad5756004a3a60a9437f2 SHA512 56efbe0eb14abf38cb7e270ae093b5fb41dab652eab6fa0d3f7972b09b0f2404e3ec7fbb3059c0b26802fffc628f5ace16a33db306f97a65ae42cf65494a56dc
+DIST libayatana-indicator-0.9.5.tar.gz 151712 BLAKE2B 33df8ad98a4e5fa59732d3c58fc8adb0fbcedede00e4824eab9de365cfb2fcfbec0c2d8411c07a64ccbdd772d383aaa2d4e56c80135e96a6a10726fa7467becc SHA512 00df45813aa0a801158e4e9a22af4b4d58d9ee232a6896424a3db073ad1e0cc8ac5e1c335bb0286d9c8cea671a02ea5bf9070d6bd6043d24810b4cad9275611c
diff --git a/dev-libs/libayatana-indicator/libayatana-indicator-0.9.5.ebuild b/dev-libs/libayatana-indicator/libayatana-indicator-0.9.5.ebuild
new file mode 100644
index 000000000000..663fb0a617e1
--- /dev/null
+++ b/dev-libs/libayatana-indicator/libayatana-indicator-0.9.5.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VALA_USE_DEPEND="vapigen"
+
+inherit cmake vala virtualx
+
+DESCRIPTION="Ayatana Application Indicators (Shared Library)"
+HOMEPAGE="https://github.com/AyatanaIndicators/libayatana-indicator"
+SRC_URI="https://github.com/AyatanaIndicators/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/dbus-glib
+ >=dev-libs/glib-2.58:2
+ >=x11-libs/gtk+-3.24:3[introspection]
+ >=dev-libs/ayatana-ido-0.8.2
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ $(vala_depend)
+ test? ( dev-util/dbus-test-runner )
+"
+
+src_prepare() {
+ cmake_src_prepare
+ vala_setup
+}
+
+src_configure() {
+ local mycmakeargs+=(
+ -DFLAVOUR_GTK2=OFF
+ -DFLAVOUR_GTK3=ON
+ -DENABLE_IDO=ON
+ -DENABLE_LOADER=ON
+ -DENABLE_TESTS="$(usex test)"
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ virtx cmake_src_test
+}
diff --git a/dev-libs/libcec/Manifest b/dev-libs/libcec/Manifest
index d2501e50e112..d1b8c584b57d 100644
--- a/dev-libs/libcec/Manifest
+++ b/dev-libs/libcec/Manifest
@@ -1,2 +1,3 @@
DIST libcec-7.1.1.tar.gz 365046 BLAKE2B f9f0317030e1bc1d36c6b5268350b3c5d8023691b8e4c2ba2b76d249dad31269445e5a74f95606e08fcdea7783f6a67c55f3168c61e4a11002010f8f9aaed385 SHA512 f4c12b68f275bde32a1f91e48e392c0d7fc0cf9f86fb4635a79869dc2398cbd63a1f8fdedc21d61f15afbe53ac8ece20cddeec4bac91de97de32fdcca61848e6
DIST libcec-8.1.6.tar.gz 1965766 BLAKE2B 05e9ed6a3558985d37210e8fed68585bfd7f3230215337b0789a261cfced00b19c6de1d3aa8bafe7bc24737ac76614a7bc17f18e712dfcc1f0a06632f37c6f2f SHA512 1bbefa39cd04e58b611fd1b49ef9c79aa3f64755c75d95d6d6a57a04fee90a2f412a19bca5fe8d258de1634b5ec6dfd3982312d9f20361120a2662abbad5ed31
+DIST libcec-8.1.7.tar.gz 2034798 BLAKE2B f830076785cb06b474a4a3ed7f4b5613fafb99a9e517a34bf3c016862ec0c76495f63c1635386632fb1d6197f4dcf79d95e8ff153bd8be1c587b088de6ec7113 SHA512 894a9a2e1a5145f237292608e0790cfa9e4455acd686bf92f3761611f07c8b964638fa941c37594bbcaef81649064a94fe4b77fb88b7283cd5a7f0b563eebd1f
diff --git a/dev-libs/libcec/libcec-8.1.6.ebuild b/dev-libs/libcec/libcec-8.1.6.ebuild
index 9371ffaffa93..54a2137362ae 100644
--- a/dev-libs/libcec/libcec-8.1.6.ebuild
+++ b/dev-libs/libcec/libcec-8.1.6.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}/${PN}-${MY_P}"
LICENSE="GPL-2+"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~riscv ~x86"
IUSE="exynos kernel-cec python static-libs tools udev +xrandr"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/dev-libs/libcec/libcec-8.1.7.ebuild b/dev-libs/libcec/libcec-8.1.7.ebuild
new file mode 100644
index 000000000000..9371ffaffa93
--- /dev/null
+++ b/dev-libs/libcec/libcec-8.1.7.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+MY_PV=${PV/_p/-}
+MY_P=${PN}-${MY_PV}
+
+inherit cmake dot-a linux-info python-single-r1 udev
+
+DESCRIPTION="Library for communicating with the Pulse-Eight USB HDMI-CEC Adaptor"
+HOMEPAGE="https://libcec.pulse-eight.com"
+SRC_URI="https://github.com/Pulse-Eight/${PN}/archive/${MY_P}.tar.gz"
+S="${WORKDIR}/${PN}-${MY_P}"
+
+LICENSE="GPL-2+"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+IUSE="exynos kernel-cec python static-libs tools udev +xrandr"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+ python? ( ${PYTHON_DEPS} )
+ udev? ( virtual/udev )
+ xrandr? (
+ x11-libs/libX11
+ x11-libs/libXrandr
+ )
+
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ python? (
+ ${PYTHON_DEPS}
+ dev-lang/swig
+ )
+"
+
+CONFIG_CHECK="~USB_ACM"
+
+pkg_pretend() {
+ use udev || CONFIG_CHECK+=" ~SYSFS"
+ ERROR_SYSFS="When using libcec build without udev, kernel config option CONFIG_SYSFS is required to automatically detect P8 USB-CEC adapter port number"
+
+ linux-info_pkg_setup
+}
+
+pkg_setup() {
+ linux-info_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ sed -Ee 's|[ ~]?#DIST#;?||g' debian/changelog.in > ChangeLog || die
+
+ (use tools && use python) || cmake_comment_add_subdirectory "src/pyCecClient"
+
+ if use python; then
+ sed -e "s|\${CMAKE_INSTALL_LIBDIR}/python\${PYTHON_VERSION}/\${PYTHON_PKG_DIR}|$(python_get_sitedir)|" \
+ -i src/libcec/cmake/CheckPlatformSupport.cmake || die
+ fi
+}
+
+src_configure() {
+ use static-libs && lto-guarantee-fat
+
+ local mycmakeargs=(
+ -DDISABLE_CLIENT=$(usex !tools)
+ -DDISABLE_STATIC=$(usex !static-libs)
+ -DSKIP_PYTHON_WRAPPER=$(usex !python)
+
+ # Same order as in src/libcec/cmake/CheckPlatformSupport.cmake
+ -DHAVE_DRM_EDID_PARSER=ON
+ -DHAVE_LIBUDEV=$(usex udev)
+ -DHAVE_RANDR=$(usex xrandr)
+ -DHAVE_RPI_API=OFF
+ # bug 922690 and bug 955124
+ -DHAVE_TDA995X_API=OFF
+ -DHAVE_EXYNOS_API=$(usex exynos)
+ -DHAVE_LINUX_API=$(usex kernel-cec)
+ )
+
+ if linux_config_exists && linux_chkconfig_present SYSFS; then
+ mycmakeargs+=( -DHAVE_P8_USB_DETECT=ON )
+ fi
+
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+
+ if use udev ; then
+ sed '/2548/ s/SUBSYSTEM/SUBSYSTEMS/; s/$/, GROUP="video"/;' "${S}/debian/pulse-eight-usb-cec.udev" > \
+ "${BUILD_DIR}/65-pulse-eight-usb-cec.rules" || die
+ fi
+}
+
+src_install() {
+ cmake_src_install
+
+ use static-libs && strip-lto-bytecode
+
+ if use python; then
+ use tools && python_fix_shebang "${D}"
+ python_optimize "${D}$(python_get_sitedir)"
+ fi
+
+ use tools && doman debian/cec-client.1
+
+ if use udev; then
+ udev_dorules "${BUILD_DIR}/65-pulse-eight-usb-cec.rules"
+ fi
+}
+
+pkg_postrm() {
+ use udev && udev_reload
+}
+
+pkg_postinst() {
+ use udev && udev_reload
+
+ elog "You will need to ensure the user running your CEC client has"
+ elog "read/write access to the device. You can ensure this by adding"
+ elog "them to the video group"
+}
diff --git a/dev-libs/libp11/libp11-0.4.17.ebuild b/dev-libs/libp11/libp11-0.4.17.ebuild
index 0ca1b8952bf1..5e07d7e2ae72 100644
--- a/dev-libs/libp11/libp11-0.4.17.ebuild
+++ b/dev-libs/libp11/libp11-0.4.17.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="doc static-libs test"
RESTRICT="!test? ( test )"
diff --git a/dev-libs/libpfm/libpfm-4.13.0_p20260328.ebuild b/dev-libs/libpfm/libpfm-4.13.0_p20260328.ebuild
index 7796352f6999..91fcda62b52e 100644
--- a/dev-libs/libpfm/libpfm-4.13.0_p20260328.ebuild
+++ b/dev-libs/libpfm/libpfm-4.13.0_p20260328.ebuild
@@ -23,7 +23,7 @@ fi
LICENSE="GPL-2 MIT"
SLOT="0/4"
if [[ ${PV} != 9999 ]] ; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
IUSE="static-libs"
diff --git a/dev-libs/librdkafka/librdkafka-2.12.1.ebuild b/dev-libs/librdkafka/librdkafka-2.12.1.ebuild
index 738fc57b71c7..3df20fde3b4a 100644
--- a/dev-libs/librdkafka/librdkafka-2.12.1.ebuild
+++ b/dev-libs/librdkafka/librdkafka-2.12.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"
@@ -16,7 +16,7 @@ if [[ ${PV} == "9999" ]]; then
inherit git-r3
else
SRC_URI="https://github.com/confluentinc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~sparc ~x86"
fi
LICENSE="BSD-2"
diff --git a/dev-libs/libxmlb/libxmlb-0.3.28.ebuild b/dev-libs/libxmlb/libxmlb-0.3.28.ebuild
index a953e3056094..fdd3d1edd807 100644
--- a/dev-libs/libxmlb/libxmlb-0.3.28.ebuild
+++ b/dev-libs/libxmlb/libxmlb-0.3.28.ebuild
@@ -16,7 +16,7 @@ SRC_URI="
LICENSE="LGPL-2.1+"
SLOT="0/2" # libxmlb.so version
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="doc introspection +lzma stemmer test +zstd"
RESTRICT="!test? ( test )"
diff --git a/dev-libs/lockdev/lockdev-1.0.3.1.2-r5.ebuild b/dev-libs/lockdev/lockdev-1.0.3.1.2-r5.ebuild
index dc59d8ece9c2..e5430a02880e 100644
--- a/dev-libs/lockdev/lockdev-1.0.3.1.2-r5.ebuild
+++ b/dev-libs/lockdev/lockdev-1.0.3.1.2-r5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2001-2025 Gentoo Authors
+# Copyright 2001-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -24,7 +24,7 @@ PERL_S=./LockDev
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="perl ${GENTOO_PERL_USESTRING}"
DEPEND="
diff --git a/dev-libs/mimalloc/mimalloc-3.4.5.ebuild b/dev-libs/mimalloc/mimalloc-3.4.5.ebuild
index 8852597db7cf..6ce4d28cb06e 100644
--- a/dev-libs/mimalloc/mimalloc-3.4.5.ebuild
+++ b/dev-libs/mimalloc/mimalloc-3.4.5.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/microsoft/mimalloc/archive/refs/tags/v${PV}.tar.gz -
LICENSE="MIT"
SLOT="0/3"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="debug test"
RESTRICT="!test? ( test )"
diff --git a/dev-libs/ossp-uuid/ossp-uuid-1.6.6.ebuild b/dev-libs/ossp-uuid/ossp-uuid-1.6.6.ebuild
index 0c359c558010..220b350232f8 100644
--- a/dev-libs/ossp-uuid/ossp-uuid-1.6.6.ebuild
+++ b/dev-libs/ossp-uuid/ossp-uuid-1.6.6.ebuild
@@ -21,7 +21,7 @@ S="${WORKDIR}/${PN}-${MY_P}"
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm ~hppa ~mips ~ppc ppc64 ~s390 ~sparc ~x86 ~x64-macos"
IUSE="+cxx perl static-libs ${GENTOO_PERL_USESTRING}"
DEPEND="
diff --git a/dev-libs/pkcs11-helper/pkcs11-helper-1.31.0.ebuild b/dev-libs/pkcs11-helper/pkcs11-helper-1.31.0.ebuild
index bcb7c7b3e851..3c14defe0427 100644
--- a/dev-libs/pkcs11-helper/pkcs11-helper-1.31.0.ebuild
+++ b/dev-libs/pkcs11-helper/pkcs11-helper-1.31.0.ebuild
@@ -9,7 +9,7 @@ SRC_URI="https://github.com/OpenSC/${PN}/releases/download/${P}/${P}.tar.bz2"
LICENSE="|| ( BSD GPL-2 )"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="doc gnutls nss test"
# Fails trying to load /usr/lib/pkcs11/provider.so?
RESTRICT="!test? ( test ) test"
diff --git a/dev-libs/pugixml/pugixml-1.16.ebuild b/dev-libs/pugixml/pugixml-1.16.ebuild
index 3bae70587e0b..deba8d423da1 100644
--- a/dev-libs/pugixml/pugixml-1.16.ebuild
+++ b/dev-libs/pugixml/pugixml-1.16.ebuild
@@ -12,7 +12,7 @@ else
# Use non-release tarball for tests
# TODO: ask upstream to include tests in release tarballs?
SRC_URI="https://github.com/zeux/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="~amd64 ~arm arm64 ~hppa ~ppc ppc64 ~riscv ~sparc x86"
fi
DESCRIPTION="Light-weight, simple, and fast XML parser for C++ with XPath support"
diff --git a/dev-libs/unibilium/Manifest b/dev-libs/unibilium/Manifest
index 5aafd19bde25..5b8255e5b61e 100644
--- a/dev-libs/unibilium/Manifest
+++ b/dev-libs/unibilium/Manifest
@@ -1,2 +1,3 @@
DIST unibilium-2.1.1.tar.gz 121998 BLAKE2B 0bd032d0cc32011fa66604b39412116824b79aeb3cebb394efcad7591d5bd18031d465f7736ff1e65914f2fcf7beca1cbee4c7ad07426cdbf45e1c82e1894d94 SHA512 ebcdcddc6c3a540d086b113bb83470c1c17cf59056b28308a484b20dc3df71de0f5d6e5bf105f9e4a8347c78500c65ae46c2b53ec87692a898c321a047664ee2
DIST unibilium-2.1.2.tar.gz 122525 BLAKE2B 4f61b1259fed11c94280499ea1f965c7a53b70072c66adbf42cd0adafb99f03e56f204b46235677a75c09f923b141897ba2942eb273e5b053beec9e8eb5bc3a6 SHA512 8bc50b3662fcb1b52055fed028926d8c296169b6b1cfefef9bb37a435321ee6e005c4166c1e68c2959e5f6d4ffe8f44d8ea87d6dcc967176d473ae918ff3018f
+DIST unibilium-2.1.4.tar.gz 126284 BLAKE2B a2b2146e5ba9368ae33332848d3eec8e65798406c615650b6311e4035f15d8e4ceb1495ae51fb8ab0c1756222cce7774ea4998f2d2363c21ac06abd871e65597 SHA512 e1d351b7f4c13825c415f3b8078abd538863614a8aa443e3c5e5b85110372084ff4385c4b17eb7a546807188265285ca4b6493b6db9670d490f7743b89f11c4f
diff --git a/dev-libs/unibilium/unibilium-2.1.4.ebuild b/dev-libs/unibilium/unibilium-2.1.4.ebuild
new file mode 100644
index 000000000000..4a227059042d
--- /dev/null
+++ b/dev-libs/unibilium/unibilium-2.1.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A very basic terminfo library"
+HOMEPAGE="https://github.com/neovim/unibilium/"
+SRC_URI="https://github.com/neovim/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-3+ MIT"
+SLOT="0/4"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos"
+
+BDEPEND="dev-lang/perl"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.1.2-no-compress-man.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_install() {
+ default
+ find "${D}" -name '*.la' -type f -delete || die
+}
diff --git a/dev-libs/xerces-c/xerces-c-3.3.0-r1.ebuild b/dev-libs/xerces-c/xerces-c-3.3.0-r1.ebuild
index 6cbef1769dc3..51b8642ebb73 100644
--- a/dev-libs/xerces-c/xerces-c-3.3.0-r1.ebuild
+++ b/dev-libs/xerces-c/xerces-c-3.3.0-r1.ebuild
@@ -16,7 +16,7 @@ else
SRC_URI="
mirror://apache/xerces/c/3/sources/${P}.tar.xz
"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+ KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
fi
LICENSE="Apache-2.0"
diff --git a/dev-libs/xmlsec/xmlsec-1.3.12.ebuild b/dev-libs/xmlsec/xmlsec-1.3.12.ebuild
index 4f3c5ba12dcf..b172d79f2e91 100644
--- a/dev-libs/xmlsec/xmlsec-1.3.12.ebuild
+++ b/dev-libs/xmlsec/xmlsec-1.3.12.ebuild
@@ -22,7 +22,7 @@ S="${WORKDIR}/${PN}1-$(ver_cut 1-3)"
LICENSE="MIT"
# configure.ac: "For simplicity we just bump current all the time and don't bother"
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="doc gcrypt gnutls http nss +openssl static-libs test"
RESTRICT="!test? ( test )"
REQUIRED_USE="
diff --git a/dev-ml/llvm/Manifest b/dev-ml/llvm/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/dev-ml/llvm/Manifest
+++ b/dev-ml/llvm/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/dev-ml/llvm/llvm-24.0.0_pre20260919.ebuild b/dev-ml/llvm/llvm-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..595eeee6c534
--- /dev/null
+++ b/dev-ml/llvm/llvm-24.0.0_pre20260919.ebuild
@@ -0,0 +1,107 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake llvm.org llvm-utils python-any-r1
+
+DESCRIPTION="OCaml bindings for LLVM"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0/${PV}"
+IUSE="+debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-lang/ocaml-4.00.0:0=
+ dev-ml/ocaml-ctypes:=
+ ~llvm-core/llvm-${PV}:=[debug?]
+ !llvm-core/llvm[ocaml(-)]
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ dev-ml/findlib
+"
+
+LLVM_COMPONENTS=( llvm cmake libc third-party )
+LLVM_USE_TARGETS=llvm
+llvm.org_set_globals
+
+src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DLLVM_LINK_LLVM_DYLIB=ON
+ -DLLVM_OCAML_OUT_OF_TREE=ON
+
+ # cheap hack: LLVM combines both anyway, and the only difference
+ # is that the former list is explicitly verified at cmake time
+ -DLLVM_TARGETS_TO_BUILD=""
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_BUILD_TESTS=$(usex test)
+
+ # disable various irrelevant deps and settings
+ -DLLVM_ENABLE_FFI=OFF
+ -DLLVM_ENABLE_TERMINFO=OFF
+ -DHAVE_HISTEDIT_H=NO
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # TODO: ocamldoc
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ # also: custom rules for OCaml do not work for CPPFLAGS
+ use debug || local -x CFLAGS="${CFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ local llvm_libdir=$(llvm-config --libdir)
+ # an ugly hack; TODO: figure out a way to pass -L to ocaml...
+ cd "${BUILD_DIR}/${libdir}" || die
+ ln -s "${llvm_libdir}"/*.so . || die
+
+ if use test; then
+ local llvm_bindir=$(llvm-config --bindir)
+ # Force using system-installed tools.
+ sed -i -e "/llvm_tools_dir/s@\".*\"@\"${llvm_bindir}\"@" \
+ "${BUILD_DIR}"/test/lit.site.cfg.py || die
+ fi
+}
+
+src_compile() {
+ cmake_build ocaml_all
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-llvm-bindings-ocaml
+}
+
+src_install() {
+ DESTDIR="${D}" \
+ cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die
+
+ dodoc bindings/ocaml/README.txt
+}
diff --git a/dev-perl/AnyEvent-I3/AnyEvent-I3-0.190.0.ebuild b/dev-perl/AnyEvent-I3/AnyEvent-I3-0.190.0.ebuild
index 0f5916a88ae9..e5a60d0a8f7a 100644
--- a/dev-perl/AnyEvent-I3/AnyEvent-I3-0.190.0.ebuild
+++ b/dev-perl/AnyEvent-I3/AnyEvent-I3-0.190.0.ebuild
@@ -10,7 +10,7 @@ inherit perl-module virtualx
DESCRIPTION="Communicate with the i3 window manager"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
dev-perl/AnyEvent
diff --git a/dev-perl/Cwd-Guard/Cwd-Guard-0.50.0-r1.ebuild b/dev-perl/Cwd-Guard/Cwd-Guard-0.50.0-r1.ebuild
index 8159c8640a62..26ad68c0e038 100644
--- a/dev-perl/Cwd-Guard/Cwd-Guard-0.50.0-r1.ebuild
+++ b/dev-perl/Cwd-Guard/Cwd-Guard-0.50.0-r1.ebuild
@@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="Temporary changing working directory (chdir)"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
IUSE="minimal"
RDEPEND="
diff --git a/dev-perl/Devel-CheckCompiler/Devel-CheckCompiler-0.70.0-r1.ebuild b/dev-perl/Devel-CheckCompiler/Devel-CheckCompiler-0.70.0-r1.ebuild
index cc83705bef29..3ee6f4928156 100644
--- a/dev-perl/Devel-CheckCompiler/Devel-CheckCompiler-0.70.0-r1.ebuild
+++ b/dev-perl/Devel-CheckCompiler/Devel-CheckCompiler-0.70.0-r1.ebuild
@@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="Check the compiler's availability"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
RDEPEND="
virtual/perl-Exporter
diff --git a/dev-perl/File-Copy-Link/File-Copy-Link-0.200.0-r1.ebuild b/dev-perl/File-Copy-Link/File-Copy-Link-0.200.0-r1.ebuild
index 77e02e038dd2..1c9a8803884f 100644
--- a/dev-perl/File-Copy-Link/File-Copy-Link-0.200.0-r1.ebuild
+++ b/dev-perl/File-Copy-Link/File-Copy-Link-0.200.0-r1.ebuild
@@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="Perl extension for replacing a link by a copy of the linked file"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
BDEPEND="
>=dev-perl/Module-Build-0.380.0
diff --git a/dev-perl/File-Copy-Recursive-Reduced/File-Copy-Recursive-Reduced-0.8.0.ebuild b/dev-perl/File-Copy-Recursive-Reduced/File-Copy-Recursive-Reduced-0.8.0.ebuild
index 1b0e7161a76a..63e9c0c01fea 100644
--- a/dev-perl/File-Copy-Recursive-Reduced/File-Copy-Recursive-Reduced-0.8.0.ebuild
+++ b/dev-perl/File-Copy-Recursive-Reduced/File-Copy-Recursive-Reduced-0.8.0.ebuild
@@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="Recursive copying of files and directories within Perl 5 toolchain"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
RDEPEND="
virtual/perl-File-Spec
diff --git a/dev-perl/Module-Build-XSUtil/Module-Build-XSUtil-0.190.0.ebuild b/dev-perl/Module-Build-XSUtil/Module-Build-XSUtil-0.190.0.ebuild
index cc0911229330..245b357ef40a 100644
--- a/dev-perl/Module-Build-XSUtil/Module-Build-XSUtil-0.190.0.ebuild
+++ b/dev-perl/Module-Build-XSUtil/Module-Build-XSUtil-0.190.0.ebuild
@@ -10,7 +10,7 @@ inherit perl-module
DESCRIPTION="A Module::Build class for building XS modules"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
IUSE="examples"
RDEPEND="
diff --git a/dev-perl/Mouse/Mouse-2.5.11.ebuild b/dev-perl/Mouse/Mouse-2.5.11.ebuild
index 78a30194722a..4cdbf2628d93 100644
--- a/dev-perl/Mouse/Mouse-2.5.11.ebuild
+++ b/dev-perl/Mouse/Mouse-2.5.11.ebuild
@@ -11,7 +11,7 @@ inherit perl-module
DESCRIPTION="Moose minus the antlers"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~ppc ~ppc64 ~riscv x86"
RDEPEND="
>=virtual/perl-Scalar-List-Utils-1.140.0
diff --git a/dev-perl/X11-XCB/X11-XCB-0.240.0.ebuild b/dev-perl/X11-XCB/X11-XCB-0.240.0.ebuild
index 80617beef5ff..7d69547dc0a4 100644
--- a/dev-perl/X11-XCB/X11-XCB-0.240.0.ebuild
+++ b/dev-perl/X11-XCB/X11-XCB-0.240.0.ebuild
@@ -10,7 +10,7 @@ inherit perl-module virtualx
DESCRIPTION="Perl bindings for libxcb"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
dev-perl/Data-Dump
diff --git a/dev-perl/XML-Descent/XML-Descent-1.40.0-r1.ebuild b/dev-perl/XML-Descent/XML-Descent-1.40.0-r1.ebuild
index 9747e6db6894..4cf0bc4234e3 100644
--- a/dev-perl/XML-Descent/XML-Descent-1.40.0-r1.ebuild
+++ b/dev-perl/XML-Descent/XML-Descent-1.40.0-r1.ebuild
@@ -9,7 +9,7 @@ inherit perl-module
DESCRIPTION="Recursive decent XML parsing"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
dev-perl/XML-TokeParser
diff --git a/dev-perl/XML-TokeParser/XML-TokeParser-0.50.0-r1.ebuild b/dev-perl/XML-TokeParser/XML-TokeParser-0.50.0-r1.ebuild
index bd688e4a1262..2bc5a29899df 100644
--- a/dev-perl/XML-TokeParser/XML-TokeParser-0.50.0-r1.ebuild
+++ b/dev-perl/XML-TokeParser/XML-TokeParser-0.50.0-r1.ebuild
@@ -9,7 +9,7 @@ inherit perl-module
DESCRIPTION="Simplified interface to XML::Parser"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
>=dev-perl/XML-Parser-2.0.0
diff --git a/dev-perl/XS-Object-Magic/XS-Object-Magic-0.50.0.ebuild b/dev-perl/XS-Object-Magic/XS-Object-Magic-0.50.0.ebuild
index ccaf1d9df828..62a1900c8836 100644
--- a/dev-perl/XS-Object-Magic/XS-Object-Magic-0.50.0.ebuild
+++ b/dev-perl/XS-Object-Magic/XS-Object-Magic-0.50.0.ebuild
@@ -9,7 +9,7 @@ inherit perl-module
DESCRIPTION="Opaque, extensible XS pointer backed objects using sv_magic"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
virtual/perl-parent
diff --git a/dev-perl/local-lib/local-lib-2.0.29-r1.ebuild b/dev-perl/local-lib/local-lib-2.0.29-r1.ebuild
index cdb522947fff..222c84da6dc6 100644
--- a/dev-perl/local-lib/local-lib-2.0.29-r1.ebuild
+++ b/dev-perl/local-lib/local-lib-2.0.29-r1.ebuild
@@ -9,7 +9,7 @@ inherit perl-module
DESCRIPTION="Create and use a local lib/ for perl modules with PERL5LIB"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
RDEPEND="
>=virtual/perl-CPAN-1.820.0
diff --git a/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild b/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild
index 1f95ba7c05ec..7f1ae942aecf 100644
--- a/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild
+++ b/dev-python/annotated-doc/annotated-doc-0.0.5.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-26.1.0.ebuild b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-26.1.0.ebuild
index 6761c76f57db..de58272cbb8e 100644
--- a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-26.1.0.ebuild
+++ b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-26.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cpu_flags_x86_sse2"
DEPEND="
diff --git a/dev-python/argparse-manpage/argparse-manpage-4.7-r1.ebuild b/dev-python/argparse-manpage/argparse-manpage-4.7-r1.ebuild
index ec80208a9ab8..db27f59b7b60 100644
--- a/dev-python/argparse-manpage/argparse-manpage-4.7-r1.ebuild
+++ b/dev-python/argparse-manpage/argparse-manpage-4.7-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/array-api-compat/array-api-compat-1.15.0.ebuild b/dev-python/array-api-compat/array-api-compat-1.15.0.ebuild
index f6efb5b972f4..f330cd9167a8 100644
--- a/dev-python/array-api-compat/array-api-compat-1.15.0.ebuild
+++ b/dev-python/array-api-compat/array-api-compat-1.15.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
BDEPEND="
test? (
diff --git a/dev-python/ast-serialize/ast-serialize-0.8.0.ebuild b/dev-python/ast-serialize/ast-serialize-0.8.0.ebuild
index 66341d4139e2..d9c874941fb6 100644
--- a/dev-python/ast-serialize/ast-serialize-0.8.0.ebuild
+++ b/dev-python/ast-serialize/ast-serialize-0.8.0.ebuild
@@ -214,7 +214,7 @@ LICENSE+="
Unicode-DFS-2016 ZLIB
"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~s390 ~sparc x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/astroid/astroid-4.3.1.ebuild b/dev-python/astroid/astroid-4.3.1.ebuild
index a262de696687..21fcba58b67e 100644
--- a/dev-python/astroid/astroid-4.3.1.ebuild
+++ b/dev-python/astroid/astroid-4.3.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# dev-python/regex isn't available for pypy
BDEPEND="
diff --git a/dev-python/bandit/bandit-1.9.4.ebuild b/dev-python/bandit/bandit-1.9.4.ebuild
index 150b4222bd1b..3dbd0a610123 100644
--- a/dev-python/bandit/bandit-1.9.4.ebuild
+++ b/dev-python/bandit/bandit-1.9.4.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
RDEPEND="
>=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
diff --git a/dev-python/bitarray/bitarray-3.11.0.ebuild b/dev-python/bitarray/bitarray-3.11.0.ebuild
index 93b1ff66517e..c70a37e0f30b 100644
--- a/dev-python/bitarray/bitarray-3.11.0.ebuild
+++ b/dev-python/bitarray/bitarray-3.11.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
python_test() {
"${EPYTHON}" bitarray/test_bitarray.py -v || die "Tests fail with ${EPYTHON}"
diff --git a/dev-python/bitstring/bitstring-4.4.0-r2.ebuild b/dev-python/bitstring/bitstring-4.4.0-r2.ebuild
index 175f29ed9666..03a330ea1a9c 100644
--- a/dev-python/bitstring/bitstring-4.4.0-r2.ebuild
+++ b/dev-python/bitstring/bitstring-4.4.0-r2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
=dev-python/bitarray-3*[${PYTHON_USEDEP}]
diff --git a/dev-python/blockbuster/blockbuster-1.5.27.ebuild b/dev-python/blockbuster/blockbuster-1.5.27.ebuild
index b20940e8ee85..a393373698c3 100644
--- a/dev-python/blockbuster/blockbuster-1.5.27.ebuild
+++ b/dev-python/blockbuster/blockbuster-1.5.27.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/forbiddenfruit-0.1.4[${PYTHON_USEDEP}]
diff --git a/dev-python/boto3/boto3-1.43.78.ebuild b/dev-python/boto3/boto3-1.43.78.ebuild
index 93fbbe6dd59b..ffa170d43fa3 100644
--- a/dev-python/boto3/boto3-1.43.78.ebuild
+++ b/dev-python/boto3/boto3-1.43.78.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
diff --git a/dev-python/botocore/botocore-1.43.78.ebuild b/dev-python/botocore/botocore-1.43.78.ebuild
index a3a161f78545..0dca2a67c593 100644
--- a/dev-python/botocore/botocore-1.43.78.ebuild
+++ b/dev-python/botocore/botocore-1.43.78.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
<dev-python/jmespath-2[${PYTHON_USEDEP}]
diff --git a/dev-python/brotlicffi/brotlicffi-1.2.0.2.ebuild b/dev-python/brotlicffi/brotlicffi-1.2.0.2.ebuild
index b2e626346f67..85a6bb904ac3 100644
--- a/dev-python/brotlicffi/brotlicffi-1.2.0.2.ebuild
+++ b/dev-python/brotlicffi/brotlicffi-1.2.0.2.ebuild
@@ -30,7 +30,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
DEPEND="
app-arch/brotli:=
diff --git a/dev-python/cachelib/cachelib-0.16.1.ebuild b/dev-python/cachelib/cachelib-0.16.1.ebuild
index eccab5eee32c..7e5053656050 100644
--- a/dev-python/cachelib/cachelib-0.16.1.ebuild
+++ b/dev-python/cachelib/cachelib-0.16.1.ebuild
@@ -22,7 +22,9 @@ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
BDEPEND="
test? (
dev-db/redis
+ dev-db/valkey
dev-python/redis[${PYTHON_USEDEP}]
+ dev-python/valkey[${PYTHON_USEDEP}]
net-misc/memcached
!sparc? (
dev-python/pylibmc[${PYTHON_USEDEP}]
diff --git a/dev-python/cachelib/cachelib-0.17.0.ebuild b/dev-python/cachelib/cachelib-0.17.0.ebuild
index 87cee9dc8e3c..66117381490d 100644
--- a/dev-python/cachelib/cachelib-0.17.0.ebuild
+++ b/dev-python/cachelib/cachelib-0.17.0.ebuild
@@ -22,8 +22,10 @@ KEYWORDS="~amd64 ~arm64 ~x86"
BDEPEND="
test? (
dev-db/redis
+ dev-db/valkey
>=dev-python/python-memcached-1.62[${PYTHON_USEDEP}]
dev-python/redis[${PYTHON_USEDEP}]
+ dev-python/valkey[${PYTHON_USEDEP}]
net-misc/memcached
!sparc? (
dev-python/pylibmc[${PYTHON_USEDEP}]
@@ -32,14 +34,27 @@ BDEPEND="
"
EPYTEST_PLUGINS=( pytest-xprocess )
+EPYTEST_XDIST=1
distutils_enable_tests pytest
-EPYTEST_IGNORE=(
- # bug #818523
- tests/test_redis_cache.py
- # requires some test server running
- # (these tests require dev-python/boto3)
- tests/test_dynamodb_cache.py
- # requires mongo test server
- tests/test_mongodb_cache.py
-)
+python_test() {
+ local EPYTEST_IGNORE=(
+ # requires some test server running
+ # (these tests require dev-python/boto3)
+ tests/test_dynamodb_cache.py
+ # requires mongo test server
+ tests/test_mongodb_cache.py
+ )
+ local EPYTEST_DESELECT=()
+
+ local serial_tests=(
+ tests/test_memcached_cache.py::TestMemcachedCache
+ tests/test_redis_cache.py::TestRedisCache
+ tests/test_valkey_cache.py::TestValkeyCache
+ )
+
+ EPYTEST_XDIST= epytest "${serial_tests[@]}"
+
+ EPYTEST_DESELECT+=( "${serial_tests[@]}" )
+ epytest
+}
diff --git a/dev-python/cfn-lint/cfn-lint-1.55.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.55.1.ebuild
index 5005e0bd6fcc..91338f4b9211 100644
--- a/dev-python/cfn-lint/cfn-lint-1.55.1.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.55.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
RDEPEND="
dev-python/jsonpatch[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.56.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.0.ebuild
index 60bfe8f96df0..8ffb91672902 100644
--- a/dev-python/cfn-lint/cfn-lint-1.56.0.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.56.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
dev-python/jsonpatch[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.56.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.2.ebuild
index 60bfe8f96df0..8ffb91672902 100644
--- a/dev-python/cfn-lint/cfn-lint-1.56.2.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.56.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
dev-python/jsonpatch[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.56.3.ebuild b/dev-python/cfn-lint/cfn-lint-1.56.3.ebuild
index 60bfe8f96df0..8ffb91672902 100644
--- a/dev-python/cfn-lint/cfn-lint-1.56.3.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.56.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
dev-python/jsonpatch[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.57.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.57.0.ebuild
index 60bfe8f96df0..8ffb91672902 100644
--- a/dev-python/cfn-lint/cfn-lint-1.57.0.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.57.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
dev-python/jsonpatch[${PYTHON_USEDEP}]
diff --git a/dev-python/charset-normalizer/charset-normalizer-3.5.1.ebuild b/dev-python/charset-normalizer/charset-normalizer-3.5.1.ebuild
index 93afafb101ea..71101c81be3f 100644
--- a/dev-python/charset-normalizer/charset-normalizer-3.5.1.ebuild
+++ b/dev-python/charset-normalizer/charset-normalizer-3.5.1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="native-extensions"
BDEPEND="
diff --git a/dev-python/cheetah3/cheetah3-3.4.0-r1.ebuild b/dev-python/cheetah3/cheetah3-3.4.0-r1.ebuild
index 82f31a86fff2..8430cd44ff64 100644
--- a/dev-python/cheetah3/cheetah3-3.4.0-r1.ebuild
+++ b/dev-python/cheetah3/cheetah3-3.4.0-r1.ebuild
@@ -24,7 +24,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
RDEPEND="
dev-python/markdown[${PYTHON_USEDEP}]
diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/dev-python/clang/Manifest
+++ b/dev-python/clang/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/dev-python/clang/clang-24.0.0_pre20260919.ebuild b/dev-python/clang/clang-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..aa99ad725bb8
--- /dev/null
+++ b/dev-python/clang/clang-24.0.0_pre20260919.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=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1 llvm.org
+
+DESCRIPTION="Python bindings for llvm-core/clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# The module is opening libclang.so directly, and doing some blasphemy
+# on top of it.
+DEPEND="
+ >=llvm-core/clang-${PV}:*
+ !llvm-core/llvm:0[clang(-),python(-)]
+ !llvm-core/clang:0[python(-)]
+"
+RDEPEND="
+ ${DEPEND}
+ ${PYTHON_DEPS}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ llvm-core/clang:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=( clang/{bindings/python,include} )
+llvm.org_set_globals
+
+distutils_enable_tests unittest
+
+python_test() {
+ # tests rely on results from a specific clang version, so override
+ # the search path
+ local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
+ local -x CLANG_NO_DEFAULT_CONFIG=1
+ eunittest
+}
diff --git a/dev-python/deepdiff/deepdiff-8.6.2.ebuild b/dev-python/deepdiff/deepdiff-8.6.2.ebuild
index 3f4f25da5fc2..c9fb88c0d3bc 100644
--- a/dev-python/deepdiff/deepdiff-8.6.2.ebuild
+++ b/dev-python/deepdiff/deepdiff-8.6.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64"
RDEPEND="
>=dev-python/click-8.1.3[${PYTHON_USEDEP}]
diff --git a/dev-python/deepdiff/deepdiff-9.1.0.ebuild b/dev-python/deepdiff/deepdiff-9.1.0.ebuild
index 5c9b8f77e84c..f46fa0365e3e 100644
--- a/dev-python/deepdiff/deepdiff-9.1.0.ebuild
+++ b/dev-python/deepdiff/deepdiff-9.1.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64"
RDEPEND="
>=dev-python/cachebox-5.2[${PYTHON_USEDEP}]
diff --git a/dev-python/deepmerge/deepmerge-3.0.1.ebuild b/dev-python/deepmerge/deepmerge-3.0.1.ebuild
index 926d3ce4a287..5a32809c2b5d 100644
--- a/dev-python/deepmerge/deepmerge-3.0.1.ebuild
+++ b/dev-python/deepmerge/deepmerge-3.0.1.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/dependency-groups/dependency-groups-1.3.2.ebuild b/dev-python/dependency-groups/dependency-groups-1.3.2.ebuild
index ee3a2091dd53..5f4be7118e54 100644
--- a/dev-python/dependency-groups/dependency-groups-1.3.2.ebuild
+++ b/dev-python/dependency-groups/dependency-groups-1.3.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild b/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild
index 5129f7d2f2bd..fcd31006104e 100644
--- a/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild
+++ b/dev-python/elasticsearch/elasticsearch-9.5.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="amd64 arm64 ~x86"
+KEYWORDS="amd64 arm64"
RDEPEND="
<dev-python/aiohttp-4[${PYTHON_USEDEP}]
diff --git a/dev-python/elasticsearch/elasticsearch-9.5.1.ebuild b/dev-python/elasticsearch/elasticsearch-9.5.1.ebuild
index 8fdfeaa220e6..e1c1f31d8fb5 100644
--- a/dev-python/elasticsearch/elasticsearch-9.5.1.ebuild
+++ b/dev-python/elasticsearch/elasticsearch-9.5.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0/$(ver_cut 1)"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
<dev-python/aiohttp-4[${PYTHON_USEDEP}]
diff --git a/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
index cccd709cbbca..accb1d1b01e5 100644
--- a/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
+++ b/dev-python/esp-pylib/esp-pylib-1.1.4.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm"
+KEYWORDS="~amd64 ~arm ~riscv"
RDEPEND="
dev-python/click[${PYTHON_USEDEP}]
diff --git a/dev-python/faker/faker-40.37.0.ebuild b/dev-python/faker/faker-40.37.0.ebuild
index 125fe3904e57..a2455830ee3f 100644
--- a/dev-python/faker/faker-40.37.0.ebuild
+++ b/dev-python/faker/faker-40.37.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
!dev-ruby/faker
diff --git a/dev-python/fastjsonschema/fastjsonschema-2.22.2.ebuild b/dev-python/fastjsonschema/fastjsonschema-2.22.2.ebuild
index c879d05a43f8..f6a20c19a1a6 100644
--- a/dev-python/fastjsonschema/fastjsonschema-2.22.2.ebuild
+++ b/dev-python/fastjsonschema/fastjsonschema-2.22.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
EPYTEST_PLUGINS=()
EPYTEST_XDIST=1
diff --git a/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.1.0.ebuild b/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.1.0.ebuild
index 6386452e771f..24c6a26ed807 100644
--- a/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.1.0.ebuild
+++ b/dev-python/feedparser-sgmllib/feedparser-sgmllib-2.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ppc ppc64 ~riscv x86"
+KEYWORDS="~alpha amd64 arm arm64 ppc ppc64 ~riscv ~s390 x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/feedparser/feedparser-6.0.14.ebuild b/dev-python/feedparser/feedparser-6.0.14.ebuild
index 5279478898b9..143a9c6aa43c 100644
--- a/dev-python/feedparser/feedparser-6.0.14.ebuild
+++ b/dev-python/feedparser/feedparser-6.0.14.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ppc ppc64 ~riscv x86"
+KEYWORDS="~alpha amd64 arm arm64 ppc ppc64 ~riscv ~s390 x86"
RDEPEND="
=dev-python/feedparser-sgmllib-2*[${PYTHON_USEDEP}]
diff --git a/dev-python/gfloat/files/gfloat-0.5.2-signed-zero-overflow.patch b/dev-python/gfloat/files/gfloat-0.5.2-signed-zero-overflow.patch
new file mode 100644
index 000000000000..fd011671ecfe
--- /dev/null
+++ b/dev-python/gfloat/files/gfloat-0.5.2-signed-zero-overflow.patch
@@ -0,0 +1,51 @@
+From 575ceff2babe3e54795ec4ce441ec8e981462f9b Mon Sep 17 00:00:00 2001
+From: Andrew Fitzgibbon <awf@fitzgibbon.ie>
+Date: Fri, 18 Sep 2026 15:58:51 +0100
+Subject: [PATCH] Fix binary64 ndarray encoding overflow for signed zero
+
+---
+ src/gfloat/encode_ndarray.py | 5 ++++-
+ test/test_encode.py | 17 +++++++++++++++++
+ 2 files changed, 21 insertions(+), 1 deletion(-)
+
+diff --git a/src/gfloat/encode_ndarray.py b/src/gfloat/encode_ndarray.py
+index af883e4..3d5981c 100644
+--- a/src/gfloat/encode_ndarray.py
++++ b/src/gfloat/encode_ndarray.py
+@@ -51,7 +51,10 @@ def encode_ndarray(fi: FormatInfo, v: npt.NDArray) -> npt.NDArray:
+
+ if fi.has_zero:
+ if fi.has_nz:
+- code[v == 0] = np.where(sign[v == 0], fi.code_of_negzero, fi.code_of_zero)
++ # binary64's negative-zero code exceeds the signed int64 range.
++ code[v == 0] = np.where(
++ sign[v == 0], np.uint64(fi.code_of_negzero), np.uint64(fi.code_of_zero)
++ )
+ else:
+ code[v == 0] = fi.code_of_zero
+
+diff --git a/test/test_encode.py b/test/test_encode.py
+index efdaa1f..8ab344f 100644
+--- a/test/test_encode.py
++++ b/test/test_encode.py
+@@ -62,3 +62,20 @@ def test_encode_edges(fi: FormatInfo, enc: Callable) -> None:
+ if fi.domain == Domain.Extended
+ else fi.code_of_nan if fi.num_nans > 0 else fi.code_of_min
+ )
++
++
++@pytest.mark.parametrize(
++ "values",
++ [
++ [0.0, -0.0],
++ [[-0.0, 0.0], [1.0, -1.0]],
++ [1.0, -1.0], # The zero selection is empty, as in issue #63.
++ [],
++ ],
++)
++def test_encode_binary64_signed_zero(values: npt.ArrayLike) -> None:
++ v = np.array(values, dtype=np.float64)
++ codes = encode_ndarray(format_info_binary64, v)
++ assert codes.dtype == np.dtype(np.uint64)
++ assert codes.shape == v.shape
++ np.testing.assert_array_equal(codes, v.view(np.uint64))
diff --git a/dev-python/gfloat/gfloat-0.5.2-r1.ebuild b/dev-python/gfloat/gfloat-0.5.2-r1.ebuild
index b545ecf5f33e..bf081ec3b862 100644
--- a/dev-python/gfloat/gfloat-0.5.2-r1.ebuild
+++ b/dev-python/gfloat/gfloat-0.5.2-r1.ebuild
@@ -26,16 +26,16 @@ RDEPEND="
"
BDEPEND="
test? (
+ dev-python/jinja2[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/ml-dtypes[${PYTHON_USEDEP}]
dev-python/tabulate[${PYTHON_USEDEP}]
test-rust? (
dev-python/nbval[${PYTHON_USEDEP}]
)
- !arm? (
- dev-python/jinja2[${PYTHON_USEDEP}]
+ !arm? ( !x86? (
dev-python/pandas[${PYTHON_USEDEP}]
- )
+ ) )
)
"
diff --git a/dev-python/gfloat/gfloat-0.5.2-r2.ebuild b/dev-python/gfloat/gfloat-0.5.2-r2.ebuild
new file mode 100644
index 000000000000..52a0a20c2d05
--- /dev/null
+++ b/dev-python/gfloat/gfloat-0.5.2-r2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 2024-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="Generic floating-point types in Python"
+HOMEPAGE="
+ https://github.com/graphcore-research/gfloat/
+ https://pypi.org/project/gfloat/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+IUSE="test-rust"
+
+RDEPEND="
+ dev-python/array-api-compat[${PYTHON_USEDEP}]
+ dev-python/more-itertools[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/ml-dtypes[${PYTHON_USEDEP}]
+ dev-python/tabulate[${PYTHON_USEDEP}]
+ test-rust? (
+ dev-python/nbval[${PYTHON_USEDEP}]
+ )
+ !arm? ( !x86? (
+ dev-python/pandas[${PYTHON_USEDEP}]
+ ) )
+ )
+"
+
+EPYTEST_PLUGINS=()
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/graphcore-research/gfloat/pull/60
+ "${FILESDIR}/${P}-32bit.patch"
+ # https://github.com/graphcore-research/gfloat/pull/64
+ "${FILESDIR}/${P}-signed-zero-overflow.patch"
+)
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # requires array-api-strict (probably not very valuable downstream)
+ test/test_array_api.py
+ # require jax
+ docs/source/03-value-tables.ipynb
+ docs/source/04-benchmark.ipynb
+ test/test_jax.py
+ # requires mx (possibly git version), torch
+ test/test_microxcaling.py
+ # requires torch
+ test/test_torch.py
+ )
+
+ if ! has_version "dev-python/jinja2[${PYTHON_USEDEP}]" ||
+ ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"
+ then
+ EPYTEST_IGNORE+=(
+ docs/source
+ )
+ fi
+
+ if has_version "dev-python/nbval[${PYTHON_USEDEP}]"; then
+ epytest -p nbval
+ else
+ epytest -o addopts=
+ fi
+}
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild
index c4890dfc16d7..205f181ae1dc 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.198.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.199.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.199.0.ebuild
index 946b92264cbb..6a140282785c 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.199.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.199.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild
index 946b92264cbb..6dfd752db111 100644
--- a/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild
+++ b/dev-python/google-api-python-client/google-api-python-client-2.200.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
diff --git a/dev-python/httpx2/httpx2-2.13.0.ebuild b/dev-python/httpx2/httpx2-2.13.0.ebuild
index 9ad182936744..4cd2e5e9dd0c 100644
--- a/dev-python/httpx2/httpx2-2.13.0.ebuild
+++ b/dev-python/httpx2/httpx2-2.13.0.ebuild
@@ -43,6 +43,7 @@ BDEPEND="
dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}]
dev-python/uv-dynamic-versioning[${PYTHON_USEDEP}]
test? (
+ >=app-arch/brotli-1.2.0[python,${PYTHON_USEDEP}]
>=dev-python/brotlicffi-1.2.0.0[${PYTHON_USEDEP}]
dev-python/chardet[${PYTHON_USEDEP}]
dev-python/cryptography[${PYTHON_USEDEP}]
diff --git a/dev-python/hypothesis/hypothesis-6.165.10.ebuild b/dev-python/hypothesis/hypothesis-6.165.10.ebuild
index bf665e6799ed..f1f3ea75a998 100644
--- a/dev-python/hypothesis/hypothesis-6.165.10.ebuild
+++ b/dev-python/hypothesis/hypothesis-6.165.10.ebuild
@@ -58,7 +58,7 @@ LICENSE="MPL-2.0"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="cli"
RDEPEND="
diff --git a/dev-python/icalendar/icalendar-7.3.0.ebuild b/dev-python/icalendar/icalendar-7.3.0.ebuild
index 1588b1cca56c..67b21ed56a6c 100644
--- a/dev-python/icalendar/icalendar-7.3.0.ebuild
+++ b/dev-python/icalendar/icalendar-7.3.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
RDEPEND="
dev-python/python-dateutil[${PYTHON_USEDEP}]
diff --git a/dev-python/idna/idna-3.19.ebuild b/dev-python/idna/idna-3.19.ebuild
index 973242b19d7b..a0207cab1c3d 100644
--- a/dev-python/idna/idna-3.19.ebuild
+++ b/dev-python/idna/idna-3.19.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/imageio/imageio-2.37.3-r1.ebuild b/dev-python/imageio/imageio-2.37.3-r1.ebuild
index 61eafc169363..8d29630f191b 100644
--- a/dev-python/imageio/imageio-2.37.3-r1.ebuild
+++ b/dev-python/imageio/imageio-2.37.3-r1.ebuild
@@ -27,7 +27,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/numpy[${PYTHON_USEDEP}]
diff --git a/dev-python/imageio/imageio-2.37.4.ebuild b/dev-python/imageio/imageio-2.37.4.ebuild
index 5f40f767e369..aa1054d835cc 100644
--- a/dev-python/imageio/imageio-2.37.4.ebuild
+++ b/dev-python/imageio/imageio-2.37.4.ebuild
@@ -27,7 +27,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/numpy[${PYTHON_USEDEP}]
diff --git a/dev-python/ipykernel/ipykernel-7.3.0.ebuild b/dev-python/ipykernel/ipykernel-7.3.0.ebuild
index 2f8eaad6ad1f..ccda91e2553c 100644
--- a/dev-python/ipykernel/ipykernel-7.3.0.ebuild
+++ b/dev-python/ipykernel/ipykernel-7.3.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
RDEPEND="
>=dev-python/comm-0.1.1[${PYTHON_USEDEP}]
diff --git a/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild b/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild
index b267cfc0a767..ea7bd97dc70d 100644
--- a/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild
+++ b/dev-python/jschema-to-python/jschema-to-python-1.2.3-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
RDEPEND="
dev-python/attrs[${PYTHON_USEDEP}]
diff --git a/dev-python/jsonpickle/jsonpickle-4.1.2.ebuild b/dev-python/jsonpickle/jsonpickle-4.1.2.ebuild
index 74187a5090c9..cc85e6c19603 100644
--- a/dev-python/jsonpickle/jsonpickle-4.1.2.ebuild
+++ b/dev-python/jsonpickle/jsonpickle-4.1.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="test-full"
BDEPEND="
diff --git a/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.17.ebuild b/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.17.ebuild
index 7e5f9ef01645..555e0f067723 100644
--- a/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.17.ebuild
+++ b/dev-python/jupyterlab-widgets/jupyterlab-widgets-3.0.17.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ppc64 ~riscv x86"
BDEPEND="
dev-python/hatch-jupyter-builder[${PYTHON_USEDEP}]
diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/dev-python/lit/Manifest
+++ b/dev-python/lit/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/dev-python/lit/lit-24.0.0_pre20260919.ebuild b/dev-python/lit/lit-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..48b365e13379
--- /dev/null
+++ b/dev-python/lit/lit-24.0.0_pre20260919.ebuild
@@ -0,0 +1,41 @@
+# 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 llvm.org
+
+DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# Tests require 'FileCheck' and 'not' utilities (from llvm)
+BDEPEND="
+ test? (
+ dev-python/psutil[${PYTHON_USEDEP}]
+ llvm-core/llvm
+ )
+"
+
+LLVM_COMPONENTS=( llvm/utils/lit )
+llvm.org_set_globals
+
+# TODO: move the manpage generation here (from llvm-core/llvm)
+
+src_prepare() {
+ cd "${WORKDIR}" || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local -x LIT_PRESERVES_TMP=1
+ local litflags=$(get_lit_flags)
+ ./lit.py ${litflags//;/ } tests || die
+}
diff --git a/dev-python/logbook/logbook-1.10.1.ebuild b/dev-python/logbook/logbook-1.10.1.ebuild
index 74e483a259b2..1c6252ec2206 100644
--- a/dev-python/logbook/logbook-1.10.1.ebuild
+++ b/dev-python/logbook/logbook-1.10.1.ebuild
@@ -51,7 +51,7 @@ LICENSE+="
|| ( Apache-2.0 MIT )
"
SLOT="0"
-KEYWORDS="~amd64 ~riscv ~x86"
+KEYWORDS="amd64 ~riscv x86"
IUSE="+native-extensions"
RDEPEND="
diff --git a/dev-python/lxml/lxml-6.1.2.ebuild b/dev-python/lxml/lxml-6.1.2.ebuild
index 55aa788d24b1..b44a49eadcbe 100644
--- a/dev-python/lxml/lxml-6.1.2.ebuild
+++ b/dev-python/lxml/lxml-6.1.2.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/lxml-${P}
LICENSE="BSD ElementTree GPL-2 PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="doc examples +threads test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild b/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild
index 06939efb0ff0..205c50ccd9de 100644
--- a/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild
+++ b/dev-python/mapbox-vector-tile/mapbox-vector-tile-2.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
+KEYWORDS="amd64 arm64"
RDEPEND="
>=dev-python/protobuf-6.31.1[${PYTHON_USEDEP}]
diff --git a/dev-python/moto/moto-4.2.14.ebuild b/dev-python/moto/moto-4.2.14.ebuild
index f92fc9a0a3a9..344d4b9c5149 100644
--- a/dev-python/moto/moto-4.2.14.ebuild
+++ b/dev-python/moto/moto-4.2.14.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv"
RDEPEND="
>=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
diff --git a/dev-python/moto/moto-5.2.2.ebuild b/dev-python/moto/moto-5.2.2.ebuild
index 0c30e1474276..2170cd3926e8 100644
--- a/dev-python/moto/moto-5.2.2.ebuild
+++ b/dev-python/moto/moto-5.2.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv"
RDEPEND="
>=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
diff --git a/dev-python/moto/moto-5.2.3.ebuild b/dev-python/moto/moto-5.2.3.ebuild
index 2d4cfbfbe14c..ca979250d454 100644
--- a/dev-python/moto/moto-5.2.3.ebuild
+++ b/dev-python/moto/moto-5.2.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
>=dev-python/aws-xray-sdk-0.93[${PYTHON_USEDEP}]
diff --git a/dev-python/mypy/mypy-2.3.1.ebuild b/dev-python/mypy/mypy-2.3.1.ebuild
index e56586a5eba5..34fac450c251 100644
--- a/dev-python/mypy/mypy-2.3.1.ebuild
+++ b/dev-python/mypy/mypy-2.3.1.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~amd64 arm arm64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="native-extensions"
# stubgen collides with this package: https://bugs.gentoo.org/585594
diff --git a/dev-python/nanobind/nanobind-2.15.0.ebuild b/dev-python/nanobind/nanobind-2.15.0.ebuild
index 62b8073c6b06..e3ae0cc5c0d5 100644
--- a/dev-python/nanobind/nanobind-2.15.0.ebuild
+++ b/dev-python/nanobind/nanobind-2.15.0.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ppc ppc64 ~riscv ~s390 ~x86"
DEPEND="
>=dev-cpp/robin-map-1.3.0
diff --git a/dev-python/narwhals/narwhals-2.25.0.ebuild b/dev-python/narwhals/narwhals-2.25.0.ebuild
index 359955646416..659973ad0528 100644
--- a/dev-python/narwhals/narwhals-2.25.0.ebuild
+++ b/dev-python/narwhals/narwhals-2.25.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64"
+KEYWORDS="amd64 ~arm64"
BDEPEND="
test? (
diff --git a/dev-python/nbformat/nbformat-5.11.1.ebuild b/dev-python/nbformat/nbformat-5.11.1.ebuild
index b668d5cb9960..b2dc98948cc0 100644
--- a/dev-python/nbformat/nbformat-5.11.1.ebuild
+++ b/dev-python/nbformat/nbformat-5.11.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/fastjsonschema-2.15[${PYTHON_USEDEP}]
diff --git a/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild b/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild
index f3bd69d53ff1..c3552fe4474d 100644
--- a/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild
+++ b/dev-python/nest-asyncio2/nest-asyncio2-1.7.2.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/numpy/numpy-2.5.2-r1.ebuild b/dev-python/numpy/numpy-2.5.2-r1.ebuild
index d22a019b6c54..56b61c61ff19 100644
--- a/dev-python/numpy/numpy-2.5.2-r1.ebuild
+++ b/dev-python/numpy/numpy-2.5.2-r1.ebuild
@@ -22,7 +22,7 @@ HOMEPAGE="
LICENSE="BSD 0BSD MIT ZLIB CC0-1.0"
SLOT="0/2"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86"
fi
# +lapack because the internal fallbacks are pretty slow. Building without blas
# is barely supported anyway, see bug #914358.
diff --git a/dev-python/oct2py/oct2py-6.0.4.ebuild b/dev-python/oct2py/oct2py-6.0.4.ebuild
index d3a93f0697b0..f1549c4befa5 100644
--- a/dev-python/oct2py/oct2py-6.0.4.ebuild
+++ b/dev-python/oct2py/oct2py-6.0.4.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
RDEPEND="
>=dev-python/metakernel-1.0.6[${PYTHON_USEDEP}]
diff --git a/dev-python/oct2py/oct2py-6.1.1.ebuild b/dev-python/oct2py/oct2py-6.1.1.ebuild
index d3a93f0697b0..f1549c4befa5 100644
--- a/dev-python/oct2py/oct2py-6.1.1.ebuild
+++ b/dev-python/oct2py/oct2py-6.1.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
RDEPEND="
>=dev-python/metakernel-1.0.6[${PYTHON_USEDEP}]
diff --git a/dev-python/pandas/pandas-2.3.3.ebuild b/dev-python/pandas/pandas-2.3.3.ebuild
index a664481e552d..cabf803d7299 100644
--- a/dev-python/pandas/pandas-2.3.3.ebuild
+++ b/dev-python/pandas/pandas-2.3.3.ebuild
@@ -21,7 +21,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="big-endian full-support minimal test X"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pandas/pandas-3.0.5.ebuild b/dev-python/pandas/pandas-3.0.5.ebuild
index 71f7b4db6756..2ad26b33f3e8 100644
--- a/dev-python/pandas/pandas-3.0.5.ebuild
+++ b/dev-python/pandas/pandas-3.0.5.ebuild
@@ -23,7 +23,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="amd64 arm64 ~riscv ~x86"
+ KEYWORDS="amd64 arm64 ~riscv"
fi
IUSE="big-endian full-support minimal test X"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pandas/pandas-3.0.6.ebuild b/dev-python/pandas/pandas-3.0.6.ebuild
index 328b2ad1be21..8ffa1c2b2901 100644
--- a/dev-python/pandas/pandas-3.0.6.ebuild
+++ b/dev-python/pandas/pandas-3.0.6.ebuild
@@ -23,7 +23,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm64 ~riscv"
fi
IUSE="big-endian full-support minimal test X"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pikepdf/pikepdf-10.12.0.ebuild b/dev-python/pikepdf/pikepdf-10.12.0.ebuild
index 634c4f07cb5a..7b2b1ba32746 100644
--- a/dev-python/pikepdf/pikepdf-10.12.0.ebuild
+++ b/dev-python/pikepdf/pikepdf-10.12.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~s390 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm arm64 ~ppc ppc64 ~riscv ~s390 ~x86"
IUSE="big-endian"
# Check QPDF_MIN_VERSION in pyproject.toml on bumps, as well as
diff --git a/dev-python/poetry-plugin-export/poetry-plugin-export-1.10.0.ebuild b/dev-python/poetry-plugin-export/poetry-plugin-export-1.10.0.ebuild
index a7a77d45b391..7bf56a3af423 100644
--- a/dev-python/poetry-plugin-export/poetry-plugin-export-1.10.0.ebuild
+++ b/dev-python/poetry-plugin-export/poetry-plugin-export-1.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64"
RDEPEND="
>=dev-python/poetry-2.3.0[${PYTHON_USEDEP}]
diff --git a/dev-python/poetry/poetry-2.4.1.ebuild b/dev-python/poetry/poetry-2.4.1.ebuild
index f6c96040ef8f..0b0d17cc4bfe 100644
--- a/dev-python/poetry/poetry-2.4.1.ebuild
+++ b/dev-python/poetry/poetry-2.4.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64"
RDEPEND="
=dev-python/poetry-core-$(ver_cut 1-2)*[${PYTHON_USEDEP}]
diff --git a/dev-python/poetry/poetry-2.4.2.ebuild b/dev-python/poetry/poetry-2.4.2.ebuild
index ec7e7746f5d6..fe0ad863e7bf 100644
--- a/dev-python/poetry/poetry-2.4.2.ebuild
+++ b/dev-python/poetry/poetry-2.4.2.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
=dev-python/poetry-core-$(ver_cut 1-2)*[${PYTHON_USEDEP}]
diff --git a/dev-python/poetry/poetry-2.4.3.ebuild b/dev-python/poetry/poetry-2.4.3.ebuild
index ec7e7746f5d6..fe0ad863e7bf 100644
--- a/dev-python/poetry/poetry-2.4.3.ebuild
+++ b/dev-python/poetry/poetry-2.4.3.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
=dev-python/poetry-core-$(ver_cut 1-2)*[${PYTHON_USEDEP}]
diff --git a/dev-python/portalocker/portalocker-4.2.0.ebuild b/dev-python/portalocker/portalocker-4.2.0.ebuild
index 16ac1ab79814..4afb1572868e 100644
--- a/dev-python/portalocker/portalocker-4.2.0.ebuild
+++ b/dev-python/portalocker/portalocker-4.2.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
BDEPEND="
test? (
diff --git a/dev-python/pyarrow/pyarrow-23.0.1.ebuild b/dev-python/pyarrow/pyarrow-23.0.1.ebuild
index 41f0b7393b42..78f6df4aaa5e 100644
--- a/dev-python/pyarrow/pyarrow-23.0.1.ebuild
+++ b/dev-python/pyarrow/pyarrow-23.0.1.ebuild
@@ -33,7 +33,7 @@ S="${WORKDIR}/apache-arrow-${PV}/python"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="+parquet +snappy ssl"
RDEPEND="
diff --git a/dev-python/pyarrow/pyarrow-24.0.0.ebuild b/dev-python/pyarrow/pyarrow-24.0.0.ebuild
index c5fa6a50fc71..10fbe35a5991 100644
--- a/dev-python/pyarrow/pyarrow-24.0.0.ebuild
+++ b/dev-python/pyarrow/pyarrow-24.0.0.ebuild
@@ -35,7 +35,7 @@ S="${WORKDIR}/apache-arrow-${PV}/python"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~arm64 ~riscv x86"
+KEYWORDS="amd64 ~arm64 ~riscv"
IUSE="+parquet +snappy ssl"
RDEPEND="
diff --git a/dev-python/pyarrow/pyarrow-25.0.1.ebuild b/dev-python/pyarrow/pyarrow-25.0.1.ebuild
index 192db2d131e2..8d39cd88ea80 100644
--- a/dev-python/pyarrow/pyarrow-25.0.1.ebuild
+++ b/dev-python/pyarrow/pyarrow-25.0.1.ebuild
@@ -35,7 +35,7 @@ S="${WORKDIR}/apache-arrow-${PV}/python"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 arm64 ~riscv x86"
+KEYWORDS="~amd64 arm64 ~riscv"
IUSE="+parquet +snappy ssl"
RDEPEND="
diff --git a/dev-python/pygithub/pygithub-2.10.0.ebuild b/dev-python/pygithub/pygithub-2.10.0.ebuild
index d590b1635171..3a33d11582a2 100644
--- a/dev-python/pygithub/pygithub-2.10.0.ebuild
+++ b/dev-python/pygithub/pygithub-2.10.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="LGPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
# cryptography via pyjwt[crypto]
RDEPEND="
diff --git a/dev-python/pygments/pygments-2.21.0.ebuild b/dev-python/pygments/pygments-2.21.0.ebuild
index b95be41f1235..7573fa423620 100644
--- a/dev-python/pygments/pygments-2.21.0.ebuild
+++ b/dev-python/pygments/pygments-2.21.0.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
BDEPEND="
test? (
diff --git a/dev-python/pygraphviz/pygraphviz-2.0.1-r1.ebuild b/dev-python/pygraphviz/pygraphviz-2.0.1-r1.ebuild
index 5d609463ea77..3942f5289698 100644
--- a/dev-python/pygraphviz/pygraphviz-2.0.1-r1.ebuild
+++ b/dev-python/pygraphviz/pygraphviz-2.0.1-r1.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv ~x86 ~x64-macos"
# Note: only C API of graphviz is used, PYTHON_USEDEP unnecessary.
# [cairo] is actually pangocairo, needed for gvplugin_pango.
diff --git a/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild b/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild
index b91f001ce417..9cfad892f1c2 100644
--- a/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild
+++ b/dev-python/pyls-spyder/pyls-spyder-0.4.0-r4.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://github.com/spyder-ide/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.ta
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64"
RDEPEND="dev-python/python-lsp-server[all-plugins,${PYTHON_USEDEP}]"
BDEPEND="test? ( dev-python/mock[${PYTHON_USEDEP}] )"
diff --git a/dev-python/pyopencl/pyopencl-2026.1.2.ebuild b/dev-python/pyopencl/pyopencl-2026.1.2.ebuild
index c2c35ae33075..4ec38b33c4a9 100644
--- a/dev-python/pyopencl/pyopencl-2026.1.2.ebuild
+++ b/dev-python/pyopencl/pyopencl-2026.1.2.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc64 ~riscv"
+KEYWORDS="amd64 ~ppc64 ~riscv"
IUSE="examples opengl"
# Running tests on GPUs requires both appropriate hardware and additional permissions
diff --git a/dev-python/pyproj/pyproj-3.7.2.ebuild b/dev-python/pyproj/pyproj-3.7.2.ebuild
index c734a4dcf89d..3efe6aeed5b6 100644
--- a/dev-python/pyproj/pyproj-3.7.2.ebuild
+++ b/dev-python/pyproj/pyproj-3.7.2.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~x86"
+KEYWORDS="amd64 arm64"
DEPEND="
>=sci-libs/proj-9.0.0:=
diff --git a/dev-python/pyproj/pyproj-3.8.0.ebuild b/dev-python/pyproj/pyproj-3.8.0.ebuild
index 6852d24b2efc..92f738fbf067 100644
--- a/dev-python/pyproj/pyproj-3.8.0.ebuild
+++ b/dev-python/pyproj/pyproj-3.8.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
DEPEND="
>=sci-libs/proj-9.0.0:=
diff --git a/dev-python/pysnmp/pysnmp-7.1.29.ebuild b/dev-python/pysnmp/pysnmp-7.1.29.ebuild
index f1654fa24927..6bc0db254cc0 100644
--- a/dev-python/pysnmp/pysnmp-7.1.29.ebuild
+++ b/dev-python/pysnmp/pysnmp-7.1.29.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ppc ~sparc x86"
PROPERTIES="test_network"
RESTRICT="test"
diff --git a/dev-python/pysubs2/pysubs2-1.9.0.ebuild b/dev-python/pysubs2/pysubs2-1.9.0.ebuild
index 2cc9559d1e13..c869869e4f05 100644
--- a/dev-python/pysubs2/pysubs2-1.9.0.ebuild
+++ b/dev-python/pysubs2/pysubs2-1.9.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.ebuild b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.ebuild
index 58e4cd8777e3..8f5f46149181 100644
--- a/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.ebuild
+++ b/dev-python/pytest-rerunfailures/pytest-rerunfailures-16.6.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MPL-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/packaging-17.1[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.1.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.1.ebuild
index 6f5223dfc8a1..0f11b31e1702 100644
--- a/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.1.ebuild
+++ b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2020-2025 Gentoo Authors
+# Copyright 2020-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -21,7 +21,7 @@ S=${WORKDIR}/${P//_/}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 ~riscv ~x86"
+KEYWORDS="amd64 ~riscv"
RDEPEND="
dev-python/attrs[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.5.ebuild b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.5.ebuild
index 5a59e4e1afeb..b2207097717e 100644
--- a/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.5.ebuild
+++ b/dev-python/pytest-salt-factories/pytest-salt-factories-1.0.5.ebuild
@@ -21,7 +21,7 @@ S=${WORKDIR}/${P//_/}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
dev-python/attrs[${PYTHON_USEDEP}]
diff --git a/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild b/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild
index 6603931e2be2..8800dd549f2d 100644
--- a/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild
+++ b/dev-python/pytest-timeout/pytest-timeout-2.5.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
# do not rdepend on pytest, it won't be used without it anyway
# pytest-cov used to test compatibility
diff --git a/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild b/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild
index bc110a6e2b6a..b530695a99bf 100644
--- a/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild
+++ b/dev-python/python-dotenv/python-dotenv-1.2.3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/python-json-logger/python-json-logger-4.2.0.ebuild b/dev-python/python-json-logger/python-json-logger-4.2.0.ebuild
index 6b23177ce335..1c7d43153cf2 100644
--- a/dev-python/python-json-logger/python-json-logger-4.2.0.ebuild
+++ b/dev-python/python-json-logger/python-json-logger-4.2.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/python-lsp-black/python-lsp-black-2.0.0-r2.ebuild b/dev-python/python-lsp-black/python-lsp-black-2.0.0-r2.ebuild
index e1c7dd9912b8..e3e47b89cc86 100644
--- a/dev-python/python-lsp-black/python-lsp-black-2.0.0-r2.ebuild
+++ b/dev-python/python-lsp-black/python-lsp-black-2.0.0-r2.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64"
RDEPEND="
>=dev-python/python-lsp-server-1.4.0[${PYTHON_USEDEP}]
diff --git a/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
index 358ee2f63e19..ada11edb3dfa 100644
--- a/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
+++ b/dev-python/python-lsp-server/python-lsp-server-1.14.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64"
IUSE="all-plugins"
PLUGIN_DEP="
diff --git a/dev-python/python-lsp-server/python-lsp-server-1.15.0.ebuild b/dev-python/python-lsp-server/python-lsp-server-1.15.0.ebuild
index 358ee2f63e19..ada11edb3dfa 100644
--- a/dev-python/python-lsp-server/python-lsp-server-1.15.0.ebuild
+++ b/dev-python/python-lsp-server/python-lsp-server-1.15.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64"
IUSE="all-plugins"
PLUGIN_DEP="
diff --git a/dev-python/python-neutronclient/python-neutronclient-13.0.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-13.0.0.ebuild
index 178ecba8837e..5e022bcecaac 100644
--- a/dev-python/python-neutronclient/python-neutronclient-13.0.0.ebuild
+++ b/dev-python/python-neutronclient/python-neutronclient-13.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
RDEPEND="
>=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/python-neutronclient/python-neutronclient-14.0.0.ebuild b/dev-python/python-neutronclient/python-neutronclient-14.0.0.ebuild
index ae0ee770f050..f0033b395da2 100644
--- a/dev-python/python-neutronclient/python-neutronclient-14.0.0.ebuild
+++ b/dev-python/python-neutronclient/python-neutronclient-14.0.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
RDEPEND="
>=dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pythran/pythran-0.19.0.ebuild b/dev-python/pythran/pythran-0.19.0.ebuild
index a14d78dcd2df..eb89f198aac8 100644
--- a/dev-python/pythran/pythran-0.19.0.ebuild
+++ b/dev-python/pythran/pythran-0.19.0.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~s390 ~sparc ~x86"
fi
RDEPEND="
diff --git a/dev-python/pywayland/pywayland-0.4.19.ebuild b/dev-python/pywayland/pywayland-0.4.19.ebuild
index 2a3887315277..b2d422c26818 100644
--- a/dev-python/pywayland/pywayland-0.4.19.ebuild
+++ b/dev-python/pywayland/pywayland-0.4.19.ebuild
@@ -22,7 +22,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~riscv ~x86"
+KEYWORDS="amd64 ~riscv ~x86"
RDEPEND="
dev-libs/wayland
diff --git a/dev-python/pyzmq/pyzmq-27.2.0.ebuild b/dev-python/pyzmq/pyzmq-27.2.0.ebuild
index c32e59b0984f..215f76234e11 100644
--- a/dev-python/pyzmq/pyzmq-27.2.0.ebuild
+++ b/dev-python/pyzmq/pyzmq-27.2.0.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="drafts"
# There are additional test failures if zeromq has the draft api enabled, but pyzmq has it disabled.
diff --git a/dev-python/quart/quart-0.22.0.ebuild b/dev-python/quart/quart-0.22.0.ebuild
index 437e7ef2ffc4..84fadc2bad00 100644
--- a/dev-python/quart/quart-0.22.0.ebuild
+++ b/dev-python/quart/quart-0.22.0.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-python/aiofiles[${PYTHON_USEDEP}]
diff --git a/dev-python/reedsolo/reedsolo-2.1.1_beta1-r2.ebuild b/dev-python/reedsolo/reedsolo-2.1.1_beta1-r2.ebuild
index 05a8e9274f13..fd670be4ea56 100644
--- a/dev-python/reedsolo/reedsolo-2.1.1_beta1-r2.ebuild
+++ b/dev-python/reedsolo/reedsolo-2.1.1_beta1-r2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="|| ( Unlicense MIT-0 )"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
IUSE="+native-extensions"
BDEPEND="
diff --git a/dev-python/rich-click/rich-click-1.9.9.ebuild b/dev-python/rich-click/rich-click-1.9.9.ebuild
index 1a186b93c4ee..2a83fe77d295 100644
--- a/dev-python/rich-click/rich-click-1.9.9.ebuild
+++ b/dev-python/rich-click/rich-click-1.9.9.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
RDEPEND="
>=dev-python/click-8[${PYTHON_USEDEP}]
diff --git a/dev-python/rpyc/rpyc-6.0.0.ebuild b/dev-python/rpyc/rpyc-6.0.0.ebuild
index 8af39b692d87..1dc0f1261d23 100644
--- a/dev-python/rpyc/rpyc-6.0.0.ebuild
+++ b/dev-python/rpyc/rpyc-6.0.0.ebuild
@@ -15,7 +15,7 @@ SRC_URI="https://github.com/tomerfiliba-org/rpyc/archive/refs/tags/${PV}.tar.gz
LICENSE="MIT"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
# USE flags gdb, numpy are used *only* to run tests depending on these packages
IUSE="test numpy gdb"
diff --git a/dev-python/rq/rq-2.11.0.ebuild b/dev-python/rq/rq-2.11.0.ebuild
index e6f07c3fff3f..2216179b1d4d 100644
--- a/dev-python/rq/rq-2.11.0.ebuild
+++ b/dev-python/rq/rq-2.11.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv ~sparc x86"
RDEPEND="
>=dev-python/click-5.0[${PYTHON_USEDEP}]
diff --git a/dev-python/scikit-image/scikit-image-0.26.0-r1.ebuild b/dev-python/scikit-image/scikit-image-0.26.0-r1.ebuild
index 5960f662da5b..cb7e2e54f637 100644
--- a/dev-python/scikit-image/scikit-image-0.26.0-r1.ebuild
+++ b/dev-python/scikit-image/scikit-image-0.26.0-r1.ebuild
@@ -28,7 +28,7 @@ SRC_URI+="
LICENSE="BSD"
SLOT="0"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm64"
fi
RDEPEND="
diff --git a/dev-python/shtab/shtab-1.11.0.ebuild b/dev-python/shtab/shtab-1.11.0.ebuild
index c8b0e161b0e5..54cd635fb7e8 100644
--- a/dev-python/shtab/shtab-1.11.0.ebuild
+++ b/dev-python/shtab/shtab-1.11.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
BDEPEND="
dev-python/setuptools-scm[${PYTHON_USEDEP}]
diff --git a/dev-python/sphinx-argparse/sphinx-argparse-0.6.1.ebuild b/dev-python/sphinx-argparse/sphinx-argparse-0.6.1.ebuild
index 658755212875..94cc9634169a 100644
--- a/dev-python/sphinx-argparse/sphinx-argparse-0.6.1.ebuild
+++ b/dev-python/sphinx-argparse/sphinx-argparse-0.6.1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/docutils-0.19[${PYTHON_USEDEP}]
diff --git a/dev-python/spyder-kernels/spyder-kernels-3.1.5-r1.ebuild b/dev-python/spyder-kernels/spyder-kernels-3.1.5-r1.ebuild
index 414247fb9200..1082080d383d 100644
--- a/dev-python/spyder-kernels/spyder-kernels-3.1.5-r1.ebuild
+++ b/dev-python/spyder-kernels/spyder-kernels-3.1.5-r1.ebuild
@@ -19,7 +19,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/cloudpickle[${PYTHON_USEDEP}]
diff --git a/dev-python/spyder-kernels/spyder-kernels-3.1.6.ebuild b/dev-python/spyder-kernels/spyder-kernels-3.1.6.ebuild
index c35fd833418f..df971314a3b2 100644
--- a/dev-python/spyder-kernels/spyder-kernels-3.1.6.ebuild
+++ b/dev-python/spyder-kernels/spyder-kernels-3.1.6.ebuild
@@ -19,7 +19,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
dev-python/cloudpickle[${PYTHON_USEDEP}]
diff --git a/dev-python/statsmodels/statsmodels-0.14.6.ebuild b/dev-python/statsmodels/statsmodels-0.14.6.ebuild
index 327b0efc05e2..80c1b4279eb7 100644
--- a/dev-python/statsmodels/statsmodels-0.14.6.ebuild
+++ b/dev-python/statsmodels/statsmodels-0.14.6.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="examples"
# NB: upstream requires building with numpy-2 but supports 1.x
diff --git a/dev-python/statsmodels/statsmodels-0.15.0.ebuild b/dev-python/statsmodels/statsmodels-0.15.0.ebuild
index 86119da60575..002a185f505c 100644
--- a/dev-python/statsmodels/statsmodels-0.15.0.ebuild
+++ b/dev-python/statsmodels/statsmodels-0.15.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="~amd64 ~arm64 ~riscv"
IUSE="examples"
# NB: upstream requires building with numpy-2 but supports 1.x
diff --git a/dev-python/stevedore/stevedore-5.9.1.ebuild b/dev-python/stevedore/stevedore-5.9.1.ebuild
index 16569141fa9b..d7f2690bc3a2 100644
--- a/dev-python/stevedore/stevedore-5.9.1.ebuild
+++ b/dev-python/stevedore/stevedore-5.9.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc x86"
BDEPEND="
test? (
diff --git a/dev-python/stripe/stripe-15.5.1.ebuild b/dev-python/stripe/stripe-15.5.1.ebuild
index d87b66115eea..4087375d52b2 100644
--- a/dev-python/stripe/stripe-15.5.1.ebuild
+++ b/dev-python/stripe/stripe-15.5.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 x86"
IUSE="telemetry"
RDEPEND="
diff --git a/dev-python/tibs/tibs-2.0.1.ebuild b/dev-python/tibs/tibs-2.0.1.ebuild
index b9c5ba013a4e..75e63358942c 100644
--- a/dev-python/tibs/tibs-2.0.1.ebuild
+++ b/dev-python/tibs/tibs-2.0.1.ebuild
@@ -103,7 +103,7 @@ LICENSE="MIT"
# Dependent crate licenses
LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-3.0 ZLIB"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="amd64 ~arm arm64 ~riscv x86"
DEPEND="
app-arch/zstd:=
diff --git a/dev-python/tifffile/tifffile-2026.9.15.ebuild b/dev-python/tifffile/tifffile-2026.9.15.ebuild
index 49630e1bd1b8..0ef52373937a 100644
--- a/dev-python/tifffile/tifffile-2026.9.15.ebuild
+++ b/dev-python/tifffile/tifffile-2026.9.15.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/numpy-2.1[${PYTHON_USEDEP}]
diff --git a/dev-python/tifffile/tifffile-2026.9.9.ebuild b/dev-python/tifffile/tifffile-2026.9.9.ebuild
index 49630e1bd1b8..0ef52373937a 100644
--- a/dev-python/tifffile/tifffile-2026.9.9.ebuild
+++ b/dev-python/tifffile/tifffile-2026.9.9.ebuild
@@ -21,7 +21,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm64"
RDEPEND="
>=dev-python/numpy-2.1[${PYTHON_USEDEP}]
diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild
index 87c171eea069..e3e3737485ca 100644
--- a/dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild
+++ b/dev-python/translate-toolkit/translate-toolkit-3.19.18.ebuild
@@ -23,7 +23,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 arm64 ~x86"
IUSE="+html +ical +ini +subtitles +yaml"
RDEPEND="
diff --git a/dev-python/typer/typer-0.27.2.ebuild b/dev-python/typer/typer-0.27.2.ebuild
index f875bee44d47..044f0cd74722 100644
--- a/dev-python/typer/typer-0.27.2.ebuild
+++ b/dev-python/typer/typer-0.27.2.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
IUSE="cli"
RDEPEND="
diff --git a/dev-python/urwid/urwid-4.0.11.ebuild b/dev-python/urwid/urwid-4.0.11.ebuild
index f840d3f28004..1fdcf2e3eada 100644
--- a/dev-python/urwid/urwid-4.0.11.ebuild
+++ b/dev-python/urwid/urwid-4.0.11.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86"
IUSE="examples"
RDEPEND="
diff --git a/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.1.ebuild b/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.1.ebuild
index 9c5e1be200c1..8ddafa02bc34 100644
--- a/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.1.ebuild
+++ b/dev-python/uv-dynamic-versioning/uv-dynamic-versioning-0.14.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/dunamai-1.26.1[${PYTHON_USEDEP}]
diff --git a/dev-python/uvicorn/uvicorn-0.52.4.ebuild b/dev-python/uvicorn/uvicorn-0.52.4.ebuild
index 177e8e69f7c1..525fcf20b707 100644
--- a/dev-python/uvicorn/uvicorn-0.52.4.ebuild
+++ b/dev-python/uvicorn/uvicorn-0.52.4.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="test-rust"
RDEPEND="
diff --git a/dev-python/vcs-versioning/vcs-versioning-2.3.1.ebuild b/dev-python/vcs-versioning/vcs-versioning-2.3.1.ebuild
index f253689d01b8..66c6ba3b5f2b 100644
--- a/dev-python/vcs-versioning/vcs-versioning-2.3.1.ebuild
+++ b/dev-python/vcs-versioning/vcs-versioning-2.3.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
>=dev-python/packaging-26.2[${PYTHON_USEDEP}]
diff --git a/dev-python/webencodings/webencodings-0.6.1.ebuild b/dev-python/webencodings/webencodings-0.6.1.ebuild
index 0736c305e2b0..e25d861d43e0 100644
--- a/dev-python/webencodings/webencodings-0.6.1.ebuild
+++ b/dev-python/webencodings/webencodings-0.6.1.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/widgetsnbextension/widgetsnbextension-4.0.16.ebuild b/dev-python/widgetsnbextension/widgetsnbextension-4.0.16.ebuild
index cdfa9b7e1c98..28d7ba66c94d 100644
--- a/dev-python/widgetsnbextension/widgetsnbextension-4.0.16.ebuild
+++ b/dev-python/widgetsnbextension/widgetsnbextension-4.0.16.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
BDEPEND="
dev-python/jupyter-packaging[${PYTHON_USEDEP}]
diff --git a/dev-python/xarray/xarray-2026.2.0.ebuild b/dev-python/xarray/xarray-2026.2.0.ebuild
index 8f091ed6645b..a7047b13cb6d 100644
--- a/dev-python/xarray/xarray-2026.2.0.ebuild
+++ b/dev-python/xarray/xarray-2026.2.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="big-endian"
RDEPEND="
diff --git a/dev-python/xarray/xarray-2026.4.0.ebuild b/dev-python/xarray/xarray-2026.4.0.ebuild
index e94fe18e473a..15705850f17b 100644
--- a/dev-python/xarray/xarray-2026.4.0.ebuild
+++ b/dev-python/xarray/xarray-2026.4.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="big-endian"
RDEPEND="
diff --git a/dev-python/xarray/xarray-2026.7.0.ebuild b/dev-python/xarray/xarray-2026.7.0.ebuild
index e94fe18e473a..15705850f17b 100644
--- a/dev-python/xarray/xarray-2026.7.0.ebuild
+++ b/dev-python/xarray/xarray-2026.7.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv"
IUSE="big-endian"
RDEPEND="
diff --git a/dev-python/xxhash/xxhash-4.0.1.ebuild b/dev-python/xxhash/xxhash-4.0.1.ebuild
index 80e7e86e74d1..bddc101ba87f 100644
--- a/dev-python/xxhash/xxhash-4.0.1.ebuild
+++ b/dev-python/xxhash/xxhash-4.0.1.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 ~arm arm64 ppc64 ~riscv ~sparc x86"
DEPEND="
>=dev-libs/xxhash-0.8.0
diff --git a/dev-python/zipstream-ng/zipstream-ng-1.9.3.ebuild b/dev-python/zipstream-ng/zipstream-ng-1.9.3.ebuild
index 414cf8c4a87a..c0a07b0f018d 100644
--- a/dev-python/zipstream-ng/zipstream-ng-1.9.3.ebuild
+++ b/dev-python/zipstream-ng/zipstream-ng-1.9.3.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="LGPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~x86"
EPYTEST_PLUGINS=()
distutils_enable_tests pytest
diff --git a/dev-python/zope-hookable/zope-hookable-8.3.ebuild b/dev-python/zope-hookable/zope-hookable-8.3.ebuild
index 630d37e51b62..b9c997776a4c 100644
--- a/dev-python/zope-hookable/zope-hookable-8.3.ebuild
+++ b/dev-python/zope-hookable/zope-hookable-8.3.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.3.ebuild b/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.3.ebuild
index 17283f8de555..6470b986ecf1 100644
--- a/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.3.ebuild
+++ b/dev-python/zope-i18nmessageid/zope-i18nmessageid-8.3.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
distutils_enable_tests unittest
diff --git a/dev-python/zope-interface/zope-interface-8.6.ebuild b/dev-python/zope-interface/zope-interface-8.6.ebuild
index b3b5480ac141..e817db8928b1 100644
--- a/dev-python/zope-interface/zope-interface-8.6.ebuild
+++ b/dev-python/zope-interface/zope-interface-8.6.ebuild
@@ -19,7 +19,7 @@ HOMEPAGE="
LICENSE="ZPL"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris"
IUSE="+native-extensions test"
RESTRICT="!test? ( test )"
diff --git a/dev-qt/qt-docs/qt-docs-6.11.2_p202608131018.ebuild b/dev-qt/qt-docs/qt-docs-6.11.2_p202608131018.ebuild
index 4d2a091e24ad..0d57daae526a 100644
--- a/dev-qt/qt-docs/qt-docs-6.11.2_p202608131018.ebuild
+++ b/dev-qt/qt-docs/qt-docs-6.11.2_p202608131018.ebuild
@@ -10,7 +10,7 @@ HOMEPAGE="https://doc.qt.io/"
LICENSE="FDL-1.3"
SLOT="6"
-KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
IUSE="+examples +html +qch"
REQUIRED_USE="|| ( examples html qch )"
diff --git a/dev-qt/qt3d/qt3d-6.11.2.ebuild b/dev-qt/qt3d/qt3d-6.11.2.ebuild
index 63a2f06a194a..3a1987b83386 100644
--- a/dev-qt/qt3d/qt3d-6.11.2.ebuild
+++ b/dev-qt/qt3d/qt3d-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="3D rendering module for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ~riscv x86"
elif [[ ${QT6_BUILD_TYPE} == live ]]; then
EGIT_SUBMODULES=() # skip qtquick3d-assimp
fi
diff --git a/dev-qt/qt5compat/qt5compat-6.11.2.ebuild b/dev-qt/qt5compat/qt5compat-6.11.2.ebuild
index f8f2789bd012..ce3018f08bcb 100644
--- a/dev-qt/qt5compat/qt5compat-6.11.2.ebuild
+++ b/dev-qt/qt5compat/qt5compat-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Qt module containing the unsupported Qt 5 APIs"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="+gui icu qml"
diff --git a/dev-qt/qtbase/qtbase-6.11.2-r2.ebuild b/dev-qt/qtbase/qtbase-6.11.2-r2.ebuild
index bb6e910d69a9..b63f19d0c77c 100644
--- a/dev-qt/qtbase/qtbase-6.11.2-r2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.11.2-r2.ebuild
@@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build toolchain-funcs
DESCRIPTION="Cross-platform application development framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
declare -gA QT6_IUSE=(
diff --git a/dev-qt/qtcharts/qtcharts-6.11.2.ebuild b/dev-qt/qtcharts/qtcharts-6.11.2.ebuild
index a1665779aed6..a923f8a16229 100644
--- a/dev-qt/qtcharts/qtcharts-6.11.2.ebuild
+++ b/dev-qt/qtcharts/qtcharts-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Chart component library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="gles2-only qml"
diff --git a/dev-qt/qtconnectivity/qtconnectivity-6.11.2.ebuild b/dev-qt/qtconnectivity/qtconnectivity-6.11.2.ebuild
index dde47cd89278..377ebe624333 100644
--- a/dev-qt/qtconnectivity/qtconnectivity-6.11.2.ebuild
+++ b/dev-qt/qtconnectivity/qtconnectivity-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Bluetooth and NFC support library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="+bluetooth neard nfc smartcard"
diff --git a/dev-qt/qtdeclarative/qtdeclarative-6.11.2-r1.ebuild b/dev-qt/qtdeclarative/qtdeclarative-6.11.2-r1.ebuild
index e0be30ea883d..0fa753275294 100644
--- a/dev-qt/qtdeclarative/qtdeclarative-6.11.2-r1.ebuild
+++ b/dev-qt/qtdeclarative/qtdeclarative-6.11.2-r1.ebuild
@@ -13,7 +13,7 @@ inherit python-any-r1 qt6-build
DESCRIPTION="Qt Declarative (Quick 2)"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="
diff --git a/dev-qt/qtimageformats/qtimageformats-6.11.2.ebuild b/dev-qt/qtimageformats/qtimageformats-6.11.2.ebuild
index 68ef985f0cf7..9096112f5f49 100644
--- a/dev-qt/qtimageformats/qtimageformats-6.11.2.ebuild
+++ b/dev-qt/qtimageformats/qtimageformats-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Additional format plugins for the Qt image I/O system"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ~ppc64 ~riscv x86"
fi
IUSE="mng"
diff --git a/dev-qt/qtlocation/qtlocation-6.11.2.ebuild b/dev-qt/qtlocation/qtlocation-6.11.2.ebuild
index 9370677cde2b..1644e3257bbe 100644
--- a/dev-qt/qtlocation/qtlocation-6.11.2.ebuild
+++ b/dev-qt/qtlocation/qtlocation-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Location (places, maps, navigation) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
fi
RDEPEND="
diff --git a/dev-qt/qtmultimedia/qtmultimedia-6.11.2.ebuild b/dev-qt/qtmultimedia/qtmultimedia-6.11.2.ebuild
index 20d01031a427..f7e8c0dc49e1 100644
--- a/dev-qt/qtmultimedia/qtmultimedia-6.11.2.ebuild
+++ b/dev-qt/qtmultimedia/qtmultimedia-6.11.2.ebuild
@@ -9,7 +9,7 @@ inherit flag-o-matic qt6-build
DESCRIPTION="Multimedia (audio, video, radio, camera) library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ~ppc64 ~riscv x86"
fi
IUSE="
diff --git a/dev-qt/qtpositioning/qtpositioning-6.11.2.ebuild b/dev-qt/qtpositioning/qtpositioning-6.11.2.ebuild
index a477ef223e3b..ae508e946c91 100644
--- a/dev-qt/qtpositioning/qtpositioning-6.11.2.ebuild
+++ b/dev-qt/qtpositioning/qtpositioning-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Physical position determination library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="geoclue nmea +qml"
diff --git a/dev-qt/qtquick3d/qtquick3d-6.11.2.ebuild b/dev-qt/qtquick3d/qtquick3d-6.11.2.ebuild
index 4747ddcacdab..9c1548db3120 100644
--- a/dev-qt/qtquick3d/qtquick3d-6.11.2.ebuild
+++ b/dev-qt/qtquick3d/qtquick3d-6.11.2.ebuild
@@ -9,7 +9,7 @@ inherit qt6-build
DESCRIPTION="Qt module and API for defining 3D content in Qt QuickTools"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
elif [[ ${QT6_BUILD_TYPE} == live ]]; then
EGIT_SUBMODULES=() # skip qtquick3d-assimp
fi
diff --git a/dev-qt/qtquicktimeline/qtquicktimeline-6.11.2.ebuild b/dev-qt/qtquicktimeline/qtquicktimeline-6.11.2.ebuild
index 41e29f220857..2a3de93b5933 100644
--- a/dev-qt/qtquicktimeline/qtquicktimeline-6.11.2.ebuild
+++ b/dev-qt/qtquicktimeline/qtquicktimeline-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Qt module for keyframe-based timeline construction"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv x86"
fi
RDEPEND="
diff --git a/dev-qt/qtscxml/qtscxml-6.11.2.ebuild b/dev-qt/qtscxml/qtscxml-6.11.2.ebuild
index 33b887706150..c37f9416c133 100644
--- a/dev-qt/qtscxml/qtscxml-6.11.2.ebuild
+++ b/dev-qt/qtscxml/qtscxml-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="State Chart XML (SCXML) support library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="qml"
diff --git a/dev-qt/qtsensors/qtsensors-6.11.2.ebuild b/dev-qt/qtsensors/qtsensors-6.11.2.ebuild
index 42d9516fa9f0..33b6fc5e47a6 100644
--- a/dev-qt/qtsensors/qtsensors-6.11.2.ebuild
+++ b/dev-qt/qtsensors/qtsensors-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Hardware sensor access library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="qml"
diff --git a/dev-qt/qtserialport/qtserialport-6.11.2.ebuild b/dev-qt/qtserialport/qtserialport-6.11.2.ebuild
index f19eff389383..647eea0091ed 100644
--- a/dev-qt/qtserialport/qtserialport-6.11.2.ebuild
+++ b/dev-qt/qtserialport/qtserialport-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Serial port abstraction library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
RDEPEND="
diff --git a/dev-qt/qtshadertools/qtshadertools-6.11.2.ebuild b/dev-qt/qtshadertools/qtshadertools-6.11.2.ebuild
index b89650077047..69ed670d5b4a 100644
--- a/dev-qt/qtshadertools/qtshadertools-6.11.2.ebuild
+++ b/dev-qt/qtshadertools/qtshadertools-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit flag-o-matic qt6-build
DESCRIPTION="Qt APIs and Tools for Graphics Pipelines"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
RDEPEND="
diff --git a/dev-qt/qtspeech/qtspeech-6.11.2.ebuild b/dev-qt/qtspeech/qtspeech-6.11.2.ebuild
index 7696f5c279c6..ae17179b6ffd 100644
--- a/dev-qt/qtspeech/qtspeech-6.11.2.ebuild
+++ b/dev-qt/qtspeech/qtspeech-6.11.2.ebuild
@@ -13,7 +13,7 @@ inherit qt6-build
DESCRIPTION="Text-to-speech library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
fi
IUSE="flite qml +speechd"
diff --git a/dev-qt/qtsvg/qtsvg-6.11.2.ebuild b/dev-qt/qtsvg/qtsvg-6.11.2.ebuild
index 2a4add195a7d..a80d7b3d7844 100644
--- a/dev-qt/qtsvg/qtsvg-6.11.2.ebuild
+++ b/dev-qt/qtsvg/qtsvg-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build toolchain-funcs
DESCRIPTION="SVG rendering library for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
RDEPEND="
diff --git a/dev-qt/qttools/qttools-6.11.2.ebuild b/dev-qt/qttools/qttools-6.11.2.ebuild
index c1c5809501b3..06b81e37e6ca 100644
--- a/dev-qt/qttools/qttools-6.11.2.ebuild
+++ b/dev-qt/qttools/qttools-6.11.2.ebuild
@@ -21,7 +21,7 @@ SRC_URI+="
"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="
diff --git a/dev-qt/qttranslations/qttranslations-6.11.2.ebuild b/dev-qt/qttranslations/qttranslations-6.11.2.ebuild
index d9ca5a639756..a266bd3135b9 100644
--- a/dev-qt/qttranslations/qttranslations-6.11.2.ebuild
+++ b/dev-qt/qttranslations/qttranslations-6.11.2.ebuild
@@ -9,7 +9,7 @@ inherit qt6-build
DESCRIPTION="Translation files for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
DEPEND="~dev-qt/qtbase-${PV}:6"
diff --git a/dev-qt/qtvirtualkeyboard/qtvirtualkeyboard-6.11.2.ebuild b/dev-qt/qtvirtualkeyboard/qtvirtualkeyboard-6.11.2.ebuild
index 3c68fc79aad2..4f431fbf16cf 100644
--- a/dev-qt/qtvirtualkeyboard/qtvirtualkeyboard-6.11.2.ebuild
+++ b/dev-qt/qtvirtualkeyboard/qtvirtualkeyboard-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Customizable input framework and virtual keyboard for Qt"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ~ppc64 ~riscv x86"
fi
IUSE="+sound +spell"
diff --git a/dev-qt/qtwayland/qtwayland-6.11.2.ebuild b/dev-qt/qtwayland/qtwayland-6.11.2.ebuild
index 8a397595b814..f5c4d9b303ca 100644
--- a/dev-qt/qtwayland/qtwayland-6.11.2.ebuild
+++ b/dev-qt/qtwayland/qtwayland-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Toolbox for making Qt based Wayland compositors"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="gnome qml"
diff --git a/dev-qt/qtwebchannel/qtwebchannel-6.11.2.ebuild b/dev-qt/qtwebchannel/qtwebchannel-6.11.2.ebuild
index ab891832374a..decdc84999ff 100644
--- a/dev-qt/qtwebchannel/qtwebchannel-6.11.2.ebuild
+++ b/dev-qt/qtwebchannel/qtwebchannel-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Qt WebChannel"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="qml"
diff --git a/dev-qt/qtwebsockets/qtwebsockets-6.11.2.ebuild b/dev-qt/qtwebsockets/qtwebsockets-6.11.2.ebuild
index dca132e9899a..0d2ada9ca5eb 100644
--- a/dev-qt/qtwebsockets/qtwebsockets-6.11.2.ebuild
+++ b/dev-qt/qtwebsockets/qtwebsockets-6.11.2.ebuild
@@ -8,7 +8,7 @@ inherit qt6-build
DESCRIPTION="Implementation of the WebSocket protocol for the Qt6 framework"
if [[ ${QT6_BUILD_TYPE} == release ]]; then
- KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+ KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
fi
IUSE="qml +ssl"
diff --git a/dev-util/aruba/aruba-2.3.3.ebuild b/dev-util/aruba/aruba-2.3.3.ebuild
index 594bcd78bda2..477fb5f12950 100644
--- a/dev-util/aruba/aruba-2.3.3.ebuild
+++ b/dev-util/aruba/aruba-2.3.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
@@ -20,7 +20,7 @@ SRC_URI="https://github.com/cucumber/aruba/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="$(ver_cut 1)"
-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"
DEPEND="test? ( app-alternatives/bc )"
diff --git a/dev-util/bloaty/bloaty-1.1-r2.ebuild b/dev-util/bloaty/bloaty-1.1-r2.ebuild
index 1f32cf382373..ca6eee24413d 100644
--- a/dev-util/bloaty/bloaty-1.1-r2.ebuild
+++ b/dev-util/bloaty/bloaty-1.1-r2.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
@@ -15,7 +15,7 @@ if [[ ${PV} == 9999 ]]; then
RESTRICT="!test? ( test )"
else
SRC_URI="https://github.com/google/${PN}/releases/download/v${PV}/${P}.tar.bz2"
- KEYWORDS="~amd64 ~arm64 ~loong"
+ KEYWORDS="amd64 ~arm64 ~loong"
fi
LICENSE="Apache-2.0"
diff --git a/dev-util/diffoscope/diffoscope-327.ebuild b/dev-util/diffoscope/diffoscope-327.ebuild
index 7300956155bc..8aff790468e5 100644
--- a/dev-util/diffoscope/diffoscope-327.ebuild
+++ b/dev-util/diffoscope/diffoscope-327.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+KEYWORDS="~amd64 ~arm arm64 ~x86"
IUSE="acl binutils bzip2 libcaca colord cpio +diff docx dtc e2fsprogs file
find gettext gif gpg haskell hdf5 hex imagemagick iso java libguestfs llvm
lzma mono opendocument pascal pdf postscript R rpm sqlite squashfs
diff --git a/dev-util/opencl-headers/opencl-headers-2026.05.29.ebuild b/dev-util/opencl-headers/opencl-headers-2026.05.29.ebuild
index b07b399ad33c..d127f7b0b03f 100644
--- a/dev-util/opencl-headers/opencl-headers-2026.05.29.ebuild
+++ b/dev-util/opencl-headers/opencl-headers-2026.05.29.ebuild
@@ -15,7 +15,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 arm64 ~loong ppc64 ~riscv ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-util/pwntools/pwntools-4.14.1.ebuild b/dev-util/pwntools/pwntools-4.14.1.ebuild
index 4badae92eef7..b43e84370ce2 100644
--- a/dev-util/pwntools/pwntools-4.14.1.ebuild
+++ b/dev-util/pwntools/pwntools-4.14.1.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == "9999" ]]; then
else
SRC_URI="https://github.com/Gallopsled/pwntools/archive/${PV/_beta/beta}.tar.gz -> ${P}.gh.tar.gz"
if [[ ${PV} != *_beta* ]] ; then
- KEYWORDS="amd64 arm64 ~riscv x86"
+ KEYWORDS="amd64 arm64 ~riscv"
fi
S="${WORKDIR}/${PN}-${PV/_beta/beta}"
fi
diff --git a/dev-util/pwntools/pwntools-4.15.0.ebuild b/dev-util/pwntools/pwntools-4.15.0.ebuild
index ea50d4fa9d7c..81e62a01601c 100644
--- a/dev-util/pwntools/pwntools-4.15.0.ebuild
+++ b/dev-util/pwntools/pwntools-4.15.0.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == "9999" ]]; then
else
SRC_URI="https://github.com/Gallopsled/pwntools/archive/${PV/_beta/beta}.tar.gz -> ${P}.gh.tar.gz"
if [[ ${PV} != *_beta* ]] ; then
- KEYWORDS="amd64 ~arm64 ~riscv x86"
+ KEYWORDS="amd64 ~arm64 ~riscv"
fi
S="${WORKDIR}/${PN}-${PV/_beta/beta}"
fi
diff --git a/dev-util/pwntools/pwntools-9999.ebuild b/dev-util/pwntools/pwntools-9999.ebuild
index 055bd350246f..683023049c96 100644
--- a/dev-util/pwntools/pwntools-9999.ebuild
+++ b/dev-util/pwntools/pwntools-9999.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == "9999" ]]; then
else
SRC_URI="https://github.com/Gallopsled/pwntools/archive/${PV/_beta/beta}.tar.gz -> ${P}.gh.tar.gz"
if [[ ${PV} != *_beta* ]] ; then
- KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm64 ~riscv"
fi
S="${WORKDIR}/${PN}-${PV/_beta/beta}"
fi
diff --git a/dev-vcs/gagit/gagit-4.ebuild b/dev-vcs/gagit/gagit-4.ebuild
index cb8c027a9469..b21de3bc3939 100644
--- a/dev-vcs/gagit/gagit-4.ebuild
+++ b/dev-vcs/gagit/gagit-4.ebuild
@@ -13,7 +13,7 @@ SRC_URI="
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~s390 ~x86"
RDEPEND="
dev-vcs/git
diff --git a/eclass/font-ebdftopcf.eclass b/eclass/font-ebdftopcf.eclass
index afd77e083bee..97db3aa39d74 100644
--- a/eclass/font-ebdftopcf.eclass
+++ b/eclass/font-ebdftopcf.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: font-ebdftopcf.eclass
@@ -11,6 +11,9 @@
# @DESCRIPTION:
# The manpage for this eclass is in media-gfx/ebdftopcf.
# Inherit this eclass after font.eclass
+#
+# In EAPI 9 and newer, this eclass is deprecated in favor of font.eclass's
+# native BDF to OTB conversion via FONT_OPENTYPE_COMPAT=1.
case ${EAPI} in
7) ;;
diff --git a/eclass/font.eclass b/eclass/font.eclass
index f0261ad05dd6..e8d763e1e1c1 100644
--- a/eclass/font.eclass
+++ b/eclass/font.eclass
@@ -4,11 +4,11 @@
# @ECLASS: font.eclass
# @MAINTAINER:
# fonts@gentoo.org
-# @SUPPORTED_EAPIS: 7 8
+# @SUPPORTED_EAPIS: 7 8 9
# @BLURB: Eclass to make font installation uniform
case ${EAPI} in
- 7|8) ;;
+ 7|8|9) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac
@@ -50,12 +50,27 @@ FONT_CONF=( "" )
# Determines whether detected BDF and PCF font files should be converted
# to an SFNT wrapper, for use with newer Pango.
-if [[ ${CATEGORY}/${PN} != media-fonts/encodings ]]; then
+# @ECLASS_VARIABLE: FONT_DEPEND
+# @OUTPUT_VARIABLE
+# @DESCRIPTION:
+# Contains dependencies on mkfontscale and encodings in *DEPEND format
+# needed for font_xfont_config.
+FONT_DEPEND="
+ >=x11-apps/mkfontscale-1.2.0
+ media-fonts/encodings
+"
+
+# @ECLASS_VARIABLE: FONT_AUTO_DEPEND
+# @PRE_INHERIT
+# @DESCRIPTION:
+# Set to 'no' to disable automatically adding USE=X and FONT_DEPEND to BDEPEND.
+# This allows ebuilds to handle dependencies or X font generation conditionally
+# under their own USE flag or unconditionally.
+: "${FONT_AUTO_DEPEND:=yes}"
+
+if [[ ${CATEGORY}/${PN} != media-fonts/encodings && ${FONT_AUTO_DEPEND} != "no" ]]; then
IUSE="X"
- BDEPEND="X? (
- >=x11-apps/mkfontscale-1.2.0
- media-fonts/encodings
- )"
+ BDEPEND="X? ( ${FONT_DEPEND} )"
fi
if [[ -n ${FONT_OPENTYPE_COMPAT} ]] ; then
@@ -63,6 +78,19 @@ if [[ -n ${FONT_OPENTYPE_COMPAT} ]] ; then
BDEPEND+=" opentype-compat? ( x11-apps/fonttosfnt )"
fi
+# @FUNCTION: font_bdf_to_otb
+# @USAGE: <output.otb> [input1.bdf...]
+# @DESCRIPTION:
+# Converts and merges one or more BDF font files into a single OpenType
+# Bitmap (OTB) font using x11-apps/fonttosfnt. If no input files are
+# specified, uncompressed BDF is read from stdin.
+font_bdf_to_otb() {
+ [[ $# -ge 1 ]] || die "Usage: ${FUNCNAME} <output.otb> [input1.bdf...]"
+ local out=$1
+ shift
+ fonttosfnt -v -o "${out}" ${@:+-- "$@"} || die "Failed to convert BDF ${*:-stdin} to ${out}"
+}
+
# @FUNCTION: font_wrap_opentype_compat
# @DESCRIPTION:
# Converts .bdf and .pcf fonts detected within ${ED} to the OTB wrapper format
@@ -84,22 +112,26 @@ font_wrap_opentype_compat() {
}
# @FUNCTION: font_xfont_config
+# @USAGE: [directory]
# @DESCRIPTION:
# Generate Xorg font files (mkfontscale/mkfontdir).
font_xfont_config() {
local dir_name
- if in_iuse X && use X ; then
- dir_name="${1:-${FONT_PN}}"
- rm -f "${ED}${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir} \
- || die "failed to prepare ${FONTDIR}/${1//${S}/}"
- einfo "Creating fonts.scale & fonts.dir in ${dir_name##*/}"
- mkfontscale "${ED}${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.scale"
- mkfontdir \
- -e "${EPREFIX}"/usr/share/fonts/encodings \
- -e "${EPREFIX}"/usr/share/fonts/encodings/large \
- "${ED}${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.dir"
- [[ -e fonts.alias ]] && doins fonts.alias
+
+ if ! in_iuse X || ! use X ; then
+ return
fi
+
+ dir_name="${1:-${FONT_PN}}"
+ rm -f "${ED}${FONTDIR}/${1//${S}/}"/{fonts.{dir,scale},encodings.dir} \
+ || die "failed to prepare ${FONTDIR}/${1//${S}/}"
+ einfo "Creating fonts.scale & fonts.dir in ${dir_name##*/}"
+ mkfontscale "${ED}${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.scale"
+ mkfontdir \
+ -e "${EPREFIX}"/usr/share/fonts/encodings \
+ -e "${EPREFIX}"/usr/share/fonts/encodings/large \
+ "${ED}${FONTDIR}/${1//${S}/}" || eerror "failed to create fonts.dir"
+ [[ -e fonts.alias ]] && doins fonts.alias
}
# @FUNCTION: font_fontconfig
@@ -173,15 +205,54 @@ font_pkg_setup() {
fi
}
+# @FUNCTION: font_src_compile
+# @DESCRIPTION:
+# The font src_compile function. Converts BDF fonts to OTB when
+# FONT_OPENTYPE_COMPAT is enabled.
+font_src_compile() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ case ${EAPI} in
+ 7|8) die "${FUNCNAME} is not supported in EAPI ${EAPI}" ;;
+ esac
+
+ if [[ -z ${FONT_OPENTYPE_COMPAT} ]] || ! in_iuse opentype-compat || ! use opentype-compat ; then
+ return
+ fi
+
+ local dirs=()
+ if [[ $(declare -p FONT_S 2>/dev/null) == "declare -a"* ]]; then
+ dirs=( "${FONT_S[@]}" )
+ else
+ dirs=( "${FONT_S:-${S}}" )
+ fi
+ local file out
+ while IFS= read -rd '' file; do
+ out=${file%.gz}
+ out=${out%.*}.otb
+ if [[ ${file} == *.gz ]]; then
+ gzip -cd -- "${file}" | font_bdf_to_otb "${out}"
+ pipestatus || die "Failed to convert ${file} to OTB"
+ else
+ font_bdf_to_otb "${out}" "${file}"
+ fi
+ done < <(find "${dirs[@]}" \( -name '*.bdf' -o -name '*.bdf.gz' \) -type f -print0)
+ [[ " ${FONT_SUFFIX} " != *" otb "* ]] && FONT_SUFFIX+=" otb"
+}
+
# @FUNCTION: font_src_install
# @DESCRIPTION:
# The font src_install function.
font_src_install() {
local dir suffix commondoc
- if [[ -n ${FONT_OPENTYPE_COMPAT} ]] && in_iuse opentype-compat && use opentype-compat ; then
- font_wrap_opentype_compat
- fi
+ case ${EAPI} in
+ 7|8)
+ if [[ -n ${FONT_OPENTYPE_COMPAT} ]] && in_iuse opentype-compat && use opentype-compat ; then
+ font_wrap_opentype_compat
+ fi
+ ;;
+ esac
if [[ $(declare -p FONT_S 2>/dev/null) == "declare -a"* ]]; then
# recreate the directory structure if FONT_S is an array
@@ -239,7 +310,7 @@ _update_fontcache() {
# @DESCRIPTION:
# The font pkg_postinst function.
font_pkg_postinst() {
- if [[ -n ${FONT_CONF[@]} ]]; then
+ if [[ -z ${REPLACING_VERSIONS} && -n ${FONT_CONF[@]} ]]; then
local conffile
elog "The following fontconfig configuration files have been installed:"
elog
@@ -265,3 +336,7 @@ font_pkg_postrm() {
fi
EXPORT_FUNCTIONS pkg_setup src_install pkg_postinst pkg_postrm
+case ${EAPI} in
+ 7|8) ;;
+ *) EXPORT_FUNCTIONS src_compile ;;
+esac
diff --git a/eclass/llvm.org.eclass b/eclass/llvm.org.eclass
index 489c394dc30c..a76f460ce521 100644
--- a/eclass/llvm.org.eclass
+++ b/eclass/llvm.org.eclass
@@ -72,6 +72,9 @@ if [[ -z ${_LLVM_SOURCE_TYPE+1} ]]; then
_LLVM_SOURCE_TYPE=snapshot
case ${PV} in
+ 24.0.0_pre20260919)
+ EGIT_COMMIT=3dcd66d0110335d7d1a5921fd085914b66ffbd3c
+ ;;
24.0.0_pre20260916)
EGIT_COMMIT=02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78
;;
diff --git a/games-engines/uzdoom/Manifest b/games-engines/uzdoom/Manifest
index 1dcc8c6d580b..f8457bd54c94 100644
--- a/games-engines/uzdoom/Manifest
+++ b/games-engines/uzdoom/Manifest
@@ -1 +1,2 @@
DIST uzdoom-4.14.3.tar.gz 26435472 BLAKE2B b7d276686375222d910c1f2727d551c59c249b8ad9967c1d486b619af87d187436cc67dc020e4581de80b6d7efb53f03e96101b35b39d943f6e7673346217b4c SHA512 452ee3dcb1338027886dd5555400a7e0477f1104f7edefe538af85d27565ab2506496376ebe877fea8cea6cc310b9ae2f1311fed8d62d2719f8943eb7273fd09
+DIST uzdoom-5.0.1.tar.gz 53210982 BLAKE2B 6f3fdfba1f472f9fd0f02f6c824b6574595cff9838a39ba4bf9161b8bdfc7801efd3dfe5eddda70144391c651d189036fd6c610c9881f232101d1b65d9b62d5a SHA512 fb851464f0ab532d638e7d447b747fd5356934555cb610aac00db176c76557ce41bf62dab9509cb51ae02d32e521426a4b75532b04b565f3f3acdc6c78bf6aca
diff --git a/games-engines/uzdoom/files/uzdoom-5.0.1-deps.patch b/games-engines/uzdoom/files/uzdoom-5.0.1-deps.patch
new file mode 100644
index 000000000000..599a8b3e5aab
--- /dev/null
+++ b/games-engines/uzdoom/files/uzdoom-5.0.1-deps.patch
@@ -0,0 +1,195 @@
+https://github.com/UZDoom/UZDoom/pull/1890
+https://github.com/UZDoom/UZDoom/pull/1891
+https://github.com/UZDoom/UZDoom/pull/1896
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -12,6 +12,9 @@ set(CMAKE_CXX_EXTENSIONS OFF)
+
+ set(ABSL_BUILD_TESTING OFF) # don't build/run abseil tests
+
++# UZDoom itself has no libs. Ensure bundled dependencies are statically linked.
++set( BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE )
++
+ # make all targets use LTO - want to do this early in the cmake to ensure it applies to any targets
+ option( FORCE_NO_LTO "Turn off LTO even if it would be possible to use it." NO )
+
+@@ -252,6 +255,11 @@ option( NO_OPENAL "Disable OpenAL sound support" OFF )
+ find_package( BZip2 )
+ find_package( VPX )
+
++include( FindPkgConfig )
++if( PkgConfig_FOUND )
++ pkg_check_modules( WEBP IMPORTED_TARGET libwebpdecoder libwebpmux )
++endif()
++
+ if (CURL_REQUIRED)
+ find_package( CURL )
+ if( MSVC AND NOT CURL_FOUND )
+@@ -342,7 +350,6 @@ else()
+ include(CheckSymbolExists)
+ check_symbol_exists( "fts_set" "sys/types.h;sys/stat.h;fts.h" HAVE_FTS )
+ if ( NOT HAVE_FTS )
+- include ( FindPkgConfig )
+ pkg_check_modules( MUSL_FTS musl-fts )
+ if ( MUSL_FTS_FOUND )
+ list(JOIN MUSL_FTS_LDFLAGS " " MUSL_FTS_LDFLAGS_JOINED)
+@@ -389,6 +396,7 @@ set( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${DEB_C_FLAGS} -D_DEBUG" )
+
+ option(FORCE_INTERNAL_BZIP2 "Use internal bzip2")
+ option(FORCE_INTERNAL_CPPDAP "Use internal cppdap" ON)
++option(FORCE_INTERNAL_WEBP "Use internal webp" ON)
+
+ if (HAVE_VULKAN)
+ add_subdirectory( libraries/ZVulkan )
+@@ -402,8 +410,6 @@ add_subdirectory( libraries/abseil )
+ set(ZWIDGET_BUILD_EXAMPLE OFF CACHE INTERNAL "" FORCE)
+ add_subdirectory( libraries/ZWidget )
+
+-add_subdirectory( libraries/webp )
+-
+ if( HAVE_VM_JIT AND UNIX )
+ check_symbol_exists( "backtrace" "execinfo.h" HAVE_BACKTRACE )
+ if( NOT HAVE_BACKTRACE )
+@@ -439,15 +445,23 @@ if ( CPPDAP_FOUND AND NOT FORCE_INTERNAL_CPPDAP )
+ message( STATUS "Using system cppdap library, includes found at ${CPPDAP_INCLUDE_DIR}" )
+ else()
+ message( STATUS "Using internal cppdap library" )
+- add_subdirectory( libraries/cppdap )
++ add_subdirectory( libraries/cppdap EXCLUDE_FROM_ALL )
+ set( CPPDAP_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/libraries/cppdap" )
+ set( CPPDAP_LIBRARIES cppdap )
+ set( CPPDAP_LIBRARY cppdap )
+ set( CPPDAP_FOUND TRUE )
+ endif()
+
++if ( WEBP_FOUND AND NOT FORCE_INTERNAL_WEBP )
++ message( STATUS "Using system webp library, includes found at ${WEBP_libwebpdecoder_INCLUDEDIR}" )
++ set( WEBP_TARGET PkgConfig::WEBP )
++else()
++ message( STATUS "Using internal webp library" )
++ add_subdirectory( libraries/webp )
++ set( WEBP_TARGET webp )
++endif()
++
+ # ZMUSIC
+-set( BUILD_SHARED_LIBS OFF CACHE INTERNAL "" FORCE )
+ add_subdirectory( libraries/ZMusic )
+ set( ZMUSIC_ROOT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/libraries/zmusic" )
+ set( ZMUSIC_INCLUDE_DIR ${ZMUSIC_ROOT_PATH}/include )
+@@ -483,12 +497,6 @@ add_subdirectory( wadsrc_lights )
+ add_subdirectory( wadsrc_extra )
+ add_subdirectory( wadsrc_widepix )
+
+-if( ZMUSIC_SYSTEM_INSTALL )
+- # Internal ZMusic library provides miniz target, miniz.h file in partuclar
+- # It's not the case with system-wide ZMusic installation
+- add_subdirectory( libraries/miniz )
+-endif()
+-
+ if( NOT CMAKE_CROSSCOMPILING )
+ export(TARGETS ${CROSS_EXPORTS} FILE "${CMAKE_BINARY_DIR}/ImportExecutables.cmake" )
+ endif()
+--- a/libraries/ZMusic/source/CMakeLists.txt
++++ b/libraries/ZMusic/source/CMakeLists.txt
+@@ -161,7 +161,7 @@ use_fast_math(zmusiclite)
+
+ # Although zmusic-obj puts the public include directory in our private include
+ # list, we need to add it to the interface include directories for consumers.
+-target_include_directories(zmusic INTERFACE $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${ZMusic_SOURCE_DIR}/include>)
++target_include_directories(zmusic INTERFACE $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${ZMusic_SOURCE_DIR}/include> $<BUILD_INTERFACE:${ZMusic_SOURCE_DIR}/source/loader>)
+ target_include_directories(zmusiclite INTERFACE $<INSTALL_INTERFACE:include> $<BUILD_INTERFACE:${ZMusic_SOURCE_DIR}/include>)
+
+ target_link_libraries_hidden(zmusic zmusic-obj adl oplsynth opn timidity timidityplus wildmidi fluidsynth)
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -12,7 +12,6 @@ include( CheckCXXCompilerFlag )
+ include( CheckIncludeFile )
+ include( CheckIncludeFiles )
+ include( CheckLibraryExists )
+-include( FindPkgConfig )
+
+ if( DEM_CMAKE_COMPILER_IS_GNUCXX_COMPATIBLE )
+ option( NO_STRIP "Do not strip Release or MinSizeRel builds" )
+@@ -301,8 +300,9 @@ if (HAVE_VULKAN)
+ list( APPEND PROJECT_LIBRARIES "zvulkan" )
+ endif()
+
++list( APPEND PROJECT_LIBRARIES "zmusic" )
+ list( APPEND PROJECT_LIBRARIES "zwidget" )
+-list( APPEND PROJECT_LIBRARIES "webp" )
++list( APPEND PROJECT_LIBRARIES "${WEBP_TARGET}" )
+
+ message("Building for target architecture: ${TARGET_ARCHITECTURE}")
+
+@@ -1211,10 +1211,6 @@ set (PCH_SOURCES
+ utility/system_theme.cpp
+ )
+
+-if( ZMUSIC_SYSTEM_INSTALL OR NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
+- set ( PCH_SOURCES ${PCH_SOURCES} common/utility/i_module.cpp )
+-endif()
+-
+ if( ${HAVE_VM_JIT} )
+ set( PCH_SOURCES ${PCH_SOURCES} ${VM_JIT_SOURCES} )
+ else()
+@@ -1391,7 +1387,6 @@ include_directories(
+ launcher
+ ../libraries/ZVulkan/include
+ ../libraries/ZWidget/include
+- ../libraries/webp/include
+ ../libraries/range_map/include
+ ${SYSTEM_SOURCES_DIR}
+ )
+@@ -1441,8 +1436,7 @@ else()
+ COMMAND ${CMAKE_CURRENT_BINARY_DIR}/link-make )
+ IF ("${INSTALL_RPATH}" STREQUAL "")
+ set_target_properties(zdoom PROPERTIES
+- #allow libzmusic.so.1 library in same folder as executable at runtime
+- INSTALL_RPATH "\$ORIGIN:\$ORIGIN/zmusic/build/source"
++ INSTALL_RPATH "\$ORIGIN"
+ BUILD_WITH_INSTALL_RPATH ON
+ )
+ endif()
+@@ -1467,22 +1461,6 @@ add_custom_command(TARGET zdoom POST_BUILD
+ VERBATIM
+ )
+
+-if ( NOT ZMUSIC_SYSTEM_INSTALL AND (NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS))
+- # bring zmusic in
+- add_custom_command(TARGET zdoom POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E copy_if_different
+- $<TARGET_FILE:zmusic> $<TARGET_FILE_DIR:zdoom>)
+- if ( NOT WIN32 )
+- add_custom_command(TARGET zdoom POST_BUILD
+- COMMAND ${CMAKE_COMMAND} -E create_symlink
+- $<TARGET_FILE_NAME:zmusic> $<TARGET_SONAME_FILE_NAME:zmusic>
+- COMMAND ${CMAKE_COMMAND} -E create_symlink
+- $<TARGET_SONAME_FILE_NAME:zmusic> $<TARGET_LINKER_FILE_NAME:zmusic>
+- WORKING_DIRECTORY $<TARGET_FILE_DIR:zdoom>)
+- endif()
+- add_dependencies(zdoom zmusic)
+-endif()
+-
+ if (VCPKG_TOOLCHAIN)
+ x_vcpkg_install_local_dependencies(TARGETS zdoom DESTINATION ".")
+ endif()
+@@ -1552,18 +1530,6 @@ if( APPLE )
+ set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rpath @executable_path" )
+ endif()
+
+-if ( NOT ZMUSIC_SYSTEM_INSTALL )
+- if ( WIN32 OR APPLE )
+- # nothing to do
+- else()
+- install(TARGETS zmusic
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+- COMPONENT "Game executable"
+- )
+- endif()
+-endif()
+-
+ if( WIN32 )
+ set( INSTALL_PATH . CACHE STRING "Directory where the executable will be placed during install." )
+ else()
diff --git a/games-engines/uzdoom/metadata.xml b/games-engines/uzdoom/metadata.xml
index dd2fa0ee70a8..886e7d67ce50 100644
--- a/games-engines/uzdoom/metadata.xml
+++ b/games-engines/uzdoom/metadata.xml
@@ -6,6 +6,8 @@
<name>Gentoo Games Project</name>
</maintainer>
<use>
+ <flag name="mpg123">Enable support for MPEG audio playback via <pkg>media-sound/mpg123</pkg>
+ </flag>
<flag name="non-free">Install non-free components for an optimal experience of commercial games</flag>
<flag name="swr">Enable the software renderer</flag>
</use>
diff --git a/games-engines/uzdoom/uzdoom-5.0.1.ebuild b/games-engines/uzdoom/uzdoom-5.0.1.ebuild
new file mode 100644
index 000000000000..350ba47f9d91
--- /dev/null
+++ b/games-engines/uzdoom/uzdoom-5.0.1.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic xdg
+
+MY_PN="UZDoom"
+DESCRIPTION="Modder-friendly hardware-accelerated source port of the DOOM engine"
+HOMEPAGE="https://zdoom.org"
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="Apache-2.0 BSD BZIP2 GPL-3 LGPL-2.1+ LGPL-3 MIT
+ non-free? ( Activision ChexQuest3 DOOM-COLLECTORS-EDITION freedist WidePix )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="alsa debug gles2 mpg123 +non-free openmp +sndfile +swr telemetry vulkan"
+
+DEPEND="
+ app-arch/bzip2:=
+ media-libs/libsdl2[gles2?,joystick,opengl,video,vulkan?]
+ media-libs/libvpx:=
+ media-libs/libwebp:=
+ media-libs/openal
+
+ alsa? ( media-libs/alsa-lib )
+ mpg123? ( media-sound/mpg123 )
+ sndfile? ( media-libs/libsndfile[-minimal] )
+"
+RDEPEND="
+ ${DEPEND}
+ !games-fps/gzdoom
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.0.1-deps.patch
+)
+
+src_prepare() {
+ # The bundled cppdap is heavily modified.
+ rm -r docs/licenses libraries/{bzip2,webp} || die
+ cmake_src_prepare
+
+ cat <<-EOF > "${S}/src/gitinfo.h" || die
+ // 0
+ // The above line prevents UpdateRevision.cmake from replacing this file.
+ // This file was generated by the Gentoo ebuild.
+
+ #define GIT_DESCRIPTION "${PV}"
+ #define GIT_TAG "0"
+ #define GIT_DISTANCE 0
+ #define GIT_HASH "0"
+ #define GIT_TIME ""
+ EOF
+}
+
+src_configure() {
+ # https://bugs.gentoo.org/858749
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ local mycmakeargs=(
+ -DBUILD_NONFREE=$(usex non-free)
+ -DDYN_OPENAL=OFF
+ -DFORCE_INTERNAL_WEBP=OFF
+ -DFORCE_NO_LTO=ON
+ -DHAVE_GLES2=$(usex gles2)
+ -DHAVE_VULKAN=$(usex vulkan)
+ -DINSTALL_DOCS_PATH="${EPREFIX}/usr/share/doc/${PF}"
+ -DINSTALL_PK3_PATH="${EPREFIX}/usr/share/doom"
+ -DINSTALL_SOUNDFONT_PATH="${EPREFIX}/usr/share/doom"
+ -DNO_OPENAL=OFF
+ -DNO_OPENMP=$(usex !openmp)
+ -DSEND_ANON_STATS=$(usex telemetry)
+ -DZDOOM_ENABLE_SWR=$(usex swr)
+
+ -DCMAKE_DISABLE_FIND_PACKAGE_ALSA="$(usex !alsa)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_MPG123="$(usex !mpg123)"
+ -DCMAKE_DISABLE_FIND_PACKAGE_SndFile="$(usex !sndfile)"
+ -DDYN_MPG123=OFF
+ -DDYN_SNDFILE=OFF
+ )
+
+ use debug || append-cppflags -DNDEBUG
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if ! use non-free ; then
+ ewarn
+ ewarn "${MY_PN} has been installed without non-free components. Commercial"
+ ewarn "games should still run, but the experience may be suboptimal."
+ ewarn
+ fi
+}
diff --git a/gnome-base/gdm/Manifest b/gnome-base/gdm/Manifest
index f718db1a636a..23d86eb4042f 100644
--- a/gnome-base/gdm/Manifest
+++ b/gnome-base/gdm/Manifest
@@ -1,5 +1,5 @@
DIST gdm-48.0.tar.xz 939740 BLAKE2B 77ba0e24c1a1fd17e25adf46ce9d9e881a21143536bba63907e489837e1574b1ec1c5e0836d7539fcd616608a1bb7b8881a0330566d3da2fa8c028969914e754 SHA512 3e4a320cc6a0b43d65122bacd2b99531695f20ec809a767b957d63a511e00da017a9a4abe815596c6ad1398c5d427418d5c51bf6162216f60fdae5e8095bd305
DIST gdm-49.2.tar.xz 968944 BLAKE2B 880672b61a534a225f7db80ce1d1e050e11c883b5eca8ec963cdac9ce9ff55a3e5bf1157910330a4cc5d918e983308f823e11683654303456486e7983ee063f7 SHA512 2055d17d00e76427ff36cfb7cc18c73cab90954bd2ed25048e43d60980a6d4a86e64e6cf478eb26269ff4100fec262e4b5a08e5ee706523ee4ed8199c0bd62b0
-DIST gdm-49.3.tar.xz 1015288 BLAKE2B ded7b6cd28475bdbde452321affd4a510e123515a4c33776d8b4fdc61ad90f946b6634f980e8ecb1df3344f1d2f51c68c3210c0a6cadef7bec9f39f188225958 SHA512 7bd87411ab432ec14c6d3186c6e602aa49e85cce59686499b4689a23287c0280fa8062838a5abdf5bd5ddaa09aadcbbdb469188833fcc05362cd3e58f901edf0
DIST gdm-49.4.tar.xz 1016128 BLAKE2B 9625751d5562b7b7bd7835bd1d913840f0ee42a855e6e41522c92c63c7b0091fc414e969a5d773813f15153774551fbc0edc82d099f2f5d75d18f90136e3bbaf SHA512 03b812b8b6f2caad542d1f81329bc959c53ea8b64eb6fa67a6a9290727baf98be0d7f2ee1e5476d213cf4f732b282d750c9d938d575c785991a5a8b217dd63c8
+DIST gdm-50.3.tar.xz 1004984 BLAKE2B 07759a3662bb680da1e8f7ea49dea5bf91d7ec0d382668deb2b71fe5842e17b4c3fdef0f5b676c31b6bf27abc84becb165e8e12dac466a969cf073b411b987cb SHA512 04519ece8ff8faead594ae9870397731111b2716c4af3cc635515f41b96cc84c5e6d3c17b414a721576bb5f074ca9502b1b6d3fcda0d69407626f1a33f2072d0
DIST tango-gentoo-v1.1.tar.gz 29322 BLAKE2B 83fa2bf37727e60851dd679054fe1b153ebfea58c9a9a40f891f7d68d3b047b02e8effa1d1b4e08d64500a2072ce7200f159c92a352da7124de27e1b05bb6027 SHA512 87d47ddab68361db6d99866c51705dcb3e198f8345a1096859acf2c6cca5099dd23c7fb30d124f52c4933ea38fd45fadffbbe6ecbdfa84f5b60938a4824f9045
diff --git a/gnome-base/gdm/gdm-50.3-r1.ebuild b/gnome-base/gdm/gdm-50.3-r1.ebuild
new file mode 100644
index 000000000000..4d7269db337a
--- /dev/null
+++ b/gnome-base/gdm/gdm-50.3-r1.ebuild
@@ -0,0 +1,202 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop gnome.org gnome2-utils meson pam readme.gentoo-r1 systemd xdg
+
+DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/gdm"
+
+SRC_URI="${SRC_URI}
+ branding? ( https://www.mail-archive.com/tango-artists@lists.freedesktop.org/msg00043/tango-gentoo-v1.1.tar.gz )
+"
+
+LICENSE="
+ GPL-2+
+ branding? ( CC-BY-SA-4.0 )
+"
+
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+IUSE="audit debug branding elogind fprint plymouth selinux systemd test video_cards_nvidia +X"
+
+RESTRICT="!test? ( test )"
+REQUIRED_USE="^^ ( elogind systemd )"
+
+# dconf, dbus and g-s-d are needed at install time for dconf update
+# keyutils is automagic dep that makes autologin unlock login keyring
+# when all the passwords match (disk encryption, user pw and login keyring)
+# dbus-run-session used at runtime.
+COMMON_DEPEND="
+ >=dev-libs/libgudev-232:=
+ >=dev-libs/glib-2.68:2
+ >=dev-libs/json-glib-1.2.0
+ >=sys-apps/accountsservice-0.6.35:=
+ sys-auth/polkit
+ sys-apps/keyutils:=
+ selinux? ( sys-libs/libselinux )
+
+ X? ( x11-libs/libXau )
+
+ systemd? ( >=sys-apps/systemd-257:0=[pam] )
+ elogind? ( >=sys-auth/elogind-239.3[pam] )
+
+ plymouth? ( sys-boot/plymouth )
+ audit? ( sys-process/audit )
+
+ sys-libs/pam
+ sys-auth/pambase[elogind?,systemd?]
+
+ >=gnome-base/dconf-0.20
+ >=gnome-base/gnome-settings-daemon-3.1.4
+ gnome-base/gsettings-desktop-schemas
+ sys-apps/dbus
+
+ >=x11-misc/xdg-utils-1.0.2-r3
+
+ >=dev-libs/gobject-introspection-1.82.0-r2:=
+"
+# XXX: These deps are from session and desktop files in data/ directory
+# fprintd is used via dbus by gdm-fingerprint-extension
+RDEPEND="${COMMON_DEPEND}
+ acct-group/gdm
+ acct-user/gdm
+ >=gnome-base/gnome-shell-50
+ x11-apps/xhost
+
+ fprint? ( sys-auth/fprintd[pam] )
+
+ systemd? (
+ video_cards_nvidia? (
+ x11-drivers/nvidia-drivers
+ sys-apps/acl
+ )
+ )
+"
+# This is a 'workaround' built into gdm 49, as elogind does not yet have
+# 'working' userdb support in stable or testing.
+# https://github.com/elogind/elogind/issues/323
+RDEPEND+="elogind? ( acct-user/gdm-greeter )"
+DEPEND="${COMMON_DEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ dev-util/gdbus-codegen
+ dev-util/glib-utils
+ dev-util/itstool
+ >=gnome-base/dconf-0.20
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ test? ( >=dev-libs/check-0.9.4 )
+"
+
+DOC_CONTENTS="
+ To start GDM at boot with systemd, run:\n
+ # systemctl enable gdm.service\n
+ \n
+ To start GDM at boot with OpenRC, set DISPLAYMANAGER=\"gdm\"\n
+ in /etc/conf.d/display-manager and enable the display-manager service:\n
+ # rc-update add display-manager\n
+ \n
+ For passwordless login to unlock your keyring, you need to install
+ sys-auth/pambase with USE=gnome-keyring and set an empty password
+ on your keyring. Use app-crypt/seahorse for that.\n
+ \n
+ You may need to install app-crypt/coolkey and sys-auth/pam_pkcs11
+ for smartcard support
+"
+
+src_prepare() {
+ default
+
+ # Show logo when branding is enabled
+ use branding && eapply "${FILESDIR}/${PN}-3.30.3-logo.patch"
+ eapply "${FILESDIR}/gdm-pam-openrc.patch"
+}
+
+src_configure() {
+ # --with-initial-vt=7 conflicts with plymouth, bug #453392
+ # gdm-3.30 now reaps (stops) the login screen when the login VT isn't active, which
+ # saves on memory. However this means if we don't start on VT1, gdm doesn't start up
+ # before user manually goes to VT7. Thus as-is we can not keep gdm away from VT1,
+ # so lets try always having it in VT1 and see if that is an issue for people before
+ # hacking up workarounds for the initial start case.
+ local emesonargs=(
+ --localstatedir /var
+
+ -Ddefault-pam-config=exherbo
+ -Dgdm-xsession=true
+ -Dgroup=gdm
+ $(meson_feature audit libaudit)
+ -Dlogind-provider=$(usex systemd systemd elogind)
+ -Dpam-mod-dir=$(getpam_mod_dir)
+ $(meson_feature plymouth)
+ -Drun-dir=/run/gdm
+ $(meson_feature selinux)
+ $(meson_use systemd systemd-journal)
+ $(meson_use X x11-support)
+ )
+
+ if use elogind; then
+ emesonargs+=(
+ -Dinitial-vt=7 # TODO: Revisit together with startDM.sh and other xinit talks; also ignores plymouth possibility
+ -Dsystemdsystemunitdir=no
+ -Dsystemduserunitdir=no
+ )
+ else
+ emesonargs+=(
+ -Dinitial-vt=1
+ -Dsystemdsystemunitdir="$(systemd_get_systemunitdir)"
+ -Dsystemduserunitdir="$(systemd_get_userunitdir)"
+ )
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ # Ensure that gdm-greeter-XXX dynamic users have the needed
+ # permissions on nvidia systems, bug #973590
+ if use systemd && use video_cards_nvidia; then
+ insinto /usr/lib/systemd/system/gdm.service.d
+ doins "${FILESDIR}/90-nvidia-acl.conf"
+ fi
+
+ # install XDG_DATA_DIRS gdm changes
+ echo 'XDG_DATA_DIRS="/usr/share/gdm"' > 99xdg-gdm
+ doenvd 99xdg-gdm
+
+ use branding && newicon "${WORKDIR}/tango-gentoo-v1.1/scalable/gentoo.svg" gentoo-gdm.svg
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+
+ local d ret
+
+ # bug #669146; gdm may crash if /var/lib/gdm subdirs are not owned by gdm:gdm
+ ret=0
+ ebegin "Fixing ${EROOT}/var/lib/gdm ownership"
+ chown --no-dereference gdm:gdm "${EROOT}/var/lib/gdm" || ret=1
+ for d in "${EROOT}/var/lib/gdm/"{.cache,.color,.config,.dbus,.local}; do
+ [[ ! -e "${d}" ]] || chown --no-dereference -R gdm:gdm "${d}" || ret=1
+ done
+ eend ${ret}
+
+ systemd_reenable gdm.service
+ readme.gentoo_print_elog
+
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/gnome-base/gdm/gdm-49.3-r3.ebuild b/gnome-base/gdm/gdm-50.3.ebuild
index dcce10178e63..ba7a00e3e463 100644
--- a/gnome-base/gdm/gdm-49.3-r3.ebuild
+++ b/gnome-base/gdm/gdm-50.3.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-inherit desktop gnome.org gnome2-utils meson pam readme.gentoo-r1 systemd udev xdg
+inherit desktop gnome.org gnome2-utils meson pam readme.gentoo-r1 systemd xdg
DESCRIPTION="GNOME Display Manager for managing graphical display servers and user logins"
HOMEPAGE="https://gitlab.gnome.org/GNOME/gdm"
@@ -21,7 +21,7 @@ SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
-IUSE="audit debug bluetooth-sound branding elogind fprint plymouth selinux systemd tcpd test video_cards_nvidia +X"
+IUSE="audit debug bluetooth-sound branding elogind fprint plymouth selinux systemd test video_cards_nvidia +X"
RESTRICT="!test? ( test )"
REQUIRED_USE="^^ ( elogind systemd )"
@@ -31,23 +31,15 @@ REQUIRED_USE="^^ ( elogind systemd )"
# when all the passwords match (disk encryption, user pw and login keyring)
# dbus-run-session used at runtime.
COMMON_DEPEND="
- virtual/udev
>=dev-libs/libgudev-232:=
>=dev-libs/glib-2.68:2
>=dev-libs/json-glib-1.2.0
>=sys-apps/accountsservice-0.6.35:=
+ sys-auth/polkit
sys-apps/keyutils:=
selinux? ( sys-libs/libselinux )
- X? (
- x11-libs/libxcb
- x11-libs/libX11
- x11-libs/libXau
- x11-base/xorg-server[-minimal]
- x11-libs/libXdmcp
- >=x11-libs/gtk+-2.91.1:3[X]
- )
- tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ X? ( x11-libs/libXau )
systemd? ( >=sys-apps/systemd-257:0=[pam] )
elogind? ( >=sys-auth/elogind-239.3[pam] )
@@ -72,16 +64,17 @@ COMMON_DEPEND="
RDEPEND="${COMMON_DEPEND}
acct-group/gdm
acct-user/gdm
- >=gnome-base/gnome-shell-49
+ >=gnome-base/gnome-shell-50
+ x11-apps/xhost
fprint? ( sys-auth/fprintd[pam] )
+
systemd? (
video_cards_nvidia? (
x11-drivers/nvidia-drivers
sys-apps/acl
)
)
- X? ( x11-apps/xhost )
"
# This is a 'workaround' built into gdm 49, as elogind does not yet have
# 'working' userdb support in stable or testing.
@@ -116,13 +109,6 @@ DOC_CONTENTS="
for smartcard support
"
-PATCHES=(
- # Multiple upstream fixes from 49.x and 50.x branches
- "${FILESDIR}"/gdm-49.2-display-reference.patch
- "${FILESDIR}"/gdm-49.2-boot_display-sysfs.patch
- "${FILESDIR}"/gdm-49.2-XDG_SESSION_EXTRA_DEVICE_ACCESS.patch
-)
-
src_prepare() {
default
@@ -144,7 +130,6 @@ src_configure() {
-Ddefault-pam-config=exherbo
-Dgdm-xsession=true
-Dgroup=gdm
- -Dipv6=true
$(meson_feature audit libaudit)
-Dlogind-provider=$(usex systemd systemd elogind)
-Dpam-mod-dir=$(getpam_mod_dir)
@@ -152,12 +137,7 @@ src_configure() {
-Drun-dir=/run/gdm
$(meson_feature selinux)
$(meson_use systemd systemd-journal)
- $(meson_use tcpd tcp-wrappers)
- -Dudev-dir=$(get_udevdir)/rules.d
- -Duser=gdm
- -Duser-display-server=true
$(meson_use X x11-support)
- $(meson_feature X xdmcp)
)
if use elogind; then
@@ -221,11 +201,9 @@ pkg_postinst() {
systemd_reenable gdm.service
readme.gentoo_print_elog
- udev_reload
}
pkg_postrm() {
xdg_pkg_postrm
gnome2_schemas_update
- udev_reload
}
diff --git a/gnome-base/gnome-control-center/Manifest b/gnome-base/gnome-control-center/Manifest
index 902ec0c48942..339de78a2324 100644
--- a/gnome-base/gnome-control-center/Manifest
+++ b/gnome-base/gnome-control-center/Manifest
@@ -1,6 +1,6 @@
DIST gnome-control-center-49.5-patchset.tar.xz 6384 BLAKE2B 4ba396513539f8b8d88b33527989c32edb3ccf219ee3867f9fcd468a85b5361d04b79fe2e590d72e2d7fa9e9ba41eba82c6e66e3c06780ecc07ea65de29c9278 SHA512 3f4c6b8d970dea1980b2fcf9fea80efb4fe8f6cf53e4e43736533ab94d9fcfaf4f0ad89b35b939a52048b261d30ced0626b424fd70cfce210716ea7e62e0af67
-DIST gnome-control-center-49.7.tar.xz 7077972 BLAKE2B e1090d458e7f5034e48df169a580ce23b5a871a5e835966ec8c7e720679dbbbb9793295bbb60475f07310d4c331ea9477f6b0f227ffffcc4e9a7565d91195c4e SHA512 7345370c2e78166225cbc5a34bbd2e1c75f51fcfe67aaa5197db4be20679363f6ade8fb9090b88ebbcd803ccc0fbcacf78d9b94f5adeea67c209eb427d53e142
-DIST gnome-control-center-49.8.tar.xz 7110244 BLAKE2B 6e1f62b01acc93fd2a4da400b5f48d09718bfddd923e6f6e3500d58525a5f643fd08868d9cedf9eca26154def3b9b2f9f0d87ccf1588280ec5acc71c6a33899b SHA512 69994d80887a920a45c1068ac53eeb9ae163caec9ad1423be591084f5a9b7109860d38f760ae2eb1650bbf1db37c52252a65dcc265b3aa76f2eaa456f39ea8f0
DIST gnome-control-center-49.9.tar.xz 7110980 BLAKE2B 3629c9b999008e89f11278ab4570347b4728b6149826a24951f09fdb670075ca020c48e952ec40ca5a1f67e69187bb9c072ba59f6920f66012a88f95331f055a SHA512 84b47dd29af602c0373821bbc8b6cdf61a792697f91f3d16e8dbee5519325ba8cd40689d1cfeae5701d44a76083f5df03e39c17cba6420976285e0ee34b5751f
+DIST gnome-control-center-50.4-patchset.tar.xz 6412 BLAKE2B 087ca99a983d18368800f409c08d57bf38e183dc245fc083990981a8c7dbf0a09c38ac9f81729aa875ba388c81942bd9a142f0686340b40f72ad9aa79b988083 SHA512 8132831e210f5f22aaab12e15bdd26177b9559987ea259cb282e34f6f743508d1376327d967f446e8db444f39ebb55bbc6aea13ff32917433729b8ebcaafd2e7
+DIST gnome-control-center-50.4.tar.xz 7106016 BLAKE2B 72b092b69ea24e0a1d68055d207e418b16dd97a070aad9a0028cc2405ef57ed376cbb5c90c5172eca84900b811402f48227e62acfb8b4dbfa6a8ddfe0a321e16 SHA512 60e4bc9e6b31edf2765f786bcbd49bed683f21960f48eeb6bb87c44602fb7ae32d85b7d930e8cdcfcd8d0eb5a9c5a1d0c08e0a8ddd213f8c5a4c8d29c3359c95
DIST gnome-control-center-gentoo-logo-dark.svg 14293 BLAKE2B 570e9326b8abe45849c31fd5cdb3fcfb1b2f18eac522f958928df5c3b747b0699f50a882f31cf7c0ae1f2138194f18596f738f42c942b57d340c53d46d82c551 SHA512 91227dafcf2091bb1568b0f9eec68b5e371ec64c9a6bc3605821f60d6bf2bd94dec0564f6a16a4a70d1db4d4df49fc25b6c910367bae3b85205cc609a9f2701b
DIST gnome-control-center-gentoo-logo.svg 14288 BLAKE2B 371fc68b1015c8672db3e3858ae9077b1e3a9937e6add8690c39db36302ec031391c4d35e0c0b87094ca474a00c4187849e2d7111df34f43bc5bd7be52678527 SHA512 cf88933546de54ca15e2e830ac1086a78c4150f0ff59b8091e7e1cade5961c4e4cb83120a818a960b77841353ce3584ddc8f36b6edbde05543600283a143ad7b
diff --git a/gnome-base/gnome-control-center/gnome-control-center-49.7.ebuild b/gnome-base/gnome-control-center/gnome-control-center-49.7.ebuild
deleted file mode 100644
index ad97fcbf3e46..000000000000
--- a/gnome-base/gnome-control-center/gnome-control-center-49.7.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 2023-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org gnome2-utils meson python-any-r1 virtualx xdg
-
-DESCRIPTION="GNOME's main interface to configure various aspects of the desktop"
-HOMEPAGE="https://apps.gnome.org/Settings"
-SRC_URI+=" https://dev.gentoo.org/~pacho/${PN}/${PN}-49.5-patchset.tar.xz"
-SRC_URI+=" https://dev.gentoo.org/~mattst88/distfiles/${PN}-gentoo-logo.svg"
-SRC_URI+=" https://dev.gentoo.org/~mattst88/distfiles/${PN}-gentoo-logo-dark.svg"
-# Logo is CC-BY-SA-2.5
-LICENSE="GPL-2+ CC-BY-SA-2.5"
-SLOT="2"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86"
-
-IUSE="+bluetooth +cups debug elogind +gnome-online-accounts +ibus input_devices_wacom kerberos +geolocation networkmanager systemd test X"
-REQUIRED_USE="
- ^^ ( elogind systemd )
-" # Theoretically "?? ( elogind systemd )" is fine too, lacking some functionality at runtime,
-# but needs testing if handled gracefully enough
-
-RESTRICT="!test? ( test )"
-
-# kerberos unfortunately means mit-krb5; build fails with heimdal
-# display panel requires colord and gnome-settings-daemon[colord]
-# wacom panel requires gsd-enums.h from gsd at build time, probably also runtime support
-# printer panel requires cups and smbclient (the latter is not patched yet to be separately optional)
-# First block is toplevel meson.build deps in order of occurrence (plus deeper deps if in same conditional).
-# Second block is dependency() from subdir meson.builds, sorted by directory name occurrence order
-DEPEND="
- gnome-online-accounts? (
- x11-libs/gtk+:3
- >=net-libs/gnome-online-accounts-3.51.0:=
- )
- >=media-libs/libpulse-2.0[glib]
- >=gui-libs/gtk-4.17.1:4[X?,wayland]
- >=gui-libs/libadwaita-1.8_alpha:1
- >=sys-apps/accountsservice-23.11.69
- >=x11-misc/colord-0.1.34:0=
- >=x11-libs/gdk-pixbuf-2.23.0:2
- >=dev-libs/glib-2.76.6:2
- gnome-base/gnome-desktop:4=
- >=gnome-base/gnome-settings-daemon-49
- >=gnome-base/gsettings-desktop-schemas-48_alpha
- dev-libs/libxml2:2=
- >=sys-power/upower-1.90.6:=
- >=dev-libs/libgudev-232
- media-libs/libepoxy
- >=app-crypt/gcr-4.1.0
- >=dev-libs/libpwquality-1.2.2
- >=sys-auth/polkit-0.114
- cups? (
- >=net-print/cups-1.7[dbus]
- >=net-fs/samba-4.0.0[client]
- )
- ibus? ( >=app-i18n/ibus-1.5.2 )
- networkmanager? (
- >=net-libs/libnma-1.10.2
- >=net-misc/networkmanager-1.52.0[modemmanager]
- >=net-misc/modemmanager-0.7.990:=
- )
- X? (
- >=x11-libs/libX11-1.8
- >=x11-libs/libXi-1.2
- )
- bluetooth? ( net-wireless/gnome-bluetooth:3= )
- input_devices_wacom? ( >=dev-libs/libwacom-1.4:= )
- kerberos? ( app-crypt/mit-krb5 )
-
- x11-libs/cairo[glib]
- >=x11-libs/colord-gtk-0.3.0:=
- media-libs/fontconfig
- gnome-base/libgtop:2=
- >=sys-fs/udisks-2.1.8:2
- app-crypt/libsecret
- net-libs/gnutls:=
- media-libs/gsound
-
- x11-libs/pango
-"
-# media-libs/libcanberra[pulseaudio,sound] needed for Speaker tests in
-# Settings/Sound/Output/Output Device, bug #814110
-# systemd/elogind USE flagged because package manager will potentially try to satisfy a
-# "|| ( systemd ( elogind openrc-settingsd)" via systemd if openrc-settingsd isn't already installed.
-# gnome-color-manager needed for gcm-calibrate and gcm-viewer calls from color panel
-# <gnome-color-manager-3.1.2 has file collisions with g-c-c-3.1.x
-#
-# mouse panel needs a concrete set of X11 drivers at runtime, bug #580474
-# Also we need newer driver versions to allow wacom and libinput drivers to
-# not collide
-#
-# system-config-printer provides org.fedoraproject.Config.Printing service and interface
-# cups-pk-helper provides org.opensuse.cupspkhelper.mechanism.all-edit policykit helper policy
-RDEPEND="${DEPEND}
- media-libs/libcanberra[pulseaudio,sound(+)]
- systemd? ( >=sys-apps/systemd-31 )
- elogind? (
- app-admin/openrc-settingsd
- sys-auth/elogind
- )
- x11-themes/adwaita-icon-theme
- >=gnome-extra/gnome-color-manager-3.1.2
- cups? (
- app-admin/system-config-printer
- net-print/cups-pk-helper
- )
- >=gnome-extra/tecla-47.0
- dev-libs/libinput
- X? (
- >=x11-drivers/xf86-input-libinput-0.19.0
- input_devices_wacom? ( >=x11-drivers/xf86-input-wacom-0.33.0 )
- )
-"
-# PDEPEND to avoid circular dependency; gnome-session-check-accelerated called by info panel
-# gnome-session-2.91.6-r1 also needed so that 10-user-dirs-update is run at login
-PDEPEND=">=gnome-base/gnome-session-2.91.6-r1
- networkmanager? ( gnome-extra/nm-applet )" # networking panel can call into nm-connection-editor
-
-# meson.build depends on python unconditionally
-BDEPEND="${PYTHON_DEPS}
- dev-libs/libxslt
- app-text/docbook-xsl-stylesheets
- app-text/docbook-xml-dtd:4.2
- x11-base/xorg-proto
- dev-libs/libxml2:2
- >=dev-util/blueprint-compiler-0.17
- dev-util/gdbus-codegen
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- test? (
- $(python_gen_any_dep '
- dev-python/python-dbusmock[${PYTHON_USEDEP}]
- ')
- x11-apps/setxkbmap
- )
-"
-
-PATCHES=(
- # Makes some panels and dependencies optional
- # https://bugzilla.gnome.org/686840, 697478, 700145
- # Fix some absolute paths to be appropriate for Gentoo
- "${WORKDIR}"/patches/
-)
-
-python_check_deps() {
- use test || return 0
- python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]"
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-}
-
-src_prepare() {
- default
- xdg_environment_reset
- # Mark python tests with shebang executable, so that meson will launch them directly, instead
- # of via its own python-single-r1 version, which might not match what we get from python_check_deps
- chmod a+x tests/network/test-network-panel.py tests/datetime/test-datetime.py || die
-}
-
-src_configure() {
- local emesonargs=(
- $(meson_use bluetooth)
- $(meson_use cups)
- -Ddeprecated-declarations=disabled
- -Ddocumentation=true # manpage
- -Dlocation-services=$(usex geolocation enabled disabled)
- -Dgoa=$(usex gnome-online-accounts enabled disabled)
- $(meson_use ibus)
- $(meson_use kerberos)
- $(meson_use networkmanager network_manager)
- -Dprivileged_group=wheel
- -Dsnap=false
- $(meson_use test tests)
- $(meson_use input_devices_wacom wacom)
- # bashcompletions installed to $datadir/bash-completion/completions by v3.28.2,
- # which is the same as $(get_bashcompdir)
- $(meson_use X x11)
- -Dmalcontent=false # unpackaged
- -Ddistributor_logo=/usr/share/pixmaps/gnome-control-center-gentoo-logo.svg
- -Ddark_mode_distributor_logo=/usr/share/pixmaps/gnome-control-center-gentoo-logo-dark.svg
- )
- meson_src_configure
-}
-
-src_test() {
- # tests are fragile to long socket paths, bug #921583
- local -x TMPDIR=/tmp
- virtx meson_src_test
-}
-
-src_install() {
- meson_src_install
- insinto /usr/share/pixmaps
- doins "${DISTDIR}"/gnome-control-center-gentoo-logo.svg
- doins "${DISTDIR}"/gnome-control-center-gentoo-logo-dark.svg
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/gnome-base/gnome-control-center/gnome-control-center-49.8-r1.ebuild b/gnome-base/gnome-control-center/gnome-control-center-50.4.ebuild
index 405a0c65841f..772e26031766 100644
--- a/gnome-base/gnome-control-center/gnome-control-center-49.8-r1.ebuild
+++ b/gnome-base/gnome-control-center/gnome-control-center-50.4.ebuild
@@ -2,13 +2,14 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
PYTHON_COMPAT=( python3_{13..14} )
inherit gnome.org gnome2-utils meson python-any-r1 virtualx xdg
DESCRIPTION="GNOME's main interface to configure various aspects of the desktop"
HOMEPAGE="https://apps.gnome.org/Settings"
-SRC_URI+=" https://dev.gentoo.org/~pacho/${PN}/${PN}-49.5-patchset.tar.xz"
+SRC_URI+=" https://dev.gentoo.org/~pacho/${PN}/${PN}-50.4-patchset.tar.xz"
SRC_URI+=" https://dev.gentoo.org/~mattst88/distfiles/${PN}-gentoo-logo.svg"
SRC_URI+=" https://dev.gentoo.org/~mattst88/distfiles/${PN}-gentoo-logo-dark.svg"
# Logo is CC-BY-SA-2.5
@@ -16,7 +17,7 @@ LICENSE="GPL-2+ CC-BY-SA-2.5"
SLOT="2"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
-IUSE="+bluetooth +cups debug elogind +gnome-online-accounts +ibus input_devices_wacom kerberos +geolocation networkmanager systemd test X"
+IUSE="+bluetooth +cups debug elogind +gnome-online-accounts +ibus input_devices_wacom kerberos +geolocation networkmanager systemd test"
REQUIRED_USE="
^^ ( elogind systemd )
" # Theoretically "?? ( elogind systemd )" is fine too, lacking some functionality at runtime,
@@ -30,21 +31,20 @@ RESTRICT="!test? ( test )"
# printer panel requires cups and smbclient (the latter is not patched yet to be separately optional)
# First block is toplevel meson.build deps in order of occurrence (plus deeper deps if in same conditional).
# Second block is dependency() from subdir meson.builds, sorted by directory name occurrence order
+# TODO: add >=gnome-base/gmobile-0.6.0 above the accountsservice dep line
+# when packaged.
DEPEND="
- gnome-online-accounts? (
- x11-libs/gtk+:3
- >=net-libs/gnome-online-accounts-3.51.0:=
- )
+ gnome-online-accounts? ( >=net-libs/gnome-online-accounts-3.51.0:= )
>=media-libs/libpulse-2.0[glib]
- >=gui-libs/gtk-4.17.1:4[X?,wayland]
+ >=gui-libs/gtk-4.15.2:4[X,wayland]
>=gui-libs/libadwaita-1.8_alpha:1
>=sys-apps/accountsservice-23.11.69:=
>=x11-misc/colord-0.1.34:0=
>=x11-libs/gdk-pixbuf-2.23.0:2
>=dev-libs/glib-2.76.6:2
gnome-base/gnome-desktop:4=
- >=gnome-base/gnome-settings-daemon-49
- >=gnome-base/gsettings-desktop-schemas-48_alpha
+ >=gnome-base/gnome-settings-daemon-48_rc
+ >=gnome-base/gsettings-desktop-schemas-50_alpha
dev-libs/libxml2:2=
>=sys-power/upower-1.90.6:=
>=dev-libs/libgudev-232
@@ -62,10 +62,6 @@ DEPEND="
>=net-misc/networkmanager-1.52.0[modemmanager]
>=net-misc/modemmanager-0.7.990:=
)
- X? (
- >=x11-libs/libX11-1.8
- >=x11-libs/libXi-1.2
- )
bluetooth? ( net-wireless/gnome-bluetooth:3= )
input_devices_wacom? ( >=dev-libs/libwacom-1.4:= )
kerberos? ( app-crypt/mit-krb5 )
@@ -109,10 +105,7 @@ RDEPEND="${DEPEND}
)
>=gnome-extra/tecla-47.0
dev-libs/libinput
- X? (
- >=x11-drivers/xf86-input-libinput-0.19.0
- input_devices_wacom? ( >=x11-drivers/xf86-input-wacom-0.33.0 )
- )
+ input_devices_wacom? ( >=x11-drivers/xf86-input-wacom-0.33.0 )
"
# PDEPEND to avoid circular dependency; gnome-session-check-accelerated called by info panel
# gnome-session-2.91.6-r1 also needed so that 10-user-dirs-update is run at login
@@ -126,7 +119,7 @@ BDEPEND="${PYTHON_DEPS}
app-text/docbook-xml-dtd:4.2
x11-base/xorg-proto
dev-libs/libxml2:2
- >=dev-util/blueprint-compiler-0.17
+ >=dev-util/blueprint-compiler-0.19
dev-util/gdbus-codegen
dev-util/glib-utils
>=sys-devel/gettext-0.19.8
@@ -137,6 +130,7 @@ BDEPEND="${PYTHON_DEPS}
')
x11-apps/setxkbmap
)
+ dev-util/wayland-scanner
"
PATCHES=(
@@ -180,8 +174,7 @@ src_configure() {
$(meson_use input_devices_wacom wacom)
# bashcompletions installed to $datadir/bash-completion/completions by v3.28.2,
# which is the same as $(get_bashcompdir)
- $(meson_use X x11)
- -Dmalcontent=false # unpackaged
+ -Dmalcontent=false # unpackaged in the main tree
-Ddistributor_logo=/usr/share/pixmaps/gnome-control-center-gentoo-logo.svg
-Ddark_mode_distributor_logo=/usr/share/pixmaps/gnome-control-center-gentoo-logo-dark.svg
)
diff --git a/gnome-base/gnome-session-openrc/Manifest b/gnome-base/gnome-session-openrc/Manifest
index 61f7afff9c02..c0c55ebe5253 100644
--- a/gnome-base/gnome-session-openrc/Manifest
+++ b/gnome-base/gnome-session-openrc/Manifest
@@ -1,2 +1,3 @@
DIST gnome-session-openrc-49.2.tar.gz 16244 BLAKE2B 63c93dff4534e301b6b982be9430bf9f431d492e874ced901a4528ef407629da58edcdc9d8d1181ac15a9d3aab3af865d6ab4bec342665bb7837ab1f4c88377a SHA512 90ae0c748aea08aa7cc5b858e951c1825d77f28e7ba681e99e85249bed33214cbe793d85b09475b613ede23d49d8625359054d49e66bfe60f541c271f4b0b46f
DIST gnome-session-openrc-49.3.tar.gz 17962 BLAKE2B 428ad5f7b9c9156e7f75b4baabf9eccb8649e2b478b8c7c1469db91dc90dbea5b675dd1fe05f07f1dd1293a166773cf7d73cc3e5e145e8d4ca24027b581705ce SHA512 c61f288831b6682bbbf6a1f8e70c3b61a14019a853026d52343ae80570221c1e5e44c5c1b111b128cc866e6f8d577e7ae1ef4824105d4ca270b5710fa025bce4
+DIST gnome-session-openrc-50.0.tar.gz 15323 BLAKE2B 9dbaa0bbc21d6d2ad534d3e82f5e35d67b9fa7a2b00d7b27a761e5812a5618ca39203346f84e4731b8217e70f4e0709e5a39bf9fe930d630f5e394ac92438734 SHA512 5ed50085f5d7f7752c2d7a9f3216fe4e35e2dbcc4f2f2a22692076129767570359d89bb341818395684e7382cbacc1eb2182d7ccb27ee712d41acbfd54ae65a4
diff --git a/gnome-base/gnome-session-openrc/files/0001-leader-Get-DCONF_PROFILE-from-gdm-s-.config-environm.patch b/gnome-base/gnome-session-openrc/files/0001-leader-Get-DCONF_PROFILE-from-gdm-s-.config-environm.patch
new file mode 100644
index 000000000000..108069e2bcd6
--- /dev/null
+++ b/gnome-base/gnome-session-openrc/files/0001-leader-Get-DCONF_PROFILE-from-gdm-s-.config-environm.patch
@@ -0,0 +1,115 @@
+From 7a7ec432f6e579f7409acee5f9287609d9703abe Mon Sep 17 00:00:00 2001
+From: Swagtoy <me@ow.swag.toys>
+Date: Sat, 13 Jun 2026 02:33:40 -0400
+Subject: [PATCH] leader: Get DCONF_PROFILE from gdm's
+ .config/environment.d/gdm.conf
+
+GDM recently(?) started passing its environment variables via
+systemd's .config/environment.d in v50, and in turn, leader-main.c
+would try to get org.gnome.desktop.session's session-name value, which
+was overriden to 'gnome-login' for the GDM DCONF_PROFILE.
+
+So we need to read the environment variables ourselves, just to get at
+what we need.
+---
+ src/leader-openrc.c | 63 +++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 61 insertions(+), 2 deletions(-)
+
+diff --git a/src/leader-openrc.c b/src/leader-openrc.c
+index a7eeb8c..0b9e5ca 100644
+--- a/src/leader-openrc.c
++++ b/src/leader-openrc.c
+@@ -80,6 +80,63 @@ monitor_hangup_cb (int fd,
+ return G_SOURCE_REMOVE;
+ }
+
++// This is all a hack! DCONF_PROFILE is not set in leader-main.c for
++// OpenRC systems since it relies on the systemd environment.d
++// file. So we have to read this ourselves.
++static void
++try_get_gsetting_gdm_session_name(char const *user, char **session_name)
++{
++ if (g_getenv("DCONF_PROFILE") && !strcmp("gdm", g_getenv("DCONF_PROFILE")))
++ {
++ // but oh, is it a mystery? it's safe to assure the
++ // below is done, as this is mostly all done in
++ // leader-main.c
++ return;
++ }
++ g_autoptr (GError) error = NULL;
++ // HACK: We need DCONF_PROFILE
++ if (!strcmp(*session_name, "gnome") &&
++ (!strcmp(user, "gdm-greeter") || sscanf(user, "gdm-greeter-%*d") > 0))
++ {
++ g_autofree char *filename = g_strdup_printf("/run/gdm/home/%s/.config/environment.d/gdm.conf", user);
++ g_autoptr (GIOChannel) chan = g_io_channel_new_file(filename, "r", &error);
++ if (error)
++ {
++ g_warning("Couldn't open %s: %s", filename, error->message);
++ goto out;
++ }
++
++ char *env;
++ gsize len;
++ while (g_io_channel_read_line(chan, &env, &len, NULL, NULL) == G_IO_STATUS_NORMAL)
++ {
++ // anyone who tells you to use regex is lying to you
++ char key[64], val[256];
++ if (sscanf(env, "%63[^=]=%255s", key, val) != 2)
++ goto out;
++
++ // yes, this is the _only_ thing we want :)
++ if (!strcmp(key, "DCONF_PROFILE"))
++ {
++ g_debug("Setting %s to %s, the nasty way...", key, val);
++ setenv(key, val, true);
++ goto out;
++ }
++ }
++ }
++out:
++ g_debug("Dconf profile is: %s", g_getenv("DCONF_PROFILE"));
++
++ if (g_getenv("DCONF_PROFILE") && !strcmp(g_getenv("DCONF_PROFILE"), "gdm"))
++ {
++ g_autoptr (GSettings) settings = g_settings_new("org.gnome.desktop.session");
++ *session_name = g_settings_get_string(settings, "session-name");
++ g_info("Hijacked the session-name: %s", *session_name);
++ }
++
++ // we're fine at this point, it's probably just a regular user
++}
++
+ static void
+ debug_logger (gchar const *log_domain,
+ GLogLevelFlags log_level,
+@@ -99,7 +156,7 @@ main (int argc, char **argv)
+ g_log_set_default_handler(debug_logger, NULL);
+ g_autoptr (GError) error = NULL;
+ g_auto (Leader) ctx = { .fifo_fd = -1 };
+- const char *session_name = NULL;
++ g_autofree char *session_name = NULL;
+ const char *debug_string = NULL;
+ g_autofree char *target = NULL;
+ g_autofree char *fifo_path = NULL;
+@@ -111,7 +168,7 @@ main (int argc, char **argv)
+
+ if (argc < 2)
+ g_error ("No session name was specified");
+- session_name = argv[1];
++ session_name = strdup(argv[1]);
+
+ // probably not rely on this
+ char const *user = g_getenv("USER");
+@@ -119,6 +176,8 @@ main (int argc, char **argv)
+ user = "gdm-greeter"; // :/
+ g_info("User is: %s", user);
+
++ try_get_gsetting_gdm_session_name(user, &session_name);
++
+ // strncmp because we also have gdm-greeter-{2,3,4,...}
+ if (strncmp(user, "gdm-greeter", sizeof("gdm-greeter")) == 0)
+ {
+--
+2.53.0
+
diff --git a/gnome-base/gnome-session-openrc/gnome-session-openrc-50.0.ebuild b/gnome-base/gnome-session-openrc/gnome-session-openrc-50.0.ebuild
new file mode 100644
index 000000000000..6de1c7557ea2
--- /dev/null
+++ b/gnome-base/gnome-session-openrc/gnome-session-openrc-50.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Gnome session leader for OpenRC"
+HOMEPAGE="https://github.com/swagtoy/gnome-session-openrc"
+SRC_URI="https://github.com/swagtoy/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+COMMON_DEPEND="
+ >=dev-libs/glib-2.82.0:2
+ >=sys-auth/elogind-242
+"
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/dbus
+ !<gnome-base/gnome-session-50
+"
+DEPEND="${COMMON_DEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # TODO: Drop by 50.1
+ "${FILESDIR}"/0001-leader-Get-DCONF_PROFILE-from-gdm-s-.config-environm.patch
+)
diff --git a/gnome-base/gnome-session/Manifest b/gnome-base/gnome-session/Manifest
index 403136c85bb1..9738b9261558 100644
--- a/gnome-base/gnome-session/Manifest
+++ b/gnome-base/gnome-session/Manifest
@@ -1,3 +1,2 @@
-DIST gnome-session-48.0.tar.xz 488408 BLAKE2B 7565ba20d50a0c63afda5c6169ca4422ff4d1c8a5b2afe3e4ce25dfe21fab4e8c53feb6dbc93a0d625a9cf1ecee181d5c6f19bfc53e134b2bd09e32b29e5bf30 SHA512 84baafdf0d7a4f4b15faaacde02821f6449481d655c8d6ff6ea79996aa052483475c9a77a021d47001249c6c84c66be728f683a2b1725657b329c64fc7951dc0
-DIST gnome-session-49.2.tar.xz 394784 BLAKE2B 9539f706cd10c9ed8e6f5ede5f34a52a949026db369be9bda40b8cd99046c9064662790d767ecf0cb109fd40a05d1dde55a4676ac909ebffa3a818a57695da9a SHA512 acf1f0f9b4246fcf64092e195a49e76814ec745b339b05d45f8467a4e8f1382eafe0c1ac59d3c3294dde8bf46367270efb3d8bb4175b445d5ff4c3f341f76513
DIST gnome-session-49.3.tar.xz 394004 BLAKE2B c28a42da375431b29b8c339dccdaef28a749cdc8958bc3ba34ebc20acd60fd3e50a4e109e9488be9540bd4204d9ede5734b2c2db38dafcbcb0f4f35e00e0f382 SHA512 166dfe4c802109747ae1490269cb2cfa142986067f8fee95ed122c8096288d2e6e56912308c13a5334a43920841b35794d1056fe9181296d25fa26ed9d464131
+DIST gnome-session-50.1.tar.xz 401428 BLAKE2B 04cd5dadb5aded94687a835f56dd9b9d68190d50eff0ea8e2afa3c54e13ee25d55dc5e4eb92724df8307eadb783907d92df4c8847fd440c585e5656dd277f3db SHA512 8f2d2cc3eb39dc52fdef42696d633808605b311adedaa197813f90eff60517ee1cfd53754e62987115ed8325775ed62ed77796cfd1f457263d1d98d209468abe
diff --git a/gnome-base/gnome-session/files/data-Install-XWayland-targets-even-if-x11-is-off.patch b/gnome-base/gnome-session/files/data-Install-XWayland-targets-even-if-x11-is-off.patch
deleted file mode 100644
index 5c652105a8b2..000000000000
--- a/gnome-base/gnome-session/files/data-Install-XWayland-targets-even-if-x11-is-off.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 463eb29096fa2cb120867f6d5c4ffd225cdf84a8 Mon Sep 17 00:00:00 2001
-From: Adrian Vovk <adrianvovk@gmail.com>
-Date: Mon, 5 May 2025 16:15:43 -0400
-Subject: [PATCH] data: Install XWayland targets even if x11 is off
-
-These targets are not just used on an x11 session, but also auto-started
-for XWayland.
-
-Backport of !134
-Fixes #148
----
- data/meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index bd66ff01..2c85b897 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -138,13 +138,13 @@ systemd_target = files('gnome-session-wayland@.target',
- 'gnome-session-initialized.target',
- 'gnome-session-shutdown.target',
- 'gnome-session-failed.target',
-+ 'gnome-session-x11-services.target',
-+ 'gnome-session-x11-services-ready.target',
- )
- if have_x11
- systemd_target += [
- 'gnome-session-x11@.target',
- 'gnome-session-x11.target',
-- 'gnome-session-x11-services.target',
-- 'gnome-session-x11-services-ready.target',
- ]
- endif
-
---
-GitLab
-
diff --git a/gnome-base/gnome-session/files/exclude-gnome-shell-from-queryendSession-and-endSession.patch b/gnome-base/gnome-session/files/exclude-gnome-shell-from-queryendSession-and-endSession.patch
deleted file mode 100644
index 87aacf7e9a49..000000000000
--- a/gnome-base/gnome-session/files/exclude-gnome-shell-from-queryendSession-and-endSession.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 51eeea93291bf5f36ac99e528a22401cd17e0e23 Mon Sep 17 00:00:00 2001
-From: Adrian Vovk <adrianvovk@gmail.com>
-Date: Wed, 4 Jun 2025 14:00:32 -0400
-Subject: [PATCH] Exclude gnome-shell from QueryEndSession and EndSession
-
-This is a temporary hack until we drop builtin session management from
-gnome-session and can rely only on systemd session startup
----
- gnome-session/gsm-manager.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
-index f7bb26e6..743a372e 100644
---- a/gnome-session/gsm-manager.c
-+++ b/gnome-session/gsm-manager.c
-@@ -821,6 +821,10 @@ _client_end_session (GsmClient *client,
- gboolean ret;
- GError *error;
-
-+ // HACK, but it's temporary until we drop builtin session startup.
-+ if (g_strcmp0 ("org.gnome.Shell.desktop", gsm_client_peek_app_id (client)) == 0)
-+ return FALSE;
-+
- error = NULL;
- ret = gsm_client_end_session (client, data->flags, &error);
- if (! ret) {
-@@ -1004,6 +1008,10 @@ _client_query_end_session (const char *id,
- gboolean ret;
- GError *error;
-
-+ // HACK, but it's temporary until we drop builtin session startup.
-+ if (g_strcmp0 ("org.gnome.Shell.desktop", gsm_client_peek_app_id (client)) == 0)
-+ return FALSE;
-+
- error = NULL;
- ret = gsm_client_query_end_session (client, data->flags, &error);
- if (! ret) {
---
-GitLab
-
diff --git a/gnome-base/gnome-session/files/gnome-session-46.0-meson-Support-elogind.patch b/gnome-base/gnome-session/files/gnome-session-46.0-meson-Support-elogind.patch
deleted file mode 100644
index ac96d521b8f4..000000000000
--- a/gnome-base/gnome-session/files/gnome-session-46.0-meson-Support-elogind.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/meson.build 2024-07-29 16:43:01.812864903 +0200
-+++ b/meson.build 2024-07-29 16:54:16.654741387 +0200
-@@ -113,8 +113,13 @@
- pkgconfig_define: ['prefix', session_prefix])
- endif
-
--libsystemd_dep = dependency('libsystemd', version: '>= 209', required: true)
--session_bin_deps += libsystemd_dep
-+libsystemd_dep = dependency('libsystemd', version: '>= 209', required: false)
-+if libsystemd_dep.found()
-+ session_bin_deps += libsystemd_dep
-+else
-+ elogind_dep = dependency('libelogind', version: '>=209', required: true)
-+ session_bin_deps += elogind_dep
-+endif
-
- configure_file(
- output: 'config.h',
diff --git a/gnome-base/gnome-session/files/gnome-session-50.1-Make-systemd-optional.patch b/gnome-base/gnome-session/files/gnome-session-50.1-Make-systemd-optional.patch
new file mode 100644
index 000000000000..11360e0cde7a
--- /dev/null
+++ b/gnome-base/gnome-session/files/gnome-session-50.1-Make-systemd-optional.patch
@@ -0,0 +1,197 @@
+From 1f0f87bbcacaed80c02178bf74b87612578840cd Mon Sep 17 00:00:00 2001
+From: Swagtoy <me@ow.swag.toys>
+Date: Fri, 20 Mar 2026 19:43:57 -0400
+Subject: [PATCH] Make systemd optional
+
+Starting from gnome session 49 onwards, systemd was integrated via a
+leader, ctl, and a service file. This is fine; however, this was also
+intentionally designed to allow for other leaders/ctl/tools to be
+injected (such as the efforts with gnome-session-openrc).
+
+Despite this, systemd still remains a required dependency and you
+cannot install gnome-session without it. Now, systemd is specified as
+an meson option. It intentionally isn't a fallback if systemd isn't
+found (like `required: false`) to ensure that non-systemd systems will
+still error out, or in interesting cases where multiple binaries will
+get built and could have both elogind and systemd stashed
+somewhere. In either case, I don't think it's inappropriate to make it
+an option, since it completely changes the way gnome-session builds
+and functions too.
+
+If on, things will function as they would before this commit,
+otherwise, it will toggle on elogind as a fallback so things still
+function, disable the systemd leader, stop installing the unit files,
+and tools. This ultimately opens the doors for things like
+gnome-session-openrc 'to work,' by allowing for a custom leader,
+tools, etc.
+
+Signed-off-by: Swagtoy <me@ow.swag.toys>
+Signed-off-by: Emi <reedy.sailors.8t@icloud.com>
+---
+ data/meson.build | 47 +++++++++++++++++++++------------------
+ gnome-session/meson.build | 2 ++
+ meson.build | 9 ++++++--
+ meson_options.txt | 1 +
+ tools/meson.build | 5 ++++-
+ 5 files changed, 39 insertions(+), 25 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 3e5401a0..7db0497c 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -16,11 +16,12 @@ i18n.merge_file(
+ )
+
+ # Next, let's install the necessary systemd scaffolding
+-
+-install_data(
+- 'gnome.session.conf',
+- install_dir: systemd_userunitdir / 'gnome-session@gnome.target.d',
+-)
++if get_option('systemd')
++ install_data(
++ 'gnome.session.conf',
++ install_dir: systemd_userunitdir / 'gnome-session@gnome.target.d',
++ )
++endif
+
+ systemd_service = [
+ 'gnome-session-manager@.service',
+@@ -33,7 +34,7 @@ foreach service: systemd_service
+ configure_file(
+ input: service + '.in',
+ output: service,
+- install: true,
++ install: get_option('systemd'),
+ install_dir: systemd_userunitdir,
+ configuration: {
+ 'libexecdir': session_libexecdir,
+@@ -54,25 +55,27 @@ systemd_target = [
+ 'gnome-session-x11-services-ready.target',
+ ]
+
+-install_data(
+- systemd_target,
+- install_dir: systemd_userunitdir
+-)
++if get_option('systemd')
++ install_data(
++ systemd_target,
++ install_dir: systemd_userunitdir
++ )
+
+-# Install resource limits that are applied to GNOME-launched apps
++ # Install resource limits that are applied to GNOME-launched apps
+
+-install_data(
+- 'app-override.scope.conf',
+- rename: 'override.conf',
+- install_dir : join_paths(systemd_userunitdir, 'app-gnome-.scope.d')
+-)
++ install_data(
++ 'app-override.scope.conf',
++ rename: 'override.conf',
++ install_dir : join_paths(systemd_userunitdir, 'app-gnome-.scope.d')
++ )
+
+-# FIXME: https://github.com/systemd/systemd/issues/37104
+-install_data(
+- 'app-override.scope.conf',
+- rename: 'override.conf',
+- install_dir : join_paths(systemd_userunitdir, 'app-flatpak-.scope.d')
+-)
++ # FIXME: https://github.com/systemd/systemd/issues/37104
++ install_data(
++ 'app-override.scope.conf',
++ rename: 'override.conf',
++ install_dir : join_paths(systemd_userunitdir, 'app-flatpak-.scope.d')
++ )
++endif
+
+ # Install some other misc. configuration files
+
+diff --git a/gnome-session/meson.build b/gnome-session/meson.build
+index 67774960..c975fba1 100644
+--- a/gnome-session/meson.build
++++ b/gnome-session/meson.build
+@@ -19,10 +19,12 @@ executable(
+ install_dir: session_bindir
+ )
+
++# If you are not using systemd, you must supply your own leader
+ sources = files(
+ 'gsm-util.c',
+ 'leader-systemd.c',
+ )
++sources = get_option('systemd') ? sources : disabler()
+
+ executable(
+ meson.project_name() + '-init-worker',
+diff --git a/meson.build b/meson.build
+index 2b9d524c..dbab0821 100644
+--- a/meson.build
++++ b/meson.build
+@@ -86,17 +86,21 @@ session_deps = [
+ dependency('gnome-desktop-4'),
+ ]
+
+-libsystemd_dep = dependency('libsystemd', version: '>= 209', required: true)
++libsystemd_dep = dependency('libsystemd', version: '>= 209', required: get_option('systemd'), disabler: true)
+ config_h.set('SYSTEMD_STRICT_ENV',
+ libsystemd_dep.version().version_compare('< 248'))
+
++if not libsystemd_dep.found()
++ libsystemd_dep = dependency('libelogind', version: '>=209', required: true)
++endif
++
+ session_bin_deps = session_deps + [
+ libsystemd_dep,
+ dependency('gio-unix-2.0', version: glib_req_version),
+ ]
+
+ systemd_userunitdir = get_option('systemduserunitdir')
+-if systemd_userunitdir == ''
++if systemd_userunitdir == '' and libsystemd_dep.name() != 'libelogind'
+ systemd_dep = dependency('systemd', version: '>= 242', required: true)
+ systemd_userunitdir = systemd_dep.get_variable(pkgconfig: 'systemduserunitdir',
+ pkgconfig_define: ['prefix', session_prefix])
+@@ -130,6 +134,7 @@ summary_options = {
+ 'Use *_DISABLE_DEPRECATED': get_option('deprecation_flags'),
+ 'Build Docbook': get_option('docbook'),
+ 'Build manpages': get_option('man'),
++ 'Systemd Integration': get_option('systemd'),
+ 'Systemd Units Directory': systemd_userunitdir,
+ }
+
+diff --git a/meson_options.txt b/meson_options.txt
+index e1d1afae..bca3e40d 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,4 +1,5 @@
+ option('deprecation_flags', type: 'boolean', value: false, description: 'use *_DISABLE_DEPRECATED flags')
++option('systemd', type: 'boolean', value: true, description: 'Systemd integration, leader, etc.')
+ option('systemduserunitdir', type: 'string', description: 'Directory for systemd user service files')
+ option('docbook', type: 'boolean', value: true, description: 'build documentation')
+ option('man', type: 'boolean', value: true, description: 'build documentation (requires xmlto)')
+diff --git a/tools/meson.build b/tools/meson.build
+index c453093e..fb09020d 100644
+--- a/tools/meson.build
++++ b/tools/meson.build
+@@ -1,10 +1,13 @@
+ programs = [
+ # name, deps, install_dir
+- ['gnome-session-ctl', session_bin_deps, session_libexecdir],
+ ['gnome-session-inhibit', session_deps, session_bindir],
+ ['gnome-session-quit', session_deps, session_bindir],
+ ]
+
++if get_option('systemd')
++ programs += [['gnome-session-ctl', session_bin_deps, session_libexecdir]]
++endif
++
+ foreach program: programs
+ executable(
+ program[0],
+--
+2.53.0
+
diff --git a/gnome-base/gnome-session/gnome-session-48.0-r2.ebuild b/gnome-base/gnome-session/gnome-session-48.0-r2.ebuild
deleted file mode 100644
index a7f4dd0683d2..000000000000
--- a/gnome-base/gnome-session/gnome-session-48.0-r2.ebuild
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit desktop gnome.org gnome2-utils meson systemd xdg
-
-DESCRIPTION="Gnome session manager"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-session"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
-IUSE="doc elogind systemd X"
-
-REQUIRED_USE="^^ ( elogind systemd )"
-
-COMMON_DEPEND="
- >=dev-libs/glib-2.46.0:2
- X? (
- >=x11-libs/gtk+-3.22.0:3[X]
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- )
- >=gnome-base/gnome-desktop-3.34.2:3=
- >=dev-libs/json-glib-0.10
- media-libs/libglvnd[X]
- media-libs/libepoxy
- x11-libs/libXcomposite
- systemd? ( >=sys-apps/systemd-242:0= )
- elogind? ( >=sys-auth/elogind-239.4 )
-"
-
-# Pure-runtime deps from the session files should *NOT* be added here.
-# >=gnome-settings-daemon-3.35.91 for UsbProtection required component.
-# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
-# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
-# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
-# sys-apps/dbus[X] is needed for session management.
-# Our 90-xcursor-theme-gnome reads a setting from gsettings-desktop-schemas.
-RDEPEND="${COMMON_DEPEND}
- >=gnome-base/gnome-settings-daemon-3.35.91
- >=gnome-base/gsettings-desktop-schemas-0.1.7
- sys-apps/dbus[elogind=,systemd=,X]
-
- x11-misc/xdg-user-dirs
- x11-misc/xdg-user-dirs-gtk
-"
-DEPEND="${COMMON_DEPEND}
- x11-libs/xtrans
-"
-BDEPEND="
- dev-libs/libxslt
- >=dev-util/gdbus-codegen-2.80.5-r1
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- doc? (
- app-text/xmlto
- app-text/docbook-xml-dtd:4.1.2
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-46.0-meson-Support-elogind.patch
- "${FILESDIR}/data-Install-XWayland-targets-even-if-x11-is-off.patch"
-
- # https://bugs.gentoo.org/959295 user can't logout without it
- "${FILESDIR}"/exclude-gnome-shell-from-queryendSession-and-endSession.patch
-)
-
-src_prepare() {
- default
- xdg_environment_reset
-
- # Install USE=doc in ${PF} if enabled
- sed -i -e "s:meson\.project_name(), 'dbus':'${PF}', 'dbus':" doc/dbus/meson.build || die
-}
-
-src_configure() {
- local emesonargs=(
- -Ddeprecation_flags=false
- -Dsession_selector=true # gnome-custom-session
- $(meson_use doc docbook)
- -Dman=true
- -Dsystemduserunitdir="$(systemd_get_userunitdir)"
- $(meson_use X x11)
- )
- meson_src_configure
-}
-
-src_install() {
- meson_src_install
-
- exeinto /etc/X11/Sessions
- doexe "${FILESDIR}/Gnome"
-
- newmenu "${FILESDIR}/defaults.list-r7" gnome-mimeapps.list
-
- exeinto /etc/X11/xinit/xinitrc.d/
- newexe "${FILESDIR}/15-xdg-data-gnome-r1" 15-xdg-data-gnome
-
- # This should be done here as discussed in bug #270852
- newexe "${FILESDIR}/10-user-dirs-update-gnome-r1" 10-user-dirs-update-gnome
-
- # Set XCURSOR_THEME from current dconf setting instead of installing
- # default cursor symlink globally and affecting other DEs (bug #543488)
- # https://bugzilla.gnome.org/show_bug.cgi?id=711703
- newexe "${FILESDIR}/90-xcursor-theme-gnome" 90-xcursor-theme-gnome
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-
- if ! has_version gnome-base/gdm && ! has_version x11-misc/sddm; then
- ewarn "If you use a custom .xinitrc for your X session,"
- ewarn "make sure that the commands in the xinitrc.d scripts are run."
- fi
-}
-
-pkg_postrm() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
diff --git a/gnome-base/gnome-session/gnome-session-49.2.ebuild b/gnome-base/gnome-session/gnome-session-50.1.ebuild
index 49781dca9f69..f9fffb6f9cb1 100644
--- a/gnome-base/gnome-session/gnome-session-49.2.ebuild
+++ b/gnome-base/gnome-session/gnome-session-50.1.ebuild
@@ -9,14 +9,13 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-session"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
-IUSE="doc elogind systemd X"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="doc elogind systemd"
REQUIRED_USE="^^ ( elogind systemd )"
COMMON_DEPEND="
>=dev-libs/glib-2.82.0:2
- gui-libs/gtk:4[X?]
gnome-base/gnome-desktop:4
systemd? ( >=sys-apps/systemd-242:0= )
elogind? ( >=sys-auth/elogind-242 )
@@ -24,17 +23,11 @@ COMMON_DEPEND="
# Pure-runtime deps from the session files should *NOT* be added here.
# >=gnome-settings-daemon-3.35.91 for UsbProtection required component.
-# x11-misc/xdg-user-dirs{,-gtk} are needed to create the various XDG_*_DIRs, and
-# create .config/user-dirs.dirs which is read by glib to get G_USER_DIRECTORY_*
-# xdg-user-dirs-update is run during login (see 10-user-dirs-update-gnome below).
-# sys-apps/dbus[X?] is needed for session management.
-# Our 90-xcursor-theme-gnome reads a setting from gsettings-desktop-schemas.
RDEPEND="${COMMON_DEPEND}
>=gnome-base/gnome-settings-daemon-3.35.91
>=gnome-base/gsettings-desktop-schemas-0.1.7
- sys-apps/dbus[elogind=,systemd=,X?]
+ sys-apps/dbus[elogind=,systemd=]
- x11-misc/xdg-user-dirs
x11-misc/xdg-user-dirs-gtk
!systemd? ( >=gnome-base/gnome-session-openrc-$(ver_cut 1) )
"
@@ -51,7 +44,7 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/${PN}-49.2-Make-systemd-optional.patch
+ "${FILESDIR}"/${PN}-50.1-Make-systemd-optional.patch
)
src_prepare() {
@@ -69,7 +62,6 @@ src_configure() {
-Dman=true
-Dsystemduserunitdir="$(systemd_get_userunitdir)"
$(meson_use systemd systemd)
- $(meson_use X x11)
)
meson_src_configure
}
@@ -77,31 +69,12 @@ src_configure() {
src_install() {
meson_src_install
- exeinto /etc/X11/Sessions
- doexe "${FILESDIR}/Gnome"
-
newmenu "${FILESDIR}/defaults.list-r7" gnome-mimeapps.list
-
- exeinto /etc/X11/xinit/xinitrc.d/
- newexe "${FILESDIR}/15-xdg-data-gnome-r1" 15-xdg-data-gnome
-
- # This should be done here as discussed in bug #270852
- newexe "${FILESDIR}/10-user-dirs-update-gnome-r1" 10-user-dirs-update-gnome
-
- # Set XCURSOR_THEME from current dconf setting instead of installing
- # default cursor symlink globally and affecting other DEs (bug #543488)
- # https://bugzilla.gnome.org/show_bug.cgi?id=711703
- newexe "${FILESDIR}/90-xcursor-theme-gnome" 90-xcursor-theme-gnome
}
pkg_postinst() {
xdg_pkg_postinst
gnome2_schemas_update
-
- if ! has_version gnome-base/gdm && ! has_version x11-misc/sddm; then
- ewarn "If you use a custom .xinitrc for your X session,"
- ewarn "make sure that the commands in the xinitrc.d scripts are run."
- fi
}
pkg_postrm() {
diff --git a/gnome-base/gnome-settings-daemon/Manifest b/gnome-base/gnome-settings-daemon/Manifest
index e2465ad4c32e..469398a90d5e 100644
--- a/gnome-base/gnome-settings-daemon/Manifest
+++ b/gnome-base/gnome-settings-daemon/Manifest
@@ -1,2 +1,2 @@
-DIST gnome-settings-daemon-48.1.tar.xz 1498444 BLAKE2B e181be3af654cda9739fcb9cc388098ed001da8aa6d0f55357d8839c48db40c9b4c5056bfa44e2df9870941d992bca2c5dd8e3617ffb0ef33ede208067063311 SHA512 b4ce4fe5a2a6b9dcdc3a82f4460488b39adcb56e7345079d9558506146202d234562cfaa522b77d1eb0d468121a5aed5cec42983a78abc2fe0946dd78dc2bc40
DIST gnome-settings-daemon-49.1.tar.xz 1489824 BLAKE2B 1e4f250a7c4d258c17527aea7aed0e25697ade22ea84a906beec7039ac8f9b0825d883659f25fea19e9037341b9d489368ad3ff125eb494be10740fbbc137a3b SHA512 fe33b70fdf74ffccb806c99f9eb6159afcc4013d8c163a36648419a5dbc3317fc21efb05426585a52fb6dafae5830515523025f67eb5931f05552f07c5333191
+DIST gnome-settings-daemon-50.1.tar.xz 1498000 BLAKE2B 83bf3cc3bdae2a900b7b6b68e4e0093f7a3d91f4dac33a0712df27dd12998a97b33f18f9bab17d25a5e46c1c85e6c6333deb5c021e7903bd0d958d28619cae17 SHA512 c9b8f1d23a2933535f08db02ba2d12cf226bd86fabfddeddeb4d2028bd97ab6d973bf140ef9696dfb12a32aced3b1e0ba4bbaede8580c24d3ed03495133dd878
diff --git a/gnome-base/gnome-settings-daemon/files/42.1-build-Make-wacom-optional-and-controllable-via-meson.patch b/gnome-base/gnome-settings-daemon/files/42.1-build-Make-wacom-optional-and-controllable-via-meson.patch
deleted file mode 100644
index 3956b7413978..000000000000
--- a/gnome-base/gnome-settings-daemon/files/42.1-build-Make-wacom-optional-and-controllable-via-meson.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 1e07481d4fd989828a7237c365e5420f50196ddd Mon Sep 17 00:00:00 2001
-From: Mart Raudsepp <leio@gentoo.org>
-Date: Thu, 14 Mar 2019 09:43:00 +0200
-Subject: [PATCH] build: Make wacom optional and controllable via meson_options
-
----
- meson.build | 4 ++--
- meson_options.txt | 1 +
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index a8955a49..0ac4f3ba 100644
---- a/meson.build
-+++ b/meson.build
-@@ -154,8 +154,8 @@ if enable_wayland
- endif
- config_h.set10('HAVE_WAYLAND', enable_wayland)
-
--# wacom (disabled for s390/s390x and non Linux platforms)
--enable_wacom = host_is_linux_not_s390
-+# wacom
-+enable_wacom = get_option('wacom')
- if enable_wacom
- assert(enable_gudev, 'GUDev support is required for wacom support.')
- libwacom_dep = dependency('libwacom', version: '>= 0.7')
-diff --git a/meson_options.txt b/meson_options.txt
-index 3e04cf64..010053e2 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -9,6 +9,7 @@ option('network_manager', type: 'boolean', value: true, description: 'build with
- option('rfkill', type: 'boolean', value: true, description: 'build with rfkill support (not optional on Linux platforms)')
- option('smartcard', type: 'boolean', value: true, description: 'build with smartcard support')
- option('usb-protection', type: 'boolean', value: true, description: 'build with usb-protection support')
-+option('wacom', type: 'boolean', value: true, description: 'build with Wacom devices support')
- option('wayland', type: 'boolean', value: true, description: 'build with Wayland support')
- option('wwan', type: 'boolean', value: true, description: 'build with WWAN support')
- option('colord', type: 'boolean', value: true, description: 'build with colord support')
---
-2.34.1
-
diff --git a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-48.1.ebuild b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-48.1.ebuild
deleted file mode 100644
index 37dafee108e2..000000000000
--- a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-48.1.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit gnome.org gnome2-utils python-any-r1 meson udev virtualx xdg
-
-DESCRIPTION="Gnome Settings Daemon"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-settings-daemon"
-
-LICENSE="GPL-2+ LGPL-2+"
-SLOT="0"
-
-KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
-
-IUSE="+colord +cups debug elogind input_devices_wacom modemmanager networkmanager smartcard systemd test wayland"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="^^ ( elogind systemd )"
-
-COMMON_DEPEND="
- >=sci-geosciences/geocode-glib-3.10:2
- >=dev-libs/glib-2.70:2
- >=gnome-base/gnome-desktop-3.37.1:3=
- >=gnome-base/gsettings-desktop-schemas-46.0
- >=x11-libs/gtk+-3.15.3:3[X,wayland?]
- >=dev-libs/libgweather-4.2.0:4=
- colord? ( >=x11-misc/colord-1.4.5:= )
- || (
- media-libs/libcanberra-gtk3
- >=media-libs/libcanberra-0.25[gtk3(-)]
- )
- >=app-misc/geoclue-2.3.1:2.0
- >=x11-libs/libnotify-0.7.3
- >=media-libs/libpulse-16.1[glib]
- >=sys-auth/polkit-0.114
- >=sys-power/upower-0.99.12:=
- x11-libs/libX11
- >=x11-libs/libXfixes-6.0.0
- dev-libs/libgudev:=
- wayland? ( dev-libs/wayland )
- input_devices_wacom? (
- >=dev-libs/libwacom-0.7:=
- >=x11-libs/pango-1.20.0
- x11-libs/gdk-pixbuf:2
- )
- smartcard? ( app-crypt/gcr:4= )
- cups? ( >=net-print/cups-1.4[dbus] )
- modemmanager? (
- >=app-crypt/gcr-3.90.0:4=
- >=net-misc/modemmanager-1.18:=
- )
- networkmanager? ( >=net-misc/networkmanager-1.0 )
- media-libs/alsa-lib
- x11-libs/libXi
- x11-libs/libXext
- media-libs/fontconfig
- elogind? ( >=sys-auth/elogind-209 )
- systemd? ( >=sys-apps/systemd-243 )
-"
-DEPEND="${COMMON_DEPEND}
- x11-base/xorg-proto
-"
-# logind needed for power and session management, bug #464944
-RDEPEND="${COMMON_DEPEND}
- gnome-base/dconf
-"
-# rfkill requires linux/rfkill.h, thus linux-headers dep, not os-headers.
-# If this package wants to work on other kernels, we need to make rfkill conditional instead
-BDEPEND="
- sys-kernel/linux-headers
- dev-util/glib-utils
- >=dev-util/gdbus-codegen-2.80.5-r1
- ${PYTHON_DEPS}
- test? (
- dev-util/umockdev
- $(python_gen_any_dep '
- dev-python/pygobject:3[${PYTHON_USEDEP}]
- dev-python/python-dbusmock[${PYTHON_USEDEP}]
- ')
- gnome-base/gnome-session
- )
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
-"
-
-PATCHES=(
- "${FILESDIR}"/42.1-build-Make-wacom-optional-and-controllable-via-meson.patch
- "${FILESDIR}"/${PN}-3.38.1-build-Allow-NM-optional-on-Linux.patch
-)
-
-python_check_deps() {
- if use test; then
- python_has_version "dev-python/pygobject:3[${PYTHON_USEDEP}]" &&
- python_has_version "dev-python/python-dbusmock[${PYTHON_USEDEP}]"
- fi
-}
-
-pkg_setup() {
- python-any-r1_pkg_setup
-}
-
-src_configure() {
- local emesonargs=(
- -Dudev_dir="$(get_udevdir)"
- $(meson_use systemd)
- $(meson_use elogind)
- -Dalsa=true
- -Dgudev=true
- -Dgcr3=false
- $(meson_use colord)
- $(meson_use cups)
- $(meson_use networkmanager network_manager)
- -Drfkill=true
- $(meson_use smartcard)
- $(meson_use input_devices_wacom wacom)
- $(meson_use wayland)
- $(meson_use modemmanager wwan)
- )
- meson_src_configure
-}
-
-src_install() {
- meson_src_install
- # Don't auto-suspend by default on AC power
- insinto /usr/share/glib-2.0/schemas
- doins "${FILESDIR}"/org.gnome.settings-daemon.plugins.power.gschema.override
-}
-
-src_test() {
- virtx meson_src_test
-}
-
-pkg_postinst() {
- udev_reload
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- udev_reload
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-49.1.ebuild b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-50.1.ebuild
index 044468c3e6c0..74770e106b07 100644
--- a/gnome-base/gnome-settings-daemon/gnome-settings-daemon-49.1.ebuild
+++ b/gnome-base/gnome-settings-daemon/gnome-settings-daemon-50.1.ebuild
@@ -14,7 +14,7 @@ SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-IUSE="+colord +cups debug elogind modemmanager networkmanager smartcard systemd test +xwayland X"
+IUSE="+colord +cups debug elogind modemmanager networkmanager smartcard systemd test +xwayland"
RESTRICT="!test? ( test )"
REQUIRED_USE="^^ ( elogind systemd )"
@@ -43,17 +43,12 @@ COMMON_DEPEND="
media-libs/fontconfig
elogind? ( >=sys-auth/elogind-209 )
systemd? ( >=sys-apps/systemd-243 )
- >=x11-libs/libnotify-0.7.3
+ >=x11-libs/libnotify-0.8.7
xwayland? (
x11-libs/libXext
x11-libs/libX11
>=x11-libs/libXfixes-6.0.0
)
- X? (
- x11-libs/libXext
- x11-libs/libX11
- >=x11-libs/libXfixes-6.0.0
- )
"
DEPEND="${COMMON_DEPEND}"
# logind needed for power and session management, bug #464944
@@ -98,6 +93,7 @@ src_configure() {
local emesonargs=(
-Dudev_dir="$(get_udevdir)"
$(meson_use systemd)
+ $(meson_use systemd systemd-units)
$(meson_use elogind)
-Dalsa=true
-Dgudev=true
@@ -107,7 +103,6 @@ src_configure() {
$(meson_use networkmanager network_manager)
-Drfkill=true
$(meson_use smartcard)
- $(meson_use X x11)
$(meson_use xwayland)
$(meson_use modemmanager wwan)
)
diff --git a/gnome-base/gnome-settings-daemon/metadata.xml b/gnome-base/gnome-settings-daemon/metadata.xml
index 007ee2fae047..d45aa6898b44 100644
--- a/gnome-base/gnome-settings-daemon/metadata.xml
+++ b/gnome-base/gnome-settings-daemon/metadata.xml
@@ -6,7 +6,7 @@
<name>Gentoo GNOME Desktop</name>
</maintainer>
<use>
- <flag name="xwayland">Enable Xwayland integration</flag>
+ <flag name="xwayland">Enable <pkg>x11-base/xwayland</pkg> integration for running X11 applications under Wayland</flag>
<flag name="elogind">Rely on <pkg>sys-auth/elogind</pkg> as runtime logind provider</flag>
<flag name="modemmanager">Enable WWAN support via <pkg>net-misc/modemmanager</pkg>
</flag>
diff --git a/gnome-base/gnome-shell/Manifest b/gnome-base/gnome-shell/Manifest
index 09e0171529d9..861c193a029f 100644
--- a/gnome-base/gnome-shell/Manifest
+++ b/gnome-base/gnome-shell/Manifest
@@ -1,4 +1,4 @@
DIST gnome-shell-48.8.tar.xz 2253148 BLAKE2B 2ce713f9cb9f9b3aa2091a7f8ab5ceb50e56e553d2f3a00d1cc7dd09c6a3c447a8183f7682a8abb87a376457ab1d317f50d6b3f6022fc3fa0fe14fa05aedadd1 SHA512 1dfdc942517785a514f806c299ede60a6299c7ae497f1d68b1847f276b4de51b30d8c0ca6802703030730add0a682eb0bc3a27cf6bd8a4a39f94ea133349b3e4
DIST gnome-shell-49.7.tar.xz 2311204 BLAKE2B 24fc0e183992a3489eb72a3c10eda8c301e98a3c9c5102006d9ac95d4d958ccd65497e9ff68aa92331c4a9eb26a0afce4fd47ae2f0dd2cbe3d1ffc535bbb80a8 SHA512 542cd03c0c724aee4970fb68a27e852f9f04bd1a847952e811a9c359e3124954554de4347ffdd03b48c31cd3f01aebb3138329c628df7beacc7b59348af57495
-DIST gnome-shell-49.8.tar.xz 2311376 BLAKE2B ed6b2249cfafa06d18cee383a0ec90b8f1ad2c22afca29ed9037f346820de6d1b37b323a75368dd27b3a0b3c6d17d193939ba803cd495b4fd24db6d4a3551b28 SHA512 ccd6d9b31193dcca7a5bb596e8945bc9d19f00de1696b25b31288dab34ca3d95ab719aed56f34f303b35e62ae7b68d128ddfb550259b1782d3be163cd056ea50
DIST gnome-shell-49.9.tar.xz 2311756 BLAKE2B a4acb09de28c94d0a0278b8ee58333c2bcb5f8c7d536480cd7b68bdf994ecddb6dfe8c60931b501bb0c08546b5b644e2e5be8a255ab40b90aebe70c02be78f03 SHA512 e5c4e15f55b0daca7cac368c25e78213fc9298d02400d9787f19d81e0c96365fce86f6821406aea92f6d2e958ef62b5e380a8eafa3c8b27f9b18de8c0d952aac
+DIST gnome-shell-50.5.tar.xz 2358800 BLAKE2B e803f2c0269a45d63ec9301bd663d7db87dd0aef4ff3b106901a3647965bc336c51e551f57d6241c429a86cdc63aa3030f9683fe5512cc0e3ac54d791e8587b2 SHA512 cb195a16b3cfc8443424a55413ca13a5c38224c359599dd246593c772802b7dfe0dafe337852f90b77eb093999e390111708719300a28d79b06f4572d9820011
diff --git a/gnome-base/gnome-shell/gnome-shell-49.8.ebuild b/gnome-base/gnome-shell/gnome-shell-50.5.ebuild
index b0944a390823..ef2de358df19 100644
--- a/gnome-base/gnome-shell/gnome-shell-49.8.ebuild
+++ b/gnome-base/gnome-shell/gnome-shell-50.5.ebuild
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
PYTHON_COMPAT=( python3_{13..14} )
inherit flag-o-matic gnome.org gnome2-utils meson optfeature python-single-r1 xdg
@@ -13,7 +14,7 @@ LICENSE="GPL-2+ LGPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
-IUSE="X elogind gtk-doc +ibus +networkmanager pipewire selinux systemd test wayland"
+IUSE="elogind gtk-doc +ibus +networkmanager pipewire selinux systemd test xwayland"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
?? ( elogind systemd )"
RESTRICT="!test? ( test )"
@@ -24,12 +25,12 @@ DEPEND="
>=app-crypt/gcr-3.90.0:4=[introspection]
>=dev-libs/glib-2.86.0:2
>=dev-libs/gobject-introspection-1.86.0:=
- >=dev-libs/gjs-1.85.90[cairo(+)]
- >=gui-libs/gtk-4:4[X?,introspection,wayland?]
- >=x11-wm/mutter-49.0:0/17[introspection,test?]
+ >=dev-libs/gjs-1.87.1[cairo(+)]
+ >=gui-libs/gtk-4:4[introspection,wayland]
+ >=x11-wm/mutter-50.0:0/18[introspection,test?]
>=sys-auth/polkit-0.120_p20220509[introspection]
- >=gnome-base/gsettings-desktop-schemas-49_alpha[introspection]
- X? (
+ >=gnome-base/gsettings-desktop-schemas-50_alpha[introspection]
+ xwayland? (
x11-libs/libX11
x11-libs/libXext
>=x11-libs/libXfixes-5.0
@@ -38,7 +39,7 @@ DEPEND="
dev-python/docutils
>=gnome-base/gnome-desktop-40.0:4=
networkmanager? (
- >=net-misc/networkmanager-1.10.4[introspection]
+ >=net-misc/networkmanager-1.24[introspection]
net-libs/libnma[introspection]
>=app-crypt/libsecret-0.18
)
@@ -64,7 +65,7 @@ DEPEND="
$(python_gen_cond_dep '
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
- media-libs/libglvnd[X]
+ media-libs/libglvnd
"
# Runtime-only deps are probably incomplete and approximate.
# Introspection deps generated from inspection of the output of:
@@ -97,7 +98,7 @@ RDEPEND="${DEPEND}
gnome-base/librsvg:2[introspection]
gui-libs/libadwaita:1[introspection]
- >=gnome-base/gnome-session-49
+ >=gnome-base/gnome-session-50
>=gnome-base/gnome-settings-daemon-3.8.3
x11-misc/xdg-utils
@@ -117,7 +118,7 @@ RDEPEND="${DEPEND}
# avoid circular dependency, see bug #546134
PDEPEND="
- >=gnome-base/gdm-49[introspection(+)]
+ >=gnome-base/gdm-50[introspection(+)]
>=gnome-base/gnome-control-center-3.26[networkmanager(+)?]
"
BDEPEND="
@@ -153,8 +154,7 @@ src_prepare() {
}
src_configure() {
- use X || append-cppflags -DGENTOO_GTK_HIDE_X11
- use wayland || append-cppflags -DGENTOO_GTK_HIDE_WAYLAND
+ append-cppflags -DGENTOO_GTK_HIDE_WAYLAND
local emesonargs=(
$(meson_use pipewire camera_monitor)
diff --git a/gnome-base/gnome-shell/metadata.xml b/gnome-base/gnome-shell/metadata.xml
index debc16d98dea..273143c9764d 100644
--- a/gnome-base/gnome-shell/metadata.xml
+++ b/gnome-base/gnome-shell/metadata.xml
@@ -17,6 +17,7 @@
<flag name="elogind">Use <pkg>sys-auth/elogind</pkg> for session tracking and suspend support.</flag>
<flag name="ibus">Enable support for enhanced input methods through <pkg>app-i18n/ibus</pkg>
</flag>
+ <flag name="xwayland">Enable <pkg>x11-base/xwayland</pkg> integration for running X11 applications under Wayland</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:gnome:gnome-shell</remote-id>
diff --git a/gnome-base/gsettings-desktop-schemas/Manifest b/gnome-base/gsettings-desktop-schemas/Manifest
index 0d7a43e502f7..d779948f11f9 100644
--- a/gnome-base/gsettings-desktop-schemas/Manifest
+++ b/gnome-base/gsettings-desktop-schemas/Manifest
@@ -1,2 +1,2 @@
-DIST gsettings-desktop-schemas-48.0.tar.xz 813656 BLAKE2B b65b7c2e5c1951623b07cbe6e5c7b39c8dd5ccf222bcac18a1fb5b92d21ce072ffe51d89202b173394ece4dcd23ad1936b844c39fc76facaf1f704583a0603bd SHA512 2c438b14c21a8dd0da12d3eca0b0e77e75d900f4c5ce9365312578e874f4e4fadc16caeefe89dcf1b8482305d3755ee81bfa20ab54e7a77d180fb2a8bf2c39b7
DIST gsettings-desktop-schemas-49.1.tar.xz 854352 BLAKE2B c333f9ec4971704341ad37798441c6e1c0afc2dcd0c78f5bea4889c52702efe348302ce7c5dfc6505ff6023490204210ff9f8659fa4cf95a524d3e2c9a921b7b SHA512 60924480d92bbb56d0f61e3b923398e9eb355c5c998989861dd25b8540f042bc70d174646c286946b868367fb8e74d5bd6b90885f7a48a2ec75b87ec447e964b
+DIST gsettings-desktop-schemas-50.1.tar.xz 896852 BLAKE2B 4bc50151b7a397d0ad1a4197b1c0a05932f4bc44fce90489816448c224295eecc5c27ca5f661db5e1ab3fba84e3ae3294d0aa03dcf5fa3175254de9e5061bc45 SHA512 b0f98f4823008a49536aa16503a2a2c0dd403580d8687198245e1d7c8acf3acf07d436f77d3eaba15f49305b7c5c003f3d30cc48d1fbda913db5d8c3e091de9d
diff --git a/gnome-base/gsettings-desktop-schemas/gsettings-desktop-schemas-48.0.ebuild b/gnome-base/gsettings-desktop-schemas/gsettings-desktop-schemas-50.1.ebuild
index 699436951368..620c9f57a1e7 100644
--- a/gnome-base/gsettings-desktop-schemas/gsettings-desktop-schemas-48.0.ebuild
+++ b/gnome-base/gsettings-desktop-schemas/gsettings-desktop-schemas-50.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
@@ -10,7 +10,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/gsettings-desktop-schemas"
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
IUSE="+introspection"
BDEPEND="
@@ -22,7 +22,7 @@ BDEPEND="
PATCHES=(
# Use generic sans and monospace aliases
- "${FILESDIR}"/48.0-default-fonts.patch
+ "${FILESDIR}"/49.0-default-fonts.patch
)
src_configure() {
diff --git a/gnome-base/nautilus/Manifest b/gnome-base/nautilus/Manifest
index 5e5bbfd0db75..3f23dfc5f46d 100644
--- a/gnome-base/nautilus/Manifest
+++ b/gnome-base/nautilus/Manifest
@@ -1 +1,2 @@
DIST nautilus-49.6.tar.xz 3337508 BLAKE2B fdc2d0d44b74e61bc5ce6e16becd3c355e6b78b592f57414cade1b95829e0c07933eb8fea8126454d488931c71be5b51cbd42513db0aaae8a99b5aae3774b448 SHA512 f7b0b428898c399d143d263efcfdf3dd44b5ed7c09c4c0b09b42bd386a12bfd4c93054773958a80140757c461013fbdd09a01384c30d68019c1e7d955e0337e6
+DIST nautilus-50.3.1.tar.xz 3353260 BLAKE2B d448d7cad1356c391603b1a5cb1762bb2a2eaba7117b3de114e49555818276161d9364f01ab13ffa2cfc84634bddf6a3570965b91666123327c820835b0a83a0 SHA512 5f3937901bf98debe95c64a39bbde29bdb4b20de9badc1e3615711f6a87fed79d72cec161a4d6b321e52a1575f3679b2c9eef06c3965c641849700dfcc9586fa
diff --git a/gnome-base/nautilus/nautilus-50.3.1.ebuild b/gnome-base/nautilus/nautilus-50.3.1.ebuild
new file mode 100644
index 000000000000..be404ec98320
--- /dev/null
+++ b/gnome-base/nautilus/nautilus-50.3.1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome.org gnome2-utils meson readme.gentoo-r1 virtualx xdg
+
+DESCRIPTION="Default file manager for the GNOME desktop"
+HOMEPAGE="https://apps.gnome.org/Nautilus/"
+
+LICENSE="GPL-3+ LGPL-2.1+"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+IUSE="+cloudproviders gtk-doc gnome +gstreamer +introspection +previewer selinux"
+REQUIRED_USE="gtk-doc? ( introspection )"
+
+DEPEND="
+ >=dev-libs/glib-2.84.0:2
+ media-libs/glycin:2
+ media-libs/gexiv2:0.16/4
+ gstreamer? ( media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0 )
+ >=app-arch/gnome-autoar-0.4.4
+ >=gnome-base/gnome-desktop-43:4=
+ >=gnome-base/gsettings-desktop-schemas-42
+ >=gui-libs/gtk-4.20.0:4[X,introspection?,wayland]
+ dev-libs/wayland
+ >=gui-libs/libadwaita-1.8_alpha:1
+ >=dev-libs/libportal-0.7:=[gtk]
+ >=dev-libs/icu-56:=
+ >=x11-libs/pango-1.28.3
+ selinux? ( >=sys-libs/libselinux-2.0 )
+ >=app-misc/tinysparql-3.8:3
+ cloudproviders? ( >=net-libs/libcloudproviders-0.3.1 )
+ introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
+"
+# Uses org.freedesktop.Tracker.Miner.Files gsettings schema from localsearch
+RDEPEND="${DEPEND}
+ >=app-misc/localsearch-3.0:3=
+"
+BDEPEND="
+ >=dev-util/blueprint-compiler-0.19.0
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/glib-utils
+ dev-util/wayland-scanner
+ gtk-doc? (
+ app-text/docbook-xml-dtd:4.1.2
+ dev-util/gi-docgen
+ )
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ test? ( sys-apps/dbus )
+"
+PDEPEND="
+ gnome? ( x11-themes/adwaita-icon-theme )
+ previewer? ( >=gnome-extra/sushi-0.1.9 )
+ >=gnome-base/gvfs-1.14[gtk(+)]
+" # Need gvfs[gtk] for recent:/// support; always built (without USE=gtk) since gvfs-1.34
+
+PATCHES=(
+ "${FILESDIR}"/43.0-optional-gstreamer.patch # Allow controlling audio-video-properties build
+)
+
+src_prepare() {
+ default
+ xdg_environment_reset
+
+ # Disable -Werror
+ sed -e '/-Werror=/d' -i meson.build || die
+
+ if use previewer; then
+ DOC_CONTENTS="nautilus uses gnome-extra/sushi to preview media files.
+ To activate the previewer, select a file and press space; to
+ close the previewer, press space again."
+ fi
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_use gtk-doc docs)
+ -Dextensions=true # image file properties, also required for -Dgstreamer=true
+ $(meson_use introspection)
+ $(meson_feature selinux)
+ $(meson_feature cloudproviders)
+ -Dtests=$(usex test headless none)
+
+ $(meson_use gstreamer) # gstreamer audio-video-properties extension
+ )
+ meson_src_configure
+}
+
+src_install() {
+ use previewer && readme.gentoo_create_doc
+ meson_src_install
+
+ if use gtk-doc; then
+ mkdir -p "${ED}"/usr/share/gtk-doc/html/ || die
+ mv "${ED}"/usr/share/doc/${PN} "${ED}"/usr/share/gtk-doc/html/ || die
+ fi
+}
+
+src_test() {
+ # GIO_USE_VOLUME_MONITOR=unix due to https://gitlab.gnome.org/GNOME/gvfs/-/issues/629#note_1467280
+ GIO_USE_VOLUME_MONITOR=unix XDG_SESSION_TYPE=x11 virtx \
+ dbus-run-session meson test -C "${BUILD_DIR}" --print-errorlogs || die
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+
+ if use previewer; then
+ readme.gentoo_print_elog
+ else
+ elog "To preview media files, emerge nautilus with USE=previewer"
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/gnome-extra/gnome-calendar/Manifest b/gnome-extra/gnome-calendar/Manifest
index 814aaf0729ae..4a74f951e685 100644
--- a/gnome-extra/gnome-calendar/Manifest
+++ b/gnome-extra/gnome-calendar/Manifest
@@ -1,3 +1,2 @@
-DIST gnome-calendar-48.1.tar.xz 534372 BLAKE2B a5ad0915864765bd0d3000182afb290faaf4d6e63e07d865308cc7b2e058dd2fee32d749f59c97f6cddb619615998be3dc1108bd8b5556df91846f9fb62eaf0e SHA512 5192270cac9647c23e92b8905d1203d0f9c8317a78037ff8ad5062b96d7d489115bbd12780b48886b59f48b8ef0c53ba18768f4c5f8cb01407f35004b4b0669b
-DIST gnome-calendar-49.0.1.tar.xz 552980 BLAKE2B be39283c05bab93e3fec6c25fe96640e62730fb842ae26334eea6a4dee6e09fec6b4634255576e6c6261dc5a72b017194a371a18b8ded79506f1cfd227e769a9 SHA512 d7bdc5d037a795c79c666ec829acbcfd6d455bf3b482434117f08a9fa25246d770c53f09d936ea79748ba776a44466e9413c5fa7d1069276e1e3b7c0c8e1c95e
DIST gnome-calendar-49.1.tar.xz 558240 BLAKE2B c53bec988a5ae401e014189d734717404271dbb81118604b2520d9ef04086f036025c5f919f0adf65f5ea80b2242bae015ad3a56b7a155220db382363b52ce2b SHA512 2e1ed49ef058edc8cfb96510c4b7a0d59e517824466345a3cfff490bff9d20c77e6ec69ab31f8be9581b41140aa4ff4fe7fd2334cec6129b097599c45d813f1b
+DIST gnome-calendar-50.0.tar.xz 590268 BLAKE2B ae19ad384a94d6d07a8c89925426ecb8fb8101378c8d98815e4b693873922eaec5b991f02fcc08d662553f992543efcff59a8f23ed5e5b057b70c59f06dda9d4 SHA512 4bc427a45ad5f26ede06a95af7f764035b764defa09de175973a146c1a15fe13ab014ddd3f9f1857812fd702743ad87b9a90e68caf94ea22b199ff6b1d5f7994
diff --git a/gnome-extra/gnome-calendar/gnome-calendar-48.1.ebuild b/gnome-extra/gnome-calendar/gnome-calendar-48.1.ebuild
deleted file mode 100644
index dc7bb12ee9b6..000000000000
--- a/gnome-extra/gnome-calendar/gnome-calendar-48.1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit gnome.org gnome2-utils meson virtualx xdg
-
-DESCRIPTION="Manage your calendars with simple and modern interface"
-HOMEPAGE="https://apps.gnome.org/Calendar/"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv x86"
-
-DEPEND="
- >=dev-libs/libical-1.0.1:0=
- >=gnome-base/gsettings-desktop-schemas-3.21.2
- >=gnome-extra/evolution-data-server-3.45.1:=[gtk]
- net-libs/libsoup:3.0
- >=gui-libs/libadwaita-1.7_alpha:1
- >=dev-libs/glib-2.67.5:2
- >=gui-libs/gtk-4.15.2:4
- >=dev-libs/libgweather-4.2.0:4=
- >=app-misc/geoclue-2.4:2.0
-"
-RDEPEND="${DEPEND}"
-BDEPEND="
- dev-libs/appstream-glib
- dev-libs/libxml2:2
- >=dev-util/gdbus-codegen-2.80.5-r1
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
-"
-
-src_test() {
- virtx meson_src_test
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/gnome-extra/gnome-calendar/gnome-calendar-49.0.1.ebuild b/gnome-extra/gnome-calendar/gnome-calendar-50.0.ebuild
index 7b72fa5b36ef..83ca219bd3d3 100644
--- a/gnome-extra/gnome-calendar/gnome-calendar-49.0.1.ebuild
+++ b/gnome-extra/gnome-calendar/gnome-calendar-50.0.ebuild
@@ -18,7 +18,8 @@ DEPEND="
net-libs/libsoup:3.0
>=gui-libs/libadwaita-1.8_alpha:1
>=dev-libs/glib-2.80.0:2
- >=gui-libs/gtk-4.15.2:4
+ dev-libs/fribidi
+ >=gui-libs/gtk-4.21.2:4
>=dev-libs/libgweather-4.2.0:4=
>=app-misc/geoclue-2.4:2.0
"
diff --git a/gnome-extra/gnome-shell-extension-applications-overview-tooltip/files/gnome-shell-extension-applications-overview-tooltip-24-gnome50.patch b/gnome-extra/gnome-shell-extension-applications-overview-tooltip/files/gnome-shell-extension-applications-overview-tooltip-24-gnome50.patch
new file mode 100644
index 000000000000..ecb50af2ad21
--- /dev/null
+++ b/gnome-extra/gnome-shell-extension-applications-overview-tooltip/files/gnome-shell-extension-applications-overview-tooltip-24-gnome50.patch
@@ -0,0 +1,11 @@
+--- a/metadata.json~ 2025-09-23 09:01:16.000000000 +0200
++++ b/metadata.json 2026-09-19 20:22:39.571339456 +0200
+@@ -2,7 +2,7 @@
+ "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.",
+ "name": "Applications Overview Tooltip",
+ "shell-version": [
+- "46", "47", "48", "49"
++ "46", "47", "48", "49", "50"
+ ],
+ "settings-schema": "org.gnome.shell.extensions.applications-overview-tooltip",
+ "gettext-domain": "applications-overview-tooltip",
diff --git a/gnome-extra/gnome-shell-extension-applications-overview-tooltip/gnome-shell-extension-applications-overview-tooltip-24-r1.ebuild b/gnome-extra/gnome-shell-extension-applications-overview-tooltip/gnome-shell-extension-applications-overview-tooltip-24-r1.ebuild
new file mode 100644
index 000000000000..77d623a0668a
--- /dev/null
+++ b/gnome-extra/gnome-shell-extension-applications-overview-tooltip/gnome-shell-extension-applications-overview-tooltip-24-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome2-utils
+
+DESCRIPTION="Show tooltip with full name and description"
+HOMEPAGE="https://codeberg.org/RaphaelRochet/applications-overview-tooltip"
+SRC_URI="https://github.com/RaphaelRochet/applications-overview-tooltip/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P/gnome-shell-extension-}"
+extension_uuid="applications-overview-tooltip@RaphaelRochet"
+
+LICENSE="CC0-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ app-eselect/eselect-gnome-shell-extensions
+ >=gnome-base/gnome-shell-46
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gnome50.patch
+)
+
+src_install() {
+ einstalldocs
+ insinto /usr/share/glib-2.0/schemas
+ doins schemas/*.xml
+ rm -rf README.md schemas || die
+ insinto /usr/share/gnome-shell/extensions/"${extension_uuid}"
+ doins -r *
+}
+
+pkg_preinst() {
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ gnome2_schemas_update
+ ebegin "Updating list of installed extensions"
+ eselect gnome-shell-extensions update
+ eend $?
+}
+
+pkg_postrm() {
+ gnome2_schemas_update
+}
diff --git a/gnome-extra/gnome-shell-extension-bing-wallpaper/Manifest b/gnome-extra/gnome-shell-extension-bing-wallpaper/Manifest
index 36c5708eec80..114c0023bca9 100644
--- a/gnome-extra/gnome-shell-extension-bing-wallpaper/Manifest
+++ b/gnome-extra/gnome-shell-extension-bing-wallpaper/Manifest
@@ -1,2 +1 @@
-DIST gnome-shell-extension-bing-wallpaper-52.tar.gz 1606719 BLAKE2B 4343473d864ab5517d40934403f21dbb476d0d09acf008f204803f18cb0d8073bbc5e0a18c3891c1e9682ba6b1d92c554067efcbfb51849ad74d89b0da200d11 SHA512 1df2af8ce8de602323ef36abc3e0a9ebd7634545db3cc1d29d6fa9c6bbfafa4e57e03ef852d78b012ff6e7ebc0044de4f52f5991a6921b92ab9a910c8c095892
DIST gnome-shell-extension-bing-wallpaper-53.tar.gz 1603787 BLAKE2B 92af44c3e282be451374837ab049f8f7be909895f482dad56cf49f48ddd5598fbdf1cba8a53c8de1c6332f1d450af0bfb22662cc07dfbbf06fadd134431e757d SHA512 89e0fa601e26dea19fe6bcf992053cf2aefb52437d8e8ea0da7b0639a358040aa3a9fdfe05df9ecade3a0e6f6b8e5581985093a8bdf99984845972c20a96cd88
diff --git a/gnome-extra/gnome-shell-extension-bing-wallpaper/gnome-shell-extension-bing-wallpaper-52.ebuild b/gnome-extra/gnome-shell-extension-bing-wallpaper/gnome-shell-extension-bing-wallpaper-52.ebuild
deleted file mode 100644
index 896de684d3e7..000000000000
--- a/gnome-extra/gnome-shell-extension-bing-wallpaper/gnome-shell-extension-bing-wallpaper-52.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit gnome2-utils
-
-DESCRIPTION="Change your wallpaper daily to the bing.com background image"
-HOMEPAGE="https://github.com/neffo/bing-wallpaper-gnome-extension"
-SRC_URI="https://github.com/neffo/bing-wallpaper-gnome-extension/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/bing-wallpaper-gnome-extension-${PV}"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 x86"
-
-RDEPEND="
- dev-libs/glib:2
- app-eselect/eselect-gnome-shell-extensions
- >=gnome-base/gnome-shell-45
- net-libs/libsoup:3.0
-"
-
-extension_uuid="BingWallpaper@ineffable-gmail.com"
-
-PATCHES=(
- # https://github.com/neffo/bing-wallpaper-gnome-extension/issues/113
- "${FILESDIR}/${PN}-44-unlock-screen.patch"
-)
-
-src_install() {
- einstalldocs
- rm -f README.md LICENSE || die
- insinto /usr/share/glib-2.0/schemas
- doins schemas/*.xml
- rm -rf schemas
- insinto /usr/share/gnome-shell/extensions/"${extension_uuid}"
- doins -r *
-}
-
-pkg_preinst() {
- gnome2_schemas_savelist
-}
-
-pkg_postinst() {
- gnome2_schemas_update
- ebegin "Updating list of installed extensions"
- eselect gnome-shell-extensions update
- eend $?
-}
-
-pkg_postrm() {
- gnome2_schemas_update
-}
diff --git a/gnome-extra/gnome-shell-extension-dash-to-panel/Manifest b/gnome-extra/gnome-shell-extension-dash-to-panel/Manifest
index d5066f2a3425..f43ce9aee6ae 100644
--- a/gnome-extra/gnome-shell-extension-dash-to-panel/Manifest
+++ b/gnome-extra/gnome-shell-extension-dash-to-panel/Manifest
@@ -1,3 +1,3 @@
-DIST gnome-shell-extension-dash-to-panel-72.tar.gz 21269995 BLAKE2B 37b44ca16f08cf94ccebdecd7aeb4b515a67096b6df7f8f72bf8e6445e77e828358dccf026a6a029a491f0925e196805315e5e7a76dcf9fa506f54b98d25a49a SHA512 c4edad1c7e103e51463d06a6b26173cd4bc4189aae6a76cfbd2f1b8258b3a8a16b002e15454d0ebffc63a8b717346981a9da9739ff5aab009c73c507296af847
DIST gnome-shell-extension-dash-to-panel-73.tar.gz 21281258 BLAKE2B d05d630137b0b42bec6a135d05fbe4408d04eae72d15b0655bf0c07392c9c5fc0d30499460c824bc370b259df91b117bde589aea890e224b7bfda3bda8003cb6 SHA512 96c138506e9b371a150ffc58b709ad5fbc24562c9e47044a3d040fd7e71a54b8985dc4a878b8186de242c3949a7e757a2e16c59c11a0bb63796776cd722634b2
+DIST gnome-shell-extension-dash-to-panel-74.tar.gz 21301667 BLAKE2B 89062e7a76d941e21a8f9ab1a4b745787e5db81faba4422fbbab85169d9679d4b55cdad8b71d90c0df8407a96862f9dcfe3edd6c1e4388c1505894bafbcf5a9c SHA512 fc2aa25565f1bf10b18b8f2fb17a60e8d2749cd3bb423cd5103483c041f8707ca9c4f7b2c398ec89156ad10c4dbf66b44beed50a87c98965232a8214d463618e
DIST tango-gentoo-v1.1.tar.gz 29322 BLAKE2B 83fa2bf37727e60851dd679054fe1b153ebfea58c9a9a40f891f7d68d3b047b02e8effa1d1b4e08d64500a2072ce7200f159c92a352da7124de27e1b05bb6027 SHA512 87d47ddab68361db6d99866c51705dcb3e198f8345a1096859acf2c6cca5099dd23c7fb30d124f52c4933ea38fd45fadffbbe6ecbdfa84f5b60938a4824f9045
diff --git a/gnome-extra/gnome-shell-extension-dash-to-panel/gnome-shell-extension-dash-to-panel-72.ebuild b/gnome-extra/gnome-shell-extension-dash-to-panel/gnome-shell-extension-dash-to-panel-74.ebuild
index 9269722c9098..daf08e3244fc 100644
--- a/gnome-extra/gnome-shell-extension-dash-to-panel/gnome-shell-extension-dash-to-panel-72.ebuild
+++ b/gnome-extra/gnome-shell-extension-dash-to-panel/gnome-shell-extension-dash-to-panel-74.ebuild
@@ -1,7 +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
+
inherit gnome2-utils
MY_PN="${PN/gnome-shell-extension-/}"
@@ -17,7 +18,7 @@ extension_uuid="dash-to-panel@jderose9.github.com"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 ~ppc64 x86"
+KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE="branding"
COMMON_DEPEND="dev-libs/glib:2"
diff --git a/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest b/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest
index 425fe53e9444..492d19dced35 100644
--- a/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest
+++ b/gnome-extra/gnome-shell-extension-desktop-icons-ng/Manifest
@@ -1 +1,2 @@
DIST desktop-icons-ng-50.3.0.tar.bz2 178219 BLAKE2B 271c309846d6e0592243f776d01f2974f12707a46fa49a671de69ee4ebf5960d54e17e8bf47ec7aa9d96a831b0b82c597c2c4e3505fc952f76cf67751aa3bc2c SHA512 f4d077973267f144780046355f5056e12f0e8508372f582a28832af7fc3a02fbb6a04190cb690f2cf870519cab05181679c652002e4eed2bfec69c0dd5396369
+DIST desktop-icons-ng-51.0.8.tar.bz2 181333 BLAKE2B ea6f6e8106f15a433bbb6478e32346176e9c515e4ee7012625fbd72a04e63aec4ae4d8ea3310a057a3113dc4129d9ce6f928b835986908e06367cd08687dceef SHA512 efd30fca140e6b79ee84b8c50d1d75c74fa842e32f2fb87478befd7a0408b5072f00dd4b281bd287f6e5bdd8a7af79e1af41bfa6bceb55e74542c21e4f62675d
diff --git a/gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-51.0.8.ebuild b/gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-51.0.8.ebuild
new file mode 100644
index 000000000000..45ff2ab04bfe
--- /dev/null
+++ b/gnome-extra/gnome-shell-extension-desktop-icons-ng/gnome-shell-extension-desktop-icons-ng-51.0.8.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome2-utils meson
+
+MY_PN="desktop-icons-ng"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Desktop icon support for GNOME Shell"
+HOMEPAGE="https://gitlab.com/rastersoft/desktop-icons-ng"
+SRC_URI="https://gitlab.com/rastersoft/${MY_PN}/-/archive/${PV}/${MY_P}.tar.bz2"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEPEND="dev-libs/glib:2"
+RDEPEND="${COMMON_DEPEND}
+ app-eselect/eselect-gnome-shell-extensions
+ >=gnome-base/gnome-shell-50
+ >=gnome-base/nautilus-3.38
+"
+DEPEND="${COMMON_DEPEND}"
+
+pkg_preinst() {
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ gnome2_schemas_update
+ ebegin "Updating list of installed extensions"
+ eselect gnome-shell-extensions update
+ eend $?
+}
+
+pkg_postrm() {
+ gnome2_schemas_update
+}
diff --git a/gnome-extra/gnome-shell-extension-gsconnect/Manifest b/gnome-extra/gnome-shell-extension-gsconnect/Manifest
index 51851b96ec24..04935667a927 100644
--- a/gnome-extra/gnome-shell-extension-gsconnect/Manifest
+++ b/gnome-extra/gnome-shell-extension-gsconnect/Manifest
@@ -1,2 +1 @@
-DIST gnome-shell-extension-gsconnect-71.tar.gz 924602 BLAKE2B 37bfac3495e02e147df497ba52d5c20bf0fad1265951d01d75902dc0d053c42f57bec7b5d0a64f63de58184a1c5e311e77b5f48738a095b8696c76de59150663 SHA512 5402bbcbb915d818b919dc008fc4508ab4d9ad726ec7fd68216bba7abf0158b221cb24151e511f050d20fc4ee443f7f7cfd0b50e6445f433548f2bab16d398b7
DIST gnome-shell-extension-gsconnect-72.tar.gz 935046 BLAKE2B 8d83a2f4624f0db3da25ba7e625f110a1a8142370a2ebe96dac51d59762067147c27de125a62163e1ed545bb04f75607b36896214dc43ad78177441171e97673 SHA512 d2d6931d945ac28884048c60107aa9daa9494d4863e37278830047acaa2706b84815952a1df9c9a2b3e63599b56ae7bc89cafb76980a66878ab44b4700bcf260
diff --git a/gnome-extra/gnome-shell-extension-gsconnect/gnome-shell-extension-gsconnect-71.ebuild b/gnome-extra/gnome-shell-extension-gsconnect/gnome-shell-extension-gsconnect-71.ebuild
deleted file mode 100644
index 0064adb00124..000000000000
--- a/gnome-extra/gnome-shell-extension-gsconnect/gnome-shell-extension-gsconnect-71.ebuild
+++ /dev/null
@@ -1,77 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit gnome2-utils meson readme.gentoo-r1 virtualx xdg
-
-DESCRIPTION="KDE Connect implementation for GNOME"
-HOMEPAGE="https://github.com/GSConnect/gnome-shell-extension-gsconnect"
-SRC_URI="https://github.com/GSConnect/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="amd64 ~ppc64 x86"
-IUSE="nautilus"
-
-# Upstream broke them and now they need to be run after pkg is installed or
-# a container needs to be used:
-# https://github.com/GSConnect/gnome-shell-extension-gsconnect/issues/1786
-RESTRICT="test"
-
-COMMON_DEPEND="dev-libs/glib:2"
-RDEPEND="${COMMON_DEPEND}
- app-eselect/eselect-gnome-shell-extensions
- >=dev-libs/gjs-1.68
- >=gnome-base/gnome-shell-46
- gnome-base/gvfs
- gnome-extra/evolution-data-server
- || ( media-libs/libcanberra media-libs/gsound )
- nautilus? (
- dev-python/nautilus-python
- gnome-base/nautilus[introspection] )
-"
-DEPEND="${COMMON_DEPEND}"
-BDEPEND="
- virtual/pkgconfig
-"
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="For knowing more about how to do the setup, please visit:
-https://github.com/GSConnect/gnome-shell-extension-gsconnect/wiki/Installation"
-
-src_configure() {
- # nemo support relies on nemo-python from https://github.com/linuxmint/nemo-extensions
- # https://bugs.gentoo.org/694388
- meson_src_configure \
- -Dinstalled_tests=false \
- -Dnemo=false \
- $(meson_use nautilus)
-}
-
-src_test() {
- virtx meson_src_test
-}
-
-src_install() {
- meson_src_install
- readme.gentoo_create_doc
-}
-
-pkg_preinst() {
- gnome2_schemas_savelist
- xdg_pkg_preinst
-}
-
-pkg_postinst() {
- gnome2_schemas_update
- xdg_pkg_postinst
- ebegin "Updating list of installed extensions"
- eselect gnome-shell-extensions update
- eend $?
- readme.gentoo_print_elog
-}
-
-pkg_postrm() {
- gnome2_schemas_update
- xdg_pkg_postrm
-}
diff --git a/gnome-extra/gnome-shell-extension-weather-oclock/gnome-shell-extension-weather-oclock-50.5.ebuild b/gnome-extra/gnome-shell-extension-weather-oclock/gnome-shell-extension-weather-oclock-50.5.ebuild
index 97cdeaeeaeb4..90a57779cb9b 100644
--- a/gnome-extra/gnome-shell-extension-weather-oclock/gnome-shell-extension-weather-oclock-50.5.ebuild
+++ b/gnome-extra/gnome-shell-extension-weather-oclock/gnome-shell-extension-weather-oclock-50.5.ebuild
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
inherit gnome2-utils
DESCRIPTION="Display the current weather inside the pill next to the clock"
@@ -11,7 +12,7 @@ S="${WORKDIR}/${PN/gnome-shell-extension-}-${PV}"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
RDEPEND="
app-eselect/eselect-gnome-shell-extensions
diff --git a/gnome-extra/gnome-shell-extensions/Manifest b/gnome-extra/gnome-shell-extensions/Manifest
index 20c8a077e1b6..87f4277fd19e 100644
--- a/gnome-extra/gnome-shell-extensions/Manifest
+++ b/gnome-extra/gnome-shell-extensions/Manifest
@@ -1,2 +1,3 @@
DIST gnome-shell-extensions-48.3.tar.xz 231160 BLAKE2B b970428d75f28d708392e04f219b42f2fd386f1d8921094575080a4500a42be736580af93142afb6a55905786a67619214cf9c8e2cd32f43cd109d0a0f548941 SHA512 31528e6b255e9eebdb98b03cb503ba577d4c0a49696efa471b0caefdb81c5bdefb63715f5d81145e6074b454aca4e255bc9a3624152ad8a6aae843b4c255c4d3
DIST gnome-shell-extensions-49.0.tar.xz 247612 BLAKE2B 0b60fec942a541dcc5f23cef0e9c809b4b542aa06b5febfc04b331242f78decae6b28a2cd40edc5b4d4c5890cb73bbe697e8d4bca6e73a01a086f69c6be5c24b SHA512 55931420ddf4bc223905a081138ebffcc2d4d0fb32d837549fc3f63c4e0b3bebfc0e673b85bfaa6f01b33e5199c8b323258919ad7d4a8abc66960a646ce01688
+DIST gnome-shell-extensions-50.4.tar.xz 245316 BLAKE2B fc2753dbc255c74d50b9eea830076eff017fbac071565a6c171dc8eab6ae281e0a58ca11f0db1aa176bf63f38d8f840f6aeea6358e2e13f059ce82f17e457c64 SHA512 810acb14a1d47e5332bb7e59a1f06a0612418c9350a9b38606fad62fe9841311b45afccbc2fa4ad5a96d77e4c1b2bc0022e1ff7c335c04f62720c0b8b1443983
diff --git a/gnome-extra/gnome-shell-extensions/gnome-shell-extensions-50.4.ebuild b/gnome-extra/gnome-shell-extensions/gnome-shell-extensions-50.4.ebuild
new file mode 100644
index 000000000000..65802784e1c2
--- /dev/null
+++ b/gnome-extra/gnome-shell-extensions/gnome-shell-extensions-50.4.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome.org readme.gentoo-r1 meson xdg
+
+DESCRIPTION="JavaScript extensions for GNOME Shell"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-shell-extensions"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+DEPEND="
+ >=dev-libs/glib-2.26:2
+ >=gnome-base/libgtop-2.28.3[introspection]
+ >=app-eselect/eselect-gnome-shell-extensions-20111211
+"
+RDEPEND="${DEPEND}
+ >=app-accessibility/at-spi2-core-2.46.0[introspection]
+ >=dev-libs/gjs-1.29
+ >=dev-libs/gobject-introspection-1.82.0-r2:=
+ gnome-base/gnome-menus:3[introspection]
+ =gnome-base/gnome-shell-$(ver_cut 1)*
+ gui-libs/libadwaita[introspection]
+ media-libs/clutter:1.0[introspection]
+ media-libs/graphene[introspection]
+ gui-libs/gtk:4[introspection]
+ x11-libs/pango[introspection]
+ x11-themes/adwaita-icon-theme
+ >=x11-wm/mutter-3.32[introspection]
+"
+BDEPEND="
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="Installed extensions installed are initially disabled by default.
+To change the system default and enable some extensions, you can use
+# eselect gnome-shell-extensions
+
+Alternatively, to enable/disable extensions on a per-user basis,
+you can use the gnome-extensions-app (included with gnome-shell),
+https://extensions.gnome.org/ web interface, or modify the
+org.gnome.shell enabled-extensions gsettings key from the command
+line or a script."
+
+src_configure() {
+ local emesonargs=(
+ -Dextension_set=all
+ -Dclassic_mode=true
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ ebegin "Updating list of installed extensions"
+ eselect gnome-shell-extensions update
+ eend $?
+
+ readme.gentoo_print_elog
+}
diff --git a/gnome-extra/gnome-shell-frippery/Manifest b/gnome-extra/gnome-shell-frippery/Manifest
index d14d8259cec1..3b053df2a2a0 100644
--- a/gnome-extra/gnome-shell-frippery/Manifest
+++ b/gnome-extra/gnome-shell-frippery/Manifest
@@ -1,2 +1,2 @@
-DIST gnome-shell-frippery-48.0.tgz 79873 BLAKE2B d5c3dd98861d98c0651baee88ec35446bb6406ddb157e8dd711b0e47dbc4504d85ab5334758e4c067903ee7d27e0c9b60f70cbb629d6034e94f4ad5f2ad41ddf SHA512 46b07877f94554f0055f510bd2431079594965330a8a9629b0ec841df10c0f661b7bcc5cd05964b515522ea89b492ffa96dd53e6966517c1b2ad361ccd4097be
DIST gnome-shell-frippery-49.1.tgz 79078 BLAKE2B 9543d3526583c051af35e45ee0f6b17238bc56cd2755e91f1b07d336f9a434d30fcce0d21a189be218e73bb507b90876fab2daf248de06ed7ee712281ce0fd0f SHA512 46c9f96a682ac65f0308cf99d823614f245503ddb0328de6367d793066ecc877d69e1d6e5638b43b7202bbe5ef716d454a581360e113b745ff6031b482fb40f4
+DIST gnome-shell-frippery-50.0.tgz 79072 BLAKE2B 692f8006af818284695911de2b884a21aba0ae176ba9d7ea608ca8734fd22c557efae11d2d58e373f8ae010070fc796dfd9acb2e213941c74d052ff11bc52601 SHA512 0e38863b379814bba97599a66dd1897159e89bd3c34de5cdbd940f17fdac38dbcfdeb7b6828c69a7b7d183ef15d11e94c903d1af03de62df0e4f26703ae32e86
diff --git a/gnome-extra/gnome-shell-frippery/gnome-shell-frippery-48.0.ebuild b/gnome-extra/gnome-shell-frippery/gnome-shell-frippery-50.0.ebuild
index d1d1b03e7e46..ad48f5d14aef 100644
--- a/gnome-extra/gnome-shell-frippery/gnome-shell-frippery-48.0.ebuild
+++ b/gnome-extra/gnome-shell-frippery/gnome-shell-frippery-50.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
@@ -10,12 +10,12 @@ S="${WORKDIR}/.local/share/gnome-shell"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 x86"
+KEYWORDS="~amd64 ~x86"
RDEPEND="
app-eselect/eselect-gnome-shell-extensions
gnome-base/gnome-menus:3[introspection]
- >=gnome-base/gnome-shell-48
+ >=gnome-base/gnome-shell-46
"
src_install() {
diff --git a/gnome-extra/gucharmap/Manifest b/gnome-extra/gucharmap/Manifest
index a998156342bc..1b0d302d4f6c 100644
--- a/gnome-extra/gucharmap/Manifest
+++ b/gnome-extra/gucharmap/Manifest
@@ -1,3 +1 @@
-DIST gucharmap-16.0.1.tar.bz2 1503713 BLAKE2B e77b0d9e12d73f38b8e32c078bed3be2e7a1a3c3d61578e79f539209f7af0106dca1b8201610c512ccc100bb2a239f57c097dd96f78c1959d64e67e7cf47345e SHA512 9816e6fda5c7a8ce34af41c55121e1291e07033a636955d3501c4eb57e290ca5e9ef74d7e622e3be1c85140fc55d4d21012a84c2a3bf3effc195bdb38740241b
-DIST gucharmap-17.0.1.tar.xz 1392876 BLAKE2B 6cb33a8a9e37686c047a62cf4912b87fe7234e2532f23df9d5560fa90325f404104cd6a999578e3995f308da69c935005b910f4ab08a3d55885bcb66f92a752a SHA512 222e5073af5c0266b0defffe06cb5077fecd779428efcc1bd9626a724420ee51650fd5c8b1e67f1b5aa2b34d9bdb9b08139cb5726818af31cbc23635e244e3a6
DIST gucharmap-17.0.2.tar.xz 1396924 BLAKE2B 560880c08314849462d58a6391e936a098f53c49a10dc3cc3d54828b000873be1c869a04c3257145ec43931751ce096dbcbfe28efc3ce59a830c5fc30b6dba34 SHA512 6737ecae2714c234151725d6d3c364f42fc21050806e532a6597c53858f5bea6c3bd73c1865de6f7ba4566aa00d8eeb400c031b1716ec72ce0f1d2b7ccaeb062
diff --git a/gnome-extra/gucharmap/gucharmap-16.0.1.ebuild b/gnome-extra/gucharmap/gucharmap-16.0.1.ebuild
deleted file mode 100644
index 94f6fb941af8..000000000000
--- a/gnome-extra/gucharmap/gucharmap-16.0.1.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit flag-o-matic gnome2-utils meson python-any-r1 vala xdg
-
-DESCRIPTION="Unicode character map viewer and library"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/gucharmap"
-SRC_URI="https://gitlab.gnome.org/GNOME/${PN}/-/archive/${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-3+"
-SLOT="2.90"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
-
-UNICODE_VERSION="16.0.0"
-
-IUSE="+introspection gtk-doc vala"
-REQUIRED_USE="vala? ( introspection )"
-
-RDEPEND="media-libs/freetype:2
- >=dev-libs/glib-2.32:2
- >=x11-libs/gtk+-3.22:3[introspection?]
- >=dev-libs/libpcre2-10.21:=
- =app-i18n/unicode-data-${UNICODE_VERSION}*
- >=x11-libs/pango-1.42.4-r2[introspection?]
-
- !gnome-extra/gucharmap:0
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- app-text/docbook-xml-dtd:4.1.2
- dev-libs/glib:2
- dev-util/itstool
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- gtk-doc? ( >=dev-util/gtk-doc-1 )
- introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
- vala? ( $(vala_depend) )
-"
-
-PATCHES=(
- "${FILESDIR}"/14.0.1-install-user-help.patch
-)
-
-src_prepare() {
- default
- use vala && vala_setup
- xdg_environment_reset
-}
-
-src_configure() {
- # Upstream don't support LTO & error out on it in meson.build (bug #926250)
- filter-lto
-
- local emesonargs=(
- -Dcharmap=true
- -Ddbg=false # in 14.0.1 all this does is pass -ggdb3
- $(meson_use gtk-doc docs)
- $(meson_use introspection gir)
- -Dgtk3=true
- -Ducd_path="${EPREFIX}/usr/share/unicode-data"
- $(meson_use vala vapi)
- )
-
- meson_src_configure
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/gnome-extra/gucharmap/gucharmap-17.0.1.ebuild b/gnome-extra/gucharmap/gucharmap-17.0.1.ebuild
deleted file mode 100644
index 88a22084a8f0..000000000000
--- a/gnome-extra/gucharmap/gucharmap-17.0.1.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-
-inherit flag-o-matic gnome.org gnome2-utils meson python-any-r1 vala xdg
-
-DESCRIPTION="Unicode character map viewer and library"
-HOMEPAGE="https://gitlab.gnome.org/GNOME/gucharmap"
-
-LICENSE="GPL-3+"
-SLOT="2.90"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
-
-UNICODE_VERSION="17.0.0"
-
-IUSE="+introspection gtk-doc vala"
-REQUIRED_USE="vala? ( introspection )"
-
-RDEPEND="media-libs/freetype:2
- >=dev-libs/glib-2.32:2[introspection?]
- >=x11-libs/gtk+-3.22:3[introspection?]
- >=dev-libs/libpcre2-10.21:=
- =app-i18n/unicode-data-${UNICODE_VERSION}*
- >=x11-libs/pango-1.42.4-r2[introspection?]
- >=x11-libs/cairo-1.16
- >=app-accessibility/at-spi2-core-2.56.5:2[introspection?]
-
- !gnome-extra/gucharmap:0
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- app-text/docbook-xml-dtd:4.1.2
- dev-libs/glib:2
- dev-util/glib-utils
- dev-util/itstool
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- gtk-doc? ( >=dev-util/gtk-doc-1 )
- introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
- vala? ( $(vala_depend) )
-"
-
-PATCHES=(
- "${FILESDIR}"/14.0.1-install-user-help.patch
-)
-
-src_prepare() {
- default
- use vala && vala_setup
- xdg_environment_reset
-}
-
-src_configure() {
- # Upstream don't support LTO & error out on it in meson.build (bug #926250)
- filter-lto
-
- local emesonargs=(
- -Dcharmap=true
- -Ddbg=false # in 14.0.1 all this does is pass -ggdb3
- $(meson_use gtk-doc docs)
- $(meson_use introspection gir)
- -Dgtk3=true
- -Ducd_path="${EPREFIX}/usr/share/unicode-data"
- $(meson_use vala vapi)
- )
-
- meson_src_configure
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/gnome-extra/pch-session/Manifest b/gnome-extra/pch-session/Manifest
index cf143cb0a8fb..7fd259b7e56c 100644
--- a/gnome-extra/pch-session/Manifest
+++ b/gnome-extra/pch-session/Manifest
@@ -1,3 +1,2 @@
-DIST pch-session-48.0.tar.bz2 3611182 BLAKE2B b83403ea6bd18aef4f58204835fb9e1276ea3b97eac6a12c1a4658ff92a44e3f99cfcecebe11070aef97f7b6992a0156387b14f2c2321e31f0c55fb77460dd37 SHA512 62c0a71b3a47c011ed14c7b076a0d38917dcbf13862f1571da6004a61cef9c21503d3d46a8073109f06d9b5f6dc153c9fb7a72e945d60578201bbfbbfbd2be6c
-DIST pch-session-49.0.tar.bz2 3611391 BLAKE2B 56d4fd3b2cd10deb57953126fc58f642c151e8a873a63847a679992ddcd70bf84090fcccb404ee1ae4411f096a6a4258d042ad13e47304a60a4fcb745e2efa96 SHA512 4f24cd28da543e10da4f522aa6a08254b6a5d37dfb73409c8886d10e1da4d0a5df73718fcac415109d4b82b1506510ceb777f3232b2a6cd0eaeea85cc1c4e795
DIST pch-session-49.1.tar.bz2 3611440 BLAKE2B 1b8d1a93abe501602bc84a6944e9ead1e2467373da379ec44f268b9b08dbe2df96795a9b8e53ef1c248a37895a8ddb0b5a1a46e24e15910ca96569fdab3ceb00 SHA512 b997ccaa992865ece1d388a6145f76df879746269c97eabb1726c429f7184bb73c94b9f1288947a7ef6ce944440a8dfc57542c5e30f2ebf8835103bf172438fd
+DIST pch-session-50.0.tar.bz2 3611293 BLAKE2B 2a9a1687ac424a5ad176ecc4a4fb58a2a876dc2fe798009360b565dbfb7b0af3b5f0313184a54522e9363aa44f1f0cca1cb9c634fbef600b76fb7040a2822046 SHA512 af1277e08f8407383e6529ea076fc2d10722d3d6b20678bb935ea31f12903632c3fad54966721a42f1964b3632929d4b249c815417d16140f7e6c8535a83f25e
diff --git a/gnome-extra/pch-session/pch-session-48.0-r1.ebuild b/gnome-extra/pch-session/pch-session-48.0-r1.ebuild
deleted file mode 100644
index 37053627ff52..000000000000
--- a/gnome-extra/pch-session/pch-session-48.0-r1.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2019-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-inherit gnome2-utils
-
-DESCRIPTION="Unofficial gnome based session with different default settings and extensions"
-HOMEPAGE="https://gitlab.com/pachoramos/pch-session"
-SRC_URI="https://gitlab.com/pachoramos/${PN}/-/archive/${PV}/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="breeze qt6 wayland webp"
-
-RDEPEND="
- >=gnome-base/gnome-shell-${PV}
- >=gnome-extra/gnome-shell-extensions-${PV}
- >=gnome-extra/gnome-shell-extension-alphabetical-grid-42.0
- >=gnome-extra/gnome-shell-extension-appindicator-60
- >=gnome-extra/gnome-shell-extension-applications-overview-tooltip-23
- >=gnome-extra/gnome-shell-extension-bing-wallpaper-51
- >=gnome-extra/gnome-shell-extension-dash-to-panel-68
- >=gnome-extra/gnome-shell-extension-desktop-icons-ng-48.0.0
- >=gnome-extra/gnome-shell-extension-gsconnect-62
- >=gnome-extra/gnome-shell-extension-weather-oclock-49.0
- >=gnome-extra/gnome-tweaks-46
-
- >=gnome-extra/gnome-clocks-${PV}
- >=media-fonts/fonts-meta-2
- || (
- sys-apps/tuned[ppd]
- sys-power/power-profiles-daemon
- )
- x11-themes/papirus-icon-theme
-
- breeze? ( kde-plasma/breeze:6 )
- qt6? (
- x11-themes/QGnomePlatform
- wayland? ( x11-themes/QAdwaitaDecorations )
- )
- webp? ( gui-libs/gdk-pixbuf-loader-webp )
-"
-
-pkg_preinst() {
- gnome2_schemas_update
-}
-
-src_install() {
- insinto /
- doins -r usr/ etc/
- einstalldocs
-}
-
-pkg_postinst() {
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- gnome2_schemas_update
-}
diff --git a/gnome-extra/pch-session/pch-session-49.0.ebuild b/gnome-extra/pch-session/pch-session-50.0.ebuild
index a6018abeea09..ff36f674cd17 100644
--- a/gnome-extra/pch-session/pch-session-49.0.ebuild
+++ b/gnome-extra/pch-session/pch-session-50.0.ebuild
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
inherit gnome2-utils
DESCRIPTION="Unofficial gnome based session with different default settings and extensions"
@@ -14,20 +15,21 @@ KEYWORDS="~amd64"
IUSE="breeze qt6 wayland webp"
RDEPEND="
- >=gnome-base/gnome-shell-${PV}
- >=gnome-extra/gnome-shell-extensions-${PV}
- >=gnome-extra/gnome-shell-extension-alphabetical-grid-44.0
- >=gnome-extra/gnome-shell-extension-appindicator-64
- >=gnome-extra/gnome-shell-extension-applications-overview-tooltip-24
- >=gnome-extra/gnome-shell-extension-bing-wallpaper-52
- >=gnome-extra/gnome-shell-extension-dash-to-panel-73
- >=gnome-extra/gnome-shell-extension-desktop-icons-ng-50.0.0
- >=gnome-extra/gnome-shell-extension-gsconnect-71
- >=gnome-extra/gnome-shell-extension-weather-oclock-50.2
- >=gnome-extra/gnome-tweaks-${PV}
+ >=gnome-base/gnome-shell-50
+ >=gnome-extra/gnome-shell-extensions-50
+ >=gnome-extra/gnome-shell-extension-alphabetical-grid-46.0
+ >=gnome-extra/gnome-shell-extension-appindicator-65
+ >=gnome-extra/gnome-shell-extension-applications-overview-tooltip-24-r1
+ >=gnome-extra/gnome-shell-extension-bing-wallpaper-53
+ >=gnome-extra/gnome-shell-extension-dash-to-panel-74
+ >=gnome-extra/gnome-shell-extension-desktop-icons-ng-51
+ >=gnome-extra/gnome-shell-extension-gsconnect-72
+ >=gnome-extra/gnome-shell-extension-lockscreen-studio-1.1.2
+ >=gnome-extra/gnome-shell-extension-weather-oclock-50.5
+ >=gnome-extra/gnome-tweaks-49
- >=gnome-extra/gnome-clocks-${PV}
- >=media-fonts/fonts-meta-2
+ >=gnome-extra/gnome-clocks-50
+ >=media-fonts/fonts-meta-3
|| (
sys-apps/tuned[ppd]
sys-power/power-profiles-daemon
diff --git a/gui-apps/sddm-gentoo-config/metadata.xml b/gui-apps/sddm-gentoo-config/metadata.xml
index 42968e83424a..c37e6a9f5cb0 100644
--- a/gui-apps/sddm-gentoo-config/metadata.xml
+++ b/gui-apps/sddm-gentoo-config/metadata.xml
@@ -13,8 +13,9 @@
<bugs-to>http://bugs.gentoo.org</bugs-to>
</upstream>
<use>
- <flag name="kwin">KWin DisplayServer support (EXPERIMENTAL)</flag>
- <flag name="weston">Weston DisplayServer support (EXPERIMENTAL)</flag>
+ <flag name="custom-compositor">Custom Wayland DisplayServer support (manual setup) (EXPERIMENTAL)</flag>
+ <flag name="kwin">KWin Wayland DisplayServer support (EXPERIMENTAL)</flag>
+ <flag name="weston">Weston Wayland DisplayServer support (EXPERIMENTAL)</flag>
</use>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/gui-apps/sddm-gentoo-config/sddm-gentoo-config-0.ebuild b/gui-apps/sddm-gentoo-config/sddm-gentoo-config-0.ebuild
index c66e9d1b3c24..d76914066de2 100644
--- a/gui-apps/sddm-gentoo-config/sddm-gentoo-config-0.ebuild
+++ b/gui-apps/sddm-gentoo-config/sddm-gentoo-config-0.ebuild
@@ -1,7 +1,7 @@
# Copyright 2025-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=9
DESCRIPTION="Gentoo defaults for SDDM (Simple Desktop Display Manager)"
HOMEPAGE="https://wiki.gentoo.org/wiki/SDDM"
@@ -11,14 +11,14 @@ S=${WORKDIR}
LICENSE="public-domain"
SLOT="0"
KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
-IUSE="kwin systemd weston"
-REQUIRED_USE="?? ( kwin weston )"
+IUSE="custom-compositor kwin systemd weston"
+REQUIRED_USE="?? ( custom-compositor kwin weston )"
RDEPEND="
!<x11-misc/sddm-0.21.0_p20250818
kwin? ( kde-plasma/kwin:6 )
weston? ( dev-libs/weston[kiosk] )
- !kwin? ( !weston? ( x11-base/xorg-server ) )
+ !custom-compositor? ( !kwin? ( !weston? ( x11-base/xorg-server ) ) )
"
GEN2CONF=01gentoo.conf
@@ -27,7 +27,7 @@ src_prepare() {
touch "${T}"/${GEN2CONF} || die
_displayserver() {
- if use kwin || use weston; then
+ if use custom-compositor || use kwin || use weston; then
echo "wayland"
else
echo "x11"
@@ -41,8 +41,10 @@ src_prepare() {
has_version "kde-plasma/kwin[lock]" && cc+=( --no-lockscreen )
has_version "kde-plasma/kwin[shortcuts]" && cc+=( --no-global-shortcuts )
use systemd && cc+=( --locale1 )
- else
+ elif use weston; then
cc=( weston --shell=kiosk )
+ else
+ cc=( " # must be set by user" )
fi
echo "${cc[@]}"
}
@@ -52,14 +54,18 @@ src_prepare() {
# Remove qtvirtualkeyboard as InputMethod default
InputMethod=
- # Which display server should be used
+ # Which display server should be used (default: x11)
DisplayServer=$(_displayserver)
_EOF_
- if use kwin; then
- cat >> "${T}"/${GEN2CONF} <<- _EOF_ || die
+ if use custom-compositor || use kwin || use weston; then
+ if use kwin; then
+ cat >> "${T}"/${GEN2CONF} <<- _EOF_ || die
+ GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
+ _EOF_
+ fi
- GreeterEnvironment=QT_WAYLAND_SHELL_INTEGRATION=layer-shell
+ cat >> "${T}"/${GEN2CONF} <<- _EOF_ || die
[Wayland]
CompositorCommand=$(_compositorcommand)
diff --git a/gui-libs/libadwaita/Manifest b/gui-libs/libadwaita/Manifest
index bdd7ecff8a2c..a114b1e7d8ef 100644
--- a/gui-libs/libadwaita/Manifest
+++ b/gui-libs/libadwaita/Manifest
@@ -1,2 +1,3 @@
DIST libadwaita-1.8.7.tar.xz 2701780 BLAKE2B c5594ac44e6f98caa5e302690938679723e255e577ea1657483eaf0d1ad376891976c743ec3b6e5ee7ed2cf3356824779e38e4f8364195d119fe885f4780a505 SHA512 3d6e78d905a31d9d4e9b89fc2d2dec91d73e87585a694520c357482d682861e67a03a95aaaf29926c4b5ed7fc145a9938d46e10110cb834ff1d8394f5f11225e
DIST libadwaita-1.9.3.tar.xz 2894332 BLAKE2B 58332c93e78437784f39448a599dc8e313edfd3e0f0e277cf2373b5339241b3a102b6b401e8eeca0bb793db296c7f0d3bdcb9cc007c52439c9a986e83eb97413 SHA512 65f50ea784b0d7382eed4a56c2c88d74315641d2d5a37031747e4ad11845fd69418a636a37a7d9769b3529f63dec5506ada25ea1ebc591056791020528b45721
+DIST libadwaita-1.9.4.tar.xz 2894852 BLAKE2B beb24b4006736e52f0163fd9dcae5a3ad60277ee69fd9d12e69a8fd15d028046d649d269b1413008713e515560044b9de1deabb459faf6c8b6a0689c48e29500 SHA512 256544735967918bf162666b394d158abc658e5530e329cc430fb9c68acaf1f6c957268ce9ff04a66a90bd19c64f50bcfa8b97421e7a6fb12dbda89f86f9d1c4
diff --git a/gui-libs/libadwaita/libadwaita-1.9.4.ebuild b/gui-libs/libadwaita/libadwaita-1.9.4.ebuild
new file mode 100644
index 000000000000..02fe2d17819c
--- /dev/null
+++ b/gui-libs/libadwaita/libadwaita-1.9.4.ebuild
@@ -0,0 +1,73 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit gnome.org meson python-any-r1 vala virtualx xdg
+
+DESCRIPTION="Building blocks for modern GNOME applications"
+HOMEPAGE="https://gnome.pages.gitlab.gnome.org/libadwaita/ https://gitlab.gnome.org/GNOME/libadwaita"
+
+LICENSE="LGPL-2.1+"
+SLOT="1"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+
+IUSE="examples gtk-doc +introspection test +vala"
+REQUIRED_USE="
+ gtk-doc? ( introspection )
+ vala? ( introspection )
+"
+
+RDEPEND="
+ >=dev-libs/glib-2.84.0:2
+ >=gui-libs/gtk-4.21.1:4[introspection?]
+ dev-libs/appstream:=
+ dev-libs/fribidi
+ introspection? ( >=dev-libs/gobject-introspection-1.83.2:= )
+"
+DEPEND="${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ gtk-doc? ( >=dev-util/gi-docgen-2021.1 )
+ vala? ( $(vala_depend) )
+ dev-util/glib-utils
+ sys-devel/gettext
+ virtual/pkgconfig
+ dev-lang/sassc
+"
+
+src_prepare() {
+ default
+ use vala && vala_setup
+ xdg_environment_reset
+}
+
+src_configure() {
+ local emesonargs=(
+ # Never use gi-docgen subproject
+ --wrap-mode nofallback
+
+ -Dprofiling=false
+ $(meson_feature introspection)
+ $(meson_use vala vapi)
+ $(meson_use gtk-doc documentation)
+ $(meson_use test tests)
+ $(meson_use examples)
+ )
+ meson_src_configure
+}
+
+src_test() {
+ addwrite /dev/dri
+ virtx meson_src_test --timeout-multiplier 2
+}
+
+src_install() {
+ meson_src_install
+ if use gtk-doc; then
+ mkdir -p "${ED}"/usr/share/gtk-doc/html/ || die
+ mv "${ED}"/usr/share/doc/${PN}-${SLOT} "${ED}"/usr/share/gtk-doc/html/ || die
+ fi
+}
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-cube-panel-overlay.patch b/gui-wm/wayfire/files/wayfire-0.11.0-cube-panel-overlay.patch
new file mode 100644
index 000000000000..eec1fb12d7f1
--- /dev/null
+++ b/gui-wm/wayfire/files/wayfire-0.11.0-cube-panel-overlay.patch
@@ -0,0 +1,63 @@
+--- a/plugins/cube/cube.cpp
++++ b/plugins/cube/cube.cpp
+@@ -553,8 +553,10 @@
+ {
+ auto root = wf::get_core().scene();
+ auto children = root->get_children();
++ // Rotating panels belong to the desktop pass, but launchers and
++ // other overlay surfaces must remain above every cube/held-view node.
+ auto anchor = before ? before :
+- root->layers[(int)wf::scene::layer::OVERLAY];
++ root->layers[(int)wf::scene::layer::TOP];
+
+ std::vector<wf::scene::node_ptr> updated;
+ updated.reserve(children.size() + 1);
+@@ -572,7 +574,7 @@
+
+ if (!inserted)
+ {
+- // The built-in overlay layer is always present. Do not place
++ // The built-in top layer is always present. Do not place
+ // desktop content above screensavers or locks if that changes.
+ updated.push_back(node);
+ }
+--- a/src/output/workspace-stream.cpp
++++ b/src/output/workspace-stream.cpp
+@@ -49,8 +49,9 @@
+ for (auto& output_node : wf::collect_output_nodes(wf::get_core().scene(), self->output))
+ {
+ // A workspace contains desktop content only. In particular, cube/expo
+- // subpasses must never fold a screensaver or lock into the desktop.
+- if (output_node == self->output->node_for_layer(scene::layer::SCREENSAVER) ||
++ // subpasses must never fold a launcher, screensaver or lock into the desktop.
++ if (output_node == self->output->node_for_layer(scene::layer::OVERLAY) ||
++ output_node == self->output->node_for_layer(scene::layer::SCREENSAVER) ||
+ output_node == self->output->node_for_layer(scene::layer::LOCK) ||
+ output_node == self->output->node_for_layer(scene::layer::DWIDGET))
+ {
+@@ -70,7 +71,6 @@
+ !rotate_namespace.empty() &&
+ (rotate_namespace == "*" ||
+ view->get_app_id() == rotate_namespace);
+- const bool render_as_desktop_environment = is_de && !rotate_this_de;
+ const auto excluded_namespace =
+ self->exclude_desktop_environment;
+ const auto app_id = view ? view->get_app_id() : std::string{};
+@@ -97,13 +97,15 @@
+ // We push the damage as-is for desktop environment views, because they are visible on
+ // every workspace.
+ ch->gen_render_instances(this->instances,
+- render_as_desktop_environment ? push_damage : translate_and_push_damage, self->output);
++ is_de ? push_damage : translate_and_push_damage, self->output);
+
+ // Mark whether the instances were generated from a desktop environment view
+ num_generated = this->instances.size() - num_generated;
+ for (size_t i = 0; i < num_generated; i++)
+ {
+- is_desktop_environment.push_back(render_as_desktop_environment);
++ // Inclusion in a rotating texture does not make a panel
++ // workspace-local: keep it visible and damaged on every face.
++ is_desktop_environment.push_back(is_de);
+ }
+ }
+ }
diff --git a/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md b/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md
index 335592634e18..be0e7045ee2c 100644
--- a/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md
+++ b/gui-wm/wayfire/files/wayfire-0.11.0-cube-rendering-notes.md
@@ -28,3 +28,20 @@ No public API or ABI changes; the subslot remains `0/0.11.screensaver1`.
Oledsaver 1.0.13 already requests the correct screensaver layer and needs no
renderer changes for this patch. See `tests/render-regression/README.md` for
isolated, reproducible checks.
+
+## Revision 4: panels on empty workspaces and overlay ordering
+
+The cube and its held-window overlay now sit below the OVERLAY layer (anchored
+immediately above TOP). Native Wayland launchers such as Rofi remain above the
+transformed desktop. Overlay surfaces are excluded from workspace streams so
+they are not also composited into the cube background or textures.
+
+Rotating a desktop panel changes which pass includes it, not its workspace
+coordinates. Preserve the desktop-environment flag when scheduling and damaging
+its render instances. This replicates Waybar into every workspace texture,
+including empty neighboring faces, and updates each copy when the panel changes.
+
+No public API or ABI changes; the subslot remains `0/0.11.screensaver1`.
+The workspace-stream change lives in the compositor executable, so an existing
+Wayfire session needs a logout/login to use it; restarting Waybar alone cannot
+load the compositor fix.
diff --git a/gui-wm/wayfire/graphify-out/.graphify_labels.json b/gui-wm/wayfire/graphify-out/.graphify_labels.json
index 4ddd22536126..8a1d1fbd80d9 100644
--- a/gui-wm/wayfire/graphify-out/.graphify_labels.json
+++ b/gui-wm/wayfire/graphify-out/.graphify_labels.json
@@ -3,8 +3,8 @@
"1": "wayfire-session",
"2": "wayfire-session-2",
"3": "render_test_t",
- "4": "redraw-check.py",
- "5": "wayfire-0.11.0-cube-rendering-notes.md",
+ "4": "ipc",
+ "5": "Cube damage and layer ordering, revision 3",
"6": "map",
"7": "string",
"8": "README.md",
diff --git a/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig b/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig
index 311fb262e861..bafed4b1c927 100644
--- a/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig
+++ b/gui-wm/wayfire/graphify-out/.graphify_labels.json.sig
@@ -1 +1 @@
-{"0": "727e2dbd5ce75a9a", "1": "72d95ee36dfadcc3", "2": "0b11d95a89614162", "3": "dbeaea3fe899ab99", "4": "fd16686c6ba05bdd", "5": "09edd7b1150fd0e2", "6": "68858be981e3a1ba", "7": "7ffe7cfee8e7029d", "8": "b2f736171e800e0b", "9": "59c444c719911f24"} \ No newline at end of file
+{"0": "727e2dbd5ce75a9a", "1": "72d95ee36dfadcc3", "2": "0b11d95a89614162", "3": "dbeaea3fe899ab99", "4": "5080ac27e2ea3040", "5": "7adbef312254a6f6", "6": "68858be981e3a1ba", "7": "7ffe7cfee8e7029d", "8": "b2f736171e800e0b", "9": "59c444c719911f24"} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/2026-09-19/.graphify_labels.json b/gui-wm/wayfire/graphify-out/2026-09-19/.graphify_labels.json
new file mode 100644
index 000000000000..4ddd22536126
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/2026-09-19/.graphify_labels.json
@@ -0,0 +1,12 @@
+{
+ "0": "Transparent cube animation compatibility notes",
+ "1": "wayfire-session",
+ "2": "wayfire-session-2",
+ "3": "render_test_t",
+ "4": "redraw-check.py",
+ "5": "wayfire-0.11.0-cube-rendering-notes.md",
+ "6": "map",
+ "7": "string",
+ "8": "README.md",
+ "9": "run.py"
+}
diff --git a/gui-wm/wayfire/graphify-out/2026-09-19/GRAPH_REPORT.md b/gui-wm/wayfire/graphify-out/2026-09-19/GRAPH_REPORT.md
new file mode 100644
index 000000000000..5b654b65e6f0
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/2026-09-19/GRAPH_REPORT.md
@@ -0,0 +1,73 @@
+# Graph Report - wayfire (2026-09-18)
+
+## Corpus Check
+- 10 files · ~2,248 words
+- Verdict: corpus is large enough that graph structure adds value.
+
+## Summary
+- 49 nodes · 46 edges · 10 communities (4 shown, 5 thin omitted)
+- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
+- Token cost: 0 input · 0 output
+
+## Community Hubs (Navigation)
+- Transparent cube animation compatibility notes
+- wayfire-session
+- wayfire-session-2
+- render_test_t
+- redraw-check.py
+- wayfire-0.11.0-cube-rendering-notes.md
+- map
+- string
+- README.md
+
+## God Nodes (most connected - your core abstractions)
+1. `render_test_t` - 17 edges
+2. `Transparent cube animation compatibility notes` - 6 edges
+3. `ipc()` - 4 edges
+4. `solid()` - 2 edges
+5. `repo` - 1 edges
+6. `rectangle` - 1 edges
+7. `solids` - 1 edges
+8. `passes` - 1 edges
+9. `count_passes` - 1 edges
+10. `Goal` - 1 edges
+
+## Surprising Connections (you probably didn't know these)
+- `solid()` --calls--> `ipc()` [EXTRACTED]
+ tests/render-regression/redraw-check.py → tests/render-regression/ipc.py
+
+## Import Cycles
+- None detected.
+
+## Communities (10 total, 5 thin omitted)
+
+### Community 0 - "Transparent cube animation compatibility notes"
+Cohesion: 0.29
+Nodes (6): Avoid for now, Current Direction, Goal, Minimum target, Transparent cube animation compatibility notes, Working theory
+
+### Community 1 - "wayfire-session"
+Cohesion: 0.33
+Nodes (5): wayfire-session script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_SESSION_TYPE
+
+### Community 2 - "wayfire-session-2"
+Cohesion: 0.33
+Nodes (5): wayfire-session-2 script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_SESSION_TYPE
+
+### Community 3 - "render_test_t"
+Cohesion: 0.14
+Nodes (13): color_rect_view_t, connection_t, method_repository_t, plugin_interface_t, ref_ptr_t, render_pass_begin_signal, shared_ptr, render_test_t (+5 more)
+
+## Knowledge Gaps
+- **12 isolated node(s):** `repo`, `rectangle`, `solids`, `passes`, `count_passes` (+7 more)
+ These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 36 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
+- **5 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
+
+## Suggested Questions
+_Questions this graph is uniquely positioned to answer:_
+
+- **Why does `render_test_t` connect `render_test_t` to `map`, `string`?**
+ _High betweenness centrality (0.119) - this node is a cross-community bridge._
+- **What connects `repo`, `rectangle`, `solids` to the rest of the system?**
+ _12 weakly-connected nodes found - possible documentation gaps or missing edges._
+- **Should `render_test_t` be split into smaller, more focused modules?**
+ _Cohesion score 0.14285714285714285 - nodes in this community are weakly interconnected._ \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/2026-09-19/graph.json b/gui-wm/wayfire/graphify-out/2026-09-19/graph.json
new file mode 100644
index 000000000000..6f60b65920d6
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/2026-09-19/graph.json
@@ -0,0 +1,1142 @@
+{
+ "directed": false,
+ "multigraph": false,
+ "graph": {},
+ "nodes": [
+ {
+ "id": "tests_render_regression_render_test_render_test_t",
+ "label": "render_test_t",
+ "_callable": true,
+ "_callable_class": true,
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "render_test_t",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L19"
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_fini",
+ "label": ".fini()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": ".fini()",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L173"
+ },
+ {
+ "id": "tests_render_regression_ipc_ipc",
+ "label": "ipc()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "ipc()",
+ "source_file": "tests/render-regression/ipc.py",
+ "source_location": "L9"
+ },
+ {
+ "id": "tests_render_regression_redraw_check_check",
+ "label": "check()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "check()",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L7"
+ },
+ {
+ "id": "tests_render_regression_redraw_check_shot",
+ "label": "shot()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "shot()",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L11"
+ },
+ {
+ "id": "tests_render_regression_redraw_check_solid",
+ "label": "solid()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "solid()",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L14"
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_init",
+ "label": ".init()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 7,
+ "community_name": "string",
+ "file_type": "code",
+ "norm_label": ".init()",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L28"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes",
+ "label": "wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "page",
+ "norm_label": "wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now",
+ "label": "Avoid for now",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "avoid for now",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L65"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction",
+ "label": "Current Direction",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "current direction",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L55"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal",
+ "label": "Goal",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "goal",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L3"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target",
+ "label": "Minimum target",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "minimum target",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L27"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "label": "Transparent cube animation compatibility notes",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "transparent cube animation compatibility notes",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory",
+ "label": "Working theory",
+ "_origin": "ast",
+ "community": 0,
+ "community_name": "Transparent cube animation compatibility notes",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "working theory",
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L14"
+ },
+ {
+ "id": "files_wayfire_session",
+ "label": "wayfire-session",
+ "_origin": "ast",
+ "community": 1,
+ "community_name": "wayfire-session",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "file"
+ },
+ "norm_label": "wayfire-session",
+ "source_file": "files/wayfire-session",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_session__entry",
+ "label": "wayfire-session script",
+ "_origin": "ast",
+ "community": 1,
+ "community_name": "wayfire-session",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "bash_entrypoint"
+ },
+ "norm_label": "wayfire-session script",
+ "source_file": "files/wayfire-session",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_session_gdk_backend",
+ "label": "GDK_BACKEND",
+ "_origin": "ast",
+ "community": 1,
+ "community_name": "wayfire-session",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "gdk_backend",
+ "source_file": "files/wayfire-session",
+ "source_location": "L13"
+ },
+ {
+ "id": "files_wayfire_session_moz_enable_wayland",
+ "label": "MOZ_ENABLE_WAYLAND",
+ "_origin": "ast",
+ "community": 1,
+ "community_name": "wayfire-session",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "moz_enable_wayland",
+ "source_file": "files/wayfire-session",
+ "source_location": "L15"
+ },
+ {
+ "id": "files_wayfire_session_qt_qpa_platform",
+ "label": "QT_QPA_PLATFORM",
+ "_origin": "ast",
+ "community": 1,
+ "community_name": "wayfire-session",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "qt_qpa_platform",
+ "source_file": "files/wayfire-session",
+ "source_location": "L14"
+ },
+ {
+ "id": "files_wayfire_session_xdg_session_type",
+ "label": "XDG_SESSION_TYPE",
+ "_origin": "ast",
+ "community": 1,
+ "community_name": "wayfire-session",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "xdg_session_type",
+ "source_file": "files/wayfire-session",
+ "source_location": "L12"
+ },
+ {
+ "id": "files_wayfire_session_2",
+ "label": "wayfire-session-2",
+ "_origin": "ast",
+ "community": 2,
+ "community_name": "wayfire-session-2",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "file"
+ },
+ "norm_label": "wayfire-session-2",
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_session_2__entry",
+ "label": "wayfire-session-2 script",
+ "_origin": "ast",
+ "community": 2,
+ "community_name": "wayfire-session-2",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "bash_entrypoint"
+ },
+ "norm_label": "wayfire-session-2 script",
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_session_2_gdk_backend",
+ "label": "GDK_BACKEND",
+ "_origin": "ast",
+ "community": 2,
+ "community_name": "wayfire-session-2",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "gdk_backend",
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L13"
+ },
+ {
+ "id": "files_wayfire_session_2_moz_enable_wayland",
+ "label": "MOZ_ENABLE_WAYLAND",
+ "_origin": "ast",
+ "community": 2,
+ "community_name": "wayfire-session-2",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "moz_enable_wayland",
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L15"
+ },
+ {
+ "id": "files_wayfire_session_2_qt_qpa_platform",
+ "label": "QT_QPA_PLATFORM",
+ "_origin": "ast",
+ "community": 2,
+ "community_name": "wayfire-session-2",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "qt_qpa_platform",
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L14"
+ },
+ {
+ "id": "files_wayfire_session_2_xdg_session_type",
+ "label": "XDG_SESSION_TYPE",
+ "_origin": "ast",
+ "community": 2,
+ "community_name": "wayfire-session-2",
+ "file_type": "code",
+ "metadata": {
+ "language": "bash",
+ "kind": "code"
+ },
+ "norm_label": "xdg_session_type",
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L12"
+ },
+ {
+ "id": "color_rect_view_t",
+ "label": "color_rect_view_t",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "color_rect_view_t",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "connection_t",
+ "label": "connection_t",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "connection_t",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "method_repository_t",
+ "label": "method_repository_t",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "method_repository_t",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "plugin_interface_t",
+ "label": "plugin_interface_t",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "plugin_interface_t",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "ref_ptr_t",
+ "label": "ref_ptr_t",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "ref_ptr_t",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "render_pass_begin_signal",
+ "label": "render_pass_begin_signal",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "render_pass_begin_signal",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "shared_ptr",
+ "label": "shared_ptr",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "shared_ptr",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_count_passes",
+ "label": "count_passes",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "count_passes",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L25"
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_passes",
+ "label": "passes",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "passes",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L24"
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_rectangle",
+ "label": "rectangle",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "rectangle",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L22"
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_repo",
+ "label": "repo",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "repo",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L21"
+ },
+ {
+ "id": "tests_render_regression_render_test_render_test_t_solids",
+ "label": "solids",
+ "_origin": "ast",
+ "community": 3,
+ "community_name": "render_test_t",
+ "file_type": "code",
+ "norm_label": "solids",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L23"
+ },
+ {
+ "id": "tests_render_regression_dynamic_check",
+ "label": "dynamic-check.py",
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "dynamic-check.py",
+ "source_file": "tests/render-regression/dynamic-check.py",
+ "source_location": "L1"
+ },
+ {
+ "id": "tests_render_regression_ipc",
+ "label": "ipc.py",
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "ipc.py",
+ "source_file": "tests/render-regression/ipc.py",
+ "source_location": "L1"
+ },
+ {
+ "id": "tests_render_regression_redraw_check",
+ "label": "redraw-check.py",
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "redraw-check.py",
+ "file_type": "code",
+ "norm_label": "redraw-check.py",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_0_11_0_cube_rendering_notes",
+ "label": "wayfire-0.11.0-cube-rendering-notes.md",
+ "_origin": "ast",
+ "community": 5,
+ "community_name": "wayfire-0.11.0-cube-rendering-notes.md",
+ "file_type": "document",
+ "node_kind": "page",
+ "norm_label": "wayfire-0.11.0-cube-rendering-notes.md",
+ "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
+ "source_location": "L1"
+ },
+ {
+ "id": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3",
+ "label": "Cube damage and layer ordering, revision 3",
+ "_origin": "ast",
+ "community": 5,
+ "community_name": "wayfire-0.11.0-cube-rendering-notes.md",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "cube damage and layer ordering, revision 3",
+ "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
+ "source_location": "L1"
+ },
+ {
+ "id": "map",
+ "label": "map",
+ "_origin": "ast",
+ "community": 6,
+ "community_name": "map",
+ "file_type": "code",
+ "norm_label": "map",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "tests_render_regression_render_test",
+ "label": "render-test.cpp",
+ "_origin": "ast",
+ "community": 6,
+ "community_name": "map",
+ "file_type": "code",
+ "norm_label": "render-test.cpp",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L1"
+ },
+ {
+ "id": "string",
+ "label": "string",
+ "_origin": "ast",
+ "community": 7,
+ "community_name": "string",
+ "file_type": "code",
+ "norm_label": "string",
+ "source_file": "",
+ "source_location": ""
+ },
+ {
+ "id": "tests_render_regression_readme",
+ "label": "README.md",
+ "_origin": "ast",
+ "community": 8,
+ "community_name": "README.md",
+ "file_type": "document",
+ "node_kind": "page",
+ "norm_label": "readme.md",
+ "source_file": "tests/render-regression/README.md",
+ "source_location": "L1"
+ },
+ {
+ "id": "tests_render_regression_readme_cube_repaint_and_stacking_regressions",
+ "label": "Cube repaint and stacking regressions",
+ "_origin": "ast",
+ "community": 8,
+ "community_name": "README.md",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "cube repaint and stacking regressions",
+ "source_file": "tests/render-regression/README.md",
+ "source_location": "L1"
+ },
+ {
+ "id": "tests_render_regression_run",
+ "label": "run.py",
+ "_origin": "ast",
+ "community": 9,
+ "community_name": "run.py",
+ "file_type": "code",
+ "norm_label": "run.py",
+ "source_file": "tests/render-regression/run.py",
+ "source_location": "L1"
+ }
+ ],
+ "links": [
+ {
+ "source": "tests_render_regression_redraw_check_solid",
+ "target": "tests_render_regression_ipc_ipc",
+ "relation": "calls",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "call",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L16",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t_init",
+ "target": "string",
+ "relation": "calls",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "call",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L33",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_repo",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L21",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_rectangle",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L22",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_solids",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L23",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_passes",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L24",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_count_passes",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L25",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "ref_ptr_t",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L21",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "map",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L23",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "connection_t",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "field",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L25",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "method_repository_t",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "generic_arg",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L21",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "color_rect_view_t",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "generic_arg",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L23",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "shared_ptr",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "generic_arg",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L23",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "string",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "generic_arg",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L23",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "render_pass_begin_signal",
+ "relation": "references",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "generic_arg",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L25",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_dynamic_check",
+ "target": "tests_render_regression_ipc_ipc",
+ "relation": "imports",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/dynamic-check.py",
+ "source_location": "L3",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_redraw_check",
+ "target": "tests_render_regression_ipc_ipc",
+ "relation": "imports",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L4",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test",
+ "target": "map",
+ "relation": "imports",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L10",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_dynamic_check",
+ "target": "tests_render_regression_ipc",
+ "relation": "imports_from",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/dynamic-check.py",
+ "source_location": "L3",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_redraw_check",
+ "target": "tests_render_regression_ipc",
+ "relation": "imports_from",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L4",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_10_1_transparent_cube_animation_notes",
+ "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L1",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L14",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L27",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L3",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L55",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes",
+ "target": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md",
+ "source_location": "L65",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_0_11_0_cube_rendering_notes",
+ "target": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
+ "source_location": "L1",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session",
+ "target": "files_wayfire_session__entry",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session",
+ "source_location": "L1",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session_2",
+ "target": "files_wayfire_session_2__entry",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L1",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_ipc",
+ "target": "tests_render_regression_ipc_ipc",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/ipc.py",
+ "source_location": "L9",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_readme",
+ "target": "tests_render_regression_readme_cube_repaint_and_stacking_regressions",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/README.md",
+ "source_location": "L1",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_redraw_check",
+ "target": "tests_render_regression_redraw_check_shot",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L11",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_redraw_check",
+ "target": "tests_render_regression_redraw_check_solid",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L14",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_redraw_check",
+ "target": "tests_render_regression_redraw_check_check",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/redraw-check.py",
+ "source_location": "L7",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test",
+ "target": "tests_render_regression_render_test_render_test_t",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L19",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session",
+ "target": "files_wayfire_session_xdg_session_type",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session",
+ "source_location": "L12",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session",
+ "target": "files_wayfire_session_gdk_backend",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session",
+ "source_location": "L13",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session",
+ "target": "files_wayfire_session_qt_qpa_platform",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session",
+ "source_location": "L14",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session",
+ "target": "files_wayfire_session_moz_enable_wayland",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session",
+ "source_location": "L15",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session_2",
+ "target": "files_wayfire_session_2_xdg_session_type",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L12",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session_2",
+ "target": "files_wayfire_session_2_gdk_backend",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L13",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session_2",
+ "target": "files_wayfire_session_2_qt_qpa_platform",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L14",
+ "weight": 1.0
+ },
+ {
+ "source": "files_wayfire_session_2",
+ "target": "files_wayfire_session_2_moz_enable_wayland",
+ "relation": "defines",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-session-2",
+ "source_location": "L15",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "plugin_interface_t",
+ "relation": "inherits",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L19",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_fini",
+ "relation": "method",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L173",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_render_test_render_test_t",
+ "target": "tests_render_regression_render_test_render_test_t_init",
+ "relation": "method",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/render-test.cpp",
+ "source_location": "L28",
+ "weight": 1.0
+ }
+ ],
+ "hyperedges": []
+} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/2026-09-19/manifest.json b/gui-wm/wayfire/graphify-out/2026-09-19/manifest.json
new file mode 100644
index 000000000000..1ada7cfe4e41
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/2026-09-19/manifest.json
@@ -0,0 +1,62 @@
+{
+ "files/wayfire-session": {
+ "mtime": 1653360147.3630395,
+ "seen": 1789770744.5676844,
+ "ast_hash": "b3aeec97b74efdb33552772c7f04b00f",
+ "semantic_hash": ""
+ },
+ "files/wayfire-session-2": {
+ "mtime": 1780641764.4558036,
+ "seen": 1789770744.5676875,
+ "ast_hash": "0b8e4dd2101110c3e6a3688b8b035251",
+ "semantic_hash": ""
+ },
+ "files/wayfire-0.10.1-transparent-cube-animation-notes.md": {
+ "mtime": 1780715444.271489,
+ "seen": 1789770744.567689,
+ "ast_hash": "437c539443e80b8f7c072aff6a0bd371",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/dynamic-check.py": {
+ "mtime": 1789784619.219585,
+ "seen": 1789784690.570067,
+ "ast_hash": "1b3143cc22694a5289171a62ee61f44c",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/ipc.py": {
+ "mtime": 1789784619.219585,
+ "seen": 1789784690.5700681,
+ "ast_hash": "8a410f0a1e6a7eff9bcf877d82a80f44",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/redraw-check.py": {
+ "mtime": 1789784619.219585,
+ "seen": 1789784690.5700693,
+ "ast_hash": "92a042b34d3c55bbc945d0b4d6afa84e",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/render-test.cpp": {
+ "mtime": 1789784619.219585,
+ "seen": 1789784690.5700703,
+ "ast_hash": "a27de53b1c4dce0e7aa04e5ca235c224",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/run.py": {
+ "mtime": 1789784668.6247869,
+ "seen": 1789784690.5700707,
+ "ast_hash": "d1b8580bf9e8fe8ad3a2ae34fc5b4acb",
+ "semantic_hash": ""
+ },
+ "files/wayfire-0.11.0-cube-rendering-notes.md": {
+ "mtime": 1789784668.6247869,
+ "seen": 1789784690.570073,
+ "ast_hash": "47ddd006aafc4d8b09b7d948e7a891ae",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/README.md": {
+ "mtime": 1789784668.6247869,
+ "seen": 1789784690.5700736,
+ "ast_hash": "a1d86d4b3b0617f2f94d97636e3640fd",
+ "semantic_hash": ""
+ }
+} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md b/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md
index 5b654b65e6f0..5dfa53069bd4 100644
--- a/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md
+++ b/gui-wm/wayfire/graphify-out/GRAPH_REPORT.md
@@ -1,11 +1,11 @@
-# Graph Report - wayfire (2026-09-18)
+# Graph Report - wayfire (2026-09-19)
## Corpus Check
-- 10 files · ~2,248 words
+- 11 files · ~2,890 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
-- 49 nodes · 46 edges · 10 communities (4 shown, 5 thin omitted)
+- 54 nodes · 53 edges · 10 communities (5 shown, 4 thin omitted)
- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
- Token cost: 0 input · 0 output
@@ -14,32 +14,34 @@
- wayfire-session
- wayfire-session-2
- render_test_t
-- redraw-check.py
-- wayfire-0.11.0-cube-rendering-notes.md
+- ipc
+- Cube damage and layer ordering, revision 3
- map
- string
- README.md
## God Nodes (most connected - your core abstractions)
1. `render_test_t` - 17 edges
-2. `Transparent cube animation compatibility notes` - 6 edges
-3. `ipc()` - 4 edges
+2. `ipc()` - 6 edges
+3. `Transparent cube animation compatibility notes` - 6 edges
4. `solid()` - 2 edges
-5. `repo` - 1 edges
-6. `rectangle` - 1 edges
-7. `solids` - 1 edges
-8. `passes` - 1 edges
-9. `count_passes` - 1 edges
-10. `Goal` - 1 edges
+5. `solid()` - 2 edges
+6. `Cube damage and layer ordering, revision 3` - 2 edges
+7. `Panel replication and popup ordering in the desktop cube.` - 1 edges
+8. `repo` - 1 edges
+9. `rectangle` - 1 edges
+10. `solids` - 1 edges
## Surprising Connections (you probably didn't know these)
- `solid()` --calls--> `ipc()` [EXTRACTED]
+ tests/render-regression/layer-check.py → tests/render-regression/ipc.py
+- `solid()` --calls--> `ipc()` [EXTRACTED]
tests/render-regression/redraw-check.py → tests/render-regression/ipc.py
## Import Cycles
- None detected.
-## Communities (10 total, 5 thin omitted)
+## Communities (10 total, 4 thin omitted)
### Community 0 - "Transparent cube animation compatibility notes"
Cohesion: 0.29
@@ -57,16 +59,20 @@ Nodes (5): wayfire-session-2 script, GDK_BACKEND, MOZ_ENABLE_WAYLAND, QT_QPA_PLA
Cohesion: 0.14
Nodes (13): color_rect_view_t, connection_t, method_repository_t, plugin_interface_t, ref_ptr_t, render_pass_begin_signal, shared_ptr, render_test_t (+5 more)
+### Community 4 - "ipc"
+Cohesion: 0.27
+Nodes (4): ipc(), Panel replication and popup ordering in the desktop cube., solid(), solid()
+
## Knowledge Gaps
- **12 isolated node(s):** `repo`, `rectangle`, `solids`, `passes`, `count_passes` (+7 more)
- These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 36 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
-- **5 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
+ These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 38 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
+- **4 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `render_test_t` connect `render_test_t` to `map`, `string`?**
- _High betweenness centrality (0.119) - this node is a cross-community bridge._
+ _High betweenness centrality (0.097) - this node is a cross-community bridge._
- **What connects `repo`, `rectangle`, `solids` to the rest of the system?**
_12 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `render_test_t` be split into smaller, more focused modules?**
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/180da5328929e76670522b024f0ff14e744359b942ef36461d95777a915ac683.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/180da5328929e76670522b024f0ff14e744359b942ef36461d95777a915ac683.json
new file mode 100644
index 000000000000..1338bf869431
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/180da5328929e76670522b024f0ff14e744359b942ef36461d95777a915ac683.json
@@ -0,0 +1 @@
+{"nodes": [{"id": "$graphify-root$_tests_render_regression_run_py", "label": "run.py", "file_type": "code", "source_file": "tests/render-regression/run.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_render_regression_run_py", "target": "argparse", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "os", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "shlex", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "shutil", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "tempfile", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_run_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/run.py", "source_location": "L10", "weight": 1.0}], "raw_calls": []} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/1c97369709dde6633f6626a1b82403830a931ba16fcb0dd0fd2bc783f42eaade.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/1c97369709dde6633f6626a1b82403830a931ba16fcb0dd0fd2bc783f42eaade.json
new file mode 100644
index 000000000000..b760b5fbfd1a
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/1c97369709dde6633f6626a1b82403830a931ba16fcb0dd0fd2bc783f42eaade.json
@@ -0,0 +1 @@
+{"nodes": [{"id": "$graphify-root$_tests_render_regression_redraw_check_py", "label": "redraw-check.py", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_redraw_check_check", "label": "check()", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L7", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_redraw_check_shot", "label": "shot()", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L11", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_redraw_check_solid", "label": "solid()", "file_type": "code", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L14", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "pathlib", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "pil", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "ipc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "$graphify-root$_tests_render_regression_redraw_check_check", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "$graphify-root$_tests_render_regression_redraw_check_shot", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_redraw_check_py", "target": "$graphify-root$_tests_render_regression_redraw_check_solid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L14", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "convert", "is_member_call": true, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12", "receiver": null}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "BytesIO", "is_member_call": true, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12", "receiver": "io"}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "check_output", "is_member_call": true, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12", "receiver": "subprocess"}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_shot", "callee": "ENV", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "tests/render-regression/redraw-check.py", "source_location": "L12"}, {"caller_nid": "$graphify-root$_tests_render_regression_redraw_check_solid", "callee": "ipc", "is_member_call": false, "source_file": "tests/render-regression/redraw-check.py", "source_location": "L16", "receiver": null}]} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/2d8de9b8f2396b4cc50dc4cb14aa49ecafdeb94277d3415ab52d1d998c517802.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/2d8de9b8f2396b4cc50dc4cb14aa49ecafdeb94277d3415ab52d1d998c517802.json
new file mode 100644
index 000000000000..f707433ec68c
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/2d8de9b8f2396b4cc50dc4cb14aa49ecafdeb94277d3415ab52d1d998c517802.json
@@ -0,0 +1 @@
+{"nodes": [{"id": "$graphify-root$_tests_render_regression_layer_check_py", "label": "layer-check.py", "file_type": "code", "source_file": "tests/render-regression/layer-check.py", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_layer_check_check", "label": "check()", "file_type": "code", "source_file": "tests/render-regression/layer-check.py", "source_location": "L11", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_layer_check_solid", "label": "solid()", "file_type": "code", "source_file": "tests/render-regression/layer-check.py", "source_location": "L16", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_layer_check_rationale_1", "label": "Panel replication and popup ordering in the desktop cube.", "file_type": "rationale", "source_file": "tests/render-regression/layer-check.py", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "io", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "subprocess", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "time", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "pil", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "ipc", "relation": "imports_from", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "$graphify-root$_tests_render_regression_layer_check_check", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_py", "target": "$graphify-root$_tests_render_regression_layer_check_solid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_layer_check_rationale_1", "target": "$graphify-root$_tests_render_regression_layer_check_py", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "tests/render-regression/layer-check.py", "source_location": "L1", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_render_regression_layer_check_solid", "callee": "ipc", "is_member_call": false, "source_file": "tests/render-regression/layer-check.py", "source_location": "L19", "receiver": null}]} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/746da56d8640ac99a1661c96b44251fb4cf44762d42ef83a6f0c968f1f0afd78.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/746da56d8640ac99a1661c96b44251fb4cf44762d42ef83a6f0c968f1f0afd78.json
new file mode 100644
index 000000000000..0ae04525f193
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/746da56d8640ac99a1661c96b44251fb4cf44762d42ef83a6f0c968f1f0afd78.json
@@ -0,0 +1 @@
+{"nodes": [{"id": "$graphify-root$_tests_render_regression_readme_md", "label": "README.md", "file_type": "document", "node_kind": "page", "source_file": "tests/render-regression/README.md", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "Cube repaint and stacking regressions", "file_type": "document", "node_kind": "heading", "source_file": "tests/render-regression/README.md", "source_location": "L1"}], "edges": [{"source": "$graphify-root$_tests_render_regression_readme_md", "target": "$graphify-root$_tests_render_regression_readme_cube_repaint_and_stacking_regressions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/README.md", "source_location": "L1", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/bd26cdd8368afd1dc3250b9b618bf5b18ae82eefeca24060efde7ae53d2d8d37.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/bd26cdd8368afd1dc3250b9b618bf5b18ae82eefeca24060efde7ae53d2d8d37.json
new file mode 100644
index 000000000000..1009dd8d6744
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/bd26cdd8368afd1dc3250b9b618bf5b18ae82eefeca24060efde7ae53d2d8d37.json
@@ -0,0 +1 @@
+{"nodes": [{"id": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_md", "label": "wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "node_kind": "page", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L1"}, {"id": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "Cube damage and layer ordering, revision 3", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L1"}, {"id": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_revision_4_panels_on_empty_workspaces_and_overlay_ordering", "label": "Revision 4: panels on empty workspaces and overlay ordering", "file_type": "document", "node_kind": "heading", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L32"}], "edges": [{"source": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_md", "target": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "target": "$graphify-root$_files_wayfire_0_11_0_cube_rendering_notes_revision_4_panels_on_empty_workspaces_and_overlay_ordering", "relation": "contains", "confidence": "EXTRACTED", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "source_location": "L32", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/fec7fb7761be99ac30e14eb2962aeae78a1e6add90cb735d89c671b2f9b75ed6.json b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/fec7fb7761be99ac30e14eb2962aeae78a1e6add90cb735d89c671b2f9b75ed6.json
new file mode 100644
index 000000000000..5e392057a8b8
--- /dev/null
+++ b/gui-wm/wayfire/graphify-out/cache/ast/v0.9.53-s2/fec7fb7761be99ac30e14eb2962aeae78a1e6add90cb735d89c671b2f9b75ed6.json
@@ -0,0 +1 @@
+{"nodes": [{"id": "$graphify-root$_tests_render_regression_render_test_cpp", "label": "render-test.cpp", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L1"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t", "label": "render_test_t", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L20", "_callable": true, "_callable_class": true}, {"id": "plugin_interface_t", "label": "plugin_interface_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "ref_ptr_t", "label": "ref_ptr_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "method_repository_t", "label": "method_repository_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_repo", "label": "repo", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22"}, {"id": "shared_ptr", "label": "shared_ptr", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "color_rect_view_t", "label": "color_rect_view_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_rectangle", "label": "rectangle", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23"}, {"id": "map", "label": "map", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "string", "label": "string", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_solids", "label": "solids", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_passes", "label": "passes", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L25"}, {"id": "connection_t", "label": "connection_t", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "render_pass_begin_signal", "label": "render_pass_begin_signal", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/tests/render-regression/render-test.cpp"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_count_passes", "label": "count_passes", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L26"}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "label": ".init()", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L29", "_callable": true}, {"id": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "label": ".fini()", "file_type": "code", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L205", "_callable": true}], "edges": [{"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "core", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L1", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "output", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "output_layout", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L3", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "plugin", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L4", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "compositor_view", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L5", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "render_manager", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "wlroots_full", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "drm_fourcc", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "fstream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "map", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L10", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "scene_operations", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L11", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "scene_render", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L12", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "workspace_set", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L13", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "workspace_stream", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L14", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "opengl", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L15", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "shared_core_data", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L16", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "ipc_method_repository", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "cube_control_signal", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L18", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_cpp", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t", "relation": "contains", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "plugin_interface_t", "relation": "inherits", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L20", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "ref_ptr_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "method_repository_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_repo", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L22", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "shared_ptr", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "color_rect_view_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_rectangle", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L23", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "map", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "string", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "shared_ptr", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "color_rect_view_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_solids", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L24", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_passes", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L25", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "connection_t", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L26", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "render_pass_begin_signal", "relation": "references", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L26", "weight": 1.0, "context": "generic_arg"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_count_passes", "relation": "defines", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L26", "weight": 1.0, "context": "field"}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L29", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t", "target": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "relation": "method", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L205", "weight": 1.0}, {"source": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "target": "string", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "tests/render-regression/render-test.cpp", "source_location": "L34", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "connect", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L31", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L31", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L32", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L34", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L34", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_layout_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L35", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "allocate", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L37", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_pass_t::run", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L43", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::run_in_context", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L45", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::bind_render_buffer", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L46", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glGenRenderbuffers", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L47", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glBindRenderbuffer", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L47", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glRenderbufferStorage", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L48", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glFramebufferRenderbuffer", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L49", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gen_render_instances", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L52", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "scene", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L52", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L52", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "framebuffer_region_from_geometry_region", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L55", "receiver": "target", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_pass_t::run", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L57", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::run_in_context", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L58", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gles::bind_render_buffer", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L59", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glFramebufferRenderbuffer", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L60", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "glDeleteRenderbuffers", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L61", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "data", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L65", "receiver": "pixels", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wlr_texture_read_pixels", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L66", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_texture", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L66", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "pixman_region32_contains_point", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L71", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "to_pixman", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L71", "receiver": "allowed", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L77", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L79", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L79", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_all_views", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L81", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L81", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L82", "receiver": "candidate", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "toplevel_cast", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L82", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "toplevel_cast", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L83", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_current_workspace", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L84", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L84", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "emit", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L85", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L89", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L93", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L97", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "damage", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L101", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "scene::set_node_enabled", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L102", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_root_node", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L102", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L103", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "reset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L103", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L107", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L107", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "color_rect_view_t::create", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L109", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_color", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L111", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L112", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_border", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L113", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L116", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L118", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L118", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_relative_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L119", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "allocate", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L120", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "dimensions", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L120", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "make_shared<wf::workspace_stream_node_t>", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L122", "receiver": "std", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "gen_render_instances", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L127", "receiver": "node", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_pass_t::run", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L132", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "data", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L136", "receiver": "pixels", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wlr_texture_read_pixels", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L137", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_texture", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L137", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L142", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "front", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L144", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L144", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L144", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_layout_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L146", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "allocate", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L148", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "render_desktop", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L153", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "data", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L156", "receiver": "pixels", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "wlr_texture_read_pixels", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L157", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_texture", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L157", "receiver": "buffer", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "getenv", "is_member_call": false, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L158", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "put", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L160", "receiver": "f", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "put", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L160", "receiver": "f", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "put", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L160", "receiver": "f", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L163", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "front", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L167", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L167", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L167", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "color_rect_view_t::create", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L169", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_color", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L170", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L170", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_geometry", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L172", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L172", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "damage", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L178", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "scene::set_node_enabled", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L179", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_root_node", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L179", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L180", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "reset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L180", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L184", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L187", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "find_output", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L188", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L188", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "front", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L189", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L189", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L189", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L190", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "has_member", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L192", "receiver": "data", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "emit", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L193", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "is_plugin_active", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L194", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "register_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L198", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_outputs", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L200", "receiver": null, "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "get_core", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L200", "receiver": "wf", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_init", "callee": "set_inhibited", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L201", "receiver": "output", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L207", "receiver": "solid", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L208", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L209", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L210", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L211", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "close", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L212", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "reset", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L212", "receiver": "rectangle", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L213", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L214", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L215", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L216", "receiver": "repo", "lang": "cpp"}, {"caller_nid": "$graphify-root$_tests_render_regression_render_test_render_test_t_fini", "callee": "unregister_method", "is_member_call": true, "source_file": "tests/render-regression/render-test.cpp", "source_location": "L217", "receiver": "repo", "lang": "cpp"}]} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/last_query_stamp b/gui-wm/wayfire/graphify-out/cache/last_query_stamp
index 150057b31449..302462e1ef37 100644
--- a/gui-wm/wayfire/graphify-out/cache/last_query_stamp
+++ b/gui-wm/wayfire/graphify-out/cache/last_query_stamp
@@ -1 +1 @@
-1789784946.0656278 \ No newline at end of file
+1789862986.9550083 \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/cache/stat-index.json b/gui-wm/wayfire/graphify-out/cache/stat-index.json
index 19691f6c98bb..a985219117cf 100644
--- a/gui-wm/wayfire/graphify-out/cache/stat-index.json
+++ b/gui-wm/wayfire/graphify-out/cache/stat-index.json
@@ -1 +1 @@
-{"files/wayfire-0.10.1-transparent-cube-animation-notes.md":{"size":3204,"mtime_ns":1780715444271488977,"indexed_at_ns":1786919041011725353,"word_count":454,"hashes":{"files/wayfire-0.10.1-transparent-cube-animation-notes.md":"f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad"}},"files/wayfire-session":{"size":540,"mtime_ns":1653360147363039545,"indexed_at_ns":1786919041011320613,"word_count":63,"hashes":{"files/wayfire-session":"e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3"}},"files/wayfire-session-2":{"size":871,"mtime_ns":1780641764455803701,"indexed_at_ns":1786919041011593443,"word_count":98,"hashes":{"files/wayfire-session-2":"656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef"}},"files/wayfire-0.11.0-cube-rendering-notes.md":{"size":1675,"mtime_ns":1789784668624786964,"indexed_at_ns":1789784690525126086,"word_count":235,"hashes":{"files/wayfire-0.11.0-cube-rendering-notes.md":"16b475fe1869b41ccaca5639bc87dfc15fe69c3ffe5edf9d9fd2b7e7b6985901"}},"tests/render-regression/README.md":{"size":1927,"mtime_ns":1789784668624786964,"indexed_at_ns":1789784690525259067,"word_count":268,"hashes":{"tests/render-regression/readme.md":"7c7bd637f54d282130e0eb0462a0d558e96532feae972902a0159f8240148bb0"}},"tests/render-regression/dynamic-check.py":{"size":895,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524069645,"word_count":38,"hashes":{"tests/render-regression/dynamic-check.py":"b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25"}},"tests/render-regression/ipc.py":{"size":904,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524257746,"word_count":80,"hashes":{"tests/render-regression/ipc.py":"05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc"}},"tests/render-regression/redraw-check.py":{"size":3094,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524395456,"word_count":158,"hashes":{"tests/render-regression/redraw-check.py":"c14d817ea53b36a9a95614c9a0f8afaab9b57168c25b4425d4fbbb7336c95a13"}},"tests/render-regression/render-test.cpp":{"size":9460,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524525376,"word_count":617,"hashes":{"tests/render-regression/render-test.cpp":"3043830d9822a41238110bbd2ec25f6ef2931793959d60403d4a33ce3aa5e684"}},"tests/render-regression/run.py":{"size":3136,"mtime_ns":1789784668624786964,"indexed_at_ns":1789784690524655216,"word_count":237,"hashes":{"tests/render-regression/run.py":"afd3dd0924bb0887d234a6470a4a582419a372ff02d515773236ee07980f3c86"}}} \ No newline at end of file
+{"files/wayfire-0.10.1-transparent-cube-animation-notes.md":{"size":3204,"mtime_ns":1780715444271488977,"indexed_at_ns":1786919041011725353,"word_count":454,"hashes":{"files/wayfire-0.10.1-transparent-cube-animation-notes.md":"f94d994c893c3549e0e32a67eed8bfde5b780f56890086c4daa8815d3dc0d4ad"}},"files/wayfire-session":{"size":540,"mtime_ns":1653360147363039545,"indexed_at_ns":1786919041011320613,"word_count":63,"hashes":{"files/wayfire-session":"e7aa91da4cf87f92e080fc64045b02641a5e02fe4f146744c6d14105840d38a3"}},"files/wayfire-session-2":{"size":871,"mtime_ns":1780641764455803701,"indexed_at_ns":1786919041011593443,"word_count":98,"hashes":{"files/wayfire-session-2":"656d91283bfb50cf8c84cfcefe5833d9ff9d753ce2ca9343a63d3710335a95ef"}},"files/wayfire-0.11.0-cube-rendering-notes.md":{"size":2611,"mtime_ns":1789863553646478085,"indexed_at_ns":1789863565882438444,"word_count":371,"hashes":{"files/wayfire-0.11.0-cube-rendering-notes.md":"bd26cdd8368afd1dc3250b9b618bf5b18ae82eefeca24060efde7ae53d2d8d37"}},"tests/render-regression/README.md":{"size":2726,"mtime_ns":1789863553646478085,"indexed_at_ns":1789863565882574004,"word_count":377,"hashes":{"tests/render-regression/readme.md":"746da56d8640ac99a1661c96b44251fb4cf44762d42ef83a6f0c968f1f0afd78"}},"tests/render-regression/dynamic-check.py":{"size":895,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524069645,"word_count":38,"hashes":{"tests/render-regression/dynamic-check.py":"b09805d473c41ea8845c8a1783d0cccc23e4c6a9e1cb3f1a8e5a7fdb0e559d25"}},"tests/render-regression/ipc.py":{"size":904,"mtime_ns":1789784619219584829,"indexed_at_ns":1789784690524257746,"word_count":80,"hashes":{"tests/render-regression/ipc.py":"05eafb6a3d31ffc3daa8668c07dd7a92234e8056dfbaf507b2d06c4c0ce29adc"}},"tests/render-regression/redraw-check.py":{"size":3337,"mtime_ns":1789863553646478085,"indexed_at_ns":1789863565881698263,"word_count":171,"hashes":{"tests/render-regression/redraw-check.py":"1c97369709dde6633f6626a1b82403830a931ba16fcb0dd0fd2bc783f42eaade"}},"tests/render-regression/render-test.cpp":{"size":11305,"mtime_ns":1789863426963622458,"indexed_at_ns":1789863565881862703,"word_count":739,"hashes":{"tests/render-regression/render-test.cpp":"fec7fb7761be99ac30e14eb2962aeae78a1e6add90cb735d89c671b2f9b75ed6"}},"tests/render-regression/run.py":{"size":3525,"mtime_ns":1789863426963622458,"indexed_at_ns":1789863565882013924,"word_count":268,"hashes":{"tests/render-regression/run.py":"180da5328929e76670522b024f0ff14e744359b942ef36461d95777a915ac683"}},"tests/render-regression/layer-check.py":{"size":2114,"mtime_ns":1789863426963622458,"indexed_at_ns":1789863565881545033,"word_count":231,"hashes":{"tests/render-regression/layer-check.py":"2d8de9b8f2396b4cc50dc4cb14aa49ecafdeb94277d3415ab52d1d998c517802"}}} \ No newline at end of file
diff --git a/gui-wm/wayfire/graphify-out/graph.html b/gui-wm/wayfire/graphify-out/graph.html
index 19f1f0504d68..68e1eceb81cd 100644
--- a/gui-wm/wayfire/graphify-out/graph.html
+++ b/gui-wm/wayfire/graphify-out/graph.html
@@ -63,12 +63,12 @@
</div>
<div id="legend"></div>
</div>
- <div id="stats">49 nodes &middot; 46 edges &middot; 10 communities</div>
+ <div id="stats">54 nodes &middot; 53 edges &middot; 10 communities</div>
</div>
<script>
-const RAW_NODES = [{"id": "tests_render_regression_render_test_render_test_t", "label": "render_test_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 40.0, "font": {"size": 12, "color": "#ffffff"}, "title": "render_test_t", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 17}, {"id": "tests_render_regression_render_test_render_test_t_fini", "label": ".fini()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": ".fini()", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_ipc_ipc", "label": "ipc()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "ipc()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/ipc.py", "file_type": "code", "degree": 4}, {"id": "tests_render_regression_redraw_check_check", "label": "check()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "check()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_redraw_check_shot", "label": "shot()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "shot()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_redraw_check_solid", "label": "solid()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "solid()", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_render_test_render_test_t_init", "label": ".init()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": ".init()", "community": 7, "community_name": "string", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 2}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes", "label": "wayfire-0.10.1-transparent-cube-animation-notes.md", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-0.10.1-transparent-cube-animation-notes.md", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "label": "Avoid for now", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Avoid for now", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "label": "Current Direction", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Current Direction", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "label": "Goal", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Goal", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "label": "Minimum target", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Minimum target", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "Transparent cube animation compatibility notes", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 20.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Transparent cube animation compatibility notes", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 6}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "Working theory", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Working theory", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_session", "label": "wayfire-session", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "wayfire-session", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 5}, {"id": "files_wayfire_session__entry", "label": "wayfire-session script", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-session script", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_gdk_backend", "label": "GDK_BACKEND", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "GDK_BACKEND", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "MOZ_ENABLE_WAYLAND", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "QT_QPA_PLATFORM", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_xdg_session_type", "label": "XDG_SESSION_TYPE", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "XDG_SESSION_TYPE", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2", "label": "wayfire-session-2", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "wayfire-session-2", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 5}, {"id": "files_wayfire_session_2__entry", "label": "wayfire-session-2 script", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-session-2 script", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_gdk_backend", "label": "GDK_BACKEND", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "GDK_BACKEND", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "MOZ_ENABLE_WAYLAND", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "QT_QPA_PLATFORM", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_xdg_session_type", "label": "XDG_SESSION_TYPE", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "XDG_SESSION_TYPE", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "color_rect_view_t", "label": "color_rect_view_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "color_rect_view_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "connection_t", "label": "connection_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "connection_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "method_repository_t", "label": "method_repository_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "method_repository_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "plugin_interface_t", "label": "plugin_interface_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "plugin_interface_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "ref_ptr_t", "label": "ref_ptr_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "ref_ptr_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "render_pass_begin_signal", "label": "render_pass_begin_signal", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "render_pass_begin_signal", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "shared_ptr", "label": "shared_ptr", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "shared_ptr", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_count_passes", "label": "count_passes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "count_passes", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_passes", "label": "passes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "passes", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_rectangle", "label": "rectangle", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "rectangle", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_repo", "label": "repo", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "repo", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_solids", "label": "solids", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "solids", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_dynamic_check", "label": "dynamic-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "dynamic-check.py", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/dynamic-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_ipc", "label": "ipc.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 15.3, "font": {"size": 12, "color": "#ffffff"}, "title": "ipc.py", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/ipc.py", "file_type": "code", "degree": 3}, {"id": "tests_render_regression_redraw_check", "label": "redraw-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "redraw-check.py", "community": 4, "community_name": "redraw-check.py", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 5}, {"id": "files_wayfire_0_11_0_cube_rendering_notes", "label": "wayfire-0.11.0-cube-rendering-notes.md", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-0.11.0-cube-rendering-notes.md", "community": 5, "community_name": "wayfire-0.11.0-cube-rendering-notes.md", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "Cube damage and layer ordering, revision 3", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Cube damage and layer ordering, revision 3", "community": 5, "community_name": "wayfire-0.11.0-cube-rendering-notes.md", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 1}, {"id": "map", "label": "map", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "map", "community": 6, "community_name": "map", "source_file": "", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_render_test", "label": "render-test.cpp", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "render-test.cpp", "community": 6, "community_name": "map", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 2}, {"id": "string", "label": "string", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "string", "community": 7, "community_name": "string", "source_file": "", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_readme", "label": "README.md", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "README.md", "community": 8, "community_name": "README.md", "source_file": "tests/render-regression/README.md", "file_type": "document", "degree": 1}, {"id": "tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "Cube repaint and stacking regressions", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Cube repaint and stacking regressions", "community": 8, "community_name": "README.md", "source_file": "tests/render-regression/README.md", "file_type": "document", "degree": 1}, {"id": "tests_render_regression_run", "label": "run.py", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "run.py", "community": 9, "community_name": "run.py", "source_file": "tests/render-regression/run.py", "file_type": "code", "degree": 0}];
-const RAW_EDGES = [{"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_repo", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_rectangle", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_solids", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_passes", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_count_passes", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "ref_ptr_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "map", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "connection_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "method_repository_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "color_rect_view_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "shared_ptr", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "string", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "render_pass_begin_signal", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "plugin_interface_t", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_fini", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_init", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_redraw_check_solid", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_dynamic_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_redraw_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_ipc", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_check", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_shot", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_solid", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t_init", "to": "string", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_xdg_session_type", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_gdk_backend", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_qt_qpa_platform", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_moz_enable_wayland", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_xdg_session_type", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_gdk_backend", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_qt_qpa_platform", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_moz_enable_wayland", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_dynamic_check", "to": "tests_render_regression_ipc", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc", "to": "tests_render_regression_redraw_check", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_11_0_cube_rendering_notes", "to": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "map", "to": "tests_render_regression_render_test", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_readme", "to": "tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}];
-const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Transparent cube animation compatibility notes", "count": 7}, {"cid": 1, "color": "#F28E2B", "label": "wayfire-session", "count": 6}, {"cid": 2, "color": "#E15759", "label": "wayfire-session-2", "count": 6}, {"cid": 3, "color": "#76B7B2", "label": "render_test_t", "count": 14}, {"cid": 4, "color": "#59A14F", "label": "redraw-check.py", "count": 7}, {"cid": 5, "color": "#EDC948", "label": "wayfire-0.11.0-cube-rendering-notes.md", "count": 2}, {"cid": 6, "color": "#B07AA1", "label": "map", "count": 2}, {"cid": 7, "color": "#FF9DA7", "label": "string", "count": 2}, {"cid": 8, "color": "#9C755F", "label": "README.md", "count": 2}, {"cid": 9, "color": "#BAB0AC", "label": "run.py", "count": 1}];
+const RAW_NODES = [{"id": "tests_render_regression_render_test_render_test_t", "label": "render_test_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 40.0, "font": {"size": 12, "color": "#ffffff"}, "title": "render_test_t", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 17}, {"id": "tests_render_regression_render_test_render_test_t_fini", "label": ".fini()", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": ".fini()", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_ipc_ipc", "label": "ipc()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 20.6, "font": {"size": 12, "color": "#ffffff"}, "title": "ipc()", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/ipc.py", "file_type": "code", "degree": 6}, {"id": "tests_render_regression_layer_check_check", "label": "check()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "check()", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/layer-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_layer_check_solid", "label": "solid()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "solid()", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/layer-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_redraw_check_check", "label": "check()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "check()", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_redraw_check_shot", "label": "shot()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "shot()", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_redraw_check_solid", "label": "solid()", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "solid()", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_render_test_render_test_t_init", "label": ".init()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": ".init()", "community": 7, "community_name": "string", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 2}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes", "label": "wayfire-0.10.1-transparent-cube-animation-notes.md", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-0.10.1-transparent-cube-animation-notes.md", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "label": "Avoid for now", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Avoid for now", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "label": "Current Direction", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Current Direction", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "label": "Goal", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Goal", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "label": "Minimum target", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Minimum target", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "Transparent cube animation compatibility notes", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 20.6, "font": {"size": 12, "color": "#ffffff"}, "title": "Transparent cube animation compatibility notes", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 6}, {"id": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "Working theory", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Working theory", "community": 0, "community_name": "Transparent cube animation compatibility notes", "source_file": "files/wayfire-0.10.1-transparent-cube-animation-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_session", "label": "wayfire-session", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "wayfire-session", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 5}, {"id": "files_wayfire_session__entry", "label": "wayfire-session script", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-session script", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_gdk_backend", "label": "GDK_BACKEND", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "GDK_BACKEND", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "MOZ_ENABLE_WAYLAND", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "QT_QPA_PLATFORM", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_xdg_session_type", "label": "XDG_SESSION_TYPE", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "XDG_SESSION_TYPE", "community": 1, "community_name": "wayfire-session", "source_file": "files/wayfire-session", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2", "label": "wayfire-session-2", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "wayfire-session-2", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 5}, {"id": "files_wayfire_session_2__entry", "label": "wayfire-session-2 script", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-session-2 script", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_gdk_backend", "label": "GDK_BACKEND", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "GDK_BACKEND", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_moz_enable_wayland", "label": "MOZ_ENABLE_WAYLAND", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "MOZ_ENABLE_WAYLAND", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_qt_qpa_platform", "label": "QT_QPA_PLATFORM", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "QT_QPA_PLATFORM", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "files_wayfire_session_2_xdg_session_type", "label": "XDG_SESSION_TYPE", "color": {"background": "#E15759", "border": "#E15759", "highlight": {"background": "#ffffff", "border": "#E15759"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "XDG_SESSION_TYPE", "community": 2, "community_name": "wayfire-session-2", "source_file": "files/wayfire-session-2", "file_type": "code", "degree": 1}, {"id": "color_rect_view_t", "label": "color_rect_view_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "color_rect_view_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "connection_t", "label": "connection_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "connection_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "method_repository_t", "label": "method_repository_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "method_repository_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "plugin_interface_t", "label": "plugin_interface_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "plugin_interface_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "ref_ptr_t", "label": "ref_ptr_t", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "ref_ptr_t", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "render_pass_begin_signal", "label": "render_pass_begin_signal", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "render_pass_begin_signal", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "shared_ptr", "label": "shared_ptr", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "shared_ptr", "community": 3, "community_name": "render_test_t", "source_file": "", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_count_passes", "label": "count_passes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "count_passes", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_passes", "label": "passes", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "passes", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_rectangle", "label": "rectangle", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "rectangle", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_repo", "label": "repo", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "repo", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_render_test_render_test_t_solids", "label": "solids", "color": {"background": "#76B7B2", "border": "#76B7B2", "highlight": {"background": "#ffffff", "border": "#76B7B2"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "solids", "community": 3, "community_name": "render_test_t", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 1}, {"id": "tests_render_regression_dynamic_check", "label": "dynamic-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "dynamic-check.py", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/dynamic-check.py", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_ipc", "label": "ipc.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 17.1, "font": {"size": 12, "color": "#ffffff"}, "title": "ipc.py", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/ipc.py", "file_type": "code", "degree": 4}, {"id": "tests_render_regression_layer_check", "label": "layer-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "layer-check.py", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/layer-check.py", "file_type": "code", "degree": 5}, {"id": "tests_render_regression_redraw_check", "label": "redraw-check.py", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 18.8, "font": {"size": 12, "color": "#ffffff"}, "title": "redraw-check.py", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/redraw-check.py", "file_type": "code", "degree": 5}, {"id": "tests_render_regression_layer_check_rationale_1", "label": "Panel replication and popup ordering in the desktop cube.", "color": {"background": "#59A14F", "border": "#59A14F", "highlight": {"background": "#ffffff", "border": "#59A14F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Panel replication and popup ordering in the desktop cube.", "community": 4, "community_name": "ipc", "source_file": "tests/render-regression/layer-check.py", "file_type": "rationale", "degree": 1}, {"id": "files_wayfire_0_11_0_cube_rendering_notes", "label": "wayfire-0.11.0-cube-rendering-notes.md", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "wayfire-0.11.0-cube-rendering-notes.md", "community": 5, "community_name": "Cube damage and layer ordering, revision 3", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 1}, {"id": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "Cube damage and layer ordering, revision 3", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "Cube damage and layer ordering, revision 3", "community": 5, "community_name": "Cube damage and layer ordering, revision 3", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 2}, {"id": "files_wayfire_0_11_0_cube_rendering_notes_revision_4_panels_on_empty_workspaces_and_overlay_ordering", "label": "Revision 4: panels on empty workspaces and overlay ordering", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Revision 4: panels on empty workspaces and overlay ordering", "community": 5, "community_name": "Cube damage and layer ordering, revision 3", "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md", "file_type": "document", "degree": 1}, {"id": "map", "label": "map", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "map", "community": 6, "community_name": "map", "source_file": "", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_render_test", "label": "render-test.cpp", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "render-test.cpp", "community": 6, "community_name": "map", "source_file": "tests/render-regression/render-test.cpp", "file_type": "code", "degree": 2}, {"id": "string", "label": "string", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 13.5, "font": {"size": 0, "color": "#ffffff"}, "title": "string", "community": 7, "community_name": "string", "source_file": "", "file_type": "code", "degree": 2}, {"id": "tests_render_regression_readme", "label": "README.md", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "README.md", "community": 8, "community_name": "README.md", "source_file": "tests/render-regression/README.md", "file_type": "document", "degree": 1}, {"id": "tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "Cube repaint and stacking regressions", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 11.8, "font": {"size": 0, "color": "#ffffff"}, "title": "Cube repaint and stacking regressions", "community": 8, "community_name": "README.md", "source_file": "tests/render-regression/README.md", "file_type": "document", "degree": 1}, {"id": "tests_render_regression_run", "label": "run.py", "color": {"background": "#BAB0AC", "border": "#BAB0AC", "highlight": {"background": "#ffffff", "border": "#BAB0AC"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "run.py", "community": 9, "community_name": "run.py", "source_file": "tests/render-regression/run.py", "file_type": "code", "degree": 0}];
+const RAW_EDGES = [{"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_repo", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_rectangle", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_solids", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_passes", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_count_passes", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "ref_ptr_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "map", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "connection_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "method_repository_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "color_rect_view_t", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "shared_ptr", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "string", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "render_pass_begin_signal", "label": "references", "title": "references [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "plugin_interface_t", "label": "inherits", "title": "inherits [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_fini", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t", "to": "tests_render_regression_render_test_render_test_t_init", "label": "method", "title": "method [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_layer_check_solid", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_redraw_check_solid", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_dynamic_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_layer_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_redraw_check", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc_ipc", "to": "tests_render_regression_ipc", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_layer_check_check", "to": "tests_render_regression_layer_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_layer_check_solid", "to": "tests_render_regression_layer_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_check", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_shot", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_redraw_check_solid", "to": "tests_render_regression_redraw_check", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_render_test_render_test_t_init", "to": "string", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_avoid_for_now", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_current_direction", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_goal", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_minimum_target", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_10_1_transparent_cube_animation_notes_transparent_cube_animation_compatibility_notes", "to": "files_wayfire_0_10_1_transparent_cube_animation_notes_working_theory", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_xdg_session_type", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_gdk_backend", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_qt_qpa_platform", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session", "to": "files_wayfire_session_moz_enable_wayland", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2__entry", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_xdg_session_type", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_gdk_backend", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_qt_qpa_platform", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_session_2", "to": "files_wayfire_session_2_moz_enable_wayland", "label": "defines", "title": "defines [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_dynamic_check", "to": "tests_render_regression_ipc", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc", "to": "tests_render_regression_layer_check", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_ipc", "to": "tests_render_regression_redraw_check", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_layer_check", "to": "tests_render_regression_layer_check_rationale_1", "label": "rationale_for", "title": "rationale_for [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_11_0_cube_rendering_notes", "to": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3", "to": "files_wayfire_0_11_0_cube_rendering_notes_revision_4_panels_on_empty_workspaces_and_overlay_ordering", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "map", "to": "tests_render_regression_render_test", "label": "imports", "title": "imports [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "tests_render_regression_readme", "to": "tests_render_regression_readme_cube_repaint_and_stacking_regressions", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}];
+const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Transparent cube animation compatibility notes", "count": 7}, {"cid": 1, "color": "#F28E2B", "label": "wayfire-session", "count": 6}, {"cid": 2, "color": "#E15759", "label": "wayfire-session-2", "count": 6}, {"cid": 3, "color": "#76B7B2", "label": "render_test_t", "count": 14}, {"cid": 4, "color": "#59A14F", "label": "ipc", "count": 11}, {"cid": 5, "color": "#EDC948", "label": "Cube damage and layer ordering, revision 3", "count": 3}, {"cid": 6, "color": "#B07AA1", "label": "map", "count": 2}, {"cid": 7, "color": "#FF9DA7", "label": "string", "count": 2}, {"cid": 8, "color": "#9C755F", "label": "README.md", "count": 2}, {"cid": 9, "color": "#BAB0AC", "label": "run.py", "count": 1}];
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
function esc(s) {
diff --git a/gui-wm/wayfire/graphify-out/graph.json b/gui-wm/wayfire/graphify-out/graph.json
index 6f60b65920d6..e2c45ddde4c5 100644
--- a/gui-wm/wayfire/graphify-out/graph.json
+++ b/gui-wm/wayfire/graphify-out/graph.json
@@ -14,7 +14,7 @@
"file_type": "code",
"norm_label": "render_test_t",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L19"
+ "source_location": "L20"
},
{
"id": "tests_render_regression_render_test_render_test_t_fini",
@@ -26,7 +26,7 @@
"file_type": "code",
"norm_label": ".fini()",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L173"
+ "source_location": "L205"
},
{
"id": "tests_render_regression_ipc_ipc",
@@ -34,19 +34,43 @@
"_callable": true,
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "ipc()",
"source_file": "tests/render-regression/ipc.py",
"source_location": "L9"
},
{
+ "id": "tests_render_regression_layer_check_check",
+ "label": "check()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "ipc",
+ "file_type": "code",
+ "norm_label": "check()",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L11"
+ },
+ {
+ "id": "tests_render_regression_layer_check_solid",
+ "label": "solid()",
+ "_callable": true,
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "ipc",
+ "file_type": "code",
+ "norm_label": "solid()",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L16"
+ },
+ {
"id": "tests_render_regression_redraw_check_check",
"label": "check()",
"_callable": true,
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "check()",
"source_file": "tests/render-regression/redraw-check.py",
@@ -58,7 +82,7 @@
"_callable": true,
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "shot()",
"source_file": "tests/render-regression/redraw-check.py",
@@ -70,7 +94,7 @@
"_callable": true,
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "solid()",
"source_file": "tests/render-regression/redraw-check.py",
@@ -86,7 +110,7 @@
"file_type": "code",
"norm_label": ".init()",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L28"
+ "source_location": "L29"
},
{
"id": "files_wayfire_0_10_1_transparent_cube_animation_notes",
@@ -438,7 +462,7 @@
"file_type": "code",
"norm_label": "count_passes",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25"
+ "source_location": "L26"
},
{
"id": "tests_render_regression_render_test_render_test_t_passes",
@@ -449,7 +473,7 @@
"file_type": "code",
"norm_label": "passes",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L24"
+ "source_location": "L25"
},
{
"id": "tests_render_regression_render_test_render_test_t_rectangle",
@@ -460,7 +484,7 @@
"file_type": "code",
"norm_label": "rectangle",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L22"
+ "source_location": "L23"
},
{
"id": "tests_render_regression_render_test_render_test_t_repo",
@@ -471,7 +495,7 @@
"file_type": "code",
"norm_label": "repo",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21"
+ "source_location": "L22"
},
{
"id": "tests_render_regression_render_test_render_test_t_solids",
@@ -482,14 +506,14 @@
"file_type": "code",
"norm_label": "solids",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23"
+ "source_location": "L24"
},
{
"id": "tests_render_regression_dynamic_check",
"label": "dynamic-check.py",
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "dynamic-check.py",
"source_file": "tests/render-regression/dynamic-check.py",
@@ -500,29 +524,51 @@
"label": "ipc.py",
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "ipc.py",
"source_file": "tests/render-regression/ipc.py",
"source_location": "L1"
},
{
+ "id": "tests_render_regression_layer_check",
+ "label": "layer-check.py",
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "ipc",
+ "file_type": "code",
+ "norm_label": "layer-check.py",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L1"
+ },
+ {
"id": "tests_render_regression_redraw_check",
"label": "redraw-check.py",
"_origin": "ast",
"community": 4,
- "community_name": "redraw-check.py",
+ "community_name": "ipc",
"file_type": "code",
"norm_label": "redraw-check.py",
"source_file": "tests/render-regression/redraw-check.py",
"source_location": "L1"
},
{
+ "id": "tests_render_regression_layer_check_rationale_1",
+ "label": "Panel replication and popup ordering in the desktop cube.",
+ "_origin": "ast",
+ "community": 4,
+ "community_name": "ipc",
+ "file_type": "rationale",
+ "norm_label": "panel replication and popup ordering in the desktop cube.",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L1"
+ },
+ {
"id": "files_wayfire_0_11_0_cube_rendering_notes",
"label": "wayfire-0.11.0-cube-rendering-notes.md",
"_origin": "ast",
"community": 5,
- "community_name": "wayfire-0.11.0-cube-rendering-notes.md",
+ "community_name": "Cube damage and layer ordering, revision 3",
"file_type": "document",
"node_kind": "page",
"norm_label": "wayfire-0.11.0-cube-rendering-notes.md",
@@ -534,7 +580,7 @@
"label": "Cube damage and layer ordering, revision 3",
"_origin": "ast",
"community": 5,
- "community_name": "wayfire-0.11.0-cube-rendering-notes.md",
+ "community_name": "Cube damage and layer ordering, revision 3",
"file_type": "document",
"node_kind": "heading",
"norm_label": "cube damage and layer ordering, revision 3",
@@ -542,6 +588,18 @@
"source_location": "L1"
},
{
+ "id": "files_wayfire_0_11_0_cube_rendering_notes_revision_4_panels_on_empty_workspaces_and_overlay_ordering",
+ "label": "Revision 4: panels on empty workspaces and overlay ordering",
+ "_origin": "ast",
+ "community": 5,
+ "community_name": "Cube damage and layer ordering, revision 3",
+ "file_type": "document",
+ "node_kind": "heading",
+ "norm_label": "revision 4: panels on empty workspaces and overlay ordering",
+ "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
+ "source_location": "L32"
+ },
+ {
"id": "map",
"label": "map",
"_origin": "ast",
@@ -612,6 +670,18 @@
],
"links": [
{
+ "source": "tests_render_regression_layer_check_solid",
+ "target": "tests_render_regression_ipc_ipc",
+ "relation": "calls",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "call",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L19",
+ "weight": 1.0
+ },
+ {
"source": "tests_render_regression_redraw_check_solid",
"target": "tests_render_regression_ipc_ipc",
"relation": "calls",
@@ -632,7 +702,7 @@
"confidence_score": 1.0,
"context": "call",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L33",
+ "source_location": "L34",
"weight": 1.0
},
{
@@ -644,7 +714,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21",
+ "source_location": "L22",
"weight": 1.0
},
{
@@ -656,7 +726,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L22",
+ "source_location": "L23",
"weight": 1.0
},
{
@@ -668,7 +738,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
+ "source_location": "L24",
"weight": 1.0
},
{
@@ -680,7 +750,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L24",
+ "source_location": "L25",
"weight": 1.0
},
{
@@ -692,7 +762,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25",
+ "source_location": "L26",
"weight": 1.0
},
{
@@ -704,7 +774,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21",
+ "source_location": "L22",
"weight": 1.0
},
{
@@ -716,7 +786,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
+ "source_location": "L24",
"weight": 1.0
},
{
@@ -728,7 +798,7 @@
"confidence_score": 1.0,
"context": "field",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25",
+ "source_location": "L26",
"weight": 1.0
},
{
@@ -740,7 +810,7 @@
"confidence_score": 1.0,
"context": "generic_arg",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L21",
+ "source_location": "L22",
"weight": 1.0
},
{
@@ -752,7 +822,7 @@
"confidence_score": 1.0,
"context": "generic_arg",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
+ "source_location": "L24",
"weight": 1.0
},
{
@@ -764,7 +834,7 @@
"confidence_score": 1.0,
"context": "generic_arg",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
+ "source_location": "L24",
"weight": 1.0
},
{
@@ -776,7 +846,7 @@
"confidence_score": 1.0,
"context": "generic_arg",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L23",
+ "source_location": "L24",
"weight": 1.0
},
{
@@ -788,7 +858,7 @@
"confidence_score": 1.0,
"context": "generic_arg",
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L25",
+ "source_location": "L26",
"weight": 1.0
},
{
@@ -804,6 +874,18 @@
"weight": 1.0
},
{
+ "source": "tests_render_regression_layer_check",
+ "target": "tests_render_regression_ipc_ipc",
+ "relation": "imports",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L7",
+ "weight": 1.0
+ },
+ {
"source": "tests_render_regression_redraw_check",
"target": "tests_render_regression_ipc_ipc",
"relation": "imports",
@@ -840,6 +922,18 @@
"weight": 1.0
},
{
+ "source": "tests_render_regression_layer_check",
+ "target": "tests_render_regression_ipc",
+ "relation": "imports_from",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "context": "import",
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L7",
+ "weight": 1.0
+ },
+ {
"source": "tests_render_regression_redraw_check",
"target": "tests_render_regression_ipc",
"relation": "imports_from",
@@ -929,6 +1023,17 @@
"weight": 1.0
},
{
+ "source": "files_wayfire_0_11_0_cube_rendering_notes_cube_damage_and_layer_ordering_revision_3",
+ "target": "files_wayfire_0_11_0_cube_rendering_notes_revision_4_panels_on_empty_workspaces_and_overlay_ordering",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "files/wayfire-0.11.0-cube-rendering-notes.md",
+ "source_location": "L32",
+ "weight": 1.0
+ },
+ {
"source": "files_wayfire_session",
"target": "files_wayfire_session__entry",
"relation": "contains",
@@ -962,6 +1067,28 @@
"weight": 1.0
},
{
+ "source": "tests_render_regression_layer_check",
+ "target": "tests_render_regression_layer_check_check",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L11",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_layer_check",
+ "target": "tests_render_regression_layer_check_solid",
+ "relation": "contains",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L16",
+ "weight": 1.0
+ },
+ {
"source": "tests_render_regression_readme",
"target": "tests_render_regression_readme_cube_repaint_and_stacking_regressions",
"relation": "contains",
@@ -1013,7 +1140,7 @@
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L19",
+ "source_location": "L20",
"weight": 1.0
},
{
@@ -1112,7 +1239,7 @@
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L19",
+ "source_location": "L20",
"weight": 1.0
},
{
@@ -1123,7 +1250,7 @@
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L173",
+ "source_location": "L205",
"weight": 1.0
},
{
@@ -1134,7 +1261,18 @@
"confidence": "EXTRACTED",
"confidence_score": 1.0,
"source_file": "tests/render-regression/render-test.cpp",
- "source_location": "L28",
+ "source_location": "L29",
+ "weight": 1.0
+ },
+ {
+ "source": "tests_render_regression_layer_check_rationale_1",
+ "target": "tests_render_regression_layer_check",
+ "relation": "rationale_for",
+ "_origin": "ast",
+ "confidence": "EXTRACTED",
+ "confidence_score": 1.0,
+ "source_file": "tests/render-regression/layer-check.py",
+ "source_location": "L1",
"weight": 1.0
}
],
diff --git a/gui-wm/wayfire/graphify-out/manifest.json b/gui-wm/wayfire/graphify-out/manifest.json
index 1ada7cfe4e41..21ea0710c005 100644
--- a/gui-wm/wayfire/graphify-out/manifest.json
+++ b/gui-wm/wayfire/graphify-out/manifest.json
@@ -30,33 +30,39 @@
"semantic_hash": ""
},
"tests/render-regression/redraw-check.py": {
- "mtime": 1789784619.219585,
- "seen": 1789784690.5700693,
- "ast_hash": "92a042b34d3c55bbc945d0b4d6afa84e",
+ "mtime": 1789863553.6464782,
+ "seen": 1789863565.9305708,
+ "ast_hash": "ea1a793584a49621422f734da2769b34",
"semantic_hash": ""
},
"tests/render-regression/render-test.cpp": {
- "mtime": 1789784619.219585,
- "seen": 1789784690.5700703,
- "ast_hash": "a27de53b1c4dce0e7aa04e5ca235c224",
+ "mtime": 1789863426.9636226,
+ "seen": 1789863565.9305716,
+ "ast_hash": "84c6a2a9160e43c8a484388abae74c8a",
"semantic_hash": ""
},
"tests/render-regression/run.py": {
- "mtime": 1789784668.6247869,
- "seen": 1789784690.5700707,
- "ast_hash": "d1b8580bf9e8fe8ad3a2ae34fc5b4acb",
+ "mtime": 1789863426.9636226,
+ "seen": 1789863565.9305723,
+ "ast_hash": "642df6f033630e95e20c2f8c9bbbaee5",
"semantic_hash": ""
},
"files/wayfire-0.11.0-cube-rendering-notes.md": {
- "mtime": 1789784668.6247869,
- "seen": 1789784690.570073,
- "ast_hash": "47ddd006aafc4d8b09b7d948e7a891ae",
+ "mtime": 1789863553.6464782,
+ "seen": 1789863565.9305742,
+ "ast_hash": "c36a6187b8efc2b903c40c8322fad284",
"semantic_hash": ""
},
"tests/render-regression/README.md": {
- "mtime": 1789784668.6247869,
- "seen": 1789784690.5700736,
- "ast_hash": "a1d86d4b3b0617f2f94d97636e3640fd",
+ "mtime": 1789863553.6464782,
+ "seen": 1789863565.930575,
+ "ast_hash": "680d033faaa44c0994e2c0cfe33e24a2",
+ "semantic_hash": ""
+ },
+ "tests/render-regression/layer-check.py": {
+ "mtime": 1789863426.9636226,
+ "seen": 1789863565.9305692,
+ "ast_hash": "6a07eb594e3fbbad1f296a639a31a613",
"semantic_hash": ""
}
} \ No newline at end of file
diff --git a/gui-wm/wayfire/tests/render-regression/README.md b/gui-wm/wayfire/tests/render-regression/README.md
index aa6a1422b688..4d3035f028b0 100644
--- a/gui-wm/wayfire/tests/render-regression/README.md
+++ b/gui-wm/wayfire/tests/render-regression/README.md
@@ -20,7 +20,7 @@ The tests cover:
- A settled cube schedules no continuous rendering on three static outputs.
- A partial repaint modifies only its requested pixels, including a negative
output position, scale 2, and a 90-degree output transform.
-- A real Wayland window held during cube rotation stays below screensaver and
+- A real Wayland window held during cube rotation stays below overlay, screensaver and
lock-layer surfaces. The lock test checks layer ordering, not lock protocol
authentication or security.
- Content changes, movement/resizing, removal and remapping update cached cube
@@ -35,3 +35,15 @@ failures without aborting, for before/after checks.
The fixture explicitly damages and disables synthetic rectangles on removal:
`color_rect_view_t::close()` emits an unmap signal but does not do the surface
damage/disable sequence that a real Wayland surface performs.
+
+Revision 4 adds panel and overlay regressions in `layer-check.py`. A top-layer
+panel included by `cube/rotate_layer_shell` must render on all three workspace
+textures, including empty neighboring workspaces. Overlay surfaces must cover
+all desktop content during cube rotation, with both fixed and rotating panels.
+On r3, a 100x20 panel rendered 2,000 pixels on its current workspace and zero
+on either neighbor; the overlay test exposed 173,249 desktop pixels. Revision
+4 renders 2,000 panel pixels on each workspace and zero pixels above overlays.
+
+To test a build before installation, pass `--wayfire /path/to/build/src/wayfire`
+and `--plugin-dir /path/to/build/plugins/cube`. The plugin path is appended
+after the temporary fixture directory and before the installed plugin directory.
diff --git a/gui-wm/wayfire/tests/render-regression/layer-check.py b/gui-wm/wayfire/tests/render-regression/layer-check.py
new file mode 100644
index 000000000000..8b1a3bb8214d
--- /dev/null
+++ b/gui-wm/wayfire/tests/render-regression/layer-check.py
@@ -0,0 +1,51 @@
+"""Panel replication and popup ordering in the desktop cube."""
+import io
+import subprocess
+import sys
+import time
+from PIL import Image
+from ipc import ipc, ENV
+
+baseline = '--baseline' in sys.argv
+
+def check(ok, label, value):
+ print(label, value, 'PASS' if ok else 'FAIL', flush=True)
+ if not baseline:
+ assert ok, (label, value)
+
+def solid(key, layer, color, box):
+ r, g, b, a = color
+ x, y, w, h = box
+ ipc('test/solid', dict(key=key, layer=layer, output='HEADLESS-1',
+ r=r, g=g, b=b, a=a, x=x, y=y, w=w, h=h))
+
+# A shared top-layer panel must appear on every face, including empty workspaces.
+ipc('wayfire/set-config-options', {'cube/rotate_layer_shell': '*'})
+solid('panel', 3, (0., 1., 1., 1.), (0, 0, 100, 20))
+try:
+ for x in range(3):
+ value = ipc('test/workspace-panel', {'output': 'HEADLESS-1', 'x': x, 'y': 0})['cyan']
+ check(value == 2000, f'Panel pixels on workspace {x}', value)
+finally:
+ ipc('test/solid', {'key': 'panel', 'close': True})
+ ipc('wayfire/set-config-options', {'cube/rotate_layer_shell': ''})
+
+# Overlay launchers stay above the transformed desktop, with or without a panel namespace.
+ipc('test/rectangle', {'show': True})
+solid('popup', 5, (1., 0., 1., 1.), (0, 0, 10000, 10000))
+try:
+ for namespace in ['', 'waybar']:
+ ipc('wayfire/set-config-options', {'cube/rotate_layer_shell': namespace})
+ ipc('test/cube', {'output': 'HEADLESS-1'})
+ time.sleep(1)
+ shot = Image.open(io.BytesIO(subprocess.check_output(
+ ['grim', '-o', 'HEADLESS-1', '-'], env=ENV))).convert('RGB')
+ leaks = sum(p != (255, 0, 255) for p in shot.get_flattened_data())
+ check(leaks == 0, f'Desktop pixels above overlay ({namespace or "fixed panels"})', leaks)
+ ipc('test/cube', {'output': 'HEADLESS-1', 'stop': True})
+ time.sleep(.5)
+finally:
+ ipc('test/rectangle', {'show': False})
+ ipc('test/solid', {'key': 'popup', 'close': True})
+ ipc('test/cube', {'output': 'HEADLESS-1', 'stop': True})
+ ipc('wayfire/set-config-options', {'cube/rotate_layer_shell': ''})
diff --git a/gui-wm/wayfire/tests/render-regression/redraw-check.py b/gui-wm/wayfire/tests/render-regression/redraw-check.py
index a3d3e5257fdb..5a1ca906346d 100644
--- a/gui-wm/wayfire/tests/render-regression/redraw-check.py
+++ b/gui-wm/wayfire/tests/render-regression/redraw-check.py
@@ -44,12 +44,17 @@ try:
view=views[0]
outputs={o['id']:o for o in ipc('window-rules/list-outputs')}
output=outputs[view['output-id']]['name']
- solid('saver',6,(1.,0.,1.,1.),(0,0,2000,2000),output)
+ solid('popup',5,(1.,0.,1.,1.),(0,0,2000,2000),output)
time.sleep(.2)
result=ipc('test/held',{'output':output});assert result['found'] and result['carried-out']
time.sleep(.2)
pixels=list(shot(output).get_flattened_data())
leaks=sum(p!=(255,0,255) for p in pixels)
+ check(leaks==0,'Held window above overlay pixels',leaks)
+ solid('saver',6,(1.,0.,1.,1.),(0,0,2000,2000),output)
+ time.sleep(.1)
+ pixels=list(shot(output).get_flattened_data())
+ leaks=sum(p!=(255,0,255) for p in pixels)
check(leaks==0,'Held window above screensaver pixels',leaks)
solid('lock',7,(0.,0.,1.,1.),(0,0,2000,2000),output)
time.sleep(.1)
@@ -58,6 +63,6 @@ try:
check(leaks==0,'Held window above lock pixels',leaks)
finally:
terminal.terminate();terminal.wait(timeout=5)
- for k in ['saver','lock']:ipc('test/solid',{'key':k,'close':True})
+ for k in ['popup','saver','lock']:ipc('test/solid',{'key':k,'close':True})
ipc('test/cube',{'output':output,'stop':True})
ipc('wayfire/set-config-options',{'cube/initial_animation':'350ms circle'})
diff --git a/gui-wm/wayfire/tests/render-regression/render-test.cpp b/gui-wm/wayfire/tests/render-regression/render-test.cpp
index ac2d9ccbce23..1b7744705bc3 100644
--- a/gui-wm/wayfire/tests/render-regression/render-test.cpp
+++ b/gui-wm/wayfire/tests/render-regression/render-test.cpp
@@ -11,6 +11,7 @@
#include <wayfire/scene-operations.hpp>
#include <wayfire/scene-render.hpp>
#include <wayfire/workspace-set.hpp>
+#include <wayfire/workspace-stream.hpp>
#include <wayfire/opengl.hpp>
#include <wayfire/plugins/common/shared-core-data.hpp>
#include <wayfire/plugins/ipc/ipc-method-repository.hpp>
@@ -95,7 +96,12 @@ class render_test_t : public wf::plugin_interface_t
auto& solid = solids[key];
if (data.has_member("close") && bool(data["close"]))
{
- if (solid) { solid->close(); solid.reset(); }
+ if (solid)
+ {
+ solid->damage();
+ wf::scene::set_node_enabled(solid->get_root_node(), false);
+ solid->close(); solid.reset();
+ }
return wf::json_t{};
}
auto output = wf::get_core().output_layout->find_output(std::string(data["output"]));
@@ -107,6 +113,32 @@ class render_test_t : public wf::plugin_interface_t
solid->set_border(0);
return wf::json_t{};
});
+ repo->register_method("test/workspace-panel", [] (wf::json_t data)
+ {
+ auto output = wf::get_core().output_layout->find_output(std::string(data["output"]));
+ auto g = output->get_relative_geometry();
+ wf::auxilliary_buffer_t buffer; buffer.allocate(wf::dimensions(g));
+ wf::render_target_t target{buffer}; target.geometry = g;
+ auto node = std::make_shared<wf::workspace_stream_node_t>(output,
+ wf::point_t{int(data["x"]), int(data["y"])});
+ node->include_desktop_environment = false;
+ node->background = wf::color_t{0, 0, 0, 0};
+ std::vector<wf::scene::render_instance_uptr> instances;
+ node->gen_render_instances(instances, [] (auto&) {}, output);
+ wf::render_pass_params_t params;
+ params.target = target; params.damage = g; params.instances = &instances;
+ params.background_color = {0, 0, 0, 0};
+ params.flags = wf::RPASS_CLEAR_BACKGROUND | wf::RPASS_NO_PRESENTATION;
+ wf::render_pass_t::run(params);
+ int w = g.width, h = g.height;
+ std::vector<uint32_t> pixels(w * h);
+ wlr_texture_read_pixels_options opts{};
+ opts.data = pixels.data(); opts.format = DRM_FORMAT_ABGR8888; opts.stride = w * 4;
+ wlr_texture_read_pixels(buffer.get_texture(), &opts);
+ int cyan = 0;
+ for (auto p : pixels) if ((p & 0x00ffffff) == 0x00ffff00) ++cyan;
+ wf::json_t result; result["cyan"] = cyan; return result;
+ });
repo->register_method("test/snapshot", [] (wf::json_t)
{
auto output = wf::get_core().output_layout->get_outputs().front();
@@ -180,6 +212,7 @@ class render_test_t : public wf::plugin_interface_t
if (rectangle) { rectangle->close(); rectangle.reset(); }
repo->unregister_method("test/rectangle");
repo->unregister_method("test/snapshot");
+ repo->unregister_method("test/workspace-panel");
repo->unregister_method("test/cube");
repo->unregister_method("test/inhibit");
}
diff --git a/gui-wm/wayfire/tests/render-regression/run.py b/gui-wm/wayfire/tests/render-regression/run.py
index a35f74553865..9332dde93dda 100644
--- a/gui-wm/wayfire/tests/render-regression/run.py
+++ b/gui-wm/wayfire/tests/render-regression/run.py
@@ -12,6 +12,8 @@ import time
parser = argparse.ArgumentParser()
parser.add_argument('--source', type=Path, required=True,
help='Prepared Wayfire source with the personal patches applied')
+parser.add_argument('--wayfire', default='wayfire', help='Compositor binary to test')
+parser.add_argument('--plugin-dir', type=Path, help='Directory of candidate plugins')
parser.add_argument('--baseline', action='store_true', help='Report failures without asserting')
args = parser.parse_args()
if os.geteuid() == 0:
@@ -32,12 +34,12 @@ for key in ['WAYLAND_DISPLAY', 'WAYFIRE_SOCKET', '_WAYFIRE_SOCKET', 'DISPLAY',
env.update(XDG_RUNTIME_DIR=str(runtime), WLR_BACKENDS='headless',
WLR_HEADLESS_OUTPUTS='3', WLR_RENDERER='gles2',
WLR_RENDER_DRM_DEVICE=env.get('WLR_RENDER_DRM_DEVICE', '/dev/dri/renderD128'),
- WAYFIRE_PLUGIN_PATH=str(runtime), WAYFIRE_PLUGIN_XML_PATH=str(runtime))
+ WAYFIRE_PLUGIN_PATH=str(runtime) + (':' + str(args.plugin_dir) if args.plugin_dir else ''), WAYFIRE_PLUGIN_XML_PATH=str(runtime))
config = runtime / 'wayfire.ini'
config.write_text('[core]\nplugins = ipc ipc-rules cube oledsaver-sampler render-test\n'
'xwayland = false\nvwidth = 3\nvheight = 1\n')
with (runtime / 'wayfire.log').open('w') as log:
- process = subprocess.Popen(['wayfire', '-c', str(config)], env=env, stdout=log, stderr=log)
+ process = subprocess.Popen([args.wayfire, '-c', str(config)], env=env, stdout=log, stderr=log)
try:
for _ in range(100):
if process.poll() is not None:
@@ -53,6 +55,8 @@ with (runtime / 'wayfire.log').open('w') as log:
raise RuntimeError('Timed out waiting for compositor')
time.sleep(.3)
subprocess.run(['python3', str(tests / 'dynamic-check.py')], env=env, check=True)
+ subprocess.run(['python3', str(tests / 'layer-check.py'),
+ *(['--baseline'] if args.baseline else [])], env=env, check=True)
subprocess.run(['python3', str(tests / 'redraw-check.py'),
*(['--baseline'] if args.baseline else [])], env=env, check=True)
finally:
diff --git a/gui-wm/wayfire/wayfire-0.11.0-r4.ebuild b/gui-wm/wayfire/wayfire-0.11.0-r4.ebuild
new file mode 100644
index 000000000000..4b35b92f3e25
--- /dev/null
+++ b/gui-wm/wayfire/wayfire-0.11.0-r4.ebuild
@@ -0,0 +1,171 @@
+# Copyright 2019-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit dot-a meson toolchain-funcs
+
+DESCRIPTION="compiz like 3D wayland compositor"
+HOMEPAGE="https://github.com/WayfireWM/wayfire"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/WayfireWM/${PN}.git"
+ SLOT="0/0.12"
+
+ IUSE="vulkan"
+
+ # vulkan support is experimental and uses a bundled fork of wlroots
+ # keep it only in the live ebuild for now
+ RDEPEND="vulkan? ( media-libs/vulkan-loader )"
+ DEPEND="vulkan? ( dev-util/vulkan-headers )"
+ COMMON_DEPEND="
+ !vulkan? (
+ gui-libs/wlroots:0.20[drm(+),libinput(+),x11-backend,X?]
+ )
+ vulkan? (
+ dev-libs/libliftoff
+ media-libs/lcms:2
+ media-libs/libdisplay-info:=
+ media-libs/mesa
+ sys-auth/seatd:=
+ x11-libs/libdrm
+ x11-libs/xcb-util-errors
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+ )
+ "
+else
+ SRC_URI="https://github.com/WayfireWM/${PN}/releases/download/v${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~riscv"
+ SLOT="0/$(ver_cut 1-2)"
+
+ COMMON_DEPEND="gui-libs/wlroots:0.20[drm(+),libinput(+),x11-backend,X?]"
+fi
+
+LICENSE="MIT"
+IUSE+=" X +dbus +gles3 nls openmp test"
+RESTRICT="!test? ( test )"
+
+# bundled wlroots has the following dependency string according to included headers.
+# wlroots[drm,gles2-renderer,libinput,x11-backend?,X?]
+# enable x11-backend with X and vice versa
+COMMON_DEPEND+="
+ dev-cpp/nlohmann_json
+ dev-libs/glib:2
+ dev-libs/libevdev
+ dev-libs/libinput:=
+ dev-libs/wayland
+ dev-libs/yyjson:=
+ >=dev-libs/wayland-protocols-1.12
+ gui-libs/wf-config:${SLOT}
+ media-libs/glm
+ media-libs/libglvnd
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ virtual/libudev:=
+ x11-libs/cairo
+ x11-libs/libxkbcommon
+ x11-libs/pango
+ x11-libs/pixman
+ dbus? ( sys-apps/dbus )
+ X? ( x11-libs/libxcb:= )
+"
+
+RDEPEND+="
+ ${COMMON_DEPEND}
+ x11-misc/xkeyboard-config
+"
+DEPEND+="
+ ${COMMON_DEPEND}
+ test? ( dev-cpp/doctest )
+"
+BDEPEND="
+ dev-util/wayland-scanner
+ virtual/pkgconfig
+ openmp? (
+ || (
+ sys-devel/gcc[openmp]
+ llvm-runtimes/clang-runtime[openmp]
+ )
+ )
+ nls? (
+ sys-devel/gettext
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-transparent-cube.patch
+ "${FILESDIR}"/${P}-rotate-layer-shell.patch
+ "${FILESDIR}"/${P}-screensaver-layer.patch
+ "${FILESDIR}"/${P}-desktop-sampling.patch
+ "${FILESDIR}"/${P}-cube-damage-stacking.patch
+ "${FILESDIR}"/${P}-cube-panel-overlay.patch
+)
+
+# SCREENSAVER changes scene layer indices. Rebuild plugins against the matching
+# ABI; wf-config above retains its upstream 0.11 subslot.
+SLOT="${SLOT}.screensaver1"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ local dbusrunsession=$(usev dbus dbus-run-session)
+ sed -e "s:@EPREFIX@:${EPREFIX}:g" -e "s:@DBUS_RUN_SESSION@:${dbusrunsession}:" \
+ "${FILESDIR}"/wayfire-session-2 > "${T}"/wayfire-session || die
+ sed -e "s:@EPREFIX@:${EPREFIX}:" \
+ "${FILESDIR}"/wayfire-session.desktop > "${T}"/wayfire-session.desktop || die
+}
+
+src_configure() {
+ lto-guarantee-fat
+
+ local emesonargs=(
+ $(meson_feature test tests)
+ $(meson_feature X xwayland)
+ $(meson_use gles3 enable_gles32)
+ $(meson_feature nls build_locales)
+ $(meson_use openmp enable_openmp)
+ -Duse_system_wfconfig=enabled
+ )
+
+ if [[ ${PV} == 9999 ]]; then
+ emesonargs+=(
+ $(meson_feature !vulkan use_system_wlroots)
+ $(meson_use vulkan vulkan_effects)
+ )
+ else
+ emesonargs+=(
+ -Duse_system_wlroots=enabled
+ -Dvulkan_effects=false
+ )
+ fi
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ dobin "${T}"/wayfire-session
+
+ insinto "/usr/share/wayland-sessions/"
+ insopts -m644
+ doins wayfire.desktop
+ doins "${T}"/wayfire-session.desktop
+
+ insinto "/usr/share/wayfire/"
+ doins wayfire.ini
+
+ insinto "/etc"
+ doins "${FILESDIR}"/wayfire.env
+
+ strip-lto-bytecode
+}
diff --git a/kde-frameworks/extra-cmake-modules/extra-cmake-modules-6.29.0.ebuild b/kde-frameworks/extra-cmake-modules/extra-cmake-modules-6.29.0.ebuild
index 52e08f84ca98..6bb0f766b82d 100644
--- a/kde-frameworks/extra-cmake-modules/extra-cmake-modules-6.29.0.ebuild
+++ b/kde-frameworks/extra-cmake-modules/extra-cmake-modules-6.29.0.ebuild
@@ -12,7 +12,7 @@ DESCRIPTION="Extra modules and scripts for CMake"
HOMEPAGE="https://invent.kde.org/frameworks/extra-cmake-modules"
LICENSE="BSD"
-KEYWORDS="~amd64 ~arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ~ppc64 ~riscv x86"
IUSE="doc test"
RESTRICT="!test? ( test )"
diff --git a/kde-misc/kdiff3/Manifest b/kde-misc/kdiff3/Manifest
index 56b53bca6b0f..e9008fb8f88c 100644
--- a/kde-misc/kdiff3/Manifest
+++ b/kde-misc/kdiff3/Manifest
@@ -1,2 +1 @@
-DIST kdiff3-1.12.4.tar.xz 1224576 BLAKE2B fe8020fd3ea1f559e2e00f49d92cc680f76b4d490310fc5838d4e32928ac812cf6469b4bac460e0c56e7ba494320911956d34289b837a2348b193a49b1f30ed5 SHA512 6ce32d11f218a712583ae7b07654958d88d3b0721052dfba0599d3130287442c64bdb411f0f1e6857d8ef5b07f89956eb9b0c484fb192402cdaec4a858ec3046
DIST kdiff3-1.12.6.tar.xz 1225308 BLAKE2B e525cd9a5615c2e58596a9e402528cabd4f327c3cf6518a5c064f35fee85559c1ed38018da646499709ff05d0151b2c974093e4c1f55e4433cf7ecd5c78896cf SHA512 67e079e0ec0670489374d65b9714fe3b1ac526bbb39deca9bf9b8a83cc81cc1aa50cf04b10cf37aaa84d972acad64ceb9f4ecf4f7a8a5d988fb65dc848e10f41
diff --git a/kde-misc/kdiff3/kdiff3-1.12.4.ebuild b/kde-misc/kdiff3/kdiff3-1.12.4.ebuild
deleted file mode 100644
index 0632353d2f52..000000000000
--- a/kde-misc/kdiff3/kdiff3-1.12.4.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-ECM_HANDBOOK="optional"
-KFMIN=6.9.0
-QTMIN=6.7.2
-inherit ecm kde.org xdg
-
-DESCRIPTION="Frontend to diff3 based on KDE Frameworks"
-HOMEPAGE="https://apps.kde.org/kdiff3/ https://userbase.kde.org/KDiff3"
-SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
-IUSE=""
-
-COMMON_DEPEND="
- >=dev-libs/icu-70.0:=
- >=dev-qt/qtbase-${QTMIN}:6[gui,widgets]
- >=kde-frameworks/kconfig-${KFMIN}:6
- >=kde-frameworks/kconfigwidgets-${KFMIN}:6
- >=kde-frameworks/kcoreaddons-${KFMIN}:6
- >=kde-frameworks/kcrash-${KFMIN}:6
- >=kde-frameworks/ki18n-${KFMIN}:6
- >=kde-frameworks/kio-${KFMIN}:6
- >=kde-frameworks/ktextwidgets-${KFMIN}:6
- >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
- >=kde-frameworks/kxmlgui-${KFMIN}:6
-"
-DEPEND="${COMMON_DEPEND}
- >=dev-libs/boost-1.82
-"
-RDEPEND="${COMMON_DEPEND}
- !${CATEGORY}/${PN}:5
- sys-apps/diffutils
-"
-
-# TODO: -DENABLE_GDBINDEX?
diff --git a/kde-plasma/powerdevil/files/powerdevil-6.7.5-solid-6.30-negative-percentage.patch b/kde-plasma/powerdevil/files/powerdevil-6.7.5-solid-6.30-negative-percentage.patch
new file mode 100644
index 000000000000..6c4e5ac55968
--- /dev/null
+++ b/kde-plasma/powerdevil/files/powerdevil-6.7.5-solid-6.30-negative-percentage.patch
@@ -0,0 +1,32 @@
+From 54f8a4a848fa02d06fefc5543f35224eef73670c Mon Sep 17 00:00:00 2001
+From: Matthias Kurz <m.kurz@irregular.at>
+Date: Wed, 19 Aug 2026 17:51:12 +0200
+Subject: [PATCH] Avoid low battery alerts for unknown percentages
+
+Peripheral batteries with an unavailable charge return a negative percentage. Exclude all non-positive values from low-battery notification handling so an unknown device cannot be mistaken for an empty one.
+
+(cherry picked from commit 78e99fd944a0da0d82b46d02251a8631f005f5ba)
+---
+ daemon/powerdevilcore.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/daemon/powerdevilcore.cpp b/daemon/powerdevilcore.cpp
+index 50d936c20..fabcc671d 100644
+--- a/daemon/powerdevilcore.cpp
++++ b/daemon/powerdevilcore.cpp
+@@ -521,9 +521,9 @@ bool Core::emitBatteryChargePercentNotification(int currentPercent, int previous
+ return false;
+ }
+
+- // if you leave the device out of reach or it has not been initialized yet
+- // it won't be "there" and report 0%, don't show anything in this case
+- if (!b->isPresent() || b->chargePercent() == 0) {
++ // If you leave the device out of reach or it has not been initialized yet,
++ // it won't be "there" and can report an empty or unknown percentage.
++ if (!b->isPresent() || b->chargePercent() <= 0) {
+ return false;
+ }
+
+--
+GitLab
+
diff --git a/kde-plasma/powerdevil/powerdevil-6.7.5.ebuild b/kde-plasma/powerdevil/powerdevil-6.7.5-r1.ebuild
index 28faa37a4adb..936fc1dfedee 100644
--- a/kde-plasma/powerdevil/powerdevil-6.7.5.ebuild
+++ b/kde-plasma/powerdevil/powerdevil-6.7.5-r1.ebuild
@@ -73,6 +73,10 @@ BDEPEND="
# -m 0755 to avoid suid with USE="-filecaps"
FILECAPS=( -m 0755 cap_wake_alarm=ep usr/libexec/org_kde_powerdevil )
+PATCHES=(
+ "${FILESDIR}/${P}-solid-6.30-negative-percentage.patch" # KDE-bug #525589
+)
+
src_configure() {
local mycmakeargs=(
$(cmake_use_find_package brightness-control DDCUtil)
diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-core/clang-common/Manifest
+++ b/llvm-core/clang-common/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/clang-common/clang-common-24.0.0_pre20260919.ebuild b/llvm-core/clang-common/clang-common-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..d37eeaebbf4a
--- /dev/null
+++ b/llvm-core/clang-common/clang-common-24.0.0_pre20260919.ebuild
@@ -0,0 +1,341 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common llvm.org multilib shell-completion
+
+DESCRIPTION="Common files shared between multiple slots of clang"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="
+ default-compiler-rt default-libcxx default-lld
+ bootstrap-prefix cet emacs hardened llvm-libunwind
+"
+
+PDEPEND="
+ default-compiler-rt? (
+ llvm-runtimes/clang-runtime:${LLVM_MAJOR}[compiler-rt]
+ llvm-libunwind? ( llvm-runtimes/libunwind[static-libs] )
+ !llvm-libunwind? ( sys-libs/libunwind[static-libs] )
+ )
+ !default-compiler-rt? ( sys-devel/gcc )
+ default-libcxx? ( >=llvm-runtimes/libcxx-${PV}[static-libs] )
+ !default-libcxx? ( sys-devel/gcc )
+ default-lld? ( >=llvm-core/lld-${PV} )
+ !default-lld? ( sys-devel/binutils )
+"
+# enforce flags on clang-runtime as well to aid transition
+PDEPEND+="
+ llvm-runtimes/clang-runtime[default-compiler-rt(-)?,default-libcxx(-)?,default-lld(-)?,llvm-libunwind(-)?]
+ emacs? ( >=app-editors/emacs-26.3:* )
+"
+IDEPEND="
+ !default-compiler-rt? ( sys-devel/gcc-config )
+ !default-libcxx? ( sys-devel/gcc-config )
+"
+BDEPEND="
+ emacs? ( >=app-editors/emacs-26.3:* )
+"
+
+LLVM_COMPONENTS=( clang/utils clang/tools/clang-format )
+llvm.org_set_globals
+
+SITEFILE="50clang-gentoo.el"
+
+pkg_pretend() {
+ [[ ${CLANG_IGNORE_DEFAULT_RUNTIMES} ]] && return
+
+ local flag missing_flags=()
+ for flag in default-{compiler-rt,libcxx,lld}; do
+ if ! use "${flag}" && has_version "llvm-core/clang[${flag}]"; then
+ missing_flags+=( "${flag}" )
+ fi
+ done
+
+ if [[ ${missing_flags[@]} ]]; then
+ eerror "It seems that you have the following flags set on llvm-core/clang:"
+ eerror
+ eerror " ${missing_flags[*]}"
+ eerror
+ eerror "The default runtimes are now set via flags on llvm-core/clang-common."
+ eerror "The build is being aborted to prevent breakage. Please either set"
+ eerror "the respective flags on this ebuild, e.g.:"
+ eerror
+ eerror " llvm-core/clang-common ${missing_flags[*]}"
+ eerror
+ eerror "or build with CLANG_IGNORE_DEFAULT_RUNTIMES=1."
+ die "Mismatched defaults detected between llvm-core/clang and llvm-core/clang-common"
+ fi
+}
+
+_doclang_cfg() {
+ local triple="${1}"
+
+ local tool
+ for tool in ${triple}-clang{,++}; do
+ newins - "${tool}.cfg" <<-EOF
+ # This configuration file is used by ${tool} driver.
+ @gentoo-common.cfg
+ @gentoo-common-ld.cfg
+ EOF
+ if [[ ${triple} == x86_64* ]]; then
+ cat >> "${ED}/etc/clang/${tool}.cfg" <<-EOF || die
+ @gentoo-cet.cfg
+ EOF
+ fi
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/${triple}-clang++.cfg" <<-EOF || die
+ -lc++abi
+ EOF
+ fi
+
+ newins - "${triple}-clang-cpp.cfg" <<-EOF
+ # This configuration file is used by the ${triple}-clang-cpp driver.
+ @gentoo-common.cfg
+ EOF
+ if [[ ${triple} == x86_64* ]]; then
+ cat >> "${ED}/etc/clang/${triple}-clang-cpp.cfg" <<-EOF || die
+ @gentoo-cet.cfg
+ EOF
+ fi
+
+ # Install symlinks for triples with other vendor strings since some
+ # programs insist on mangling the triple.
+ local vendor
+ for vendor in gentoo pc unknown; do
+ local vendor_triple="${triple%%-*}-${vendor}-${triple#*-*-}"
+ for tool in clang{,++,-cpp}; do
+ if [[ ! -f "${ED}/etc/clang/${vendor_triple}-${tool}.cfg" ]]; then
+ dosym "${triple}-${tool}.cfg" "/etc/clang/${vendor_triple}-${tool}.cfg"
+ fi
+ done
+ done
+}
+
+doclang_cfg() {
+ local triple="${1}"
+
+ _doclang_cfg ${triple}
+
+ # LLVM may have different arch names in some cases. For example in x86
+ # profiles the triple uses i686, but llvm will prefer i386 if invoked
+ # with "clang" on x86 or "clang -m32" on x86_64. The gentoo triple will
+ # be used if invoked through ${CHOST}-clang{,++,-cpp} though.
+ #
+ # To make sure the correct triples are installed,
+ # see Triple::getArchTypeName() in llvm/lib/TargetParser/Triple.cpp
+ # and compare with CHOST values in profiles.
+
+ local abi=${triple%%-*}
+ case ${abi} in
+ armv4l|armv4t|armv5tel|armv6j|armv7a)
+ _doclang_cfg ${triple/${abi}/arm}
+ ;;
+ i686)
+ _doclang_cfg ${triple/${abi}/i386}
+ ;;
+ sparc)
+ _doclang_cfg ${triple/${abi}/sparcel}
+ ;;
+ sparc64)
+ _doclang_cfg ${triple/${abi}/sparcv9}
+ ;;
+ esac
+}
+
+src_compile() {
+ default
+ use emacs && elisp-compile ../tools/clang-format/clang-format.el
+}
+
+src_install() {
+ newbashcomp bash-autocomplete.sh clang
+
+ insinto /etc/clang
+ newins - gentoo-runtimes.cfg <<-EOF
+ # This file is initially generated by llvm-runtimes/clang-runtime.
+ # It is used to control the default runtimes using by clang.
+
+ --rtlib=$(usex default-compiler-rt compiler-rt libgcc)
+ --unwindlib=$(usex default-compiler-rt libunwind libgcc)
+ --stdlib=$(usex default-libcxx libc++ libstdc++)
+ -fuse-ld=$(usex default-lld lld bfd)
+ EOF
+
+ newins - gentoo-gcc-install.cfg <<-EOF
+ # This file is maintained by gcc-config.
+ # It is used to specify the selected GCC installation.
+ EOF
+
+ newins - gentoo-common.cfg <<-EOF
+ # This file contains flags common to clang, clang++ and clang-cpp.
+ @gentoo-runtimes.cfg
+ @gentoo-gcc-install.cfg
+ @gentoo-hardened.cfg
+ # bug #870001
+ -include "${EPREFIX}/usr/include/gentoo/maybe-stddefs.h"
+ EOF
+
+ # clang-cpp does not like link args being passed to it when directly
+ # invoked, so use a separate configuration file.
+ newins - gentoo-common-ld.cfg <<-EOF
+ # This file contains flags common to clang and clang++
+ @gentoo-hardened-ld.cfg
+ EOF
+
+ # Baseline hardening (bug #851111)
+ newins - gentoo-hardened.cfg <<-EOF
+ # Some of these options are added unconditionally, regardless of
+ # USE=hardened, for parity with sys-devel/gcc.
+ -Xarch_host -fstack-clash-protection
+ -Xarch_host -fstack-protector-strong
+ -fPIE
+ -include "${EPREFIX}/usr/include/gentoo/fortify.h"
+ EOF
+
+ newins - gentoo-cet.cfg <<-EOF
+ -Xarch_host -fcf-protection=$(usex cet full none)
+ EOF
+
+ if use kernel_Darwin; then
+ newins - gentoo-hardened-ld.cfg <<-EOF
+ # There was -Wl,-z,relro here, but it's not supported on Mac
+ # TODO: investigate whether -bind_at_load or -read_only_stubs will do the job
+ EOF
+ else
+ newins - gentoo-hardened-ld.cfg <<-EOF
+ # Some of these options are added unconditionally, regardless of
+ # USE=hardened, for parity with sys-devel/gcc.
+ -Wl,-z,relro
+ -Wl,-z,now
+ EOF
+ fi
+
+ dodir /usr/include/gentoo
+
+ cat >> "${ED}/usr/include/gentoo/maybe-stddefs.h" <<-EOF || die
+ /* __has_include is an extension, but it's fine, because this is only
+ for Clang anyway. */
+ #if defined __has_include && __has_include (<stdc-predef.h>) && !defined(__GLIBC__)
+ # include <stdc-predef.h>
+ #endif
+ EOF
+
+ local fortify_level=$(usex hardened 3 2)
+ # We have to do this because glibc's headers warn if F_S is set
+ # without optimization and that would at the very least be very noisy
+ # during builds and at worst trigger many -Werror builds.
+ cat >> "${ED}/usr/include/gentoo/fortify.h" <<- EOF || die
+ #ifdef __clang__
+ # pragma clang system_header
+ #endif
+ #ifndef _FORTIFY_SOURCE
+ # if defined(__has_feature)
+ # define __GENTOO_HAS_FEATURE(x) __has_feature(x)
+ # else
+ # define __GENTOO_HAS_FEATURE(x) 0
+ # endif
+ #
+ # if !defined(__OPTIMIZE__) || __OPTIMIZE__ == 0
+ # elif !defined(__STDC_HOSTED__) || __STDC_HOSTED__ != 1
+ # elif defined(__SANITIZE_ADDRESS__)
+ # elif __GENTOO_HAS_FEATURE(address_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(hwaddress_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(memory_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(numerical_stability_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(realtime_sanitizer)
+ # elif __GENTOO_HAS_FEATURE(thread_sanitizer)
+ # elif defined(_GENTOO_NO_FORTIFY_SOURCE)
+ # else
+ # define _FORTIFY_SOURCE ${fortify_level}
+ # endif
+ #
+ # undef __GENTOO_HAS_FEATURE
+ #endif
+ EOF
+
+ # TODO: Maybe -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_FAST for
+ # non-hardened?
+ if use hardened ; then
+ cat >> "${ED}/etc/clang/gentoo-hardened.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ -Xarch_host -D_GLIBCXX_ASSERTIONS
+
+ # Analogue to GLIBCXX_ASSERTIONS
+ # https://libcxx.llvm.org/UsingLibcxx.html#assertions-mode
+ # https://libcxx.llvm.org/Hardening.html#using-hardened-mode
+ -Xarch_host -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE
+ EOF
+
+ cat >> "${ED}/etc/clang/gentoo-hardened-ld.cfg" <<-EOF || die
+ # Options below are conditional on USE=hardened.
+ EOF
+ fi
+
+ # We only install config files for supported ABIs because unprefixed tools
+ # might be used for crosscompilation where e.g. PIE may not be supported.
+ # See bug #912237 and bug #901247. Just ${CHOST} won't do due to bug #912685.
+ local abi
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ doclang_cfg "${abi_chost}"
+ done
+
+ if use kernel_Darwin; then
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ # Gentoo Prefix on Darwin
+ -Wl,-search_paths_first
+ EOF
+ if use bootstrap-prefix ; then
+ # bootstrap-prefix is only set during stage2 of bootstrapping
+ # Prefix, where EPREFIX is set to EPREFIX/tmp.
+ # Here we need to point it at the future lib dir of the stage3's
+ # EPREFIX.
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/../usr/lib
+ -Wl,-L,${EPREFIX}/../usr/lib
+ -isystem ${EPREFIX}/../usr/include
+ -stdlib++-isystem ${EPREFIX}/../usr/include/c++/v1
+ EOF
+ fi
+ # Using -Wl,-L instead of -L to trick compiler driver to put it
+ # after -isysroot's internal -L
+ cat >> "${ED}/etc/clang/gentoo-common.cfg" <<-EOF || die
+ -Wl,-rpath,${EPREFIX}/usr/lib
+ -Wl,-L,${EPREFIX}/usr/lib
+ -isystem ${EPREFIX}/usr/include
+ -stdlib++-isystem ${EPREFIX}/usr/include/c++/v1
+ -isysroot ${EPREFIX}/MacOSX.sdk
+ EOF
+ fi
+
+ if use emacs ; then
+ elisp-install clang ../tools/clang-format/clang-format.{el,elc}
+ elisp-make-site-file "${SITEFILE}" clang
+ fi
+}
+
+pkg_preinst() {
+ if has_version -b sys-devel/gcc-config && has_version sys-devel/gcc
+ then
+ local gcc_path=$(gcc-config --get-lib-path 2>/dev/null)
+ if [[ -n ${gcc_path} ]]; then
+ cat >> "${ED}/etc/clang/gentoo-gcc-install.cfg" <<-EOF
+ --gcc-install-dir="${gcc_path%%:*}"
+ EOF
+ fi
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/llvm-core/clang/Manifest b/llvm-core/clang/Manifest
index ce47bc46c609..a81e67b6fa5d 100644
--- a/llvm-core/clang/Manifest
+++ b/llvm-core/clang/Manifest
@@ -22,3 +22,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/clang/clang-24.0.0_pre20260919.ebuild b/llvm-core/clang/clang-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..6b6ecbdf3a84
--- /dev/null
+++ b/llvm-core/clang/clang-24.0.0_pre20260919.ebuild
@@ -0,0 +1,468 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake llvm.org multilib multilib-minimal
+inherit prefix python-single-r1 toolchain-funcs
+
+DESCRIPTION="C language family frontend for LLVM"
+HOMEPAGE="https://llvm.org/"
+
+# MSVCSetupApi.h: MIT
+# sorttable.js: MIT
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="+debug doc +extra ieee-long-double +pie +static-analyzer test xml"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
+ static-analyzer? ( dev-lang/perl:* )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ${DEPEND}
+ >=llvm-core/clang-common-${PV}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ test? ( ~llvm-core/lld-${PV} )
+ xml? ( virtual/pkgconfig )
+"
+PDEPEND="
+ llvm-runtimes/clang-runtime:${LLVM_MAJOR}
+ llvm-core/clang-toolchain-symlinks:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( clang clang-tools-extra cmake mlir/utils/pygments utils/docs )
+LLVM_TEST_COMPONENTS=( llvm/utils )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_cond_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+# Multilib notes:
+# 1. ABI_* flags control ABIs libclang* is built for only.
+# 2. clang is always capable of compiling code for all ABIs for enabled
+# target. However, you will need appropriate crt* files (installed
+# e.g. by sys-devel/gcc and sys-libs/glibc).
+# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
+# in the current profile (i.e. alike supported by sys-devel/gcc).
+#
+# Therefore: use llvm-core/clang[${MULTILIB_USEDEP}] only if you need
+# multilib clang* libraries (not runtime, not wrappers).
+
+src_prepare() {
+ # create extra parent dir for relative CLANG_RESOURCE_DIR access
+ mkdir -p x/y || die
+ BUILD_DIR=${WORKDIR}/x/y/clang
+
+ llvm.org_src_prepare
+
+ # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
+ eprefixify \
+ lib/Lex/InitHeaderSearch.cpp \
+ lib/Driver/ToolChains/Darwin.cpp || die
+
+ if ! use prefix-guest && [[ -n ${EPREFIX} ]]; then
+ sed -i "/LibDir.*Loader/s@return \"\/\"@return \"${EPREFIX}/\"@" lib/Driver/ToolChains/Linux.cpp || die
+ fi
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # meta-targets
+ clang-libraries|distribution)
+ continue
+ ;;
+ # tools
+ clang|clangd|clang-*)
+ ;;
+ # static libraries
+ clang*|findAllSymbols)
+ continue
+ ;;
+ # conditional to USE=doc
+ docs-clang-html|docs-clang-tools-html)
+ use doc || continue
+ ;;
+ # built only with tests
+ c-index-test)
+ continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # common stuff
+ clang-cmake-exports
+ clang-headers
+ clang-resource-headers
+ libclang-headers
+
+ aarch64-resource-headers
+ arm-common-resource-headers
+ arm-resource-headers
+ core-resource-headers
+ cuda-resource-headers
+ hexagon-resource-headers
+ hip-resource-headers
+ hlsl-resource-headers
+ mips-resource-headers
+ opencl-resource-headers
+ openmp-resource-headers
+ ppc-htm-resource-headers
+ ppc-resource-headers
+ riscv-resource-headers
+ spirv-resource-headers
+ systemz-resource-headers
+ utility-resource-headers
+ ve-resource-headers
+ webassembly-resource-headers
+ windows-resource-headers
+ x86-resource-headers
+
+ # libs
+ clang-cpp
+ libclang
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # common stuff
+ bash-autocomplete
+ libclang-python-bindings
+
+ # tools
+ clang
+ clang-format
+ clang-installapi
+ clang-linker-wrapper
+ clang-nvlink-wrapper
+ clang-offload-bundler
+ clang-refactor
+ clang-repl
+ clang-scan-deps
+ clang-ssaf-analyzer
+ clang-ssaf-format
+ clang-ssaf-linker
+ clang-ssaf-src-edit-merge
+ clang-sycl-linker
+ diagtool
+ hmaptool
+ offload-arch
+
+ # needed for cross-compiling Clang
+ clang-tblgen
+ )
+
+ if use extra; then
+ out+=(
+ # extra tools
+ clang-apply-replacements
+ clang-change-namespace
+ clang-doc
+ clang-include-cleaner
+ clang-include-fixer
+ clang-move
+ clang-query
+ clang-reorder-fields
+ clang-tidy
+ clang-tidy-headers
+ clangd
+ find-all-symbols
+ modularize
+ pp-trace
+ )
+
+ use kernel_Darwin && out+=( ClangdXPCLib )
+ fi
+
+ if llvm_are_manpages_built; then
+ out+=( docs-clang-man )
+ use extra && out+=( docs-clang-tools-man )
+ fi
+
+ if use doc; then
+ out+=( docs-clang-html )
+ use extra && out+=( docs-clang-tools-html )
+ fi
+
+ use static-analyzer && out+=(
+ clang-check
+ clang-extdef-mapping
+ scan-build
+ scan-build-py
+ scan-view
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DDEFAULT_SYSROOT=$(usex prefix-guest "" "${EPREFIX}")
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DLLVM_ROOT="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang/${LLVM_MAJOR}"
+ -DCLANG_CONFIG_FILE_USER_DIR="~/.config/clang"
+ # relative to bindir
+ -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ -DCLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ # these are not propagated reliably, so redefine them
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+
+ # libgomp support fails to find headers without explicit -I
+ # furthermore, it provides only syntax checking
+ -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
+
+ -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
+
+ -DCLANG_ENABLE_LIBXML2=$(usex xml)
+ -DCLANG_ENABLE_OBJC_REWRITER=ON
+ -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
+ # TODO: CLANG_ENABLE_HLSL?
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if ! use elibc_musl; then
+ mycmakeargs+=(
+ -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=$(usex ieee-long-double)
+ )
+ fi
+
+ use test && mycmakeargs+=(
+ -DLLVM_BUILD_TESTS=ON
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=ON
+ -DLLVM_ENABLE_SPHINX=ON
+ -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ if use extra; then
+ mycmakeargs+=(
+ -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
+ )
+ fi
+ fi
+ mycmakeargs+=(
+ -DCLANG_INCLUDE_DOCS=${build_docs}
+ )
+ fi
+ if multilib_native_use extra; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
+ -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
+ )
+ else
+ mycmakeargs+=(
+ -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
+ )
+ fi
+
+ if tc-is-cross-compiler; then
+ has_version -b llvm-core/clang:${LLVM_MAJOR} ||
+ die "llvm-core/clang:${LLVM_MAJOR} is required on the build host."
+ local tools_bin=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin
+ mycmakeargs+=(
+ -DLLVM_TOOLS_BINARY_DIR="${tools_bin}"
+ -DCLANG_TABLEGEN="${tools_bin}"/clang-tblgen
+ )
+ fi
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local test_targets=( check-clang )
+ if multilib_native_use extra; then
+ test_targets+=(
+ check-clang-tools
+ check-clangd
+ )
+ fi
+ cmake_build "${test_targets[@]}"
+}
+
+src_install() {
+ MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/clang/Config/config.h
+ )
+
+ multilib-minimal_src_install
+
+ # Move runtime headers to /usr/lib/clang, where they belong
+ mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
+ # move (remaining) wrapped headers back
+ if use extra; then
+ mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
+ fi
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+
+ # Apply CHOST and version suffix to clang tools
+ local clang_tools=( clang clang++ clang-cl clang-cpp )
+ local abi i
+
+ # cmake gives us:
+ # - clang-X
+ # - clang -> clang-X
+ # - clang++, clang-cl, clang-cpp -> clang
+ # we want to have:
+ # - clang-X
+ # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
+ # - clang, clang++, clang-cl, clang-cpp -> clang*-X
+ # also in CHOST variant
+ for i in "${clang_tools[@]:1}"; do
+ rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
+ dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
+ dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
+ done
+
+ # now create target symlinks for all supported ABIs
+ for abi in $(get_all_abis); do
+ local abi_chost=$(get_abi_CHOST "${abi}")
+ for i in "${clang_tools[@]}"; do
+ dosym "${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
+ dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
+ "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
+ done
+ done
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping & ABI mismatch checks
+ # (also drop the version suffix from runtime headers)
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/clang "${ED}"/usr/include/clangrt || die
+ if multilib_native_use extra; then
+ # don't wrap clang-tidy headers, the list is too long
+ # (they're fine for non-native ABI but enabling the targets is problematic)
+ mv "${ED}"/usr/include/clang-tidy "${T}/" || die
+ fi
+}
+
+multilib_src_install_all() {
+ python_fix_shebang "${ED}"
+ if use static-analyzer; then
+ python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
+ fi
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+ # match 'html' non-compression
+ use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
+ # +x for some reason; TODO: investigate
+ use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
+}
+
+pkg_postinst() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow update all
+ fi
+
+ elog "You can find additional utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
+ if use extra; then
+ elog "Some of them are vim integration scripts (with instructions inside)."
+ elog "The run-clang-tidy.py script requires the following additional package:"
+ elog " dev-python/pyyaml"
+ fi
+}
+
+pkg_postrm() {
+ if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
+ eselect compiler-shadow clean all
+ fi
+}
diff --git a/llvm-core/flang/Manifest b/llvm-core/flang/Manifest
index ba9aebd9dd57..839b2112d853 100644
--- a/llvm-core/flang/Manifest
+++ b/llvm-core/flang/Manifest
@@ -6,3 +6,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/flang/flang-24.0.0_pre20260919.ebuild b/llvm-core/flang/flang-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..c71c6def54db
--- /dev/null
+++ b/llvm-core/flang/flang-24.0.0_pre20260919.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="LLVM's Fortran frontend"
+HOMEPAGE="https://flang.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="+clang +debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/clang-${PV}[debug=]
+ ~llvm-core/llvm-${PV}[debug=]
+ ~llvm-core/mlir-${PV}[debug=]
+"
+RDEPEND="
+ ${DEPEND}
+"
+PDEPEND="
+ >=llvm-runtimes/flang-rt-${PV}:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? ( llvm-core/clang )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( flang cmake )
+LLVM_TEST_COMPONENTS=(
+ clang/test/Driver mlir/test/lib
+ # for building flang-rt
+ runtimes flang-rt libc/shared llvm/{cmake,utils}
+ # openmp
+ openmp third-party/unittest
+)
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && tc-is-gcc; then
+ ewarn "Building using GCC requires lots of memory (up to 10 GiB per process)."
+ ewarn "Consider enabling USE=clang."
+ ewarn "See https://gcc.gnu.org/PR119705"
+ fi
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ # create extra parent dir for relative CLANG_RESOURCE_DIR access
+ mkdir -p x/y || die
+ BUILD_DIR=${WORKDIR}/x/y/build
+
+ llvm.org_src_prepare
+}
+
+src_configure() {
+ if use clang; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ fi
+
+ strip-unsupported-flags
+ fi
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DMLIR_LINK_MLIR_DYLIB=ON
+ # flang does not feature a dylib, so do not install libraries
+ # or headers
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+ # installed by llvm-runtimes/flang-rt
+ -DFLANG_INCLUDE_RUNTIME=OFF
+
+ # TODO: always enable to obtain reproducible tools
+ -DFLANG_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+}
+
+build_runtimes() {
+ local -x FC=${BUILD_DIR}/bin/flang
+ local -x F77=${FC}
+ local CMAKE_USE_DIR=${WORKDIR}/runtimes
+ local BUILD_DIR=${WORKDIR}/runtimes_build
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ # cmake.eclass does not set if it we don't inherit fortran-2
+ # and upstream code relies on it being set before Fortran logic
+ # kicks in and reds envvars
+ -DCMAKE_Fortran_COMPILER="${FC}"
+ # we may not have a runtime yet
+ -DCMAKE_Fortran_COMPILER_WORKS=TRUE
+ # tests rddequire modules now
+ -DRUNTIMES_FORTRAN_MODULES=ON
+
+ -DLLVM_ENABLE_RUNTIMES="flang-rt;openmp"
+ # this package forces NO_DEFAULT_PATHS
+ -DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_DEFAULT_TARGET_TRIPLE="${CHOST}"
+
+ # install inside the test tree
+ -DRUNTIMES_INSTALL_RESOURCE_PATH="${WORKDIR}/lib/clang/${LLVM_MAJOR}"
+ # work hard not to install anything else
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+ -DOPENMP_INSTALL_LIBDIR="${T}/discard"
+
+ -DFLANG_RT_INCLUDE_TESTS=OFF
+ -DLIBOMP_FORTRAN_MODULES_ONLY=ON
+ -DLIBOMP_USE_HWLOC=OFF
+ -DLIBOMP_OMPD_GDB_SUPPORT=OFF
+ -DLIBOMP_OMPT_SUPPORT=OFF
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+ cmake_build install
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ build_runtimes
+
+ cmake_build check-flang
+}
diff --git a/llvm-core/lld/Manifest b/llvm-core/lld/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-core/lld/Manifest
+++ b/llvm-core/lld/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/lld/lld-24.0.0_pre20260919.ebuild b/llvm-core/lld/lld-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..c91ec8e98967
--- /dev/null
+++ b/llvm-core/lld/lld-24.0.0_pre20260919.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
+
+DESCRIPTION="The LLVM linker (link editor)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="+debug test zstd"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}[debug=,zstd=]
+ virtual/zlib:=
+ zstd? ( app-arch/zstd:= )
+"
+RDEPEND="
+ ${DEPEND}
+ !llvm-core/lld:0
+"
+BDEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+PDEPEND="
+ >=llvm-core/lld-toolchain-symlinks-16-r2:${LLVM_MAJOR}
+"
+
+LLVM_COMPONENTS=( lld cmake libunwind/include/mach-o )
+LLVM_TEST_COMPONENTS=( llvm/utils/dtlto )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ llvm.org_src_unpack
+
+ # Directory ${WORKDIR}/llvm does not exist with USE="-test",
+ # but LLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" is set below,
+ # and ${LLVM_MAIN_SRC_DIR}/../libunwind/include is used by build system
+ # (lld/MachO/CMakeLists.txt) and is expected to be resolvable
+ # to existent directory ${WORKDIR}/libunwind/include.
+ mkdir -p "${WORKDIR}/llvm" || die
+}
+
+src_configure() {
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # https://gcc.gnu.org/PR121495 (bug #958469)
+ use arm64 && tc-is-gcc && [[ $(gcc-major-version) -ge 14 ]] && append-flags -mearly-ra=none
+
+ use elibc_musl && append-ldflags -Wl,-z,stack-size=2097152
+
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DBUILD_SHARED_LIBS=ON
+ -DLLVM_INCLUDE_TESTS=$(usex test)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ tc-is-cross-compiler && mycmakeargs+=(
+ -DLLVM_TABLEGEN_EXE="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-tblgen"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-lld
+}
diff --git a/llvm-core/lldb/Manifest b/llvm-core/lldb/Manifest
index fd81ec1b1a7a..fbc00025d6ea 100644
--- a/llvm-core/lldb/Manifest
+++ b/llvm-core/lldb/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/lldb/lldb-24.0.0_pre20260919.ebuild b/llvm-core/lldb/lldb-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..482a225e5f5d
--- /dev/null
+++ b/llvm-core/lldb/lldb-24.0.0_pre20260919.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org python-single-r1
+
+DESCRIPTION="The LLVM debugger"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0/${LLVM_SOABI}"
+IUSE="+debug debuginfod +libedit lzma ncurses +python test +tree-sitter +xml"
+RESTRICT="test"
+REQUIRED_USE=${PYTHON_REQUIRED_USE}
+
+DEPEND="
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ libedit? ( dev-libs/libedit:0= )
+ lzma? ( app-arch/xz-utils:= )
+ ncurses? ( >=sys-libs/ncurses-5.9-r3:0= )
+ tree-sitter? ( dev-libs/tree-sitter:= )
+ xml? ( dev-libs/libxml2:= )
+ ~llvm-core/clang-${PV}
+ ~llvm-core/llvm-${PV}[debuginfod=]
+"
+RDEPEND="
+ ${DEPEND}
+ python? (
+ ${PYTHON_DEPS}
+ )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ python? (
+ >=dev-lang/swig-3.0.11
+ )
+ test? (
+ $(python_gen_cond_dep "
+ ~dev-python/lit-${PV}[\${PYTHON_USEDEP}]
+ dev-python/psutil[\${PYTHON_USEDEP}]
+ ")
+ llvm-core/lld
+ )
+"
+
+LLVM_COMPONENTS=( lldb cmake llvm/utils )
+LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support third-party )
+LLVM_USE_TARGETS=llvm+eq
+llvm.org_set_globals
+
+src_configure() {
+ # bug #858389 (https://github.com/llvm/llvm-project/issues/83636)
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DClang_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLLDB_ENABLE_CURSES=$(usex ncurses)
+ -DLLDB_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLDB_ENABLE_PYTHON=$(usex python)
+ -DLLDB_ENABLE_LUA=OFF
+ -DLLDB_ENABLE_LZMA=$(usex lzma)
+ -DLLDB_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_TERMINFO=$(usex ncurses)
+ -DLLVM_ENABLE_TREESITTER=$(usex tree-sitter)
+
+ -DLLDB_INCLUDE_TESTS=$(usex test)
+
+ -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+
+ -DCLANG_LINK_CLANG_DYLIB=ON
+ # TODO: fix upstream to detect this properly
+ -DHAVE_LIBDL=ON
+ -DHAVE_LIBPTHREAD=ON
+
+ # normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO
+ # and TERMINFO_LIBS... so just force FindCurses.cmake to use
+ # ncurses with complete library set (including autodetection
+ # of -ltinfo)
+ -DCURSES_NEED_NCURSES=ON
+
+ -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+ -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-lldb-{shell,unit}
+ # failures + hangs
+ #use python && cmake_build check-lldb-api
+}
+
+src_install() {
+ cmake_src_install
+ find "${D}" -name '*.a' -delete || die
+
+ use python && python_optimize
+}
diff --git a/llvm-core/llvm-common/Manifest b/llvm-core/llvm-common/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-core/llvm-common/Manifest
+++ b/llvm-core/llvm-common/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/llvm-common/llvm-common-24.0.0_pre20260919.ebuild b/llvm-core/llvm-common/llvm-common-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..4548489cd9bc
--- /dev/null
+++ b/llvm-core/llvm-common/llvm-common-24.0.0_pre20260919.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit elisp-common llvm.org
+
+DESCRIPTION="Common files shared between multiple slots of LLVM"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+SLOT="0"
+IUSE="emacs"
+
+RDEPEND="
+ !llvm-core/llvm:0
+"
+BDEPEND="
+ emacs? ( >=app-editors/emacs-23.1:* )
+"
+
+LLVM_COMPONENTS=( llvm/utils )
+llvm.org_set_globals
+
+SITEFILE="50llvm-gentoo.el"
+BYTECOMPFLAGS="-L emacs"
+
+src_compile() {
+ default
+
+ use emacs && elisp-compile emacs/*.el
+}
+
+src_install() {
+ insinto /usr/share/vim/vimfiles
+ doins -r vim/*/
+ # some users may find it useful
+ newdoc vim/README README.vim
+ dodoc vim/vimrc
+
+ if use emacs ; then
+ elisp-install llvm emacs/*.{el,elc}
+ elisp-make-site-file "${SITEFILE}" llvm
+ fi
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}
diff --git a/llvm-core/llvm/Manifest b/llvm-core/llvm/Manifest
index ce47bc46c609..a81e67b6fa5d 100644
--- a/llvm-core/llvm/Manifest
+++ b/llvm-core/llvm/Manifest
@@ -22,3 +22,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/llvm/llvm-24.0.0_pre20260919.ebuild b/llvm-core/llvm/llvm-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..9ec376eb2839
--- /dev/null
+++ b/llvm-core/llvm/llvm-24.0.0_pre20260919.ebuild
@@ -0,0 +1,575 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake flag-o-matic llvm.org multilib-minimal pax-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Low Level Virtual Machine"
+HOMEPAGE="https://llvm.org/"
+
+# Additional licenses:
+# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD.
+# 2. xxhash: BSD.
+# 3. MD5 code: public-domain.
+# 4. ConvertUTF.h: TODO.
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="
+ +binutils-plugin +debug debuginfod doc exegesis libedit +libffi
+ test xml z3 zstd
+"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ virtual/zlib:=[${MULTILIB_USEDEP}]
+ debuginfod? (
+ net-misc/curl:=
+ dev-cpp/cpp-httplib:=
+ )
+ exegesis? ( dev-libs/libpfm:= )
+ libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] )
+ libffi? ( >=dev-libs/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
+ xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+ z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+ ${RDEPEND}
+ binutils-plugin? ( sys-libs/binutils-libs )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ sys-devel/gnuconfig
+ kernel_Darwin? (
+ <llvm-runtimes/libcxx-${LLVM_VERSION}.9999
+ )
+ libffi? ( virtual/pkgconfig )
+"
+# There are no file collisions between these versions but having :0
+# installed means llvm-config there will take precedence.
+RDEPEND="
+ ${RDEPEND}
+ !llvm-core/llvm:0
+"
+PDEPEND="
+ llvm-core/llvm-common
+ llvm-core/llvm-toolchain-symlinks:${LLVM_MAJOR}
+ binutils-plugin? ( >=llvm-core/llvmgold-${LLVM_MAJOR} )
+"
+
+LLVM_COMPONENTS=( llvm cmake libc mlir/utils/pygments third-party utils/docs )
+LLVM_MANPAGES=1
+LLVM_USE_TARGETS=provide
+llvm.org_set_globals
+
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" doc? ( "
+BDEPEND+="
+ $(python_gen_any_dep '
+ dev-python/myst-parser[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ ')
+"
+[[ -n ${LLVM_MANPAGE_DIST} ]] && BDEPEND+=" ) "
+
+python_check_deps() {
+ llvm_are_manpages_built || return 0
+
+ python_has_version -b "dev-python/myst-parser[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]"
+}
+
+check_uptodate() {
+ local prod_targets=(
+ $(sed -n -e '/set(LLVM_ALL_TARGETS/,/)/p' CMakeLists.txt \
+ | tail -n +2 | head -n -1)
+ )
+ local all_targets=(
+ lib/Target/*/
+ )
+ all_targets=( "${all_targets[@]#lib/Target/}" )
+ all_targets=( "${all_targets[@]%/}" )
+
+ local exp_targets=() i
+ for i in "${all_targets[@]}"; do
+ has "${i}" "${prod_targets[@]}" || exp_targets+=( "${i}" )
+ done
+
+ local outdated
+ if [[ ${exp_targets[*]} != ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_EXPERIMENTAL_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_EXPERIMENTAL_TARGETS[*]}"
+ eerror "Expected: ${exp_targets[*]}"
+ eerror
+ outdated=1
+ fi
+
+ if [[ ${prod_targets[*]} != ${ALL_LLVM_PRODUCTION_TARGETS[*]} ]]; then
+ eerror "ALL_LLVM_PRODUCTION_TARGETS are outdated!"
+ eerror " Have: ${ALL_LLVM_PRODUCTION_TARGETS[*]}"
+ eerror "Expected: ${prod_targets[*]}"
+ outdated=1
+ fi
+
+ [[ ${outdated} ]] && die "Update ALL_LLVM*_TARGETS"
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # shared libs
+ LLVM|LLVMgold)
+ ;;
+ # TableGen lib + deps
+ LLVMDemangle|LLVMSupport|LLVMSupportLSP|LLVMTableGen)
+ ;;
+ # for mlir-tblgen
+ LLVMCodeGenTypes)
+ ;;
+ # used by lldb
+ LLVMDebuginfod|LLVMHTTP)
+ ;;
+ # testing libraries
+ LLVMTestingAnnotations|LLVMTestingSupport)
+ ;;
+ # static libs
+ LLVM*)
+ continue
+ ;;
+ # meta-targets
+ distribution|llvm-libraries)
+ continue
+ ;;
+ # used only w/ USE=doc
+ docs-llvm-html)
+ use doc || continue
+ ;;
+ # used only w/ USE=debuginfd
+ llvm-debuginfod)
+ use debuginfod || continue
+ ;;
+ # used only w/ USE=xml
+ llvm-mt)
+ use xml || continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+src_prepare() {
+ # disable use of SDK on OSX, bug #568758
+ sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+
+ # Update config.guess to support more systems
+ cp "${BROOT}/usr/share/gnuconfig/config.guess" cmake/ || die
+
+ # Disable lit tests (we run them in dev-python/lit).
+ > utils/lit/CMakeLists.txt || die
+
+ # Verify that the ebuild is up-to-date
+ check_uptodate
+
+ llvm.org_src_prepare
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ # shared libs
+ LLVM
+ LTO
+ Remarks
+
+ # tools
+ llvm-config
+
+ # common stuff
+ cmake-exports
+ llvm-headers
+
+ # libraries needed for clang-tblgen
+ LLVMDemangle
+ LLVMSupport
+ LLVMTableGen
+ # mlir-tblgen
+ LLVMCodeGenTypes
+ LLVMSupportLSP
+
+ # testing libraries
+ llvm_gtest
+ llvm_gtest_main
+ LLVMTestingAnnotations
+ LLVMTestingSupport
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # library used by lldb
+ LLVMDebuginfod
+ LLVMHTTP
+
+ # utilities
+ llvm-tblgen
+ llvm-test-mustache-spec
+ FileCheck
+ llvm-PerfectShuffle
+ count
+ not
+ yaml-bench
+ UnicodeNameMappingGenerator
+
+ # tools
+ clang-offload-packager
+ dsymutil
+ llc
+ lli
+ lli-child-target
+ llubi
+ llvm-addr2line
+ llvm-ar
+ llvm-as
+ llvm-bcanalyzer
+ llvm-bitcode-strip
+ llvm-c-test
+ llvm-calc-occupancy
+ llvm-cas
+ llvm-cat
+ llvm-cfi-verify
+ llvm-cgdata
+ llvm-config
+ llvm-cov
+ llvm-ctxprof-util
+ llvm-cvtres
+ llvm-cxxdump
+ llvm-cxxfilt
+ llvm-cxxmap
+ llvm-debuginfo-analyzer
+ llvm-debuginfod-find
+ llvm-diff
+ llvm-dis
+ llvm-dlltool
+ llvm-dwarfdump
+ llvm-dwarfutil
+ llvm-dwp
+ llvm-exegesis
+ llvm-extract
+ llvm-extract-bundle-entry
+ llvm-gpu-loader
+ llvm-gsymutil
+ llvm-ifs
+ llvm-install-name-tool
+ llvm-ir2vec
+ llvm-jitlink
+ llvm-jitlink-executor
+ llvm-lib
+ llvm-libtool-darwin
+ llvm-link
+ llvm-lipo
+ llvm-lto
+ llvm-lto2
+ llvm-mc
+ llvm-mca
+ llvm-ml
+ llvm-ml64
+ llvm-modextract
+ llvm-nm
+ llvm-objcopy
+ llvm-objdump
+ llvm-offload-binary
+ llvm-offload-wrapper
+ llvm-opt-report
+ llvm-otool
+ llvm-pdbutil
+ llvm-profdata
+ llvm-profgen
+ llvm-ranlib
+ llvm-rc
+ llvm-readelf
+ llvm-readobj
+ llvm-readtapi
+ llvm-reduce
+ llvm-remarkutil
+ llvm-rtdyld
+ llvm-size
+ llvm-split
+ llvm-stress
+ llvm-strings
+ llvm-strip
+ llvm-symbolizer
+ llvm-tli-checker
+ llvm-undname
+ llvm-windres
+ llvm-xray
+ obj2yaml
+ opt
+ reduce-chunk-list
+ sancov
+ sanstats
+ split-file
+ verify-uselistorder
+ yaml2obj
+
+ # python modules
+ opt-viewer
+ )
+
+ if llvm_are_manpages_built; then
+ out+=(
+ # manpages
+ docs-dsymutil-man
+ docs-llvm-dwarfdump-man
+ docs-llvm-man
+ )
+ fi
+ use doc && out+=(
+ docs-llvm-html
+ )
+
+ use binutils-plugin && out+=(
+ LLVMgold
+ )
+ use debuginfod && out+=(
+ llvm-debuginfod
+ )
+ use xml && out+=(
+ llvm-mt
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ # ODR violations (bug #917536, bug #926529). Just do it for GCC for now
+ # to avoid people grumbling. GCC is, anecdotally, more likely to miscompile
+ # LLVM with LTO anyway (which is not necessarily its fault).
+ tc-is-gcc && filter-lto
+
+ # https://github.com/llvm/llvm-project/issues/219693
+ append-flags -fno-strict-aliasing
+
+ local ffi_cflags ffi_ldflags
+ if use libffi; then
+ ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+ ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ # disable appending VCS revision to the version to improve
+ # direct cache hit ratio
+ -DLLVM_APPEND_VC_REV=OFF
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DBUILD_SHARED_LIBS=OFF
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DLLVM_LINK_LLVM_DYLIB=ON
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+
+ # cheap hack: LLVM combines both anyway, and the only difference
+ # is that the former list is explicitly verified at cmake time
+ -DLLVM_TARGETS_TO_BUILD=""
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
+ -DLLVM_INCLUDE_BENCHMARKS=OFF
+ -DLLVM_INCLUDE_TESTS=ON
+ -DLLVM_BUILD_TESTS=$(usex test)
+ -DLLVM_INSTALL_GTEST=ON
+
+ -DLLVM_ENABLE_FFI=$(usex libffi)
+ -DLLVM_ENABLE_LIBEDIT=$(usex libedit)
+ -DLLVM_ENABLE_LIBXML2=$(usex xml)
+ -DLLVM_ENABLE_ASSERTIONS=$(usex debug)
+ -DLLVM_ENABLE_LIBPFM=$(usex exegesis)
+ -DLLVM_ENABLE_EH=ON
+ -DLLVM_ENABLE_RTTI=ON
+ -DLLVM_ENABLE_Z3_SOLVER=$(usex z3)
+ -DLLVM_ENABLE_ZLIB=FORCE_ON
+ -DLLVM_ENABLE_ZSTD=$(usex zstd FORCE_ON OFF)
+ -DLLVM_ENABLE_CURL=$(usex debuginfod)
+ -DLLVM_ENABLE_HTTPLIB=$(usex debuginfod)
+ -DLLVM_UNREACHABLE_OPTIMIZE=OFF
+
+ -DLLVM_HOST_TRIPLE="${CHOST}"
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ # disable OCaml bindings (now in dev-ml/llvm)
+ -DOCAMLFIND=NO
+ )
+
+ local suffix=
+ if [[ -n ${EGIT_VERSION} && ${EGIT_BRANCH} != release/* ]]; then
+ # the ABI of the main branch is not stable, so let's include
+ # the commit id in the SOVERSION to contain the breakage
+ suffix+="git${EGIT_VERSION::8}"
+ fi
+ if [[ $(tc-get-cxx-stdlib) == libc++ ]]; then
+ # Smart hack: alter version suffix -> SOVERSION when linking
+ # against libc++. This way we won't end up mixing LLVM libc++
+ # libraries with libstdc++ clang, and the other way around.
+ suffix+="+libcxx"
+ mycmakeargs+=(
+ -DLLVM_ENABLE_LIBCXX=ON
+ )
+ fi
+ mycmakeargs+=(
+ -DLLVM_VERSION_SUFFIX="${suffix}"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ if multilib_is_native_abi; then
+ local build_docs=OFF
+ if llvm_are_manpages_built; then
+ build_docs=ON
+ mycmakeargs+=(
+ -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF
+ )
+ fi
+
+ mycmakeargs+=(
+ -DLLVM_BUILD_DOCS=${build_docs}
+ -DLLVM_ENABLE_OCAMLDOC=OFF
+ -DLLVM_ENABLE_SPHINX=${build_docs}
+ -DLLVM_ENABLE_DOXYGEN=OFF
+ -DLLVM_INSTALL_UTILS=ON
+ )
+ use binutils-plugin && mycmakeargs+=(
+ -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include
+ )
+ fi
+
+ use kernel_Darwin && mycmakeargs+=(
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+
+ # LLVM can have very high memory consumption while linking,
+ # exhausting the limit on 32-bit linker executable
+ use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ grep -q -E "^CMAKE_PROJECT_VERSION_MAJOR(:.*)?=${LLVM_MAJOR}$" \
+ CMakeCache.txt ||
+ die "Incorrect version, did you update _LLVM_MAIN_MAJOR?"
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ tc-env_build cmake_build distribution
+
+ pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld
+ pax-mark m "${BUILD_DIR}"/bin/lli
+ pax-mark m "${BUILD_DIR}"/bin/lli-child-target
+
+ if use test; then
+ pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests
+ pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests
+ pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests
+ fi
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check
+}
+
+src_install() {
+ local MULTILIB_CHOST_TOOLS=(
+ /usr/lib/llvm/${LLVM_MAJOR}/bin/llvm-config
+ )
+
+ local MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/llvm/Config/llvm-config.h
+ )
+
+ local LLVM_LDPATHS=()
+ multilib-minimal_src_install
+
+ # move wrapped headers back
+ mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+
+ # move headers to /usr/include for wrapping
+ rm -rf "${ED}"/usr/include || die
+ mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
+
+ LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)" )
+}
+
+multilib_src_install_all() {
+ local revord=$(( 9999 - ${LLVM_MAJOR} ))
+ newenvd - "60llvm-${revord}" <<-_EOF_
+ PATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+ # we need to duplicate it in ROOTPATH for Portage to respect...
+ ROOTPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin"
+ MANPATH="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )"
+ _EOF_
+
+ docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
+ llvm_install_manpages
+}
+
+pkg_postinst() {
+ elog "You can find additional opt-viewer utility scripts in:"
+ elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/opt-viewer"
+ elog "To use these scripts, you will need Python along with the following"
+ elog "packages:"
+ elog " dev-python/pygments (for opt-viewer)"
+ elog " dev-python/pyyaml (for all of them)"
+}
diff --git a/llvm-core/mlir/Manifest b/llvm-core/mlir/Manifest
index ba9aebd9dd57..839b2112d853 100644
--- a/llvm-core/mlir/Manifest
+++ b/llvm-core/mlir/Manifest
@@ -6,3 +6,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/mlir/mlir-24.0.0_pre20260919.ebuild b/llvm-core/mlir/mlir-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..59fd2e576262
--- /dev/null
+++ b/llvm-core/mlir/mlir-24.0.0_pre20260919.ebuild
@@ -0,0 +1,215 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake llvm.org multilib-minimal python-any-r1
+
+DESCRIPTION="Multi-Level Intermediate Representation (library only)"
+HOMEPAGE="https://mlir.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="+debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}[debug=,${MULTILIB_USEDEP}]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ llvm-core/llvm:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( mlir cmake )
+# tablegen tests use *.td files there
+LLVM_TEST_COMPONENTS=( llvm/include )
+llvm.org_set_globals
+
+python_check_deps() {
+ if use test; then
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+ fi
+}
+
+src_prepare() {
+ llvm.org_src_prepare
+
+ # https://github.com/llvm/llvm-project/issues/120902
+ sed -i -e '/LINK_LIBS/s:PUBLIC:PRIVATE:' \
+ lib/ExecutionEngine/CMakeLists.txt || die
+
+ # this test is completely unpredictable, no clue why
+ rm test/mlir-pdll-lsp-server/view-output.test || die
+}
+
+check_distribution_components() {
+ if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
+ local all_targets=() my_targets=() l
+ cd "${BUILD_DIR}" || die
+
+ while read -r l; do
+ if [[ ${l} == install-*-stripped:* ]]; then
+ l=${l#install-}
+ l=${l%%-stripped*}
+
+ case ${l} in
+ # meta-targets
+ mlir-libraries|distribution)
+ continue
+ ;;
+ # dylib
+ MLIR)
+ ;;
+ # installed test libraries
+ MLIRTestAliasAnalysis|MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR)
+ ;;
+ MLIROpenACCTestPasses)
+ ;;
+ # static libraries
+ MLIR*)
+ continue
+ ;;
+ esac
+
+ all_targets+=( "${l}" )
+ fi
+ done < <(${NINJA} -t targets all)
+
+ while read -r l; do
+ my_targets+=( "${l}" )
+ done < <(get_distribution_components $"\n")
+
+ local add=() remove=()
+ for l in "${all_targets[@]}"; do
+ if ! has "${l}" "${my_targets[@]}"; then
+ add+=( "${l}" )
+ fi
+ done
+ for l in "${my_targets[@]}"; do
+ if ! has "${l}" "${all_targets[@]}"; then
+ remove+=( "${l}" )
+ fi
+ done
+
+ if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
+ eerror "get_distribution_components() is outdated!"
+ eerror " Add: ${add[*]}"
+ eerror "Remove: ${remove[*]}"
+ die "Update get_distribution_components()!"
+ fi
+ cd - >/dev/null || die
+ fi
+}
+
+get_distribution_components() {
+ local sep=${1-;}
+
+ local out=(
+ mlir-cmake-exports
+ mlir-headers
+
+ # the dylib
+ MLIR
+
+ # shared libraries
+ mlir_apfloat_wrappers
+ mlir_arm_runner_utils
+ mlir_arm_sme_abi_stubs
+ mlir_async_runtime
+ mlir_c_runner_utils
+ mlir_float16_utils
+ mlir_runner_utils
+
+ # test libraries required by flang
+ MLIROpenACCTestPasses
+ MLIRTestAliasAnalysis
+ MLIRTestAnalysis
+ MLIRTestDialect
+ MLIRTestIR
+ )
+
+ if multilib_is_native_abi; then
+ out+=(
+ # tools
+ mlir-irdl-to-cpp
+ mlir-linalg-ods-yaml-gen
+ mlir-lsp-server
+ mlir-opt
+ mlir-pdll
+ mlir-pdll-lsp-server
+ mlir-query
+ mlir-reduce
+ mlir-rewrite
+ mlir-runner
+ mlir-src-sharder
+ mlir-tblgen
+ mlir-translate
+ tblgen-lsp-server
+ tblgen-to-irdl
+ )
+ fi
+
+ printf "%s${sep}" "${out[@]}"
+}
+
+multilib_src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DBUILD_SHARED_LIBS=OFF
+ # this controls building libMLIR.so
+ -DLLVM_BUILD_LLVM_DYLIB=ON
+ -DMLIR_BUILD_MLIR_C_DYLIB=OFF
+ -DMLIR_LINK_MLIR_DYLIB=ON
+ -DMLIR_INCLUDE_TESTS=ON
+ -DMLIR_INCLUDE_INTEGRATION_TESTS=OFF
+ -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
+ # this enables installing mlir-tblgen and mlir-pdll
+ -DLLVM_BUILD_UTILS=ON
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+
+ -DLLVM_BUILD_TOOLS=ON
+ # TODO
+ -DMLIR_ENABLE_CUDA_RUNNER=0
+ -DMLIR_ENABLE_ROCM_RUNNER=0
+ -DMLIR_ENABLE_SYCL_RUNNER=0
+ -DMLIR_ENABLE_SPIRV_CPU_RUNNER=0
+ -DMLIR_ENABLE_VULKAN_RUNNER=0
+ -DMLIR_ENABLE_BINDINGS_PYTHON=0
+ -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+
+ multilib_is_native_abi && check_distribution_components
+}
+
+multilib_src_compile() {
+ cmake_build distribution
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-mlir
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-distribution
+}
diff --git a/llvm-core/polly/Manifest b/llvm-core/polly/Manifest
index 70e301becb0c..dac643ee1113 100644
--- a/llvm-core/polly/Manifest
+++ b/llvm-core/polly/Manifest
@@ -8,3 +8,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-core/polly/polly-24.0.0_pre20260919.ebuild b/llvm-core/polly/polly-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..09e649cc972e
--- /dev/null
+++ b/llvm-core/polly/polly-24.0.0_pre20260919.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake llvm.org python-any-r1
+
+DESCRIPTION="Polyhedral optimizations for LLVM"
+HOMEPAGE="https://polly.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
+# vendored isl (fork?)
+LICENSE+=" MIT"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="+debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ~llvm-core/llvm-${PV}:${LLVM_MAJOR}=[debug=]
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( polly cmake )
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ cmake_src_configure
+}
+
+src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-polly
+}
diff --git a/llvm-runtimes/compiler-rt-sanitizers/Manifest b/llvm-runtimes/compiler-rt-sanitizers/Manifest
index 328af47f876d..b68fcdf933ef 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/Manifest
+++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest
@@ -20,3 +20,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0.9999.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0.9999.ebuild
index 2afcce95ccf4..a2313c010d9c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0.9999.ebuild
@@ -13,7 +13,7 @@ LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
SLOT="${LLVM_MAJOR}"
IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
# base targets
-IUSE+=" +ctx-profile +libfuzzer +memprof +orc +profile +xray"
+IUSE+=" +copyprof +ctx-profile +libfuzzer +memprof +orc +profile +xray"
# sanitizer targets, keep in sync with config-ix.cmake
# NB: ubsan, scudo deliberately match two entries
SANITIZER_FLAGS=(
@@ -151,13 +151,15 @@ src_configure() {
# builtins & crt installed by llvm-runtimes/compiler-rt
-DCOMPILER_RT_BUILD_BUILTINS=OFF
-DCOMPILER_RT_BUILD_CRT=OFF
- -DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+ # in CMakeLists.txt order
+ -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
+ -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
-DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
+ -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
-DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_COPYPROF=$(usex copyprof)
-DCOMPILER_RT_BUILD_ORC=$(usex orc)
- -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
- -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
- -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
-DPython3_EXECUTABLE="${PYTHON}"
)
diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0_pre20260919.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..a2313c010d9c
--- /dev/null
+++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-24.0.0_pre20260919.ebuild
@@ -0,0 +1,239 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit check-reqs cmake flag-o-matic llvm.org llvm-utils python-any-r1
+
+DESCRIPTION="Compiler runtime libraries for clang (sanitizers & xray)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="${LLVM_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +clang +debug test"
+# base targets
+IUSE+=" +copyprof +ctx-profile +libfuzzer +memprof +orc +profile +xray"
+# sanitizer targets, keep in sync with config-ix.cmake
+# NB: ubsan, scudo deliberately match two entries
+SANITIZER_FLAGS=(
+ asan dfsan lsan msan hwasan tsan ubsan safestack cfi scudo
+ shadowcallstack gwp-asan nsan rtsan
+)
+IUSE+=" ${SANITIZER_FLAGS[@]/#/+}"
+REQUIRED_USE="
+ || ( ${SANITIZER_FLAGS[*]} libfuzzer orc profile xray )
+ test? (
+ cfi? ( ubsan )
+ gwp-asan? ( scudo )
+ )
+"
+RESTRICT="
+ !clang? ( test )
+ !test? ( test )
+"
+
+DEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ virtual/libcrypt[abi_x86_32(-)?,abi_x86_64(-)?]
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-stdlib-config:${LLVM_MAJOR}
+ llvm-runtimes/compiler-rt:${LLVM_MAJOR}
+ )
+ elibc_glibc? ( net-libs/libtirpc )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake )
+LLVM_TEST_COMPONENTS=(
+ llvm/include/llvm/ProfileData llvm/lib/Testing/Support third-party
+)
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+check_space() {
+ if use test; then
+ local CHECKREQS_DISK_BUILD=11G
+ check-reqs_pkg_pretend
+ fi
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ sed -i -e 's:-Werror::' lib/tsan/go/buildgo.sh || die
+
+ # builds freestanding code
+ filter-flags -fstack-protector*
+
+ local flag
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if ! use "${flag}"; then
+ local cmake_flag=${flag/-/_}
+ sed -i -e "/COMPILER_RT_HAS_${cmake_flag^^}/s:TRUE:FALSE:" \
+ cmake/config-ix.cmake || die
+ fi
+ done
+
+ # TODO: fix these tests to be skipped upstream
+ if use asan && ! use profile; then
+ rm test/asan/TestCases/asan_and_llvm_coverage_test.cpp || die
+ fi
+ if use ubsan && ! use cfi; then
+ > test/cfi/CMakeLists.txt || die
+ fi
+
+ llvm.org_src_prepare
+}
+
+src_configure() {
+ llvm_prepend_path "${LLVM_MAJOR}"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/compiler-rt_build
+
+ if use clang; then
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration files that are guaranteed to exist even during initial
+ # installations and upgrades.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,stdlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ local flag want_sanitizer=OFF
+ for flag in "${SANITIZER_FLAGS[@]}"; do
+ if use "${flag}"; then
+ want_sanitizer=ON
+ break
+ fi
+ done
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ # use a build dir structure consistent with install
+ # this makes it possible to easily deploy test-friendly clang
+ -DCOMPILER_RT_OUTPUT_DIR="${BUILD_DIR}/lib/clang/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ # builtins & crt installed by llvm-runtimes/compiler-rt
+ -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ -DCOMPILER_RT_BUILD_CRT=OFF
+ # in CMakeLists.txt order
+ -DCOMPILER_RT_BUILD_SANITIZERS="${want_sanitizer}"
+ -DCOMPILER_RT_BUILD_XRAY=$(usex xray)
+ -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer)
+ -DCOMPILER_RT_BUILD_PROFILE=$(usex profile)
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile)
+ -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof)
+ -DCOMPILER_RT_BUILD_COPYPROF=$(usex copyprof)
+ -DCOMPILER_RT_BUILD_ORC=$(usex orc)
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use amd64; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=$(usex abi_x86_32)
+ -DCAN_TARGET_x86_64=$(usex abi_x86_64)
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ # they are created during src_test()
+ -DCOMPILER_RT_TEST_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${BUILD_DIR}/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+
+ # same flags are passed for build & tests, so we need to strip
+ # them down to a subset supported by clang
+ CC=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang \
+ CXX=${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++ \
+ strip-unsupported-flags
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX
+ # This disables i386 for SDK >= 10.15
+ # Will error if has_use tsan and SDK < 10.12
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath "${EPREFIX}/MacOSX.sdk" | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ cmake_src_configure
+
+ if use test; then
+ local sys_dest=( "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/lib/* )
+ [[ ! -e ${sys_dest} ]] && die "Unable to find ${sys_dest}"
+ [[ ${#sys_dest[@]} -ne 1 ]] && die "Non-deterministic compiler-rt install: ${sys_dest[*]}"
+ local sys_dir=( "${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}/lib/${sys_dest##*/}" )
+ [[ ! -e ${sys_dir} ]] && die "${sys_dir} is missing"
+
+ # copy clang over since resource_dir is located relatively to binary
+ # therefore, we can put our new libraries in it
+ mkdir -p "${BUILD_DIR}"/lib/{llvm/${LLVM_MAJOR}/{bin,$(get_libdir)},clang/${LLVM_MAJOR}/include} || die
+ cp "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/bin/clang{,++} \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/bin/ || die
+ cp "${EPREFIX}"/usr/lib/clang/${LLVM_MAJOR}/include/*.h \
+ "${BUILD_DIR}"/lib/clang/${LLVM_MAJOR}/include/ || die
+ cp "${sys_dir}"/*builtins*.a "${sys_dest}/" || die
+ # we also need LLVMgold.so for gold-based tests
+ if [[ -f ${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so ]]; then
+ ln -s "${EPREFIX}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/LLVMgold.so \
+ "${BUILD_DIR}"/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/ || die
+ fi
+ fi
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ # disable sandbox to have it stop clobbering LD_PRELOAD
+ local -x SANDBOX_ON=0
+ # wipe LD_PRELOAD to make ASAN happy
+ local -x LD_PRELOAD=
+
+ cmake_build check-all
+}
diff --git a/llvm-runtimes/compiler-rt-sanitizers/metadata.xml b/llvm-runtimes/compiler-rt-sanitizers/metadata.xml
index 905c86c18626..bbf467a4950c 100644
--- a/llvm-runtimes/compiler-rt-sanitizers/metadata.xml
+++ b/llvm-runtimes/compiler-rt-sanitizers/metadata.xml
@@ -7,6 +7,7 @@
<use>
<flag name="clang">Force building using installed clang (rather
than the default CC/CXX).</flag>
+ <flag name="copyprof">Build copy profiler runtime.</flag>
<flag name="ctx-profile">Build ctx profiling runtime.</flag>
<flag name="libfuzzer">Build fuzzing runtime.</flag>
<flag name="memprof">Build memory profiler runtime.</flag>
diff --git a/llvm-runtimes/compiler-rt/Manifest b/llvm-runtimes/compiler-rt/Manifest
index 25f03cd05eda..8255540fba0a 100644
--- a/llvm-runtimes/compiler-rt/Manifest
+++ b/llvm-runtimes/compiler-rt/Manifest
@@ -15,3 +15,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/compiler-rt/compiler-rt-24.0.0.9999.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-24.0.0.9999.ebuild
index 36cababeba8d..5ce8a36d05fc 100644
--- a/llvm-runtimes/compiler-rt/compiler-rt-24.0.0.9999.ebuild
+++ b/llvm-runtimes/compiler-rt/compiler-rt-24.0.0.9999.ebuild
@@ -118,13 +118,15 @@ src_configure() {
-DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins)
-DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
- -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
+ # in CMakeLists.txt order
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
-DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_COPYPROF=OFF
-DCOMPILER_RT_BUILD_ORC=OFF
- -DCOMPILER_RT_BUILD_PROFILE=OFF
- -DCOMPILER_RT_BUILD_SANITIZERS=OFF
- -DCOMPILER_RT_BUILD_XRAY=OFF
-DPython3_EXECUTABLE="${PYTHON}"
)
diff --git a/llvm-runtimes/compiler-rt/compiler-rt-24.0.0_pre20260919.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..5ce8a36d05fc
--- /dev/null
+++ b/llvm-runtimes/compiler-rt/compiler-rt-24.0.0_pre20260919.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Compiler runtime library for clang (built-in part)"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="${LLVM_MAJOR}"
+IUSE="+abi_x86_32 abi_x86_64 +atomic-builtins +clang +debug test"
+REQUIRED_USE="atomic-builtins? ( clang )"
+RESTRICT="!test? ( test ) !clang? ( test )"
+
+DEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ )
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake third-party/siphash )
+LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+pkg_pretend() {
+ if ! use clang && ! tc-is-clang; then
+ ewarn "Building using a compiler other than clang may result in broken atomics"
+ ewarn "library. Enable USE=clang unless you have a very good reason not to."
+ fi
+}
+
+pkg_setup() {
+ if target_is_not_host || tc-is-cross-compiler ; then
+ # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
+ CHOST=${CTARGET} strip-unsupported-flags
+ # overrides host docs otherwise
+ DOCS=()
+ fi
+ python-any-r1_pkg_setup
+}
+
+test_compiler() {
+ target_is_not_host && return
+ $(tc-getCC) ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ if use clang || use test; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ fi
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ # pre-set since we need to pass it to cmake
+ BUILD_DIR=${WORKDIR}/${P}_build
+
+ if use clang && ! is_crosspkg; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ fi
+
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Given that compiler-rt
+ # require runtime, use only the linker configuration.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-linker.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ if ! is_crosspkg && ! test_compiler ; then
+ local nolib_flags=( -nodefaultlibs -lc )
+
+ if test_compiler "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ elif test_compiler "${nolib_flags[@]}" -nostartfiles; then
+ # Avoiding -nostartfiles earlier on for bug #862540,
+ # and set available entry symbol for bug #862798.
+ nolib_flags+=( -nostartfiles -e main )
+
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_EXCLUDE_ATOMIC_BUILTIN=$(usex !atomic-builtins)
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ # in CMakeLists.txt order
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_COPYPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ if use amd64 && ! target_is_not_host; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=$(usex abi_x86_32)
+ -DCAN_TARGET_x86_64=$(usex abi_x86_64)
+ )
+ fi
+
+ if is_crosspkg; then
+ # Needed to target built libc headers
+ export CFLAGS="${CFLAGS} -isystem /usr/${CTARGET}/usr/include"
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+
+ # Without this, compiler-rt install location is not unique
+ # to target triples, only to architecture.
+ # Needed if you want to target multiple libcs for one arch.
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
+
+ -DCMAKE_ASM_COMPILER_TARGET="${CTARGET}"
+ -DCMAKE_C_COMPILER_TARGET="${CTARGET}"
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ )
+ fi
+
+ if use prefix && [[ "${CHOST}" == *-darwin* ]] ; then
+ mycmakeargs+=(
+ # setting -isysroot is disabled with compiler-rt-prefix-paths.patch
+ # this allows adding arm64 support using SDK in EPREFIX
+ -DDARWIN_macosx_CACHED_SYSROOT="${EPREFIX}/MacOSX.sdk"
+ # Set version based on the SDK in EPREFIX.
+ # This disables i386 for SDK >= 10.15
+ -DDARWIN_macosx_OVERRIDE_SDK_VERSION="$(realpath "${EPREFIX}/MacOSX.sdk" | sed -e 's/.*MacOSX\(.*\)\.sdk/\1/')"
+ # Use our libtool instead of looking it up with xcrun
+ -DCMAKE_LIBTOOL="${EPREFIX}/usr/bin/${CHOST}-libtool"
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-builtins
+}
diff --git a/llvm-runtimes/flang-rt/Manifest b/llvm-runtimes/flang-rt/Manifest
index ba9aebd9dd57..839b2112d853 100644
--- a/llvm-runtimes/flang-rt/Manifest
+++ b/llvm-runtimes/flang-rt/Manifest
@@ -6,3 +6,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/flang-rt/flang-rt-24.0.0_pre20260919.ebuild b/llvm-runtimes/flang-rt/flang-rt-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..3909a21e22d9
--- /dev/null
+++ b/llvm-runtimes/flang-rt/flang-rt-24.0.0_pre20260919.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org python-any-r1
+
+DESCRIPTION="LLVM's Fortran runtime"
+HOMEPAGE="https://flang.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}"
+IUSE="+debug test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !<llvm-core/flang-21.0.0_pre20250221-r1
+"
+BDEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+ llvm-core/flang
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=(
+ runtimes flang-rt cmake flang libc/shared llvm/{cmake,utils}
+)
+LLVM_TEST_COMPONENTS=( third-party/unittest )
+llvm.org_set_globals
+
+python_check_deps() {
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ # the code is not portable
+ local -x FC=flang F77=flang
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ # cmake.eclass does not set if it we don't inherit fortran-2
+ # and upstream code relies on it being set before Fortran logic
+ # kicks in and reds envvars
+ -DCMAKE_Fortran_COMPILER="${FC}"
+ # we may not have a runtime yet
+ -DCMAKE_Fortran_COMPILER_WORKS=TRUE
+ # tests require modules now, and we probably want them anyway
+ -DRUNTIMES_FORTRAN_MODULES=ON
+
+ -DLLVM_ENABLE_RUNTIMES="flang-rt"
+ # this package forces NO_DEFAULT_PATHS
+ -DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+ # set correct install paths
+ -DRUNTIMES_INSTALL_RESOURCE_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ # do not install flang-rt C++ headers, they cause collisions
+ # across slots and do not seem to be used by anything
+ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+ -DLLVM_DEFAULT_TARGET_TRIPLE="${CHOST}"
+
+ -DFLANG_RT_INCLUDE_TESTS=$(usex test)
+ )
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+ cmake_src_configure
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-flang-rt
+}
diff --git a/llvm-runtimes/libclc/Manifest b/llvm-runtimes/libclc/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-runtimes/libclc/Manifest
+++ b/llvm-runtimes/libclc/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/libclc/libclc-24.0.0_pre20260919.ebuild b/llvm-runtimes/libclc/libclc-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..3d86dd3619d5
--- /dev/null
+++ b/llvm-runtimes/libclc/libclc-24.0.0_pre20260919.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake llvm.org multibuild python-any-r1
+
+DESCRIPTION="OpenCL C library"
+HOMEPAGE="https://libclc.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
+SLOT="0"
+IUSE="+spirv test video_cards_nvidia video_cards_radeonsi"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ llvm-core/clang:${LLVM_MAJOR}
+ spirv? (
+ >=dev-util/spirv-llvm-translator-23:*
+ )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/lit[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+LLVM_COMPONENTS=( libclc )
+llvm.org_set_globals
+
+src_configure() {
+ MULTIBUILD_VARIANTS=()
+
+ use spirv && MULTIBUILD_VARIANTS+=(
+ "spirv32-unknown-unknown"
+ "spirv64-unknown-unknown"
+ "spirv64-unknown-vulkan" # formerly clspv
+ )
+ use video_cards_nvidia && MULTIBUILD_VARIANTS+=(
+ "nvptx64-nvidia-cuda"
+ )
+ use video_cards_radeonsi && MULTIBUILD_VARIANTS+=(
+ "amdgcn-amd-amdhsa-llvm"
+ )
+
+ multibuild_foreach_variant my_configure
+}
+
+my_configure() {
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_CLC_COMPILER="$(type -P clang-${LLVM_MAJOR})"
+ -DLLVM_DEFAULT_TARGET_TRIPLE="${MULTIBUILD_VARIANT}"
+ -DLLVM_INCLUDE_TESTS="$(usex test)"
+ )
+
+ use test && mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ multibuild_foreach_variant cmake_src_compile
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ multibuild_foreach_variant cmake_build check-libclc
+}
+
+src_install() {
+ multibuild_foreach_variant cmake_src_install
+}
diff --git a/llvm-runtimes/libcxx/Manifest b/llvm-runtimes/libcxx/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-runtimes/libcxx/Manifest
+++ b/llvm-runtimes/libcxx/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/libcxx/libcxx-24.0.0_pre20260919.ebuild b/llvm-runtimes/libcxx/libcxx-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..f14ad30309f5
--- /dev/null
+++ b/llvm-runtimes/libcxx/libcxx-24.0.0_pre20260919.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="New implementation of the C++ standard library, targeting C++11"
+HOMEPAGE="https://libcxx.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="+clang +libcxxabi +static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ libcxxabi? (
+ ~llvm-runtimes/libcxxabi-${PV}[static-libs?,${MULTILIB_USEDEP}]
+ )
+ !libcxxabi? ( >=sys-devel/gcc-4.7:=[cxx] )
+"
+DEPEND="
+ ${RDEPEND}
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ dev-debug/gdb[python]
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=(
+ runtimes libcxx{,abi} libc llvm/{cmake,utils} cmake
+)
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+
+ if ! use libcxxabi && ! tc-is-gcc ; then
+ eerror "To build ${PN} against libsupc++, you have to use gcc. Other"
+ eerror "compilers are not supported. Please set CC=gcc and CXX=g++"
+ eerror "and try again."
+ die
+ fi
+}
+
+test_compiler() {
+ $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c++ - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+src_configure() {
+ local install_prefix=${EPREFIX}
+ is_crosspkg && install_prefix+=/usr/${CTARGET}
+
+ # note: we need to do this before multilib kicks in since it will
+ # alter the CHOST
+ local cxxabi cxxabi_incs
+ if use libcxxabi; then
+ cxxabi=system-libcxxabi
+ cxxabi_incs="${install_prefix}/usr/include/c++/v1"
+ else
+ local gcc_inc="${EPREFIX}/usr/lib/gcc/${CHOST}/$(gcc-fullversion)/include/g++-v$(gcc-major-version)"
+ cxxabi=libsupc++
+ cxxabi_incs="${gcc_inc};${gcc_inc}/${CHOST}"
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # Workaround for bgo #961153.
+ # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
+ if ! is_crosspkg; then
+ export CTARGET=${CHOST}
+ fi
+
+ if use clang; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
+ local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration of components that libunwind depends on.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ # link to compiler-rt
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ local nostdlib_flags=( -nostdlib++ )
+ if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
+ ewarn "${CXX} seems to lack runtime, trying with ${nostdlib_flags[*]}"
+ fi
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES=libcxx
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXX_CXX_ABI=${cxxabi}
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${cxxabi_incs}
+ # we're using our own mechanism for generating linker scripts
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=$(usex test)
+ -DLIBCXX_INSTALL_MODULES=ON
+ -DLIBCXX_USE_COMPILER_RT=${use_compiler_rt}
+ # this is broken with standalone builds, and also meaningless
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+ )
+ if is_crosspkg; then
+ # Needed to target built libc headers
+ local -x CFLAGS="${CFLAGS} -isystem ${ESYSROOT}/usr/${CTARGET}/usr/include"
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ # Install inside the cross sysroot.
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
+ )
+ fi
+ if use kernel_Darwin; then
+ # For Darwin it ships libc++ in system by default, conflicting prefix
+ mycmakeargs+=( -DLIBCXX_ABI_NAMESPACE=__gentoo1 )
+ fi
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_compile() {
+ cmake_src_compile
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ local libdir=$(get_libdir)
+ gen_shared_ldscript
+ use static-libs && gen_static_ldscript
+ fi
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build libcxx-test-suite-install-cxx
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ local libdir=$(get_libdir)
+ cp "${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_shared.so || die
+ if use static-libs; then
+ cp "${BUILD_DIR}"/{,libcxx/test-suite-install/}"${libdir}"/libc++_static.a || die
+ fi
+ fi
+ cmake_build check-cxx
+}
+
+multilib_src_install() {
+ cmake_src_install
+ # since we've replaced libc++.{a,so} with ldscripts, now we have to
+ # install the extra symlinks
+ if [[ ${CHOST} != *-darwin* ]] ; then
+ local libdir=$(get_libdir)
+ is_crosspkg && into /usr/${CTARGET}/usr
+ dolib.so "${libdir}"/libc++_shared.so
+ use static-libs && dolib.a "${libdir}"/libc++_static.a
+ fi
+
+ local install_prefix=
+ is_crosspkg && install_prefix=/usr/${CTARGET}
+ insinto "${install_prefix}/usr/share/libc++/gdb"
+ doins ../libcxx/utils/gdb/libcxx/printers.py
+
+ local lib_version=$(sed -n -e 's/^LIBCXX_LIBRARY_VERSION:STRING=//p' CMakeCache.txt || die)
+ [[ -n ${lib_version} ]] || die "Could not determine LIBCXX_LIBRARY_VERSION from CMakeCache.txt"
+
+ insinto "${install_prefix}/usr/share/gdb/auto-load/usr/$(get_libdir)"
+ newins - "libc++.so.${lib_version}-gdb.py" <<-EOF
+ __import__("sys").path.insert(0, "${EPREFIX}/usr/share/libc++/gdb")
+ __import__("printers").register_libcxx_printer_loader()
+ EOF
+}
+
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
+gen_static_ldscript() {
+ # Move it first.
+ mv "${libdir}"/libc++{,_static}.a || die
+ # Generate libc++.a ldscript for inclusion of its dependencies so that
+ # clang++ -stdlib=libc++ -static works out of the box.
+ local deps=(
+ libc++_static.a
+ $(usex libcxxabi libc++abi.a libsupc++.a)
+ )
+ # On Linux/glibc it does not link without libpthread or libdl. It is
+ # fine on FreeBSD.
+ use elibc_glibc && deps+=( libpthread.a libdl.a )
+
+ gen_ldscript "${deps[*]}" > "${libdir}"/libc++.a || die
+}
+
+gen_shared_ldscript() {
+ # Move it first.
+ mv "${libdir}"/libc++{,_shared}.so || die
+ local deps=(
+ libc++_shared.so
+ # libsupc++ doesn't have a shared version
+ $(usex libcxxabi libc++abi.so libsupc++.a)
+ )
+
+ gen_ldscript "${deps[*]}" > "${libdir}"/libc++.so || die
+}
diff --git a/llvm-runtimes/libcxxabi/Manifest b/llvm-runtimes/libcxxabi/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-runtimes/libcxxabi/Manifest
+++ b/llvm-runtimes/libcxxabi/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/libcxxabi/libcxxabi-24.0.0_pre20260919.ebuild b/llvm-runtimes/libcxxabi/libcxxabi-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..345fcaaf3fbb
--- /dev/null
+++ b/llvm-runtimes/libcxxabi/libcxxabi-24.0.0_pre20260919.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="Low level support for a standard C++ library"
+HOMEPAGE="https://libcxxabi.llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="+clang +static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ ${RDEPEND}
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-unwindlib-config:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libcxx{abi,} llvm/{cmake,utils} cmake )
+LLVM_TEST_COMPONENTS=( libc llvm/include/llvm/{Demangle,Testing} )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+test_compiler() {
+ target_is_not_host && return
+ $(tc-getCXX) ${CXXFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+ # Workaround for bgo #961153.
+ # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
+ if ! is_crosspkg; then
+ export CTARGET=${CHOST}
+ fi
+
+ if use clang; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
+ local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration of components that libunwind depends on.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,unwindlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ local nostdlib_flags=( -nostdlib++ )
+ if ! test_compiler && test_compiler "${nostdlib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
+ ewarn "${CXX} seems to lack stdlib, trying with ${nostdlib_flags[*]}"
+ fi
+
+ # link to compiler-rt
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ local libdir=$(get_libdir)
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx"
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLIBCXXABI_ENABLE_SHARED=ON
+ -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
+ -DLIBCXXABI_INCLUDE_TESTS=$(usex test)
+ -DLIBCXXABI_USE_COMPILER_RT=${use_compiler_rt}
+
+ # upstream is omitting standard search path for this
+ # probably because gcc & clang are bundling their own unwind.h
+ -DLIBCXXABI_LIBUNWIND_INCLUDES="${EPREFIX}"/usr/include
+ # this is broken with standalone builds, and also meaningless
+ -DLIBCXXABI_USE_LLVM_UNWINDER=OFF
+
+ -DLIBCXX_ENABLE_SHARED=ON
+ -DLIBCXX_ENABLE_STATIC=OFF
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ )
+ if is_crosspkg; then
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ # Install inside the cross sysroot.
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
+ )
+ fi
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+ fi
+ cmake_src_configure
+}
+
+multilib_src_compile() {
+ cmake_build cxxabi
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-cxxabi
+}
+
+multilib_src_install() {
+ DESTDIR="${D}" cmake_build install-cxxabi
+}
diff --git a/llvm-runtimes/libgcc/Manifest b/llvm-runtimes/libgcc/Manifest
index 0873a08690b6..900f2088fb4d 100644
--- a/llvm-runtimes/libgcc/Manifest
+++ b/llvm-runtimes/libgcc/Manifest
@@ -10,3 +10,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/libgcc/libgcc-24.0.0_pre20260919.ebuild b/llvm-runtimes/libgcc/libgcc-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..c680449c282c
--- /dev/null
+++ b/llvm-runtimes/libgcc/libgcc-24.0.0_pre20260919.ebuild
@@ -0,0 +1,173 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake crossdev flag-o-matic llvm.org llvm-utils python-any-r1
+inherit toolchain-funcs
+
+DESCRIPTION="Compiler runtime library for clang, compatible with libgcc_s"
+HOMEPAGE="https://llvm.org/"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="debug test"
+
+DEPEND="
+ ~llvm-runtimes/libunwind-${PV}[static-libs]
+"
+RDEPEND="
+ ${DEPEND}
+ !sys-devel/gcc
+"
+BDEPEND="
+ llvm-core/clang:${LLVM_MAJOR}
+ test? (
+ $(python_gen_any_dep ">=dev-python/lit-15[\${PYTHON_USEDEP}]")
+ =llvm-core/clang-${LLVM_VERSION}*:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+"
+
+LLVM_COMPONENTS=( compiler-rt cmake llvm/cmake llvm-libgcc third-party/siphash )
+LLVM_TEST_COMPONENTS=( llvm/include/llvm/TargetParser )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version ">=dev-python/lit-15[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ if target_is_not_host || tc-is-cross-compiler ; then
+ # strips vars like CFLAGS="-march=x86_64-v3" for non-x86 architectures
+ CHOST=${CTARGET} strip-unsupported-flags
+ # overrides host docs otherwise
+ DOCS=()
+ fi
+ python-any-r1_pkg_setup
+}
+
+src_configure() {
+ # We need to build a separate copy of compiler-rt, because we need to disable the
+ # COMPILER_RT_BUILTINS_HIDE_SYMBOLS option - compatibility with libgcc requires
+ # visibility of all symbols.
+
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ export CC=${CTARGET}-clang CXX=${CTARGET}-clang++
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ -DCOMPILER_RT_INSTALL_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCOMPILER_RT_INCLUDE_TESTS=$(usex test)
+ -DCOMPILER_RT_BUILD_CRT=OFF
+ -DCOMPILER_RT_BUILD_CTX_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_LIBFUZZER=OFF
+ -DCOMPILER_RT_BUILD_MEMPROF=OFF
+ -DCOMPILER_RT_BUILD_ORC=OFF
+ -DCOMPILER_RT_BUILD_PROFILE=OFF
+ -DCOMPILER_RT_BUILD_SANITIZERS=OFF
+ -DCOMPILER_RT_BUILD_XRAY=OFF
+
+ -DCOMPILER_RT_BUILTINS_HIDE_SYMBOLS=OFF
+
+ -DPython3_EXECUTABLE="${PYTHON}"
+ )
+
+ # disable building non-native runtimes since we don't do multilib
+ if use amd64; then
+ mycmakeargs+=(
+ -DCAN_TARGET_i386=OFF
+ )
+ fi
+
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+
+ -DCOMPILER_RT_TEST_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang"
+ -DCOMPILER_RT_TEST_CXX_COMPILER="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/bin/clang++"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+# Usage: deps
+gen_ldscript() {
+ local output_format
+ output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p')
+ [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"
+
+ cat <<-END_LDSCRIPT
+/* GNU ld script
+ Include missing dependencies
+*/
+${output_format}
+GROUP ( $@ )
+END_LDSCRIPT
+}
+
+src_compile() {
+ cmake_src_compile
+
+ local rtlib=$(
+ "${CC}" -rtlib=compiler-rt -resource-dir="${BUILD_DIR}" \
+ -print-libgcc-file-name || die
+ )
+
+ # Use the llvm-libgcc's version script to produce libgcc.{a,so}, which
+ # combines compiler-rt and libunwind into a libgcc replacement.
+ #
+ # What we do here is similar to what upstream does[0], with the following
+ # differences:
+ #
+ # * We build the local copy of compiler-rt manually, to have a full control
+ # over CMake options.
+ # * Upstream links the locally built copy of libunwind statically. We link the
+ # system-wide libunwind dynamically.
+ #
+ # [0] https://github.com/llvm/llvm-project/blob/llvmorg-19.1.7/llvm-libgcc/CMakeLists.txt#L102-L120
+ "${CC}" -E -xc \
+ "${WORKDIR}/llvm-libgcc/gcc_s.ver.in" \
+ -o gcc_s.ver || die
+ "${CC}" -nostdlib \
+ ${LDFLAGS} \
+ -Wl,--version-script,gcc_s.ver \
+ -Wl,--undefined-version \
+ -Wl,--whole-archive \
+ "${rtlib}" \
+ -Wl,-soname,libgcc_s.so.1.0 \
+ -lc -lunwind -shared \
+ -o libgcc_s.so.1.0 || die
+ # Generate libgcc_s.so ldscript for inclusion of libunwind as a
+ # dependency so that `clang -lgcc_s` works out of the box.
+ gen_ldscript libgcc_s.so.1.0 libunwind.so.1.0 > libgcc_s.so || die
+ cp "${rtlib}" libgcc.a || die
+}
+
+src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+
+ cmake_build check-builtins
+}
+
+src_install() {
+ local libdir=$(get_libdir)
+ dolib.so libgcc_s.so.1.0 libgcc_s.so
+ dolib.a libgcc.a
+ dosym libgcc_s.so.1.0 "/usr/${libdir}/libgcc_s.so.1"
+ dosym libunwind.a "/usr/${libdir}/libgcc_eh.a"
+}
diff --git a/llvm-runtimes/libunwind/Manifest b/llvm-runtimes/libunwind/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-runtimes/libunwind/Manifest
+++ b/llvm-runtimes/libunwind/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260919.ebuild b/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..264dc5aae763
--- /dev/null
+++ b/llvm-runtimes/libunwind/libunwind-24.0.0_pre20260919.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org llvm-utils
+inherit python-any-r1 toolchain-funcs
+
+DESCRIPTION="C++ runtime stack unwinder from LLVM"
+HOMEPAGE="https://llvm.org/docs/ExceptionHandling.html"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0"
+IUSE="cet +clang +debug static-libs test"
+REQUIRED_USE="test? ( clang )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !sys-libs/libunwind
+"
+DEPEND="
+ llvm-core/llvm:${LLVM_MAJOR}
+"
+BDEPEND="
+ clang? (
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/clang-linker-config:${LLVM_MAJOR}
+ llvm-runtimes/clang-rtlib-config:${LLVM_MAJOR}
+ )
+ !test? (
+ ${PYTHON_DEPS}
+ )
+ test? (
+ $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
+ )
+"
+
+LLVM_COMPONENTS=( runtimes libunwind libcxx llvm/{cmake,utils} cmake )
+LLVM_TEST_COMPONENTS=( libc libcxxabi )
+llvm.org_set_globals
+
+python_check_deps() {
+ use test || return 0
+ python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+test_compiler() {
+ target_is_not_host && return
+ local compiler=${1}
+ shift
+ ${compiler} ${CFLAGS} ${LDFLAGS} "${@}" -o /dev/null -x c - \
+ <<<'int main() { return 0; }' &>/dev/null
+}
+
+multilib_src_configure() {
+ if use clang; then
+ llvm_prepend_path -b "${LLVM_MAJOR}"
+ fi
+
+ local libdir=$(get_libdir)
+
+ # https://github.com/llvm/llvm-project/issues/56825
+ # also separately bug #863917
+ filter-lto
+
+ # Workaround for bgo #961153.
+ # TODO: Fix the multilib.eclass, so it sets CTARGET properly.
+ if ! is_crosspkg; then
+ export CTARGET=${CHOST}
+ fi
+
+ if use clang; then
+ local -x CC=${CTARGET}-clang-${LLVM_MAJOR}
+ local -x CXX=${CTARGET}-clang++-${LLVM_MAJOR}
+ strip-unsupported-flags
+
+ # The full clang configuration might not be ready yet. Use the partial
+ # configuration files that are guaranteed to exist even during initial
+ # installations and upgrades.
+ local flags=(
+ --config="${ESYSROOT}"/etc/clang/"${LLVM_MAJOR}"/gentoo-{rtlib,linker}.cfg
+ )
+ local -x CFLAGS="${CFLAGS} ${flags[@]}"
+ local -x CXXFLAGS="${CXXFLAGS} ${flags[@]}"
+ local -x LDFLAGS="${LDFLAGS} ${flags[@]}"
+ fi
+
+ # Check whether C compiler runtime is available.
+ if ! test_compiler "$(tc-getCC)"; then
+ local nolib_flags=( -nodefaultlibs -lc )
+ if test_compiler "$(tc-getCC)" "${nolib_flags[@]}"; then
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ elif test_compiler "$(tc-getCC)" "${nolib_flags[@]}" -nostartfiles; then
+ # Avoiding -nostartfiles earlier on for bug #862540,
+ # and set available entry symbol for bug #862798.
+ nolib_flags+=( -nostartfiles -e main )
+ local -x LDFLAGS="${LDFLAGS} ${nolib_flags[*]}"
+ ewarn "${CC} seems to lack runtime, trying with ${nolib_flags[*]}"
+ fi
+ fi
+ # Check whether C++ standard library is available,
+ local nostdlib_flags=( -nostdlib++ )
+ if ! test_compiler "$(tc-getCXX)" &&
+ test_compiler "$(tc-getCXX)" "${nostdlib_flags[@]}"
+ then
+ local -x LDFLAGS="${LDFLAGS} ${nostdlib_flags[*]}"
+ ewarn "${CXX} seems to lack runtime, trying with ${nostdlib_flags[*]}"
+ fi
+
+ # link to compiler-rt
+ # https://github.com/gentoo/gentoo/pull/21516
+ local use_compiler_rt=OFF
+ [[ $(tc-get-c-rtlib) == compiler-rt ]] && use_compiler_rt=ON
+
+ # Respect upstream build type assumptions (bug #910436) where they do:
+ # -DLIBUNWIND_ENABLE_ASSERTIONS=ON =>
+ # -DCMAKE_BUILD_TYPE=DEBUG => -UNDEBUG
+ # -DCMAKE_BUILD_TYPE!=debug => -DNDEBUG
+ # -DLIBUNWIND_ENABLE_ASSERTIONS=OFF =>
+ # -UNDEBUG
+ # See also https://github.com/llvm/llvm-project/issues/86#issuecomment-1649668826.
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DCMAKE_C_COMPILER_TARGET="${CTARGET}"
+ -DCMAKE_CXX_COMPILER_TARGET="${CTARGET}"
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DLLVM_ENABLE_RUNTIMES="libunwind"
+ -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
+ -DLLVM_INCLUDE_TESTS=OFF
+ -DLIBUNWIND_ENABLE_CET=$(usex cet)
+ -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
+ -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
+ -DLIBUNWIND_INCLUDE_TESTS=$(usex test)
+ -DLIBUNWIND_INSTALL_HEADERS=ON
+
+ # cross-unwinding increases unwinding footprint (to account
+ # for the worst case) and causes some breakage on AArch64
+ # https://github.com/llvm/llvm-project/issues/152549
+ -DLIBUNWIND_ENABLE_CROSS_UNWINDING=OFF
+
+ # avoid dependency on libgcc_s if compiler-rt is used
+ -DLIBUNWIND_USE_COMPILER_RT=${use_compiler_rt}
+ )
+ if is_crosspkg; then
+ mycmakeargs+=(
+ # Without this, the compiler will compile a test program
+ # and fail due to no builtins.
+ -DCMAKE_C_COMPILER_WORKS=1
+ -DCMAKE_CXX_COMPILER_WORKS=1
+ # Install inside the cross sysroot.
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/${CTARGET}/usr"
+ )
+ fi
+ if use test; then
+ mycmakeargs+=(
+ -DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx"
+ -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}/libcxx"
+
+ -DLIBCXXABI_LIBDIR_SUFFIX=
+ -DLIBCXXABI_ENABLE_SHARED=OFF
+ -DLIBCXXABI_ENABLE_STATIC=ON
+ -DLIBCXXABI_USE_LLVM_UNWINDER=ON
+ -DLIBCXXABI_INCLUDE_TESTS=OFF
+
+ -DLIBCXX_LIBDIR_SUFFIX=
+ -DLIBCXX_ENABLE_SHARED=OFF
+ -DLIBCXX_ENABLE_STATIC=ON
+ -DLIBCXX_CXX_ABI=libcxxabi
+ -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF
+ -DLIBCXX_HAS_MUSL_LIBC=$(llvm_cmake_use_musl)
+ -DLIBCXX_HAS_GCC_S_LIB=OFF
+ -DLIBCXX_INCLUDE_TESTS=OFF
+ -DLIBCXX_INCLUDE_BENCHMARKS=OFF
+ )
+ fi
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ local -x LIT_PRESERVES_TMP=1
+ cmake_build check-unwind
+}
+
+multilib_src_install() {
+ DESTDIR=${D} cmake_build install-unwind
+}
diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest
index e6c47baddb89..074b2fa9beb4 100644
--- a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest
+++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest
@@ -4,3 +4,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-24.0.0_pre20260919.ebuild b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..97ae1a52b3f2
--- /dev/null
+++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-24.0.0_pre20260919.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org
+
+DESCRIPTION="OpenMP target library for amdgcn devices"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+
+RDEPEND="
+ !<llvm-runtimes/offload-22[llvm_targets_AMDGPU(-)]
+"
+BDEPEND="
+ ~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_AMDGPU]
+ llvm-core/lld:${LLVM_MAJOR}[llvm_targets_AMDGPU]
+"
+
+LLVM_COMPONENTS=(
+ runtimes openmp cmake llvm/{cmake,utils} libc/shared
+ offload/include
+)
+llvm.org_set_globals
+
+src_configure() {
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ local triple=${PN#openmp-}
+ filter-flags '-m*'
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ -DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest
index e6c47baddb89..074b2fa9beb4 100644
--- a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest
+++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest
@@ -4,3 +4,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-24.0.0_pre20260919.ebuild b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..76075d09ffee
--- /dev/null
+++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-24.0.0_pre20260919.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org
+
+DESCRIPTION="OpenMP target library for nvptx64 devices"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+
+RDEPEND="
+ !<llvm-runtimes/offload-22[llvm_targets_NVPTX(-)]
+"
+BDEPEND="
+ ~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_NVPTX]
+ llvm-core/lld:${LLVM_MAJOR}[llvm_targets_NVPTX]
+"
+
+LLVM_COMPONENTS=(
+ runtimes openmp cmake llvm/{cmake,utils} libc/shared
+ offload/include
+)
+llvm.org_set_globals
+
+src_configure() {
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ local triple=${PN#openmp-}
+ filter-flags '-m*'
+ strip-unsupported-flags
+
+ local mycmakeargs=(
+ -DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-runtimes/openmp-spirv64-intel/Manifest b/llvm-runtimes/openmp-spirv64-intel/Manifest
index 89370ff8e310..4b790e8b1728 100644
--- a/llvm-runtimes/openmp-spirv64-intel/Manifest
+++ b/llvm-runtimes/openmp-spirv64-intel/Manifest
@@ -2,3 +2,4 @@ DIST llvm-project-02bd47db9d3c4313fe1b5054ed8a1a081f1b7f78.tar.gz 317069647 BLAK
DIST llvm-project-0bf3638ddfe6e8bb3b79ebe8c2a918384a5df612.tar.gz 278258416 BLAKE2B 85007e0dfc4d5908c2fb0863923ef86e6a6c0d4302da6cbefd97097d6c19066234ca76a06af1c404aab7c3fe85ba6d9ac08aca5343b5f24fc3727dde1de2245e SHA512 91c6bab8974b95725cb70d2e3bef5abc5358e6836fe00c6348d4a886914b424fb49e9b0a85cf67af7b3a8f0c863d33d22fe74fffc63da813d7d63e3e0e32cf85
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-24.0.0_pre20260919.ebuild b/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..fd6ed0f1280f
--- /dev/null
+++ b/llvm-runtimes/openmp-spirv64-intel/openmp-spirv64-intel-24.0.0_pre20260919.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake flag-o-matic llvm.org
+
+DESCRIPTION="OpenMP target library for spirv64 Intel devices"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+
+BDEPEND="
+ ~llvm-core/clang-${PV}:${LLVM_MAJOR}[llvm_targets_SPIRV]
+ llvm-core/lld:${LLVM_MAJOR}[llvm_targets_SPIRV]
+"
+
+LLVM_COMPONENTS=(
+ runtimes openmp cmake llvm/{cmake,utils} libc/shared
+ offload/include
+)
+llvm.org_set_globals
+
+src_configure() {
+ local -x CC=${CHOST}-clang-${LLVM_MAJOR}
+ local -x CXX=${CHOST}-clang++-${LLVM_MAJOR}
+ local triple=${PN#openmp-}
+ filter-flags '-m*'
+ strip-unsupported-flags
+ # incompatible with the spirv target, https://bugs.gentoo.org/981726
+ filter-flags -frecord-gcc-switches
+
+ # https://github.com/llvm/llvm-project/issues/186598
+ filter-ldflags '-Wl,*'
+
+ local mycmakeargs=(
+ -DLLVM_DEFAULT_TARGET_TRIPLE=${triple}
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}"
+ )
+ cmake_src_configure
+}
diff --git a/llvm-runtimes/openmp/Manifest b/llvm-runtimes/openmp/Manifest
index c1e1a95276a5..b3483561c984 100644
--- a/llvm-runtimes/openmp/Manifest
+++ b/llvm-runtimes/openmp/Manifest
@@ -14,3 +14,4 @@ DIST llvm-project-22.1.8.src.tar.xz 167061596 BLAKE2B 092204f62e0f0364a041c737eb
DIST llvm-project-22.1.8.src.tar.xz.sig 119 BLAKE2B 2ce93472036e68782252991e4a8bdbeeec8706a56022220083a38a42ef18714a7894c41aaa04dc0d03f18601d8bfc1a5a030ed0ef0f0d64a662eae9843a4b362 SHA512 99a457b5b1fb409a5fe72b59ebd4ddae5cade3e5f2493e33b44d4f4b4625f7a1743f80106efb1134668842b15ea3400ce2c29263bec8ff986e05040910125e15
DIST llvm-project-23.1.1.src.tar.xz 179168672 BLAKE2B 31d0ad202f4ad38d001baaf638a756508b164229b02a6e41b9689508a33b3a7baecaa10398e20f3661cacb712663fe379eeb94e50e017e40ae546a7e7de8049d SHA512 e51c45f01e95272771bfee8382b213a2e21d3c62e273ff58967cfe40b87f45d2b37a4797b8b83fab025ed7a0ad32adef48406ade2d049da3d7f1799b30edea39
DIST llvm-project-23.1.1.src.tar.xz.sig 466 BLAKE2B fd062ee7b6a59295f1ba558ed35fcf03d9d1a2f716cc710ae1b375c9f673eaaf21a7a503652fefbcc91233c9df279c4521f487539264badd0bf591362657024b SHA512 d2e1101f6f3569cc82630e94d9021aaa47e32636d5b0b7fe90c01a56523e3d772835ad7c2a6f2c1a199ed1624a6f12429b43865d6f41405b73b275483effe581
+DIST llvm-project-3dcd66d0110335d7d1a5921fd085914b66ffbd3c.tar.gz 317468883 BLAKE2B af57748bf462852a7d09751162e43c52b7d8fa4d1e3e9b021062b11132ad2268b2ddefd0e2d0b2391de1e8120b751fe46a368bc58dce83b8d5e4413716701031 SHA512 678027e165bf444eb522a70b5c52018dba4b41828fa7db353bd1155ec326633adfe64e20e5975b672fc2669c6fd7e0dec0dbd8c63ee89e0393264d9af5ab3090
diff --git a/llvm-runtimes/openmp/openmp-24.0.0_pre20260919.ebuild b/llvm-runtimes/openmp/openmp-24.0.0_pre20260919.ebuild
new file mode 100644
index 000000000000..a03bcbca852f
--- /dev/null
+++ b/llvm-runtimes/openmp/openmp-24.0.0_pre20260919.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit cmake-multilib crossdev flag-o-matic llvm.org python-single-r1
+inherit toolchain-funcs
+
+DESCRIPTION="OpenMP runtime libraries for LLVM/clang compiler"
+HOMEPAGE="https://openmp.llvm.org"
+
+LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
+SLOT="0/${LLVM_SOABI}"
+IUSE="
+ +clang +debug fortran gdb-plugin hwloc offload ompt test
+ cuda level-zero rocm
+"
+REQUIRED_USE="
+ gdb-plugin? ( ${PYTHON_REQUIRED_USE} )
+"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] )
+ offload? (
+ dev-libs/libffi:=
+ ~llvm-core/llvm-${PV}
+ level-zero? ( dev-libs/level-zero:= )
+ rocm? ( dev-libs/rocr-runtime:= )
+ )
+"
+# tests:
+# - dev-python/lit provides the test runner
+# - llvm-core/llvm provide test utils (e.g. FileCheck)
+# - llvm-core/clang provides the compiler to run tests
+RDEPEND="
+ ${DEPEND}
+ gdb-plugin? ( ${PYTHON_DEPS} )
+ offload? (
+ !llvm-runtimes/offload
+ cuda? ( ~llvm-runtimes/openmp-nvptx64-nvidia-cuda-${PV} )
+ level-zero? ( ~llvm-runtimes/openmp-spirv64-intel-${PV} )
+ rocm? ( ~llvm-runtimes/openmp-amdgcn-amd-amdhsa-${PV} )
+ )
+"
+BDEPEND="
+ dev-lang/perl
+ clang? ( llvm-core/clang )
+ fortran? (
+ llvm-core/flang:${LLVM_MAJOR}
+ llvm-runtimes/flang-rt:${LLVM_MAJOR}
+ )
+ gdb-plugin? ( ${PYTHON_DEPS} )
+ offload? (
+ virtual/pkgconfig
+ )
+ test? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/lit[${PYTHON_USEDEP}]
+ ')
+ llvm-core/clang:${LLVM_MAJOR}
+ llvm-core/llvm:${LLVM_MAJOR}
+ )
+"
+
+LLVM_COMPONENTS=(
+ runtimes openmp offload cmake libc llvm/{cmake,include,utils}
+ third-party/unittest
+)
+llvm.org_set_globals
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/offload/OffloadAPI.h
+ /usr/include/offload/OffloadPrint.hpp
+ /usr/include/offload/cuda/cuda_runtime.h
+ /usr/include/offload/hip/hip_runtime.h
+ /usr/include/offload/kernel/DefineLanguageNames.inc
+ /usr/include/offload/kernel/LanguageErrors.h
+ /usr/include/offload/kernel/LanguageLaunch.h
+ /usr/include/offload/kernel/LanguageRuntime.h
+ /usr/include/offload/kernel/Types.h
+ /usr/include/offload/kernel/UndefineLanguageNames.inc
+)
+
+pkg_pretend() {
+ if [[ ${LLVM_ALLOW_GPU_TESTING} ]]; then
+ ewarn "LLVM_ALLOW_GPU_TESTING set. This package will run tests against your"
+ ewarn "GPU if it is supported. Note that these tests may be flaky, fail or"
+ ewarn "hang, or even cause your GPU to crash (requiring a reboot)."
+ fi
+}
+
+pkg_setup() {
+ if use gdb-plugin || use test; then
+ python-single-r1_pkg_setup
+ fi
+}
+
+multilib_src_configure() {
+ if use clang && ! is_crosspkg; then
+ # Only do this conditionally to allow overriding with
+ # e.g. CC=clang-13 in case of breakage
+ if ! tc-is-clang ; then
+ local -x CC=${CHOST}-clang
+ local -x CXX=${CHOST}-clang++
+ fi
+
+ strip-unsupported-flags
+ fi
+
+ if use fortran; then
+ local -x FC=flang-${LLVM_MAJOR} F77=flang-${LLVM_MAJOR}
+ strip-unsupported-flags
+ else
+ local -x FC= F77=
+ fi
+
+ # LTO causes issues in other packages building, #870127
+ filter-lto
+
+ # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
+ use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
+
+ local libdir="$(get_libdir)"
+ local mycmakeargs=(
+ -DLLVM_ENABLE_RUNTIMES=openmp
+ -DLLVM_LIBDIR_SUFFIX="${libdir#lib}"
+ -DLLVM_BINARY_DIR="${BROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+
+ -DLIBOMP_USE_HWLOC=$(usex hwloc)
+ -DLIBOMP_OMPD_GDB_SUPPORT=$(multilib_native_usex gdb-plugin)
+ -DLIBOMP_OMPT_SUPPORT=$(usex ompt)
+
+ # do not install libgomp.so & libiomp5.so aliases
+ -DLIBOMP_INSTALL_ALIASES=OFF
+ # disable unnecessary hack copying stuff back to srcdir
+ -DLIBOMP_COPY_EXPORTS=OFF
+ # this breaks building static target libs
+ -DBUILD_SHARED_LIBS=OFF
+ )
+
+ if multilib_is_native_abi && use fortran; then
+ mycmakeargs+=(
+ # cmake.eclass does not set if it we don't inherit fortran-2
+ # and upstream code relies on it being set before Fortran logic
+ # kicks in and reds envvars
+ -DCMAKE_Fortran_COMPILER="${FC}"
+ -DRUNTIMES_FORTRAN_MODULES=ON
+ -DRUNTIMES_INSTALL_RESOURCE_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}"
+ )
+ fi
+
+ if multilib_is_native_abi && use offload; then
+ local ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi)
+ local ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi)
+ local plugins="host"
+
+ if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
+ if use rocm; then
+ plugins+=";amdgpu"
+ fi
+ if use cuda; then
+ plugins+=";cuda"
+ fi
+ if use level-zero; then
+ plugins+=";level_zero"
+ fi
+ fi
+
+ mycmakeargs+=(
+ -DLLVM_ENABLE_RUNTIMES="openmp;offload"
+ -DOFFLOAD_INCLUDE_TESTS=$(usex test)
+ -DLIBOMPTARGET_PLUGINS_TO_BUILD="${plugins}"
+ -DLIBOMPTARGET_OMPT_SUPPORT="$(usex ompt)"
+ )
+
+ [[ ! ${LLVM_ALLOW_GPU_TESTING} ]] && mycmakeargs+=(
+ # prevent trying to access the GPU
+ -DLIBOMPTARGET_AMDGPU_ARCH=LIBOMPTARGET_AMDGPU_ARCH-NOTFOUND
+ -DLIBOMPTARGET_NVPTX_ARCH=LIBOMPTARGET_NVPTX_ARCH-NOTFOUND
+ -DLIBOMPTARGET_OFFLOAD_ARCH=LIBOMPTARGET_OFFLOAD_ARCH-NOTFOUND
+ )
+ fi
+
+ use test && mycmakeargs+=(
+ -DLLVM_LIT_ARGS="$(get_lit_flags)"
+ -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang-${LLVM_MAJOR}")"
+ -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++-${LLVM_MAJOR}")"
+ # may be set to empty above
+ -DOPENMP_TEST_Fortran_COMPILER="${FC}"
+ )
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ # respect TMPDIR!
+ local -x LIT_PRESERVES_TMP=1
+ local targets=( check-openmp )
+ if multilib_is_native_abi && use offload; then
+ targets+=( check-offload check-offload-unit )
+ fi
+
+ if use fortran; then
+ # hack header search around by copying the modules to a directory
+ # that is already given via -I
+ cp "${BUILD_DIR}/$(get_libdir)/clang"/*/finclude/flang/*/*.mod \
+ "${WORKDIR}/offload/test/" || die
+ fi
+
+ cmake_build "${targets[@]}"
+}
diff --git a/media-fonts/dina/dina-2.93-r1.ebuild b/media-fonts/dina/dina-2.93-r1.ebuild
new file mode 100644
index 000000000000..17e1af33a597
--- /dev/null
+++ b/media-fonts/dina/dina-2.93-r1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=9
+
+FONT_OPENTYPE_COMPAT=1
+inherit font
+
+DESCRIPTION="Monospace bitmap font, primarily aimed at programmers"
+HOMEPAGE="https://www.dcmembers.com/jibsen/download/61/"
+SRC_URI="https://www.donationcoder.com/forum/index.php?action=dlattach;topic=36049.0;attach=78562 -> ${P}.zip"
+S="${WORKDIR}/BDF"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~loong ~riscv ~x86"
+RESTRICT="strip binchecks"
+
+BDEPEND="app-arch/unzip"
+
+FONT_SUFFIX="bdf"
diff --git a/media-fonts/ibm-plex/ibm-plex-5.1.3.ebuild b/media-fonts/ibm-plex/ibm-plex-5.1.3.ebuild
index 0a668ca7f4f7..fecb26aa3080 100644
--- a/media-fonts/ibm-plex/ibm-plex-5.1.3.ebuild
+++ b/media-fonts/ibm-plex/ibm-plex-5.1.3.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/IBM/plex/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="OFL-1.1"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 x86"
IUSE="otf +ttf"
REQUIRED_USE="^^ ( otf ttf )"
diff --git a/media-fonts/unifont/Manifest b/media-fonts/unifont/Manifest
index 2fc7f833ad14..a83f5519b27c 100644
--- a/media-fonts/unifont/Manifest
+++ b/media-fonts/unifont/Manifest
@@ -1,2 +1,3 @@
-DIST unifont-17.0.03.tar.gz 31749332 BLAKE2B db9030ea8a4fc072858d8532a0f27513258aa46ab5c43144ef9993066644637676ee0b88cd3a0626b48e9c5b75998dc97dbd26548140a47b1a7bc5b5de4b2498 SHA512 70ebb98fe81b8e89d887002be5bdcd7e396cdc21f6404013f9a4b667c61c7c5967c905039d55c45f2455e653c6dfe3284dd62841697a17d4d2d6ef9c9b5ad464
DIST unifont-17.0.05.tar.gz 41506878 BLAKE2B 18873139bfae5b3fb307a6b3de7d8d2384ad90107cfb25bb76ded85be8d40ab1fa110f64162551b0527906c0210ff56f273af671299e9aa99edda7371f65b059 SHA512 79b4e57d95cd34f3964d666f9cf284a85d9e137f7b396dd459b66ed9681b789491349915922aae9f51448b0c80e181caa1a96b5a0ed4744b2a87412bcb39ca22
+DIST unifont-18.0.01.tar.gz 41427259 BLAKE2B f17508ceabf854891a03eb9cd88f64c65c6e86fd5ddff91df0255b458a1a6c1b4041616c9d66604bcdada85718256a4923d73a5507e5f6cd8e3ae405bdad1c4f SHA512 3515e0b07f55a852aa4ea0b40f4f8f955e8c45ecda8c6b5f0fdd4bea4cafecf6cebe8791e4b388df7cc40ab3cf9ed57e412839cd48b52778f7c59954b40c4e1b
+DIST unifont-18.0.01.tar.gz.sig 566 BLAKE2B cf2f4d391318bb2224b1ce43aad07ffa02d1cc800a5609a9b5ae3c4bfe24bc494d84e974ddefc214022c77dacd9bb5de0c63f62bff1a168e2d236af9e1d2e12f SHA512 ed1bfb4fcc4548f1f5b5d2e10b3dcec5b676217079a5e5412e1e11c9f7059620ddce2c83832dff6cd9d77fedf9d499dd75c26a5b6fcf8628ce820ed7d5aed59c
diff --git a/media-fonts/unifont/metadata.xml b/media-fonts/unifont/metadata.xml
index 611bf701ac11..b4483f03e214 100644
--- a/media-fonts/unifont/metadata.xml
+++ b/media-fonts/unifont/metadata.xml
@@ -10,8 +10,6 @@
<name>Cjk</name>
</maintainer>
<use>
- <flag name="fontforge">Build TrueType fonts from sources, using <pkg>media-gfx/fontforge</pkg>
- </flag>
<flag name="utils">Build unifont utilities and use them to compile OpenType fonts from sources</flag>
</use>
<origin>baldeagleos-repo</origin>
diff --git a/media-fonts/unifont/unifont-17.0.03.ebuild b/media-fonts/unifont/unifont-18.0.01.ebuild
index 7d01257df550..682bb8fee2ca 100644
--- a/media-fonts/unifont/unifont-17.0.03.ebuild
+++ b/media-fonts/unifont/unifont-18.0.01.ebuild
@@ -3,62 +3,52 @@
EAPI=8
-inherit font optfeature toolchain-funcs
+inherit font optfeature toolchain-funcs verify-sig
-DESCRIPTION="GNU Unifont - a Pan-Unicode X11 bitmap iso10646 font"
+DESCRIPTION="Unicode bitmap font with full Basic Multilingual Plane coverage"
HOMEPAGE="https://unifoundry.com/"
-SRC_URI="mirror://gnu/${PN}/${P}/${P}.tar.gz"
+SRC_URI="
+ mirror://gnu/${PN}/${P}/${P}.tar.gz
+ verify-sig? ( mirror://gnu/${PN}/${P}/${P}.tar.gz.sig )
+"
LICENSE="GPL-2+ || ( GPL-2+-with-font-exception OFL-1.1 ) public-domain utils? ( FDL-1.3+ )"
SLOT="0"
-KEYWORDS="~alpha amd64 arm ~loong ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="fontforge ttf utils"
-REQUIRED_USE="ttf? ( fontforge )"
+KEYWORDS="~alpha ~amd64 ~arm ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="ttf utils"
+REQUIRED_USE="ttf? ( utils )"
BDEPEND="
media-libs/fontconfig
- fontforge? (
+ utils? (
app-text/bdf2psf
- dev-lang/perl
- dev-perl/GD[png(+)]
- media-gfx/fontforge
x11-apps/bdftopcf
+ ttf? ( media-gfx/fontforge )
)
-"
-RDEPEND="
- utils? (
- dev-lang/perl
- dev-perl/GD[png(+)]
- virtual/perl-Getopt-Long
- )
+ verify-sig? ( sec-keys/openpgp-keys-paulhardy )
"
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/paulhardy.asc
+
PATCHES=(
"${FILESDIR}"/${PN}-17.0.03-Makefile.patch
+ "${FILESDIR}"/${PN}-17.0.05-Makefile.patch
)
src_compile() {
- if use fontforge || use utils; then
- local buildargs=(
- CC="$(tc-getCC)"
- CFLAGS="${CFLAGS}"
- )
- emake "${buildargs[@]}" bindir libdir
- fi
+ if use utils; then
+ tc-export CC
+ emake bindir libdir
- if use fontforge; then
local font_targets=(
opentype
pcf
psf
$(usev ttf truetype)
- # compile unifont.bmp
- $(usev utils bigpic)
# compile unifont_all.hex
$(usev utils coverage)
)
- # -j1 for bug #843584
- emake -j1 -C font "${font_targets[@]}"
+ emake -C font "${font_targets[@]}"
fi
}
@@ -99,4 +89,5 @@ pkg_postinst() {
font_pkg_postinst
use utils && optfeature "unifont-viewer" dev-perl/Wx
+ use utils && optfeature "unipng2hex" dev-perl/GD virtual/perl-Getopt-Long
}
diff --git a/media-gfx/exiv2/exiv2-0.28.9.ebuild b/media-gfx/exiv2/exiv2-0.28.9.ebuild
index 0782653dd3dc..5dd6e84012b6 100644
--- a/media-gfx/exiv2/exiv2-0.28.9.ebuild
+++ b/media-gfx/exiv2/exiv2-0.28.9.ebuild
@@ -14,7 +14,7 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
else
SRC_URI="https://github.com/Exiv2/exiv2/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
fi
LICENSE="GPL-2+"
diff --git a/media-gfx/inkscape/Manifest b/media-gfx/inkscape/Manifest
index b8b8f2e5e0cc..73f2cff1173f 100644
--- a/media-gfx/inkscape/Manifest
+++ b/media-gfx/inkscape/Manifest
@@ -1,2 +1 @@
-DIST inkscape-1.4.3.tar.xz 53907460 BLAKE2B 68cb04a34d82a5374ef0052e7932cb3d0bac0d11ffdb8da889167d8bdede826c6c44664d0242e8d5a2daf1581605c5c83e828147dc9ff76a13039b162a2de4cb SHA512 8bf8047f656f472ecac7a35badf83765873688901e94e93ec8388f920e1b8370e8c8c88d06ba91c26d668714b912f444b49bed59a8d1cf3e14d3ab206c3aff60
DIST inkscape-1.4.4.tar.xz 53861940 BLAKE2B 93aba877b468bb1ca174c88dad4e6a638410ff57cbed27c85035d8a9ab5ca7ec97ccf1b4754f657bebd26c3fe0df7aca11fde00b67b0714a74376fbeb3bf591f SHA512 6ccaad4c63f8f654529a801dfe649501afd8b1243094e0222afbf8141258ab139f418efc112c0a2061a1bba7230ae13a0fc9fdc55ce9052630607a94500c9edd
diff --git a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01-warnings.patch b/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01-warnings.patch
deleted file mode 100644
index 0ab9c2255902..000000000000
--- a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01-warnings.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 5d4310dd8a0e4ca83850789a083710f82fb4d9b3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ji=C5=99=C3=AD=20Faist?= <faist@rexcontrols.cz>
-Date: Mon, 2 Feb 2026 17:39:08 +0100
-Subject: [PATCH 2/3] Fix warning with poppler 26.x.x
-
-(cherry picked from commit ada064ea37f37a92bb1846a048a3da2c2185d3b2)
----
- .../internal/pdfinput/svg-builder.cpp | 24 +++++++++++++++++--
- 1 file changed, 22 insertions(+), 2 deletions(-)
-
-diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
-index 8b2e6f3d54..94d4342dc4 100644
---- a/src/extension/internal/pdfinput/svg-builder.cpp
-+++ b/src/extension/internal/pdfinput/svg-builder.cpp
-@@ -2095,7 +2095,17 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height
- image_stream = new ImageStream(str, width, 1, 1);
- }
- #if POPPLER_CHECK_VERSION(26, 0, 0)
-- image_stream->rewind();
-+ if(!image_stream->rewind())
-+ {
-+ g_warning("ImageStream: Failed to rewind image stream");
-+ png_destroy_write_struct(&png_ptr, &info_ptr);
-+ if (!_embed_images) {
-+ fclose(fp);
-+ g_free(file_name);
-+ }
-+ delete image_stream;
-+ return nullptr;
-+ }
- #else
- image_stream->reset();
- #endif
-@@ -2125,7 +2135,17 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height
- color_map->getNumPixelComps(),
- color_map->getBits());
- #if POPPLER_CHECK_VERSION(26, 0, 0)
-- image_stream->rewind();
-+ if(!image_stream->rewind())
-+ {
-+ g_warning("ImageStream: Failed to rewind image stream");
-+ png_destroy_write_struct(&png_ptr, &info_ptr);
-+ if (!_embed_images) {
-+ fclose(fp);
-+ g_free(file_name);
-+ }
-+ delete image_stream;
-+ return nullptr;
-+ }
- #else
- image_stream->reset();
- #endif
---
-2.53.0
-
diff --git a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01.patch b/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01.patch
deleted file mode 100644
index 8c73d3c9b83a..000000000000
--- a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.01.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From b7254b3501a898c892211e6b363a292ba01dec08 Mon Sep 17 00:00:00 2001
-From: Thomas Holder <thomas@thomas-holder.de>
-Date: Sat, 10 Jan 2026 23:44:10 +0100
-Subject: [PATCH 1/3] Fix build with poppler 26.01.0
-
-(cherry picked from commit 3a528728ebe33e10bb44d152f47cfedfddbfe18a)
----
- src/extension/internal/pdfinput/pdf-input.cpp | 1 +
- src/extension/internal/pdfinput/svg-builder.cpp | 9 +++++++++
- 2 files changed, 10 insertions(+)
-
-diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp
-index 7b5e0ecb1d..45df931f00 100644
---- a/src/extension/internal/pdfinput/pdf-input.cpp
-+++ b/src/extension/internal/pdfinput/pdf-input.cpp
-@@ -33,6 +33,7 @@
- #include <poppler/glib/poppler.h>
- #include <poppler/glib/poppler-document.h>
- #include <poppler/glib/poppler-page.h>
-+#include <poppler/goo/gmem.h>
- #endif
-
- #include <gdkmm/general.h>
-diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
-index 6c78247dfb..8b2e6f3d54 100644
---- a/src/extension/internal/pdfinput/svg-builder.cpp
-+++ b/src/extension/internal/pdfinput/svg-builder.cpp
-@@ -32,6 +32,7 @@
- #include <poppler/GfxState.h>
- #include <poppler/Page.h>
- #include <poppler/Stream.h>
-+#include <poppler/goo/gmem.h>
-
- #include "color.h"
- #include "color/cms-util.h"
-@@ -2093,7 +2094,11 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height
- } else {
- image_stream = new ImageStream(str, width, 1, 1);
- }
-+#if POPPLER_CHECK_VERSION(26, 0, 0)
-+ image_stream->rewind();
-+#else
- image_stream->reset();
-+#endif
-
- // Convert grayscale values
- unsigned char *buffer = new unsigned char[width];
-@@ -2119,7 +2124,11 @@ Inkscape::XML::Node *SvgBuilder::_createImage(Stream *str, int width, int height
- image_stream = new ImageStream(str, width,
- color_map->getNumPixelComps(),
- color_map->getBits());
-+#if POPPLER_CHECK_VERSION(26, 0, 0)
-+ image_stream->rewind();
-+#else
- image_stream->reset();
-+#endif
-
- // Convert RGB values
- unsigned int *buffer = new unsigned int[width];
---
-2.53.0
-
diff --git a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.02.patch b/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.02.patch
deleted file mode 100644
index e2f9e04a686d..000000000000
--- a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.02.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-Source: https://gitlab.com/inkscape/inkscape/-/merge_requests/7780
-
-From cbd48e53d20af4ff8071028ccc6db9bc188e6548 Mon Sep 17 00:00:00 2001
-From: KrIr17 <elendil.krir17@gmail.com>
-Date: Thu, 12 Feb 2026 20:58:50 +0100
-Subject: [PATCH 3/3] Fix building with Poppler 0.26.02
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Adapted from [1] with changes to make it backwards-compatible with older
-versions of Poppler.
-
-[1] github.com/OpenMandrivaAssociation/inkscape/blob/master/inkscape-poppler-26.02.patch#L29
-
-Credits: Bernhard Rosenkränzer <bero@lindev.ch>
-
-Fixes https://gitlab.com/inkscape/inkscape/-/issues/6054
-
-* asturm 2026-02-14: backported to 1.4.x branch
----
- .../internal/pdfinput/pdf-parser.cpp | 39 +++++++++++++++++--
- .../pdfinput/poppler-transition-api.h | 10 +++++
- .../internal/pdfinput/svg-builder.cpp | 10 ++---
- 3 files changed, 50 insertions(+), 9 deletions(-)
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index ba6c448513..cb0842757d 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -653,7 +653,11 @@ void PdfParser::opSetFlat(Object args[], int /*numArgs*/)
- void PdfParser::opSetLineJoin(Object args[], int /*numArgs*/)
- {
- builder->beforeStateChange(state);
-+#if POPPLER_CHECK_VERSION(26,2,0)
-+ state->setLineJoin((GfxState::LineJoinStyle) args[0].getInt());
-+#else
- state->setLineJoin(args[0].getInt());
-+#endif
- builder->updateStyle(state);
- }
-
-@@ -661,7 +665,11 @@ void PdfParser::opSetLineJoin(Object args[], int /*numArgs*/)
- void PdfParser::opSetLineCap(Object args[], int /*numArgs*/)
- {
- builder->beforeStateChange(state);
-+#if POPPLER_CHECK_VERSION(26,2,0)
-+ state->setLineCap((GfxState::LineCapStyle) args[0].getInt());
-+#else
- state->setLineCap(args[0].getInt());
-+#endif
- builder->updateStyle(state);
- }
-
-@@ -1565,7 +1573,13 @@ void PdfParser::doShadingPatternFillFallback(GfxShadingPattern *sPat,
-
- // restore graphics state
- restoreState();
-+#if POPPLER_CHECK_VERSION(26, 2, 0)
-+ state->clearPath();
-+ GfxPath *currPath = const_cast<GfxPath*>(state->getPath());
-+ currPath->append(savedPath);
-+#else
- state->setPath(savedPath);
-+#endif
- }
-
- // TODO not good that numArgs is ignored but args[] is used:
-@@ -1626,7 +1640,13 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
- // restore graphics state
- if (savedState) {
- restoreState();
-+#if POPPLER_CHECK_VERSION(26, 2, 0)
-+ state->clearPath();
-+ GfxPath *currPath = const_cast<GfxPath*>(state->getPath());
-+ currPath->append(savedPath);
-+#else
- state->setPath(savedPath);
-+#endif
- }
- }
-
-@@ -2213,7 +2233,7 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/)
- {
- Array *a = nullptr;
- Object obj;
-- int wMode = 0; // Writing mode (horizontal/vertical).
-+ _POPPLER_WMODE wMode = _POPPLER_WMODE_HORIZONTAL; // Writing mode (horizontal/vertical).
-
- if (!state->getFont()) {
- error(errSyntaxError, getPos(), "No font in show/space");
-@@ -2227,7 +2247,7 @@ void PdfParser::opShowSpaceText(Object args[], int /*numArgs*/)
- if (obj.isNum()) {
- // this uses the absolute value of the font size to match
- // Acrobat's behavior
-- if (wMode) {
-+ if (wMode != _POPPLER_WMODE_HORIZONTAL) {
- state->textShift(0, -obj.getNum() * 0.001 *
- fabs(state->getFontSize()));
- } else {
-@@ -2254,7 +2274,7 @@ void PdfParser::doShowText(const GooString *s) {
- void PdfParser::doShowText(GooString *s) {
- #endif
- auto font = state->getFont();
-- int wMode = font->getWMode(); // Vertical/Horizontal/Invalid
-+ _POPPLER_WMODE wMode = font->getWMode(); // Vertical/Horizontal/Invalid
-
- builder->beginString(state, get_goostring_length(*s));
-
-@@ -2289,7 +2309,7 @@ void PdfParser::doShowText(GooString *s) {
- auto ax = dx;
- auto ay = dy;
-
-- if (wMode != 0) {
-+ if (wMode != _POPPLER_WMODE_HORIZONTAL) {
- // Vertical text (or invalid value).
- dy += state->getCharSpace();
- if (n == 1 && *p == ' ') {
-@@ -2964,7 +2984,11 @@ Stream *PdfParser::buildImageStream() {
- // make stream
- #if defined(POPPLER_NEW_OBJECT_API)
- str = new EmbedStream(parser->getStream(), dict.copy(), gFalse, 0);
-+#if POPPLER_CHECK_VERSION(26, 2, 0)
-+ str = str->addFilters(std::unique_ptr<Stream>(str), dict.getDict()).release();
-+#else
- str = str->addFilters(dict.getDict());
-+#endif
- #else
- str = new EmbedStream(parser->getStream(), &dict, gFalse, 0);
- str = str->addFilters(&dict);
-@@ -3137,10 +3161,17 @@ void PdfParser::loadOptionalContentLayers(Dict *resources)
- auto visible = true;
- // Normally we'd use poppler optContentIsVisible, but these dict
- // objects don't retain their references so can't be used directly.
-+#if POPPLER_CHECK_VERSION(26, 2, 0)
-+ for (auto &[ref, ocg] : ocgs->getOCGs()) {
-+ if (ocg->getName()->toStr() == label)
-+ visible = ocg->getState() == OptionalContentGroup::On;
-+ }
-+#else
- for (auto &[ref, ocg] : ocgs->getOCGs()) {
- if (ocg->getName()->cmp(label) == 0)
- visible = ocg->getState() == OptionalContentGroup::On;
- }
-+#endif
- builder->addOptionalGroup(dict->getKey(j), label, visible);
- }
- }
-diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h
-index 866b630bb6..65788128b7 100644
---- a/src/extension/internal/pdfinput/poppler-transition-api.h
-+++ b/src/extension/internal/pdfinput/poppler-transition-api.h
-@@ -15,6 +15,16 @@
- #include <glib/poppler-features.h>
- #include <poppler/UTF.h>
-
-+#if POPPLER_CHECK_VERSION(26, 2, 0)
-+#define _POPPLER_WMODE GfxFont::WritingMode
-+#define _POPPLER_WMODE_HORIZONTAL GfxFont::WritingMode::Horizontal
-+#define _POPPLER_WMODE_VERTICAL GfxFont::WritingMode::Vertical
-+#else
-+#define _POPPLER_WMODE int
-+#define _POPPLER_WMODE_HORIZONTAL 0
-+#define _POPPLER_WMODE_VERTICAL 1
-+#endif
-+
- #if POPPLER_CHECK_VERSION(25, 7, 0)
- #define _POPPLER_TEXT_SHIFT_WITH_USER_COORDS(dx, dy) textShiftWithUserCoords(dx, dy)
- #define _POPPLER_FOFI_TRUETYPE_MAKE(font_data, faceIndex) FoFiTrueType::make(std::span(font_data), faceIndex)
-diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp
-index 94d4342dc4..d854ed8a2e 100644
---- a/src/extension/internal/pdfinput/svg-builder.cpp
-+++ b/src/extension/internal/pdfinput/svg-builder.cpp
-@@ -1386,7 +1386,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shared_ptr<CairoFont> cairo_fo
- sp_repr_css_set_property(_css_font, "font-variant", "normal");
-
- // Writing mode
-- if ( font->getWMode() == 0 ) {
-+ if ( font->getWMode() == _POPPLER_WMODE_HORIZONTAL ) {
- sp_repr_css_set_property(_css_font, "writing-mode", "lr");
- } else {
- sp_repr_css_set_property(_css_font, "writing-mode", "tb");
-@@ -1398,7 +1398,7 @@ void SvgBuilder::updateFont(GfxState *state, std::shared_ptr<CairoFont> cairo_fo
- */
- void SvgBuilder::updateTextShift(GfxState *state, double shift) {
- double shift_value = -shift * 0.001 * fabs(state->getFontSize());
-- if (state->getFont()->getWMode()) {
-+ if (state->getFont()->getWMode() != _POPPLER_WMODE_HORIZONTAL) {
- _text_position[1] += shift_value;
- } else {
- _text_position[0] += shift_value;
-@@ -1452,7 +1452,7 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxState *state, double text_sca
-
- // Text direction is a property of the <text> element.
- auto font = state->getFont();
-- if (font->getWMode() == 1) {
-+ if (font->getWMode() == _POPPLER_WMODE_VERTICAL) {
- // Only set if vertical.
- auto css_text = sp_repr_css_attr_new();
- sp_repr_css_set_property(css_text, "writing-mode", "tb");
-@@ -1546,8 +1546,8 @@ Inkscape::XML::Node* SvgBuilder::_flushTextText(GfxState *state, double text_sca
- bool output_tspan =
- next_it == _glyphs.end() ||
- next_it->style_changed ||
-- (writing_mode == 0 && std::abs(glyph.text_position[1] - next_it->text_position[1]) > 0.1) ||
-- (writing_mode == 1 && std::abs(glyph.text_position[0] - next_it->text_position[0]) > 0.1);
-+ (writing_mode == _POPPLER_WMODE_HORIZONTAL && std::abs(glyph.text_position[1] - next_it->text_position[1]) > 0.1) ||
-+ (writing_mode == _POPPLER_WMODE_VERTICAL && std::abs(glyph.text_position[0] - next_it->text_position[0]) > 0.1);
-
- if (output_tspan) {
-
---
-2.53.0
-
diff --git a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.03.patch b/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.03.patch
deleted file mode 100644
index c320c1019a00..000000000000
--- a/media-gfx/inkscape/files/inkscape-1.4.3-poppler-26.03.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 754a866b878623554ade26d53496eeb8687c4685 Mon Sep 17 00:00:00 2001
-From: Matthias Kilian <kili@outback.escape.de>
-Date: Wed, 11 Mar 2026 23:17:00 +0100
-Subject: [PATCH] Fix build with poppler-26.03.0.
-
----
- src/extension/internal/pdfinput/pdf-parser.cpp | 4 ++++
- src/extension/internal/pdfinput/poppler-utils.cpp | 4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index 5d45e73e06..4aef441f7f 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -2962,7 +2962,11 @@ Stream *PdfParser::buildImageStream() {
-
- // build dictionary
- #if defined(POPPLER_NEW_OBJECT_API)
-+#if POPPLER_CHECK_VERSION(26, 3, 0)
-+ dict = Object(std::make_unique<Dict>(xref));
-+#else
- dict = Object(new Dict(xref));
-+#endif
- #else
- dict.initDict(xref);
- #endif
-diff --git a/src/extension/internal/pdfinput/poppler-utils.cpp b/src/extension/internal/pdfinput/poppler-utils.cpp
-index 21c287298c..ae3f6ea5cc 100644
---- a/src/extension/internal/pdfinput/poppler-utils.cpp
-+++ b/src/extension/internal/pdfinput/poppler-utils.cpp
-@@ -89,7 +89,11 @@ InkFontDict::InkFontDict(XRef *xref, Ref *fontDictRef, Dict *fontDict)
- r.num = hashFontObject(&obj2);
- }
- // Newer poppler will require some reworking as it gives a shared ptr.
-+#if POPPLER_CHECK_VERSION(26,3,0)
-+ fonts[i] = GfxFont::makeFont(xref, fontDict->getKey(i), r, *obj2.getDict());
-+#else
- fonts[i] = GfxFont::makeFont(xref, fontDict->getKey(i), r, obj2.getDict());
-+#endif
- if (fonts[i] && !fonts[i]->isOk()) {
- fonts[i] = nullptr;
- }
---
-GitLab
-
diff --git a/media-gfx/inkscape/inkscape-1.4.3-r1.ebuild b/media-gfx/inkscape/inkscape-1.4.3-r1.ebuild
deleted file mode 100644
index 3b955e08f3b5..000000000000
--- a/media-gfx/inkscape/inkscape-1.4.3-r1.ebuild
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Remember to check the release notes for a 'Important Changes for Packagers'
-# section, e.g. https://inkscape.org/doc/release_notes/1.4/Inkscape_1.4.html#Important_Changes_for_Packagers.
-
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="xml(+)"
-
-inherit cmake flag-o-matic xdg toolchain-funcs python-single-r1
-
-MY_P="${P/_/}"
-DESCRIPTION="SVG based generic vector-drawing program"
-HOMEPAGE="https://inkscape.org/ https://gitlab.com/inkscape/inkscape/"
-
-if [[ ${PV} = 9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.com/inkscape/inkscape.git"
-else
- SRC_URI="https://media.inkscape.org/dl/resources/file/${MY_P}.tar.xz"
- KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
-fi
-
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-IUSE="cdr dia exif graphicsmagick imagemagick inkjar jpeg openmp postscript readline sourceview spell svg2 test visio wpg X"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-# Lots of test failures which need investigating, bug #871621
-RESTRICT="!test? ( test ) test"
-
-BDEPEND="
- dev-util/glib-utils
- >=sys-devel/gettext-0.17
- virtual/pkgconfig
- test? ( virtual/imagemagick-tools )
-"
-COMMON_DEPEND="${PYTHON_DEPS}
- >=app-text/poppler-0.57.0:=[cairo,lcms]
- >=dev-cpp/cairomm-1.12:0
- >=dev-cpp/glibmm-2.58:2
- dev-cpp/gtkmm:3.0
- >=dev-cpp/pangomm-2.40:1.4
- >=dev-libs/boehm-gc-7.1:=
- dev-libs/boost:=[stacktrace(-)]
- dev-libs/double-conversion:=
- >=dev-libs/glib-2.41
- >=dev-libs/libsigc++-2.8:2
- >=dev-libs/libxml2-2.7.4:=
- >=dev-libs/libxslt-1.1.25
- dev-libs/popt
- media-gfx/potrace
- media-libs/libepoxy
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/lcms:2
- media-libs/libpng:0=
- sci-libs/gsl:=
- >=x11-libs/pango-1.44
- x11-libs/gtk+:3[X?]
- X? ( x11-libs/libX11 )
- $(python_gen_cond_dep '
- dev-python/appdirs[${PYTHON_USEDEP}]
- dev-python/cachecontrol[${PYTHON_USEDEP}]
- dev-python/cssselect[${PYTHON_USEDEP}]
- dev-python/filelock[${PYTHON_USEDEP}]
- dev-python/lockfile[${PYTHON_USEDEP}]
- dev-python/lxml[${PYTHON_USEDEP}]
- dev-python/pillow[jpeg?,tiff,webp,${PYTHON_USEDEP}]
- dev-python/tinycss2[${PYTHON_USEDEP}]
- media-gfx/scour[${PYTHON_USEDEP}]
- ')
- cdr? (
- app-text/libwpg:0.3
- dev-libs/librevenge
- media-libs/libcdr
- )
- exif? ( media-libs/libexif )
- imagemagick? (
- !graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
- graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
- )
- jpeg? ( media-libs/libjpeg-turbo:= )
- readline? ( sys-libs/readline:= )
- sourceview? ( x11-libs/gtksourceview:4 )
- spell? ( app-text/gspell:= )
- visio? (
- app-text/libwpg:0.3
- dev-libs/librevenge
- media-libs/libvisio
- )
- wpg? (
- app-text/libwpg:0.3
- dev-libs/librevenge
- )
-"
-# These only use executables provided by these packages
-# See share/extensions for more details. inkscape can tell you to
-# install these so we could of course just not depend on those and rely
-# on that.
-RDEPEND="${COMMON_DEPEND}
- $(python_gen_cond_dep '
- dev-python/numpy[${PYTHON_USEDEP}]
- ')
- dia? ( app-office/dia )
- postscript? ( app-text/ghostscript-gpl )
-"
-DEPEND="${COMMON_DEPEND}
- test? ( dev-cpp/gtest )
-"
-
-PATCHES=(
- "${FILESDIR}"/${P}-poppler-26.0{1,1-warnings,2,3}.patch # in git master
- "${FILESDIR}"/${P}-libcroco-cmake-minreqver-3.12.patch # bug 965915
-)
-
-pkg_pretend() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
-}
-
-pkg_setup() {
- [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
- python-single-r1_pkg_setup
-}
-
-src_unpack() {
- if [[ ${PV} = 9999* ]]; then
- git-r3_src_unpack
- else
- default
- fi
- [[ -d "${S}" ]] || mv -v "${WORKDIR}/${P/_/-}_202"?-??-* "${S}" || die
-}
-
-src_prepare() {
- rm -vr src/3rdparty/2geom/tests/dependent-project || die # unused, causing bug #964016
- cmake_src_prepare
- sed -i "/install.*COPYING/d" CMakeScripts/ConfigCPack.cmake || die
-}
-
-src_configure() {
- # ODR violation (https://gitlab.com/inkscape/lib2geom/-/issues/71, bug #859628)
- filter-lto
- # Aliasing unsafe (bug #310393)
- append-flags -fno-strict-aliasing
-
- local mycmakeargs=(
- # -DWITH_LPETOOL # Compile with LPE Tool and experimental LPEs enabled
- -DWITH_NLS=ON
- -DENABLE_POPPLER=ON
- -DENABLE_POPPLER_CAIRO=ON
- -DWITH_PROFILING=OFF
- -DWITH_INTERNAL_2GEOM=ON
- -DBUILD_TESTING=$(usex test)
- -DWITH_LIBCDR=$(usex cdr)
- -DWITH_IMAGE_MAGICK=$(usex imagemagick $(usex !graphicsmagick)) # requires ImageMagick 6, only IM must be enabled
- -DWITH_GRAPHICS_MAGICK=$(usex graphicsmagick $(usex imagemagick)) # both must be enabled to use GraphicsMagick
- -DWITH_GNU_READLINE=$(usex readline)
- -DWITH_GSPELL=$(usex spell)
- -DWITH_JEMALLOC=OFF
- -DENABLE_LCMS=ON
- -DWITH_OPENMP=$(usex openmp)
- -DBUILD_SHARED_LIBS=ON
- -DWITH_GSOURCEVIEW=$(usex sourceview)
- -DWITH_SVG2=$(usex svg2)
- -DWITH_LIBVISIO=$(usex visio)
- -DWITH_LIBWPG=$(usex wpg)
- -DWITH_X11=$(usex X)
- )
-
- cmake_src_configure
-}
-
-src_test() {
- CMAKE_SKIP_TESTS=(
- # render_text*: needs patched Cairo / maybe upstream changes
- # not yet in a release.
- # test_lpe/test_lpe64: precision differences b/c of new GCC?
- # cli_export-png-color-mode-gray-8_png_check_output: ditto?
- render_test-use
- render_test-glyph-y-pos
- render_text-glyphs-combining
- render_text-glyphs-vertical
- render_test-rtl-vertical
- test_lpe
- test_lpe64
- cli_export-png-color-mode-gray-8_png_check_output
- )
-
- # bug #871621
- cmake_src_compile tests
- cmake_src_test -j1
-}
-
-src_install() {
- cmake_src_install
-
- find "${ED}" -type f -name "*.la" -delete || die
- find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.bz2' -exec bzip2 -d {} \; || die
- find "${ED}"/usr/share/man -type f -maxdepth 3 -name '*.gz' -exec gzip -d {} \; || die
-
- local extdir="${ED}"/usr/share/${PN}/extensions
- if [[ -e "${extdir}" ]] && [[ -n $(find "${extdir}" -mindepth 1) ]]; then
- python_fix_shebang "${ED}"/usr/share/${PN}/extensions
- python_optimize "${ED}"/usr/share/${PN}/extensions
- fi
-}
diff --git a/media-gfx/jp2a/jp2a-1.3.2.ebuild b/media-gfx/jp2a/jp2a-1.3.2.ebuild
index 2c42e883c3f6..c65f61e28671 100644
--- a/media-gfx/jp2a/jp2a-1.3.2.ebuild
+++ b/media-gfx/jp2a/jp2a-1.3.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
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/Talinx/jp2a/releases/download/v${PV}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~amd64 ~ppc ppc64 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="curl"
RDEPEND="media-libs/libexif
diff --git a/media-gfx/pngcheck/pngcheck-4.0.1.ebuild b/media-gfx/pngcheck/pngcheck-4.0.1.ebuild
index 44375c229933..56ae05737ba7 100644
--- a/media-gfx/pngcheck/pngcheck-4.0.1.ebuild
+++ b/media-gfx/pngcheck/pngcheck-4.0.1.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/pnggroup/pngcheck/archive/v${PV}.tar.gz -> ${P}.tar.
LICENSE="HPND GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 x86"
RDEPEND="virtual/zlib:="
DEPEND="${RDEPEND}"
diff --git a/media-gfx/shotwell/Manifest b/media-gfx/shotwell/Manifest
index 5ba7f28c955a..5ac8a7e3937f 100644
--- a/media-gfx/shotwell/Manifest
+++ b/media-gfx/shotwell/Manifest
@@ -1 +1,2 @@
DIST shotwell-0.32.17.tar.xz 35398620 BLAKE2B 1e0986520d245e820df49b9b531c09f265c2aef7733e8ffdca242d9dd212dac3ccaf1fc93bf1fca637b40dce35a6f55a5afbf23b051018f2a8c34432cfc0fdcf SHA512 a5582044708707c5884537415b3a02b38dca629b0e5cb35b4c0f3eba7056f8abe55bcc3332362a1bd6a4547b8cb83df130cc48a5628506da474e9e710d8e9dae
+DIST shotwell-33.0.tar.xz 35503952 BLAKE2B 645ea7a552a99e19ad62d4c094e90a28a81b7f58e40d2ee1126a641ef1b69dff4eff20f903b070e5010f3cf928901b4eb68d9aa1e7381835471556f611979f36 SHA512 1b4954dd2c3fa3e8512228232dcf91173261d525ad934d33eb95cb64a6db200d3de1e63585298f2fc4678e13a15d68831453ae79b8cfe488e6eea330c1e7e2b2
diff --git a/media-gfx/shotwell/shotwell-33.0.ebuild b/media-gfx/shotwell/shotwell-33.0.ebuild
new file mode 100644
index 000000000000..3a3a611908d0
--- /dev/null
+++ b/media-gfx/shotwell/shotwell-33.0.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit gnome.org gnome2-utils meson optfeature vala xdg
+
+DESCRIPTION="Open source photo manager for GNOME"
+HOMEPAGE="https://shotwell-project.org/"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~sparc ~x86"
+IUSE="opencv udev"
+
+DEPEND="
+ >=gui-libs/gtk-4.22:4
+ >=dev-libs/glib-2.88.0:2
+ >=dev-libs/libgee-0.8.5:0.8=
+ >=net-libs/webkit-gtk-2.26:4.1
+ net-libs/libsoup:3.0
+ >=dev-libs/json-glib-0.7.6
+ >=dev-libs/libxml2-2.6.32:2=
+ x11-libs/gdk-pixbuf:2
+ >=dev-db/sqlite-3.5.9:3
+ >=media-libs/gstreamer-1.20:1.0
+ >=media-libs/gst-plugins-base-1.20:1.0
+ >=media-libs/libgphoto2-2.5:=
+ udev? ( >=dev-libs/libgudev-145:= )
+ >=media-libs/gexiv2-0.15.0:0.16=
+ >=media-libs/libraw-0.13.2:=
+ >=media-libs/libexif-0.6.16
+ app-crypt/libsecret[vala]
+ >=dev-libs/libportal-0.5:=[gtk,vala]
+ media-libs/libwebp:=
+
+ app-crypt/gcr:4=[gtk]
+ x11-libs/cairo
+ opencv? ( >=media-libs/opencv-4.0.0:=[features2d] )
+"
+RDEPEND="${DEPEND}
+ media-plugins/gst-plugins-gdkpixbuf:1.0
+ media-plugins/gst-plugins-meta:1.0
+"
+BDEPEND="
+ $(vala_depend)
+ dev-libs/appstream-glib
+ dev-libs/glib
+ >=dev-util/gdbus-codegen-2.80.5-r1
+ dev-util/itstool
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ net-libs/libsoup:3.0[vala]
+ media-libs/gexiv2[vala]
+ app-crypt/gcr:4[vala]
+"
+
+src_prepare() {
+ default
+ vala_setup
+ xdg_environment_reset
+}
+
+src_configure() {
+ local emesonargs=(
+ # -Dpublishers # In 0.30.2 all get compiled in anyways, even if restricted list, affects only runtime support
+ #trace
+ #measure
+ -Ddupe_detection=true
+ $(meson_feature udev)
+ -Dinstall_apport_hook=false
+ $(meson_use opencv face_detection)
+ -Dfatal_warnings=false
+ )
+ meson_src_configure
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+
+ optfeature "Enable support for the AVIF format" media-libs/libavif[gdk-pixbuf]
+ optfeature "Enable support for the HEIF format" media-libs/libheif[gdk-pixbuf]
+ optfeature "Enable support for the JPEG format" x11-libs/gdk-pixbuf[jpeg]
+ optfeature "Enable support for the TIFF format" x11-libs/gdk-pixbuf[tiff]
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/media-gfx/viewnior/viewnior-1.8_p20210825.ebuild b/media-gfx/viewnior/viewnior-1.8_p20210825.ebuild
index d9a5cd8a9f9e..a26070aba491 100644
--- a/media-gfx/viewnior/viewnior-1.8_p20210825.ebuild
+++ b/media-gfx/viewnior/viewnior-1.8_p20210825.ebuild
@@ -13,7 +13,7 @@ S="${WORKDIR}/Viewnior-${COMMIT}"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~riscv ~x86"
RDEPEND="
dev-libs/glib:2
diff --git a/media-gfx/wings/wings-2.4.1.ebuild b/media-gfx/wings/wings-2.4.1.ebuild
index 5e313ac27eac..9a0bf662bf26 100644
--- a/media-gfx/wings/wings-2.4.1.ebuild
+++ b/media-gfx/wings/wings-2.4.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
@@ -10,7 +10,7 @@ SRC_URI="https://downloads.sourceforge.net/wings/${P}.tar.bz2"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~x86"
# Run failed with dev-lang/erlang in the range [28, 28.3), see bug 964737
RDEPEND="
diff --git a/media-libs/SoQt/Manifest b/media-libs/SoQt/Manifest
index fe72cc2477bc..43b7a5503a86 100644
--- a/media-libs/SoQt/Manifest
+++ b/media-libs/SoQt/Manifest
@@ -1,2 +1 @@
-DIST soqt-1.6.3-src.tar.gz 7673080 BLAKE2B 3a28a8144de286da10f2c539d5ebf68b2beae006416f91ba849cb7fd6fee25474e3f62603cc6e7b70d80dd8bc5114004a51fba850b81493455919464a957454a SHA512 8cef22cf4214dd03bb4639c1fff77c127bf80f99e3b7fb7c1c21c25a281aa484252414f4a48fa59b8b2485afe7920ce9e86366fd1343badc77b75b78d3ac4c53
DIST soqt-1.6.4-src.tar.gz 7673585 BLAKE2B 9fbf840f31fd361b0929989f5d719b62382a01dae705ca874bacecf4fdf8a403a16245e3db53775c93ae5282f5198cf76f26003a4bfa4f60acbf9c25e4847f20 SHA512 a5a659300bd94be66a4a1dd3e760639fbca7c18247e52ab499986692212de4ccd8f81dfe1e82c514186e1a5931db7f625d805db46c0c71b66a1d33ac8e1988bf
diff --git a/media-libs/SoQt/SoQt-1.6.3.ebuild b/media-libs/SoQt/SoQt-1.6.3.ebuild
deleted file mode 100644
index 2bdd913e96d0..000000000000
--- a/media-libs/SoQt/SoQt-1.6.3.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-DESCRIPTION="GUI binding for using Coin/Open Inventor with Qt"
-HOMEPAGE="https://github.com/coin3d/coin/wiki"
-SRC_URI="https://github.com/coin3d/soqt/releases/download/v${PV}/${P/SoQt/soqt}-src.tar.gz"
-S="${WORKDIR}/soqt"
-
-LICENSE="GPL-2"
-KEYWORDS="amd64 x86"
-SLOT="0"
-IUSE="debug doc"
-
-RDEPEND="
- dev-qt/qtbase:6[gui,opengl,widgets]
- media-libs/coin
- virtual/opengl
- x11-libs/libX11
- x11-libs/libXi
-"
-DEPEND="${RDEPEND}
- x11-base/xorg-proto
-"
-BDEPEND="
- virtual/pkgconfig
- doc? ( app-text/doxygen )
-"
-
-DOCS=( AUTHORS ChangeLog HACKING NEWS README )
-
-src_configure() {
- use debug && append-cppflags -DSOQT_DEBUG=1
- local mycmakeargs=(
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- -DSOQT_BUILD_DOCUMENTATION=$(usex doc)
- -DSOQT_BUILD_INTERNAL_DOCUMENTATION=OFF
- -DSOQT_USE_QT6=ON
- -DSOQT_VERBOSE=$(usex debug)
- )
- cmake_src_configure
-}
diff --git a/media-libs/SoXt/Manifest b/media-libs/SoXt/Manifest
index b3acdf4d42e1..56224c05f358 100644
--- a/media-libs/SoXt/Manifest
+++ b/media-libs/SoXt/Manifest
@@ -1,2 +1 @@
-DIST SoXt-1.4.1-src.tar.gz 1402559 BLAKE2B fd0f0433e1d5c231f4392f7cfa4e6e08bd9d872b46619c6daa9f4fa2157da27780b0a28d4cbb7ea8f3f3a881f90c789760cad2c2709f27bf9f4edb1cdfc1f86c SHA512 c379acb14b7f3a03664a3b1c10bdd14e836a54fb72f62cb728301755ee148b423203513a085534c2ea74704fd3c9a77ceabe1de089aa168c848518a9d690e53e
DIST soxt-1.4.2-src.tar.gz 7366540 BLAKE2B 00b0dab81473bf7eb0c5857ed3f1b1182917160021c7aa6d9f8df82d73d9e16e4eef59e681995eb719cbce35a1039775f35e769f8e9dff1dc61c02352f68aaca SHA512 6fdc942a2f6b48406c9e6c67bddd03f7067581ea072845634bee0eb825fca642829f92e0ee8054886e7f5bf553e394b6253da568ce445432d1a1ecd744b22475
diff --git a/media-libs/SoXt/SoXt-1.4.1.ebuild b/media-libs/SoXt/SoXt-1.4.1.ebuild
deleted file mode 100644
index 5662d71a9042..000000000000
--- a/media-libs/SoXt/SoXt-1.4.1.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-MY_P=${P/soxt/SoXt}
-
-DESCRIPTION="GUI binding for using Coin/Open Inventor with Xt/Motif"
-HOMEPAGE="https://github.com/coin3d/coin/wiki"
-SRC_URI="https://github.com/coin3d/soxt/releases/download/v${PV}/${P}-src.tar.gz"
-S="${WORKDIR}/soxt"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 ~arm x86"
-IUSE="debug doc"
-
-RDEPEND="
- media-libs/coin
- x11-libs/motif:0
- virtual/opengl
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
- x11-base/xorg-proto
- doc? ( app-text/doxygen )
-"
-
-DOCS=( AUTHORS ChangeLog HACKING NEWS README TODO BUGS.txt )
-
-src_configure() {
- use debug && append-cppflags -DSOXT_DEBUG=1
- local mycmakeargs=(
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- -DSOXT_BUILD_DOCUMENTATION=$(usex doc)
- -DSOXT_BUILD_INTERNAL_DOCUMENTATION=OFF
- # Interactive test programs
- -DSOXT_BUILD_TESTS=OFF
- -DSOXT_VERBOSE=$(usex debug)
- )
- cmake_src_configure
-}
diff --git a/media-libs/alsa-lib/alsa-lib-1.2.16.1.ebuild b/media-libs/alsa-lib/alsa-lib-1.2.16.1.ebuild
index 14f2d528fb21..8e5b117e01a7 100644
--- a/media-libs/alsa-lib/alsa-lib-1.2.16.1.ebuild
+++ b/media-libs/alsa-lib/alsa-lib-1.2.16.1.ebuild
@@ -27,7 +27,7 @@ fi
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="debug doc python"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
diff --git a/media-libs/alsa-ucm-conf/alsa-ucm-conf-1.2.16.1.ebuild b/media-libs/alsa-ucm-conf/alsa-ucm-conf-1.2.16.1.ebuild
index 15b913ac63ea..32e4a4410656 100644
--- a/media-libs/alsa-ucm-conf/alsa-ucm-conf-1.2.16.1.ebuild
+++ b/media-libs/alsa-ucm-conf/alsa-ucm-conf-1.2.16.1.ebuild
@@ -15,7 +15,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
RDEPEND="!<media-libs/alsa-lib-1.2.1"
DEPEND="${RDEPEND}"
diff --git a/media-libs/coin/Manifest b/media-libs/coin/Manifest
index 0468d733cda5..eeb8aa03b8eb 100644
--- a/media-libs/coin/Manifest
+++ b/media-libs/coin/Manifest
@@ -1,4 +1,3 @@
DIST coin-4.0.10-src.tar.gz 11855404 BLAKE2B eab33a33cd4449762cc61195d3501956f2ea141044fbf2e67a05dd6b37761cefc8dee74e0f3628ed22e366ea50fa41fa83cf6445d5c76532696e16d3b06e9cd5 SHA512 cdd0da0f34fa599f791d504bd740f3ced09ecdb26b5ddf8bc3708b697cddbcfab73b00c2ce7722c083cfbb30716d93621d85000aa298c3aafe6eb136f80f2fef
-DIST coin-4.0.4-src.tar.gz 13110106 BLAKE2B fac92cb99b2eb37fe52a3e1bc9c9c8b72c956e135236052dcde2a257374be217d94f3f3a1d908c78dc1ce55adee2d79e6f95e88866600a88bbcf2d4903adcc29 SHA512 5d13c9d03b8da1b6de2be6632434184ff05370039906a34cf9812ab51b849f99cf59db844b32577d2c155218d8ad8fe515e757d445dbbeddda3f4740b0e384a2
DIST coin-4.0.6-src.tar.gz 13114463 BLAKE2B 7760186d86f54188f33357b310bff6e3457d1de04de8d1cf9dcf959516a3828493f47d789d83d2bc628d9dbbb70ba3d36a7e6af34a10a4934d1be6bc07b801e2 SHA512 eaf6d20328abba86d77ec78b38f80149bbcf3a61fd0c33ac22a2cd77f971f29197d2e20498cdd3b317271ca502882864833877f65381f3dded44e4bb51fa439d
DIST coin-PR590.patch 635 BLAKE2B d5a8d8da1a1532065a63e8308fced55510c9e8c35978ab853f531946fdc18f94a3083b3a817eebcc4902a7a884a9ed423fc03ba947af94efcf326f1fe087fc4a SHA512 35b57c678a72920273a71e4361d7003a68b6fbc0432477e0e61dfc278fec8b1a0dc1abbc61ed797564802379d9c4265b4a593df7739781408f484b13cd420b8e
diff --git a/media-libs/coin/coin-4.0.4.ebuild b/media-libs/coin/coin-4.0.4.ebuild
deleted file mode 100644
index 09e8df85513d..000000000000
--- a/media-libs/coin/coin-4.0.4.ebuild
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-DESCRIPTION="High-level 3D graphics toolkit, fully compatible with SGI Open Inventor 2.1"
-HOMEPAGE="https://github.com/coin3d/coin/wiki"
-SRC_URI="https://github.com/coin3d/coin/releases/download/v${PV}/${P}-src.tar.gz"
-S="${WORKDIR}/${PN}"
-
-LICENSE="|| ( GPL-2 PEL )"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~hppa ppc ppc64 x86"
-IUSE="debug doc +exceptions openal qch test threads"
-
-REQUIRED_USE="qch? ( doc )"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- app-arch/bzip2
- dev-libs/expat
- media-libs/fontconfig
- media-libs/freetype:2
- media-libs/simage
- virtual/zlib:=
- virtual/opengl
- virtual/glu
- x11-libs/libICE
- x11-libs/libSM
- x11-libs/libX11
- x11-libs/libXext
- openal? ( media-libs/openal )
-"
-DEPEND="${RDEPEND}
- dev-libs/boost:0
- x11-base/xorg-proto
-"
-BDEPEND="
- doc? (
- app-text/doxygen
- qch? ( dev-qt/qttools:6[assistant] )
- )
-"
-
-PATCHES=( "${FILESDIR}"/${PN}-4.0.3-find-qhelpgenerator.patch )
-
-DOCS=( AUTHORS FAQ FAQ.legal NEWS THANKS docs/HACKING )
-
-src_configure() {
- # -Werror=odr
- # https://bugs.gentoo.org/859832
- # https://github.com/coin3d/coin/issues/521
- filter-lto
-
- use debug && append-cppflags -DCOIN_DEBUG=1
-
- local mycmakeargs=(
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
-
- -DCOIN_BUILD_SHARED_LIBS=ON
- -DCOIN_BUILD_TESTS=$(usex test)
- -DCOIN_BUILD_DOCUMENTATION=$(usex doc)
-
- -DCOIN_BUILD_INTERNAL_DOCUMENTATION=OFF
- -DCOIN_BUILD_AWESOME_DOCUMENTATION=$(usex doc)
- -DCOIN_BUILD_DOCUMENTATION_MAN=$(usex doc)
- -DCOIN_BUILD_DOCUMENTATION_QTHELP=$(usex qch)
- -DCOIN_BUILD_DOCUMENTATION_CHM=OFF
-
- -DCOIN_THREADSAFE=$(usex threads)
- -DHAVE_VRML97=ON
- -DCOIN_HAVE_JAVASCRIPT=OFF
- -DHAVE_NODEKITS=ON
- -DHAVE_DRAGGERS=ON
- -DHAVE_MANIPULATORS=ON
- -DHAVE_SOUND=$(usex openal)
- -DHAVE_3DS_IMPORT_CAPABILITIES=ON
- -DUSE_EXTERNAL_EXPAT=ON
- -DUSE_EXCEPTIONS=$(usex exceptions)
- -DUSE_SUPERGLU=OFF
-
- -DFONTCONFIG_RUNTIME_LINKING=OFF
- -DFREETYPE_RUNTIME_LINKING=OFF
- -DLIBBZIP2_RUNTIME_LINKING=OFF
- -DOPENAL_RUNTIME_LINKING=OFF
- -DSIMAGE_RUNTIME_LINKING=OFF
- -DZLIB_RUNTIME_LINKING=OFF
- -DGLU_RUNTIME_LINKING=OFF
- -DSPIDERMONKEY_RUNTIME_LINKING=ON
-
- -DCOIN_VERBOSE=$(usex debug)
- -DHAVE_MULTIPLE_VERSION=OFF
-
- -DCOIN_BUILD_SINGLE_LIB=ON
- )
- use doc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
-
- cmake_src_configure
-}
-
-src_test() {
- pushd "${BUILD_DIR}/bin" > /dev/null || die
- ./CoinTests -r detailed || die "Tests failed."
- popd > /dev/null || die
-}
diff --git a/media-libs/kvazaar/kvazaar-2.3.2.ebuild b/media-libs/kvazaar/kvazaar-2.3.2.ebuild
index 21bc244f797b..b309804ea245 100644
--- a/media-libs/kvazaar/kvazaar-2.3.2.ebuild
+++ b/media-libs/kvazaar/kvazaar-2.3.2.ebuild
@@ -11,7 +11,7 @@ if [[ ${PV} = *9999 ]] ; then
else
SRC_URI="https://github.com/ultravideo/kvazaar/archive/v${PV}.tar.gz -> ${P}.tar.gz
test? ( https://github.com/silentbicycle/greatest/archive/v${GREATEST_PV}.tar.gz -> greatest-${GREATEST_PV}.tar.gz )"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
inherit autotools multilib-minimal
diff --git a/media-libs/libass/libass-0.17.5.ebuild b/media-libs/libass/libass-0.17.5.ebuild
index 01c723c986bb..34bbffca3810 100644
--- a/media-libs/libass/libass-0.17.5.ebuild
+++ b/media-libs/libass/libass-0.17.5.ebuild
@@ -15,7 +15,7 @@ SRC_URI+=" verify-sig? ( https://github.com/libass/libass/releases/download/${PV
LICENSE="ISC"
SLOT="0/9" # subslot = libass soname version
-KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~arm64-macos ~x64-macos"
IUSE="+fontconfig libunibreak test"
RESTRICT="!test? ( test )"
diff --git a/media-libs/libbluray/libbluray-1.4.1.ebuild b/media-libs/libbluray/libbluray-1.4.1.ebuild
index 3e7e0b70a4d7..fc4459d79a33 100644
--- a/media-libs/libbluray/libbluray-1.4.1.ebuild
+++ b/media-libs/libbluray/libbluray-1.4.1.ebuild
@@ -8,7 +8,7 @@ if [[ ${PV#9999} != ${PV} ]] ; then
EGIT_REPO_URI="https://code.videolan.org/videolan/libbluray.git"
else
SRC_URI="https://downloads.videolan.org/pub/videolan/libbluray/${PV}/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
inherit meson-multilib java-pkg-opt-2
diff --git a/media-libs/libdvdnav/libdvdnav-7.0.0.ebuild b/media-libs/libdvdnav/libdvdnav-7.0.0.ebuild
index a3e43ae93150..759c32185767 100644
--- a/media-libs/libdvdnav/libdvdnav-7.0.0.ebuild
+++ b/media-libs/libdvdnav/libdvdnav-7.0.0.ebuild
@@ -12,7 +12,7 @@ if [[ ${PV} = 9999 ]]; then
EGIT_REPO_URI="https://code.videolan.org/videolan/libdvdnav.git"
else
SRC_URI="https://downloads.videolan.org/pub/videolan/libdvdnav/${PV}/${P}.tar.xz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~sparc ~x86 ~x64-macos"
fi
LICENSE="GPL-2"
diff --git a/media-libs/libdvdread/Manifest b/media-libs/libdvdread/Manifest
index 4b23d3baa7f7..d83e25bf4f59 100644
--- a/media-libs/libdvdread/Manifest
+++ b/media-libs/libdvdread/Manifest
@@ -1,2 +1,3 @@
DIST libdvdread-6.1.3.tar.bz2 395439 BLAKE2B 7a8c0b69692059d51a9d94fc4c934f8259c2aa71ac9a9e6d5da22b3668fcbdf000c47fbc7fdb1257f65b90b4d8a4733e01fc2936033246cf2c6a5b68fef81647 SHA512 c98055829ccbbe2bb7b5df48f6e279cf6e91ecab39a35c37081581452f7df7531c1d7b8abd641c55eeee357235b2658b31478dbc307995cffdf8c011bd0dd0bc
DIST libdvdread-7.0.1.tar.xz 90460 BLAKE2B 1c4588d8ceeef1c603a2b17a346237763b6a2d25dad738b985e4f66f4a76f564f68431abc77f644678bdf315f67b1c0cf127b7b46d35bd4f11a7711aed7236ff SHA512 03e7376327ba211fcc51ee4e4705b1cc7649c613a96e186eb62821b57a11a519c46720e33cf3351cd95fa02db200e40d3b1b9f7e4fe5a3003853fc40c5f511f0
+DIST libdvdread-7.1.1.tar.xz 102460 BLAKE2B e3f44e2fad18fe61dd6d4dbd23fa62842384a5350cbc2fb69dde86e4f0d6e064d8dd5a4a2d58b5de2f143b0297d509d53c9ae39345542f1a4ecd9c99151349aa SHA512 4516788708698dbce07181627a228a67daccaaee27d706aa5478dafb02a4e520fbb89c8f8a028f8a135d162eb96ffb36169134c3da75c709be7a2bcb7477d34b
diff --git a/media-libs/libdvdread/libdvdread-7.0.1.ebuild b/media-libs/libdvdread/libdvdread-7.0.1.ebuild
index dba1e2579ac6..c42d4fad6f27 100644
--- a/media-libs/libdvdread/libdvdread-7.0.1.ebuild
+++ b/media-libs/libdvdread/libdvdread-7.0.1.ebuild
@@ -12,7 +12,7 @@ if [[ ${PV} = 9999 ]]; then
EGIT_REPO_URI="https://code.videolan.org/videolan/libdvdread.git"
else
SRC_URI="https://downloads.videolan.org/pub/videolan/libdvdread/${PV}/${P}.tar.xz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~sparc ~x86 ~x64-macos"
fi
# See https://code.videolan.org/videolan/libdvdread/-/commit/0e020921726ee812e633959d9ad6315ff58b902b
diff --git a/media-libs/libdvdread/libdvdread-7.1.1.ebuild b/media-libs/libdvdread/libdvdread-7.1.1.ebuild
new file mode 100644
index 000000000000..dba1e2579ac6
--- /dev/null
+++ b/media-libs/libdvdread/libdvdread-7.1.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson-multilib
+
+DESCRIPTION="Library for DVD navigation tools"
+HOMEPAGE="https://www.videolan.org/developers/libdvdnav.html"
+if [[ ${PV} = 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://code.videolan.org/videolan/libdvdread.git"
+else
+ SRC_URI="https://downloads.videolan.org/pub/videolan/libdvdread/${PV}/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+fi
+
+# See https://code.videolan.org/videolan/libdvdread/-/commit/0e020921726ee812e633959d9ad6315ff58b902b
+LICENSE="GPL-2 GPL-3"
+SLOT="0/8" # libdvdread.so.VERSION
+IUSE="+css static-libs"
+
+RDEPEND="css? ( >=media-libs/libdvdcss-1.3.0[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ sed -i -e "s/'COPYING', //" -e "s/doc\/${PN}/doc\/${P}/" -e "s/HEAD/DISABLE/" meson.build || die
+
+ default
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Ddefault_library=$(usex static-libs both shared)
+
+ $(meson_feature css libdvdcss)
+ )
+
+ meson_src_configure
+}
diff --git a/media-libs/libheif/libheif-1.23.4.ebuild b/media-libs/libheif/libheif-1.23.4.ebuild
index 50f6ee10cbd0..70f52ccb11a0 100644
--- a/media-libs/libheif/libheif-1.23.4.ebuild
+++ b/media-libs/libheif/libheif-1.23.4.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == *9999* ]] ; then
inherit git-r3
else
SRC_URI="https://github.com/strukturag/libheif/releases/download/v${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
fi
LICENSE="GPL-3 MIT"
diff --git a/media-libs/libwmf/libwmf-0.2.15-r1.ebuild b/media-libs/libwmf/libwmf-0.2.15-r1.ebuild
index ed84645abb37..48401aa98ea3 100644
--- a/media-libs/libwmf/libwmf-0.2.15-r1.ebuild
+++ b/media-libs/libwmf/libwmf-0.2.15-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/caolanm/libwmf/releases/download/v${PV}/${P}.tar.gz"
LICENSE="LGPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
IUSE="debug doc expat X"
RDEPEND="
diff --git a/media-libs/mlt/mlt-7.40.0.ebuild b/media-libs/mlt/mlt-7.40.0.ebuild
index 3ad42142868c..8977552ae194 100644
--- a/media-libs/mlt/mlt-7.40.0.ebuild
+++ b/media-libs/mlt/mlt-7.40.0.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/mltframework/${PN}/releases/download/v${PV}/${P}.tar
LICENSE="GPL-3"
SLOT="0/7"
-KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="debug ffmpeg frei0r gtk jack libsamplerate opencv opengl python qt6
rtaudio rnnoise rubberband sdl sox test vdpau vidstab vorbis xine xml"
diff --git a/media-libs/quarter/Manifest b/media-libs/quarter/Manifest
index ff468bdb021b..f48baabd7dec 100644
--- a/media-libs/quarter/Manifest
+++ b/media-libs/quarter/Manifest
@@ -1,2 +1 @@
-DIST quarter-1.2.2-src.tar.gz 6709135 BLAKE2B 7294236c446ba4389cc89987cf0c461a1414405142a7d943faf8fd215f3ad103994b2cee600b9b8fad56102a7046b3d59de5b6accb748924f8bac604d5ca180c SHA512 a8e0edf1ce6155aef52392a94dbc0f9692c98e295124ac2e7465bde5398f0716822e606b924194251091f7ae3dd39dd134d5a3fdd8a745f22a94c159553271a1
DIST quarter-1.2.3-src.tar.gz 6709677 BLAKE2B 219a3ca2ab843b81ffe51b6170ca0206a3ed4602c7e9a1b0e364accdabacadb03b54c48af2597ae1c1fa0f8bfa6c63701be733a1ce8c2ce09c4181a9705489d9 SHA512 905039dc2c5231b89272ba02aaf41e43b2632367a7bac09f579c4f6569f0cd9cf5003f3a8e315adc9f5c6b1b138ea137a09012888f2d9f59249c76fdf085eaf4
diff --git a/media-libs/quarter/quarter-1.2.2.ebuild b/media-libs/quarter/quarter-1.2.2.ebuild
deleted file mode 100644
index fe3b085f07dc..000000000000
--- a/media-libs/quarter/quarter-1.2.2.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake flag-o-matic
-
-DESCRIPTION="GUI binding for using Coin/Open Inventor with Qt"
-HOMEPAGE="https://github.com/coin3d/coin/wiki"
-SRC_URI="https://github.com/coin3d/quarter/releases/download/v${PV}/${P}-src.tar.gz"
-S="${WORKDIR}/quarter"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="debug designer doc qch"
-
-REQUIRED_USE="qch? ( doc )"
-
-RDEPEND="
- dev-qt/qtbase:6[gui,opengl,widgets]
- dev-qt/qttools:6[widgets]
- media-libs/coin
- virtual/opengl
- designer? ( dev-qt/qttools:6[designer] )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
- doc? (
- app-text/doxygen[dot]
- qch? ( dev-qt/qttools:6[assistant] )
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.2.1-cmake.patch
- "${FILESDIR}"/${P}-find-qhelpgenerator.patch # bug 933432
-)
-
-DOCS=( AUTHORS NEWS README.md )
-
-src_prepare() {
- cmake_src_prepare
- sed -e 's|/lib$|/lib@LIB_SUFFIX@|' \
- -i Quarter.pc.cmake.in || die
-}
-
-src_configure() {
- use debug && append-cppflags -DQUARTER_DEBUG=1
- local mycmakeargs=(
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- -DQUARTER_BUILD_SHARED_LIBS=ON
- -DQUARTER_BUILD_PLUGIN=$(usex designer)
- -DQUARTER_BUILD_EXAMPLES=OFF
- -DQUARTER_BUILD_DOCUMENTATION=$(usex doc)
- -DQUARTER_BUILD_AWESOME_DOCUMENTATION=$(usex doc)
- -DQUARTER_BUILD_DOC_MAN=$(usex doc)
- -DQUARTER_BUILD_INTERNAL_DOCUMENTATION=OFF
- -DQUARTER_BUILD_DOC_QTHELP=$(usex qch)
- -DQUARTER_BUILD_DOC_CHM=OFF
- -DQUARTER_USE_QT6=ON
- )
- use doc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON )
- cmake_src_configure
-}
diff --git a/media-libs/simage/Manifest b/media-libs/simage/Manifest
index 0363f696c178..326af3550cef 100644
--- a/media-libs/simage/Manifest
+++ b/media-libs/simage/Manifest
@@ -1,3 +1,2 @@
-DIST simage-1.8.3.tar.gz 829994 BLAKE2B 794ee3a1c71727af7e92839542470a4732584715b01cbfd5be7b34d8ea8295ca65f5634e10027e0e7e4eb36a024d31704ad31d9aa0a6ad6b66c08612879a1603 SHA512 193137bd00a322fe6c170d3ff318ac81e4cc685bdfa40a0415c5bb95802b6290174fea630eb79956f362b4e79fa0b60916976c63ef26d6a65a6a51d5d9f7de03
DIST simage-1.8.4-src.tar.gz 6798392 BLAKE2B 8135d26075516d35f11917b1c5b0ebc60c559ee6fb4e84c9601e85b28d15ff83eb5031d45e9332b9fcfc113d20c26639e6d118d73601e59a36f15797c2cbe60e SHA512 8dcd55a5ce4b2b135acc3dd2e5e7b589697e545ca68aaf496350202d9bdeeed2c4623d85a56fc8c73f28ece5f02c0047088c8b68732d5067020d487e2ff99965
DIST simage-1.8.5-src.tar.gz 6797333 BLAKE2B 21064d0b78796d233f08d3d10a70a8fcd7aa8de5eb19cc42da1cb2fec9b2a60fba2c12cf41f8cb9fe6109931102d9d5e98d6097705e612961fab0436b1a2bb84 SHA512 9853e071126a1b38325b8e0b0c67f3fd7b03b0e9b372469708785f5425ccc2ca93bfa78d1c83818241b882cf49f145a515b099385731f5086d42f3d43f92cc0d
diff --git a/media-libs/simage/files/simage-1.8.3-cmake4.patch b/media-libs/simage/files/simage-1.8.3-cmake4.patch
deleted file mode 100644
index af4b1a7452d1..000000000000
--- a/media-libs/simage/files/simage-1.8.3-cmake4.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 0d69e6f9e23a13406d49fe3dc855885046408162 Mon Sep 17 00:00:00 2001
-From: Volker Enderlein <volkerenderlein@hotmail.com>
-Date: Tue, 1 Apr 2025 20:22:45 +0200
-Subject: [PATCH] Adapt cmake_minimum_required command for usage with CMake 4.0
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 835c498..276178d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,4 +1,4 @@
--cmake_minimum_required(VERSION 3.0)
-+cmake_minimum_required(VERSION 3.0...3.29)
-
- set(SIMAGE_MAJOR_VERSION 1)
- set(SIMAGE_MINOR_VERSION 8)
diff --git a/media-libs/simage/simage-1.8.3-r1.ebuild b/media-libs/simage/simage-1.8.3-r1.ebuild
deleted file mode 100644
index 861e6c96d80f..000000000000
--- a/media-libs/simage/simage-1.8.3-r1.ebuild
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake
-
-DESCRIPTION="Image and video texturing library"
-HOMEPAGE="https://github.com/coin3d/simage/"
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/coin3d/simage.git"
-else
- SRC_URI="https://github.com/coin3d/simage/releases/download/v${PV}/${P}-src.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~hppa ppc ppc64 ~sparc x86"
- S="${WORKDIR}/${PN}"
-fi
-
-LICENSE="BSD-1"
-SLOT="0"
-IUSE="gif jpeg png qt6 sndfile test tiff vorbis zlib"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- gif? ( media-libs/giflib:= )
- jpeg? ( media-libs/libjpeg-turbo:= )
- png? ( media-libs/libpng:= )
- qt6? ( dev-qt/qtbase:6[gui] )
- sndfile? (
- media-libs/libsndfile
- media-libs/flac:=
- )
- tiff? (
- media-libs/tiff:=[lzma,zstd]
- app-arch/xz-utils
- app-arch/zstd:=
- )
- vorbis? (
- media-libs/libogg
- media-libs/libvorbis
- media-libs/opus
- )
- zlib? ( virtual/zlib:= )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="test? ( media-libs/libsndfile )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.8.1-0001-Gentoo-specific-remove-RELEASE-flag-from-pkg-config.patch
- "${FILESDIR}"/${P}-cmake4.patch # bug 952022
-)
-
-DOCS=( AUTHORS ChangeLog NEWS README )
-
-src_configure() {
- local mycmakeargs=(
- -DSIMAGE_BUILD_SHARED_LIBS=ON
- -DSIMAGE_BUILD_EXAMPLES=OFF
- -DSIMAGE_BUILD_TESTS=$(usex test)
- -DSIMAGE_BUILD_DOCUMENTATION=OFF
- -DSIMAGE_USE_AVIENC=OFF # Windows only
- -DSIMAGE_USE_GDIPLUS=OFF # Windows
- -DSIMAGE_USE_CGIMAGE=OFF # OS X only
- -DSIMAGE_USE_QUICKTIME=OFF # OS X only
- -DSIMAGE_USE_QIMAGE=$(usex qt6)
- -DSIMAGE_USE_QT5=OFF
- -DSIMAGE_USE_QT6=$(usex qt6)
- -DSIMAGE_USE_CPACK=OFF
- -DSIMAGE_USE_STATIC_LIBS=OFF
- -DSIMAGE_LIBJASPER_SUPPORT=OFF
- -DSIMAGE_LIBSNDFILE_SUPPORT=$(usex sndfile)
- -DSIMAGE_OGGVORBIS_SUPPORT=$(usex vorbis)
- -DSIMAGE_EPS_SUPPORT=ON
- -DSIMAGE_MPEG2ENC_SUPPORT=ON
- -DSIMAGE_PIC_SUPPORT=ON
- -DSIMAGE_RGB_SUPPORT=ON
- -DSIMAGE_TGA_SUPPORT=ON
- -DSIMAGE_XWD_SUPPORT=ON
- -DSIMAGE_ZLIB_SUPPORT=$(usex zlib)
- -DSIMAGE_GIF_SUPPORT=$(usex gif)
- -DSIMAGE_JPEG_SUPPORT=$(usex jpeg)
- -DSIMAGE_PNG_SUPPORT=$(usex png)
- -DSIMAGE_TIFF_SUPPORT=$(usex tiff)
- )
- cmake_src_configure
-}
diff --git a/media-libs/taglib/Manifest b/media-libs/taglib/Manifest
index fa200bde8682..bb26a0ee5243 100644
--- a/media-libs/taglib/Manifest
+++ b/media-libs/taglib/Manifest
@@ -1,4 +1,3 @@
DIST taglib-1.13.1.tar.gz 1372618 BLAKE2B 36cf9b59ded95c9996d04a86055a36a7b74a2a01c13f75826d4907abca0b982c5f9b0e4bcd6648707013108f8eaf424ab95f07c383130452aa169e2cab33f466 SHA512 986231ee62caa975afead7e94630d58acaac25a38bc33d4493d51bd635d79336e81bba60586d7355ebc0670e31f28d32da3ecceaf33292e4bc240c64bf00f35b
DIST taglib-2.3.1.tar.gz 1594864 BLAKE2B d29eca8d44f19c1306d1dab79768b293f29de0b25cd91e1689648286762c7102be7934f4b0ea4317e73940428261de26cd56300af946894a2466f376292d9d31 SHA512 f3988a78692527af0cb006c2cf5767f2ca624a35eaf75a594ce29f26f8b8f233d9e79c7925305cb362fa600491a9b5f34a81b622b6456e62e32d94d769be3762
DIST taglib-2.3.2.tar.gz 1754204 BLAKE2B a301dc9d866f97b51bec389d52dea4f31a4a66647acd0aa6c0c13d49bc3a7334c638ce1dd84a55d07d08ec3d72d36cdbd7d43c0ba49a9312af63920dd3e34407 SHA512 800fe379d22d863111a22257a57d81b8e561722e8baf41dc06719913276c31f80f29dda8afd1b99f02c277d9f22e813c54c3329564bbf0ea3448c0bc6575862a
-DIST taglib-2.3.tar.gz 1590005 BLAKE2B 5392808f5adb77dbd3d31d60212ab206de627d6a4b1debbb2f3d701c85275e277b788f74d6a97698b5f3e38ffc995f0b5ec2e158d2b8da5c80a2104ef833b33d SHA512 ff19464e2fb19db46823dedd7cecb713875de0c47e55852c5e1032c71fdaf7c129b65beefa6112ca1233a890e2756a89032ec3174b0f83e2d0c0e3d18fdf238c
diff --git a/media-libs/taglib/taglib-2.3.ebuild b/media-libs/taglib/taglib-2.3.ebuild
deleted file mode 100644
index f681f6ff5583..000000000000
--- a/media-libs/taglib/taglib-2.3.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake-multilib
-
-DESCRIPTION="Library for reading and editing audio meta data"
-HOMEPAGE="https://taglib.org"
-SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="LGPL-2.1 MPL-1.1"
-SLOT="0/2"
-KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
-IUSE="doc examples test"
-
-RESTRICT="!test? ( test )"
-
-RDEPEND="virtual/zlib:=[${MULTILIB_USEDEP}]"
-DEPEND="${RDEPEND}
- dev-libs/utfcpp
- test? ( dev-util/cppunit[${MULTILIB_USEDEP}] )
-"
-BDEPEND="
- virtual/pkgconfig
- doc? ( app-text/doxygen[dot] )
-"
-
-MULTILIB_CHOST_TOOLS=(
- /usr/bin/taglib-config
-)
-
-multilib_src_configure() {
- local mycmakeargs=(
- -DENABLE_CCACHE=OFF
- -DBUILD_EXAMPLES=$(multilib_native_usex examples)
- -DBUILD_TESTING=$(usex test)
- )
- cmake_src_configure
-}
-
-multilib_src_compile() {
- cmake_src_compile
-
- if multilib_is_native_abi && use doc; then
- cmake_build docs
- fi
-}
-
-multilib_src_test() {
- eninja -C "${BUILD_DIR}" check
-}
-
-multilib_src_install() {
- if multilib_is_native_abi && use doc; then
- HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
- fi
- cmake_src_install
-}
diff --git a/media-libs/ttf/ttf-1.1.0.ebuild b/media-libs/ttf/ttf-1.1.0.ebuild
index 76396daa38b9..e6c3a28bd409 100644
--- a/media-libs/ttf/ttf-1.1.0.ebuild
+++ b/media-libs/ttf/ttf-1.1.0.ebuild
@@ -27,7 +27,7 @@ src_prepare() {
sed -i -e '/.SILENT:/d' Makefile.in || die
# Fix docdir
- sed -i -e 's:/doc/pdfio:/doc/${PF}:' Makefile.in || die
+ sed -i -e 's:/doc/ttf:/doc/${PF}:' Makefile.in || die
# Respect CFLAGS
sed -i -e 's:-g -Os::' configure.ac configure || die
diff --git a/media-libs/ttf/ttf-9999.ebuild b/media-libs/ttf/ttf-9999.ebuild
index 6ede74e87e00..393d9db38c8f 100644
--- a/media-libs/ttf/ttf-9999.ebuild
+++ b/media-libs/ttf/ttf-9999.ebuild
@@ -34,7 +34,7 @@ src_prepare() {
sed -i -e '/.SILENT:/d' Makefile.in || die
# Fix docdir
- sed -i -e 's:/doc/pdfio:/doc/${PF}:' Makefile.in || die
+ sed -i -e 's:/doc/ttf:/doc/${PF}:' Makefile.in || die
# Respect CFLAGS
sed -i -e 's:-g -Os::' configure.ac configure || die
diff --git a/media-libs/x264/x264-0.0.20240513-r1.ebuild b/media-libs/x264/x264-0.0.20240513-r1.ebuild
index a8158bdfe738..386fe300f136 100644
--- a/media-libs/x264/x264-0.0.20240513-r1.ebuild
+++ b/media-libs/x264/x264-0.0.20240513-r1.ebuild
@@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then
else
X264_COMMIT="4613ac3c15fd75cebc4b9f65b7fb95e70a3acce1"
SRC_URI="https://code.videolan.org/videolan/x264/-/archive/${X264_COMMIT}/x264-${X264_COMMIT}.tar.bz2 -> ${P}.tar.bz2"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
S="${WORKDIR}/${PN}-${X264_COMMIT}"
fi
diff --git a/media-libs/zint/zint-2.16.0.ebuild b/media-libs/zint/zint-2.16.0.ebuild
index b0f07def8e67..7633325a6904 100644
--- a/media-libs/zint/zint-2.16.0.ebuild
+++ b/media-libs/zint/zint-2.16.0.ebuild
@@ -15,7 +15,7 @@ S="${WORKDIR}/${P}-src"
# see LICENSE
LICENSE="BSD GPL-3+"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="amd64 ~arm ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="amd64 arm ~ppc ~ppc64 ~riscv ~x86"
IUSE="gui png test"
RESTRICT="!test? ( test )"
diff --git a/media-plugins/live/live-2026.07.23.ebuild b/media-plugins/live/live-2026.07.23.ebuild
index b8ed14a06884..06cdf5b799b3 100644
--- a/media-plugins/live/live-2026.07.23.ebuild
+++ b/media-plugins/live/live-2026.07.23.ebuild
@@ -18,7 +18,7 @@ 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/120.3.5.33"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="ssl tools"
diff --git a/media-sound/alsa-utils/alsa-utils-1.2.16.ebuild b/media-sound/alsa-utils/alsa-utils-1.2.16.ebuild
index d64052073f29..7527615e7edf 100644
--- a/media-sound/alsa-utils/alsa-utils-1.2.16.ebuild
+++ b/media-sound/alsa-utils/alsa-utils-1.2.16.ebuild
@@ -15,7 +15,7 @@ SRC_URI="
LICENSE="GPL-2"
SLOT="0.9"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="bat doc +libsamplerate ieee1394 +ncurses nls selinux"
DEPEND="
diff --git a/media-sound/kid3/Manifest b/media-sound/kid3/Manifest
index 4dae0ea79ecb..b34588f172df 100644
--- a/media-sound/kid3/Manifest
+++ b/media-sound/kid3/Manifest
@@ -1,2 +1 @@
-DIST kid3-3.10.0.tar.xz 2021508 BLAKE2B 68102f7e48fa128bb7626fbedc54f92c53ba2eed7465998f485895d2f7d64114f894bb606f7edd5d3ec88b88797623f145c55332e827a2782a19d10e97d5e654 SHA512 6a8684770be8ef2ecef6c0eec6ff5f9c65d049e3c1892585f33a2cf096e33b9b729a91d203dd9a605ff5db41e134b84e44d8f42a26c42036721191ef5f6a732f
DIST kid3-3.10.1.tar.xz 2036180 BLAKE2B 93666b731fd2bc3b8426586ba1cf4e9046dffc8d6c636e6060b552ea77949612a8db391cb9840d26275e8dd144e5267c76b935ea6fbd1dd12f4f6238d521ebfc SHA512 f3563d7cb25eb9047a53ec204f9f89e399c0f4ce10d960279c0914998ff0ef5dc49db659723b08cac395718979ba4b2cc1490f63af0bbf13f818bb6f28060a8d
diff --git a/media-sound/kid3/kid3-3.10.0.ebuild b/media-sound/kid3/kid3-3.10.0.ebuild
deleted file mode 100644
index 2e7fa6e0e251..000000000000
--- a/media-sound/kid3/kid3-3.10.0.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{13..14} )
-inherit cmake kde.org python-any-r1 xdg
-
-DESCRIPTION="Simple tag editor based on Qt"
-HOMEPAGE="https://kid3.kde.org/"
-
-if [[ ${KDE_BUILD_TYPE} != live ]]; then
- SRC_URI="mirror://kde/stable/${PN}/${PV}/${P}.tar.xz"
- KEYWORDS="amd64 ~x86"
-fi
-
-LICENSE="GPL-2+"
-SLOT="0"
-IUSE="acoustid flac kde mp3 mp4 +mpris +taglib test vorbis"
-
-REQUIRED_USE="test? ( flac mp3 mp4 taglib vorbis )" # bug 926747
-RESTRICT="!test? ( test )"
-
-DEPEND="
- dev-qt/qtbase:6[gui,network,widgets,xml]
- dev-qt/qtdeclarative:6
- dev-qt/qtmultimedia:6
- sys-libs/readline:=
- acoustid? (
- media-libs/chromaprint:=
- media-video/ffmpeg:=
- )
- flac? ( media-libs/flac:=[cxx] )
- kde? (
- kde-frameworks/kconfig:6
- kde-frameworks/kconfigwidgets:6
- kde-frameworks/kcoreaddons:6
- kde-frameworks/kio:6
- kde-frameworks/kwidgetsaddons:6
- kde-frameworks/kxmlgui:6
- )
- mp3? ( media-libs/id3lib )
- mp4? ( media-libs/libmp4v2 )
- mpris? ( dev-qt/qtbase:6[dbus] )
- taglib? ( >=media-libs/taglib-1.9.1:= )
- vorbis? (
- media-libs/libogg
- media-libs/libvorbis
- )
-"
-RDEPEND="${DEPEND}
- !media-sound/kid3:5
-"
-BDEPEND="${PYTHON_DEPS}
- dev-qt/qttools:6[linguist]
- kde? ( kde-frameworks/extra-cmake-modules:0 )
-"
-
-pkg_setup() {
- use test && python-any-r1_pkg_setup
-}
-
-src_prepare() {
- # overengineered upstream build system
- cmake_src_prepare
- # applies broken python hacks, bug #614950
- cmake_comment_add_subdirectory doc
-}
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_WITH_QT6=ON
- -DWITH_QAUDIODECODER=ON # bug 855281
- -DWITH_CHROMAPRINT=$(usex acoustid)
- -DWITH_DBUS=$(usex mpris)
- -DWITH_FLAC=$(usex flac)
- -DWITH_ID3LIB=$(usex mp3)
- -DWITH_MP4V2=$(usex mp4)
- -DWITH_TAGLIB=$(usex taglib)
- -DBUILD_TESTING=$(usex test)
- -DWITH_VORBIS=$(usex vorbis)
- )
-
- if use kde; then
- mycmakeargs+=( "-DWITH_APPS=KDE;CLI" )
- else
- mycmakeargs+=( "-DWITH_APPS=Qt;CLI" )
- fi
-
- if use acoustid; then
- addpredict /dev # bug #855281
- fi
-
- cmake_src_configure
-}
diff --git a/media-sound/mac/mac-13.26.ebuild b/media-sound/mac/mac-13.26.ebuild
index afc1fbe96169..53fe5439ad17 100644
--- a/media-sound/mac/mac-13.26.ebuild
+++ b/media-sound/mac/mac-13.26.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://monkeysaudio.com/files/MAC_${PV/.}_SDK.zip -> ${P}.zip"
LICENSE="BSD"
SLOT="0/17"
-KEYWORDS="~alpha ~amd64 ~loong ppc ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 ~loong ppc ppc64 ~riscv ~sparc x86"
BDEPEND="app-arch/unzip"
diff --git a/media-sound/pavucontrol/Manifest b/media-sound/pavucontrol/Manifest
index 2efaa217b7c5..749ec4df7f14 100644
--- a/media-sound/pavucontrol/Manifest
+++ b/media-sound/pavucontrol/Manifest
@@ -1,2 +1 @@
-DIST pavucontrol-5.0.tar.xz 194248 BLAKE2B 9e6b9b7d94be51a4ad8b5310e031c4fed0f5299e67c770c9a573c0647edf27345014fb6504892fad29b9b5e79ce43ed312217dbed8e2b31b805f291531062903 SHA512 5673d783c2c819a68b49025c051bedd39f4caba446a479797b06569e24a96acc0924ba680d2416baff8c3211cfc7c94760d503900207fbe7c89c5cb2adaebec1
DIST pavucontrol-6.1.tar.xz 169488 BLAKE2B 888fbe404482e5da5b59d10f913f174daa128029babbb9493df5df5d6d3c0b95e22d03a3ec2629fbcd4f33c6267f6e2173428d7eb9be8b7f4c7f012d3e777e92 SHA512 90a0d85916010f624928f6aa68524f776b0a529d84e75287739a07db48e4084767ca0caf75503e44e04d8add84b1d668ee9ed5b822b8f8f945cd902cdf78413a
diff --git a/media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch b/media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch
deleted file mode 100644
index 595cf9f8d0bd..000000000000
--- a/media-sound/pavucontrol/files/pavucontrol-5.0-make-libcanberra-optional.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 8916cb62b0facf45ccb220fd2efd5746fdaf79b8 Mon Sep 17 00:00:00 2001
-From: Adrian Ratiu <adrian.ratiu@collabora.com>
-Date: Mon, 25 Mar 2024 02:19:42 +0200
-Subject: [PATCH] Make libcanberra optional
-
-libcanberra is an old abandoned project whose last release
-was well over a decade ago, despite getting some few fixes
-on its master branch since then, which are unreleased.
-
-My problem with libcanberra is that it can't be built on
-pure wayland systems (no X11 headers) which are becoming
-more common nowadays.
-
-It is the only thing keeping pavucontrol tied to X11, all
-other dependencies (eg gtk+) build fine on pure wayland.
-Since canberra is not a core part of the project, let's
-make it optional so pavucontrol can build & work on
-pure wayland systems.
-
-Ideally in the future libcanberra can be replaced with
-something else, however I don't have the bandwidth to
-take this on for now, so I'm just making it optional.
-
-Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
----
- configure.ac | 9 ++++++++-
- src/pavuapplication.cc | 2 --
- src/pavucontrol.cc | 4 ++++
- src/sinkwidget.cc | 5 +++++
- 4 files changed, 17 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 056ba5e..1b793b8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -41,10 +41,17 @@ AC_TYPE_SIGNAL
- AC_HEADER_STDC
- AX_CXX_COMPILE_STDCXX_11
-
--PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 libcanberra-gtk3 >= 0.16 json-glib-1.0 ])
-+PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 json-glib-1.0 ])
- AC_SUBST(GUILIBS_CFLAGS)
- AC_SUBST(GUILIBS_LIBS)
-
-+AC_CHECK_LIB([canberra-gtk3], [canberra_gtk_play], [HAVE_LIBCANBERRA=yes], [HAVE_LIBCANBERRA=no])
-+AS_IF([test "x$HAVE_LIBCANBERRA" = "xyes"], [
-+ AC_DEFINE([HAVE_LIBCANBERRA], [1], [Have libcanberra support.])
-+ AC_SUBST(LIBCANBERRA_CFLAGS)
-+ AC_SUBST(LIBCANBERRA_LIBS)
-+])
-+
- if test -d ../pulseaudio ; then
- PULSE_CFLAGS='-I$(top_srcdir)/../pulseaudio/src'
- PULSE_LIBS='-L$(top_srcdir)/../pulseaudio/src/.libs -lpulse -lpulse-mainloop-glib'
-diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
-index 6773b53..60c016c 100644
---- a/src/pavuapplication.cc
-+++ b/src/pavuapplication.cc
-@@ -24,8 +24,6 @@
-
- #include "i18n.h"
-
--#include <canberra-gtk.h>
--
- #include "pavuapplication.h"
- #include "pavucontrol.h"
- #include "mainwindow.h"
-diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
-index 18d5400..ff652be 100644
---- a/src/pavucontrol.cc
-+++ b/src/pavucontrol.cc
-@@ -29,7 +29,9 @@
- #include <json-glib/json-glib.h>
- #endif
-
-+#ifdef HAVE_LIBCANBERRA
- #include <canberra-gtk.h>
-+#endif
-
- #include "pavucontrol.h"
- #include "i18n.h"
-@@ -916,7 +918,9 @@ MainWindow* pavucontrol_get_window(pa_glib_mainloop *m, bool maximize, bool _ret
- tab_number = _tab_number;
- retry = _retry;
-
-+#ifdef HAVE_LIBCANBERRA
- ca_context_set_driver(ca_gtk_context_get(), "pulse");
-+#endif
-
- mainWindow = MainWindow::create(maximize);
-
-diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
-index f30bd37..41d7bb8 100644
---- a/src/sinkwidget.cc
-+++ b/src/sinkwidget.cc
-@@ -24,7 +24,10 @@
-
- #include "sinkwidget.h"
-
-+#ifdef HAVE_LIBCANBERRA
- #include <canberra-gtk.h>
-+#endif
-+
- #if HAVE_EXT_DEVICE_RESTORE_API
- # include <pulse/format.h>
- # include <pulse/ext-device-restore.h>
-@@ -120,6 +123,7 @@ void SinkWidget::executeVolumeUpdate() {
-
- pa_operation_unref(o);
-
-+#ifdef HAVE_LIBCANBERRA
- ca_context_playing(ca_gtk_context_get(), 2, &playing);
- if (playing)
- return;
-@@ -136,6 +140,7 @@ void SinkWidget::executeVolumeUpdate() {
- NULL);
-
- ca_context_change_device(ca_gtk_context_get(), NULL);
-+#endif
- }
-
- void SinkWidget::onMuteToggleButton() {
---
-2.43.2
-
diff --git a/media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch b/media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch
deleted file mode 100644
index 55dd41921a37..000000000000
--- a/media-sound/pavucontrol/files/pavucontrol-6.1-docdir.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/meson.build b/meson.build
-index bc1a300..553abc1 100644
---- a/meson.build
-+++ b/meson.build
-@@ -28,7 +28,7 @@ configinc = include_directories('.')
-
- prefix = get_option('prefix')
- datadir = join_paths(prefix, get_option('datadir'))
--docdir = join_paths(datadir, 'doc', 'pavucontrol')
-+docdir = join_paths(datadir, 'doc', 'pavucontrol-' + meson.project_version())
- localedir = join_paths(prefix, get_option('localedir'))
-
- cdata = configuration_data()
diff --git a/media-sound/pavucontrol/pavucontrol-5.0-r4.ebuild b/media-sound/pavucontrol/pavucontrol-5.0-r4.ebuild
deleted file mode 100644
index c35f01980e1b..000000000000
--- a/media-sound/pavucontrol/pavucontrol-5.0-r4.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Pulseaudio Volume Control, GTK based mixer for Pulseaudio"
-HOMEPAGE="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-SRC_URI="https://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~hppa ~loong ppc ~ppc64 ~riscv ~sparc x86"
-IUSE="nls X"
-
-inherit autotools
-
-PATCHES=(
- "${FILESDIR}/${PN}-5.0-make-libcanberra-optional.patch"
-)
-
-RDEPEND="
- dev-libs/json-glib
- X? (
- >=dev-cpp/gtkmm-3.22:3.0[X]
- || (
- media-libs/libcanberra-gtk3
- >=media-libs/libcanberra-0.16[gtk3(-)]
- )
- )
- !X? ( >=dev-cpp/gtkmm-3.22:3.0 )
- >=dev-libs/libsigc++-2.2:2
- >=media-libs/libpulse-15.0[glib]
- virtual/freedesktop-icon-theme
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
- nls? (
- dev-util/intltool
- sys-devel/gettext
- )
-"
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- --disable-lynx
- $(use_enable nls)
- )
- econf "${myeconfargs[@]}"
-}
diff --git a/media-sound/pavucontrol/pavucontrol-6.1.ebuild b/media-sound/pavucontrol/pavucontrol-6.1.ebuild
deleted file mode 100644
index 1a8b23357e32..000000000000
--- a/media-sound/pavucontrol/pavucontrol-6.1.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DESCRIPTION="Pulseaudio Volume Control, GTK based mixer for Pulseaudio"
-HOMEPAGE="https://freedesktop.org/software/pulseaudio/pavucontrol/"
-SRC_URI="https://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86"
-IUSE="X"
-
-inherit meson
-
-RDEPEND="
- dev-libs/json-glib
- dev-cpp/gtkmm:4.0
- X? ( media-libs/libcanberra-gtk3 )
- dev-libs/libsigc++:3
- >=media-libs/libpulse-15.0[glib]
- virtual/freedesktop-icon-theme
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- virtual/pkgconfig
- sys-devel/gettext
-"
-
-PATCHES=(
- "${FILESDIR}/pavucontrol-6.1-docdir.patch"
-)
-
-src_configure() {
- local emesonargs=(
- -Dlynx=false
- )
-
- meson_src_configure
-}
diff --git a/media-video/mpv/mpv-9999.ebuild b/media-video/mpv/mpv-9999.ebuild
index c1f8abca9060..4cfa8300cbd8 100644
--- a/media-video/mpv/mpv-9999.ebuild
+++ b/media-video/mpv/mpv-9999.ebuild
@@ -69,7 +69,10 @@ COMMON_DEPEND="
x11-libs/libdrm
egl? ( media-libs/mesa[gbm(+)] )
)
- dvd? ( media-libs/libdvdnav )
+ dvd? (
+ media-libs/libdvdnav
+ >=media-libs/libdvdread-7.1.1:=
+ )
egl? (
media-libs/libglvnd
media-libs/libplacebo[opengl]
@@ -168,9 +171,7 @@ src_configure() {
-Dcplugins=enabled
$(meson_feature curl libcurl)
$(meson_feature dvb dvbin)
- # TODO: depend on >=libdvdread-7.1.1 w/ USE=dvd when it is
- # packaged (bug #981444)
- -Ddvda=disabled #$(meson_feature dvd dvda)
+ $(meson_feature dvd dvda)
$(meson_feature dvd dvdnav)
$(meson_feature gamepad sdl2-gamepad)
$(meson_feature iconv)
diff --git a/media-video/recordmydesktop/recordmydesktop-0.4.0-r2.ebuild b/media-video/recordmydesktop/recordmydesktop-0.4.0-r2.ebuild
index be5d45f1f2ee..66792c06ef95 100644
--- a/media-video/recordmydesktop/recordmydesktop-0.4.0-r2.ebuild
+++ b/media-video/recordmydesktop/recordmydesktop-0.4.0-r2.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/${P}/${PN}"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~ppc ppc64 ~x86"
IUSE="alsa jack"
RDEPEND="x11-libs/libXext
diff --git a/metadata/stabilization-groups/vim-classic.group b/metadata/stabilization-groups/vim-classic.group
new file mode 100644
index 000000000000..119a2601b3ba
--- /dev/null
+++ b/metadata/stabilization-groups/vim-classic.group
@@ -0,0 +1,3 @@
+app-editors/gvim-classic
+app-editors/vim-classic
+app-editors/vim-classic-core
diff --git a/net-dns/cares-tools/cares-tools-0.4.ebuild b/net-dns/cares-tools/cares-tools-0.4.ebuild
index 268ec6a47939..46fce32845fe 100644
--- a/net-dns/cares-tools/cares-tools-0.4.ebuild
+++ b/net-dns/cares-tools/cares-tools-0.4.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://gitlab.com/grobian/${PN}/-/archive/${PV}/${P}.tar.bz2"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm64-macos ~x64-macos ~x64-solaris"
+KEYWORDS="~amd64 ~arm64 ~arm64-macos ~x64-macos ~x64-solaris"
DEPEND="
net-dns/c-ares
diff --git a/net-dns/dnstop/dnstop-20250530.ebuild b/net-dns/dnstop/dnstop-20250530.ebuild
index 2908e7a50af4..6b09a57bc08d 100644
--- a/net-dns/dnstop/dnstop-20250530.ebuild
+++ b/net-dns/dnstop/dnstop-20250530.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
@@ -13,7 +13,7 @@ S="${WORKDIR}/${PN}-${SRC_COMMIT}"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~hppa ~ppc ~x86"
+KEYWORDS="~amd64 arm ~hppa ~ppc ~x86"
RDEPEND="
sys-libs/ncurses:0
diff --git a/net-firewall/firewalld/firewalld-2.5.2.ebuild b/net-firewall/firewalld/firewalld-2.5.2.ebuild
index 92650865261d..3a8776cdc3cf 100644
--- a/net-firewall/firewalld/firewalld-2.5.2.ebuild
+++ b/net-firewall/firewalld/firewalld-2.5.2.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/firewalld/firewalld/releases/download/v${PV}/${P}.ta
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+KEYWORDS="~amd64 arm arm64 ~loong ~ppc64 ~riscv ~x86"
IUSE="gui selinux test"
# Tests are too unreliable in sandbox environment
RESTRICT="!test? ( test ) test"
diff --git a/net-irc/quassel/quassel-0.14.50_pre20260525.ebuild b/net-irc/quassel/quassel-0.14.50_pre20260525.ebuild
deleted file mode 100644
index 97595d2c10c1..000000000000
--- a/net-irc/quassel/quassel-0.14.50_pre20260525.ebuild
+++ /dev/null
@@ -1,214 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit cmake optfeature pax-utils systemd xdg-utils
-
-if [[ ${PV} != *9999* ]]; then
- COMMIT=6b8343eeffa291be941fd18d637210f048495318 # qt6-migration branch
- if [[ -n ${COMMIT} ]]; then
- SRC_URI="https://github.com/johu/quassel/archive/${COMMIT}.tar.gz -> ${P}-${COMMIT:0:8}.tar.gz"
- # quassel-i18n branch tx-sync (po subdir) @d88d126
- SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PN}-i18n-0.14.50_pre20260427.tar.xz"
- S="${WORKDIR}/${PN}-${COMMIT}"
- else
- MY_P=${PN}-${PV/_/-}
- if [[ ${PV} == *_rc* ]]; then
- SRC_URI="https://github.com/quassel/quassel/archive/refs/tags/${PV/_/-}.tar.gz -> ${P}.tar.gz"
- else
- SRC_URI="https://quassel-irc.org/pub/${MY_P}.tar.bz2"
- fi
- S="${WORKDIR}/${MY_P}"
- fi
- # RCs weren't keyworded in past, but we are past that point
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
-else
- EGIT_REPO_URI=( https://github.com/johu/${PN} ) # as long as Qt6 isn't
- EGIT_BRANCH=( feat/qt6-migration ) # merged upstream ...
- # See also: https://github.com/quassel/quassel/pull/631
- # EGIT_REPO_URI=( "https://github.com/${PN}/${PN}" )
- inherit git-r3
-fi
-
-DESCRIPTION="Qt/KDE IRC client supporting a remote daemon for 24/7 connectivity"
-HOMEPAGE="https://quassel-irc.org/"
-
-LICENSE="GPL-3"
-SLOT="0"
-IUSE="crypt +dbus gui kde ldap monolithic oxygen postgres +server spell syslog +system-icons test urlpreview"
-
-REQUIRED_USE="
- || ( gui server monolithic )
- crypt? ( || ( server monolithic ) )
- kde? ( dbus spell )
- ldap? ( || ( server monolithic ) )
- postgres? ( || ( server monolithic ) )
- spell? ( || ( gui monolithic ) )
- syslog? ( || ( server monolithic ) )
-"
-
-RESTRICT="!test? ( test )"
-
-SERVER_DEPEND="
- acct-group/quassel
- acct-user/quassel
- crypt? ( >=app-crypt/qca-2.3.7:2[qt6(+)] )
- ldap? ( net-nds/openldap:= )
- postgres? ( dev-qt/qtbase:6[postgres,sql] )
- !postgres? (
- dev-qt/qtbase:6[sql,sqlite]
- dev-db/sqlite:3[threadsafe(+),-secure-delete]
- )
- syslog? ( virtual/logger )
-"
-GUI_DEPEND="
- dev-qt/qt5compat:6
- dev-qt/qtbase:6[dbus?,gui,widgets]
- dev-qt/qtmultimedia:6
- kde? (
- kde-frameworks/kconfigwidgets:6
- kde-frameworks/kcoreaddons:6
- kde-frameworks/knotifications:6
- kde-frameworks/knotifyconfig:6
- kde-frameworks/ktextwidgets:6
- kde-frameworks/kwidgetsaddons:6
- kde-frameworks/kxmlgui:6
- )
- spell? ( kde-frameworks/sonnet:6 )
- system-icons? (
- kde-frameworks/breeze-icons:*
- oxygen? ( kde-frameworks/oxygen-icons:* )
- )
- urlpreview? ( dev-qt/qtwebengine:6[widgets] )
-"
-RDEPEND="
- dev-libs/boost:=
- dev-qt/qtbase:6[network,ssl]
- virtual/zlib:=
- monolithic? (
- ${GUI_DEPEND}
- ${SERVER_DEPEND}
- )
- !monolithic? (
- gui? ( ${GUI_DEPEND} )
- server? ( ${SERVER_DEPEND} )
- )
-"
-DEPEND="${RDEPEND}
- test? ( dev-cpp/gtest )
-"
-BDEPEND="
- dev-qt/qttools:6[linguist]
- kde-frameworks/extra-cmake-modules:0
-"
-
-DOCS=( AUTHORS ChangeLog README.md )
-
-src_unpack() {
- case ${PV} in
- 9999) git-r3_src_unpack ;&
- *)
- default
- if [[ -n ${COMMIT} ]]; then
- mv "${WORKDIR}"/po "${S}" || die
- fi
- ;;
- esac
-}
-
-src_configure() {
- local mycmakeargs=(
- -DUSE_CCACHE=OFF
- -DCMAKE_SKIP_RPATH=ON
- -DEMBED_DATA=OFF
- -DWANT_QTCLIENT=$(usex gui)
- -DWITH_KDE=$(usex kde)
- -DWITH_LDAP=$(usex ldap)
- -DWANT_MONO=$(usex monolithic)
- -DWITH_OXYGEN_ICONS=$(usex oxygen)
- -DWANT_CORE=$(usex server)
- -DWITH_BUNDLED_ICONS=$(usex !system-icons)
- -DBUILD_TESTING=$(usex test)
- -DWITH_WEBENGINE=$(usex urlpreview)
- )
-
- # bug #830708
- if use gui || use monolithic ; then
- mycmakeargs+=(
- $(cmake_use_find_package dbus Qt6DBus)
- $(cmake_use_find_package spell KF6Sonnet)
- )
- fi
-
- if use server || use monolithic ; then
- mycmakeargs+=( $(cmake_use_find_package crypt Qca-qt6) )
- fi
-
- cmake_src_configure
-}
-
-src_install() {
- cmake_src_install
-
- if use server ; then
- # Needs PaX marking, bug #346255
- pax-mark m "${ED}"/usr/bin/quasselcore
-
- # Init scripts & systemd unit
- newinitd "${FILESDIR}"/quasselcore.init-r1 quasselcore
- newconfd "${FILESDIR}"/quasselcore.conf-r1 quasselcore
- systemd_dounit "${FILESDIR}"/quasselcore.service
-
- # logrotate
- insinto /etc/logrotate.d
- newins "${FILESDIR}"/quassel.logrotate quassel
- fi
-}
-
-src_test() {
- LD_LIBRARY_PATH="${BUILD_DIR}/lib:${LD_LIBRARY_PATH}" cmake_src_test
-}
-
-pkg_postinst() {
- if use monolithic ; then
- elog "Information on how to enable SSL support for client/core connections"
- elog "is available at: https://bugs.quassel-irc.org/projects/quassel-irc/wiki/Client-Core_SSL_support"
- fi
-
- if use server ; then
- einfo "If you want to generate SSL certificate, remember to run:"
- einfo " emerge --config =${CATEGORY}/${PF}"
- fi
-
- if use server || use monolithic ; then
- optfeature "running Quassel within an ident daemon" "net-misc/oidentd"
- fi
-
- xdg_icon_cache_update
-}
-
-pkg_postrm() {
- xdg_icon_cache_update
-}
-
-pkg_config() {
- if use server ; then
- # Generate the pem file only when it does not already exist
- QUASSEL_DIR="${EROOT}"/var/lib/${PN}
-
- if [[ ! -f "${QUASSEL_DIR}/quasselCert.pem" ]] ; then
- einfo "Generating Quassel SSL certificate to: \"${QUASSEL_DIR}/quasselCert.pem\""
- openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
- -keyout "${QUASSEL_DIR}/quasselCert.pem" \
- -out "${QUASSEL_DIR}/quasselCert.pem" || die
-
- # Permissions for the key
- chown ${PN}:${PN} "${QUASSEL_DIR}/quasselCert.pem" || die
- chmod 400 "${QUASSEL_DIR}/quasselCert.pem" || die
- else
- einfo "Certificate \"${QUASSEL_DIR}/quasselCert.pem\" already exists."
- einfo "Remove it if you want to create new one."
- fi
- fi
-}
diff --git a/net-libs/libgssglue/libgssglue-0.9-r1.ebuild b/net-libs/libgssglue/libgssglue-0.9-r1.ebuild
index e261792b5ed4..5cabbb298bb5 100644
--- a/net-libs/libgssglue/libgssglue-0.9-r1.ebuild
+++ b/net-libs/libgssglue/libgssglue-0.9-r1.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
RDEPEND="virtual/krb5"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-libgssglue )"
diff --git a/net-libs/loudmouth/loudmouth-1.5.4-r1.ebuild b/net-libs/loudmouth/loudmouth-1.5.4-r1.ebuild
index cb10809f672e..e5599c7e890b 100644
--- a/net-libs/loudmouth/loudmouth-1.5.4-r1.ebuild
+++ b/net-libs/loudmouth/loudmouth-1.5.4-r1.ebuild
@@ -9,7 +9,7 @@ SRC_URI="https://mcabber.com/files/${PN}/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~ppc ppc64 ~riscv ~sparc ~x86"
IUSE="asyncns debug +gnutls idn +ssl"
RDEPEND="
diff --git a/net-libs/webkit-gtk/webkit-gtk-2.52.6-r410.ebuild b/net-libs/webkit-gtk/webkit-gtk-2.52.6-r410.ebuild
index 4439dae1adfb..27a7e8976b1f 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.52.6-r410.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.52.6-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 cpu_flags_x86_sse cpu_flags_x86_sse2 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.6-r600.ebuild b/net-libs/webkit-gtk/webkit-gtk-2.52.6-r600.ebuild
index 0a54e495be82..49dece048361 100644
--- a/net-libs/webkit-gtk/webkit-gtk-2.52.6-r600.ebuild
+++ b/net-libs/webkit-gtk/webkit-gtk-2.52.6-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 cpu_flags_x86_sse cpu_flags_x86_sse2 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/wvstreams/wvstreams-4.6.1_p14-r3.ebuild b/net-libs/wvstreams/wvstreams-4.6.1_p14-r3.ebuild
index e06733eaa13a..cef843deaede 100644
--- a/net-libs/wvstreams/wvstreams-4.6.1_p14-r3.ebuild
+++ b/net-libs/wvstreams/wvstreams-4.6.1_p14-r3.ebuild
@@ -15,7 +15,7 @@ SRC_URI="
S=${WORKDIR}/${P/_p*}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~sparc x86"
IUSE="boost +dbus debug doc pam"
#Tests fail if openssl is not compiled with -DPURIFY. Gentoo's isn't. FAIL!
diff --git a/net-mail/dovecot/dovecot-2.4.5-r1.ebuild b/net-mail/dovecot/dovecot-2.4.5-r1.ebuild
index 231674aefb3b..658466f762b0 100644
--- a/net-mail/dovecot/dovecot-2.4.5-r1.ebuild
+++ b/net-mail/dovecot/dovecot-2.4.5-r1.ebuild
@@ -36,7 +36,7 @@ S="${WORKDIR}/${MY_P}"
PIEGONHOLE_S="../dovecot-pigeonhole-${MY_PV}"
LICENSE="LGPL-2.1 MIT"
SLOT="0/${PV}"
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~amd64 arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE_DOVECOT_AUTH_DICT="cdb kerberos ldap lua mysql pam postgres sqlite"
IUSE_DOVECOT_COMPRESS="lz4 zstd"
diff --git a/net-misc/dropbear/dropbear-2026.94.ebuild b/net-misc/dropbear/dropbear-2026.94.ebuild
index 28277d49f2d6..ff71f6945969 100644
--- a/net-misc/dropbear/dropbear-2026.94.ebuild
+++ b/net-misc/dropbear/dropbear-2026.94.ebuild
@@ -18,7 +18,7 @@ SRC_URI+=" verify-sig? (
LICENSE="MIT GPL-2" # (init script is GPL-2 #426056)
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc x86 ~x64-macos"
IUSE="bsdpty legacy-ciphers minimal multicall pam +shadow static +syslog test +test-async zlib"
RESTRICT="!test? ( test )"
diff --git a/net-misc/electrum/electrum-4.8.1.ebuild b/net-misc/electrum/electrum-4.8.1.ebuild
index ee0c3ffff2c2..bf85559f3f5d 100644
--- a/net-misc/electrum/electrum-4.8.1.ebuild
+++ b/net-misc/electrum/electrum-4.8.1.ebuild
@@ -25,7 +25,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="cli ncurses qrcode +qt6"
REQUIRED_USE="|| ( cli ncurses qt6 )"
diff --git a/net-misc/openrsync/openrsync-0.5.0_p20260706.ebuild b/net-misc/openrsync/openrsync-0.5.0_p20260706.ebuild
index ab19eba2f9b4..9e395a429c34 100644
--- a/net-misc/openrsync/openrsync-0.5.0_p20260706.ebuild
+++ b/net-misc/openrsync/openrsync-0.5.0_p20260706.ebuild
@@ -22,7 +22,7 @@ fi
LICENSE="ISC"
SLOT="0"
if [[ ${PV} != 9999 ]] ; then
- KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
fi
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/net-misc/stunnel/stunnel-5.79.ebuild b/net-misc/stunnel/stunnel-5.79.ebuild
index c7a5827229e5..258032259afb 100644
--- a/net-misc/stunnel/stunnel-5.79.ebuild
+++ b/net-misc/stunnel/stunnel-5.79.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc x86"
IUSE="selinux stunnel3 systemd tcpd test"
RESTRICT="!test? ( test )"
diff --git a/net-misc/tuba/tuba-0.11.0.ebuild b/net-misc/tuba/tuba-0.11.0.ebuild
index 8ac07fd1f68a..396a48db2e00 100644
--- a/net-misc/tuba/tuba-0.11.0.ebuild
+++ b/net-misc/tuba/tuba-0.11.0.ebuild
@@ -19,7 +19,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="GPL-3 CC-BY-SA-4.0"
SLOT="0"
-KEYWORDS="~amd64 arm64"
+KEYWORDS="amd64 arm64"
IUSE="exif gstreamer spell webkit"
DEPEND="
diff --git a/net-news/rssguard/rssguard-5.2.5.ebuild b/net-news/rssguard/rssguard-5.2.5.ebuild
index bcbaf94e8438..f955e972319f 100644
--- a/net-news/rssguard/rssguard-5.2.5.ebuild
+++ b/net-news/rssguard/rssguard-5.2.5.ebuild
@@ -13,7 +13,7 @@ SRC_URI="
LICENSE="|| ( LGPL-3 GPL-2+ ) AGPL-3+ BSD GPL-3+ MIT"
SLOT="0/104"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
IUSE="icu libmpv mysql qtmultimedia +sqlite test webengine xmpp"
REQUIRED_USE="
|| ( mysql sqlite )
diff --git a/net-nntp/leafnode/leafnode-1.12.0-r1.ebuild b/net-nntp/leafnode/leafnode-1.12.0-r1.ebuild
index 3e7f21c21130..54887b452384 100644
--- a/net-nntp/leafnode/leafnode-1.12.0-r1.ebuild
+++ b/net-nntp/leafnode/leafnode-1.12.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
@@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="~amd64 ~ppc x86"
DEPEND=">=dev-libs/libpcre2-10"
RDEPEND="${DEPEND}
diff --git a/net-nntp/tin/tin-2.6.5.ebuild b/net-nntp/tin/tin-2.6.5.ebuild
index f3273869f11b..f49bee9d115a 100644
--- a/net-nntp/tin/tin-2.6.5.ebuild
+++ b/net-nntp/tin/tin-2.6.5.ebuild
@@ -11,7 +11,7 @@ SRC_URI="ftp://ftp.tin.org/pub/news/clients/tin/stable/${P}.tar.xz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~ppc ~x86"
+KEYWORDS="~amd64 arm ppc ~x86"
IUSE="cancel-locks debug gnutls gpg libtls nls sasl socks5 ssl"
RDEPEND="
diff --git a/net-p2p/gtk-gnutella/gtk-gnutella-1.2.3.ebuild b/net-p2p/gtk-gnutella/gtk-gnutella-1.2.3.ebuild
index 7074f5089b3a..7efae590e8b8 100644
--- a/net-p2p/gtk-gnutella/gtk-gnutella-1.2.3.ebuild
+++ b/net-p2p/gtk-gnutella/gtk-gnutella-1.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
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/gtk-gnutella/gtk-gnutella/archive/v${PV}.tar.gz -> $
LICENSE="CC-BY-SA-4.0 GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+KEYWORDS="~amd64 ~ppc ppc64 ~x86"
IUSE="nls dbus ssl +gtk"
diff --git a/net-print/cups-filters/cups-filters-2.0.1-r1.ebuild b/net-print/cups-filters/cups-filters-2.0.1-r1.ebuild
index d9ec573c9645..5da4f688e418 100644
--- a/net-print/cups-filters/cups-filters-2.0.1-r1.ebuild
+++ b/net-print/cups-filters/cups-filters-2.0.1-r1.ebuild
@@ -7,11 +7,18 @@ inherit flag-o-matic
DESCRIPTION="Cups filters"
HOMEPAGE="https://wiki.linuxfoundation.org/openprinting/cups-filters"
-SRC_URI="https://github.com/OpenPrinting/cups-filters/releases/download/${PV}/${P}.tar.xz"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/OpenPrinting/cups-filters"
+ inherit autotools git-r3
+else
+ SRC_URI="https://github.com/OpenPrinting/cups-filters/releases/download/${PV}/${P}.tar.xz"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="+foomatic"
RDEPEND="
@@ -38,6 +45,12 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.0.1-CVE-2025-64524.patch
)
+src_prepare() {
+ default
+
+ [[ ${PV} == 9999 ]] && eautoreconf
+}
+
src_configure() {
# https://github.com/OpenPrinting/cups-filters/issues/605 (bug #944074)
append-cflags -std=gnu17
diff --git a/net-print/cups-filters/cups-filters-9999.ebuild b/net-print/cups-filters/cups-filters-9999.ebuild
new file mode 100644
index 000000000000..71acb5183154
--- /dev/null
+++ b/net-print/cups-filters/cups-filters-9999.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="Cups filters"
+HOMEPAGE="https://wiki.linuxfoundation.org/openprinting/cups-filters"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/OpenPrinting/cups-filters"
+ inherit autotools git-r3
+else
+ SRC_URI="https://github.com/OpenPrinting/cups-filters/releases/download/${PV}/${P}.tar.xz"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="+foomatic"
+
+RDEPEND="
+ net-print/libcupsfilters
+ net-print/libppd
+ >=net-print/cups-1.7.3
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=sys-devel/gettext-0.18.3
+ virtual/pkgconfig
+"
+
+# The tests are composed of:
+# - built program
+# - test case itself: filter/test.sh
+#
+# The latter is not wired up, and it becomes immediately evident why.
+# Bow to this reality and don't claim we can run anything. As a side
+# effect, don't compile in src_test, that which we never use.
+RESTRICT="test"
+
+src_prepare() {
+ default
+
+ [[ ${PV} == 9999 ]] && eautoreconf
+}
+
+src_configure() {
+ # https://github.com/OpenPrinting/cups-filters/issues/605 (bug #944074)
+ append-cflags -std=gnu17
+
+ local myeconfargs=(
+ --enable-imagefilters
+ --enable-driverless
+ --enable-poppler
+ --localstatedir="${EPREFIX}"/var
+ --with-fontdir="fonts/conf.avail"
+ # These are just probed for the path. Always enable them.
+ --with-gs-path="${EPREFIX}"/usr/bin/gs
+ --with-mutool-path="${EPREFIX}"/usr/bin/mutool
+
+ $(use_enable foomatic)
+ )
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/net-print/libcupsfilters/libcupsfilters-2.2.1.ebuild b/net-print/libcupsfilters/libcupsfilters-2.2.1.ebuild
index 87290a60e3ca..e1aaf3b15ace 100644
--- a/net-print/libcupsfilters/libcupsfilters-2.2.1.ebuild
+++ b/net-print/libcupsfilters/libcupsfilters-2.2.1.ebuild
@@ -10,12 +10,19 @@ MY_P=${PN}-${MY_PV}
DESCRIPTION="library for developing printing features, split out of cups-filters"
HOMEPAGE="https://github.com/OpenPrinting/libcupsfilters"
-SRC_URI="https://github.com/OpenPrinting/libcupsfilters/releases/download/${MY_PV}/${MY_P}.tar.xz"
-S="${WORKDIR}"/${MY_P}
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/OpenPrinting/libcupsfilters"
+ inherit autotools git-r3
+else
+ SRC_URI="https://github.com/OpenPrinting/libcupsfilters/releases/download/${MY_PV}/${MY_P}.tar.xz"
+ S="${WORKDIR}"/${MY_P}
+
+ KEYWORDS="~amd64 ~arm"
+fi
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~arm"
IUSE="dbus exif fontconfig jpeg jpegxl pdf +postscript png test tiff"
RESTRICT="!test? ( test )"
@@ -46,8 +53,12 @@ BDEPEND="
src_prepare() {
default
- # respect --as-needed
- elibtoolize
+ if [[ ${PV} == 9999 ]] ; then
+ eautoreconf
+ else
+ # respect --as-needed
+ elibtoolize
+ fi
}
src_configure() {
diff --git a/net-print/libcupsfilters/libcupsfilters-9999.ebuild b/net-print/libcupsfilters/libcupsfilters-9999.ebuild
new file mode 100644
index 000000000000..e1aaf3b15ace
--- /dev/null
+++ b/net-print/libcupsfilters/libcupsfilters-9999.ebuild
@@ -0,0 +1,93 @@
+# Copyright 2023-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit libtool
+
+MY_PV=${PV/_beta/b}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="library for developing printing features, split out of cups-filters"
+HOMEPAGE="https://github.com/OpenPrinting/libcupsfilters"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/OpenPrinting/libcupsfilters"
+ inherit autotools git-r3
+else
+ SRC_URI="https://github.com/OpenPrinting/libcupsfilters/releases/download/${MY_PV}/${MY_P}.tar.xz"
+ S="${WORKDIR}"/${MY_P}
+
+ KEYWORDS="~amd64 ~arm"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="dbus exif fontconfig jpeg jpegxl pdf +postscript png test tiff"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=app-text/pdfio-1.6.4
+ app-text/poppler[utils]
+ media-libs/lcms:2
+ >=net-print/cups-2.2.2
+ !<net-print/cups-filters-2.0.0
+
+ exif? ( media-libs/libexif )
+ dbus? ( sys-apps/dbus )
+ fontconfig? ( >=media-libs/fontconfig-2.0.0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
+ jpegxl? ( >=media-libs/libjxl-0.7.0:= )
+ pdf? ( >=app-text/mupdf-1.15:= )
+ postscript? ( app-text/ghostscript-gpl[cups] )
+ png? ( media-libs/libpng:= )
+ tiff? ( media-libs/tiff:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ >=sys-devel/gettext-0.18.3
+ virtual/pkgconfig
+ test? ( media-fonts/dejavu )
+"
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == 9999 ]] ; then
+ eautoreconf
+ else
+ # respect --as-needed
+ elibtoolize
+ fi
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-imagefilters
+ --localstatedir="${EPREFIX}"/var
+ --with-cups-rundir="${EPREFIX}"/run/cups
+ $(use_enable exif)
+ $(use_enable dbus)
+ $(use_enable postscript ghostscript)
+ $(use_enable pdf mutool)
+ $(use_with fontconfig)
+ $(use_with jpeg)
+ $(use_with jpegxl)
+ $(use_with png)
+ $(use_with tiff)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ # Don't try to use ASAN which will fail under sandbox
+ local -x SAN_FLAGS=" "
+
+ default
+}
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/net-proxy/tsocks/tsocks-1.8_beta5-r10.ebuild b/net-proxy/tsocks/tsocks-1.8_beta5-r10.ebuild
index d8f02ba00a36..6251dac2630f 100644
--- a/net-proxy/tsocks/tsocks-1.8_beta5-r10.ebuild
+++ b/net-proxy/tsocks/tsocks-1.8_beta5-r10.ebuild
@@ -13,7 +13,7 @@ SRC_URI="https://downloads.sourceforge.net/tsocks/${PN}-${PV/_}.tar.gz
S="${WORKDIR}/${P%%_*}"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="debug dns envconf tordns server-lookups"
REQUIRED_USE="
diff --git a/net-vpn/networkmanager-libreswan/Manifest b/net-vpn/networkmanager-libreswan/Manifest
index 1bc3aff1f1f2..73f4adfa327d 100644
--- a/net-vpn/networkmanager-libreswan/Manifest
+++ b/net-vpn/networkmanager-libreswan/Manifest
@@ -1 +1,2 @@
DIST NetworkManager-libreswan-1.2.24.tar.xz 432692 BLAKE2B c0f4777c0fbfae58fda3d43321375d76eaa2a56cb63262535f98969f69c1be6456c6fbad5db07346018eeccc0d4364945eb8a19861b809643071aa9f34cfeeaf SHA512 8b7c8d7736b3ffcb27d6e28c9073f0cad5098decc41342643dd7392c361a7d2664bdac17ca895b14c9b224d330637d4f5d095f242b06e3d312b00803993c6e5c
+DIST NetworkManager-libreswan-1.2.31.tar.xz 459488 BLAKE2B 7ef195c9309ac8e4595e67a426b1998f46954f39ec37c18e08081e93cf89cb14cf744130cad2852cfc2bc90f9a8a05db7c001f3f4eb1f22d83bbe27d17e92f92 SHA512 f4d810f3453a06c37bbd5cbdc89e9b623acd8bd0ea8dfb197c0b1df747857a364c45b27914f5037adc79450894bd8e17a5fa0c7eb4c3469e990a639c91a0b746
diff --git a/net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.31.ebuild b/net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.31.ebuild
new file mode 100644
index 000000000000..5757e0388bba
--- /dev/null
+++ b/net-vpn/networkmanager-libreswan/networkmanager-libreswan-1.2.31.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GNOME_ORG_MODULE="NetworkManager-${PN##*-}"
+
+inherit gnome2
+
+DESCRIPTION="NetworkManager libreswan plugin"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/NetworkManager-libreswan"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gtk"
+
+RDEPEND="
+ >=dev-libs/glib-2.44:2
+ >=dev-libs/libnl-3.2.8:3
+ >=net-misc/networkmanager-1.12.0:=
+ net-vpn/libreswan
+ gtk? (
+ app-crypt/libsecret
+ >=x11-libs/gtk+-3.4:3
+ >=gui-libs/gtk-4.0:4
+ >=gnome-extra/nm-applet-1.12.0
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ sys-devel/gettext
+ dev-util/intltool
+ virtual/pkgconfig
+"
+
+src_configure() {
+ local myconf=(
+ --disable-more-warnings
+ --disable-static
+ --with-dist-version=Gentoo
+ $(use_with gtk gnome)
+ $(use_with gtk gtk4)
+ )
+ gnome2_src_configure "${myconf[@]}"
+}
diff --git a/net-vpn/openconnect/openconnect-9.12-r2.ebuild b/net-vpn/openconnect/openconnect-9.12-r2.ebuild
index f70313a0515e..3c31d4fd8dfc 100644
--- a/net-vpn/openconnect/openconnect-9.12-r2.ebuild
+++ b/net-vpn/openconnect/openconnect-9.12-r2.ebuild
@@ -15,7 +15,7 @@ else
inherit verify-sig
SRC_URI="https://www.infradead.org/openconnect/download/${P}.tar.gz
verify-sig? ( https://www.infradead.org/openconnect/download/${P}.tar.gz.asc )"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="Free client for Cisco AnyConnect SSL VPN software"
diff --git a/profiles/arch/base/package.use.mask b/profiles/arch/base/package.use.mask
index aa071040a462..a9f01d928a88 100644
--- a/profiles/arch/base/package.use.mask
+++ b/profiles/arch/base/package.use.mask
@@ -350,7 +350,7 @@ llvm-runtimes/compiler-rt-sanitizers asan dfsan lsan msan hwasan tsan
llvm-runtimes/compiler-rt-sanitizers ubsan safestack cfi scudo
llvm-runtimes/compiler-rt-sanitizers shadowcallstack gwp-asan
llvm-runtimes/compiler-rt-sanitizers libfuzzer memprof orc profile xray
-llvm-runtimes/compiler-rt-sanitizers ctx-profile nsan rtsan
+llvm-runtimes/compiler-rt-sanitizers copyprof ctx-profile nsan rtsan
# Sam James <sam@gentoo.org> (2020-10-24)
# asm redc is only available on amd64, ppc64. bug #750974.
diff --git a/profiles/base/package.use.mask b/profiles/base/package.use.mask
index 5850656eb8cc..3b85983dafe0 100644
--- a/profiles/base/package.use.mask
+++ b/profiles/base/package.use.mask
@@ -6,6 +6,10 @@
# New entries go on top.
+# Andreas Sturmlechner <asturm@gentoo.org> (2026-09-19)
+# Building documentation is broken in this version. Bug #976293
+~dev-cpp/eigen-3.4.1 doc
+
# Michał Górny <mgorny@gentoo.org> (2026-09-05)
# dev-python/{ioflo,raet} stuck on Python 3.12 and last-rited.
app-admin/salt raet
diff --git a/profiles/package.mask/00-gentoo b/profiles/package.mask/00-gentoo
index 17133bba9c59..0c43f57a81b6 100644
--- a/profiles/package.mask/00-gentoo
+++ b/profiles/package.mask/00-gentoo
@@ -51,6 +51,8 @@ dev-python/overrides
# Most revdeps still need gexiv2-0.16 compatibility fixes
# See: https://bugs.gentoo.org/982084
=media-libs/gexiv2-0.16*
+>=gnome-base/nautilus-50
+>=media-gfx/shotwell-33
# Arthur Zamarin <arthurzam@gentoo.org> (2026-09-11)
# EAPI=7, old PYTHON_COMPAT, doesn't work with spotify for a long time,
diff --git a/sci-libs/cantera/cantera-3.2.0-r1.ebuild b/sci-libs/cantera/cantera-3.2.0-r1.ebuild
index 698174ef9d09..03be813a0f21 100644
--- a/sci-libs/cantera/cantera-3.2.0-r1.ebuild
+++ b/sci-libs/cantera/cantera-3.2.0-r1.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~x86"
+KEYWORDS="amd64"
IUSE="fortran hdf5 +python test"
RESTRICT="!test? ( test )"
diff --git a/sci-libs/cantera/cantera-3.2.0-r2.ebuild b/sci-libs/cantera/cantera-3.2.0-r2.ebuild
index 59367dd6d172..f157182b5361 100644
--- a/sci-libs/cantera/cantera-3.2.0-r2.ebuild
+++ b/sci-libs/cantera/cantera-3.2.0-r2.ebuild
@@ -19,7 +19,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64"
IUSE="fortran hdf5 +python test"
RESTRICT="!test? ( test )"
diff --git a/sci-libs/cartopy/cartopy-0.24.1-r2.ebuild b/sci-libs/cartopy/cartopy-0.24.1-r2.ebuild
index c910d102632a..69151ec59254 100644
--- a/sci-libs/cartopy/cartopy-0.24.1-r2.ebuild
+++ b/sci-libs/cartopy/cartopy-0.24.1-r2.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 @@ S="${WORKDIR}"/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/sci-libs/cartopy/cartopy-0.25.0.ebuild b/sci-libs/cartopy/cartopy-0.25.0.ebuild
index 8246e0501d7b..69151ec59254 100644
--- a/sci-libs/cartopy/cartopy-0.25.0.ebuild
+++ b/sci-libs/cartopy/cartopy-0.25.0.ebuild
@@ -20,7 +20,7 @@ S="${WORKDIR}"/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
IUSE="test"
RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/sci-libs/indilib/indilib-2.2.4.2.ebuild b/sci-libs/indilib/indilib-2.2.4.2.ebuild
index 8121d1c45950..ef7ea707ef9e 100644
--- a/sci-libs/indilib/indilib-2.2.4.2.ebuild
+++ b/sci-libs/indilib/indilib-2.2.4.2.ebuild
@@ -12,7 +12,7 @@ S="${WORKDIR}/${P/lib/}"
LICENSE="BSD GPL-2+ LGPL-2+ LGPL-2.1+"
SLOT="0/1"
-KEYWORDS="~amd64 ~ppc64 ~riscv"
+KEYWORDS="~amd64 ppc64 ~riscv"
IUSE="ogg rtlsdr test"
RESTRICT="!test? ( test )"
diff --git a/sci-libs/libgeotiff/libgeotiff-1.7.4.ebuild b/sci-libs/libgeotiff/libgeotiff-1.7.4.ebuild
index 457267aacb90..45589f1b2bc6 100644
--- a/sci-libs/libgeotiff/libgeotiff-1.7.4.ebuild
+++ b/sci-libs/libgeotiff/libgeotiff-1.7.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
@@ -16,7 +16,7 @@ SRC_URI="https://download.osgeo.org/geotiff/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0/5"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv x86 ~x64-macos"
# TODO: add tiff when resolved: https://github.com/OSGeo/libgeotiff/issues/125
IUSE="jpeg zlib"
diff --git a/sci-libs/nfft/files/nfft-3.5.3-openmp.patch b/sci-libs/nfft/files/nfft-3.5.3-openmp.patch
new file mode 100644
index 000000000000..a4f59a4330a8
--- /dev/null
+++ b/sci-libs/nfft/files/nfft-3.5.3-openmp.patch
@@ -0,0 +1,58 @@
+--- a/applications/fastsum/Makefile.am 2026-09-19 22:53:57.849954511 +0200
++++ b/applications/fastsum/Makefile.am 2026-09-19 22:54:59.329364284 +0200
+@@ -33,6 +33,7 @@
+ libfastsum_threads_la_LDFLAGS = @fftw3_threads_LDFLAGS@
+ if HAVE_OPENMP
+ libfastsum_threads_la_CFLAGS = $(OPENMP_CFLAGS)
++ libfastsum_threads_la_LIBADD += -lomp
+ endif
+ endif
+
+--- a/julia/nfft/Makefile.am 2026-09-19 23:01:26.115650984 +0200
++++ b/julia/nfft/Makefile.am 2026-09-19 23:02:12.018210301 +0200
+@@ -14,6 +14,9 @@
+ endif
+
+ libnfftjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la @fftw3_LDFLAGS@ $(libadd_for_fftw_threads) @fftw3_LIBS@
++if HAVE_OPENMP
++ libnfftjulia_la_CFLAGS = $(OPENMP_CFLAGS)
++endif
+
+ libnfftjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@
+
+--- a/configure.ac 2026-09-19 23:26:29.855965100 +0200
++++ b/configure.ac 2026-09-19 23:26:48.348781187 +0200
+@@ -314,6 +314,9 @@
+ # whether ln -s works
+ AC_PROG_LN_S
+
++AC_PROG_EGREP
++AC_PROG_SED
++
+ ################################################################################
+ # 3rd party libraries
+ ################################################################################
+--- a/julia/nfct/Makefile.am 2026-09-19 23:31:07.140207466 +0200
++++ b/julia/nfct/Makefile.am 2026-09-19 23:31:59.305688673 +0200
+@@ -16,6 +16,9 @@
+ libnfctjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la @fftw3_LDFLAGS@ $(libadd_for_fftw_threads) @fftw3_LIBS@
+
+ libnfctjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@
++if HAVE_OPENMP
++ libnfctjulia_la_CFLAGS = $(OPENMP_CFLAGS)
++endif
+
+ EXTRA_DIST = NFCT.jl simple_test_1d.jl simple_test_2d.jl simple_test_3d.jl
+
+--- a/julia/nfst/Makefile.am 2026-09-19 23:34:13.229356784 +0200
++++ b/julia/nfst/Makefile.am 2026-09-19 23:35:14.410748329 +0200
+@@ -16,6 +16,9 @@
+ libnfstjulia_la_LIBADD = $(top_builddir)/libnfft3@PREC_SUFFIX@_julia.la @fftw3_LDFLAGS@ $(libadd_for_fftw_threads) @fftw3_LIBS@
+
+ libnfstjulia_la_LDFLAGS = -no-undefined -shared -avoid-version @fftw3_LDFLAGS@
++if HAVE_OPENMP
++libnfstjulia_la_CFLAGS = $(OPENMP_CFLAGS)
++endif
+
+ EXTRA_DIST = NFST.jl simple_test_1d.jl simple_test_2d.jl simple_test_3d.jl
+
diff --git a/sci-libs/nfft/nfft-3.5.3-r1.ebuild b/sci-libs/nfft/nfft-3.5.3-r1.ebuild
index 0bbfa7dc27a3..20a29bb09d41 100644
--- a/sci-libs/nfft/nfft-3.5.3-r1.ebuild
+++ b/sci-libs/nfft/nfft-3.5.3-r1.ebuild
@@ -23,6 +23,7 @@ PATCHES=(
"${FILESDIR}/${P}-gcc15.patch"
"${FILESDIR}/${P}-rtc.patch"
"${FILESDIR}/${P}-dash.patch"
+ "${FILESDIR}/${P}-openmp.patch"
)
pkg_pretend() {
diff --git a/sci-libs/proj/proj-9.4.1.ebuild b/sci-libs/proj/proj-9.4.1.ebuild
index ee0636aa7c6f..e1866c47f98f 100644
--- a/sci-libs/proj/proj-9.4.1.ebuild
+++ b/sci-libs/proj/proj-9.4.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
@@ -22,7 +22,7 @@ else
https://download.osgeo.org/proj/${P}.tar.gz
https://download.osgeo.org/proj/${PN}-data-${PROJ_DATA_PV}.tar.gz
"
- KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
+ KEYWORDS="amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86"
fi
LICENSE="MIT"
diff --git a/sci-mathematics/z3/z3-5.1.0.ebuild b/sci-mathematics/z3/z3-5.1.0.ebuild
index 117975e9a355..aae45cadc19a 100644
--- a/sci-mathematics/z3/z3-5.1.0.ebuild
+++ b/sci-mathematics/z3/z3-5.1.0.ebuild
@@ -14,7 +14,7 @@ S=${WORKDIR}/z3-${P}
LICENSE="MIT"
SLOT="0/$(ver_cut 1-2)"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv ~sparc x86"
IUSE="doc examples gmp isabelle java python"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/sci-visualization/pythonprop/pythonprop-0.30.1_p20240217-r1.ebuild b/sci-visualization/pythonprop/pythonprop-0.30.1_p20240217-r1.ebuild
index 16aafeddaf49..4098a623050e 100644
--- a/sci-visualization/pythonprop/pythonprop-0.30.1_p20240217-r1.ebuild
+++ b/sci-visualization/pythonprop/pythonprop-0.30.1_p20240217-r1.ebuild
@@ -17,7 +17,7 @@ S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="
diff --git a/sec-keys/openpgp-keys-ddevault/Manifest b/sec-keys/openpgp-keys-ddevault/Manifest
new file mode 100644
index 000000000000..1406959c107b
--- /dev/null
+++ b/sec-keys/openpgp-keys-ddevault/Manifest
@@ -0,0 +1 @@
+DIST publickey.txt 644 BLAKE2B 89334e1c90c0df31725cb5988f9d178e03d47eaa776d5f28056702a6cf75a63fe917640a27b49053071c82cf5ffb3e3f76a0b2b928634796067cece22d83056a SHA512 95e78ca2adc49bbf187e30842844d708c9a2e5550a15a1aa610a121317978a8feb2eb110827e946248e3a5f7944465a4d9681e746ed0c16dfe7fe98a19e40a4e
diff --git a/sec-keys/openpgp-keys-ddevault/metadata.xml b/sec-keys/openpgp-keys-ddevault/metadata.xml
new file mode 100644
index 000000000000..30bbac324889
--- /dev/null
+++ b/sec-keys/openpgp-keys-ddevault/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>bacs@librecast.net</email>
+ <name>Brett A C Sheffield</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/sec-keys/openpgp-keys-ddevault/openpgp-keys-ddevault-20250219.ebuild b/sec-keys/openpgp-keys-ddevault/openpgp-keys-ddevault-20250219.ebuild
new file mode 100644
index 000000000000..200a4f23d565
--- /dev/null
+++ b/sec-keys/openpgp-keys-ddevault/openpgp-keys-ddevault-20250219.ebuild
@@ -0,0 +1,16 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+SEC_KEYS_VALIDPGPKEYS=(
+ "9FB5E737DC25B29D8EEC469142F3F1862E3CC4B8:ddevault:manual"
+)
+
+inherit sec-keys
+
+DESCRIPTION="Drew DeVault's PGP signing key"
+HOMEPAGE="https://drewdevault.com/"
+SRC_URI="https://drewdevault.com/publickey.txt"
+
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
diff --git a/sec-keys/openpgp-keys-nabijaczleweli/openpgp-keys-nabijaczleweli-20260717.ebuild b/sec-keys/openpgp-keys-nabijaczleweli/openpgp-keys-nabijaczleweli-20260717.ebuild
index 47786bf62fcf..88a3f4636d50 100644
--- a/sec-keys/openpgp-keys-nabijaczleweli/openpgp-keys-nabijaczleweli-20260717.ebuild
+++ b/sec-keys/openpgp-keys-nabijaczleweli/openpgp-keys-nabijaczleweli-20260717.ebuild
@@ -13,4 +13,4 @@ DESCRIPTION="OpenPGP keys used by наб (nabijaczleweli)"
HOMEPAGE="https://nabijaczleweli.xyz/"
SRC_URI+=" https://nabijaczleweli.xyz/pgp.txt -> ${P}-pgp.txt"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha ~amd64 arm ~hppa ~mips ~ppc ppc64 ~s390 ~sparc ~x86 ~x64-macos"
diff --git a/sec-keys/openpgp-keys-paulhardy/Manifest b/sec-keys/openpgp-keys-paulhardy/Manifest
new file mode 100644
index 000000000000..b431fb3eedfe
--- /dev/null
+++ b/sec-keys/openpgp-keys-paulhardy/Manifest
@@ -0,0 +1 @@
+DIST openpgp-keys-paulhardy-ubuntu-20220319.asc 107552 BLAKE2B ec870e9594d15526f1b4c1051649d0e48fcc262ba8279238e79a8adaf32e3b22a8c70447d46beeea8a51e66ad4805b3d03e226b1ee2149ff4153759d1df2fc89 SHA512 33b2537d52dcf0eafe450b1a129ac6ecd81ab8c6cf9d6d63c4284208f20ec8f671c225bce856c1d7abe46d60739dddf8a27668e96cdb19c613358f9741cd5fbc
diff --git a/sec-keys/openpgp-keys-paulhardy/metadata.xml b/sec-keys/openpgp-keys-paulhardy/metadata.xml
new file mode 100644
index 000000000000..6d4977d80bc4
--- /dev/null
+++ b/sec-keys/openpgp-keys-paulhardy/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>fonts@gentoo.org</email>
+ <name>Fonts</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>cjk@gentoo.org</email>
+ <name>Cjk</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/sec-keys/openpgp-keys-paulhardy/openpgp-keys-paulhardy-20220319.ebuild b/sec-keys/openpgp-keys-paulhardy/openpgp-keys-paulhardy-20220319.ebuild
new file mode 100644
index 000000000000..b63fdd598e4f
--- /dev/null
+++ b/sec-keys/openpgp-keys-paulhardy/openpgp-keys-paulhardy-20220319.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+SEC_KEYS_VALIDPGPKEYS=(
+ '95D2E9AB8740D8046387FD151A09227B1F435A33:paulhardy:ubuntu'
+)
+
+inherit sec-keys
+
+DESCRIPTION="OpenPGP keys used by Paul Hardy"
+HOMEPAGE="https://unifoundry.com/index.html"
+
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
diff --git a/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild b/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild
index 6aafec105d3c..6ddebd719517 100644
--- a/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild
+++ b/sys-apps/bubblewrap/bubblewrap-0.12.0.ebuild
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/containers/${PN}/releases/download/v${PV}/${P}.tar.x
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv x86"
+KEYWORDS="amd64 arm ~arm64 ~loong ppc ppc64 ~riscv x86"
IUSE="selinux test"
RESTRICT="!test? ( test )"
diff --git a/sys-apps/coreutils/coreutils-9.11-r1.ebuild b/sys-apps/coreutils/coreutils-9.11-r1.ebuild
index 1a623acef861..23d825e07ae6 100644
--- a/sys-apps/coreutils/coreutils-9.11-r1.ebuild
+++ b/sys-apps/coreutils/coreutils-9.11-r1.ebuild
@@ -33,7 +33,7 @@ else
verify-sig? ( mirror://gnu/${PN}/${P}.tar.xz.sig )
"
- KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ppc64 ~riscv ~s390 ~sparc ~x86"
fi
SRC_URI+=" !vanilla? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${MY_PATCH}.tar.xz )"
diff --git a/sys-apps/epoch/epoch-1.3.0-r1.ebuild b/sys-apps/epoch/epoch-1.3.0-r1.ebuild
index 06cdfdb8fb21..625ed5dc2b24 100644
--- a/sys-apps/epoch/epoch-1.3.0-r1.ebuild
+++ b/sys-apps/epoch/epoch-1.3.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
@@ -12,7 +12,7 @@ S="${WORKDIR}/${PN}_${PV/rc/RC}"
LICENSE="public-domain"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
+KEYWORDS="~amd64 arm ~x86"
pkg_pretend() {
local CONFIG_CHECK="~PROC_FS"
diff --git a/sys-apps/miller/miller-6.20.2.ebuild b/sys-apps/miller/miller-6.20.2.ebuild
index 20dc42a48530..4ed6cdc18db7 100644
--- a/sys-apps/miller/miller-6.20.2.ebuild
+++ b/sys-apps/miller/miller-6.20.2.ebuild
@@ -14,7 +14,7 @@ SRC_URI+=" https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/
LICENSE="Apache-2.0 BSD BSD-2 ISC MIT Unlicense"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~x86"
+KEYWORDS="~amd64 arm ~x86"
BDEPEND="
>=dev-lang/go-1.25.0
diff --git a/sys-apps/moor/moor-2.17.0.ebuild b/sys-apps/moor/moor-2.17.0.ebuild
index a0df1d879da2..bab32334725a 100644
--- a/sys-apps/moor/moor-2.17.0.ebuild
+++ b/sys-apps/moor/moor-2.17.0.ebuild
@@ -16,7 +16,7 @@ LICENSE="BSD-2 BSD MIT"
# Dependent licenses
LICENSE+=" Apache-2.0 BSD BSD-2 ISC MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
+KEYWORDS="~amd64 ~arm arm64 ~ppc64"
IUSE="test l10n_ru"
RESTRICT="!test? ( test )"
diff --git a/sys-apps/portage/portage-3.0.82.2.ebuild b/sys-apps/portage/portage-3.0.82.2.ebuild
index 5e751e5ed486..36bc4a481031 100644
--- a/sys-apps/portage/portage-3.0.82.2.ebuild
+++ b/sys-apps/portage/portage-3.0.82.2.ebuild
@@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
SRC_URI="https://gitweb.gentoo.org/proj/portage.git/snapshot/${P}.tar.bz2"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
LICENSE="GPL-2"
diff --git a/sys-apps/shadow/shadow-4.20.2.ebuild b/sys-apps/shadow/shadow-4.20.2.ebuild
index 09e019e95653..eba759681baf 100644
--- a/sys-apps/shadow/shadow-4.20.2.ebuild
+++ b/sys-apps/shadow/shadow-4.20.2.ebuild
@@ -20,7 +20,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="BSD GPL-2"
# Subslot is for libsubid's SONAME.
SLOT="0/6"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="acl audit nls pam selinux skey split-usr su systemd test"
RESTRICT="!test? ( test )"
diff --git a/sys-apps/xdg-desktop-portal-gnome/Manifest b/sys-apps/xdg-desktop-portal-gnome/Manifest
index 39621698f683..2858bf693a5e 100644
--- a/sys-apps/xdg-desktop-portal-gnome/Manifest
+++ b/sys-apps/xdg-desktop-portal-gnome/Manifest
@@ -1,2 +1,2 @@
-DIST xdg-desktop-portal-gnome-48.0.tar.xz 192012 BLAKE2B b243b711a11f73bcc2997e632d41274ee5536d4111347f6a10f04de5287202f22a2a6abe30caa678a230abdd0b8b9d67faa4ed6e7290b00abf37e7021be62f85 SHA512 82efcee0799ece8a5bc7bdf1fcfeed46757a42e4d009fc7a6e8615707f698294708bac411d7651c8e387716d5ad8791565a796936bf231f9b55b3d720dae522a
DIST xdg-desktop-portal-gnome-49.0.tar.xz 193752 BLAKE2B dd11a889561fbd23730724d9b5f6cc2d8f970e7cbfb993dcbc635eb9d2144f3727baac08aa4e48d9692ae2ad5b9bba46956550f96197e4f4a5ac7fad2781a434 SHA512 a93936f74141c2f4726a350bca0a0435c6e7478e7cbb3e5431a75c0e26e78f2df58a5e849825dc4bbc8c18d49fd0cb203e880e055bc94c8e0c40cbbeaa33c1b3
+DIST xdg-desktop-portal-gnome-50.0.tar.xz 200348 BLAKE2B 6a98940cf12825e3dcd72332f639a796a8a48323d04dd35970d9bad54894d79707a21b4238208c039d80e94d6a9d1862afcd841403a4a1d85c97162ba62cc3a1 SHA512 0128240c3dfa58e5e7e5043b3db20ea4413cfc13f4458b507afc9cbc8223047ff192c0b21afac10bf1c6455b710f0365c2add7d7446d4ec51ee739fbdd23eb63
diff --git a/sys-apps/xdg-desktop-portal-gnome/xdg-desktop-portal-gnome-48.0.ebuild b/sys-apps/xdg-desktop-portal-gnome/xdg-desktop-portal-gnome-50.0.ebuild
index 58552f06f19b..6735f082b233 100644
--- a/sys-apps/xdg-desktop-portal-gnome/xdg-desktop-portal-gnome-48.0.ebuild
+++ b/sys-apps/xdg-desktop-portal-gnome/xdg-desktop-portal-gnome-50.0.ebuild
@@ -10,12 +10,12 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="wayland X"
DEPEND="
- dev-libs/glib:2
- >=gnome-base/gsettings-desktop-schemas-47_alpha
+ >=dev-libs/glib-2.76:2
+ >=gnome-base/gsettings-desktop-schemas-50.0
gnome-base/gnome-desktop:4=
>=gui-libs/libadwaita-1.7_alpha:1
media-libs/fontconfig
diff --git a/sys-auth/pam_xdg/pam_xdg-0.8.5.ebuild b/sys-auth/pam_xdg/pam_xdg-0.8.5.ebuild
index bb0b157d1589..261fe491a53d 100644
--- a/sys-auth/pam_xdg/pam_xdg-0.8.5.ebuild
+++ b/sys-auth/pam_xdg/pam_xdg-0.8.5.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://ftp.sdaoden.eu/${P}.tar.gz"
LICENSE="ISC"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
RDEPEND="sys-libs/pam"
DEPEND="${RDEPEND}"
diff --git a/sys-auth/pambase/pambase-20260730.ebuild b/sys-auth/pambase/pambase-20260730.ebuild
index fd20244e126f..6a73c514b7a3 100644
--- a/sys-auth/pambase/pambase-20260730.ebuild
+++ b/sys-auth/pambase/pambase-20260730.ebuild
@@ -19,7 +19,7 @@ if [[ ${PV} == *9999 ]]; then
else
SRC_URI="https://gitweb.gentoo.org/proj/pambase.git/snapshot/${P}.tar.bz2"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~x86"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86"
fi
LICENSE="MIT"
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index 667f01021667..51f81289be47 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -24,6 +24,7 @@ DIST gcc-14.4.0.tar.xz 91586872 BLAKE2B 10a512f9f95fcc70a13f4eb2142927277d2e6c0a
DIST gcc-15-20260717.tar.xz 92482140 BLAKE2B ae84ad42a0f5a35a36c362340298c94c8e8a64c7695102bb3a29b394527033186bf3599323ae8b1a478e215806cee702bfa48740421c504eefbafacbe74d2086 SHA512 91aaf673637458ebf73df2b1d87c21c9cbf432211b98e6dff965ae0f073f2ea8be8921a9828711fb6c10b9b3ec2e20213d118a05c08f31b8192ab291b448375d
DIST gcc-15-20260904.tar.xz 92498536 BLAKE2B 4cf423cc30aebbd682504b252a45499e30ee3687adfcb0f4ae83fb3b638ebbde65591c14a3a873f163b76dd8811cb600ea936e751befabc4ff0e4d9bd4fa177c SHA512 3a0af0e7700b572d5dd034528c32ee06dc82ad2e80f93a2eb8324a77c7f25c575b848161b7cd8d04a9a3ebfcea356083d2dd5b1869bb7b44da1a00f6c172690b
DIST gcc-15-20260911.tar.xz 92514232 BLAKE2B fac0cdb3c6dbab3b156c5bd406e377f685970230278e6c6eb6a060543d03b8e7289138b12f105c1423c8aa3bf849d1061a20a88b3c6f0a5ddac86f2cf2461bc6 SHA512 476e68f1e673ba0121b8383ca5c44ff94442971cee980768b3aac4444c799bc64a74886aa72ac6fdfcd2f2b083820aba7e8e4aeb48d41a13c31354755e67e438
+DIST gcc-15-20260918.tar.xz 92514296 BLAKE2B 55475e8430e4effad4549b8cc023c0fa41f08b2eccea9abda721e67acc2f466fcc53594671c3a1648254e619fb7d644a32e78abaf0f0c436a3a61742bb8961ca SHA512 82002b232ac18021fffa45e60219d6fb9a1158b7b7a9adf7fe543eb911be7a209fd4c8139db9771964c996640003db4899ccadee50396e473185fc0653480b6e
DIST gcc-15.2.0-musl-patches-1.tar.xz 7168 BLAKE2B 6b7cfb123c3a691693240db815e6852a1e6c3820baa499368c463e0a0c1490c701053cfea10bf1d33f89dd2ba7bbddf63c4e6e0976590e3aaf1fee78b9282079 SHA512 ab80ffd69b9ead1fe06a9433faaa97ae53947d214999e77ea363fa6435de080d031a1aa6869e1dc088e800317952f2dc249a9e872113db56fb76f0a432240871
DIST gcc-15.2.0-patches-8.tar.xz 17584 BLAKE2B e35d85b993fc2ad86924158cac893a815f70332335ed02d970bcdf89c1ceafc2972576bcd85b4912e6ada91bdd80e8f10cbc6be798c804438368bae60abe2731 SHA512 6440a792320037b746ba405469773b96c1d4272c5248ae3808e6d8a2d576564c0f52889a6f88c3271233c8c2fe7ecb974d31ced2141f16f2c5ca68b9e47ace8c
DIST gcc-15.3.0.tar.xz 101253696 BLAKE2B 9e37d6560addf936b8dae6f34a2621004e888b1436c9b95d6a09c2a792f909c7ec4aa5e8d0e63baa1be742fd8dc8162b366b5c48766fc83e44b3842891af44df SHA512 0de9e296153b52c021b1c7e63c9c62151d7a0ac03f23ce6e9f772c1b0eb783f6acdd81cc4567bfe4128a6f64968c2cfc8eff40b36229cba7425349f7d637c654
diff --git a/sys-devel/gcc/gcc-15.3.1_p20260918.ebuild b/sys-devel/gcc/gcc-15.3.1_p20260918.ebuild
new file mode 100644
index 000000000000..13c1da8a4cb1
--- /dev/null
+++ b/sys-devel/gcc/gcc-15.3.1_p20260918.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-fs/exfatprogs/exfatprogs-1.4.3.ebuild b/sys-fs/exfatprogs/exfatprogs-1.4.3.ebuild
index 402a9f3775de..69fba84f144e 100644
--- a/sys-fs/exfatprogs/exfatprogs-1.4.3.ebuild
+++ b/sys-fs/exfatprogs/exfatprogs-1.4.3.ebuild
@@ -18,7 +18,7 @@ else
verify-sig? ( https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz.asc )
"
- KEYWORDS="~amd64 ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc ppc64 ~riscv ~x86"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-hclee )"
fi
diff --git a/sys-libs/libblockdev/libblockdev-3.5.0.ebuild b/sys-libs/libblockdev/libblockdev-3.5.0.ebuild
index 3affc38a5618..9371d2ebee47 100644
--- a/sys-libs/libblockdev/libblockdev-3.5.0.ebuild
+++ b/sys-libs/libblockdev/libblockdev-3.5.0.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]] ; then
"
else
SRC_URI="https://github.com/storaged-project/${PN}/releases/download/${PV}/${P}.tar.gz"
- KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+ KEYWORDS="~alpha ~amd64 arm arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
LICENSE="LGPL-2+"
diff --git a/sys-process/minicoredumper/Manifest b/sys-process/minicoredumper/Manifest
index eb3247168c7d..69657c8395ea 100644
--- a/sys-process/minicoredumper/Manifest
+++ b/sys-process/minicoredumper/Manifest
@@ -1,3 +1,4 @@
-DIST minicoredumper-2.0.7.tar.xz 304304 BLAKE2B d59b0e9c7bca8e3638ff0f9e0281c1458f1aa0c64952999a2021b4daf8682a5400ae5f827835703f5da84650bd1784dca3b14ba52266154b7ade4adec2f8b495 SHA512 de4b6e79091f16c7e821d8d0ff22cc3d656616b444ee50cd873713963f6ff9c5b42a033f137d65e7ece72b690cbd692393eacad0ae17c00cc43e80fbc67e7308
DIST minicoredumper-2.0.8.tar.xz 309592 BLAKE2B c33ad586526cf60b7af0a3fca24226922074be68e11e2b5ec1aaa964ef28db52a769fff6c10d1ba6124ce169d005fd51b9e23e6a24d560409420bf69fba74e32 SHA512 0a6fdba39b74846ce8834f184683bca372f553b06e6fc33f22110b7b88fe12d99f17e4e6040f48215cb36bc97c6afc6ecae3e3b299cfbc0c9b591662584d7ae4
DIST minicoredumper-2.0.8.tar.xz.asc 265 BLAKE2B 379b70b19d3e53c20b146f648b9ee22cc7ff6b9b2f85c665649b0aceb473214b8eff73de4796b4035241134a738e7e8c5191a5c9ae670c7229016f92b8676af3 SHA512 8496c7dfc1a90dbdd25eb2257cb3bbe61a06399fc281092fbb955fd62b76c776a2e15a270614c0afec7a93bf53841812a9602ca3d68e9c74ef28298123ab2412
+DIST minicoredumper-2.1.0.tar.xz 310144 BLAKE2B 2a98c7abd4ad21caf4aa634efc312cf6a91e2900afe031a4176e40ab27a9a7ce3beba8f6f75e8fd7183e34aaa25b7a2e0e9893678ac6b4e0abc423796a9154e1 SHA512 78c966035d8a474a260cd95baa802b502d44714c492ec06c54544090e45713b3dc1881b47c00177997a3a11ea6129069818589d21bf8a9bb4e6fc8ac161d7076
+DIST minicoredumper-2.1.0.tar.xz.asc 265 BLAKE2B 6bdf287f4273f9e5d7ae08c46707f028578671843aae815cdc2ffae2dbc9eab83ff0d80cb6b947ef93a500e46db60a9304b7062ef294ca3a99cfa23183e13014 SHA512 dfd731cbcffba20ac736f297a5997e65a9ef0ad27fe79b718eaa609c08a364b2395ca4d76a4e0873a059194d1c5920c3c86e698010b00c8d8671a21b677dec3b
diff --git a/sys-process/minicoredumper/minicoredumper-2.0.7.ebuild b/sys-process/minicoredumper/minicoredumper-2.1.0.ebuild
index ccd45d42a61d..afe99aa2e8e6 100644
--- a/sys-process/minicoredumper/minicoredumper-2.0.7.ebuild
+++ b/sys-process/minicoredumper/minicoredumper-2.1.0.ebuild
@@ -1,23 +1,35 @@
-# Copyright 2020-2024 Gentoo Authors
+# Copyright 2020-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=8
+EAPI=9
+
+inherit verify-sig
DESCRIPTION="Core dump file processor"
HOMEPAGE="https://linutronix.de/minicoredumper"
-SRC_URI="https://linutronix.de/minicoredumper/files/${P}.tar.xz"
+SRC_URI="
+ https://linutronix.de/minicoredumper/files/${P}.tar.xz
+ verify-sig? ( https://linutronix.de/minicoredumper/files/${P}.tar.xz.asc )
+"
LICENSE="BSD BSD-2 LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
DEPEND="
dev-libs/json-c:=
- virtual/libelf
+ virtual/libelf:=
"
RDEPEND="${DEPEND}"
-BDEPEND="virtual/pkgconfig"
+BDEPEND="
+ virtual/pkgconfig
+ verify-sig? (
+ sec-keys/openpgp-keys-johnogness
+ )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/johnogness.asc
src_configure() {
# regd daemon is disabled as there are no known consumers
diff --git a/virtual/editor/editor-0-r7.ebuild b/virtual/editor/editor-0-r8.ebuild
index 5a56964736fa..9738f5c37b43 100644
--- a/virtual/editor/editor-0-r7.ebuild
+++ b/virtual/editor/editor-0-r8.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,9 @@ RDEPEND="|| (
app-editors/uemacs-pk
app-editors/vile
app-editors/vim
+ app-editors/vim-classic
app-editors/gvim
+ app-editors/gvim-classic
app-editors/vis
app-editors/xemacs
app-editors/zile
diff --git a/www-client/ungoogled-chromium/Manifest b/www-client/ungoogled-chromium/Manifest
index d58df4af266d..7ff8baa3fcb4 100644
--- a/www-client/ungoogled-chromium/Manifest
+++ b/www-client/ungoogled-chromium/Manifest
@@ -1,4 +1,3 @@
-DIST chromium-153.0.8010.36-lite.tar.xz 1878222540 BLAKE2B c9826900468b24a852bcfa72e1338e9f6344ab91da5af2cd696b2bd87be2e0a924125c00a70895ecac95ef97ec3711cf1ca7cc611cb8e4904dc4396d8746c569 SHA512 cdbeb7d14768f7c7291a290176ef108a33685ff5c1414daf1b0d9a35da7b2c508dece141b82f73343abce942dd612c17a2bddbd77541ef5899976045b656ef4b
DIST chromium-153.0.8010.52-linux.tar.xz 1878470976 BLAKE2B 3e4bff18a63a51be2428f925af8f41119601bf1b39df2e4b9e20e7819e957b224e85fd06e939f17196d40e4271ba8f83fb5b78f9334f112f1da25a93a515b181 SHA512 144667ff65b4018b9afd911bd9acfa83f8e396b984d03b5b0f5588c46f36989e5d523522b1cfb471d2cef0f29a60b7ea3e7ec21f3cae100ca65835be1c023d17
DIST chromium-cf94ed446320d35c8613ed9b3ffb6e6a61bfcb5f.patch 9972 BLAKE2B 72d3b755214a8cc0299129c645b938746a2e4dff31cc9aa154019ebaf5c29d5ce9a8378dbecbf0455f253c5e10b83dbfd03a10573d8fa93992f2d6ac965a2b1f SHA512 62ffd3162a0c1aa4be51d3ead238b3a84463f8c6d55b9aad5806bcb23dfb2b832ad6aec7f348690c4b3aaf430260352ca558e791ca611d5e791e6b3eadcffcf1
DIST chromium-clang-llvmorg-23-init-19482-g53d18800-1.tar.xz 59093892 BLAKE2B faf8c5011b0271903a9a09a4539002088030eac34ac01c4b84581a556f761f89eac035feda5b97be350679325968db99face036c201972b01dd081ced3468edc SHA512 5d88f1ed4901c80963b6740c9b15a28c33db397f8bf31503502b00caff172e17d37f7b946da31162e04794fee763e0b7456a9fc476827c8a19cdd1e737b9b68a
@@ -9,5 +8,4 @@ DIST chromium-rust-toolchain-b998449636-2-llvmorg-23-init-19482-g53d18800.tar.xz
DIST chromium-testfonts-9c07d19d9c.tar.gz 33413117 BLAKE2B 95cb79288de5697b6de2a6f503f81bcfb7687ea1af0bd0e6db8cfc09af7cdaedd9a83f36dd9d0a3ac19dfca8ac7a6c3a891922a192db012688565c06da8a9cf8 SHA512 2d3602b7a924d2bb8d538882f13a05428e23bf16ea3a9cf07eb13801fe7f33261ce61f2e5dc12e5c6f61f21b392526024d1969e8a967cf1f5138c647b84025b6
DIST cromite-49c23e54e61a84486bb6581cccf6d51ada75999b.tar.gz 175429613 BLAKE2B 1ba19b0d8b25a11a50f8d2ea35cebbae65fcdc89a1d20c4d403ef9ac68079b5f71d97a59fd98e6f9a10ccf1cf62e5cac67fbe3dd605bde450510f70d0c0179d5 SHA512 dee56e323c531024dce2616cc4a685f7d1203c03331db3444a2f3bd6a0dae4f60d22a8821e5464f1db2b6d024b75d220f788648ad4905d3138260a929466e63e
DIST rollup-wasm-node-4.57.1.tgz 792515 BLAKE2B 52fa9c4b65f3e20149c66fdd44b3c2a8b47e836d87de85535dbbf8b7243acef3d65c5be9f794eebb1533af2f16888a1cb42a75ed392ba65251cf60b73b41d559 SHA512 6f4adc247f329046a77e04de0ed94fb9b86984850ec74a1a01e93ede18b34da164a02d450524ec6341a2c700780f91d9e6bdc6b76c88f5cf0cd7739c5bf916e4
-DIST ungoogled-chromium-153.0.8010.36-1.tar.gz 671692 BLAKE2B 202ebbc47843e838ae0cbf87f7f4f3d7b6f52abe6781c5cc398f684b1ed51a96770477995263c3684698dbbe085414711b11348ba75372518b3dd057aab07d37 SHA512 7ab1c73b21c5415a10f232f6ef1ecd9c1df14fb376f2516ff09f08759c449f0ec487a3930645e7109cb3b5386ed09604e2c286ae289bd4746713f56855b05242
DIST ungoogled-chromium-153.0.8010.52-1.tar.gz 671744 BLAKE2B e61223de882b2dc7b57b46543e05b1770f319f595e19fd7164a2f4340e3484a4e691e6db97a0a58ce40f883acddda886131d7b7a7e5481594f54f00bdee9212b SHA512 59f1cae28a5faa95a645bbd6bfe3def03e4b2e75e614fad25d43b2099f690bae7032c1f41cdde0fa53c03d03b8b478aff328fb5a785ed938ac411fbbb528ae52
diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.36_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.36_p1.ebuild
deleted file mode 100644
index 4b3ef79da830..000000000000
--- a/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.36_p1.ebuild
+++ /dev/null
@@ -1,2646 +0,0 @@
-# Copyright 2009-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Use following environment variables to customise the build
-# EXTRA_GN — pass extra options to gn
-# NINJAOPTS="-k0 -j8" useful to populate ccache even if ebuild is still failing
-# UGC_SKIP_PATCHES — space-separated list of patches to skip
-# UGC_KEEP_BINARIES — space-separated list of binaries to keep
-# UGC_SKIP_SUBSTITUTION — space-separated list of files to skip domain substitution
-
-# USE=bundled-toolchain is intended for users who want to use the same toolchain
-# as the upstream releases. It's also a good fallback in case we fall behind
-# and need to get a release out quickly (less likely with `dev` in-tree).
-# We can't rely on it as a default since the toolchain is only shipped for x86-64;
-# other architectures will need to use system toolchain.
-
-# Since m133 we are using CI-generated tarballs from
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/
-
-# These are bit-for-bit identical to the official releases, but are built
-# using an external CI system that we have some control over, in case
-# issues pop up again with official tarball generation.
-
-GN_MIN_VER=0.2374
-# chromium-tools/get-chromium-toolchain-strings.py (or just use Chromicler)
-# Node for M145+ should be 24.12.0 but that's not packaged in Gentoo yet. See #969145
-TEST_FONT="9c07d19d9c5ee1ff94f717e6fb17e0c8c354e6f9"
-BUNDLED_CLANG_VER="llvmorg-23-init-19482-g53d18800-1"
-BUNDLED_RUST_VER="b998449636a48e2c4a362809085b600a0174e1f2-2"
-RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-}
-NODE_VER="24.12.0"
-GO_MIN_VER="1.25.0"
-ESBUILD_VER="0.25.1"
-ROLLUP_VER="4.57.1" # currently manual.
-
-CHROMIUM_LANGS="af am ar as az be bg bn bs ca cs cy da de el en-GB es es-419 et eu fa fi fil
- fr fr-CA gl gu he hi hr hu hy id is it ja ka kk km kn ko ky lo lt lv mk ml mn mr ms my
- nb ne nl or pa pl pt-BR pt-PT ro ru si sk sl sq sr sr-Latn sv sw ta te th tr uk ur uz
- vi zh-CN zh-HK zh-TW zu"
-
-#UGC_COMMIT_ID="cacf0f0fd2446a837528c54df1880b75874b9580"
-# UGC_PR_COMMITS=(
-# c917e096342e5b90eeea91ab1f8516447c8756cf
-# 5794e9d12bf82620d5f24505798fecb45ca5a22d
-# )
-
-CROMITE_COMMIT_ID="49c23e54e61a84486bb6581cccf6d51ada75999b"
-
-declare -A CHROMIUM_COMMITS=(
- # ["27f8690db999f6e56f0af7a9ea3d28a019ed72ca"]="." #152+
- ["-cf94ed446320d35c8613ed9b3ffb6e6a61bfcb5f"]="." # ffmpeg 9
- # ["-bf6be9310a07b981edf81e0ac9b89dead09be35c"]="." # ffmpeg 9
- # ["-c72c7b0971e3e31974b0adea0dac42278e22e3b0"]="third_party/devtools-frontend/src" # need gn >= 2459
-# # ["-37c28a19804e47a68eabf3cf882a310689fc325b"]="." #disable style check for cromite
-# # ["cd5a0df905a28faa89ff2a4ab44f893f84dc4487"]="net/third_party/quiche/src"
-)
-
-LLVM_COMPAT=( 21 22 23 )
-PYTHON_COMPAT=( python3_{13..14} )
-PYTHON_REQ_USE="xml(+)"
-RUST_MIN_VER=1.91.0
-RUST_NEEDS_LLVM="yes please"
-RUST_OPTIONAL="yes" # Not actually optional, but we don't need system Rust (or LLVM) with USE=bundled-toolchain
-RUST_REQ_USE="rustfmt" # Upstream run rustfmt on bindgen output, so we need it to be available.
-
-inherit check-reqs chromium-2 desktop flag-o-matic llvm-r1 multiprocessing ninja-utils pax-utils
-inherit python-any-r1 readme.gentoo-r1 rust systemd toolchain-funcs xdg-utils
-
-DESCRIPTION="Modifications to Chromium for removing Google integration and enhancing privacy"
-HOMEPAGE="https://github.com/ungoogled-software/ungoogled-chromium"
-PPC64_HASH="7aae8a84e327fc2078ce1625c9c70bfda77d626f"
-PATCH_V="152"
-# PATCH_V="${PV%%\.*}"
-COPIUM_COMMIT="3c7e56fb4523b43b47595bb3a22f77178fc76293"
-SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV/_*}-lite.tar.xz
- https://deps.gentoo.zip/www-client/chromium/rollup-wasm-node-${ROLLUP_VER}.tgz
- https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
- !bundled-toolchain? (
- https://codeberg.org/selfisekai/copium/archive/${COPIUM_COMMIT}.tar.gz
- -> chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
- )
- bundled-toolchain? (
- https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/clang-${BUNDLED_CLANG_VER}.tar.xz
- -> chromium-clang-${BUNDLED_CLANG_VER}.tar.xz
- https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64/rust-toolchain-${BUNDLED_RUST_VER}-${BUNDLED_CLANG_VER%-*}.tar.xz
- -> chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz
- )
- test? (
- https://chromium-fonts.storage.googleapis.com/${TEST_FONT} -> chromium-testfonts-${TEST_FONT:0:10}.tar.gz
- )
- ppc64? (
- https://gitlab.raptorengineering.com/raptor-engineering-public/chromium/openpower-patches/-/archive/${PPC64_HASH}/openpower-patches-${PPC64_HASH}.tar.bz2 -> chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
- )
-"
-
-# Gentoo tarball:
-# https://chromium-tarballs.distfiles.gentoo.org/chromium-${PV/_*}.tar.xz -> chromium-${PV/_*}-gentoo.tar.xz
-
-# chromium-linux-tarballs
-# https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.tar.xz
-
-# Official tarball:
-# https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz
-
-# https://gitweb.gentoo.org/proj/chromium-tools.git/tree/get-chromium-licences.py @ 145.0.7632.76
-LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD BSD-2 Base64 Boost-1.0 CC-BY-3.0 CC-BY-4.0 Clear-BSD FFT2D FTL"
-LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSLeay SunSoft Unicode-3.0"
-LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
-LICENSE+=" cromite? ( GPL-3 )"
-
-SLOT="stable"
-KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
-
-IUSE_SYSTEM_LIBS="abseil-cpp av1 brotli crc32c double-conversion ffmpeg +harfbuzz icu jsoncpp +libusb libvpx +openh264 openjpeg re2 snappy woff2 +zstd"
-IUSE="+X bindist bluetooth bundled-toolchain cfi convert-dict cups custom-cflags debug ffmpeg-chromium enable-driver gtk4 hangouts headless kerberos +libcxx nvidia +official optimize-thinlto optimize-webui override-data-dir pax-kernel pgo"
-IUSE+=" +proprietary-codecs pulseaudio qt6 screencast selinux test thinlto cromite vaapi wayland widevine cpu_flags_ppc_vsx3"
-RESTRICT="
- !bindist? ( bindist )
- !test? ( test )
- arm64? ( test )
- !system-ffmpeg? ( proprietary-codecs? ( bindist ) )
- !system-openh264? ( bindist )
- cromite? ( bindist )"
-
-REQUIRED_USE="
- !headless? ( || ( X wayland ) )
- screencast? ( wayland )
- ffmpeg-chromium? ( bindist proprietary-codecs )
- optimize-thinlto? ( thinlto )
- cfi? ( thinlto )
- x86? ( !thinlto !widevine )
- debug? ( !official )
- vaapi? ( !system-av1 !system-libvpx )
-"
-
-UGC_PV="${PV/_p/-}"
-UGC_PF="${PN}-${UGC_PV}"
-UGC_URL="https://github.com/ungoogled-software/${PN}/archive/"
-
-if [ -z "$UGC_COMMIT_ID" ]; then
- UGC_URL="${UGC_URL}${UGC_PV}.tar.gz -> ${UGC_PF}.tar.gz"
- UGC_WD="${WORKDIR}/${UGC_PF}"
-else
- UGC_URL="${UGC_URL}${UGC_COMMIT_ID}.tar.gz -> ${PN}-${UGC_COMMIT_ID}.tar.gz"
- UGC_WD="${WORKDIR}/ungoogled-chromium-${UGC_COMMIT_ID}"
-fi
-
-SRC_URI+="${UGC_URL}
-"
-
-if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then
- for i in "${UGC_PR_COMMITS[@]}"; do
- SRC_URI+="https://github.com/ungoogled-software/${PN}/commit/$i.patch?full_index=true -> ${PN}-$i.patch
- "
- done
-fi
-
-if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then
- # for i in "${CHROMIUM_COMMITS[@]}"; do
- for i in "${!CHROMIUM_COMMITS[@]}"; do
- if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then
- #TODO: is it safe to use this mirror?
- SRC_URI+="https://github.com/webrtc-mirror/webrtc/commit/${i/-}.patch?full_index=true -> webrtc-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then
- SRC_URI+="https://github.com/google/angle/commit/${i/-}.patch?full_index=true -> angle-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then
- SRC_URI+="https://github.com/google/quiche/commit/${i/-}.patch?full_index=true -> quiche-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then
- SRC_URI+="https://github.com/google/dawn/commit/${i/-}.patch?full_index=true -> dawn-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then
- SRC_URI+="https://github.com/google/perfetto/commit/${i/-}.patch?full_index=true -> perfetto-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then
- SRC_URI+="https://github.com/google/ink/commit/${i/-}.patch?full_index=true -> ink-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then
- SRC_URI+="https://github.com/KhronosGroup/Vulkan-Utility-Libraries/commit/${i/-}.patch?full_index=true -> vulkan-utility-libraries-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then
- SRC_URI+="https://github.com/google/ruy/commit/${i/-}.patch?full_index=true -> ruy-${i/-}.patch
- "
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ devtools-frontend ]]; then
- SRC_URI+="https://github.com/ChromeDevTools/devtools-frontend/commit/${i/-}.patch?full_index=true -> devtools-frontend-${i/-}.patch
- "
- else
- SRC_URI+="https://github.com/chromium/chromium/commit/${i/-}.patch?full_index=true -> chromium-${i/-}.patch
- "
- fi
- done
-fi
-
-SRC_URI+="cromite? ( https://github.com/uazo/cromite/archive/${CROMITE_COMMIT_ID}.tar.gz -> cromite-${CROMITE_COMMIT_ID}.tar.gz )
-"
-
-for i in ${IUSE_SYSTEM_LIBS}; do
- [[ $i =~ ^(\+)?(.*)$ ]]
- IUSE+=" ${BASH_REMATCH[1]}system-${BASH_REMATCH[2]}"
-done
-
-COMMON_X_DEPEND="
- x11-libs/libXcomposite:=
- x11-libs/libXcursor:=
- x11-libs/libXdamage:=
- x11-libs/libXfixes:=
- >=x11-libs/libXi-1.6.0:=
- x11-libs/libXrandr:=
- x11-libs/libXrender:=
- x11-libs/libXtst:=
- x11-libs/libxshmfence:=
-"
-
-# sys-libs/zlib: https://bugs.gentoo.org/930365; -ng is not compatible.
-# We _could_ use the bundled minizip, but that's against policy.
-COMMON_SNAPSHOT_DEPEND="
- system-icu? ( >=dev-libs/icu-78:= )
- system-abseil-cpp? ( >=dev-cpp/abseil-cpp-20260107.0 )
- system-brotli? ( >=app-arch/brotli-9999 )
- system-crc32c? ( dev-libs/crc32c )
- system-double-conversion? ( dev-libs/double-conversion )
- system-woff2? ( media-libs/woff2 )
- system-snappy? ( app-arch/snappy )
- system-jsoncpp? ( dev-libs/jsoncpp )
- system-openjpeg? ( media-libs/openjpeg:2= )
- system-re2? ( >=dev-libs/re2-0.2019.08.01:= )
- system-libvpx? ( >=media-libs/libvpx-1.13.0:=[postproc] )
- system-libusb? ( virtual/libusb:1 )
- cromite? ( dev-util/patchutils )
- >=dev-libs/libxml2-2.12.4:=[icu]
- dev-libs/nspr:=
- >=dev-libs/nss-3.26:=
- dev-libs/libxslt:=
- media-libs/fontconfig:=
- >=media-libs/freetype-2.11.0-r1:=
- system-harfbuzz? ( >=media-libs/harfbuzz-3:0=[icu(-)] )
- media-libs/libjpeg-turbo:=
- media-libs/libpng:=
- system-zstd? ( >=app-arch/zstd-1.5.5:= )
- >=media-libs/libwebp-0.4.0:=
- media-libs/mesa:=[gbm(+)]
- >=media-libs/openh264-2.6.0:=
- system-av1? (
- >=media-libs/dav1d-1.0.0:=
- >=media-libs/libaom-3.7.0:=
- )
- sys-libs/zlib:=
- !headless? (
- dev-libs/glib:2
- >=media-libs/alsa-lib-1.0.19:=
- media-video/pipewire:=
- pulseaudio? (
- || (
- media-libs/libpulse
- >=media-sound/apulse-0.1.9
- )
- )
- sys-apps/pciutils:=
- kerberos? ( virtual/krb5 )
- vaapi? ( >=media-libs/libva-2.7:=[X?,wayland?] )
- X? (
- x11-base/xorg-proto:=
- x11-libs/libX11:=
- x11-libs/libxcb:=
- x11-libs/libXext:=
- )
- x11-libs/libxkbcommon:=
- wayland? (
- screencast? ( media-video/pipewire:= )
- dev-libs/libffi:=
- dev-libs/wayland:=
- screencast? (
- media-video/pipewire:=
- || (
- sys-apps/xdg-desktop-portal-gnome
- sys-apps/xdg-desktop-portal-gtk
- kde-plasma/xdg-desktop-portal-kde
- gui-libs/xdg-desktop-portal-lxqt
- gui-libs/xdg-desktop-portal-wlr
- )
- )
- )
- )
-"
-
-COMMON_DEPEND="
- ${COMMON_SNAPSHOT_DEPEND}
- app-arch/bzip2:=
- dev-libs/expat:=
- system-ffmpeg? (
- >=media-video/ffmpeg-6.1:=
- >=media-libs/opus-1.3.1:=
- )
- net-misc/curl[ssl]
- sys-apps/dbus:=
- media-libs/flac:=
- sys-libs/zlib:=[minizip]
- !headless? (
- >=app-accessibility/at-spi2-core-2.46.0:2
- media-libs/mesa:=[X?,wayland?]
- virtual/udev
- x11-libs/cairo:=
- x11-libs/gdk-pixbuf:2
- x11-libs/pango:=
- cups? ( >=net-print/cups-1.3.11:= )
- qt6? ( dev-qt/qtbase:6[gui,widgets] )
- X? ( ${COMMON_X_DEPEND} )
- )
-"
-RDEPEND="${COMMON_DEPEND}
- !www-client/ungoogled-chromium:0
- >=www-client/chromium-common-2
- !headless? (
- || (
- x11-libs/gtk+:3[X?,wayland?]
- gui-libs/gtk:4[X?,wayland?]
- )
- qt6? ( dev-qt/qtbase:6[X?,wayland?] )
- )
- virtual/ttf-fonts
- selinux? ( sec-policy/selinux-chromium )
- bindist? (
- ffmpeg-chromium? ( media-video/ffmpeg-chromium:${PV%%\.*} )
- )
- !override-data-dir? (
- !www-client/chromium:${SLOT}
- !www-client/cromite-bin
- !www-client/cromite:${SLOT}[-override-data-dir]
- )
-"
-# For M149+ pipewire is a mandatory build-time dependency, but it's optional at runtime for most configurations.
-DEPEND="${COMMON_DEPEND}
- !headless? (
- media-video/pipewire
- gtk4? ( gui-libs/gtk:4[X?,wayland?] )
- !gtk4? ( x11-libs/gtk+:3[X?,wayland?] )
- )
-"
-
- # pgo? ( >=llvm-core/clang-22.0.0_pre20260106 >=llvm-core/lld-22.0.0_pre20260106 )
-BDEPEND="
- ${COMMON_SNAPSHOT_DEPEND}
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/setuptools[${PYTHON_USEDEP}]
- ')
- >=app-arch/gzip-1.7
- !headless? (
- qt6? ( dev-qt/qtbase:6 )
- )
- !bundled-toolchain? ( $(llvm_gen_dep '
- llvm-core/clang:${LLVM_SLOT}
- llvm-core/llvm:${LLVM_SLOT}
- llvm-core/lld:${LLVM_SLOT}
- cfi? ( llvm-runtimes/clang-runtime:${LLVM_SLOT}[sanitize] )
- official? (
- !ppc64? ( llvm-runtimes/compiler-rt-sanitizers:${LLVM_SLOT}[cfi] )
- ) ')
- ${RUST_DEPEND}
- )
- >=dev-util/bindgen-0.72.1
- >=dev-build/gn-${GN_MIN_VER}
- >=dev-lang/go-${GO_MIN_VER}
- dev-lang/typescript
- app-alternatives/ninja
- dev-lang/perl
- >=dev-util/gperf-3.2
- dev-util/esbuild:${ESBUILD_VER}
- dev-vcs/git
- >=net-libs/nodejs-${NODE_VER}[inspector]
- sys-apps/hwdata
- >=sys-devel/bison-2.4.3
- sys-devel/flex
- virtual/pkgconfig
- x11-misc/xdg-utils
-"
-
-if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
- EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
-fi
-
-DISABLE_AUTOFORMATTING="yes"
-DOC_CONTENTS="
-Some web pages may require additional fonts to display properly.
-Try installing some of the following packages if some characters
-are not displayed properly:
-- media-fonts/arphicfonts
-- media-fonts/droid
-- media-fonts/ipamonafont
-- media-fonts/noto
-- media-fonts/ja-ipafonts
-- media-fonts/takao-fonts
-- media-fonts/wqy-microhei
-- media-fonts/wqy-zenhei
-
-To fix broken icons on the Downloads page, you should install an icon
-theme that covers the appropriate MIME types, and configure this as your
-GTK+ icon theme.
-
-For native file dialogs in KDE, install kde-apps/kdialog.
-
-To make password storage work with your desktop environment you may
-have install one of the supported credentials management applications:
-- app-crypt/libsecret (GNOME)
-- kde-frameworks/kwallet (KDE)
-If you have one of above packages installed, but don't want to use
-them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
-in /etc/chromium/default.
-"
-
-S="${WORKDIR}/chromium-${PV/_*}"
-
-python_check_deps() {
- python_has_version "dev-python/setuptools[${PYTHON_USEDEP}]"
-}
-
-pre_build_checks() {
- # Check build requirements: bugs #471810, #541816, #914220
- # We're going to start doing maths here on the size of an unpacked source tarball,
- # this should make updates easier as chromium continues to balloon in size.
- # xz -l /var/cache/distfiles/chromium-${PV}*.tar.xz
- local base_disk=9 # Round up
- use test && base_disk=$((base_disk + 5))
- local extra_disk=1 # Always include a little extra space
- local memory=4
- tc-is-cross-compiler && extra_disk=$((extra_disk * 2))
- if tc-is-lto || use pgo; then
- memory=$((memory * 2 + 1))
- tc-is-cross-compiler && extra_disk=$((extra_disk * 2)) # Double the requirements
- use pgo && extra_disk=$((extra_disk + 4))
- fi
- if is-flagq '-g?(gdb)?([1-9])'; then
- if use custom-cflags; then
- extra_disk=$((extra_disk + 5))
- fi
- memory=$((memory * 2))
- fi
- local CHECKREQS_MEMORY="${memory}G"
- local CHECKREQS_DISK_BUILD="$((base_disk + extra_disk))G"
- check-reqs_${EBUILD_PHASE_FUNC}
-}
-
-pkg_pretend() {
- if [[ ${MERGE_TYPE} != binary ]]; then
- # The pre_build_checks are all about compilation resources, no need to run it for a binpkg
- pre_build_checks
- fi
-
- if use headless; then
- local headless_unused_flags=("cups" "kerberos" "pulseaudio" "qt6" "vaapi" "wayland")
- for myiuse in ${headless_unused_flags[@]}; do
- use ${myiuse} && ewarn "Ignoring USE=${myiuse}, USE=headless is set."
- done
- fi
-
- if ! use bindist && use ffmpeg-chromium; then
- ewarn "Ignoring USE=ffmpeg-chromium, USE=bindist is not set."
- fi
- if use libcxx; then
- ewarn
- ewarn "Building with libcxx, please be aware that system-*"
- ewarn "and some other c++ dependencies need to be compiled"
- ewarn "with the same c++ library as ungoogled-chromium itself"
- ewarn "dev-libs/jsoncpp is most problematic, see #58 #49 #119 for details"
- ewarn "Simplest solution would be to disable corresponding system-* flags"
- ewarn
- fi
- if use cfi; then
- ewarn
- ewarn "Building with cfi is only possible if building with -stdlib=libc++"
- ewarn "Make sure all dependencies are also built this way, see #40"
- ewarn
- fi
- if use cromite; then
- ewarn
- ewarn "Cromite patches are very experimental and unstable"
- ewarn "Please consider testing them and giving feedback upstream:"
- ewarn "https://github.com/uazo/cromite/issues"
- ewarn "Not all patches are applied, let me know if others should be considered too"
- ewarn
- fi
- if use pgo; then
- eerror
- eerror "pgo requires llvm slot 23, but there is no corresponding rust slot yet"
- eerror
- if [ -z "${NODIE}" ]; then
- die "Build will fail with pgo"
- fi
- fi
-}
-
-pkg_setup() {
- if [[ ${MERGE_TYPE} != binary ]]; then
- # The pre_build_checks are all about compilation resources, no need to run it for a binpkg
- pre_build_checks
-
- # We haven't massaged any CFLAGS yet, so we want to do this before we force CC/CXX to prevent warnings.
- local want_lto="false"
- tc-is-lto && want_lto="true"
-
- # The linux:unbundle toolchain in GN grabs CC, CXX, CPP (etc) from the environment
- # We'll set these to clang here then use llvm-utils functions to very explicitly set these
- # to a sane value.
- # This is effectively the 'force-clang' path if GCC support is re-added.
- if use !bundled-toolchain; then
- llvm-r1_pkg_setup
- rust_pkg_setup
-
- if tc-ld-is-mold; then
- ewarn "Mold is currently not supported, it will not be used"
- fi
-
- # Forcing clang; respect llvm_slot_x to enable selection of impl via LLVM_COMPAT
- AR=llvm-ar
- CPP="${CHOST}-clang++-${LLVM_SLOT} -E"
- NM=llvm-nm
- CC="${CHOST}-clang-${LLVM_SLOT}"
- CXX="${CHOST}-clang++-${LLVM_SLOT}"
- fi
-
- # LTO in Chromium means LLVM ThinLTO, if GCC support is re-added
- # We'll need to handle that here too.
- use_lto="false"
- local lto_usable="true"
- if [[ "$want_lto" == "true" ]]; then
- if use arm64 && [[ "${LLVM_SLOT}" -lt 22 ]]; then
- einfo "LTO is broken with LLVM 21 on arm64, ignoring CFLAGS."
- lto_usable="false"
- else
- use_lto="true"
- fi
- # We can rely on GN to do this for us; without this builds
- # take significantly longer with LTO enabled.
- filter-lto
- fi
-
- if [[ "$use_lto" == "false" ]] && use official && [[ "$lto_usable" == "true" ]]; then
- einfo "USE=official selected and LTO not detected."
- einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
- einfo "and to be consistent with the upstream \"official\" build optimisations."
- fi
-
- if [[ "$use_lto" == "false" ]] && use test; then
- die "Tests require CFI which requires LTO"
- fi
-
- export use_lto
-
- if tc-is-cross-compiler; then
- use pgo && die "The pgo USE flag cannot be used when cross-compiling"
- CPP="${CBUILD}-clang++-${LLVM_SLOT} -E"
- fi
-
- # Sanity checks for development convenience
- if ver_test $(gn --version || die) -lt ${GN_MIN_VER}; then
- die "dev-build/gn >= ${GN_MIN_VER} is required to build this Chromium"
- fi
-
- # Sometimes, when adding a new LLVM slot, devs (me) forget to install an appropriate lld.
- if tc-ld-is-lld; then
- local lld_ver=$(ld.lld --version | awk '{split($2,a,"."); print a[1]}' || die "Failed to check lld version")
- if [[ ${lld_ver} -lt ${LLVM_SLOT} ]]; then
- die "Your lld version (${lld_ver}) is too old for the selected LLVM slot (${LLVM_SLOT}). Please install a newer lld or select an older LLVM slot."
- fi
- fi
- fi
-
- chromium_suid_sandbox_check_kernel_config
-}
-
-src_unpack() {
- # # Here be dragons!
- # local XCLD="--exclude=chromium-${PV/_*}/third_party/instrumented_libs \
- # --exclude=chromium-${PV/_*}/third_party/llvm \
- # --exclude=chromium-${PV/_*}/third_party/llvm-build \
- # --exclude=chromium-${PV/_*}/third_party/node/linux \
- # --exclude=chromium-${PV/_*}/third_party/rust-src \
- # --exclude=chromium-${PV/_*}/third_party/rust-toolchain \
- # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_i386-sysroot \
- # --exclude=chromium-${PV/_*}/build/linux/debian_bullseye_amd64-sysroot \
- # --exclude=chromium-${PV/_*}/third_party/angle/third_party/VK-GL-CTS \
- # "
-
- # if ! use libcxx ; then
- # XCLD+=" --exclude=chromium-${PV/_*}/third_party/libc++"
- # fi
-
- # if ! use pgo ; then
- # XCLD+=" --exclude=chromium-${PV/_*}/chrome/build/pgo_profiles"
- # fi
-
- # einfo "Unpacking chromium-${PV/_*}.tar.xz to ${WORKDIR}"
- # # Gentoo tarball:
- # # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}-gentoo.tar.xz" -C "${WORKDIR}" || die
- # tar ${XCLD} -xf "${DISTDIR}/chromium-${PV/_*}${LITE_TARBALL:+-lite}.tar.xz" -C "${WORKDIR}" || die
-
- # unpack ${UGC_URL#*->}
- # # unpack chromium-patches-${PATCH_V}.tar.bz2
- # # Warned you!
-
- unpack chromium-${PV/_*}-lite.tar.xz
- unpack chromium-patches-${PATCH_V}.tar.bz2
- # These should only be required when we're not using the official toolchain
- if use !bundled-toolchain; then
- unpack chromium-patches-copium-${COPIUM_COMMIT:0:10}.tar.gz
- fi
-
- if use test; then
- # This just contains a bunch of font files that need to be unpacked (or moved) to the correct location.
- local testfonts_dir="${WORKDIR}/chromium-${PV/_*}/third_party/test_fonts/test_fonts"
- local testfonts_tar="${DISTDIR}/chromium-testfonts-${TEST_FONT:0:10}.tar.gz"
- einfo "Unpacking test fonts ..."
- tar xf "${testfonts_tar}" -C "${testfonts_dir}" || die "Failed to unpack testfonts"
- fi
-
- # We need to manually unpack this since M126 else we'd unpack one toolchain over the other.
- # Since we're doing that anyway let's unpack to sensible locations to make symlink creation easier.
- if use bundled-toolchain; then
- einfo "Unpacking bundled Clang ..."
- mkdir -p "${WORKDIR}"/clang || die "Failed to create clang directory"
- tar xf "${DISTDIR}/chromium-clang-${BUNDLED_CLANG_VER}.tar.xz" -C "${WORKDIR}/clang" || die "Failed to unpack Clang"
- einfo "Unpacking bundled Rust ..."
- local rust_dir="${WORKDIR}/rust-toolchain"
- mkdir -p "${rust_dir}" || die "Failed to create rust toolchain directory"
- tar xf "${DISTDIR}/chromium-rust-toolchain-${RUST_SHORT_HASH}-${BUNDLED_CLANG_VER%-*}.tar.xz" -C "${rust_dir}" ||
- die "Failed to unpack Rust"
- fi
-
- if use ppc64; then
- unpack chromium-openpower-${PPC64_HASH:0:10}.tar.bz2
- fi
-
- # This is a dirty hack, but we need rollup to build successfully and it's proving to be challenging
- # to build locally due to deps
- unpack rollup-wasm-node-${ROLLUP_VER}.tgz
-
- if use cromite; then
- unpack cromite-${CROMITE_COMMIT_ID}.tar.gz
- fi
-
- unpack ${UGC_URL#*->}
-}
-
-remove_compiler_builtins() {
- # We can't use the bundled compiler builtins with the system toolchain
- # We used to `grep` then `sed`, but it was indirect. Combining the two into a single
- # `awk` command is more efficient and lets us document the logic more clearly.
-
- local pattern=' configs += [ "//build/config/clang:compiler_builtins" ]'
- local target='build/config/compiler/BUILD.gn'
-
- local tmpfile
- tmpfile=$(mktemp) || die "Failed to create temporary file."
-
- if awk -v pat="${pattern}" '
- BEGIN {
- match_found = 0
- }
-
- # If the delete countdown is active, decrement it and skip to the next line.
- d > 0 { d--; next }
-
- # If the current line matches the pattern...
- $0 == pat {
- match_found = 1 # ...set our flag to true.
- d = 2 # Set delete counter for this line and the next two.
- prev = "" # Clear the buffered previous line so it is not printed.
- next
- }
-
- # For any other line, print the buffered previous line.
- NR > 1 { print prev }
-
- # Buffer the current line to be printed on the next cycle.
- { prev = $0 }
-
- END {
- # Print the last line if it was not part of a deleted block.
- if (d == 0) { print prev }
-
- # If the pattern was never found, exit with a failure code.
- if (match_found == 0) {
- exit 1
- }
- }
- ' "${target}" > "${tmpfile}"; then
- # AWK SUCCEEDED (exit code 0): The pattern was found and edited.
- # This is to avoid gawk's `-i inplace` option which users complain about.
- mv "${tmpfile}" "${target}"
- else
- # AWK FAILED (exit code 1): The pattern was not found.
- rm -f "${tmpfile}"
- die "Awk patch failed: Pattern not found in ${target}."
- fi
-}
-
-src_prepare() {
- # Calling this here supports resumption via FEATURES=keepwork
- python_setup
-
- # We'll fill this in as we go. Patches go in chromium-patches.
- local PATCHES=()
-
- rm "${WORKDIR}/chromium-patches-${PATCH_V}/common/cr131-unbundle-icu-target.patch"
- rm "${WORKDIR}/chromium-patches-${PATCH_V}/toolchain/cr152-fix-rust-2-oxidize-harder.patch"
- rm "${WORKDIR}/chromium-patches-${PATCH_V}/common/cr152-revert-to-rollup-wasm.patch"
-
- if ver_test "${RUST_SLOT}" -ge "1.95.0"; then
- sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/zeroable.rs || die
- sed -i '/SupportedLaneCount/d' third_party/rust/chromium_crates_io/vendor/bytemuck-v1/src/pod.rs || die
- fi
-
- # sed -i '/no-lifetime-safety-inference/d' third_party/dawn/src/utils/BUILD.gn || die
- # sed -i '/no-experimental-lifetime-safety-tu-analysis/d' third_party/dawn/src/utils/BUILD.gn || die
-
- PATCHES+=(
- "${WORKDIR}/chromium-patches-${PATCH_V}/common/"
- "${FILESDIR}/restore-x86-r4.patch"
- "${FILESDIR}/chromium-152-ffmpeg-fix.patch"
- "${FILESDIR}/chromium-152-unbundle-minizip-undo-unicode.patch"
- "${FILESDIR}/chromium-153-revert-to-rollup-wasm.patch"
- "${FILESDIR}/chromium-153-fix-devtools.patch"
- "${FILESDIR}/chromium-153-cbor-fix.patch"
- "${FILESDIR}/chromium-153-system-typescript.patch"
- )
-
- # So many fontconfig magic numbers to cover
- # TODO: once upstream roll to 2.18.2+ set that as our minimum and remove this logic.
- # <=2.17.1 -> 9
- # >2.17.1 && <2.18.2 -> 11
- # >=2.18.2 -> 12
- local fontconfig_cache_magic=9
- if has_version ">=media-libs/fontconfig-2.18.2"; then
- fontconfig_cache_magic=12
- elif has_version ">media-libs/fontconfig-2.17.1"; then
- fontconfig_cache_magic=11
- fi
-
- sed -E -i \
- -e "s#(fb5c91b2895aa445d23aebf7f9e2189c-le64\.cache-)(9|10|11|12)#\1${fontconfig_cache_magic}#g" \
- third_party/test_fonts/fontconfig/BUILD.gn || die "Failed to set fontconfig cache magic in BUILD.gn"
-
- #cp -f ${WORKDIR}/chromium-patches-${PATCH_V}/*-compiler.patch "${T}/compiler.patch"
- ##cp -f ${FILESDIR}/chromium-147-compiler.patch "${T}/compiler.patch"
- #if ! use custom-cflags; then #See #25 #92
- # sed -i '/default_stack_frames/Q' "${T}/compiler.patch" || die
- #fi
-
- sed -E -i \
- -e "s#(kCacheKey \+ \"/-le64\.cache-)(9|10|11|12)(\")#\1${fontconfig_cache_magic}\3#g" \
- -e "s#(kCacheKey \+ \"-le64\.cache-)(9|10|11|12)(\")#\1${fontconfig_cache_magic}\3#g" \
- third_party/test_fonts/fontconfig/generate_fontconfig_caches.cc || \
- die "Failed to set fontconfig cache magic in generate_fontconfig_caches.cc"
-
- if use bundled-toolchain; then
- # We need to symlink the toolchain into the expected location
- einfo "Symlinking Clang toolchain to expected location ..."
- mkdir -p third_party/llvm-build/ || die "Failed to create llvm-build directory"
- # the 'Chromium Linux Tarballs' seem to already have 'Release+Asserts/{lib,bin}'; not sure if this is an
- # upstream change - we're using the same scripts to build, theoretically. We'll still attempt to create
- # llvm-build, but we'll rm Release+Asserts and symlink directly.
- if [[ -d third_party/llvm-build/Release+Asserts ]]; then
- rm -r third_party/llvm-build/Release+Asserts || die "Failed to remove third_party/llvm-build/Release+Asserts"
- fi
- ln -s "${WORKDIR}"/clang third_party/llvm-build/Release+Asserts || die "Failed to bundle Clang"
- einfo "Symlinking Rust toolchain to expected location ..."
- # As above, so below
- if [[ -d third_party/rust-toolchain ]]; then
- rm -r third_party/rust-toolchain || die "Failed to remove third_party/rust-toolchain"
- fi
- ln -s "${WORKDIR}"/rust-toolchain third_party/rust-toolchain || die "Failed to bundle rust"
- cp "${WORKDIR}"/rust-toolchain/VERSION \
- "${WORKDIR}"/rust-toolchain/INSTALLED_VERSION || die "Failed to set rust version"
- else
- # We don't need our toolchain patches if we're using the official toolchain
-
- # Copium patches go here.
- PATCHES+=(
- "${WORKDIR}/copium/cr143-libsync-__BEGIN_DECLS.patch"
- )
-
- # Automate conditional application of chromium-patches
- # The directory structure is expected to be something like:
- # chromium-patches-145/
- # ├── toolchain/
- # │ ├── cr123-foo.patch
- # │ └── cr135-bar.patch
- # ├── llvm/
- # │ ├── cr144-baz.patch
- # │ └── lt-23/
- # │ └── cr145-bleeding-edge-llvm-feature.patch
- # Where `lt-23` means "apply this patch if the LLVM version is less than 23".
- # Only categories in `slot_map` will be checked for version constraints.
- shopt -s nullglob
- local -A slot_map=( [llvm]="${LLVM_SLOT}" [rust]="${RUST_SLOT}" )
-
- for category in "${WORKDIR}/chromium-patches-${PATCH_V}"/*/; do
- local category_name="${category%/}"
- category_name="${category_name##*/}"
-
- # Skip arch-specific categories
- if [[ "${category_name}" == "ppc64le" ]]; then
- use ppc64 || continue
- fi
-
- # We applied common patches above, no need to apply them again here
- [[ "${category_name}" == "common" ]] && continue
-
- # Unconditional patches for this category
- local category_patches=( "${category}"*.patch )
- [[ ${#category_patches[@]} -gt 0 ]] && PATCHES+=( "${category}" )
-
- # Version-constrained subdirectories (e.g., llvm/lt-23/)
- for constraint_dir in "${category}"*/; do
- local dir_name="${constraint_dir%/}"
- dir_name="${dir_name##*/}"
- if [[ "${dir_name}" =~ ^lt-(.*)$ && -v slot_map[${category_name}] ]]; then
- ver_test "${slot_map[${category_name}]}" -lt "${BASH_REMATCH[1]}" &&
- PATCHES+=( "${constraint_dir}" )
- fi
- done
- done
-
- shopt -u nullglob
-
- # Strictly speaking this doesn't need to be gated (no bundled toolchain for ppc64); it keeps the logic together
- if use ppc64; then
- local patchset_dir="${WORKDIR}/openpower-patches-${PPC64_HASH}/patches"
- # patch causes build errors on 4K page systems (https://bugs.gentoo.org/show_bug.cgi?id=940304)
- local page_size_patch="ppc64le/third_party/use-sysconf-page-size-on-ppc64.patch"
- local isa_3_patch="ppc64le/core/baseline-isa-3-0.patch"
- # Apply the OpenPOWER patches (check for page size and isa 3.0)
- openpower_patches=( $(grep -E "^ppc64le|^upstream" "${patchset_dir}/series" | grep -v "${page_size_patch}" |
- grep -v "${isa_3_patch}" || die) )
- for patch in "${openpower_patches[@]}"; do
- PATCHES+=( "${patchset_dir}/${patch}" )
- done
- if [[ $(getconf PAGESIZE) == 65536 ]]; then
- PATCHES+=( "${patchset_dir}/${page_size_patch}" )
- fi
- # We use vsx3 as a proxy for 'want isa3.0' (POWER9)
- if use cpu_flags_ppc_vsx3 ; then
- PATCHES+=( "${patchset_dir}/${isa_3_patch}" )
- fi
- fi
-
- remove_compiler_builtins
-
- # We can't rely on the eselect'd Rust to actually include rustfmt, so we'll point to the selected slot specifically.
- local suffix=""
- if [[ "${RUST_TYPE}" == "binary" ]]; then
- suffix="-bin-${RUST_SLOT}"
- else
- suffix="-${RUST_SLOT}"
- fi
- sed -i "s|/bin/rustfmt|/bin/rustfmt${suffix}|g" build/rust/rust_bindgen_generator.gni ||
- die "Failed to update rustfmt path"
-
- fi
-
- # Do this before we apply patches since (e.g.) ppc64 needs to patch rollup and it's easier in ${S}
- einfo "Moving rollup wasm-node package into place ..."
- mkdir -p third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
- die "Failed to create node_modules/@rollup/wasm-node"
- mv "${WORKDIR}"/package/* third_party/devtools-frontend/src/node_modules/@rollup/wasm-node ||
- die "Failed to move rollup package"
-
- if [ ! -z "${CHROMIUM_COMMITS[*]}" ]; then
- # for i in "${CHROMIUM_COMMITS[@]}"; do
- for i in "${!CHROMIUM_COMMITS[@]}"; do
- if [[ ${CHROMIUM_COMMITS[$i]} =~ webrtc ]]; then
- patch_prefix="webrtc"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ angle ]]; then
- patch_prefix="angle"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ quiche ]]; then
- patch_prefix="quiche"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ dawn ]]; then
- patch_prefix="dawn"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ perfetto ]]; then
- patch_prefix="perfetto"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ ink ]]; then
- patch_prefix="ink"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ vulkan-utility-libraries ]]; then
- patch_prefix="vulkan-utility-libraries"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ ruy ]]; then
- patch_prefix="ruy"
- elif [[ ${CHROMIUM_COMMITS[$i]} =~ devtools-frontend ]]; then
- patch_prefix="devtools-frontend"
- else
- patch_prefix="chromium"
- fi
- pushd "${CHROMIUM_COMMITS[$i]}" > /dev/null || die
- if [[ $i = -* ]]; then
- einfo "Reverting ${patch_prefix}-${i/-}.patch"
- git_wrapper apply -R --exclude="*unittest.cc" --exclude="DEPS" \
- -p1 < "${DISTDIR}/${patch_prefix}-${i/-}.patch"
- else
- einfo "Applying ${patch_prefix}-${i/-}.patch"
- git_wrapper apply --exclude="*unittest.cc" --exclude="DEPS" \
- -p1 < "${DISTDIR}/${patch_prefix}-${i/-}.patch"
- fi
- popd > /dev/null || die
- done
- fi
-
- if ! use bluetooth ; then
- PATCHES+=(
- "${FILESDIR}/disable-bluez-r7.patch"
- )
- fi
-
- if use convert-dict ; then
- PATCHES+=(
- "${FILESDIR}/chromium-ucf-dict-utility-r3.patch"
- )
- fi
-
- if ! use libcxx ; then
- PATCHES+=(
- "${FILESDIR}/fix-wayland-oncecallback-copy.patch"
- )
- fi
-
- if use system-ffmpeg; then
- PATCHES+=(
- "${FILESDIR}/chromium-141-opus-mp3.patch"
- "${FILESDIR}/chromium-135-hevc.patch"
- "${FILESDIR}/chromium-153-fix-iamf.patch"
- )
- sed -i "\!AVFMT_FLAG_NOH264PARSE!d" media/filters/ffmpeg_glue.cc || die
- ewarn "You need to expose \"av_stream_get_first_dts\" in ffmpeg via user patch"
- fi
-
- if use system-av1; then
- PATCHES+=(
- "${FILESDIR}/chromium-system-av1.patch"
- )
- fi
-
- if use system-libvpx; then
- PATCHES+=(
- "${FILESDIR}/chromium-system-libvpx.patch"
- )
- fi
-
- if use system-openjpeg ; then
- PATCHES+=(
- "${FILESDIR}/chromium-system-openjpeg-r4.patch"
- )
- fi
-
- # if use x86 ; then
- # #* Fixes a segfault in transport_security_state_generator
- # PATCHES+=(
- # "${FILESDIR}/fix-segfault-x86.patch"
- # )
- # fi
-
- # Testing all patches when NODIE is defined
- if [ ! -z "${NODIE}" ]; then
- for i in "${PATCHES[@]}"; do
- eapply_wrapper "$i"
- done
- nonfatal eapply_user
- else
- default
- fi
-
- if use cromite ; then
- BR_PA_PATH="${WORKDIR}/cromite-${CROMITE_COMMIT_ID}/build/patches"
-
- sed -i '/b\/components\/components_strings\.grd/,+10d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die
- sed -i '/b\/chrome\/android\/java\/res\/xml\/privacy_preferences\.xml/,+13d' "${BR_PA_PATH}/Add-cromite-flags-support.patch" || die
- sed -i '/b\/android_webview\/support_library\/java\/src\/org\/chromium\/support_lib_glue/,+11d' "${BR_PA_PATH}/Client-hints-overrides.patch" || die
- sed -i '/webapps_strings.grdp" \/>/{s++webapps_strings.grdp" /><part file="cromite_components_strings_grd/placeholder.txt"/>+;h};${x;/./{x;q0};x;q1}' \
- components/components_strings.grd || die
-
- sed -i 's/absl::/std::/' "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch" || die
-
- filterdiff -p1 "${BR_PA_PATH}/JIT-site-settings.patch" --exclude="content/browser/renderer_host/render_process_host_impl.cc" \
- > "${BR_PA_PATH}/JIT-site-settings.patch1"
- mv -f "${BR_PA_PATH}/JIT-site-settings.patch1" "${BR_PA_PATH}/JIT-site-settings.patch"
-
- BROMITE_PATCHES=(
- "${BR_PA_PATH}/bromite-build-utils.patch"
- "${BR_PA_PATH}/Battery-API-return-nothing.patch"
- "${BR_PA_PATH}/Multiple-fingerprinting-mitigations.patch"
- "${BR_PA_PATH}/Add-flag-to-configure-maximum-connections-per-host.patch"
- "${BR_PA_PATH}/Add-a-proxy-configuration-page.patch"
- "${BR_PA_PATH}/Enable-StrictOriginIsolation-and-SitePerProcess.patch"
- "${BR_PA_PATH}/Disable-requests-for-single-word-Omnibar-searches.patch"
- "${BR_PA_PATH}/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch"
- "${BR_PA_PATH}/Client-hints-overrides.patch"
- "${BR_PA_PATH}/Disable-idle-detection.patch"
- "${BR_PA_PATH}/Disable-TLS-resumption.patch"
- "${BR_PA_PATH}/Remove-navigator.connection-info.patch"
-
- "${BR_PA_PATH}/AudioBuffer-AnalyserNode-fp-mitigations.patch"
- "${BR_PA_PATH}/Fonts-fingerprinting-mitigation.patch"
- "${BR_PA_PATH}/Content-settings-infrastructure.patch"
- "${BR_PA_PATH}/Add-autoplay-site-setting.patch"
- "${BR_PA_PATH}/Site-setting-for-images.patch"
- "${BR_PA_PATH}/JIT-site-settings.patch"
- "${BR_PA_PATH}/Add-webGL-site-setting.patch"
- "${BR_PA_PATH}/Add-webRTC-site-settings.patch"
- "${BR_PA_PATH}/Show-site-settings-for-cookies-javascript-and-ads.patch"
- "${BR_PA_PATH}/Viewport-Protection-flag.patch"
- "${BR_PA_PATH}/Protect-keyboard-geometry-on-Android.patch"
- "${BR_PA_PATH}/Revert-remove-allowscript-content-setting-secondary-url.patch"
- "${BR_PA_PATH}/Timezone-customization.patch"
- "${BR_PA_PATH}/Disable-speechSynthesis-getVoices-API.patch"
- "${BR_PA_PATH}/Remove-support-for-device-memory-and-cpu-recovery.patch"
- "${BR_PA_PATH}/Disable-Feeback-Collector.patch"
- "${BR_PA_PATH}/Disable-remote-altsvc-for-h3-connections.patch"
- "${BR_PA_PATH}/Add-cromite-flags-support.patch"
- "${BR_PA_PATH}/Enables-deactivation-of-the-js-debugger-statement.patch"
- )
- for i in "${BROMITE_PATCHES[@]}"; do
- if [[ "$i" =~ "Add-autoplay-site-setting.patch" ]] ||
- [[ "$i" =~ "JIT-site-settings.patch" ]] ||
- [[ "$i" =~ "Site-setting-for-images.patch" ]]; then
- einfo "Git binary patch: ${i##*/}"
- git_wrapper apply -p1 < "$i"
- else
- filter_wrapper "$i" --exclude="chrome/android/*"
- fi
- done
-
- #! conflicting patches
- sed -i '/browser_features.cc/,+17d' \
- "${UGC_WD}/patches/extra/ungoogled-chromium/add-flag-to-clear-data-on-exit.patch" || die
- sed -i 's$} // namespace features$BASE_FEATURE(kClearDataOnExit, "ClearDataOnExit", base::FEATURE_DISABLED_BY_DEFAULT);}$' \
- chrome/browser/browser_features.cc || die
- sed -i 's$} // namespace features$BASE_DECLARE_FEATURE(kClearDataOnExit);}$' \
- chrome/browser/browser_features.h || die
- sed -i 's$kChromeUIAboutHost,$kChromeUIAboutHost,"ungoogled-first-run",$' \
- chrome/common/webui_url_constants.cc || die
- sed -i '/chrome\/common\/webui_url_constants.cc/Q' \
- "${UGC_WD}/patches/extra/ungoogled-chromium/first-run-page.patch" || die
-
- #! normalise paths in py
- sed -i 's$os.path.dirname(include_file)$os.path.abspath(os.path.dirname(include_file))$' \
- build/bromite/gyp/cpp_bromite_include.py || die
- fi
-
- # if [[ ${LLVM_SLOT} == "19" ]]; then
- # # Upstream now hard depend on a feature that was added in LLVM 20.1, but we don't want to stabilise that yet.
- # # Do the temp file shuffle in case someone is using something other than `gawk`
- # {
- # awk '/config\("clang_warning_suppression"\) \{/ { print $0 " }"; sub(/clang/, "xclang"); print; next }
- # { print }' build/config/compiler/BUILD.gn > "${T}/build.gn" && \
- # mv "${T}/build.gn" build/config/compiler/BUILD.gn
- # } || die "Unable to disable warning suppression"
- # fi
-
- ## Not included in -lite tarballs, but we should check for it anyway.
- #if [[ -f third_party/node/linux/node-linux-x64/bin/node ]]; then
- # rm third_party/node/linux/node-linux-x64/bin/node || die
- #else
- # mkdir -p third_party/node/linux/node-linux-x64/bin || die
- #fi
- #ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
-
- cp "${FILESDIR}/libusb.gn" build/linux/unbundle || die
- sed -i '/^REPLACEMENTS.*$/{s++REPLACEMENTS = {"libusb":"third_party/libusb/BUILD.gn",+;h};${x;/./{x;q0};x;q1}' \
- build/linux/unbundle/replace_gn_files.py || die
- sed -i '/^.*deps.*third_party\/jsoncpp.*$/{s++public_deps \+= [ "//third_party/jsoncpp" ]+;h};${x;/./{x;q0};x;q1}' \
- third_party/webrtc/rtc_base/BUILD.gn || die
-
- if use override-data-dir; then
- sed -i '/"chromium";/{s++"ungoogled-chromium";+;h};${x;/./{x;q0};x;q1}' \
- chrome/common/chrome_paths_linux.cc || die
- fi
-
- if use system-abseil-cpp; then
- eapply_wrapper "${FILESDIR}/chromium-147-system-abseil.patch"
-
- #! SFINAE mangling incompatibility between clang and gcc:
- #! https://github.com/llvm/llvm-project/issues/85656
- #! gcc: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELi0EEEOT_
- #! clang: _ZN4absl12lts_202601074CordC1INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEETnNSt9enable_ifIXsr3std7is_sameIT_S8_EE5valueEiE4typeELi0EEEOSA_
- #! So, either this:
- eapply_wrapper "${FILESDIR}/chromium-141-system-abseil-cord.patch"
- #! or build with -fclang-abi-compat=17
-
- # cp -f /usr/include/absl/base/options.h third_party/abseil-cpp/absl/base/options.h
- # sed -i '/^#define ABSL_OPTION_USE_STD_ORDERING.*$/{s++#define ABSL_OPTION_USE_STD_ORDERING 1+;h};${x;/./{x;q0};x;q1}' \
- # third_party/abseil-cpp/absl/base/options.h || die
- fi
-
- #* Applying UGC PRs here
- if [ ! -z "${UGC_PR_COMMITS[*]}" ]; then
- pushd "${UGC_WD}" >/dev/null
- for i in "${UGC_PR_COMMITS[@]}"; do
- eapply_wrapper "${DISTDIR}/${PN}-$i.patch"
- done
- popd >/dev/null
- fi
-
- # From here we adapt ungoogled-chromium's patches to our needs
- local ugc_pruning_list="${UGC_WD}/pruning.list"
- local ugc_patch_series="${UGC_WD}/patches/series"
- local ugc_substitution_list="${UGC_WD}/domain_substitution.list"
-
- local ugc_unneeded=(
- # GN bootstrap
- extra/debian/gn/parallel
- # following Gentoo's Chromium
- core/ungoogled-chromium/build-with-wasm-rollup
- )
-
- if use cromite ; then
- einfo "Using fingerprinting patches from Cromite instead"
- ugc_unneeded+=(
- extra/bromite/fingerprinting-flags-client-rects-and-measuretext
- extra/bromite/flag-max-connections-per-host
- extra/bromite/flag-fingerprinting-canvas-image-data-noise
- extra/ungoogled-chromium/add-components-ungoogled
- extra/ungoogled-chromium/remove-pac-size-limit
- )
- fi
-
- # #* Temporary fix
- # sed -i "\!ios/!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/icu/!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/libjpeg_turbo/!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/snappy/!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/closure_compiler/!d" "${ugc_pruning_list}" || die
-
- # #* Didn't unpack them at the first place
- # sed -i "\!build/linux/debian_bullseye_i386-sysroot!d" "${ugc_pruning_list}" || die
- # sed -i "\!build/linux/debian_bullseye_amd64-sysroot!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/llvm-build!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/node/linux!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/rust-src!d" "${ugc_pruning_list}" || die
- # sed -i "\!third_party/rust-toolchain!d" "${ugc_pruning_list}" || die
- # if ! use libcxx ; then
- # sed -i "\!third_party/libc!d" "${ugc_pruning_list}" || die
- # fi
- sed -i "s|debug('files|error('files|" \
- "${UGC_WD}/utils/prune_binaries.py" || die
- sed -i "\!third_party/node/linux!d" \
- "${UGC_WD}/utils/prune_binaries.py" || die
-
- local ugc_p ugc_dir
- for p in "${ugc_unneeded[@]}"; do
- einfo "Removing ${p}.patch"
- sed -i "\!${p}.patch!d" "${ugc_patch_series}" || die
- done
-
- if [ ! -z "${UGC_SKIP_PATCHES}" ]; then
- for p in ${UGC_SKIP_PATCHES}; do
- ewarn "Removing ${p}"
- sed -i "\!${p}!d" "${ugc_patch_series}" || die
- done
- fi
-
- if [ ! -z "${UGC_KEEP_BINARIES}" ]; then
- for p in ${UGC_KEEP_BINARIES}; do
- ewarn "Keeping binary ${p}"
- sed -i "\!${p}!d" "${ugc_pruning_list}" || die
- done
- fi
-
- if [ ! -z "${UGC_SKIP_SUBSTITUTION}" ]; then
- for p in ${UGC_SKIP_SUBSTITUTION}; do
- ewarn "No substitutions in ${p}"
- sed -i "\!${p}!d" "${ugc_substitution_list}" || die
- done
- fi
-
- ebegin "Pruning binaries"
- "${UGC_WD}/utils/prune_binaries.py" -q . "${UGC_WD}/pruning.list"
- eend $? || die
-
- ebegin "Applying ungoogled-chromium patches"
- "${UGC_WD}/utils/patches.py" -q apply . "${UGC_WD}/patches"
- eend $? || die
-
- ebegin "Applying domain substitution"
- "${UGC_WD}/utils/domain_substitution.py" -q apply -r "${UGC_WD}/domain_regex.list" -f "${UGC_WD}/domain_substitution.list" .
- eend $? || die
-
- # Sanity check esbuild version before we start removing files.
- # We _could_ patch the version check out - in theory esbuild upstream are being super conservative after
- # arch(AUR) packaged an `esbuild` binary and set ESBUILD_BINARY_PATH=/usr/bin/esbuild, causing much breakage,
- # but this is fine too and exactly matches what upstream are expecting.
- # https://github.com/evanw/esbuild/issues/2894
- local esbuild_js="${S}/third_party/devtools-frontend/src/node_modules/esbuild/lib/main.js"
- local found
- found=$(awk -F'"' '/if \(binaryVersion !==/ {print $2}' "${esbuild_js}")
- if [[ "${found}" != "${ESBUILD_VER}" ]]; then
- die "esbuild version mismatch: expected ${ESBUILD_VER}, found ${found}"
- fi
-
- elog "Removing bundled binaries from source tree ..."
- # Purge bundled ELF files: These are non-portable and will cause issues if used instead of system versions.
- # Use `--wasm` to also remove WebAssembly binaries, if desired - they're portable so shouldn't break builds.
- ${EPYTHON} "${FILESDIR}/bin-finder.py" --elf "${S}" | awk '{print $1}' | xargs rm -f ||
- die "Failed to remove bundled binaries"
-
- # And now we restore any that we actually need, from the host system
- local esbuild_path="${S}/third_party/devtools-frontend/src/third_party/esbuild"
- local -A restore_list=(
- ["/usr/bin/esbuild-${ESBUILD_VER}"]="${esbuild_path}/esbuild"
- ["/usr/bin/gperf"]="${S}/third_party/gperf/cipd/bin/gperf"
- ["/usr/bin/node"]="${S}/third_party/node/linux/node-linux-x64/bin/node"
- )
-
- for src in "${!restore_list[@]}"; do
- dst="${restore_list[${src}]}"
- if [[ -f "${src}" ]]; then
- einfo "Symlinking ${src} ..."
- # Make sure the parent dir exists; some tarballs don't include (e.g.) node's bindir
- mkdir -p "$(dirname "${dst}")" || die "Failed to create directory for ${dst}"
- ln -s "${src}" "${dst}" || die "Failed to symlink ${dst} from ${src}"
- if [[ ! -L "${dst}" || "$(readlink -f "${dst}")" != "${src}" ]]; then
- die "Symlink verification failed for ${dst} -> ${src}"
- fi
- else
- die "Expected to find ${src} to restore ${dst}, but it does not exist."
- fi
- done
-
- # adjust python interpreter version
- sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
-
- # Use the system copy of hwdata's usb.ids
- sed 's|//third_party/usb_ids/src/usb.ids|/usr/share/hwdata/usb.ids|g' \
- -i services/device/public/cpp/usb/BUILD.gn || die "Failed to set system usb.ids path"
-
- # remove_bundled_libraries.py walks the source tree and looks for paths containing the substring 'third_party'
- # whitelist matches use the right-most matching path component, so we need to whitelist from that point down.
- local keeplibs=(
- base/third_party/cityhash
- )
- use system-double-conversion || keeplibs+=(
- base/third_party/double_conversion
- )
- keeplibs+=(
- base/third_party/icu
- base/third_party/nspr
- base/third_party/superfasthash
- base/third_party/symbolize
- base/third_party/xdg_user_dirs
- buildtools/third_party/libc++
- buildtools/third_party/libc++abi
- )
- use cromite && keeplibs+=(
- cromite_flags/third_party
- )
- keeplibs+=(
- net/third_party/mozilla_security_manager
- net/third_party/quic
- net/third_party/uri_template
- )
- use system-abseil-cpp || keeplibs+=(
- third_party/abseil-cpp
- )
- keeplibs+=(
- third_party/angle
- third_party/angle/src/common/third_party/xxhash
- third_party/angle/src/third_party/ceval
- )
- use nvidia || keeplibs+=(
- third_party/angle/src/third_party/libXNVCtrl
- )
- keeplibs+=(
- third_party/angle/src/third_party/volk
- third_party/anonymous_tokens
- third_party/apple_apsl
- third_party/axe-core
- third_party/bidimapper
- third_party/blink
- third_party/boringssl
- third_party/boringssl/src/third_party/fiat
- third_party/breakpad
- third_party/breakpad/breakpad/src/third_party/curl
- )
- use system-brotli || keeplibs+=(
- third_party/brotli
- )
- keeplibs+=(
- third_party/catapult
- third_party/catapult/common/py_vulcanize/third_party/rcssmin
- third_party/catapult/common/py_vulcanize/third_party/rjsmin
- third_party/catapult/third_party/beautifulsoup4-4.9.3
- third_party/catapult/third_party/html5lib-1.1
- third_party/catapult/third_party/polymer
- third_party/catapult/third_party/six
- third_party/catapult/third_party/typ
- third_party/catapult/tracing/third_party/d3
- third_party/catapult/tracing/third_party/gl-matrix
- third_party/catapult/tracing/third_party/jpeg-js
- third_party/catapult/tracing/third_party/jszip
- third_party/catapult/tracing/third_party/mannwhitneyu
- third_party/catapult/tracing/third_party/oboe
- third_party/catapult/tracing/third_party/pako
- third_party/ced
- third_party/cld_3
- third_party/closure_compiler
- )
- use libcxx && keeplibs+=(
- third_party/compiler-rt
- )
- keeplibs+=(
- third_party/content_analysis_sdk
- third_party/cpuinfo
- third_party/crabbyavif
- third_party/crashpad
- third_party/crashpad/crashpad/third_party/lss
- third_party/crashpad/crashpad/third_party/zlib
- )
- use system-crc32c || keeplibs+=(
- third_party/crc32c
- )
- keeplibs+=(
- third_party/cros_system_api
- third_party/d3
- third_party/dawn
- third_party/dawn/third_party/gn/webgpu-cts
- third_party/dawn/third_party/OpenGL-Registry
- third_party/dawn/third_party/renderdoc
- third_party/dawn/third_party/webgpu-headers
- third_party/depot_tools
- third_party/devscripts
- third_party/devtools-frontend
- third_party/devtools-frontend/src/front_end/third_party/acorn
- third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
- third_party/devtools-frontend/src/front_end/third_party/axe-core
- third_party/devtools-frontend/src/front_end/third_party/chromium
- third_party/devtools-frontend/src/front_end/third_party/codemirror
- third_party/devtools-frontend/src/front_end/third_party/csp_evaluator
- third_party/devtools-frontend/src/front_end/third_party/diff
- third_party/devtools-frontend/src/front_end/third_party/i18n
- third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
- third_party/devtools-frontend/src/front_end/third_party/json5
- third_party/devtools-frontend/src/front_end/third_party/legacy-javascript
- third_party/devtools-frontend/src/front_end/third_party/lighthouse
- third_party/devtools-frontend/src/front_end/third_party/lit
- third_party/devtools-frontend/src/front_end/third_party/marked
- third_party/devtools-frontend/src/front_end/third_party/puppeteer
- third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/mitt
- third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/parsel-js
- third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/rxjs
- third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/third_party/urlpattern-polyfill
- third_party/devtools-frontend/src/front_end/third_party/source-map-scopes-codec
- third_party/devtools-frontend/src/front_end/third_party/third-party-web
- third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
- third_party/devtools-frontend/src/front_end/third_party/wasmparser
- third_party/devtools-frontend/src/front_end/third_party/web-vitals
- third_party/devtools-frontend/src/third_party
- third_party/dom_distiller_js
- third_party/dragonbox
- third_party/eigen3
- third_party/emoji-segmenter
- third_party/farmhash
- third_party/fast_float
- third_party/fdlibm
- third_party/federated_compute/chromium/fcp/confidentialcompute
- third_party/federated_compute/chromium/fcp/protos
- third_party/federated_compute/chromium/fcp/secagg
- third_party/federated_compute/chromium/fcp/client
- third_party/federated_compute/src/fcp/base
- third_party/federated_compute/src/fcp/confidentialcompute
- third_party/federated_compute/src/fcp/protos
- third_party/federated_compute/src/fcp/client
- third_party/federated_compute/src/fcp/secagg
- third_party/federated_compute/third_party/googleapis/src/google
- third_party/federated_compute/third_party/tensorflow-federated
- third_party/federated_compute/third_party/protodatastore-cpp
- third_party/fft2d
- third_party/flatbuffers
- third_party/fp16
- third_party/freetype
- third_party/fusejs
- third_party/fxdiv
- third_party/gemmlowp
- third_party/google_input_tools
- third_party/google_input_tools/third_party/closure_library
- third_party/google_input_tools/third_party/closure_library/third_party/closure
- third_party/googletest
- third_party/gperf # We symlink system gperf, but this will purge the symlink since we tidy up afterwards.
- third_party/highway
- third_party/hunspell
- third_party/hyphenation-patterns
- third_party/iamf_tools
- third_party/ink/src/ink/brush
- third_party/ink/src/ink/color
- third_party/ink/src/ink/geometry
- third_party/ink/src/ink/rendering
- third_party/ink/src/ink/rendering/skia/common_internal
- third_party/ink/src/ink/rendering/skia/native
- third_party/ink/src/ink/rendering/skia/native/internal
- third_party/ink/src/ink/strokes
- third_party/ink/src/ink/types
- third_party/inspector_protocol
- third_party/ipcz
- third_party/jinja2
- )
- use system-jsoncpp || keeplibs+=(
- third_party/jsoncpp
- )
- keeplibs+=(
- third_party/khronos
- third_party/lens_server_proto
- third_party/leveldatabase
- third_party/libaddressinput
- third_party/libdrm
- third_party/libgav1
- third_party/libjingle
- third_party/libpfm4
- third_party/libphonenumber
- third_party/libpng
- third_party/libsecret
- third_party/libsrtp
- third_party/libsync
- third_party/libtess2/libtess2
- third_party/libtess2/src/Include
- third_party/libtess2/src/Source
- third_party/liburlpattern
- )
- use system-libusb || keeplibs+=(
- third_party/libusb
- )
- keeplibs+=(
- third_party/libva_protected_content
- )
- use system-libvpx || keeplibs+=(
- third_party/libvpx
- third_party/libvpx/source/libvpx/third_party/x86inc
- )
- keeplibs+=(
- third_party/libwebm
- third_party/libx11
- third_party/libxcb-keysyms
- third_party/libxml/chromium
- third_party/libyuv
- third_party/libzip
- third_party/lit
- )
- use libcxx && keeplibs+=(
- third_party/llvm-libc
- third_party/llvm-libc/src/shared/
- )
- keeplibs+=(
- third_party/lottie
- third_party/lss
- third_party/lzma_sdk
- third_party/mako
- third_party/markupsafe
- third_party/material_color_utilities
- third_party/metrics_proto
- third_party/minigbm
- third_party/ml_dtypes
- third_party/modp_b64
- third_party/nasm
- third_party/nearby
- third_party/neon_2_sse
- third_party/node
- third_party/oak/chromium/proto
- third_party/oak/chromium/proto/attestation
- third_party/omnibox_proto
- third_party/one_euro_filter
- third_party/openscreen
- third_party/openscreen/src/third_party/
- third_party/openscreen/src/third_party/tinycbor/src/src
- third_party/ots
- third_party/pdfium
- third_party/pdfium/third_party/agg23
- third_party/pdfium/third_party/bigint
- third_party/pdfium/third_party/freetype
- third_party/pdfium/third_party/lcms
- )
- use system-openjpeg || keeplibs+=(
- third_party/pdfium/third_party/libopenjpeg
- )
- keeplibs+=(
- third_party/pdfium/third_party/libtiff
- third_party/perfetto
- third_party/perfetto/protos/third_party/android
- third_party/perfetto/protos/third_party/chromium
- third_party/perfetto/protos/third_party/pprof
- third_party/perfetto/protos/third_party/primes
- third_party/perfetto/protos/third_party/simpleperf
- third_party/pffft
- third_party/ply
- third_party/polymer
- third_party/private_membership
- third_party/private-join-and-compute
- third_party/protobuf
- third_party/protobuf/third_party/utf8_range
- third_party/pthreadpool
- third_party/puffin
- third_party/pyjson5
- third_party/pyyaml
- third_party/rapidhash
- third_party/readability
- third_party/rnnoise
- third_party/rust
- third_party/ruy
- third_party/s2cellid
- third_party/search_engines_data
- third_party/securemessage
- third_party/selenium-atoms
- third_party/sentencepiece
- third_party/sentencepiece/src/third_party/darts_clone
- third_party/shell-encryption
- third_party/simdutf
- third_party/simplejson
- third_party/six
- third_party/skia
- third_party/skia/include/third_party/vulkan
- third_party/smhasher
- )
- use system-snappy || keeplibs+=(
- third_party/snappy
- )
- keeplibs+=(
- third_party/spirv-headers
- third_party/spirv-tools
- third_party/sqlite
- third_party/swiftshader
- third_party/swiftshader/third_party/astc-encoder
- third_party/swiftshader/third_party/llvm-subzero
- third_party/swiftshader/third_party/marl
- third_party/swiftshader/third_party/SPIRV-Headers/include/spirv
- third_party/swiftshader/third_party/SPIRV-Tools
- third_party/swiftshader/third_party/subzero
- third_party/tensorflow_models
- third_party/tensorflow-text
- third_party/tflite
- third_party/tflite/src/third_party/fft2d
- third_party/tflite/src/third_party/xla/third_party/tsl
- third_party/tflite/src/third_party/xla/xla/tsl/framework
- third_party/tflite/src/third_party/xla/xla/tsl/lib/random
- third_party/tflite/src/third_party/xla/xla/tsl/platform
- third_party/tflite/src/third_party/xla/xla/tsl/protobuf
- third_party/tflite/src/third_party/xla/xla/tsl/util
- third_party/ukey2
- third_party/utf
- third_party/vulkan
- third_party/wayland
- third_party/webdriver
- third_party/webgpu-cts
- third_party/webrtc
- third_party/webrtc/common_audio/third_party/ooura
- third_party/webrtc/common_audio/third_party/spl_sqrt_floor
- third_party/webrtc/modules/third_party/fft
- third_party/webrtc/modules/third_party/g711
- third_party/webrtc/modules/third_party/g722
- third_party/widevine
- )
- use system-woff2 || keeplibs+=(
- third_party/woff2
- )
- keeplibs+=(
- third_party/wuffs
- third_party/x11proto
- third_party/xcbproto
- third_party/xnnpack
- third_party/zlib/google
- third_party/zxcvbn-cpp
- url/third_party/mozilla
- v8/third_party/inspector_protocol
- v8/third_party/rapidhash-v8
- v8/third_party/siphash
- v8/third_party/utf8-decoder
- v8/third_party/v8
- v8/third_party/valgrind
-
- # gyp -> gn leftovers
- third_party/speech-dispatcher
- third_party/usb_ids
- )
-
- if use test; then
- keeplibs+=(
- third_party/breakpad/breakpad/src/processor
- third_party/fuzztest
- third_party/google_benchmark/src/include/benchmark
- third_party/google_benchmark/src/src
- third_party/test_fonts
- third_party/test_fonts/fontconfig
- third_party/test_fonts/test_fonts
- )
- fi
-
- # USE=system-*
- if ! use system-harfbuzz; then
- keeplibs+=( third_party/harfbuzz )
- fi
-
- if ! use system-ffmpeg; then
- keeplibs+=( third_party/ffmpeg third_party/opus )
- fi
-
- if ! use system-icu; then
- keeplibs+=( third_party/icu )
- fi
-
- if ! use system-zstd; then
- keeplibs+=( third_party/zstd )
- fi
-
- if ! use system-av1; then
- keeplibs+=(
- third_party/dav1d
- third_party/libaom
- third_party/libaom/source/libaom/third_party/fastfeat
- third_party/libaom/source/libaom/third_party/vector
- third_party/libaom/source/libaom/third_party/x86inc
- )
- fi
-
- if use libcxx; then
- keeplibs+=(
- third_party/libc++
- third_party/llvm-libc
- )
- fi
-
- if ! use system-openh264; then
- keeplibs+=( third_party/openh264 )
- fi
-
- if ! use system-re2; then
- keeplibs+=( third_party/re2 )
- fi
-
- # Arch-specific
- if use arm64 || use ppc64 ; then
- keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
- fi
- # we need to generate ppc64 stuff because upstream does not ship it yet
- # it has to be done before unbundling.
- if use ppc64; then
- pushd third_party/libvpx >/dev/null || die
- mkdir -p source/config/linux/ppc64 || die
- # requires git and clang, bug #832803
- # Revert https://chromium.googlesource.com/chromium/src/+/b463d0f40b08b4e896e7f458d89ae58ce2a27165%5E%21/third_party/libvpx/generate_gni.sh
- # and https://chromium.googlesource.com/chromium/src/+/71ebcbce867dd31da5f8b405a28fcb0de0657d91%5E%21/third_party/libvpx/generate_gni.sh
- # since we're not in a git repo
- sed -i -e "s|^update_readme||g; s|clang-format|${EPREFIX}/bin/true|g; /^git -C/d; /git cl/d; /cd \$BASE_DIR\/\$LIBVPX_SRC_DIR/ign format --in-place \$BASE_DIR\/BUILD.gn\ngn format --in-place \$BASE_DIR\/libvpx_srcs.gni" \
- generate_gni.sh || die
- ./generate_gni.sh || die
- popd >/dev/null || die
-
- pushd third_party/ffmpeg >/dev/null || die
- cp libavcodec/ppc/h264dsp.c libavcodec/ppc/h264dsp_ppc.c || die
- cp libavcodec/ppc/h264qpel.c libavcodec/ppc/h264qpel_ppc.c || die
- popd >/dev/null || die
- fi
-
- # Sanity check keeplibs, on major version bumps it is often necessary to update this list
- # and this enables us to hit them all at once.
- # There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
- whitelist_libs=(
- net/third_party/quic
- third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
- third_party/libjingle
- third_party/mesa
- third_party/skia/third_party/vulkan
- third_party/vulkan
- )
- local not_found_libs=()
- for lib in "${keeplibs[@]}"; do
- if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
- not_found_libs+=( "${lib}" )
- fi
- done
-
- if [[ ${#not_found_libs[@]} -gt 0 ]]; then
- ewarn "The following \`keeplibs\` directories were not found in the source tree:"
- for lib in "${not_found_libs[@]}"; do
- ewarn " ${lib}"
- done
- fi
-
- keeplibs+=( third_party/ungoogled )
-
- # Remove most bundled libraries. Some are still needed.
- einfo "Unbundling third-party libraries ..."
- build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
-
- # Interferes with our bundled clang path; we don't want stripped binaries anyway.
- sed -i -e 's|${clang_base_path}/bin/llvm-strip|/bin/true|g' \
- -e 's|${clang_base_path}/bin/llvm-objcopy|/bin/true|g' \
- build/linux/strip_binary.gni || die
-
- #! Fix for a phony target
- mkdir -p third_party/rust-toolchain/bin
- touch third_party/rust-toolchain/bin/rustc
-}
-
-src_configure() {
- # Calling this here supports resumption via FEATURES=keepwork
- python_setup
-
- # 974899: sometimes people try to build with a non-Unicode locale and python gets very upset
- python_export_utf8_locale || die "Chromium builds require a UTF-8 locale."
-
- # Bug 491582.
- export TMPDIR="${WORKDIR}/temp"
- mkdir -p -m 755 "${TMPDIR}" || die
-
- # https://bugs.gentoo.org/654216
- addpredict /dev/dri/ #nowarn
-
- # Use system-provided libraries.
- # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
- # TODO: use_system_hunspell (upstream changes needed).
- # TODO: use_system_protobuf (bug #525560).
- # TODO: use_system_sqlite (http://crbug.com/22208).
-
- # libevent: https://bugs.gentoo.org/593458
- local gn_system_libraries=(
- flac
- fontconfig
- freetype
- libjpeg
- libwebp
- libxml
- libxslt
- zlib
- )
- if use system-abseil-cpp; then
- gn_system_libraries+=(
- absl_algorithm
- absl_base
- absl_cleanup
- absl_container
- absl_crc
- absl_debugging
- absl_flags
- absl_functional
- absl_hash
- absl_log
- absl_log_internal
- absl_memory
- absl_meta
- absl_numeric
- absl_random
- absl_status
- absl_strings
- absl_synchronization
- absl_time
- absl_types
- absl_utility
- )
- fi
- if use system-brotli; then
- gn_system_libraries+=( brotli )
- fi
- if use system-crc32c; then
- gn_system_libraries+=( crc32c )
- fi
- if use system-double-conversion; then
- gn_system_libraries+=( double-conversion )
- fi
- if use system-woff2; then
- gn_system_libraries+=( woff2 )
- fi
- if use nvidia; then
- gn_system_libraries+=( libXNVCtrl )
- fi
- if use system-ffmpeg; then
- gn_system_libraries+=( ffmpeg opus )
- fi
- if use system-jsoncpp; then
- gn_system_libraries+=( jsoncpp )
- fi
- if use system-icu; then
- gn_system_libraries+=( icu )
- fi
- if use system-zstd; then
- gn_system_libraries+=( zstd )
- fi
- if use system-av1; then
- gn_system_libraries+=( dav1d libaom )
- fi
- if use system-libusb; then
- gn_system_libraries+=( libusb )
- fi
- if use system-libvpx; then
- gn_system_libraries+=( libvpx )
- fi
- use system-openh264 && gn_system_libraries+=(
- openh264
- )
- use system-re2 && gn_system_libraries+=(
- re2
- )
- use system-snappy && gn_system_libraries+=(
- snappy
- )
-
- build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" ||
- die "Failed to replace GN files for system libraries"
-
- # TODO 131: The above call clobbers `enable_freetype = true` in the freetype gni file
- # drop the last line, then append the freetype line and a new curly brace to end the block
- local freetype_gni="build/config/freetype/freetype.gni"
- sed -i -e '$d' ${freetype_gni} || die
- echo " enable_freetype = true" >> ${freetype_gni} || die
- echo "}" >> ${freetype_gni} || die
-
- if use !custom-cflags; then
- replace-flags "-Os" "-O2"
- strip-flags
- # Debug info section overflows without component build
- # Prevent linker from running out of address space, bug #471810 .
- filter-flags "-g*"
- # 949123: Several multimedia components explicitly build with specific CFLAGS and
- # use runtime detection to enable optimisations; unfortunately any of our CFLAGS are suffixed
- # to the end of the command line, which causes build failures.
- fi
- # Since M150 `skia` will begin breaking for x86_64 due to compilation of `avx512` code paths;
- # we need to filter these for all arches.
- filter-flags "-march*" "-mtune*" "-mcpu*"
-
- # We don't use the same clang version as upstream, and with -Werror
- # we need to make sure that we don't get superfluous warnings.
- append-flags -Wno-unknown-warning-option
- if tc-is-cross-compiler; then # can you cross-compile with the bundled toolchain?
- export BUILD_CXXFLAGS+=" -Wno-unknown-warning-option"
- export BUILD_CFLAGS+=" -Wno-unknown-warning-option"
- fi
-
- # Start building our GN options
- local myconf_gn=() # Tip: strings must be quoted, bools or numbers are fine
-
- if use !bundled-toolchain; then
- # We already forced the "correct" clang via pkg_setup
-
- if tc-is-cross-compiler; then
- CC="${CC} -target ${CHOST} --sysroot ${ESYSROOT}"
- CXX="${CXX} -target ${CHOST} --sysroot ${ESYSROOT}"
- BUILD_AR=${AR}
- BUILD_CC=${CC}
- BUILD_CXX=${CXX}
- BUILD_NM=${NM}
- fi
-
- # Make sure the build system will use the right tools, bug #340795.
- tc-export AR CC CXX NM
-
- strip-unsupported-flags
- append-ldflags -Wl,--undefined-version # https://bugs.gentoo.org/918897#c32
-
- myconf_gn+=(
- "is_clang=true"
- "clang_use_chrome_plugins=false"
- "use_clang_modules=false" # M141 enables this for the linux platform by default.
- 'custom_toolchain="//build/toolchain/linux/unbundle:default"'
- # From M127 we need to provide a location for libclang and the clang resource dir so that bindgen can find them
- "bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\""
- "bindgen_clang_resource_dir=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\""
- "bindgen_extra_clang_args=[\"-I${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/include\"]"
- "clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\""
- "rust_bindgen_root=\"${EPREFIX}/usr/\""
- "rust_sysroot_absolute=\"$(get_rust_prefix)\""
- "rustc_version=\"${RUST_SLOT}\""
- )
-
- # Currently disabled, runtime issues with mold
- #if tc-ld-is-mold; then
- # myconf_gn+=(
- # "use_mold=true"
- # "use_lld=false"
- # "linker_path=\"${EPREFIX}/usr/bin/mold\""
- # )
- #else
- myconf_gn+=( "use_lld=true" )
- #fi
-
- if [[ ${LLVM_SLOT} -lt 23 ]]; then
- # Workaround for -fsanitize-ignore-for-ubsan-feature (added in LLVM 23)
- myconf_gn+=( 'clang_has_ubsan_feature_ignore=false' )
- fi
-
- if ! tc-is-cross-compiler; then
- myconf_gn+=( 'host_toolchain="//build/toolchain/linux/unbundle:default"' )
- else
- tc-export BUILD_{AR,CC,CXX,NM}
- myconf_gn+=(
- 'host_toolchain="//build/toolchain/linux/unbundle:host"'
- 'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
- "host_pkg_config=\"$(tc-getBUILD_PKG_CONFIG)\""
- "pkg_config=\"$(tc-getPKG_CONFIG)\""
- )
-
- # setup cups-config, build system only uses --libs option
- if use cups; then
- mkdir "${T}/cups-config" || die
- cp "${ESYSROOT}/usr/bin/${CHOST}-cups-config" "${T}/cups-config/cups-config" || die
- export PATH="${PATH}:${T}/cups-config"
- fi
-
- # Don't inherit PKG_CONFIG_PATH from environment
- local -x PKG_CONFIG_PATH=
- fi
-
- fi # !bundled-toolchain
-
- local myarch
- myarch="$(tc-arch)"
- case ${myarch} in
- amd64)
- # Bug 530248, 544702, 546984, 853646.
- use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
- -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
- myconf_gn+=( 'target_cpu="x64"' )
- ;;
- x86)
- # Bug 530248, 544702, 546984, 853646.
- use !custom-cflags && filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 \
- -mno-avx -mno-avx2 -mno-fma -mno-fma4 -mno-xop -mno-sse4a
- myconf_gn+=( 'target_cpu="x86"' )
- ;;
- arm64)
- myconf_gn+=( 'target_cpu="arm64"' )
- ;;
- ppc64)
- myconf_gn+=( 'target_cpu="ppc64"' )
- ;;
- *)
- die "Failed to determine target arch, got '${myarch}'."
- ;;
- esac
-
- # Common options
-
- myconf_gn+=(
- # Disable code formating of generated files
- "blink_enable_generated_code_formatting=false"
- # enable DCHECK with USE=debug only, increases chrome binary size by 30%, bug #811138.
- # DCHECK is fatal by default, make it configurable at runtime, #bug 807881.
- "dcheck_always_on=$(usex debug true false)"
- "dcheck_is_configurable=$(usex debug true false)"
- # Chromium builds provided by Linux distros should disable the testing config
- "disable_fieldtrial_testing_config=true"
- # Custom patch: Enable building Chromium as individual channels (e.g. stable, beta, dev) that
- # use different profile directories, desktop entries, etc. This enables slotting the ebuild.
- "enable_channel_branding=true"
- # 131 began laying the groundwork for replacing freetype with
- # "Rust-based Fontations set of libraries plus Skia path rendering"
- # We now need to opt-in
- "enable_freetype=true"
- "enable_hangout_services_extension=$(usex hangouts true false)"
- # Don't need nocompile checks and GN crashes with our config (verify with modern GN)
- "enable_nocompile_tests=false"
- # pseudolocales are only used for testing
- "enable_pseudolocales=false"
- "enable_widevine=$(usex widevine true false)"
- # Disable fatal linker warnings, bug 506268.
- "fatal_linker_warnings=false"
- # Component build isn't generally intended for use by end users. It's mostly useful
- # for development and debugging.
- "is_component_build=false"
- # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
- "is_debug=false"
- "is_official_build=$(usex official true false)"
- # Enable ozone wayland and/or headless support
- "ozone_auto_platforms=false"
- "ozone_platform_headless=true"
- # Enables building without non-free unRAR licence
- "safe_browsing_use_unrar=false"
- # "thin_lto_enable_optimizations=${use_lto}"
- "treat_warnings_as_errors=false"
- # Use in-tree libc++ (buildtools/third_party/libc++ and buildtools/third_party/libc++abi)
- # instead of the system C++ library for C++ standard library support.
- # default: true, but let's be explicit (forced since 120 ; USE removed 127).
- "use_custom_libcxx=true"
- # Enable ozone wayland and/or headless support
- "use_ozone=true"
- # The sysroot is the oldest debian image that chromium supports, we don't need it
- "use_sysroot=false"
- # See dependency logic in third_party/BUILD.gn
- "use_system_harfbuzz=$(usex system-harfbuzz true false)"
- # "use_thin_lto=${use_lto}"
- # Only enabled for clang, but gcc has endian macros too
- "v8_use_libm_trig_functions=true"
- # use system go
- "tint_use_system_go=true"
- )
-
- myconf_gn+=( "enable_iterator_debugging=$(usex debug true false)" )
-
- if use debug; then
- myconf_gn+=(
- "symbol_level=2"
- "blink_symbol_level=2"
- "v8_symbol_level=2"
- )
- else
- myconf_gn+=(
- "symbol_level=0"
- "blink_symbol_level=0"
- "v8_symbol_level=0"
- )
- fi
-
- if use bindist ; then
- myconf_gn+=(
- # If this is set to false Chromium won't be able to load any proprietary codecs
- # even if provided with an ffmpeg capable of h264/aac decoding
- "proprietary_codecs=true"
- 'ffmpeg_branding="Chrome"'
- # build ffmpeg as an external component (libffmpeg.so) that we can remove / substitute
- "is_component_ffmpeg=true"
- )
- else
- myconf_gn+=(
- "proprietary_codecs=$(usex proprietary-codecs true false)"
- "ffmpeg_branding=\"$(usex proprietary-codecs Chrome Chromium)\""
- )
- fi
-
- if use headless; then
- myconf_gn+=(
- "enable_print_preview=false"
- "enable_remoting=false"
- 'ozone_platform="headless"'
- "rtc_use_pipewire=false"
- "use_alsa=false"
- "use_cups=false"
- "use_gio=false"
- "use_glib=false"
- "use_gtk=false"
- "use_kerberos=false"
- "use_libpci=false"
- "use_pangocairo=false"
- "use_pulseaudio=false"
- "use_qt5=false"
- "use_qt6=false"
- "use_udev=false"
- "use_vaapi=false"
- "use_xkbcommon=false"
- )
- else
- myconf_gn+=(
- "gtk_version=$(usex gtk4 4 3)"
- # link pulseaudio directly (DT_NEEDED) instead of using dlopen.
- # helps with automated detection of ABI mismatches and prevents silent errors.
- "link_pulseaudio=$(usex pulseaudio true false)"
- "ozone_platform_wayland=$(usex wayland true false)"
- "ozone_platform_x11=$(usex X true false)"
- "ozone_platform=\"$(usex wayland wayland x11)\""
- "rtc_use_pipewire=$(usex screencast true false)"
- # As above - link directly instead of dlopening
- "rtc_link_pipewire=$(usex screencast true false)"
- "use_cups=$(usex cups true false)"
- "use_kerberos=$(usex kerberos true false)"
- "use_pulseaudio=$(usex pulseaudio true false)"
- "use_qt5=false"
- "use_system_libffi=$(usex wayland true false)"
- "use_system_minigbm=true"
- "use_vaapi=$(usex vaapi true false)"
- "use_xkbcommon=true"
- )
- if use qt6; then
- local cbuild_libdir
- cbuild_libdir="$(get_libdir)"
- if tc-is-cross-compiler; then
- # Hack to workaround get_libdir not being able to handle CBUILD, bug #794181
- cbuild_libdir="$($(tc-getBUILD_PKG_CONFIG) --keep-system-libs --libs-only-L libxslt)"
- cbuild_libdir="${cbuild_libdir:2}"
- cbuild_libdir="${cbuild_libdir/% }"
- fi
- myconf_gn+=(
- "use_qt6=true"
- "moc_qt6_path=\"${EPREFIX}/usr/${cbuild_libdir}/qt6/libexec\""
- )
- else
- myconf_gn+=( "use_qt6=false" )
- fi
- fi
-
- # Explicitly disable ICU data file support for system-icu/headless builds.
- if use system-icu || use headless; then
- myconf_gn+=( "icu_use_data_file=false" )
- fi
-
- if use official; then
- # Allow building against system libraries in official builds
- sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
- tools/generate_shim_headers/generate_shim_headers.py || die
- # Don't add symbols to build
- myconf_gn+=( "symbol_level=0" )
- fi
-
- if use pgo; then
- myconf_gn+=(
- "chrome_pgo_phase=2"
- "v8_enable_builtins_optimization=true"
- )
- else
- myconf_gn+=( "chrome_pgo_phase=0" )
- fi
-
- # Odds and ends
-
- # skipping typecheck is only supported on amd64, bug #876157
- if ! use amd64; then
- myconf_gn+=( "devtools_skip_typecheck=false" )
- fi
-
- # Disable external code space for V8 for ppc64. It is disabled for ppc64
- # by default, but cross-compiling on amd64 enables it again.
- if tc-is-cross-compiler && use ppc64; then
- myconf_gn+=( "v8_enable_external_code_space=false" )
- fi
-
- # This determines whether or not GN uses the bundled libcxx
- if use libcxx; then
- myconf_gn+=( "use_custom_libcxx=true" )
- else
- myconf_gn+=(
- "use_custom_libcxx=false"
- "use_llvm_libatomic=false"
- )
- append-cppflags -U_GLIBCXX_ASSERTIONS #See #318
- fi
-
- myconf_gn+=( "use_bluez=$(usex bluetooth true false)" )
-
- myconf_gn+=( "is_cfi=$(usex cfi true false)" )
-
- if use cfi; then
- myconf_gn+=(
- "use_cfi_icall=true"
- "use_cfi_cast=true"
- )
- fi
-
- myconf_gn+=(
- "optimize_webui=$(usex optimize-webui true false)"
- "use_system_freetype=$(usex system-harfbuzz true false)"
- "use_system_libopenjpeg2=$(usex system-openjpeg true false)"
- "enable_pdf=true"
- "use_system_lcms2=true"
- "enable_print_preview=true"
- "use_thin_lto=$(usex thinlto true false)"
- "thin_lto_enable_optimizations=$(usex optimize-thinlto true false)"
-
- # Ungoogled flags
- "enable_mdns=false"
- "enable_mse_mpeg2ts_stream_parser=$(usex proprietary-codecs true false)"
- "enable_remoting=false"
- "enable_reporting=false"
- "enable_service_discovery=false"
- "exclude_unwind_tables=true"
- "google_api_key=\"\""
- "google_default_client_id=\"\""
- "google_default_client_secret=\"\""
- "safe_browsing_mode=0"
- "use_official_google_api_keys=false"
- "use_unofficial_version_number=false"
-
- # "enable_swiftshader=false"
-
- # Additional flags
- # "perfetto_use_system_zlib=true"
- # "use_system_zlib=true"
- # "use_system_libjpeg=true"
- # "rtc_build_examples=false"
- # "enable_chromium_prelude=false"
- # "enable_updater=false"
- # "enable_update_notifications=false"
- # "enable_constraints=false"
- # "rtc_rusty_base64=false"
- # "v8_enable_temporal_support=false"
- # "media_use_symphonia=false"
- # "pdf_enable_rust_png=false"
- # "skia_use_libpng_encode=true"
- # "skia_use_libpng_decode=true"
- # "skia_use_rust_png_decode=false"
- # "skia_use_rust_png_encode=false"
- # "enable_jxl_decoder=false"
- )
-
- if use amd64 || use arm64; then
- myconf_gn+=(
- "v8_drumbrake_bounds_checks=true"
- # "v8_enable_drumbrake=true"
- )
- fi
-
- if use thinlto; then
- # We need to change the default value of import-instr-limit in
- # LLVM to limit the text size increase. The default value is
- # 100, and we change it to 30 to reduce the text size increase
- # from 25% to 10%. The performance number of page_cycler is the
- # same on two of the thinLTO configurations, we got 1% slowdown
- # on speedometer when changing import-instr-limit from 100 to 30.
- # append-ldflags "-Wl,-plugin-opt,-import-instr-limit=30"
- sed -i '/import_instr_limit = 5/{s++import_instr_limit = 30+;h};${x;/./{x;q0};x;q1}' \
- build/config/compiler/BUILD.gn || die
-
- append-ldflags "-Wl,--thinlto-jobs=$(makeopts_jobs)"
- fi
-
- # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn)
- append-cflags -Wno-builtin-macro-redefined
- append-cxxflags -Wno-builtin-macro-redefined
- append-cppflags "-D__DATE__= -D__TIME__= -D__TIMESTAMP__="
-
- local flags
- einfo "Building with the following compiler settings:"
- for flags in C{C,XX} AR NM RANLIB {C,CXX,CPP,LD}FLAGS \
- EXTRA_GN UGC_{SKIP_{PATCHES,SUBSTITUTION},KEEP_BINARIES} ; do
- einfo " ${flags} = \"${!flags}\""
- done
-
- # Since we build from tarballs, we need to set the channel here so that it can be used in the build.
- export CHROME_VERSION_EXTRA="${SLOT}"
-
- einfo "Configuring Chromium ..."
- # add a `-v` here if gn `hangs` to see which file it's getting stuck on.
- set -- gn gen --args="${myconf_gn[*]}${EXTRA_GN:+ ${EXTRA_GN}}" out/Release
- echo "$@"
- "$@" || die "Failed to configure Chromium"
-
- # The "if" below should not be executed unless testing
- if [ ! -z "${NODIE}" ]; then
- # List all args
- # gn args --list out/Release
-
- # Quick compiler check
- eninja -C out/Release protoc torque
- fi
-}
-
-src_compile() {
- # Final link uses lots of file descriptors.
- ulimit -n 2048
-
- # Calling this here supports resumption via FEATURES=keepwork
- python_setup
-
- # I hate doing this but upstream Rust have yet to come up with a better solution for
- # us poor packagers. Required for Split LTO units, which are required for CFI.
- export RUSTC_BOOTSTRAP=1
-
- # Don't inherit PYTHONPATH from environment, bug #789021, #812689
- local -x PYTHONPATH=
-
- # Build mksnapshot and pax-mark it.
- if use pax-kernel; then
- local x
- for x in mksnapshot v8_context_snapshot_generator code_cache_generator; do
- if tc-is-cross-compiler; then
- eninja -C out/Release "host/${x}"
- pax-mark m "out/Release/host/${x}"
- else
- eninja -C out/Release "${x}"
- pax-mark m "out/Release/${x}"
- fi
- done
- fi
-
- # Even though ninja autodetects number of CPUs, we respect
- # user's options, for debugging with -j 1 or any other reason.
- eninja -C out/Release chrome chrome_sandbox $(use test && echo "base_unittests")
-
- pax-mark m out/Release/chrome
-
- # This codepath does minimal patching, so we're at the mercy of upstream
- # CFLAGS. This is fine - we're not intending to force this on users
- # and we do a lot of flag 'management' anyway.
- if use bundled-toolchain; then
- QA_FLAGS_IGNORED="
- usr/lib64/chromium-browser/chrome
- usr/lib64/chromium-browser/chrome-sandbox
- usr/lib64/chromium-browser/chromedriver
- usr/lib64/chromium-browser/chrome_crashpad_handler
- usr/lib64/chromium-browser/libEGL.so
- usr/lib64/chromium-browser/libGLESv2.so
- usr/lib64/chromium-browser/libVkICD_mock_icd.so
- usr/lib64/chromium-browser/libVkLayer_khronos_validation.so
- usr/lib64/chromium-browser/libqt6_shim.so
- usr/lib64/chromium-browser/libvk_swiftshader.so
- usr/lib64/chromium-browser/libvulkan.so.1
- "
- fi
-
- use convert-dict && eninja -C out/Release convert_dict
-
- use enable-driver && eninja -C out/Release chromedriver
- #use suid && eninja -C out/Release chrome_sandbox
-
- # use enable-driver && mv out/Release/chromedriver{.unstripped,}
-
- rm -f out/Release/locales/*.pak.info || die
-
- # Generate support files (desktop file, manpage, etc.) See: #684550 #706786 #968958
- ${EPYTHON} "${FILESDIR}/generate-support-files.py" \
- --installdir "/usr/$(get_libdir)/ungoogled-chromium-browser" \
- --channel "${SLOT}" ||
- die "Failed to generate support files"
-}
-
-src_test() {
- # Tests may be flaky with usersandbox, and the test runner executes significantly faster without.
- # If you seem to be excluding too many tests for a particular milestone: comment them out, reboot, and
- # run the tests again. If that doesn't help, try FEATURES="-usersandbox" and send it because obviously the
- # chromium gods are not smiling upon you today. Do some runtime testing, obvs.
- local skip_tests=(
- # Wildcard exclusions (if all tests in a test suite are broken)
- 'AlternateTestParams/PartitionAllocDeathTest.RepeatedAllocReturnNullDirect/*'
- 'AlternateTestParams/PartitionAllocDeathTest.RepeatedReallocReturnNullDirect/*'
- 'AlternateTestParams/PartitionAllocTest.*' # 200+ tests, >= 1 crashes entire test runner with usersandbox.
- 'CheckExitCodeAfterSignalHandlerDeathTest.*'
- 'CriticalProcessAndThreadSpotChecks/HangWatcherAnyCriticalThreadTests.*'
- 'LazyThreadPoolTaskRunnerEnvironmentTest.*' # M142
- 'ToolsSanityTest.BadVirtualCall*'
- # Since 151.0.7922.137
- 'CheckDeathTest.*'
- 'EnumSetDeathTest.*'
- 'OptionalRefDeathTest.*'
- 'RawRefDeathTest.*'
- 'AlternateTestParams/PartitionAllocDeathTest.CheckTriggered*'
- 'CallbackHelpersTest.*'
- 'SafeRefTest.*'
- 'SpanTest.*'
- 'WeakValueTableTest.*'
- 'PlatformSharedMemoryRegionTest.*'
- 'RefCountedOverflowTest.*'
- 'SingleThreadTaskRunnerCurrentDefaultHandleTest.*'
- 'TestFutureDeathTest.*'
- 'WeakPtrDeathTest.*'
- 'SafeRefDeathTest.*'
- 'LinkedListDeathTest.*'
- 'BindDeathTest.*'
- 'ReallocProtectedIteratorDeathTest.*'
- 'PASpanTest.*'
- 'BackupRefPtrTest.*'
- 'All/Base64Test.Overflow*'
- 'ValuesTest.*'
- 'TaskEnvironmentTest.*'
- 'CheckedObserverListTest.*'
- 'MemoryConsumerRegistryTest.*'
- ProtectedMemoryDeathTest.FailsIfDefinedOutsideOfProtectMemoryRegion
- StructuredSharedMemoryDeathTest.DuplicateRegion
- CheckedContiguousIteratorDeathTest.OutOfBounds
- HeapArrayDeathTest.TakeFirstWithOverSize
- CallbackDeathTest.RunNullCallbackChecks
- ObserverListThreadSafeDeathTest.CrossThreadRemovalRestricted
- SequencedTaskRunnerCurrentDefaultHandleDeathTest.OverrideWithNull
- TestFutureWithoutTaskEnvironmentDeathTest.WaitShouldDcheckWithoutTaskEnvironment
- ScopedThreadPriorityDeathTest.NoRealTime
- ReallocProtectedIteratorDeathTest.StringReallocCrashes
- BarrierCallbackTest.ErrorToCallCallbackWithZeroCallbacks
- BarrierClosureTest.ChecksIfCalledForZeroClosures
- SupportsUserDataTest.ReentrantSetUserDataDuringRemoval
- TimeBase.AddSubInfinities
- LibcppHardeningTest.Assertions
- IDMapTest.RemovedValueHandling
- MultiMemoryConsumerTest.DuplicateInterventionsCheck
- PersistentMemoryAllocatorTest.DelayedAllocationTest
- SequenceCheckerTest.MoveOffSequenceBanned
- ThreadCheckerTest.MoveOffThreadBanned
- TokenType.TokenFromNullUnguessableToken
- ZipTest.CheckForIterationPastTheEnd
- MemoryConsumerTraitsTest.ActiveConsumerWithPassiveTraitsFails
- SingleThreadTaskRunnerMainThreadDefaultHandleTest.Basic
-
- # requires en-us locale
- SysStrings.SysNativeMBAndWide
- SysStrings.SysNativeMBToWide
- SysStrings.SysWideToNativeMB
- # Specific test cases
- CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention
- FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe
- HistogramTesterTest.PumaTestUniqueSample
- ImmediateCrashTest.ExpectedOpcodeSequence # M150
- PathServiceTest.CheckedGetFailure
- PlatformThreadTest.CanChangeThreadType
- RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144.
- RustLogIntegrationTest.CheckAllSeverity
- StackCanary.ChangingStackCanaryCrashesOnReturn
- StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree
- TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest
- ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker
- DriveInfoTest.GetFileDriveInfo
-
- )
- local test_filter="-$(IFS=:; printf '%s' "${skip_tests[*]}")"
- # test-launcher-bot-mode enables parallelism and plain output
- # Check individual tests with --gtest_filter=<test you want> --single-process-tests
- ./out/Release/base_unittests --test-launcher-bot-mode \
- --test-launcher-jobs="$(get_makeopts_jobs)" \
- --gtest_filter="${test_filter}" || die "Tests failed!"
-}
-
-src_install() {
- local browser_suffix
- if [[ "${SLOT}" != "stable" ]]; then
- browser_suffix="-${SLOT}"
- else
- browser_suffix=""
- fi
- local CHROMIUM_HOME="/usr/$(get_libdir)/ungoogled-chromium-browser${browser_suffix}"
- exeinto "${CHROMIUM_HOME}"
- doexe out/Release/chrome
-
- #newexe out/Release/chrome_sandbox chrome-sandbox
- #fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
-
- use enable-driver && doexe out/Release/chromedriver
-
- #* https://github.com/ungoogled-software/ungoogled-chromium/pull/3563
- doexe out/Release/chrome_crashpad_handler
-
- if use convert-dict; then
- newexe "${FILESDIR}/update-dicts.sh" update-dicts.sh
- doexe out/Release/convert_dict
- fi
-
- ozone_auto_session () {
- use X && use wayland && ! use headless && echo true || echo false
- }
-
- cat <<- EOF > "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
- #!/bin/bash
- # Wrapper to launch slotted Chromium via the chromium-common launcher script.
- export CHROME_DESKTOP="ungoogled-chromium-browser${browser_suffix}.desktop"
- export CHROME_EXEC_NAME="ungoogled-chromium-browser${browser_suffix}"
- export CHROME_VERSION_EXTRA="${SLOT}"
- export CHROME_WRAPPER="\$(readlink -f "\$0")"
- export OZONE_AUTO_SESSION=$(ozone_auto_session)
-
- exec /usr/libexec/chromium/chromium-launcher.sh "\$@"
- EOF
-
- chmod 755 "${D}${CHROMIUM_HOME}/chromium-launcher.sh" || die
-
- # It is important that we name the target "chromium-browser",
- # xdg-utils expect it; bug #355517.
- dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium-browser${browser_suffix}
- # keep the old symlink around for consistency
- dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/ungoogled-chromium${browser_suffix}
-
- use enable-driver && dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/ungoogled-chromedriver${browser_suffix}
-
- pushd out/Release/locales > /dev/null || die
- chromium_remove_language_paks
- popd > /dev/null || die
-
- insinto "${CHROMIUM_HOME}"
- doins out/Release/*.bin
- doins out/Release/*.pak
- doins -r out/Release/hyphen-data
-
- if use bindist; then
- # We built libffmpeg as a component library, but we can't distribute it
- # with proprietary codec support. Remove it and make a symlink to the requested
- # system library.
- rm -f out/Release/libffmpeg.so \
- || die "Failed to remove bundled libffmpeg.so (with proprietary codecs)"
- # symlink the libffmpeg.so from either ffmpeg-chromium or ffmpeg[chromium].
- einfo "Creating symlink to libffmpeg.so from $(usex ffmpeg-chromium ffmpeg-chromium ffmpeg[chromium])..."
- dosym ../chromium/libffmpeg.so$(usex ffmpeg-chromium .${PV%%\.*} "") \
- /usr/$(get_libdir)/ungoogled-chromium-browser/libffmpeg.so
- fi
-
- (
- shopt -s nullglob
- local files=(out/Release/*.so out/Release/*.so.[0-9])
- [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
- )
-
- if ! use system-icu && ! use headless; then
- doins out/Release/icudtl.dat
- fi
-
- doins -r out/Release/locales
- #doins -r out/Release/MEIPreload
-
- # Install vk_swiftshader_icd.json; bug #827861
- doins out/Release/vk_swiftshader_icd.json
-
- if [[ -d out/Release/swiftshader ]]; then
- insinto "${CHROMIUM_HOME}/swiftshader"
- doins out/Release/swiftshader/*.so
- fi
-
- use widevine && dosym WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so "${CHROMIUM_HOME}/libwidevinecdm.so"
-
- # Install icons
- local branding size
- for size in 16 24 32 48 64 128 256 ; do
- case ${size} in
- 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
- *) branding="chrome/app/theme/chromium" ;;
- esac
- newicon -s ${size} "${branding}/product_logo_${size}.png" \
- ungoogled-chromium-browser${browser_suffix}.png
- done
-
- # Install desktop entry
- domenu out/Release/ungoogled-chromium-browser${browser_suffix}.desktop
-
- # Install GNOME default application entry (bug #303100).
- insinto /usr/share/gnome-control-center/default-apps
- doins out/Release/ungoogled-chromium-browser${browser_suffix}.xml
-
- # Install AppStream metadata
- insinto /usr/share/appdata
- doins out/Release/ungoogled-chromium-browser${browser_suffix}.appdata.xml
-
- # Install manpage; bug #684550
- doman out/Release/ungoogled-chromium-browser${browser_suffix}.1
- dosym ungoogled-chromium-browser${browser_suffix}.1 /usr/share/man/man1/ungoogled-chromium${browser_suffix}.1
-
- readme.gentoo_create_doc
-}
-
-pkg_postrm() {
- xdg_icon_cache_update
- xdg_desktop_database_update
-}
-
-pkg_postinst() {
- xdg_icon_cache_update
- xdg_desktop_database_update
- readme.gentoo_print_elog
-
- if use !headless && [[ -z "${REPLACING_VERSIONS}" ]]; then
- if use vaapi; then
- elog "Hardware-accelerated video decoding configuration:"
- elog
- elog "Chromium supports multiple backends for hardware acceleration. To enable one,"
- elog " Add to CHROMIUM_FLAGS in /etc/chromium/default:"
- elog
- elog "1. VA-API with OpenGL (recommended for most users):"
- elog " --enable-features=AcceleratedVideoDecodeLinuxGL"
- elog " VaapiVideoDecoder may need to be added as well, but try without first."
- elog
- if use wayland; then
- elog "2. Enhanced Wayland/EGL performance:"
- elog " --enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"
- elog
- fi
- if use X; then
- elog "$(usex wayland "3" "2"). VA-API with Vulkan:"
- elog " --enable-features=VaapiVideoDecoder,VaapiIgnoreDriverChecks,Vulkan,DefaultANGLEVulkan,VulkanFromANGLE"
- elog
- if use wayland; then
- elog " NOTE: Vulkan acceleration requires X11 and will not work under Wayland sessions."
- elog " Use OpenGL-based acceleration instead when running under Wayland."
- elog
- fi
- fi
- elog "Additional options:"
- elog " To enable hardware-accelerated encoding (if supported)"
- elog " add 'AcceleratedVideoEncoder' to your feature list"
- elog " VaapiIgnoreDriverChecks bypasses driver compatibility checks"
- elog " (may be needed for newer/unsupported hardware)"
- elog
- else
- elog "This Chromium build was compiled without VA-API support, which provides"
- elog "hardware-accelerated video decoding."
- fi
- if use screencast; then
- elog "Screencast is disabled by default at runtime. Either enable it"
- elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
- elog "inside Chromium or add --enable-features=WebRTCPipeWireCapturer"
- elog "to CHROMIUM_FLAGS in /etc/chromium/default."
- elog
- elog "Additional setup may be required for screencasting to work."
- elog "See issue: https://github.com/PF4Public/gentoo-overlay/issues/314"
- fi
- if use gtk4; then
- elog "Chromium prefers GTK3 over GTK4 at runtime. To override this"
- elog "behaviour you need to pass --gtk-version=4, e.g. by adding it"
- elog "to CHROMIUM_FLAGS in /etc/chromium/default."
- fi
- if use widevine; then
- elog "widevine requires binary plugins, which are distributed separately"
- elog "Make sure you have www-plugins/chrome-binary-plugins installed"
- fi
- fi
-
- if systemd_is_booted && ! [[ -f "/etc/machine-id" ]]; then
- ewarn "The lack of an '/etc/machine-id' file on this system booted with systemd"
- ewarn "indicates that the Gentoo handbook was not followed to completion."
- ewarn ""
- ewarn "Chromium is known to behave unpredictably with this system configuration;"
- ewarn "please complete the configuration of this system before logging any bugs."
- fi
-
- # Stable slot doesn't change profile directory, and it's vanishingly unlikely that users will downgrade from dev.
- if [[ -n "${REPLACING_VERSIONS}" ]]; then
- local replacing_non_slotted=false
- # there could be more than one PVR
- for version in ${REPLACING_VERSIONS}; do
- if ver_test "${version}" -le "145.0.7632.116"; then
- replacing_non_slotted=true
- break
- fi
- done
- if ${replacing_non_slotted}; then
- ewarn "This version of Chromium has replaced a non-slotted ebuild."
- if [[ ${SLOT} != "stable" ]]; then
- ewarn "This channel has its own profile directory, so your existing profile will not be used."
- ewarn "To use your existing profile, either copy or move it to the new location."
- ewarn "See https://wiki.gentoo.org/wiki/Chromium#Profile_Directories for more information."
- ewarn ""
- fi
- ewarn "Any existing Progressive Web Apps (PWAs) will need to be reinstalled,"
- ewarn "or have the path in the desktop files updated to point to the new wrapper script."
- fi
- fi
-}
-
-eapply_wrapper () {
- if [ ! -z "${NODIE}" ]; then
- nonfatal eapply "$@"
- else
- eapply "$@"
- fi
-}
-
-git_wrapper () {
- if [ ! -z "${NODIE}" ]; then
- git "$@"
- else
- git "$@" || die
- fi
-}
-
-filter_wrapper () {
- einfo "Applying ${i##*/}"
- #? fuzz factor of 3 is OK?
- if [ ! -z "${NODIE}" ]; then
- filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1
- else
- filterdiff -p1 "${@:2}" < "$1" | patch -F 3 -p1 || die
- fi
-}
diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.52_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.52_p1.ebuild
index 0551e2a407d6..c63dd5e802bd 100644
--- a/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.52_p1.ebuild
+++ b/www-client/ungoogled-chromium/ungoogled-chromium-153.0.8010.52_p1.ebuild
@@ -110,8 +110,8 @@ LICENSE+=" IJG ISC LGPL-2 LGPL-2.1 MIT MPL-1.1 MPL-2.0 Ms-PL PSF-2 SGI-B-2.0 SSL
LICENSE+=" Unicode-DFS-2015 Unlicense UoI-NCSA ZLIB libtiff openssl"
LICENSE+=" cromite? ( GPL-3 )"
-SLOT="beta"
-KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+SLOT="stable"
+KEYWORDS="amd64 ~arm64 ~ppc64 ~x86"
IUSE_SYSTEM_LIBS="abseil-cpp av1 brotli crc32c double-conversion ffmpeg +harfbuzz icu jsoncpp +libusb libvpx +openh264 openjpeg re2 snappy woff2 +zstd"
IUSE="+X bindist bluetooth bundled-toolchain cfi convert-dict cups custom-cflags debug ffmpeg-chromium enable-driver gtk4 hangouts headless kerberos +libcxx nvidia +official optimize-thinlto optimize-webui override-data-dir pax-kernel pgo"
diff --git a/www-servers/gunicorn/gunicorn-26.1.0.ebuild b/www-servers/gunicorn/gunicorn-26.1.0.ebuild
index 733f5e7a3f88..357cab7ed949 100644
--- a/www-servers/gunicorn/gunicorn-26.1.0.ebuild
+++ b/www-servers/gunicorn/gunicorn-26.1.0.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="MIT PSF-2"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
RDEPEND="
dev-python/packaging[${PYTHON_USEDEP}]
diff --git a/x11-misc/sddm/Manifest b/x11-misc/sddm/Manifest
index 6b8f8fb44b1c..369be55546d9 100644
--- a/x11-misc/sddm/Manifest
+++ b/x11-misc/sddm/Manifest
@@ -2,3 +2,4 @@ DIST sddm-0.21.0-pam.tar.xz 676 BLAKE2B 06a79f74a5833eca9877df4be8639311382d1306
DIST sddm-0.21.0_p20240723.tar.gz 3557578 BLAKE2B b92feb20a39eaf34822b077fcb8b89a100ff65814f9b523b2a1a0ffd3592edf2e86fa8fbdfcd8b592756a0b4baf0b085e8c7b4ad2aaa2f08b90e25e580df9925 SHA512 1ea2f758099f86086aebf05a77b176227475c1eb9c21c77bc99b9bb5a2882ce087e020ae6a11585b793fe09a3567e0ea4d0c1632a5823b7be83e33882964de48
DIST sddm-0.21.0_p20250502-4fe234bd.tar.gz 3558357 BLAKE2B 6b013f0edfa1093f37663dcda6c8fe050b951f53a80771c44bcb39f4595e1a6194ceb18167716018b6ef7dee8bb4a486ba4158062ddd7eaa90ed09db98235be0 SHA512 434e081ba06e38b8a4368d90dcf166c5ed955fe142ab377d56232777dde7fcd972f46d99131270e71676160bb179f4245dbed9621dfb40a5dac7bbbd18e510f9
DIST sddm-0.21.0_p20251101-dfa5315f.tar.gz 3558488 BLAKE2B c7d5c2dd5b8e8f306024715e4654c41db8a4914f23657ab3a81e0729ae5a263db9d6323f197e44207a41bcf4b6b1d0cb943a2642fb880fac926fa49063007a7b SHA512 e8a16f6e0cc0f314a545431d84c59ab1cc77e323d31a53181d6e83aaca8ecaf014f8f9fefed2b86ba632f21878c8d94501ed1714134f2c83d68711e93ab4ba6c
+DIST sddm-0.21.0_p20260819-da0b64d8.tar.gz 3559093 BLAKE2B 663b1856b3d16000865b1f77e7fedfbaa9d42e371db874b3f4a009384cf1049ce8ee587e5778b2e85aaf3c17eea87e3f4ff5d5bae628a2f1a8e8eb7cd1f3eaed SHA512 910674edb48249965ca24bbdfe8a8ee8a573b62ef20d16bf052ba75d6c10629aa5fa7a7a8932b834d3d48ddda50ee3110213ba23d442afa17a7a90788bddd20c
diff --git a/x11-misc/sddm/files/sddm-0.21.0_p20251101-cmake-minreqver-3.16.patch b/x11-misc/sddm/files/sddm-0.21.0_p20251101-cmake-minreqver-3.16.patch
index 90db6f1a621c..53d19fd0c53f 100644
--- a/x11-misc/sddm/files/sddm-0.21.0_p20251101-cmake-minreqver-3.16.patch
+++ b/x11-misc/sddm/files/sddm-0.21.0_p20251101-cmake-minreqver-3.16.patch
@@ -14,7 +14,7 @@ index 1b5f54a..5417b9e 100644
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.5)
-+cmake_minimum_required(VERSION 3.10..3.31)
++cmake_minimum_required(VERSION 3.16)
project(SDDM)
diff --git a/x11-misc/sddm/files/sddm-0.21.0_p20260819-dont-request-vt-signal-delivery.patch b/x11-misc/sddm/files/sddm-0.21.0_p20260819-dont-request-vt-signal-delivery.patch
new file mode 100644
index 000000000000..bf0d23ea0e89
--- /dev/null
+++ b/x11-misc/sddm/files/sddm-0.21.0_p20260819-dont-request-vt-signal-delivery.patch
@@ -0,0 +1,34 @@
+Source: https://github.com/sddm/sddm/pull/2210
+
+From: Gleb Popov <6yearold@gmail.com>
+Date: Mon, 3 Aug 2026 18:33:32 +0300
+Subject: [PATCH] UserSession: Don't request VT signal delivery
+
+The UserSession::childModifier() hook is executed after the fork() call,
+right before execv(). This means the we're wearing the child's PID already.
+The VirtualTerminal::jumpToVt() function arms the VT_SETMODE ioctl on the
+target VT, asking the kernel to deliver signals when the VT gets switched
+to/from. It then arranges signal handlers for these signals. However, we
+soon enough call execv, and all our handlers get purged, while kernel still
+thinks it should deliver signals to the user session process.
+
+At least on FreeBSD this change fixes an issue when starting a Wayland session
+results in a quick crash - it gets a signal it isn't prepare for receiving and
+gets killed.
+---
+ src/helper/UserSession.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/helper/UserSession.cpp b/src/helper/UserSession.cpp
+index 03fd396ee..aaaf797ed 100644
+--- a/src/helper/UserSession.cpp
++++ b/src/helper/UserSession.cpp
+@@ -229,7 +229,7 @@ namespace SDDM {
+ }
+
+ if (vtNumber > 0)
+- VirtualTerminal::jumpToVt(vtNumber, x11UserSession);
++ VirtualTerminal::jumpToVt(vtNumber, true);
+ }
+
+ #ifdef Q_OS_LINUX
diff --git a/x11-misc/sddm/sddm-0.21.0_p20260819.ebuild b/x11-misc/sddm/sddm-0.21.0_p20260819.ebuild
new file mode 100644
index 000000000000..7bb7297b4027
--- /dev/null
+++ b/x11-misc/sddm/sddm-0.21.0_p20260819.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PAM_TAR="${PN}-0.21.0-pam"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
+else
+ COMMIT=da0b64d8e2378c4bce16cbea6cac2ffc89ad1a4a
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${COMMIT}.tar.gz -> ${P}-${COMMIT:0:8}.tar.gz"
+ S="${WORKDIR}/${PN}-${COMMIT}"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
+
+inherit cmake linux-info pam systemd tmpfiles
+
+DESCRIPTION="Simple Desktop Display Manager"
+HOMEPAGE="https://github.com/sddm/sddm"
+SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PAM_TAR}.tar.xz"
+
+LICENSE="GPL-2+ MIT CC-BY-3.0 CC-BY-SA-3.0 public-domain"
+SLOT="0"
+IUSE="+elogind systemd test"
+
+REQUIRED_USE="^^ ( elogind systemd )"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-group/sddm
+ acct-user/sddm
+ dev-qt/qtbase:6[dbus,gui,network]
+ dev-qt/qtdeclarative:6
+ sys-libs/pam
+ x11-libs/libXau
+ x11-libs/libxcb:=
+ elogind? (
+ sys-auth/elogind[pam]
+ sys-power/upower
+ )
+ systemd? ( sys-apps/systemd:=[pam] )
+"
+RDEPEND="${DEPEND}
+ gui-apps/sddm-gentoo-config
+ !systemd? ( gui-libs/display-manager-init )
+"
+BDEPEND="
+ dev-python/docutils
+ dev-qt/qttools[linguist]
+ kde-frameworks/extra-cmake-modules:0
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # Downstream patches
+ "${FILESDIR}/${PN}-0.20.0-respect-user-flags.patch"
+ "${FILESDIR}/${PN}-0.21.0_p20250310-Xsession-xinitrc.patch" # bug 611210
+ "${FILESDIR}/${PN}-0.21.0_p20251101-cmake-minreqver-3.16.patch" # pending upstream, bug 964439
+ "${FILESDIR}/${PN}-0.21.0_p20251101-fix-restart-greeter.patch" # pending upstream
+ "${FILESDIR}/${P}-dont-request-vt-signal-delivery.patch" # pending upstream, bug 966586 (?)
+ # thx opensuse
+ "${FILESDIR}/${PN}-0.21.0_p20250310-set-XAUTHLOCALHOSTNAME.patch" # bug 913862
+ "${FILESDIR}/${PN}-0.21.0_p20251101-fix-terminal-clearing.patch"
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~DRM"
+ use kernel_linux && linux-info_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack
+ default
+}
+
+src_prepare() {
+ cmake_src_prepare
+
+ if ! use test; then
+ sed -e "/^find_package/s/ Test//" -i CMakeLists.txt || die
+ cmake_comment_add_subdirectory test
+ fi
+
+ if use systemd; then
+ sed -e "/pam_elogind.so/s/elogind/systemd/" \
+ -i "${WORKDIR}"/${PAM_TAR}/${PN}-greeter.pam || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_MAN_PAGES=ON
+ -DBUILD_WITH_QT6=ON
+ -DDBUS_CONFIG_FILENAME="org.freedesktop.sddm.conf"
+ -DRUNTIME_DIR=/run/sddm
+ -DSYSTEMD_TMPFILES_DIR="/usr/lib/tmpfiles.d"
+ -DNO_SYSTEMD=$(usex !systemd)
+ -DUSE_ELOGIND=$(usex elogind)
+ )
+
+ if use elogind; then
+ mycmakeargs+=(
+ # try to use VT7 first.
+ # Keep the same as CHECKVT from display-manager
+ -DSDDM_INITIAL_VT=7
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # with systemd logs are sent to journald, so no point to bother in that case
+ if ! use systemd; then
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/sddm.logrotate" sddm
+ fi
+
+ newpamd "${WORKDIR}"/${PAM_TAR}/${PN}.pam ${PN}
+ newpamd "${WORKDIR}"/${PAM_TAR}/${PN}-autologin.pam ${PN}-autologin
+ newpamd "${WORKDIR}"/${PAM_TAR}/${PN}-greeter.pam ${PN}-greeter
+}
+
+pkg_postinst() {
+ tmpfiles_process "${PN}.conf"
+
+ elog "NOTE: If SDDM startup appears to hang then entropy pool is too low."
+ elog "This can be fixed by configuring one of the following:"
+ elog " - Enable CONFIG_RANDOM_TRUST_CPU in linux kernel"
+ elog " - # emerge sys-apps/haveged && rc-update add haveged boot"
+ elog " - # emerge sys-apps/rng-tools && rc-update add rngd boot"
+ elog
+ elog "SDDM example config can be shown with:"
+ elog " ${EROOT}/usr/bin/sddm --example-config"
+ elog "Use ${EROOT}/etc/sddm.conf.d/ directory to override specific options."
+ elog
+ elog "For more information on how to configure SDDM, please visit the wiki:"
+ elog " https://wiki.gentoo.org/wiki/SDDM"
+ if has_version x11-drivers/nvidia-drivers; then
+ elog
+ elog " Nvidia GPU owners in particular should pay attention"
+ elog " to the troubleshooting section."
+ fi
+
+ systemd_reenable sddm.service
+}
diff --git a/x11-terms/xterm/xterm-410.ebuild b/x11-terms/xterm/xterm-410.ebuild
index 0bd50d3657c2..1cd27d2a68d0 100644
--- a/x11-terms/xterm/xterm-410.ebuild
+++ b/x11-terms/xterm/xterm-410.ebuild
@@ -13,7 +13,7 @@ SRC_URI+=" verify-sig? ( https://invisible-island.net/archives/${PN}/${P}.tgz.as
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
+KEYWORDS="~alpha ~amd64 arm arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos ~x64-solaris"
IUSE="+openpty sixel toolbar truetype unicode Xaw3d xinerama"
DEPEND="
diff --git a/x11-terms/zutty/zutty-0.16.ebuild b/x11-terms/zutty/zutty-0.16.ebuild
index 53ec05c94ec4..67863b8805f2 100644
--- a/x11-terms/zutty/zutty-0.16.ebuild
+++ b/x11-terms/zutty/zutty-0.16.ebuild
@@ -16,7 +16,7 @@ S="${WORKDIR}"/${P}-${MY_COMMIT}
LICENSE="GPL-3+"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
# It is possible to run the tests using virtualx, but it seems to take
# screenshots of the terminal window, and compares checksums that never
diff --git a/x11-themes/adwaita-icon-theme/Manifest b/x11-themes/adwaita-icon-theme/Manifest
index 1a755386a17c..6c57bb403270 100644
--- a/x11-themes/adwaita-icon-theme/Manifest
+++ b/x11-themes/adwaita-icon-theme/Manifest
@@ -1,4 +1,4 @@
DIST adwaita-icon-theme-3.32.0.tar.xz 18540012 BLAKE2B a82ca6758cdbf459ac617d3b3d834e4147c3a3c5e6ca7c705ed2d16e8cf0a1255f5ae999d7e930b9716585b8c498c220f1ab40fec929dde7679efd56f3b18a45 SHA512 9609732cd51c6794d4d86598818bb2a589b0f4b6b795e57f3507dad69b21ef1b2fc2e83e24e937428bbace32fcccf587a5771cbc02c5768206e704f0456a6d1d
-DIST adwaita-icon-theme-48.1.tar.xz 4516908 BLAKE2B 4b7ece869a78f12486a85cf4f6b682479f9dc7ce1453cec2f8653d3bcee575d4240d3bff83e7e83ef55424ca37443cc2806b4f6c86e6f8fa445301ebd4317300 SHA512 1d116599d5397a9dbc7e580fe78ba675b2d6e055e2c6387c08b4f8a646e989a4e5b04a6ff0d8d357422ea7100aefc54c568abf37251f7927ae081ac4334742db
DIST adwaita-icon-theme-49.0.tar.xz 4515480 BLAKE2B 9f4817a28b469a05731e25164290ce469f6940b343178a22a9b3043d9a84499cf640380edd02b9e24baf74b623501a50491f86b3d79845a5e02ef5af9b832edc SHA512 79a283bfdef5d3e9faaf6be3f41dc2ae55f676eb798cd7ce41d07204ff831c76e6ee457733bd9d08b9bad8dcbaddddf3e8bd262285579b5a8ed9944ffd4493c7
+DIST adwaita-icon-theme-50.0.tar.xz 4517092 BLAKE2B 7e2c417eb41cbfecd80249e173340080be4510467515ec2811b846d7d5b850c27ae837a089016a02d8043c92c49f558f473d11db46e213012f68f473e66eeadc SHA512 4191943fbbcb9af99537e4b8321375f3bbcee8fe14e5425ef717a8bfe4d410b8d6a86ee1a08686bfb9b918adfe459cf62bc4eae8af9b1c020719bdb0541a3d9f
DIST tango-gentoo-v1.1.tar.gz 29322 BLAKE2B 83fa2bf37727e60851dd679054fe1b153ebfea58c9a9a40f891f7d68d3b047b02e8effa1d1b4e08d64500a2072ce7200f159c92a352da7124de27e1b05bb6027 SHA512 87d47ddab68361db6d99866c51705dcb3e198f8345a1096859acf2c6cca5099dd23c7fb30d124f52c4933ea38fd45fadffbbe6ecbdfa84f5b60938a4824f9045
diff --git a/x11-themes/adwaita-icon-theme/adwaita-icon-theme-3.32.0.ebuild b/x11-themes/adwaita-icon-theme/adwaita-icon-theme-3.32.0.ebuild
index c202a441e2ff..105759a63bf7 100644
--- a/x11-themes/adwaita-icon-theme/adwaita-icon-theme-3.32.0.ebuild
+++ b/x11-themes/adwaita-icon-theme/adwaita-icon-theme-3.32.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=7
@@ -17,10 +17,11 @@ LICENSE="
"
SLOT="0"
IUSE="branding"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~s390 ~sparc x86 ~x64-solaris"
+KEYWORDS="~alpha arm ~hppa ~s390 ~sparc x86"
# gtk+:3 is needed for build for the gtk-encode-symbolic-svg utility
-# librsvg is needed for gtk-encode-symbolic-svg to be able to read the source SVG via its pixbuf loader and at runtime for rendering scalable icons shipped by the theme
+# librsvg is needed for gtk-encode-symbolic-svg to be able to read the source SVG via
+# its pixbuf loader and at runtime for rendering scalable icons shipped by the theme
DEPEND=">=x11-themes/hicolor-icon-theme-0.10"
RDEPEND="${DEPEND}
gnome-base/librsvg:2
diff --git a/x11-themes/adwaita-icon-theme/adwaita-icon-theme-48.1.ebuild b/x11-themes/adwaita-icon-theme/adwaita-icon-theme-50.0.ebuild
index ec25aae54b25..7840b8be2180 100644
--- a/x11-themes/adwaita-icon-theme/adwaita-icon-theme-48.1.ebuild
+++ b/x11-themes/adwaita-icon-theme/adwaita-icon-theme-50.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
@@ -16,7 +16,7 @@ LICENSE="
branding? ( CC-BY-SA-4.0 )
"
SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="branding"
@@ -58,19 +58,3 @@ src_prepare() {
src_test() {
:; # No tests
}
-
-src_install() {
- meson_src_install
-
- # Gentoo uses the following location for cursors too, but keep
- # upstream path to prevent issues like bugs #838451, #834277, #834001
- dosym ../../../../usr/share/icons/Adwaita/cursors /usr/share/cursors/xorg-x11/Adwaita
-}
-
-pkg_preinst() {
- # Needed until bug #834600 is solved
- if [[ -d "${EROOT}"/usr/share/cursors/xorg-x11/Adwaita ]] ; then
- rm -r "${EROOT}"/usr/share/cursors/xorg-x11/Adwaita || die
- fi
- xdg_pkg_preinst
-}
diff --git a/x11-themes/numix-icon-theme/numix-icon-theme-25.10.26.ebuild b/x11-themes/numix-icon-theme/numix-icon-theme-25.10.26.ebuild
index 1b8765f6ae23..65f30cb0ed9e 100644
--- a/x11-themes/numix-icon-theme/numix-icon-theme-25.10.26.ebuild
+++ b/x11-themes/numix-icon-theme/numix-icon-theme-25.10.26.ebuild
@@ -11,7 +11,7 @@ SRC_URI="https://github.com/numixproject/numix-icon-theme/archive/${PV}.tar.gz -
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 ~arm64 ~riscv x86"
src_install() {
insinto /usr/share/icons
diff --git a/x11-wm/i3/i3-4.24.ebuild b/x11-wm/i3/i3-4.24.ebuild
index 9e06a45c1d2a..46a87f1460bc 100644
--- a/x11-wm/i3/i3-4.24.ebuild
+++ b/x11-wm/i3/i3-4.24.ebuild
@@ -14,7 +14,7 @@ if [[ "${PV}" = *9999 ]]; then
inherit git-r3
else
SRC_URI="https://i3wm.org/downloads/${P}.tar.xz"
- KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86"
+ KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
fi
LICENSE="BSD"
diff --git a/x11-wm/mutter/Manifest b/x11-wm/mutter/Manifest
index c6d4c96f6a66..ec4d750bb35a 100644
--- a/x11-wm/mutter/Manifest
+++ b/x11-wm/mutter/Manifest
@@ -1,6 +1,4 @@
-DIST mutter-48.5.tar.xz 8387448 BLAKE2B fb963267d4651de95297a361cb191b43046b428e82fabc3823fea9f4189714e479a0f0e337948925d2644c074751402ac7c80b1b133d814fdf3a0e6adc1629c3 SHA512 a2f50199ad9aae0e59125bb841c2c7c471d472ffedda41ba035d645fd407a20281394b031d40f39a616ca65625d43b39dcac6d3eb2970b5df3b3f0e031703d69
-DIST mutter-48.7.tar.xz 8386684 BLAKE2B ef1c888ef09721f10a9a9dafac40f95fb983fac6d6796928cf5564efc088e89d85324398f3da2948731bb8176f1c9f7ccbf9e3d44e6015a4ba30a82600e862bc SHA512 06105bfa117f646aae819c9a522f6799446d03a157c140b01d39810e9a19c8963dd7aa1a6a46f70f68b122a8105e5e325642b8ddf19e31efa253f1d66693a3ce
DIST mutter-48.8.tar.xz 8391472 BLAKE2B cae07538eb5c5aa68e86cccd7d340fc5a31e9f3d449db6fd5ef169bfe4c87d5ccfa5943e85ff17a37ce1e1a841a14a0e844bf22f44a4a23bb4f2ba58deb9af2d SHA512 7e43bbc44bae8de40b719133c9dc58dd93246fd71b1e9c441c603d97872c9eeed03fe3dec3027c002b7be4abd58e5d14bd605fa42ef4c82158ce767744f680b3
-DIST mutter-49.5.tar.xz 8511356 BLAKE2B e0835d10b5f39efe407f996f79edfab11ee0d6494fc66fedb5bda247e4a4a194791ca2964cb88de31c4ba94d352f85fcf2400741adb5b519d72f5c269bd047e7 SHA512 cc23bd7184863fba7bc9a0989c2244c739ee07c6d59317b3765e60730a01a66c07769fc0ff5c30fd9de0a96d50055f1618fdaf94e42810196972755bb885d156
DIST mutter-49.6.tar.xz 8521708 BLAKE2B 44ef6c7f0841090a4a9d955ef8fc4fba3009b6e6066b073e3fc517b6631457d874ae5e6cf2b7195bed9bd57ef6ca51d3153b6b2d12a1659d6b5f72b7f8ebbb44 SHA512 3b4addc3106bc2f1aa47f76dcb8e5a7fabcf77626186d152804dd4558316bfa10ec22a6c19ff9d0b6a84dfda70fa06b0d31dc58821719ea7cf1954bcfc50dfa2
DIST mutter-49.7.tar.xz 8524416 BLAKE2B 0555fdeb16f2ec3fbb2e9c755d5682a69ee026911cce54a1648c2050c68eb827e87a327571c6457c4230873f1271a4399ef6faf57e523f0524fb1767a5c7f031 SHA512 849e7a4d58c3545f77b883dcef665f5124dd0c7e1303c8478f7cd3b1a6f678cbb016f3478c96faec80e86123c8b633efa773c8fd0818b5bc04727e176f93294e
+DIST mutter-50.5.tar.xz 8466124 BLAKE2B 8eb5664ba80821a6d858be49f877fcabd6199db035b8a151d70e43c64d4b6bfb2fff453310a6a8827bfa1122515a0840585768d8b17e5c37a7e3879bb4300532 SHA512 60eb92fd36adcc9e6dfe90c9a6a44745cb955dbdab0344e9a2ece1cf2ed558899cf25e6e4a2de144e75289fecfc977644a97be80ff5996859a346d8b2f2ba2fd
diff --git a/x11-wm/mutter/files/mutter-49.5-update-kms-resource-lists.patch b/x11-wm/mutter/files/mutter-49.5-update-kms-resource-lists.patch
deleted file mode 100644
index 42de4f5cf3e1..000000000000
--- a/x11-wm/mutter/files/mutter-49.5-update-kms-resource-lists.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From de07dcb15332e0cbca1cf99d14809ad1f7b6b9ce Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
-Date: Thu, 7 May 2026 16:25:21 +0200
-Subject: [PATCH] kms/connector: Update KMS resource lists in
- update_connector_in_impl
-
-meta_kms_impl_device_update_states may modify the MetaKmsImplDevice
-resource lists, which may result in the corresponding MetaKmsDevice
-lists pointing to already-destroyed objects.
-
-Use meta_kms_device_update_states_in_impl instead, which updates the
-latter lists to match the former after calling
-meta_kms_impl_device_update_states.
-
-Fixes use after free if meta_kms_impl_device_update_states removes
-a resource (most likely a connector).
-
-Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4796
-Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5061>
----
- src/backends/native/meta-kms-connector.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/backends/native/meta-kms-connector.c b/src/backends/native/meta-kms-connector.c
-index 1a69a6319c..5bdd246f0e 100644
---- a/src/backends/native/meta-kms-connector.c
-+++ b/src/backends/native/meta-kms-connector.c
-@@ -1111,10 +1111,10 @@ update_connector_in_impl (MetaThreadImpl *thread_impl,
- GError **error)
- {
- MetaKmsConnector *connector = user_data;
-+ MetaKmsDevice *device = meta_kms_connector_get_device (connector);
- MetaKmsResourceChanges changes;
-
-- changes = meta_kms_impl_device_update_states (connector->impl_device,
-- 0, connector->id);
-+ changes = meta_kms_device_update_states_in_impl (device, 0, connector->id);
-
- return GUINT_TO_POINTER (changes);
- }
---
-2.53.0
-
diff --git a/x11-wm/mutter/files/mutter-50.3-meta-wayland-touch.patch b/x11-wm/mutter/files/mutter-50.3-meta-wayland-touch.patch
new file mode 100644
index 000000000000..16ce8af371d5
--- /dev/null
+++ b/x11-wm/mutter/files/mutter-50.3-meta-wayland-touch.patch
@@ -0,0 +1,9 @@
+Fixes crash with touchscreens when attempting to drag windows
+
+https://gitlab.gnome.org/GNOME/mutter/-/work_items/4887
+
+--- a/src/wayland/meta-wayland-touch.c
++++ b/src/wayland/meta-wayland-touch.c
+@@ -659,3 +659,3 @@
+- if (touch_info->focus_surface->surface == surface)
++ if (touch_info->focus_surface && touch_info->focus_surface->surface == surface)
diff --git a/x11-wm/mutter/metadata.xml b/x11-wm/mutter/metadata.xml
index c53f427275a5..79efd3cece15 100644
--- a/x11-wm/mutter/metadata.xml
+++ b/x11-wm/mutter/metadata.xml
@@ -10,7 +10,7 @@
<flag name="elogind">Rely on <pkg>sys-auth/elogind</pkg> as logind provider for Wayland sessions</flag>
<flag name="sysprof">Enable profiling data capture support using <pkg>dev-util/sysprof-capture</pkg>
</flag>
- <flag name="xwayland">Enable X11 application support in Wayland sessions</flag>
+ <flag name="xwayland">Enable <pkg>x11-base/xwayland</pkg> integration for running X11 applications under Wayland</flag>
</use>
<origin>baldeagleos-repo</origin>
</pkgmetadata>
diff --git a/x11-wm/mutter/mutter-48.5.ebuild b/x11-wm/mutter/mutter-48.5.ebuild
deleted file mode 100644
index c2834b0daa97..000000000000
--- a/x11-wm/mutter/mutter-48.5.ebuild
+++ /dev/null
@@ -1,269 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://mutter.gnome.org"
-LICENSE="GPL-2+"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
- SRC_URI=""
- SLOT="0/16" # This can get easily out of date, but better than 9967
-else
- KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86"
- SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-fi
-
-IUSE="bash-completion debug elogind gnome gtk-doc input_devices_wacom +introspection screencast sysprof systemd test udev wayland X +xwayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- || ( X wayland )
- gtk-doc? ( introspection )
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( screencast wayland )"
-RESTRICT="!test? ( test )"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# USE=libei was first introduced in xwayland-23.2.1; we min dep on that to ensure the [libei(+)] works right, as missing USE flag with
-# previous versions meant that it's not there, while the intention seems to be to make it always enabled without USE flag in the future;
-# this ensures have_enable_ei_portal is always there in xwayland.pc, which affects how Xwayland is launched, thus if it were toggled off
-# in Xwayland after mutter is installed, Xwayland would fail to be started by mutter. mutter already hard-depends on libei, so there's
-# really no extra deps here (besides xdg-desktop-portal, but we want that too, anyhow).
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-# dev-libs/wayland is always needed at build time due to https://bugs.gentoo.org/937632
-RDEPEND="
- >=media-libs/graphene-1.10.2[introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=x11-libs/cairo-1.14[X]
- >=x11-libs/pixman-0.42
- >=dev-libs/fribidi-1.0.0
- >=gnome-base/gsettings-desktop-schemas-47_beta[introspection?]
- >=dev-libs/glib-2.81.1:2
- gnome-base/gnome-settings-daemon
- >=x11-libs/libxkbcommon-1.8.0[X?]
- >=app-accessibility/at-spi2-core-2.46:2[introspection?]
- sys-apps/dbus
- >=x11-misc/colord-1.4.5:=
- >=media-libs/lcms-2.6:2
- >=media-libs/harfbuzz-2.6.0:=
- >=dev-libs/libei-1.3.901
- >=media-libs/libdisplay-info-0.2:=
-
- gnome? ( gnome-base/gnome-desktop:4= )
-
- >=media-libs/libcanberra-0.26
-
- media-libs/libglvnd
-
- >=dev-libs/wayland-1.23.0
- wayland? (
- >=dev-libs/wayland-protocols-1.41
-
- >=x11-libs/libdrm-2.4.118
- media-libs/mesa[gbm(+)]
- >=dev-libs/libinput-1.27.0:=
-
- elogind? ( sys-auth/elogind )
- xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? (
- >=virtual/libudev-232-r1:=
- >=dev-libs/libgudev-238
- )
- systemd? ( sys-apps/systemd )
- input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- screencast? ( >=media-video/pipewire-1.2.0:= )
- introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
- test? (
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- )
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 >=dev-util/sysprof-3.46.0 )
-"
-
-X11_CLIENT_DEPS="
- >=gui-libs/gtk-4.0.0:4[X,introspection?]
- media-libs/libglvnd[X]
- >=x11-libs/libX11-1.7.0
- >=x11-libs/libXcomposite-0.4
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- >=x11-libs/libXfixes-6
- >=x11-libs/libXi-1.7.4
- x11-misc/xkeyboard-config
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb:=
- x11-libs/libXinerama
- x11-libs/libXau
- >=x11-libs/startup-notification-0.7
-"
-
-RDEPEND+="
- X? (
- ${X11_CLIENT_DEPS}
- x11-libs/libICE
- x11-libs/libxkbfile
- x11-libs/libXtst
- x11-libs/libSM
- )
- wayland? ( xwayland? ( ${X11_CLIENT_DEPS} ) )
-"
-DEPEND="${RDEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-BDEPEND="
- dev-util/wayland-scanner
- >=dev-util/gdbus-codegen-2.80.5-r1
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- gtk-doc? ( >=dev-util/gi-docgen-2021.1 )
- test? (
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- >=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
- ')
- app-text/docbook-xml-dtd:4.5
- X? (
- gnome-extra/zenity
- x11-misc/xvfb-run
- )
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
- bash-completion? (
- app-shells/bash-completion
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/argcomplete[${PYTHON_USEDEP}]
- ')
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
-)
-
-python_check_deps() {
- if use test; then
- python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]" || return 1
- fi
- if use bash-completion; then
- python_has_version "dev-python/argcomplete[${PYTHON_USEDEP}]" || return 1
- fi
-}
-
-src_configure() {
- use debug && EMESON_BUILDTYPE=debug
- local emesonargs=(
- # Mutter X11 renderer only supports gles2 and GLX, thus do NOT pass
- #
- # -Dopengl_libname=libOpenGL.so.0
- #
- # while we build the x11 renderer, as we currently enable gles2 only
- # with USE=wayland and x11 renderer wouldn't find the needed GLX symbols
- # in a configuration where wayland is disabled, as libOpenGL doesn't
- # include them.
- #
- # See
- # - https://bugs.gentoo.org/835786
- # - https://forums.gentoo.org/viewtopic-p-8695669.html
-
- -Dopengl=true
- $(meson_use wayland gles2)
- #gles2_libname
- -Degl=true
- $(meson_use X glx)
- $(meson_use wayland)
- -Dfonts=true
- )
-
- if use wayland; then
- emesonargs+=(
- $(meson_use xwayland)
- )
- else
- emesonargs+=(
- -Dxwayland=false
- )
- fi
-
- if use elogind || use systemd; then
- emesonargs+=(
- -Dlogind=true
- )
- fi
-
- emesonargs+=(
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- $(meson_use gnome libgnome_desktop)
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dsound_player=true
- -Dstartup_notification=true
- $(meson_use X sm)
- $(meson_use introspection)
- $(meson_use gtk-doc docs)
- $(meson_use test cogl_tests)
- $(meson_use test clutter_tests)
- $(meson_use test mutter_tests)
- $(meson_feature test tests)
- -Dkvm_tests=false
- -Dtty_tests=false
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- $(meson_use X x11)
- $(meson_use bash-completion bash_completion)
-
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- # Reset variables to avoid issues from /etc/profile.d/flatpak.sh file
- gnome2_environment_reset
- export XDG_DATA_DIRS="${EPREFIX}"/usr/share
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test
-}
-
-pkg_postinst() {
- use udev && udev_reload
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- use udev && udev_reload
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-48.7.ebuild b/x11-wm/mutter/mutter-48.7.ebuild
deleted file mode 100644
index 1a56124b5950..000000000000
--- a/x11-wm/mutter/mutter-48.7.ebuild
+++ /dev/null
@@ -1,271 +0,0 @@
-# Copyright 1999-2026 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{13..14} )
-inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
-
-DESCRIPTION="GNOME compositing window manager based on Clutter"
-HOMEPAGE="https://mutter.gnome.org"
-LICENSE="GPL-2+"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
- SRC_URI=""
- SLOT="0/16" # This can get easily out of date, but better than 9967
-else
- KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86"
- SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
-fi
-
-IUSE="bash-completion debug elogind gnome gtk-doc input_devices_wacom +introspection screencast selinux sysprof systemd test udev wayland X +xwayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
-REQUIRED_USE="
- || ( X wayland )
- gtk-doc? ( introspection )
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( screencast wayland )"
-RESTRICT="!test? ( test )"
-
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# USE=libei was first introduced in xwayland-23.2.1; we min dep on that to ensure the [libei(+)] works right, as missing USE flag with
-# previous versions meant that it's not there, while the intention seems to be to make it always enabled without USE flag in the future;
-# this ensures have_enable_ei_portal is always there in xwayland.pc, which affects how Xwayland is launched, thus if it were toggled off
-# in Xwayland after mutter is installed, Xwayland would fail to be started by mutter. mutter already hard-depends on libei, so there's
-# really no extra deps here (besides xdg-desktop-portal, but we want that too, anyhow).
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
-# dev-libs/wayland is always needed at build time due to https://bugs.gentoo.org/937632
-RDEPEND="
- >=media-libs/graphene-1.10.2[introspection?]
- x11-libs/gdk-pixbuf:2
- >=x11-libs/pango-1.46[introspection?]
- >=x11-libs/cairo-1.14[X]
- >=x11-libs/pixman-0.42
- >=dev-libs/fribidi-1.0.0
- >=gnome-base/gsettings-desktop-schemas-47_beta[introspection?]
- >=dev-libs/glib-2.81.1:2
- gnome-base/gnome-settings-daemon
- >=x11-libs/libxkbcommon-1.8.0[X?]
- >=app-accessibility/at-spi2-core-2.46:2[introspection?]
- sys-apps/dbus
- >=x11-misc/colord-1.4.5:=
- >=media-libs/lcms-2.6:2
- >=media-libs/harfbuzz-2.6.0:=
- >=dev-libs/libei-1.3.901
- >=media-libs/libdisplay-info-0.2:=
-
- gnome? ( gnome-base/gnome-desktop:4= )
-
- >=media-libs/libcanberra-0.26
-
- media-libs/libglvnd
-
- >=dev-libs/wayland-1.23.0
- wayland? (
- >=dev-libs/wayland-protocols-1.41
-
- >=x11-libs/libdrm-2.4.118
- media-libs/mesa[gbm(+)]
- >=dev-libs/libinput-1.27.0:=
-
- elogind? ( sys-auth/elogind )
- xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? (
- >=virtual/libudev-232-r1:=
- >=dev-libs/libgudev-238
- )
- systemd? ( sys-apps/systemd )
- input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- screencast? ( >=media-video/pipewire-1.2.0:= )
- introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
- test? (
- >=x11-libs/gtk+-3.19.8:3[X,introspection?]
- )
- sysprof? ( >=dev-util/sysprof-capture-3.40.1:4 >=dev-util/sysprof-3.46.0 )
-"
-
-X11_CLIENT_DEPS="
- >=gui-libs/gtk-4.0.0:4[X,introspection?]
- media-libs/libglvnd[X]
- >=x11-libs/libX11-1.7.0
- >=x11-libs/libXcomposite-0.4
- x11-libs/libXcursor
- x11-libs/libXdamage
- x11-libs/libXext
- >=x11-libs/libXfixes-6
- >=x11-libs/libXi-1.7.4
- x11-misc/xkeyboard-config
- >=x11-libs/libXrandr-1.5.0
- x11-libs/libxcb:=
- x11-libs/libXinerama
- x11-libs/libXau
- >=x11-libs/startup-notification-0.7
-"
-
-RDEPEND+="
- X? (
- ${X11_CLIENT_DEPS}
- x11-libs/libICE
- x11-libs/libxkbfile
- x11-libs/libXtst
- x11-libs/libSM
- )
- wayland? ( xwayland? ( ${X11_CLIENT_DEPS} ) )
-"
-DEPEND="${RDEPEND}
- x11-base/xorg-proto
- sysprof? ( >=dev-util/sysprof-common-3.38.0 )
-"
-RDEPEND+=" selinux? ( sec-policy/selinux-wm )"
-BDEPEND="
- dev-util/wayland-scanner
- >=dev-util/gdbus-codegen-2.80.5-r1
- dev-util/glib-utils
- >=sys-devel/gettext-0.19.8
- virtual/pkgconfig
- gtk-doc? ( >=dev-util/gi-docgen-2021.1 )
- test? (
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- >=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
- ')
- app-text/docbook-xml-dtd:4.5
- X? (
- gnome-extra/zenity
- x11-misc/xvfb-run
- )
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
- )
- bash-completion? (
- app-shells/bash-completion
- ${PYTHON_DEPS}
- $(python_gen_any_dep '
- dev-python/argcomplete[${PYTHON_USEDEP}]
- ')
- )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-43.0-Disable-anonymous-file-test.patch
- "${FILESDIR}"/"${PN}"-48.6-trap-X-errors.patch
-)
-
-python_check_deps() {
- if use test; then
- python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]" || return 1
- fi
- if use bash-completion; then
- python_has_version "dev-python/argcomplete[${PYTHON_USEDEP}]" || return 1
- fi
-}
-
-src_configure() {
- use debug && EMESON_BUILDTYPE=debug
- local emesonargs=(
- # Mutter X11 renderer only supports gles2 and GLX, thus do NOT pass
- #
- # -Dopengl_libname=libOpenGL.so.0
- #
- # while we build the x11 renderer, as we currently enable gles2 only
- # with USE=wayland and x11 renderer wouldn't find the needed GLX symbols
- # in a configuration where wayland is disabled, as libOpenGL doesn't
- # include them.
- #
- # See
- # - https://bugs.gentoo.org/835786
- # - https://forums.gentoo.org/viewtopic-p-8695669.html
-
- -Dopengl=true
- $(meson_use wayland gles2)
- #gles2_libname
- -Degl=true
- $(meson_use X glx)
- $(meson_use wayland)
- -Dfonts=true
- )
-
- if use wayland; then
- emesonargs+=(
- $(meson_use xwayland)
- )
- else
- emesonargs+=(
- -Dxwayland=false
- )
- fi
-
- if use elogind || use systemd; then
- emesonargs+=(
- -Dlogind=true
- )
- fi
-
- emesonargs+=(
- $(meson_use wayland native_backend)
- $(meson_use screencast remote_desktop)
- $(meson_use gnome libgnome_desktop)
- $(meson_use udev)
- -Dudev_dir=$(get_udevdir)
- $(meson_use input_devices_wacom libwacom)
- -Dsound_player=true
- -Dstartup_notification=true
- $(meson_use X sm)
- $(meson_use introspection)
- $(meson_use gtk-doc docs)
- $(meson_use test cogl_tests)
- $(meson_use test clutter_tests)
- $(meson_use test mutter_tests)
- $(meson_feature test tests)
- -Dkvm_tests=false
- -Dtty_tests=false
- $(meson_use sysprof profiler)
- -Dinstalled_tests=false
- $(meson_use X x11)
- $(meson_use bash-completion bash_completion)
-
- #verbose # Let upstream choose default for verbose mode
- #xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
- #xwayland_grab_default_access_rules
- )
-
- if use wayland && use video_cards_nvidia; then
- emesonargs+=(
- -Degl_device=true
- -Dwayland_eglstream=true
- )
- else
- emesonargs+=(
- -Degl_device=false
- -Dwayland_eglstream=false
- )
- fi
-
- meson_src_configure
-}
-
-src_test() {
- # Reset variables to avoid issues from /etc/profile.d/flatpak.sh file
- gnome2_environment_reset
- export XDG_DATA_DIRS="${EPREFIX}"/usr/share
- glib-compile-schemas "${BUILD_DIR}"/data
- GSETTINGS_SCHEMA_DIR="${BUILD_DIR}"/data meson_src_test
-}
-
-pkg_postinst() {
- use udev && udev_reload
- xdg_pkg_postinst
- gnome2_schemas_update
-}
-
-pkg_postrm() {
- use udev && udev_reload
- xdg_pkg_postrm
- gnome2_schemas_update
-}
diff --git a/x11-wm/mutter/mutter-49.5-r1.ebuild b/x11-wm/mutter/mutter-50.5.ebuild
index 3d5972044c2f..a224263645b9 100644
--- a/x11-wm/mutter/mutter-49.5-r1.ebuild
+++ b/x11-wm/mutter/mutter-50.5.ebuild
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
PYTHON_COMPAT=( python3_{13..14} )
inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
@@ -13,42 +14,45 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
SRC_URI=""
- SLOT="0/17" # This can get easily out of date, but better than 9967
+ SLOT="0/18" # This can get easily out of date, but better than 9967
else
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
- SLOT="0/$(($(ver_cut 1) - 32))" # 0/libmutter_api_version - ONLY gnome-shell (or anything using mutter-clutter-<api_version>.pc) should use the subslot
+ # 0/libmutter_api_version - ONLY gnome-shell or anything using mutter-clutter-<api_version>.pc
+ # should use the subslot
+ SLOT="0/$(($(ver_cut 1) - 32))"
fi
-IUSE="bash-completion debug devkit elogind gnome gtk-doc input_devices_wacom +introspection screencast selinux sysprof systemd test udev +wayland X +xwayland video_cards_nvidia"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
+IUSE="bash-completion debug devkit elogind gnome gtk-doc input_devices_wacom +introspection
+screencast selinux sysprof systemd test video_cards_nvidia +xwayland"
+
+# native backend requires a logind provider
REQUIRED_USE="
- || ( X wayland )
- devkit? ( screencast wayland )
+ devkit? ( screencast )
gtk-doc? ( introspection )
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( screencast wayland )
- xwayland? ( wayland )"
+ ^^ ( elogind systemd )
+ test? ( screencast )"
RESTRICT="!test? ( test )"
-# gnome-settings-daemon is build checked, but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard gschema
-# USE=libei was first introduced in xwayland-23.2.1; we min dep on that to ensure the [libei(+)] works right, as missing USE flag with
-# previous versions meant that it's not there, while the intention seems to be to make it always enabled without USE flag in the future;
-# this ensures have_enable_ei_portal is always there in xwayland.pc, which affects how Xwayland is launched, thus if it were toggled off
-# in Xwayland after mutter is installed, Xwayland would fail to be started by mutter. mutter already hard-depends on libei, so there's
-# really no extra deps here (besides xdg-desktop-portal, but we want that too, anyhow).
-# v3.32.2 has many excessive or unused *_req variables declared, thus currently the dep order ignores those and goes via dependency() call order
+# gnome-settings-daemon is build checked but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard
+# gschema
+# USE=libei was first introduced in xwayland-23.2.1; we min dep on that to ensure the [libei(+)] works right, as
+# missing USE flag with previous versions meant that it's not there, while the intention seems to be to make it always
+# enabled without USE flag in the future; this ensures have_enable_ei_portal is always there in xwayland.pc, which
+# affects how Xwayland is launched, thus if it were toggled off in Xwayland after mutter is installed, Xwayland would
+# fail to be started by mutter. mutter already hard-depends on libei, so there's really no extra deps here (besides
+# xdg-desktop-portal, but we want that too, anyhow).
# dev-libs/wayland is always needed at build time due to https://bugs.gentoo.org/937632
RDEPEND="
>=media-libs/graphene-1.10.2[introspection?]
>=x11-libs/pango-1.46[introspection?]
- >=x11-libs/cairo-1.14[X]
+ >=x11-libs/cairo-1.14
>=x11-libs/pixman-0.42
>=gui-libs/gtk-4.14.0:4[introspection?]
>=dev-libs/fribidi-1.0.0
>=gnome-base/gsettings-desktop-schemas-47_beta[introspection?]
>=dev-libs/glib-2.81.1:2
gnome-base/gnome-settings-daemon
- >=x11-libs/libxkbcommon-1.8.0[X?]
+ >=x11-libs/libxkbcommon-1.8.0
>=app-accessibility/at-spi2-core-2.46:2[introspection?]
sys-apps/dbus
>=x11-misc/colord-1.4.5:=
@@ -68,24 +72,20 @@ RDEPEND="
media-libs/libglvnd
>=dev-libs/wayland-1.24.0
- wayland? (
- >=dev-libs/wayland-protocols-1.45
+ >=dev-libs/wayland-protocols-1.47
- >=x11-libs/libdrm-2.4.118
- media-libs/mesa[gbm(+)]
- >=dev-libs/libinput-1.27.0:=
+ >=x11-libs/libdrm-2.4.118
+ media-libs/mesa[gbm(+)]
+ >=dev-libs/libinput-1.30.0:=
- elogind? ( sys-auth/elogind )
- xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? (
- >=virtual/libudev-232-r1:=
- >=dev-libs/libgudev-238
- )
+ elogind? ( sys-auth/elogind )
+ xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
+ video_cards_nvidia? ( gui-libs/egl-wayland )
+ >=virtual/libudev-232-r1:=
+ >=dev-libs/libgudev-238
systemd? ( sys-apps/systemd )
input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- screencast? ( >=media-video/pipewire-1.2.7:= )
+ screencast? ( >=media-video/pipewire-1.6.0:= )
introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
test? (
>=x11-libs/gtk+-3.19.8:3[X,introspection?]
@@ -113,12 +113,9 @@ X11_CLIENT_DEPS="
"
RDEPEND+="
- X? (
+ xwayland? (
${X11_CLIENT_DEPS}
- x11-libs/libxkbfile
- x11-libs/libXtst
)
- wayland? ( xwayland? ( ${X11_CLIENT_DEPS} ) )
"
DEPEND="${RDEPEND}
x11-base/xorg-proto
@@ -140,15 +137,9 @@ BDEPEND="
>=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
')
app-text/docbook-xml-dtd:4.5
- X? (
- gnome-extra/zenity
- x11-misc/xvfb-run
- )
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
)
+ >=sys-kernel/linux-headers-4.4
+ x11-libs/libxcvt
bash-completion? (
app-shells/bash-completion
${PYTHON_DEPS}
@@ -159,7 +150,7 @@ BDEPEND="
"
PATCHES=(
- "${FILESDIR}"/${P}-update-kms-resource-lists.patch
+ "${FILESDIR}"/mutter-50.3-meta-wayland-touch.patch
)
python_check_deps() {
@@ -174,49 +165,13 @@ python_check_deps() {
src_configure() {
use debug && EMESON_BUILDTYPE=debug
local emesonargs=(
- # Mutter X11 renderer only supports gles2 and GLX, thus do NOT pass
- #
- # -Dopengl_libname=libOpenGL.so.0
- #
- # while we build the x11 renderer, as we currently enable gles2 only
- # with USE=wayland and x11 renderer wouldn't find the needed GLX symbols
- # in a configuration where wayland is disabled, as libOpenGL doesn't
- # include them.
- #
- # See
- # - https://bugs.gentoo.org/835786
- # - https://forums.gentoo.org/viewtopic-p-8695669.html
-
- -Dopengl=true
- $(meson_use wayland gles2)
- #gles2_libname
-Degl=true
- $(meson_use X glx)
- $(meson_use wayland)
-Dfonts=true
- )
-
- if use wayland; then
- emesonargs+=(
- $(meson_use xwayland)
- )
- else
- emesonargs+=(
- -Dxwayland=false
- )
- fi
-
- if use elogind || use systemd; then
- emesonargs+=(
- -Dlogind=true
- )
- fi
-
- emesonargs+=(
- $(meson_use wayland native_backend)
+ -Dnative_backend=true
+ -Dopengl=true
$(meson_use screencast remote_desktop)
$(meson_use gnome libgnome_desktop)
- $(meson_use udev)
+ -Dudev=true
-Dudev_dir=$(get_udevdir)
$(meson_use input_devices_wacom libwacom)
-Dsound_player=true
@@ -232,16 +187,23 @@ src_configure() {
-Dtty_tests=false
$(meson_use sysprof profiler)
-Dinstalled_tests=false
- $(meson_use X x11)
+ $(meson_use xwayland)
$(meson_use bash-completion bash_completion)
#verbose # Let upstream choose default for verbose mode
#xwayland_path
- # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give Xgrab access (mostly virtual managers and remote desktops)
+ # TODO: relies on default settings, but in Gentoo we might have some more packages we want to give
+ # Xgrab access (mostly virtual managers and remote desktops)
#xwayland_grab_default_access_rules
)
- if use wayland && use video_cards_nvidia; then
+ if use elogind || use systemd; then
+ emesonargs+=(
+ -Dlogind=true
+ )
+ fi
+
+ if use video_cards_nvidia; then
emesonargs+=(
-Degl_device=true
-Dwayland_eglstream=true
@@ -257,7 +219,7 @@ src_configure() {
}
src_test() {
- # Reset variables to avoid issues from /etc/profile.d/flatpak.sh file
+ # Needed to prevent some tests failures
gnome2_environment_reset
export XDG_DATA_DIRS="${EPREFIX}"/usr/share
glib-compile-schemas "${BUILD_DIR}"/data
@@ -265,13 +227,13 @@ src_test() {
}
pkg_postinst() {
- use udev && udev_reload
+ udev_reload
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
- use udev && udev_reload
+ udev_reload
xdg_pkg_postrm
gnome2_schemas_update
}
diff --git a/x11-wm/mutter/mutter-9999.ebuild b/x11-wm/mutter/mutter-9999.ebuild
index 14e580fe6546..a224263645b9 100644
--- a/x11-wm/mutter/mutter-9999.ebuild
+++ b/x11-wm/mutter/mutter-9999.ebuild
@@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+
PYTHON_COMPAT=( python3_{13..14} )
inherit gnome.org gnome2-utils meson python-any-r1 udev xdg
@@ -13,7 +14,7 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.gnome.org/GNOME/mutter.git"
SRC_URI=""
- SLOT="0/17" # This can get easily out of date, but better than 9967
+ SLOT="0/18" # This can get easily out of date, but better than 9967
else
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
# 0/libmutter_api_version - ONLY gnome-shell or anything using mutter-clutter-<api_version>.pc
@@ -22,16 +23,14 @@ else
fi
IUSE="bash-completion debug devkit elogind gnome gtk-doc input_devices_wacom +introspection
-screencast selinux sysprof systemd test udev +wayland X +xwayland video_cards_nvidia"
+screencast selinux sysprof systemd test video_cards_nvidia +xwayland"
-# native backend requires gles3 for hybrid graphics blitting support, udev and a logind provider
+# native backend requires a logind provider
REQUIRED_USE="
- || ( X wayland )
- devkit? ( screencast wayland )
+ devkit? ( screencast )
gtk-doc? ( introspection )
- wayland? ( ^^ ( elogind systemd ) udev )
- test? ( screencast wayland )
- xwayland? ( wayland )"
+ ^^ ( elogind systemd )
+ test? ( screencast )"
RESTRICT="!test? ( test )"
# gnome-settings-daemon is build checked but used at runtime only for org.gnome.settings-daemon.peripherals.keyboard
@@ -46,14 +45,14 @@ RESTRICT="!test? ( test )"
RDEPEND="
>=media-libs/graphene-1.10.2[introspection?]
>=x11-libs/pango-1.46[introspection?]
- >=x11-libs/cairo-1.14[X]
+ >=x11-libs/cairo-1.14
>=x11-libs/pixman-0.42
>=gui-libs/gtk-4.14.0:4[introspection?]
>=dev-libs/fribidi-1.0.0
>=gnome-base/gsettings-desktop-schemas-47_beta[introspection?]
>=dev-libs/glib-2.81.1:2
gnome-base/gnome-settings-daemon
- >=x11-libs/libxkbcommon-1.8.0[X?]
+ >=x11-libs/libxkbcommon-1.8.0
>=app-accessibility/at-spi2-core-2.46:2[introspection?]
sys-apps/dbus
>=x11-misc/colord-1.4.5:=
@@ -73,24 +72,20 @@ RDEPEND="
media-libs/libglvnd
>=dev-libs/wayland-1.24.0
- wayland? (
- >=dev-libs/wayland-protocols-1.45
+ >=dev-libs/wayland-protocols-1.47
- >=x11-libs/libdrm-2.4.118
- media-libs/mesa[gbm(+)]
- >=dev-libs/libinput-1.27.0:=
+ >=x11-libs/libdrm-2.4.118
+ media-libs/mesa[gbm(+)]
+ >=dev-libs/libinput-1.30.0:=
- elogind? ( sys-auth/elogind )
- xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
- video_cards_nvidia? ( gui-libs/egl-wayland )
- )
- udev? (
- >=virtual/libudev-232-r1:=
- >=dev-libs/libgudev-238
- )
+ elogind? ( sys-auth/elogind )
+ xwayland? ( >=x11-base/xwayland-23.2.1[libei(+)] )
+ video_cards_nvidia? ( gui-libs/egl-wayland )
+ >=virtual/libudev-232-r1:=
+ >=dev-libs/libgudev-238
systemd? ( sys-apps/systemd )
input_devices_wacom? ( >=dev-libs/libwacom-0.13:= )
- screencast? ( >=media-video/pipewire-1.2.7:= )
+ screencast? ( >=media-video/pipewire-1.6.0:= )
introspection? ( >=dev-libs/gobject-introspection-1.82.0-r2:= )
test? (
>=x11-libs/gtk+-3.19.8:3[X,introspection?]
@@ -118,12 +113,9 @@ X11_CLIENT_DEPS="
"
RDEPEND+="
- X? (
+ xwayland? (
${X11_CLIENT_DEPS}
- x11-libs/libxkbfile
- x11-libs/libXtst
)
- wayland? ( xwayland? ( ${X11_CLIENT_DEPS} ) )
"
DEPEND="${RDEPEND}
x11-base/xorg-proto
@@ -145,15 +137,9 @@ BDEPEND="
>=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]
')
app-text/docbook-xml-dtd:4.5
- X? (
- gnome-extra/zenity
- x11-misc/xvfb-run
- )
- )
- wayland? (
- >=sys-kernel/linux-headers-4.4
- x11-libs/libxcvt
)
+ >=sys-kernel/linux-headers-4.4
+ x11-libs/libxcvt
bash-completion? (
app-shells/bash-completion
${PYTHON_DEPS}
@@ -163,6 +149,10 @@ BDEPEND="
)
"
+PATCHES=(
+ "${FILESDIR}"/mutter-50.3-meta-wayland-touch.patch
+)
+
python_check_deps() {
if use test; then
python_has_version ">=dev-python/python-dbusmock-0.28[${PYTHON_USEDEP}]"
@@ -175,49 +165,13 @@ python_check_deps() {
src_configure() {
use debug && EMESON_BUILDTYPE=debug
local emesonargs=(
- # Mutter X11 renderer only supports gles2 and GLX, thus do NOT pass
- #
- # -Dopengl_libname=libOpenGL.so.0
- #
- # while we build the x11 renderer, as we currently enable gles2 only
- # with USE=wayland and x11 renderer wouldn't find the needed GLX symbols
- # in a configuration where wayland is disabled, as libOpenGL doesn't
- # include them.
- #
- # See
- # - https://bugs.gentoo.org/835786
- # - https://forums.gentoo.org/viewtopic-p-8695669.html
-
- -Dopengl=true
- $(meson_use wayland gles2)
- #gles2_libname
-Degl=true
- $(meson_use X glx)
- $(meson_use wayland)
-Dfonts=true
- )
-
- if use wayland; then
- emesonargs+=(
- $(meson_use xwayland)
- )
- else
- emesonargs+=(
- -Dxwayland=false
- )
- fi
-
- if use elogind || use systemd; then
- emesonargs+=(
- -Dlogind=true
- )
- fi
-
- emesonargs+=(
- $(meson_use wayland native_backend)
+ -Dnative_backend=true
+ -Dopengl=true
$(meson_use screencast remote_desktop)
$(meson_use gnome libgnome_desktop)
- $(meson_use udev)
+ -Dudev=true
-Dudev_dir=$(get_udevdir)
$(meson_use input_devices_wacom libwacom)
-Dsound_player=true
@@ -233,7 +187,7 @@ src_configure() {
-Dtty_tests=false
$(meson_use sysprof profiler)
-Dinstalled_tests=false
- $(meson_use X x11)
+ $(meson_use xwayland)
$(meson_use bash-completion bash_completion)
#verbose # Let upstream choose default for verbose mode
@@ -243,7 +197,13 @@ src_configure() {
#xwayland_grab_default_access_rules
)
- if use wayland && use video_cards_nvidia; then
+ if use elogind || use systemd; then
+ emesonargs+=(
+ -Dlogind=true
+ )
+ fi
+
+ if use video_cards_nvidia; then
emesonargs+=(
-Degl_device=true
-Dwayland_eglstream=true
@@ -267,13 +227,13 @@ src_test() {
}
pkg_postinst() {
- use udev && udev_reload
+ udev_reload
xdg_pkg_postinst
gnome2_schemas_update
}
pkg_postrm() {
- use udev && udev_reload
+ udev_reload
xdg_pkg_postrm
gnome2_schemas_update
}
diff --git a/xfce-extra/xfce4-dict/xfce4-dict-0.8.10.ebuild b/xfce-extra/xfce4-dict/xfce4-dict-0.8.10.ebuild
index 5ed4991eba1e..f2456c4986c1 100644
--- a/xfce-extra/xfce4-dict/xfce4-dict-0.8.10.ebuild
+++ b/xfce-extra/xfce4-dict/xfce4-dict-0.8.10.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.xz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 arm ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="amd64 arm ~hppa ppc ppc64 ~riscv ~sparc x86"
IUSE="llm"
DEPEND="