diff options
| author | BaldEagleOS Migration <dev@baldeagleos.com> | 2026-06-02 11:24:22 -0500 |
|---|---|---|
| committer | BaldEagleOS Migration <dev@baldeagleos.com> | 2026-06-02 11:24:22 -0500 |
| commit | fa2a9ceb34861c64aee4400a4686233134d8e652 (patch) | |
| tree | 8eae804ea9a6ecae6af75b29d59c2376dc9153ed | |
| parent | 637414c2448c2e6b0a24db5fafe01716205be445 (diff) | |
| download | baldeagleos-repo-fa2a9ceb34861c64aee4400a4686233134d8e652.tar.gz baldeagleos-repo-fa2a9ceb34861c64aee4400a4686233134d8e652.tar.xz baldeagleos-repo-fa2a9ceb34861c64aee4400a4686233134d8e652.zip | |
Adding metadata
127 files changed, 7335 insertions, 135 deletions
diff --git a/app-admin/selint/selint-1.5.1.ebuild b/app-admin/selint/selint-1.5.1.ebuild index c757aa02708f..b603589762f9 100644 --- a/app-admin/selint/selint-1.5.1.ebuild +++ b/app-admin/selint/selint-1.5.1.ebuild @@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]] ; then EGIT_REPO_URI="https://github.com/SELinuxProject/selint.git" else SRC_URI="https://github.com/SELinuxProject/selint/releases/download/v${PV}/${P}.tar.gz" - KEYWORDS="amd64 ~arm ~x86" + KEYWORDS="amd64 ~arm x86" fi LICENSE="Apache-2.0" diff --git a/app-containers/docker-compose/docker-compose-5.0.1-r1.ebuild b/app-containers/docker-compose/docker-compose-5.0.1-r2.ebuild index 775981137178..95bb06b764dd 100644 --- a/app-containers/docker-compose/docker-compose-5.0.1-r1.ebuild +++ b/app-containers/docker-compose/docker-compose-5.0.1-r2.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit eapi9-ver go-module +inherit eapi9-ver go-module optfeature MY_PV=${PV/_/-} DESCRIPTION="Multi-container orchestration for Docker" @@ -21,7 +21,6 @@ RDEPEND=" >=app-containers/docker-cli-23.0.0 app-containers/podman[wrapper(+)] ) -app-containers/docker-credential-helpers " BDEPEND=">=dev-lang/go-1.24.7" @@ -42,6 +41,8 @@ src_install() { } pkg_postinst() { + optfeature "credential store support" app-containers/docker-credential-helpers + if ver_replacing -lt 2; then ewarn ewarn "docker-compose 2.x is a sub command of docker" diff --git a/app-containers/docker-compose/docker-compose-5.1.4.ebuild b/app-containers/docker-compose/docker-compose-5.1.4-r1.ebuild index f846e7e88032..182562bd89be 100644 --- a/app-containers/docker-compose/docker-compose-5.1.4.ebuild +++ b/app-containers/docker-compose/docker-compose-5.1.4-r1.ebuild @@ -1,7 +1,9 @@ # Copyright 2018-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=9 +EAPI=8 + +inherit eapi9-ver optfeature DESCRIPTION="Multi-container orchestration for Docker" HOMEPAGE="https://github.com/docker/compose" @@ -19,7 +21,6 @@ RDEPEND=" >=app-containers/docker-cli-29.5.2 app-containers/podman[wrapper(+)] ) - app-containers/docker-credential-helpers " BDEPEND=">=dev-lang/go-1.25.5" @@ -38,6 +39,8 @@ src_install() { } pkg_postinst() { + optfeature "credential store support" app-containers/docker-credential-helpers + if ver_replacing -lt 2; then ewarn ewarn "docker-compose 2.x is a sub command of docker" diff --git a/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild b/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild index d40dd8e69051..8bb2931966e0 100644 --- a/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild +++ b/app-misc/qtxdg-tools/qtxdg-tools-4.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1" diff --git a/app-portage/mgorny-dev-scripts/Manifest b/app-portage/mgorny-dev-scripts/Manifest index d76ce5677820..d917abcada14 100644 --- a/app-portage/mgorny-dev-scripts/Manifest +++ b/app-portage/mgorny-dev-scripts/Manifest @@ -6,3 +6,4 @@ DIST mgorny-dev-scripts-71.tar.bz2 18512 BLAKE2B cd0764c2a8558ddaa5c9605ccf5a821 DIST mgorny-dev-scripts-72.tar.bz2 18561 BLAKE2B 9e489f18f7209824f25cf04b2dcf85f199d6feefa8c8e8003e71a646ab798bc9a3856aa57baa60362a0b5605bac9ce990503bd76e4db69190035f027a3b38a12 SHA512 21f6fe780f889c1073725f39ff283a31292572db3cec62921cbb665f2737d4edf5058d1b587d8e5c460a8ee93d708cdc035ef5cfe39daf7a1a27c1499fbccf61 DIST mgorny-dev-scripts-73.tar.bz2 18641 BLAKE2B 553160151240c19fd368fcbc051654fed42394452b4ce9fbf0af308e88d530f1ae71e8e5e9845a327f3961ec38d20a757ab7494f483816c4896254f576c2bde6 SHA512 8177f926e15801089f83f0e2c6ddb488265c873d80045951924214419cd67a8668dac7c52997b28d75db073a952f9ef8b08f73d85ba0042fbeff3d5988af75b2 DIST mgorny-dev-scripts-74.tar.bz2 18627 BLAKE2B 45eded78392f42674de5b0eaf51f7b1f2e907bc8d95359d299835b134802d91cae6be64c77537b8c28c112571f565d8a049e218b5177ac55e26c5da0780e9570 SHA512 4e85f4c8b2e7b845c8810261fdc9ec1c1642a5a7d7a886489307b6e2ef63c50ec8afe9b522308a7d3f091ecced428a836668b1e4f79d1eaab20f2fde0e9444b3 +DIST mgorny-dev-scripts-76.tar.bz2 18645 BLAKE2B 1f65a408d4ff5e82a0ade4c22ea56dcafd4900a5f5fdfd25140dbab9f42fe7031191f4944d0f173773d64a1afe2ce9d6628ae8b03e56c6469740a749f6bb2bef SHA512 5e86a602f9d0a96cd6c3dcb36b73b8ee3c6579c07c0d47033330d83e19cff1ab91952247eedd97b2f25236077a9d3639e3e49863c73edcd74db6537169d8732f diff --git a/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild b/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild new file mode 100644 index 000000000000..1afeaab25713 --- /dev/null +++ b/app-portage/mgorny-dev-scripts/mgorny-dev-scripts-76.ebuild @@ -0,0 +1,34 @@ +# Copyright 2019-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Handy scripts for ebuild development and more" +HOMEPAGE=" + https://gitweb.gentoo.org/proj/mgorny-dev-scripts.git + https://github.com/gentoo/mgorny-dev-scripts/ +" +SRC_URI=" + https://gitweb.gentoo.org/proj/mgorny-dev-scripts.git/snapshot/${P}.tar.bz2 +" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" + +RDEPEND=" + app-portage/gentoolkit + >=app-portage/gpyutils-0.12 + dev-perl/URI + dev-util/pkgcheck + dev-vcs/git + net-misc/wget + sys-apps/portage + x11-misc/xdg-utils +" + +src_install() { + dodoc README.rst + rm -f COPYING README.rst || die + dobin * +} diff --git a/app-text/doxygen/doxygen-1.16.1.ebuild b/app-text/doxygen/doxygen-1.16.1.ebuild index 079a2a7bf1e2..02ee7807e63c 100644 --- a/app-text/doxygen/doxygen-1.16.1.ebuild +++ b/app-text/doxygen/doxygen-1.16.1.ebuild @@ -19,7 +19,7 @@ if [[ ${PV} == *9999* ]]; then else SRC_URI="https://doxygen.nl/files/${P}.src.tar.gz" SRC_URI+=" https://downloads.sourceforge.net/doxygen/rel-${PV}/${P}.src.tar.gz" - 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" fi # GPL-2 also for bundled libmscgen diff --git a/app-text/xmldiff/xmldiff-2.7.0.ebuild b/app-text/xmldiff/xmldiff-2.7.0.ebuild index ea7de26262a9..2e98f00393d1 100644 --- a/app-text/xmldiff/xmldiff-2.7.0.ebuild +++ b/app-text/xmldiff/xmldiff-2.7.0.ebuild @@ -15,7 +15,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha amd64 ~ppc ~sparc x86" +KEYWORDS="~alpha amd64 ppc ~sparc x86" RDEPEND=" >=dev-python/lxml-3.1.0[${PYTHON_USEDEP}] diff --git a/dev-debug/bpftrace/Manifest b/dev-debug/bpftrace/Manifest index dfed204a87b3..81369d914bf0 100644 --- a/dev-debug/bpftrace/Manifest +++ b/dev-debug/bpftrace/Manifest @@ -3,5 +3,5 @@ DIST bpftrace-0.24.2.tar.gz 1375106 BLAKE2B c397eb7ded3a72ea0805487db66f422bda9a DIST bpftrace-0.25.0-man.tar.xz 44292 BLAKE2B e3ad8255b74836c9947595cd3c39caa201ccc420e573376ea7a144c499f4f74349911df87618f98a877d797b6d3b0c54f0117292537d03e184d2669b8a1331a5 SHA512 343fadffec5d2a6f702e2fe67087718c909f32cd6440dabc0fa93d2c0b8264ceda7d7a1eee7f79b4be2365318170c4eff7582453ec8ff4e15343ce2cb056b2ea DIST bpftrace-0.25.1-man.tar.xz 44300 BLAKE2B 54ed5e0e04f74d7c310d14a2d624238d9d7f42a4abab101272693caf714020bb420a221793ea8bef0bd1490cd47e6cc87ed4e75d187c7127c99b2ef771df208a SHA512 d9b28a4e4705714ba38af0dcda6eb78379cb44da5dd2de47cca1061bc2b020b97aca4fd09cb734932a5f925b31b34aa266e4ff2a54ac438715543c054340cd8d DIST bpftrace-0.25.1.tar.gz 1486111 BLAKE2B f2b9f2f9d44faa47f846c3c14800424d27dca0d210672cc03f60e5aadfe789fb4842bddfca4a4d73b3714a8d817710cedb66b055f8477e58f1202b64a188a444 SHA512 abe7bfab906894de889c958020b2dcc65bdc0b5c3d8986846ef41a9d593ca16075632916cf281154630221c6e511a11e3139a09bb641570277a44bd47299bbe6 -DIST bpftrace-0.26.0-man.tar.xz 44688 BLAKE2B bf91c1683eb5702a1ba878e769cac1466522198d644b5a2c5674b15d1bccb8f3e9b28fd7ab5ba3664146056e23edcc1615954a11f1e8fbfc85cac872daa2f6d1 SHA512 64bfdfa49ba840fd58b22dc97b3ae666115cb11ff7378bf7c72d0c963903f3fa69fd116d190c7c92a0472d3ef3f46ebe2c081c1701c4b7355fc1b4b346ec2d08 -DIST bpftrace-0.26.0.tar.gz 1548610 BLAKE2B 366d6013c3166662b5a2c86c564710d88c3a1efa5a0df8d280347cd52750fbbe0d73bdccbacaec5d6cd1e0e4f0bc06ef7e53eb0cb826c0d4ff578876ea4286c8 SHA512 6eba698091d1e363bf7e963eeb3b318a7aee76ec4ec7644cbfee5d3c45f8341c05daacd2c407bc1b2c832d544d5a40d7e8f797bd24233dfe753510d929ef7ec1 +DIST bpftrace-0.26.1-man.tar.xz 44680 BLAKE2B 21e0c4492b1885f24fdd91c814a5144326c0e7491b07dd1dfcc4f139842d4094371a179842a6d0cfc5666e3cb4e631138ecdaf56e8ba64b001046ce934294ba2 SHA512 653a0877eb4ff74f17adf7688490c3afb63a264cf9fe3f64d3ec7437f2a51ee7dd21a254277cba677fa6fac8cff836d25e94199ee5ac8ef3152eedee38fbf707 +DIST bpftrace-0.26.1.tar.gz 1549419 BLAKE2B f9be88f6767de8752d46377f2833a511972166fc2d857fc11c16264e40f42cd39f12f9a8e04e0c8b9b8a3f11b1c4df17b002acbadbf30658d01494bdb206818b SHA512 2b2f052b742317b991b2e267881167ec58f0b7fa24574950f090d237665930a7ddfaa26e9a9f03eb3db01ab111a99ecb8f4b41f1c944b6f1df0218f109bfe72d diff --git a/dev-debug/bpftrace/bpftrace-0.26.0.ebuild b/dev-debug/bpftrace/bpftrace-0.26.1.ebuild index 726742c759d6..726742c759d6 100644 --- a/dev-debug/bpftrace/bpftrace-0.26.0.ebuild +++ b/dev-debug/bpftrace/bpftrace-0.26.1.ebuild diff --git a/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild b/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild index 8e4d4855ebee..db424ec71802 100644 --- a/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild +++ b/dev-libs/libdbusmenu-lxqt/libdbusmenu-lxqt-0.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2" diff --git a/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild b/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild index 9f00adebd60b..5a33d019bdda 100644 --- a/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild +++ b/dev-libs/liblouis/liblouis-3.37.0-r1.ebuild @@ -15,7 +15,7 @@ SRC_URI="https://github.com/liblouis/liblouis/releases/download/v${PV}/${P}.tar. LICENSE="LGPL-2.1+ tools? ( GPL-3+ )" SLOT="0/21" # follows LIBLOUIS_CURRENT in configure.ac -KEYWORDS="~alpha amd64 ~arm ~arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86" IUSE="test +tools" REQUIRED_USE=" test? ( tools ) diff --git a/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild b/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild index 17518b6fd3ff..428aa36ac50a 100644 --- a/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild +++ b/dev-libs/libqtxdg/libqtxdg-4.4.0.ebuild @@ -20,7 +20,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+ Nokia-Qt-LGPL-Exception-1.1" diff --git a/dev-ml/llvm/Manifest b/dev-ml/llvm/Manifest index c07553137d1f..c4576cf69876 100644 --- a/dev-ml/llvm/Manifest +++ b/dev-ml/llvm/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/dev-ml/llvm/llvm-22.1.7.ebuild b/dev-ml/llvm/llvm-22.1.7.ebuild new file mode 100644 index 000000000000..7730002aa6da --- /dev/null +++ b/dev-ml/llvm/llvm-22.1.7.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm ~x86" +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 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-python/bitstring/bitstring-4.4.0-r2.ebuild b/dev-python/bitstring/bitstring-4.4.0-r2.ebuild index fdbc58322607..4cf489dd50f5 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 x86" RDEPEND=" =dev-python/bitarray-3*[${PYTHON_USEDEP}] diff --git a/dev-python/clang/Manifest b/dev-python/clang/Manifest index c07553137d1f..c4576cf69876 100644 --- a/dev-python/clang/Manifest +++ b/dev-python/clang/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/dev-python/clang/clang-22.1.7.ebuild b/dev-python/clang/clang-22.1.7.ebuild new file mode 100644 index 000000000000..5118a3be8e87 --- /dev/null +++ b/dev-python/clang/clang-22.1.7.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +inherit llvm.org python-r1 + +DESCRIPTION="Python bindings for llvm-core/clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +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} + test? ( + llvm-core/clang:${LLVM_MAJOR} + ) +" + +LLVM_COMPONENTS=( clang/{bindings/python,include} ) +llvm.org_set_globals + +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 + "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}" +} + +src_test() { + python_foreach_impl python_test +} + +src_install() { + python_foreach_impl python_domodule clang +} diff --git a/dev-python/greenlet/greenlet-3.5.0.ebuild b/dev-python/greenlet/greenlet-3.5.0.ebuild index f4333c29f796..7e95482e3d0f 100644 --- a/dev-python/greenlet/greenlet-3.5.0.ebuild +++ b/dev-python/greenlet/greenlet-3.5.0.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" LICENSE="MIT PSF-2" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" IUSE="test" RESTRICT="!test? ( test )" diff --git a/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild b/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild index 4ac85655ef04..3ff657cb0700 100644 --- a/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild +++ b/dev-python/jupyterlab/jupyterlab-4.5.7.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="BSD MIT GPL-3 Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86" RDEPEND=" >=dev-python/async-lru-1.0.0[${PYTHON_USEDEP}] diff --git a/dev-python/lit/Manifest b/dev-python/lit/Manifest index c07553137d1f..c4576cf69876 100644 --- a/dev-python/lit/Manifest +++ b/dev-python/lit/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/dev-python/lit/lit-22.1.7.ebuild b/dev-python/lit/lit-22.1.7.ebuild new file mode 100644 index 000000000000..f06adb9dfc80 --- /dev/null +++ b/dev-python/lit/lit-22.1.7.ebuild @@ -0,0 +1,46 @@ +# 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_{11..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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +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() { + # flaky test + # https://github.com/llvm/llvm-project/issues/72022 + rm tests/progress-bar.py || die + + 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/ovs/ovs-3.3.8.ebuild b/dev-python/ovs/ovs-3.3.8.ebuild index af9ed0c865f9..8f1a1b0326aa 100644 --- a/dev-python/ovs/ovs-3.3.8.ebuild +++ b/dev-python/ovs/ovs-3.3.8.ebuild @@ -12,6 +12,6 @@ HOMEPAGE="https://github.com/openvswitch/ovs/" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="amd64 ~arm64 ~ppc64 ~x86" +KEYWORDS="amd64 ~arm64 ~ppc64 x86" RDEPEND="dev-python/sortedcontainers[${PYTHON_USEDEP}]" diff --git a/dev-python/tibs/tibs-0.9.0.ebuild b/dev-python/tibs/tibs-0.9.0.ebuild index ba6d5579da37..6983dde7c4c0 100644 --- a/dev-python/tibs/tibs-0.9.0.ebuild +++ b/dev-python/tibs/tibs-0.9.0.ebuild @@ -109,7 +109,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 x86" EPYTEST_PLUGINS=( hypothesis ) distutils_enable_tests pytest diff --git a/dev-python/translate-toolkit/Manifest b/dev-python/translate-toolkit/Manifest index eee47d405110..934cd0261765 100644 --- a/dev-python/translate-toolkit/Manifest +++ b/dev-python/translate-toolkit/Manifest @@ -1,4 +1,5 @@ DIST translate-3.19.10.gh.tar.gz 1353016 BLAKE2B 7da28b38c72fd834edceb0f556a13967f75e139418145f5baf981cdde2cb1cab7fae3503b9aae88be395d4e2bc99422d9b06fbb0247b379d6020201729526c67 SHA512 3a26ad243203fff2352f714e19a9024dfe39d5a46a14ba6682efb54f2832866a246446328be79b8efc39b89bf48e150dd90e289082e164376381ba64ff64f88f +DIST translate-3.19.11.gh.tar.gz 1355618 BLAKE2B 65424bb83f67c04566611ebd426ad6dd233cebab252b09768cc5253c44d9291a543fe91a91e23ecbc8fdc5586fdb340fcb40f26028dcbf9973a8a20d7dd91f2c SHA512 776392694ff9802b74e90c5ac01d2f74da9069840c73b24ad6b7f6ffa4c912acd14a4ef8f390fd74acd48e01b0364ac69faf47027725c41775685b03032732a6 DIST translate-3.19.6.gh.tar.gz 1327150 BLAKE2B a1337276a2a15a7d522e86def20df4137fec8f566df8ca1ec945b12e627a4ebf78aaace4266ef1ef00dca5ac30b3767dea0a1dcd79d3fe8bb8b5cf74dcff1117 SHA512 c21c563e530fe3550c1e5d97f30cb861f47bcde867547a07aaa992fe8721ad20fa18a2a2227fccd2b458cf14a2788137176a1eff5b11f4cfbc4f5cbdfdfc7729 DIST translate-3.19.7.gh.tar.gz 1328643 BLAKE2B e0806de1ecfcc7b3d362663d28b1093b5ab34e097a01d5a70c94174df32e3b469cc536e494afc68e59def8fe67b1e35330a63f5946c9ccaafec89ceb8b472fbe SHA512 f280f832e49e403f25e6a2a9236c5f4ed66cc129b2bf6be6a521b477ec0dce27d2315ecb9383a695932121bec39ff5c10b60e97911de5e6ba810bcc249e7f875 DIST translate-3.19.8.gh.tar.gz 1350675 BLAKE2B f73cca746d3486e5e1ad4b4d42dc9b5fe6fd72f8ce54bba02b6e8c5a92c48d5d7ce954ac0a30466ec6274f6f29ccd73340344c664eaeb1d19770253dc6264c99 SHA512 c10231dcad6ba81651fd1a3d53ad40cd18a2b38425c643967bff66118fe6ee01e4b6feed68200afca14bc27e1b22db0c68ef9768429621431b67cbd172469dfb diff --git a/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild b/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild new file mode 100644 index 000000000000..47c6253c2c51 --- /dev/null +++ b/dev-python/translate-toolkit/translate-toolkit-3.19.11.ebuild @@ -0,0 +1,123 @@ +# 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_{12..14} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 + +MY_P=translate-${PV} +DESCRIPTION="Toolkit to convert between many translation formats" +HOMEPAGE=" + https://github.com/translate/translate/ + https://pypi.org/project/translate-toolkit/ +" +SRC_URI=" + https://github.com/translate/translate/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S="${WORKDIR}"/${MY_P} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="+html +ical +ini +subtitles +yaml" + +RDEPEND=" + app-text/iso-codes + >=dev-python/chardet-3.0.4[${PYTHON_USEDEP}] + dev-python/cheroot[${PYTHON_USEDEP}] + >=dev-python/levenshtein-0.12.0[${PYTHON_USEDEP}] + >=dev-python/lxml-5.2.0[${PYTHON_USEDEP}] + >=dev-python/mistletoe-1.1.0[${PYTHON_USEDEP}] + >=dev-python/pyparsing-3[${PYTHON_USEDEP}] + dev-python/ruamel-yaml[${PYTHON_USEDEP}] + dev-python/tomlkit[${PYTHON_USEDEP}] + >=dev-python/unicode-segmentation-rs-0.2.0[${PYTHON_USEDEP}] + >=dev-python/wcwidth-0.2.14[${PYTHON_USEDEP}] + sys-devel/gettext + html? ( dev-python/utidylib[${PYTHON_USEDEP}] ) + ical? ( dev-python/vobject[${PYTHON_USEDEP}] ) + ini? ( >=dev-python/iniparse-0.5[${PYTHON_USEDEP}] ) + subtitles? ( media-video/gaupol[${PYTHON_USEDEP}] ) + yaml? ( dev-python/pyyaml[${PYTHON_USEDEP}] ) +" +BDEPEND=" + test? ( + dev-python/phply[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=( syrupy ) +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # strip unnecessary pins + sed -i -e 's:,<[0-9.]*::' pyproject.toml || die +} + +src_test() { + # unfortunately, this bad quality package doesn't support XDG_DATA_DIRS + # correctly, so we need to reassemble all data files in a single directory + local -x XDG_DATA_HOME=${T}/share + cp -r translate/share "${T}/" || die + cp -r "${ESYSROOT}"/usr/share/gaupol "${XDG_DATA_HOME}"/ || die + + distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # Fails with network-sandbox (and even with it off but w/ softer fail) + 'tests/xliff_conformance/test_xliff_conformance.py::test_open_office_to_xliff' + 'tests/xliff_conformance/test_xliff_conformance.py::test_po_to_xliff' + ) + local EPYTEST_IGNORE=( + # unpackaged fluent.* + tests/translate/storage/test_fluent.py + tests/translate/convert/test_fluent2po.py + # changes directory and does not change it back, sigh + tests/odf_xliff/test_odf_xliff.py + ) + + if ! has_version "dev-python/iniparse[${PYTHON_USEDEP}]"; then + EPYTEST_IGNORE+=( + translate/convert/test_ini2po.py + translate/convert/test_po2ini.py + ) + fi + + if ! has_version "media-video/gaupol[${PYTHON_USEDEP}]"; then + EPYTEST_IGNORE+=( + translate/storage/test_subtitles.py + ) + fi + + epytest +} + +python_install_all() { + distutils-r1_python_install_all + + insinto /usr + doins -r translate/share + + if ! use html; then + rm "${ED}"/usr/bin/{html2po,po2html} || die + fi + if ! use ical; then + rm "${ED}"/usr/bin/{ical2po,po2ical} || die + fi + if ! use ini; then + rm "${ED}"/usr/bin/{ini2po,po2ini} || die + fi + if ! use subtitles; then + rm "${ED}"/usr/bin/{sub2po,po2sub} || die + fi +} diff --git a/dev-util/gi-docgen/gi-docgen-2026.1.ebuild b/dev-util/gi-docgen/gi-docgen-2026.1.ebuild index 3a118e95ccfe..11aab4adabfc 100644 --- a/dev-util/gi-docgen/gi-docgen-2026.1.ebuild +++ b/dev-util/gi-docgen/gi-docgen-2026.1.ebuild @@ -19,7 +19,7 @@ HOMEPAGE=" SRC_URI="https://download.gnome.org/sources/${PN}/$(ver_cut 1)/${P}.tar.xz" LICENSE="|| ( Apache-2.0 GPL-3+ ) CC0-1.0 OFL-1.1 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" REQUIRED_USE="${PYTHON_REQUIRED_USE}" RDEPEND=" diff --git a/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild b/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild index 9a56d315bbc4..56f44ae1ce12 100644 --- a/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild +++ b/dev-util/lxqt-build-tools/lxqt-build-tools-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~hppa ~loong ~ppc64 ~riscv ~x86" fi LICENSE="BSD" diff --git a/dev-util/perf/perf-6.19.12.ebuild b/dev-util/perf/perf-6.19.12.ebuild index 8dae6b0c4286..eddb7358c26d 100644 --- a/dev-util/perf/perf-6.19.12.ebuild +++ b/dev-util/perf/perf-6.19.12.ebuild @@ -35,7 +35,7 @@ S="${S_K}/tools/perf" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +KEYWORDS="~alpha amd64 arm arm64 ~loong ppc ppc64 ~riscv x86" IUSE="abi_mips_o32 abi_mips_n32 abi_mips_n64 babeltrace capstone big-endian bpf caps crypt debug gtk java libpfm +libtraceevent +libtracefs lzma numa perl +python +slang systemtap tcmalloc unwind" REQUIRED_USE=" diff --git a/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild b/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild index acef15efd85b..350695f69b7b 100644 --- a/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild +++ b/gui-libs/xdg-desktop-portal-lxqt/xdg-desktop-portal-lxqt-1.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1" diff --git a/llvm-core/clang-common/Manifest b/llvm-core/clang-common/Manifest index c07553137d1f..c4576cf69876 100644 --- a/llvm-core/clang-common/Manifest +++ b/llvm-core/clang-common/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/clang-common/clang-common-22.1.7.ebuild b/llvm-core/clang-common/clang-common-22.1.7.ebuild new file mode 100644 index 000000000000..ca44756f7a07 --- /dev/null +++ b/llvm-core/clang-common/clang-common-22.1.7.ebuild @@ -0,0 +1,340 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 elisp-common llvm.org multilib + +DESCRIPTION="Common files shared between multiple slots of clang" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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 + 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 + -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 930978f87f32..5a171e52b69b 100644 --- a/llvm-core/clang/Manifest +++ b/llvm-core/clang/Manifest @@ -22,4 +22,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/clang/clang-22.1.7.ebuild b/llvm-core/clang/clang-22.1.7.ebuild new file mode 100644 index 000000000000..23b2ded15278 --- /dev/null +++ b/llvm-core/clang/clang-22.1.7.ebuild @@ -0,0 +1,470 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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} + !<llvm-core/llvm-22.1.0-r2:22 +" +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 +) +LLVM_MANPAGES=1 +LLVM_TEST_COMPONENTS=( + llvm/utils +) +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-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 d6268d2c786d..eaf21d107c27 100644 --- a/llvm-core/flang/Manifest +++ b/llvm-core/flang/Manifest @@ -2,4 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/flang/flang-22.1.7.ebuild b/llvm-core/flang/flang-22.1.7.ebuild new file mode 100644 index 000000000000..01f226c587f8 --- /dev/null +++ b/llvm-core/flang/flang-22.1.7.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm64" +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 ) +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_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 +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + cmake_build check-flang +} diff --git a/llvm-core/libclc/Manifest b/llvm-core/libclc/Manifest index c07553137d1f..c4576cf69876 100644 --- a/llvm-core/libclc/Manifest +++ b/llvm-core/libclc/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/libclc/libclc-22.1.7.ebuild b/llvm-core/libclc/libclc-22.1.7.ebuild new file mode 100644 index 000000000000..db933d8b3ea4 --- /dev/null +++ b/llvm-core/libclc/libclc-22.1.7.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_COMPAT=( 22 ) +PYTHON_COMPAT=( python3_{11..14} ) +inherit cmake llvm.org llvm-r1 python-any-r1 + +DESCRIPTION="OpenCL C library" +HOMEPAGE="https://libclc.llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~x86" +IUSE="+spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi" + +BDEPEND=" + ${PYTHON_DEPS} + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + ') + spirv? ( + >=dev-util/spirv-llvm-translator-22:* + ) +" + +LLVM_COMPONENTS=( libclc ) +llvm.org_set_globals + +pkg_setup() { + llvm-r1_pkg_setup + python-any-r1_pkg_setup +} + +src_configure() { + local libclc_targets=( + "clspv--" + "clspv64--" + ) + + use spirv && libclc_targets+=( + "spirv-mesa3d-" + "spirv64-mesa3d-" + ) + use video_cards_nvidia && libclc_targets+=( + "nvptx64--" + "nvptx64--nvidiacl" + "nvptx64-nvidia-cuda" + ) + use video_cards_r600 && libclc_targets+=( + "r600--" + ) + use video_cards_radeonsi && libclc_targets+=( + "amdgcn--" + "amdgcn-amd-amdhsa" + "amdgcn-mesa-mesa3d" + ) + + libclc_targets=${libclc_targets[*]} + local mycmakeargs=( + -DLIBCLC_TARGETS_TO_BUILD="${libclc_targets// /;}" + ) + cmake_src_configure +} diff --git a/llvm-core/lld/Manifest b/llvm-core/lld/Manifest index 2554f845598e..7ef996e4fc6e 100644 --- a/llvm-core/lld/Manifest +++ b/llvm-core/lld/Manifest @@ -14,4 +14,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/lld/lld-22.1.7.ebuild b/llvm-core/lld/lld-22.1.7.ebuild new file mode 100644 index 000000000000..a78b3b3e3093 --- /dev/null +++ b/llvm-core/lld/lld-22.1.7.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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" + + 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 f13f35446613..94a20245f95d 100644 --- a/llvm-core/lldb/Manifest +++ b/llvm-core/lldb/Manifest @@ -13,4 +13,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/lldb/lldb-22.1.7.ebuild b/llvm-core/lldb/lldb-22.1.7.ebuild new file mode 100644 index 000000000000..a4a97e15b94c --- /dev/null +++ b/llvm-core/lldb/lldb-22.1.7.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~x86" +IUSE="debug debuginfod +libedit lzma ncurses +python test +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= ) + 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) + + -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 c07553137d1f..c4576cf69876 100644 --- a/llvm-core/llvm-common/Manifest +++ b/llvm-core/llvm-common/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/llvm-common/llvm-common-22.1.7.ebuild b/llvm-core/llvm-common/llvm-common-22.1.7.ebuild new file mode 100644 index 000000000000..27828503be34 --- /dev/null +++ b/llvm-core/llvm-common/llvm-common-22.1.7.ebuild @@ -0,0 +1,54 @@ +# 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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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 930978f87f32..5a171e52b69b 100644 --- a/llvm-core/llvm/Manifest +++ b/llvm-core/llvm/Manifest @@ -22,4 +22,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/llvm/llvm-22.1.7.ebuild b/llvm-core/llvm/llvm-22.1.7.ebuild new file mode 100644 index 000000000000..5ecd28f5a89c --- /dev/null +++ b/llvm-core/llvm/llvm-22.1.7.ebuild @@ -0,0 +1,569 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{12..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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 third-party ) +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) + ;; + # 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 + + # utilities + llvm-tblgen + llvm-test-mustache-spec + FileCheck + llvm-PerfectShuffle + count + not + yaml-bench + UnicodeNameMappingGenerator + + # tools + bugpoint + clang-offload-packager + dsymutil + llc + lli + lli-child-target + llvm-addr2line + llvm-ar + llvm-as + llvm-bcanalyzer + llvm-bitcode-strip + llvm-c-test + 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-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-sim + 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 + + 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_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 d6268d2c786d..eaf21d107c27 100644 --- a/llvm-core/mlir/Manifest +++ b/llvm-core/mlir/Manifest @@ -2,4 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/mlir/mlir-22.1.7.ebuild b/llvm-core/mlir/mlir-22.1.7.ebuild new file mode 100644 index 000000000000..1763c7371494 --- /dev/null +++ b/llvm-core/mlir/mlir-22.1.7.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm64" +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 +} + +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 + 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 + eqawarn "get_distribution_components() is outdated!" + eqawarn " Add: ${add[*]}" + eqawarn "Remove: ${remove[*]}" + 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 + MLIRTestAnalysis + MLIRTestDialect + MLIRTestIR + ) + + if multilib_is_native_abi; then + out+=( + # tools + 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-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() { + local known_xfail=( + # https://github.com/llvm/llvm-project/pull/157885#issuecomment-3288095032 + mlir-pdll-lsp-server/view-output.test + ) + + case ${ABI} in + arm|ppc|x86) + known_xfail+=( + # MLIR is full of 64-bit assumptions, sigh + # https://github.com/llvm/llvm-project/issues/124541 + Conversion/MemRefToLLVM/memref-to-llvm.mlir + Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir + Dialect/LLVMIR/sroa-statistics.mlir + Dialect/Linalg/vectorize-tensor-extract.mlir + Dialect/MemRef/mem2reg-statistics.mlir + Dialect/Tensor/fold-tensor-subset-ops.mlir + Dialect/Tensor/tracking-listener.mlir + Pass/pipeline-stats-nested.mlir + Pass/pipeline-stats.mlir + ) + ;; + esac + + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + local -x LIT_XFAIL="${known_xfail[*]}" + LIT_XFAIL=${LIT_XFAIL// /;} + 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 653310360a5a..df0492433a10 100644 --- a/llvm-core/polly/Manifest +++ b/llvm-core/polly/Manifest @@ -4,4 +4,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-core/polly/polly-22.1.7.ebuild b/llvm-core/polly/polly-22.1.7.ebuild new file mode 100644 index 000000000000..5eab63a32431 --- /dev/null +++ b/llvm-core/polly/polly-22.1.7.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +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 60e5190d5187..92080e50127b 100644 --- a/llvm-runtimes/compiler-rt-sanitizers/Manifest +++ b/llvm-runtimes/compiler-rt-sanitizers/Manifest @@ -4,6 +4,7 @@ DIST llvm-gentoo-patchset-18.1.8-r7.tar.xz 26644 BLAKE2B 8d7bbbd363bd646fc139405 DIST llvm-gentoo-patchset-19.1.7-r1.tar.xz 2644 BLAKE2B c9648797628ae84f81bb66947367d58fe7add9bb28f1e50b509c3d3eab15b6b50e6f58812fd67ce63c57310f1a90b56b10fb5909223d9b24998b3d30909caf0a SHA512 0ea8d8f86647cb28c443937b016b3cf46a2b921463815a85e32ab4488ef7368294a956f13c9b77f8fa70daeaa7bd165cb5975c3b4664ed6d11a6d24f11728d73 DIST llvm-gentoo-patchset-20.1.8.tar.xz 2168 BLAKE2B ab44783c8d8b2f536192e801082f02769eb5bb092bb14d867df9fa854455e9d986ec1074605505c8b43b2cc0b0448474e3eaec3edd89e782922b5b232db9a6e2 SHA512 664018ac834fa0b8a9abc92d64facedc92d3f48818b72d7cdd28cb7c76234ca65c2a16b4d89b4fa5406d3ea97b1d326ae2b63fd5b21b4efa04b6f46f15014542 DIST llvm-gentoo-patchset-22.1.6.tar.xz 3132 BLAKE2B fb6a4c81adaa6f1110784e42792f9e38f60c3d09c189bdfa5b79baa4e4b2ddb8ca4f44b5630da3c1bba631bcec1bbe3a8e5e909e19415bc85e5fa01cdc69593c SHA512 98d55f38299f3633d661f3be26e693a922ff3df9eba4b552c1dfe2b6b977cbf0d23042e5d4fb720d8e168b67035eccccb94937bbfd8f3617208ab03abae404e2 +DIST llvm-gentoo-patchset-22.1.7.tar.xz 1220 BLAKE2B 0b37c45625f0e595ab1cdb232950e52e2ea94192f35200bc358c453f38135e06befa92a85d0ad6bec984c8ded4e65a7d008661a0853cc4defbbb42ef0b04e277 SHA512 b87ac840a95d6a3307b7816df5e6351ab62b5e155c45b32ac8734e31598549bf0f494785974d45c506a086eb6dadf288551cb78391784fb799a18091dcc6e4b6 DIST llvm-project-16.0.6.src.tar.xz 118013488 BLAKE2B 95192d39cbd2914e5609db365965f1c00bfea6c2d653b3996bd2acef8a2b37e37f6fc8a9d2b65711ad72657e0ef52c42f733053cf65051e7822f27396c30406d SHA512 89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7 DIST llvm-project-16.0.6.src.tar.xz.sig 566 BLAKE2B 2060cebd5ed57cb8a86a44238c43dfd4b921649298b10c3d19da308374c1e49869174294e29943c2af459fe06428264e26881d6c1288ebbc48686cc2cf467c7a SHA512 ca249262c7102e0889ec1bdc6f71a3a6f0e7e5d5fbab8abcd6fccd2871e7955eff7af5b055a76006097baf0dfaf2f5069eff3035b3107fc552abdb2481b21447 DIST llvm-project-17.0.6.src.tar.xz 127838860 BLAKE2B d6ede1a9fda8756995c3e0654111941649e15794179641806f18919f1dc68c41ca0cabd5693b5096d05dccc3a391cd20d34af1137bf8af92ed3117a1ce84d1b2 SHA512 6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 @@ -18,4 +19,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.ebuild b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.ebuild new file mode 100644 index 000000000000..ba2a064c76e5 --- /dev/null +++ b/llvm-runtimes/compiler-rt-sanitizers/compiler-rt-sanitizers-22.1.7.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_{11..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~x64-macos" +IUSE="+abi_x86_32 abi_x86_64 +clang debug test" +# base targets +IUSE+=" +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_PATCHSET=${PV} +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 + -DCOMPILER_RT_BUILD_CTX_PROFILE=$(usex ctx-profile) + -DCOMPILER_RT_BUILD_LIBFUZZER=$(usex libfuzzer) + -DCOMPILER_RT_BUILD_MEMPROF=$(usex memprof) + -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}" + ) + + 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/Manifest b/llvm-runtimes/compiler-rt/Manifest index ec558eb9e68e..56dc72c57ece 100644 --- a/llvm-runtimes/compiler-rt/Manifest +++ b/llvm-runtimes/compiler-rt/Manifest @@ -14,4 +14,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild b/llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild new file mode 100644 index 000000000000..d5ee73a99f9b --- /dev/null +++ b/llvm-runtimes/compiler-rt/compiler-rt-22.1.7.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos" +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) + -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 + + -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 d6268d2c786d..eaf21d107c27 100644 --- a/llvm-runtimes/flang-rt/Manifest +++ b/llvm-runtimes/flang-rt/Manifest @@ -2,4 +2,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild b/llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild new file mode 100644 index 000000000000..ecb171e3d008 --- /dev/null +++ b/llvm-runtimes/flang-rt/flang-rt-22.1.7.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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}" +KEYWORDS="~amd64 ~arm64" +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 llvm/{cmake,utils/llvm-lit} +) +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=( + # we may not have a runtime yet + -DCMAKE_Fortran_COMPILER_WORKS=TRUE + + -DLLVM_ENABLE_RUNTIMES="flang-rt" + # this package forces NO_DEFAULT_PATHS + -DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" + # set correct install paths + -DFLANG_RT_INSTALL_RESOURCE_PATH="${EPREFIX}/usr/lib/clang/${LLVM_MAJOR}" + -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/libcxx/Manifest b/llvm-runtimes/libcxx/Manifest index d83daecfafe1..10dfa3a0ded8 100644 --- a/llvm-runtimes/libcxx/Manifest +++ b/llvm-runtimes/libcxx/Manifest @@ -13,4 +13,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/libcxx/libcxx-22.1.7.ebuild b/llvm-runtimes/libcxx/libcxx-22.1.7.ebuild new file mode 100644 index 000000000000..5dafbd8ea388 --- /dev/null +++ b/llvm-runtimes/libcxx/libcxx-22.1.7.ebuild @@ -0,0 +1,267 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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/llvm-lit} 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} ${nort_flags[*]}" + ewarn "${CXX} seems to lack runtime, trying with ${nort_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 ! has_version -b sys-devel/gcc; then + # Since this package is merged before llvm-runtimes/clang-stdlib-config, + # clang will attempt to use libstdc++ for the C++ compiler check, and will + # fail if it is missing. + mycmakeargs+=( -DCMAKE_CXX_COMPILER_WORKS=1 ) + fi + 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 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 + # https://github.com/llvm/llvm-project/issues/153940 + local -x LIT_XFAIL="libcxx/gdb/gdb_pretty_printer_test.sh.cpp" + 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 c07553137d1f..c4576cf69876 100644 --- a/llvm-runtimes/libcxxabi/Manifest +++ b/llvm-runtimes/libcxxabi/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild b/llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild new file mode 100644 index 000000000000..4e095a79cf75 --- /dev/null +++ b/llvm-runtimes/libcxxabi/libcxxabi-22.1.7.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +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 cmake ) +LLVM_TEST_COMPONENTS=( + libc llvm/include/llvm/{Demangle,Testing} llvm/utils/llvm-lit +) +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 32c8b10d8149..02fd9752cd42 100644 --- a/llvm-runtimes/libgcc/Manifest +++ b/llvm-runtimes/libgcc/Manifest @@ -6,4 +6,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/libgcc/libgcc-22.1.7.ebuild b/llvm-runtimes/libgcc/libgcc-22.1.7.ebuild new file mode 100644 index 000000000000..4abcb8234fe6 --- /dev/null +++ b/llvm-runtimes/libgcc/libgcc-22.1.7.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..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" +KEYWORDS="~amd64" +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 c07553137d1f..c4576cf69876 100644 --- a/llvm-runtimes/libunwind/Manifest +++ b/llvm-runtimes/libunwind/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/libunwind/libunwind-22.1.7.ebuild b/llvm-runtimes/libunwind/libunwind-22.1.7.ebuild new file mode 100644 index 000000000000..09592935af3a --- /dev/null +++ b/llvm-runtimes/libunwind/libunwind-22.1.7.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_{11..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" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="+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 cmake ) +LLVM_TEST_COMPONENTS=( libc libcxxabi llvm/utils/llvm-lit ) +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_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/offload/Manifest b/llvm-runtimes/offload/Manifest index bc62a9fd742f..3942503882eb 100644 --- a/llvm-runtimes/offload/Manifest +++ b/llvm-runtimes/offload/Manifest @@ -6,3 +6,5 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 diff --git a/llvm-runtimes/offload/offload-22.1.7.ebuild b/llvm-runtimes/offload/offload-22.1.7.ebuild new file mode 100644 index 000000000000..b45a07366fc9 --- /dev/null +++ b/llvm-runtimes/offload/offload-22.1.7.ebuild @@ -0,0 +1,133 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +inherit cmake crossdev flag-o-matic llvm.org python-any-r1 +inherit toolchain-funcs + +DESCRIPTION="OpenMP offloading support" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0/${LLVM_SOABI}" +KEYWORDS="~amd64 ~arm64 ~ppc64" +IUSE="+clang debug ompt test llvm_targets_AMDGPU llvm_targets_NVPTX" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-libs/libffi:= + ~llvm-core/llvm-${PV} + ~llvm-runtimes/openmp-${PV}[ompt?] + llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= ) +" +DEPEND=" + ${RDEPEND} +" +# 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 +BDEPEND=" + dev-lang/perl + virtual/pkgconfig + clang? ( llvm-core/clang ) + test? ( + $(python_gen_any_dep ' + dev-python/lit[${PYTHON_USEDEP}] + ') + llvm-core/clang:${LLVM_MAJOR} + ) +" + +LLVM_COMPONENTS=( runtimes offload cmake libc llvm/{cmake,utils/llvm-lit} ) +LLVM_TEST_COMPONENTS=( openmp/cmake ) +llvm.org_set_globals + +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 +} + +python_check_deps() { + python_has_version "dev-python/lit[${PYTHON_USEDEP}]" +} + +pkg_setup() { + if use test; then + python-any-r1_pkg_setup + fi +} + +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 + + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + local libdir="$(get_libdir)" + 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 llvm_targets_AMDGPU; then + plugins+=";amdgpu" + fi + if use llvm_targets_NVPTX; then + plugins+=";cuda" + fi + fi + + local mycmakeargs=( + -DLLVM_ENABLE_RUNTIMES=offload + -DOPENMP_STANDALONE_BUILD=ON + -DOFFLOAD_LIBDIR_SUFFIX="${libdir#lib}" + -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" + + -DOFFLOAD_INCLUDE_TESTS=$(usex test) + -DLIBOMPTARGET_PLUGINS_TO_BUILD="${plugins}" + -DLIBOMPTARGET_OMPT_SUPPORT="$(usex ompt)" + + # this breaks building static target libs + -DBUILD_SHARED_LIBS=OFF + ) + + [[ ! ${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 + ) + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + # requires flang + -DOPENMP_TEST_Fortran_COMPILER= + ) + + cmake_src_configure +} + +src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-offload check-offload-unit +} diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest index 433914ead0bb..3858090d9907 100644 --- a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest +++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/Manifest @@ -1,3 +1,5 @@ DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.ebuild b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.ebuild new file mode 100644 index 000000000000..e3c04254a01a --- /dev/null +++ b/llvm-runtimes/openmp-amdgcn-amd-amdhsa/openmp-amdgcn-amd-amdhsa-22.1.7.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_{11..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}" +KEYWORDS="~amd64" + +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/llvm-lit} 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=amdgcn-amd-amdhsa + filter-flags '-m*' + strip-unsupported-flags + + local mycmakeargs=( + -DLLVM_DEFAULT_TARGET_TRIPLE=${triple} + -DLLVM_ENABLE_RUNTIMES=openmp + -DOPENMP_STANDALONE_BUILD=ON + -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 433914ead0bb..3858090d9907 100644 --- a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest +++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/Manifest @@ -1,3 +1,5 @@ DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.ebuild b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.ebuild new file mode 100644 index 000000000000..ae4e75f6d090 --- /dev/null +++ b/llvm-runtimes/openmp-nvptx64-nvidia-cuda/openmp-nvptx64-nvidia-cuda-22.1.7.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_{11..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}" +KEYWORDS="~amd64" + +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/llvm-lit} 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=nvptx64-nvidia-cuda + filter-flags '-m*' + strip-unsupported-flags + + local mycmakeargs=( + -DLLVM_DEFAULT_TARGET_TRIPLE=${triple} + -DLLVM_ENABLE_RUNTIMES=openmp + -DOPENMP_STANDALONE_BUILD=ON + -DOPENMP_INSTALL_LIBDIR="$(get_libdir)/${triple}" + ) + cmake_src_configure +} diff --git a/llvm-runtimes/openmp/Manifest b/llvm-runtimes/openmp/Manifest index c07553137d1f..c4576cf69876 100644 --- a/llvm-runtimes/openmp/Manifest +++ b/llvm-runtimes/openmp/Manifest @@ -12,4 +12,6 @@ DIST llvm-project-21.1.8.src.tar.xz 158958576 BLAKE2B 0d3d4ee920f8e5db50e9815261 DIST llvm-project-21.1.8.src.tar.xz.sig 119 BLAKE2B cffc1825f5778a3e3c128ec3e856ff6ee50687319d621cdf42e895abf67e05cc51cb7493308e2b506ab60dbdbaca7aa75eb9f78d91d42c81f9682a36f4042e9d SHA512 10f58eff58ed6e701d0f123b15e68c82ab8cbdf99b1c86c0d83e3b8553e90ea51055e30327e8e442ded57c8f503e2a2de9ee075e9c28b5ba815a0f8922f8671c DIST llvm-project-22.1.6.src.tar.xz 167043464 BLAKE2B 86b5f0da9ced0ffc6e2c765f4d2c1537000062bd1bbfa6d060e192251c8e28d253924e1a164e76edef3ec05fa4447a75d554bc89f6ea7e33c6792a1f5d67f3a6 SHA512 39ee3a66b92abe4eed5f9db086f6279faa72d8a3fe1beee8897da2dcc8b6982d169054b394995090c9cc6519f50a03a7fc465905dda3c61eb1063b9ba4696b0c DIST llvm-project-22.1.6.src.tar.xz.sig 119 BLAKE2B faba6f95374bc9ffda950b7cb727246e3d05173a1b790f669722fe97aff5f5a7a840324b3f1721a424393e3dbf56d768868d65a1cfac107a49487e0111a8d87f SHA512 6aeaac226c3099ac1120e57daf9be4161855e17415df7117b9091a0c1a32022d27a842cdf208d17ee389b2be003577688565abbb18c78d94d56c3a38d56bb035 +DIST llvm-project-22.1.7.src.tar.xz 167066344 BLAKE2B 201b7f8f8b4216ad250f9dcdc87f817ac2dac99c1c7f151077e46165c0efae6d04c33c84c70c04c670fe0733e621af866f78d4d93f49e4d8385645f71495f53b SHA512 b7e56121cd6cb24085185ca0b621fec272dd9aa237c49a901043a9a4c31fdbc1ff33e650891d9786cd9495c006e87d4553ac36b518c864c75e99a80e40771bfd +DIST llvm-project-22.1.7.src.tar.xz.sig 119 BLAKE2B 0a1125837ae881dcb356c43e6fcd24dd14e107cd045524906b3879db94184e2c74835ce1e3ee026e55790af5be4b861d629546de6f74374e71e164a571c6ecd0 SHA512 d56bc596b642d6e6e63f1d141dbc7b8151e58befc70fd3d28847f023789823c9daf90100be233ab6597219037ee28187e6e8996992b7226568265c205abad266 DIST llvm-project-8789401c6f0b2c53ba348860c1b0c5df1fa40c8c.tar.gz 271359638 BLAKE2B 31d1c91b535f129cac4b1da7ce2e6f0765231ebe6a5b1cb83f00d56d68820cdd029f7d2fdf602148e37bc9a22d99b71e25284eab74b8d52fa87ed4636712171f SHA512 4ca908b0b5d7ae9a2b334d033d2c11b557dcc3305b9107017965ae612716beade09a0c73e1a5f5eab1c9794728558d4a981715bb9b01d5ba2c2c5c6c53d1a9b6 diff --git a/llvm-runtimes/openmp/openmp-22.1.7.ebuild b/llvm-runtimes/openmp/openmp-22.1.7.ebuild new file mode 100644 index 000000000000..1587761ecc37 --- /dev/null +++ b/llvm-runtimes/openmp/openmp-22.1.7.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) +inherit flag-o-matic cmake-multilib linux-info llvm.org python-single-r1 + +DESCRIPTION="OpenMP runtime library for LLVM/clang compiler" +HOMEPAGE="https://openmp.llvm.org" + +LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )" +SLOT="0/${LLVM_SOABI}" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~x64-macos" +IUSE="debug gdb-plugin hwloc ompt test" +REQUIRED_USE=" + gdb-plugin? ( ${PYTHON_REQUIRED_USE} ) +" +RESTRICT="!test? ( test )" + +RDEPEND=" + gdb-plugin? ( ${PYTHON_DEPS} ) + hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] ) +" +# 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 +DEPEND=" + ${RDEPEND} +" +BDEPEND=" + dev-lang/perl + test? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/lit[${PYTHON_USEDEP}] + ') + llvm-core/clang + ) +" + +LLVM_COMPONENTS=( runtimes openmp cmake llvm/{cmake,include,utils/llvm-lit} ) +llvm.org_set_globals + +pkg_setup() { + if use gdb-plugin || use test; then + python-single-r1_pkg_setup + fi +} + +multilib_src_configure() { + # 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 + -DOPENMP_STANDALONE_BUILD=ON + -DOPENMP_LIBDIR_SUFFIX="${libdir#lib}" + + -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 + ) + + use test && mycmakeargs+=( + # this project does not use standard LLVM cmake macros + -DOPENMP_LLVM_LIT_EXECUTABLE="${EPREFIX}/usr/bin/lit" + -DOPENMP_LIT_ARGS="$(get_lit_flags)" + + -DOPENMP_TEST_C_COMPILER="$(type -P "${CHOST}-clang")" + -DOPENMP_TEST_CXX_COMPILER="$(type -P "${CHOST}-clang++")" + # disable Fortran tests for now + # (TODO: enable where we have flang keyworded) + -DOPENMP_TEST_Fortran_COMPILER= + ) + cmake_src_configure +} + +multilib_src_test() { + # respect TMPDIR! + local -x LIT_PRESERVES_TMP=1 + + cmake_build check-openmp +} diff --git a/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild b/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild index 51988afaa4c3..72b79ae6acd6 100644 --- a/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild +++ b/lxqt-base/liblxqt/liblxqt-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+ BSD" diff --git a/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild b/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild index 37dca25d07ae..51359fddf2b2 100644 --- a/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild +++ b/lxqt-base/lxqt-about/lxqt-about-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+" diff --git a/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild b/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild index 227bad98b94d..a849d71001e2 100644 --- a/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild +++ b/lxqt-base/lxqt-admin/lxqt-admin-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+" diff --git a/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild b/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild index 58c7699539fd..5057e60355e8 100644 --- a/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild +++ b/lxqt-base/lxqt-config/lxqt-config-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2 GPL-2+ GPL-3 LGPL-2 LGPL-2+ LGPL-2.1+ WTFPL-2" diff --git a/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild b/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild index 96da7fb3213e..76026374f3be 100644 --- a/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild +++ b/lxqt-base/lxqt-globalkeys/lxqt-globalkeys-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild b/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild index 3e869e4dd8c6..ddba5393f2cb 100644 --- a/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild +++ b/lxqt-base/lxqt-menu-data/lxqt-menu-data-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1" diff --git a/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild b/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild index 6a821a495f26..6bbdb93f276b 100644 --- a/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild +++ b/lxqt-base/lxqt-meta/lxqt-meta-2.4.0.ebuild @@ -9,7 +9,7 @@ DESCRIPTION="Meta ebuild for LXQt, the Lightweight Desktop Environment" HOMEPAGE="https://lxqt-project.org/" if [[ ${PV} != 9999 ]]; then - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="metapackage" diff --git a/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild b/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild index 001fbf265953..91e71d44b2c0 100644 --- a/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild +++ b/lxqt-base/lxqt-notificationd/lxqt-notificationd-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild b/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild index 985303942de1..0dda84a3877b 100644 --- a/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild +++ b/lxqt-base/lxqt-openssh-askpass/lxqt-openssh-askpass-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild b/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild index f9e5991a4f5e..f96edd9f0eff 100644 --- a/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild +++ b/lxqt-base/lxqt-panel/lxqt-panel-2.4.1.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild b/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild index 941b6865eeaa..9ccaa90485ed 100644 --- a/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild +++ b/lxqt-base/lxqt-policykit/lxqt-policykit-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild b/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild index 6fe001a61b8c..33de7142a375 100644 --- a/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild +++ b/lxqt-base/lxqt-powermanagement/lxqt-powermanagement-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild b/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild index 73196acb151b..d7145e06ce1a 100644 --- a/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild +++ b/lxqt-base/lxqt-qtplugin/lxqt-qtplugin-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+" diff --git a/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild b/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild index da2959170494..daa96f7a4383 100644 --- a/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild +++ b/lxqt-base/lxqt-runner/lxqt-runner-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild b/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild index 2ddfaa7158e0..09ca3bee3eac 100644 --- a/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild +++ b/lxqt-base/lxqt-session/lxqt-session-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild b/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild index 6ec7266bfe70..717c236bbcd0 100644 --- a/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild +++ b/lxqt-base/lxqt-sudo/lxqt-sudo-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1 LGPL-2.1+" diff --git a/mail-client/claws-mail/claws-mail-4.4.0.ebuild b/mail-client/claws-mail/claws-mail-4.4.0.ebuild index 84aa837f33a3..2b9a0363a565 100644 --- a/mail-client/claws-mail/claws-mail-4.4.0.ebuild +++ b/mail-client/claws-mail/claws-mail-4.4.0.ebuild @@ -15,7 +15,7 @@ if [[ "${PV}" == *9999 ]] ; then EGIT_REPO_URI="https://git.claws-mail.org/readonly/claws.git" else SRC_URI="https://www.claws-mail.org/download.php?file=releases/${P}.tar.xz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv ~sparc x86" fi LICENSE="GPL-3" diff --git a/mail-filter/postsrsd/postsrsd-2.0.11-r5.ebuild b/mail-filter/postsrsd/postsrsd-2.0.11-r6.ebuild index 823a73f08485..6684566b176d 100644 --- a/mail-filter/postsrsd/postsrsd-2.0.11-r5.ebuild +++ b/mail-filter/postsrsd/postsrsd-2.0.11-r6.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 @@ -88,9 +88,9 @@ src_install() { \n\nSince postsrsd will create its socket with file mode 0666, it is recommended to place it in a directory with restricted permissions, for example: - \n\n\t# mkdir /var/spool/postfix/sock - \n\t# chown root:postfix /var/spool/postfix/sock - \n\t# chmod 0770 /var/spool/postfix/sock + \n\n\t# mkdir /var/spool/postfix/postsrsd + \n\t# chown root:postfix /var/spool/postfix/postsrsd + \n\t# chmod 0770 /var/spool/postfix/postsrsd \n\nand adjust \"{sender,recipient}_canonical_maps\" in main.cf as well as \"socketmap\" in postsrsd.conf accordingly. \n\nSee README.rst and the comments in postsrsd.conf for more detailed @@ -112,6 +112,6 @@ pkg_postinst() { eend $? "Installing ${f} failed" fi - ver_replacing -lt 2.0.11-r5 && local FORCE_PRINT_ELOG=1 + ver_replacing -lt 2.0.11-r6 && local FORCE_PRINT_ELOG=1 readme.gentoo_print_elog } diff --git a/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild b/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild index ea0471692077..2d4673d7a307 100644 --- a/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild +++ b/media-gfx/lximage-qt/lximage-qt-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2+" diff --git a/media-libs/libsdl3/libsdl3-3.4.8.ebuild b/media-libs/libsdl3/libsdl3-3.4.8.ebuild index 95de9684a072..5d658b5f56da 100644 --- a/media-libs/libsdl3/libsdl3-3.4.8.ebuild +++ b/media-libs/libsdl3/libsdl3-3.4.8.ebuild @@ -12,7 +12,7 @@ S=${WORKDIR}/SDL3-${PV} LICENSE="ZLIB" SLOT="0" -KEYWORDS="~amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" +KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" IUSE=" X alsa aqua bidi dbus doc ibus io-uring jack kms opengl oss diff --git a/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild b/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild index b23d194d523b..a72a7e8d71ad 100644 --- a/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild +++ b/media-sound/pavucontrol-qt/pavucontrol-qt-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~hppa ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~hppa ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2 GPL-2+" diff --git a/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild b/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild index c50dfebfe9eb..eb54e277feb7 100644 --- a/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild +++ b/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild @@ -17,7 +17,7 @@ HOMEPAGE="https://github.com/linkchecker/linkchecker" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="sqlite" RDEPEND=" diff --git a/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild b/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild index 35ec054c5561..ef634587cce4 100644 --- a/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild +++ b/net-misc/openvswitch/openvswitch-3.3.8-r1.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://www.openvswitch.org/releases/${P}.tar.gz" LICENSE="Apache-2.0 GPL-2" SLOT="0" -KEYWORDS="amd64 ~arm64 ~ppc64 ~x86" +KEYWORDS="amd64 ~arm64 ~ppc64 x86" IUSE="debug monitor selinux +ssl unwind valgrind xdp" REQUIRED_USE="${PYTHON_REQUIRED_USE}" diff --git a/net-wireless/gr-paint/Manifest b/net-wireless/gr-paint/Manifest index e3e9e30a9e63..b3517a92f2c5 100644 --- a/net-wireless/gr-paint/Manifest +++ b/net-wireless/gr-paint/Manifest @@ -1,2 +1 @@ -DIST gr-paint-0.0_p20230427.tar.gz 2094691 BLAKE2B 1dfa5fce3d24911dd9802bd322d4e9916a13066e69e5a0b57201f679a4b9bb985d7ee570e1d3881ecced257927ceb9a3b3845bd60422f407a753482dd35bf0a3 SHA512 7be52c524cdfde8a9620102c9b8cbdd813443c7bd9db1466ec3b73c588bb685fdd917fd2d8c602237b1b0450922d8a058ba9d2d507194a7b1ed4efe0c8f0a5f5 DIST gr-paint-0.0_p20250824.tar.gz 2095255 BLAKE2B a85a5909d664f0803e640502dbe08980fb6b8252f2b1e3abe3453903f56627cc85c549899c41443d1ab32c302907ebc3389a5dd616d7a98ba42110b57968c9eb SHA512 9ac34d9a29c9032b1b490347d5fe626a77d3c746201c0a62f13cf8fbf55b0548f0796d952832d81f2a4298f8bbf9217a3c66fdeca27418771ed03efd43497bf9 diff --git a/net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild b/net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild deleted file mode 100644 index 7989e5d2edc2..000000000000 --- a/net-wireless/gr-paint/gr-paint-0.0_p20230427-r2.ebuild +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 1999-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9,10,11,12,13,14} ) - -if [[ ${PV} == 9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/drmpeg/gr-paint.git" -else - COMMIT="995e888fdd575853349b5c72824c216dace74937" - SRC_URI="https://github.com/drmpeg/gr-paint/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" - S="${WORKDIR}/${PN}-${COMMIT}" - KEYWORDS="~amd64" -fi -inherit cmake python-single-r1 - -DESCRIPTION="Paints monochrome images into the waterfall of a receiver" -HOMEPAGE="https://github.com/drmpeg/gr-paint" - -LICENSE="GPL-3+" -SLOT="0" -IUSE="doc" - -REQUIRED_USE="${PYTHON_REQUIRED_USE}" -#< drmpeg> What tests? -RESTRICT="test" - -DEPEND="${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-libs/boost:=[python,${PYTHON_USEDEP}] - ') - dev-libs/gmp - dev-libs/spdlog:= - sci-libs/volk:= - sci-libs/fftw - >=net-wireless/gnuradio-3.9:=[${PYTHON_SINGLE_USEDEP}] - $(python_gen_cond_dep 'dev-python/pygccxml[${PYTHON_USEDEP}]') -" - -RDEPEND="${DEPEND}" - -BDEPEND=" - $(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]') - virtual/pkgconfig - doc? ( app-text/doxygen ) -" - -src_configure() { - local mycmakeargs=( - -DENABLE_DOXYGEN=$(usex doc) - -DPYTHON_EXECUTABLE="${PYTHON}" - ) - cmake_src_configure -} - -src_install() { - cmake_src_install - find "${D}" -name '*.py[oc]' -delete || die - python_optimize - mv "${ED}/usr/share/doc/gr-paint" "${ED}/usr/share/doc/${P}" -} diff --git a/net-wireless/gr-paint/gr-paint-0.0_p20250824.ebuild b/net-wireless/gr-paint/gr-paint-0.0_p20250824-r1.ebuild index 01c5a8ab6cfc..11056c88e017 100644 --- a/net-wireless/gr-paint/gr-paint-0.0_p20250824.ebuild +++ b/net-wireless/gr-paint/gr-paint-0.0_p20250824-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9,10,11,12,13,14} ) +PYTHON_COMPAT=( python3_{12..14} ) if [[ ${PV} == 9999* ]]; then inherit git-r3 diff --git a/profiles/package.mask/00-gentoo b/profiles/package.mask/00-gentoo index ccd83b840dfc..c359c3bd4dc5 100644 --- a/profiles/package.mask/00-gentoo +++ b/profiles/package.mask/00-gentoo @@ -36,6 +36,11 @@ #--- END OF EXAMPLES --- +# Sam James <sam@gentoo.org> (2026-06-02) +# Fails to start (bug #976623) +=sys-auth/elogind-255.26 +=sys-auth/elogind-257.15 + # Sam James <sam@gentoo.org> (2026-06-01) # Needs porting to Rust eclasses, bug #976139. =gnome-extra/gnome-commander-2.0.0 diff --git a/sys-apps/checkpolicy/checkpolicy-3.10.ebuild b/sys-apps/checkpolicy/checkpolicy-3.10.ebuild index e2cf2383ae23..e26174120f1b 100644 --- a/sys-apps/checkpolicy/checkpolicy-3.10.ebuild +++ b/sys-apps/checkpolicy/checkpolicy-3.10.ebuild @@ -17,7 +17,7 @@ if [[ ${PV} == 9999 ]] ; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-apps/mcstrans/mcstrans-3.10.ebuild b/sys-apps/mcstrans/mcstrans-3.10.ebuild index c67bf7af703c..7e0ec16dc24a 100644 --- a/sys-apps/mcstrans/mcstrans-3.10.ebuild +++ b/sys-apps/mcstrans/mcstrans-3.10.ebuild @@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]] ; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~x86" + KEYWORDS="amd64 arm arm64 ~mips x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-apps/policycoreutils/policycoreutils-3.10.ebuild b/sys-apps/policycoreutils/policycoreutils-3.10.ebuild index 73cd83a799c9..8903c2b56594 100644 --- a/sys-apps/policycoreutils/policycoreutils-3.10.ebuild +++ b/sys-apps/policycoreutils/policycoreutils-3.10.ebuild @@ -24,7 +24,7 @@ if [[ ${PV} == 9999 ]]; then else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz https://dev.gentoo.org/~perfinion/distfiles/policycoreutils-extra-${EXTRAS_VER}.tar.bz2" - KEYWORDS="amd64 arm ~arm64 ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~riscv x86" S1="${WORKDIR}/${MY_P}" S2="${WORKDIR}/policycoreutils-extra" S="${S1}" diff --git a/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild b/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild index 6527f1920f53..fe0354afacba 100644 --- a/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild +++ b/sys-apps/razer-cli/razer-cli-2.3.0-r1.ebuild @@ -19,7 +19,7 @@ else SRC_URI="https://github.com/LoLei/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64 ~x86" + KEYWORDS="amd64 ~x86" fi LICENSE="GPL-3+" diff --git a/sys-apps/restorecond/restorecond-3.10.ebuild b/sys-apps/restorecond/restorecond-3.10.ebuild index f221908b4ca3..0afdaae49752 100644 --- a/sys-apps/restorecond/restorecond-3.10.ebuild +++ b/sys-apps/restorecond/restorecond-3.10.ebuild @@ -14,7 +14,7 @@ if [[ ${PV} == *9999 ]] ; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~x86" + KEYWORDS="amd64 arm arm64 ~mips x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-apps/secilc/secilc-3.10.ebuild b/sys-apps/secilc/secilc-3.10.ebuild index bd781f519ac8..4a0cbb879c55 100644 --- a/sys-apps/secilc/secilc-3.10.ebuild +++ b/sys-apps/secilc/secilc-3.10.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~riscv x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-apps/selinux-python/selinux-python-3.10.ebuild b/sys-apps/selinux-python/selinux-python-3.10.ebuild index 40b22fa11c1e..4cd7b03da152 100644 --- a/sys-apps/selinux-python/selinux-python-3.10.ebuild +++ b/sys-apps/selinux-python/selinux-python-3.10.ebuild @@ -21,7 +21,7 @@ if [[ ${PV} == 9999 ]] ; then S="${WORKDIR}/${P}/${PN#selinux-}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~riscv x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-apps/semodule-utils/semodule-utils-3.10.ebuild b/sys-apps/semodule-utils/semodule-utils-3.10.ebuild index 682e5b547b27..deba00b7ff98 100644 --- a/sys-apps/semodule-utils/semodule-utils-3.10.ebuild +++ b/sys-apps/semodule-utils/semodule-utils-3.10.ebuild @@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]] ; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~x86" + KEYWORDS="amd64 arm arm64 ~mips x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-auth/elogind/Manifest b/sys-auth/elogind/Manifest index 9a016c39db73..f29d4d3d73e3 100644 --- a/sys-auth/elogind/Manifest +++ b/sys-auth/elogind/Manifest @@ -4,4 +4,6 @@ DIST elogind-255.22.tar.gz 2139687 BLAKE2B ed7f8ea68c79813e5a2bbe82dcc0d05e3e240 DIST elogind-255.23.tar.gz 2141771 BLAKE2B cc80c423156912b0f8f4f6a81885b2ad3f21621da0d7866cdaa9993f06d695fa50f96e9787cc54c1321270785f346e005e5555c7046c8d787b4e8c7bc9ff2c9b SHA512 914d0febc15b609147c346326c9d109931434ce9994f536c8c4f5d32efac0b3f8b9d851c71af802bd931b75fd6ef2736728db26dc781363c5d343aaaf15e7c7c DIST elogind-255.24.tar.gz 2143770 BLAKE2B b205cfa60a1eddac114e23f5dc28bd7dd3fa903ff67e1d4177cbe60f0e10da8f2cde9a92e8d7aea65535961aaf353e0c7a5df2d71196a5ab8154f38928b6739b SHA512 b8a436a7271df895613e6135f3ff9804f580fd7da915f38840e0c65638a6135f9a4671145f41fb186333b69a61ca52495b9e957aadbb383b15421e1e13f53b79 DIST elogind-255.25.tar.gz 2144947 BLAKE2B 69996aade480b8d16a6c190cf33b136e20b4c624f0f9cfcaa2c25722ab00dba3543377b1547fec419e8e40a0f762a51d281c81f17aa96ba17e80a473c7d5b1d4 SHA512 f4bc22438a5de70c703f8997e155be07120f348c41b8538c2faef3cc5046d2f306528bbc258062c4b98fa520546ecbe2bff1e8e56647bbbafd2a3f05727732cb +DIST elogind-255.26.tar.gz 2145476 BLAKE2B e1a73b833f39d2a54ce4ba14ac4890428fa7c6cc705b638136e9aeb814bf4df108a2ff835f8d0c0cb9dea9dbd6a3ebc7da25c5303ff1a2d803aa412adf76d7b4 SHA512 6a038443d3c736f813d275d94a1a0b5fdd44b2e7a238998e524e5e83b3353d18f902bf4f5153b4ca0d315977f675d05634baf16ed4e096b65acc087d72a96a8e DIST elogind-257.14.tar.gz 2639697 BLAKE2B a0e3e629c8022837e81100332914bdb85d0e2bd9a09934a13a59458ab22b30a264177feb66ea2e0de57b9cba96ec6b882c812064ebdace502771610978227773 SHA512 2ef3f197643093b3ebe9f46e47aa6275a5fccd1b0dab4cd500cf3009c8af70c8590684f363a9dfa8a599426b546e630074a0c853d3723391a244d5cb308fbdcc +DIST elogind-257.15.tar.gz 2634053 BLAKE2B a94a59a667ce6e9703b9ba05eaa0a5bd4dbfbc1eb25c6c42877b057bdbb3466ef7755e7d0524c379622fee5cbc605008cce8a2575113e45d68975012ebbed8b1 SHA512 e1c5900837dad78667b5007ca99d81bc4c8ff4338a1f6d504a9611e43f5946b17fcd7863c407f77734218b75ec85e8cac9866b40d221efae99049f4ec9cb9d39 diff --git a/sys-auth/elogind/elogind-255.26.ebuild b/sys-auth/elogind/elogind-255.26.ebuild new file mode 100644 index 000000000000..efec699ab1ed --- /dev/null +++ b/sys-auth/elogind/elogind-255.26.ebuild @@ -0,0 +1,199 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} = *9999* ]]; then + EGIT_BRANCH="v255-stable" + EGIT_REPO_URI="https://github.com/elogind/elogind.git" + inherit git-r3 +else + SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils + +DESCRIPTION="The systemd project's logind, extracted to a standalone package" +HOMEPAGE="https://github.com/elogind/elogind" + +LICENSE="CC0-1.0 LGPL-2.1+ public-domain" +SLOT="0" +IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test" +RESTRICT="!test? ( test )" + +BDEPEND=" + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-util/gperf + virtual/pkgconfig + $(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]') + $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]') +" +DEPEND=" + audit? ( sys-process/audit ) + sys-apps/util-linux + sys-libs/libcap + virtual/libudev:= + acl? ( sys-apps/acl ) + pam? ( sys-libs/pam ) + selinux? ( sys-libs/libselinux ) +" +RDEPEND="${DEPEND} + !sys-apps/systemd + >=sys-apps/systemd-utils-255.7-r4[udev] +" +PDEPEND=" + sys-apps/dbus + policykit? ( sys-auth/polkit ) +" + +DOCS=( README.md ) + +PATCHES=( + # all downstream patches: + "${FILESDIR}/${PN}-252.9-nodocs.patch" + # See also: + # https://github.com/elogind/elogind/issues/285 + "${FILESDIR}/${PN}-255.17-revert-s2idle.patch" # bug 939042 + "${FILESDIR}/${PN}-255.22-musl.patch" # bug 967191 +) + +python_check_deps() { + python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" && + python_has_version "dev-python/lxml[${PYTHON_USEDEP}]" +} + +pkg_setup() { + local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD" + + use kernel_linux && linux-info_pkg_setup +} + +src_prepare() { + default + xdg_environment_reset + + # don't cleanup /dev/shm/ on logout on logout + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698 + sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \ + -i src/login/logind.conf.in || die +} + +src_configure() { + if use cgroup-hybrid; then + cgroupmode="hybrid" + else + cgroupmode="unified" + fi + + python_setup + + EMESON_BUILDTYPE="$(usex debug debug release)" + + local emesonargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html" + -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d + --libexecdir="lib/elogind" + --localstatedir="${EPREFIX}"/var + -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions" + -Dman=auto + -Dsmack=true + -Dcgroup-controller=openrc + -Ddefault-hierarchy=${cgroupmode} + -Ddefault-kill-user-processes=false + -Dacl=$(usex acl enabled disabled) + -Daudit=$(usex audit enabled disabled) + -Dhtml=$(usex doc auto disabled) + -Dpam=$(usex pam enabled disabled) + -Dpamlibdir="$(getpam_mod_dir)" + -Dselinux=$(usex selinux enabled disabled) + -Dtests=$(usex test true false) + -Dutmp=$(usex elibc_musl false true) + -Dmode=release + + # Ensure consistency between merged-usr and split-usr (bug 945965) + -Dhalt-path="${EPREFIX}/sbin/halt" + -Dkexec-path="${EPREFIX}/usr/sbin/kexec" + -Dnologin-path="${EPREFIX}/sbin/nologin" + -Dpoweroff-path="${EPREFIX}/sbin/poweroff" + -Dreboot-path="${EPREFIX}/sbin/reboot" + ) + + meson_src_configure +} + +src_install() { + meson_src_install + keepdir /var/lib/elogind + + newinitd "${FILESDIR}"/${PN}.init-r1 ${PN} + + newconfd "${FILESDIR}"/${PN}.conf ${PN} +} + +pkg_postinst() { + udev_reload + if ! use pam; then + ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!" + ewarn "In other words, it will be useless for most applications." + ewarn + fi + if ! use policykit; then + ewarn "loginctl will not be able to perform privileged operations without" + ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate." + ewarn + fi + if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then + elog "elogind is currently started from boot runlevel." + elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then + ewarn "elogind is currently started from default runlevel." + ewarn "Please remove elogind from the default runlevel and" + ewarn "add it to the boot runlevel by:" + ewarn "# rc-update del elogind default" + ewarn "# rc-update add elogind boot" + else + elog "elogind is currently not started from any runlevel." + elog "You may add it to the boot runlevel by:" + elog "# rc-update add elogind boot" + elog + elog "Alternatively, you can leave elogind out of any" + elog "runlevel. It will then be started automatically" + if use pam; then + elog "when the first service calls it via dbus, or" + elog "the first user logs into the system." + else + elog "when the first service calls it via dbus." + fi + fi + + if ver_replacing -lt 252.9; then + elog "Starting with release 252.9 the sleep configuration is now done" + elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep" + elog "configuration remember to migrate those to new configuration file." + fi + + local file files + # find custom hooks excluding known (nvidia-drivers, sys-power/tlp) + if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then + readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \ + -type f \( -not -iname ".keep_dir" -a \ + -not -iname "nvidia" -a \ + -not -iname "49-tlp-sleep" \) || die) + fi + if [[ ${#files[@]} -gt 0 ]]; then + ewarn "*** Custom hooks in obsolete path detected ***" + for file in "${files[@]}"; do + ewarn " ${file}" + done + ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sys-auth/elogind/elogind-257.14-r1.ebuild b/sys-auth/elogind/elogind-257.14-r1.ebuild new file mode 100644 index 000000000000..c05136625cfe --- /dev/null +++ b/sys-auth/elogind/elogind-257.14-r1.ebuild @@ -0,0 +1,197 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} = *9999* ]]; then + EGIT_BRANCH="v255-stable" + EGIT_REPO_URI="https://github.com/elogind/elogind.git" + inherit git-r3 +else + SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils + +DESCRIPTION="The systemd project's logind, extracted to a standalone package" +HOMEPAGE="https://github.com/elogind/elogind" + +LICENSE="CC0-1.0 LGPL-2.1+ public-domain" +SLOT="0" +IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test" +RESTRICT="!test? ( test )" + +BDEPEND=" + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-util/gperf + virtual/pkgconfig + $(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]') + $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]') +" +DEPEND=" + audit? ( sys-process/audit ) + sys-apps/util-linux + sys-libs/libcap + virtual/libudev:= + acl? ( sys-apps/acl ) + pam? ( sys-libs/pam ) + selinux? ( sys-libs/libselinux ) +" +RDEPEND="${DEPEND} + !sys-apps/systemd + >=sys-apps/systemd-utils-255.7-r4[udev] +" +PDEPEND=" + sys-apps/dbus + policykit? ( sys-auth/polkit ) +" + +DOCS=( README.md ) + +PATCHES=( + "${FILESDIR}/${PN}-257.14-dbus-service.patch" #975147 +) + +python_check_deps() { + python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" && + python_has_version "dev-python/lxml[${PYTHON_USEDEP}]" +} + +pkg_setup() { + local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD" + + use kernel_linux && linux-info_pkg_setup +} + +src_prepare() { + default + xdg_environment_reset + + # don't cleanup /dev/shm/ on logout on logout + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698 + sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \ + -i src/login/logind.conf.in || die +} + +src_configure() { + if use cgroup-hybrid; then + cgroupmode="hybrid" + else + cgroupmode="unified" + fi + + python_setup + + EMESON_BUILDTYPE="$(usex debug debug release)" + + local emesonargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html" + -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d + --libexecdir="lib/elogind" + --localstatedir="${EPREFIX}"/var + -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions" + -Dman=auto + -Dsmack=true + -Dcgroup-controller=openrc + -Ddefault-hierarchy=${cgroupmode} + -Ddefault-kill-user-processes=false + -Dacl=$(usex acl enabled disabled) + -Daudit=$(usex audit enabled disabled) + -Dhtml=$(usex doc auto disabled) + -Dpam=$(usex pam enabled disabled) + -Dpamlibdir="$(getpam_mod_dir)" + -Dselinux=$(usex selinux enabled disabled) + -Dtests=$(usex test true false) + -Dutmp=$(usex elibc_musl false true) + -Dmode=release + + # Ensure consistency between merged-usr and split-usr (bug 945965) + -Dhalt-path="${EPREFIX}/sbin/halt" + -Dkexec-path="${EPREFIX}/usr/sbin/kexec" + -Dnologin-path="${EPREFIX}/sbin/nologin" + -Dpoweroff-path="${EPREFIX}/sbin/poweroff" + -Dreboot-path="${EPREFIX}/sbin/reboot" + ) + + meson_src_configure +} + +src_install() { + meson_src_install + keepdir /var/lib/elogind + + rm "${ED}"/usr/share/doc/${PF}/LICENSE* || die + rm "${ED}"/usr/share/doc/${PF}/CODING_STYLE.md || die + + newinitd "${FILESDIR}"/${PN}.init-r1 ${PN} + + newconfd "${FILESDIR}"/${PN}.conf ${PN} +} + +pkg_postinst() { + udev_reload + if ! use pam; then + ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!" + ewarn "In other words, it will be useless for most applications." + ewarn + fi + if ! use policykit; then + ewarn "loginctl will not be able to perform privileged operations without" + ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate." + ewarn + fi + if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then + elog "elogind is currently started from boot runlevel." + elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then + ewarn "elogind is currently started from default runlevel." + ewarn "Please remove elogind from the default runlevel and" + ewarn "add it to the boot runlevel by:" + ewarn "# rc-update del elogind default" + ewarn "# rc-update add elogind boot" + else + elog "elogind is currently not started from any runlevel." + elog "You may add it to the boot runlevel by:" + elog "# rc-update add elogind boot" + elog + elog "Alternatively, you can leave elogind out of any" + elog "runlevel. It will then be started automatically" + if use pam; then + elog "when the first service calls it via dbus, or" + elog "the first user logs into the system." + else + elog "when the first service calls it via dbus." + fi + fi + + if ver_replacing -lt 252.9; then + elog "Starting with release 252.9 the sleep configuration is now done" + elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep" + elog "configuration remember to migrate those to new configuration file." + fi + + local file files + # find custom hooks excluding known (nvidia-drivers, sys-power/tlp) + if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then + readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \ + -type f \( -not -iname ".keep_dir" -a \ + -not -iname "nvidia" -a \ + -not -iname "49-tlp-sleep" \) || die) + fi + if [[ ${#files[@]} -gt 0 ]]; then + ewarn "*** Custom hooks in obsolete path detected ***" + for file in "${files[@]}"; do + ewarn " ${file}" + done + ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sys-auth/elogind/elogind-257.15.ebuild b/sys-auth/elogind/elogind-257.15.ebuild new file mode 100644 index 000000000000..cd74dcbbdf71 --- /dev/null +++ b/sys-auth/elogind/elogind-257.15.ebuild @@ -0,0 +1,193 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{11..14} ) + +if [[ ${PV} = *9999* ]]; then + EGIT_BRANCH="v255-stable" + EGIT_REPO_URI="https://github.com/elogind/elogind.git" + inherit git-r3 +else + SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +inherit eapi9-ver linux-info meson pam python-any-r1 udev xdg-utils + +DESCRIPTION="The systemd project's logind, extracted to a standalone package" +HOMEPAGE="https://github.com/elogind/elogind" + +LICENSE="CC0-1.0 LGPL-2.1+ public-domain" +SLOT="0" +IUSE="+acl audit cgroup-hybrid debug doc +pam +policykit selinux test" +RESTRICT="!test? ( test )" + +BDEPEND=" + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xml-dtd:4.5 + app-text/docbook-xsl-stylesheets + dev-util/gperf + virtual/pkgconfig + $(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]') + $(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]') +" +DEPEND=" + audit? ( sys-process/audit ) + sys-apps/util-linux + sys-libs/libcap + virtual/libudev:= + acl? ( sys-apps/acl ) + pam? ( sys-libs/pam ) + selinux? ( sys-libs/libselinux ) +" +RDEPEND="${DEPEND} + !sys-apps/systemd + >=sys-apps/systemd-utils-255.7-r4[udev] +" +PDEPEND=" + sys-apps/dbus + policykit? ( sys-auth/polkit ) +" + +DOCS=( README.md ) + +python_check_deps() { + python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" && + python_has_version "dev-python/lxml[${PYTHON_USEDEP}]" +} + +pkg_setup() { + local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD" + + use kernel_linux && linux-info_pkg_setup +} + +src_prepare() { + default + xdg_environment_reset + + # don't cleanup /dev/shm/ on logout on logout + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698 + sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \ + -i src/login/logind.conf.in || die +} + +src_configure() { + if use cgroup-hybrid; then + cgroupmode="hybrid" + else + cgroupmode="unified" + fi + + python_setup + + EMESON_BUILDTYPE="$(usex debug debug release)" + + local emesonargs=( + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html" + -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d + --libexecdir="lib/elogind" + --localstatedir="${EPREFIX}"/var + -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions" + -Dman=auto + -Dsmack=true + -Dcgroup-controller=openrc + -Ddefault-hierarchy=${cgroupmode} + -Ddefault-kill-user-processes=false + -Dacl=$(usex acl enabled disabled) + -Daudit=$(usex audit enabled disabled) + -Dhtml=$(usex doc auto disabled) + -Dpam=$(usex pam enabled disabled) + -Dpamlibdir="$(getpam_mod_dir)" + -Dselinux=$(usex selinux enabled disabled) + -Dtests=$(usex test true false) + -Dutmp=$(usex elibc_musl false true) + -Dmode=release + + # Ensure consistency between merged-usr and split-usr (bug 945965) + -Dhalt-path="${EPREFIX}/sbin/halt" + -Dkexec-path="${EPREFIX}/usr/sbin/kexec" + -Dnologin-path="${EPREFIX}/sbin/nologin" + -Dpoweroff-path="${EPREFIX}/sbin/poweroff" + -Dreboot-path="${EPREFIX}/sbin/reboot" + ) + + meson_src_configure +} + +src_install() { + meson_src_install + keepdir /var/lib/elogind + + rm "${ED}"/usr/share/doc/${PF}/LICENSE* || die + rm "${ED}"/usr/share/doc/${PF}/CODING_STYLE.md || die + + newinitd "${FILESDIR}"/${PN}.init-r1 ${PN} + + newconfd "${FILESDIR}"/${PN}.conf ${PN} +} + +pkg_postinst() { + udev_reload + if ! use pam; then + ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!" + ewarn "In other words, it will be useless for most applications." + ewarn + fi + if ! use policykit; then + ewarn "loginctl will not be able to perform privileged operations without" + ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate." + ewarn + fi + if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then + elog "elogind is currently started from boot runlevel." + elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then + ewarn "elogind is currently started from default runlevel." + ewarn "Please remove elogind from the default runlevel and" + ewarn "add it to the boot runlevel by:" + ewarn "# rc-update del elogind default" + ewarn "# rc-update add elogind boot" + else + elog "elogind is currently not started from any runlevel." + elog "You may add it to the boot runlevel by:" + elog "# rc-update add elogind boot" + elog + elog "Alternatively, you can leave elogind out of any" + elog "runlevel. It will then be started automatically" + if use pam; then + elog "when the first service calls it via dbus, or" + elog "the first user logs into the system." + else + elog "when the first service calls it via dbus." + fi + fi + + if ver_replacing -lt 252.9; then + elog "Starting with release 252.9 the sleep configuration is now done" + elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep" + elog "configuration remember to migrate those to new configuration file." + fi + + local file files + # find custom hooks excluding known (nvidia-drivers, sys-power/tlp) + if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then + readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \ + -type f \( -not -iname ".keep_dir" -a \ + -not -iname "nvidia" -a \ + -not -iname "49-tlp-sleep" \) || die) + fi + if [[ ${#files[@]} -gt 0 ]]; then + ewarn "*** Custom hooks in obsolete path detected ***" + for file in "${files[@]}"; do + ewarn " ${file}" + done + ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead." + fi +} + +pkg_postrm() { + udev_reload +} diff --git a/sys-auth/elogind/files/elogind-257.14-dbus-service.patch b/sys-auth/elogind/files/elogind-257.14-dbus-service.patch new file mode 100644 index 000000000000..19d0689d4d81 --- /dev/null +++ b/sys-auth/elogind/files/elogind-257.14-dbus-service.patch @@ -0,0 +1,20 @@ +https://bugs.gentoo.org/975147 + +From 1ed884548cc431a42b84ce67c600051e1f67ed09 Mon Sep 17 00:00:00 2001 +From: Sven Eden <sven@eden-worx.com> +Date: Mon, 1 Jun 2026 12:05:28 +0200 +Subject: [PATCH] src/login/meson.build: enable install for D-Bus service file + (#354) + +--- a/src/login/meson.build ++++ b/src/login/meson.build +@@ -208,7 +208,8 @@ if enable_logind + input: 'org.freedesktop.login1.service.in', + output: 'org.freedesktop.login1.service', + command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'], +- install_dir : dbussystemservicedir) ++ install_dir : dbussystemservicedir, ++ install : true) + #endif // 0 + + install_data( diff --git a/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild b/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild index 536ca5fa8176..e1167496d3ba 100644 --- a/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild +++ b/sys-cluster/sanlock/sanlock-5.1.0-r1.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://codeberg.org/${PN}/${PN}/releases/download/${P}/${P}.tar.gz" LICENSE="LGPL-2+ GPL-2 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="python selinux" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/sys-kernel/linux-docs/Manifest b/sys-kernel/linux-docs/Manifest index 88a609ceb497..725530957137 100644 --- a/sys-kernel/linux-docs/Manifest +++ b/sys-kernel/linux-docs/Manifest @@ -1 +1 @@ -DIST linux-6.18.tar.xz 154309096 BLAKE2B b94b7b9bf18aca0c3e50baf79b009a1448fc6cd9c3ee019f641cc247dcf53a4abef4274ee0608ad8cd4943af69854363a95d26e117ff23620bb07dccb158859f SHA512 88599ffdec96d150c1feb9b261ba93bb0301a9d0e1ad6bef7aeab1f5372cbfc57d8b43c7e902bd8f76921d1dbd8189663c142ea869e51d0e2b483b150ee00fe0 +DIST linux-6.18.33.tar.xz 154477844 BLAKE2B 94a5e7b4821fa1ee0c48fb14f0bc9aff1a6ac31ea1fb860b9c806fda17341d0c5fb0650c220530463170d936fb737d16eef956323368305c77b77e5e2f587f84 SHA512 6d6f6c4f9c6ac7974f9cd15ff4569e00d5c6bda58c54f6164c4ceb3161269caa768cb6ec33b04d6ff723edf34e5d2ac70405d9c41bd6ddbbd97dda480b90a4f5 diff --git a/sys-kernel/linux-docs/linux-docs-6.18.ebuild b/sys-kernel/linux-docs/linux-docs-6.18.33.ebuild index 2378dcfce4e7..53e99480bf83 100644 --- a/sys-kernel/linux-docs/linux-docs-6.18.ebuild +++ b/sys-kernel/linux-docs/linux-docs-6.18.33.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2025 Gentoo Authors +# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/sys-libs/libselinux/libselinux-3.10-r1.ebuild b/sys-libs/libselinux/libselinux-3.10-r1.ebuild index 959e3c761016..aea0eec53da5 100644 --- a/sys-libs/libselinux/libselinux-3.10-r1.ebuild +++ b/sys-libs/libselinux/libselinux-3.10-r1.ebuild @@ -24,7 +24,7 @@ if [[ ${PV} == 9999 ]]; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-libs/libsemanage/libsemanage-3.10.ebuild b/sys-libs/libsemanage/libsemanage-3.10.ebuild index edbfdcf8f8b9..8abadc71c9a0 100644 --- a/sys-libs/libsemanage/libsemanage-3.10.ebuild +++ b/sys-libs/libsemanage/libsemanage-3.10.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" S="${WORKDIR}/${MY_P}" fi diff --git a/sys-libs/libsepol/libsepol-3.10.ebuild b/sys-libs/libsepol/libsepol-3.10.ebuild index ae3408775d63..67fb105623ff 100644 --- a/sys-libs/libsepol/libsepol-3.10.ebuild +++ b/sys-libs/libsepol/libsepol-3.10.ebuild @@ -17,7 +17,7 @@ if [[ ${PV} == 9999 ]]; then S="${WORKDIR}/${P}/${PN}" else SRC_URI="https://github.com/SELinuxProject/selinux/releases/download/${MY_PV}/${MY_P}.tar.gz" - KEYWORDS="amd64 arm ~arm64 ~mips ~riscv ~x86" + KEYWORDS="amd64 arm arm64 ~mips ~riscv x86" S="${WORKDIR}/${MY_P}" fi diff --git a/www-client/ungoogled-chromium/Manifest b/www-client/ungoogled-chromium/Manifest index 9fced4951920..b851dbfbc37d 100644 --- a/www-client/ungoogled-chromium/Manifest +++ b/www-client/ungoogled-chromium/Manifest @@ -1,12 +1,19 @@ DIST chromium-148.0.7778.178-linux.tar.xz 1592152904 BLAKE2B 8d25be51cab30f196044a8e8da1e65afd025261bd316d0d8f9b8047fe2c0ac72ad8431bc9ca2d637488665a7a44565f6718073a2823fafa20ae1698a44045b84 SHA512 82ff2b4bf9a573cec83ec2e12edd2f1b576dd42ac38c0ac226e751c058c5b5c6afadafffb7d5dac00ac599317d22be8309d68cef2d9a976142ed8a0f1fc7ff2a DIST chromium-148.0.7778.215-linux.tar.xz 1593166200 BLAKE2B da7ba3258bd15cdd02ce8c30571e8dcca25d9093e7daefc64ef662b445384b93c6acd548f12561cad9f0fc06b249fdda9e9cfab887cd708d63cef97e6436a961 SHA512 09f381d2b69c5a377ab421727e084857680210754051e922a9d96ba486323f877130f4ae289c408ca0af15f3ba1d4cbcdb02877016c085c81ad35254787e9fbd +DIST chromium-149.0.7827.53-linux.tar.xz 1611305116 BLAKE2B 72018ef444c4769234e13dab7cbe0d2abd03d140631d7ba3cf0dcd4b6fa87f777cb8bbfa6b8100de2166f991f4557197545cac090a9935ddf6ec0f988610ad11 SHA512 36aa5854152d0c0ce338331be28c077aa2cf9edc45c608096368fbbdd84700df4d428daf67b7c76c36a3ff423ccd5b5f6518814bc87facce3d2da529e9dafafd +DIST chromium-clang-llvmorg-23-init-10931-g20b6ec66-8.tar.xz 69605340 BLAKE2B 5ab6a03bfa76a8523d35c9f9541bc8aff2c33331208ffd2c729e6cd7e6d58e225d236ca8233893df57a52d4cefb0c62d79d61c8f902fbd909cdac8f148822fb8 SHA512 6e013faba35b624144535207c5c884d4675e4166f4eb212d2494c43dbb430b35030734d6f28fc087f5da79a8318531560529a0d0754a96d13e628eb5090de6b5 DIST chromium-clang-llvmorg-23-init-5669-g8a0be0bc-4.tar.xz 68803796 BLAKE2B 334d273c85a8e22dd7f6eec0f0591d54c5acdf85d01925511d0e912c611f5f07c448b3ff35925b4329307a601439dbabf54f5ee186f3b11d1229dc531e2a26af SHA512 570f00c716dd9d6f8ecc1d6364f735884e0485fba5d003bb45e8095cc60215107d11272702c387ce7273400a8c1679180ac5b51ec639e81fc73657aa55043903 DIST chromium-openpower-a85b64f07b.tar.bz2 387899 BLAKE2B b01fda2d64ce73068d1536a10cc0896f07a4b714cdb25698b1df8b3252baa0c21c4209b307cf1cb554854f6d0bfe3cd35e06aaa8d02ac5d409a119335084c324 SHA512 05eee81677e8766808441c939bee68e2e6c58ec91f471d88a40181d2eda78614a0a6d27d92ff8f9dda564d12f3451bace4ff2727594748c5c238a3533038019b DIST chromium-patches-148-3.tar.bz2 20088 BLAKE2B 063146caf3fae4c4522e00c0abcbbd32652e4f401a81a6cfece043c36189a4177507ef9f44fc733e470d654e079e51e1ee3cd31604f55fd7625567406a228345 SHA512 769ada4905ad216ee1d6595d15dd88a9e2af432f820fc277d9483a5cb19357b15b5e9a94078a54b5c002afc6a7e7b1739f8d7d41893ea6d15f32e3df23555009 +DIST chromium-patches-149-2.tar.bz2 21452 BLAKE2B b9f9ce66998eaa3ff7d23b1d1296ad4a7a984bed08b2031a6e9398e2f724280ca2b4bdd48ddb415cdb5e79f952545c8d322ef3d007f1e5f8303307e45704dd7a SHA512 a318ab70ee226519f02bc114343c4f9794569252f1a2857a71adefdcdd66c6de9ac1ef48ac25e71cef4cbea2c2a56aa537fde7f7142d48e9aedbf1b81c78d027 +DIST chromium-patches-copium-b00f26bb5e.tar.gz 15099 BLAKE2B 886897afba6cb4495ab74298d8ae72643294dba1996a5a7d2939f83fb4af1cb599f7e4cd263b852fe595cf52e0a3689305d6a3c028014f9c4172df7deaf3e2dd SHA512 c337bcb6487252fa679b5910672230677aba87fa7572ecbfea32b369785326e12f06fd3d44c65f16fe32c1e83b5b8e710e81c970cdf03f24f25a68577f6984b9 DIST chromium-patches-copium-fe1caafa06.tar.gz 15572 BLAKE2B 4baa36a4536f9199caa89553fc10deac79ae7effa336fc4bd92fac59eb81a57749eead426e6f01ffecd9954b417eb34c29c899cc49a9d726fe65bf2e303712a0 SHA512 5310e48743a32f2f998b34138b1ed9667feed873ad16c18d3e495383f44a0d5df0f9634c7c4275cf1839002ae887ef58f6c3ec5fd9c5d46ad5114ffab439a664 +DIST chromium-rust-toolchain-4c4205163a-2-llvmorg-23-init-10931-g20b6ec66.tar.xz 274625900 BLAKE2B dc3851eb65570795fd789abe5135291cbfeb1fbf9df2c9c9fa3d61b6e3fb0daeb90b43f18c733e28e60bc138391fa9bb028ad3e5b5a4d5acad6addaeef8abdd4 SHA512 6894b2abc7d0e56784485d600d87a1adb373fdf25001c3be2a05d455584b7648ac458938fa84c9f5db4e8bac4c320e8e162b15e05dd8252c1749962a7f5c5e6e DIST chromium-rust-toolchain-6f54d591c3-7-llvmorg-23-init-5669-g8a0be0bc.tar.xz 271641712 BLAKE2B 7436b7243fbdd2c46b6dd0d9e16a6727718bfdc1870df86395229f3f6420e6109d5e5b881b21c48e2e1434844e4d7a6080bf36c2877a60e0f61f3baa9b803389 SHA512 420122a3b4fd984a848d47aed7cd04c3fb9bbdc5e0413c94165a6dc091713ca5f2dfd78dc238357ce05ea547bdd8a36d116f106bd4d94a54e358f0e93c7a6028 +DIST chromium-testfonts-9c07d19d9c.tar.gz 33413117 BLAKE2B 95cb79288de5697b6de2a6f503f81bcfb7687ea1af0bd0e6db8cfc09af7cdaedd9a83f36dd9d0a3ac19dfca8ac7a6c3a891922a192db012688565c06da8a9cf8 SHA512 2d3602b7a924d2bb8d538882f13a05428e23bf16ea3a9cf07eb13801fe7f33261ce61f2e5dc12e5c6f61f21b392526024d1969e8a967cf1f5138c647b84025b6 DIST chromium-testfonts-a28b222b79.tar.gz 33233004 BLAKE2B 2329d6a6069a19058c6fd58b61ae2d66cff3b4971984a5d2449be708ead2ef169bd4401ba3b5e9d3aedeeb910b6bb8e7c81b6e338808df327b3102420d6ab2d0 SHA512 ca4f98300f2037a40e02f6c2ffa04427fdf08cdce8de34cc944a5ccb69d4279090d2b8476d5e77bd610db6542696eb3ed4d135c3462fc0375cbf9277bf2fa670 DIST cromite-cb3baf14f52eb4365d017f640f85310735c19b79.tar.gz 175351669 BLAKE2B f578d0783d2af02d62de152fea5364465aee457bc82c84cb9533d07683e475cdb0ede81999d526b1a3acd6fd78a9b06a18a4325c76c3c7a7fe0dfef08a42dbd8 SHA512 a6c97e36e5056a2fd0b8b2d708de637edf51f91a83561b124fe798d177edf37bdd7cf272f692a7b814d853da5ecf3bea63768d7e18078e4c1e04998f0aaa0ee3 DIST rollup-wasm-node-4.57.1.tgz 792515 BLAKE2B 52fa9c4b65f3e20149c66fdd44b3c2a8b47e836d87de85535dbbf8b7243acef3d65c5be9f794eebb1533af2f16888a1cb42a75ed392ba65251cf60b73b41d559 SHA512 6f4adc247f329046a77e04de0ed94fb9b86984850ec74a1a01e93ede18b34da164a02d450524ec6341a2c700780f91d9e6bdc6b76c88f5cf0cd7739c5bf916e4 DIST ungoogled-chromium-148.0.7778.178-1.tar.gz 661720 BLAKE2B 24aa515095c25725f9abf38a7d9c8ea3a92eaf3f575dedd3c3c80a6f111a11f3dec585012a50c9e4c00e3129d910eb171526aea4a5d64d3b6f2a18cddcaa655f SHA512 ebd236bc2c8e686b29a9a2be47b8355f6e1b489858e4ba12ba8e7f09c2ec4df45bcea9405e4577e9ec52888dff33e3ee2458dfa8695002f9397d75f317f1f49c DIST ungoogled-chromium-148.0.7778.215-1.tar.gz 662274 BLAKE2B f7b5572128a48af4711512f9c1c43b1bcae3f6a41d3e5fda7916a50f276e878c92dfad1e2f457d55abf7665d6b2a09d1a08306c2e61d0ae456d78991c949949b SHA512 725bce1e30177918468f0d68f91cf4c254e22ba8497bcc01241547ac5826d5f30e22ca977692165402696afaa943a6755a7e85ad749d33963717e21a8e114dcb +DIST ungoogled-chromium-4a7dad94814d52c463602516d1371587631a3bed.tar.gz 664161 BLAKE2B 350aaf3394aafb275a7e9f5be07681245e782a0f55cf1c30fa9935a5edfcac52fdfffcda48eed141264a5100089d4a925f24f4afc678d7347460262534647e18 SHA512 e3cd3cd0f7991ee3cd827cc1ac175b828af9e8981b01446ac6f972e534509c399f67dadc313a259f7df3e3b64b128493eb4290b67a175ed0fc1cdf5fcd931671 diff --git a/www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild b/www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild new file mode 100644 index 000000000000..bf3b3bd81e04 --- /dev/null +++ b/www-client/ungoogled-chromium/ungoogled-chromium-149.0.7827.53_p1.ebuild @@ -0,0 +1,2515 @@ +# 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-10931-g20b6ec66-8" +BUNDLED_RUST_VER="4c4205163abcbd08948b3efab796c543ba1ea687-2" +RUST_SHORT_HASH=${BUNDLED_RUST_VER:0:10}-${BUNDLED_RUST_VER##*-} +NODE_VER="24.12.0" +ESBUILD_VER="0.25.1" +ROLLUP_VER="4.57.1" # currently manual. + +UGC_COMMIT_ID="4a7dad94814d52c463602516d1371587631a3bed" +# UGC_PR_COMMITS=( +# c917e096342e5b90eeea91ab1f8516447c8756cf +# 5794e9d12bf82620d5f24505798fecb45ca5a22d +# ) + +CROMITE_COMMIT_ID="cb3baf14f52eb4365d017f640f85310735c19b79" + +#declare -A CHROMIUM_COMMITS=( +# ["fcfb1a42813f1e9d8babedc7bb2e0f06101a3151"]="." #148+ +# ["-acb47d9a6b56c4889a2ed4216e9968cfc740086c"]="." +# # ["-37c28a19804e47a68eabf3cf882a310689fc325b"]="." #disable style check for cromite +# # ["cd5a0df905a28faa89ff2a4ab44f893f84dc4487"]="net/third_party/quiche/src" +#) + +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" + +LLVM_COMPAT=( 21 22 23 ) +PYTHON_COMPAT=( python3_{11..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="a85b64f07b489b8c6fdb13ecf79c16c56c560fc6" +PATCH_V="${PV%%\.*}-2" +COPIUM_COMMIT="b00f26bb5e0781020da5f830981472a142c6baf1" +SRC_URI="https://github.com/chromium-linux-tarballs/chromium-tarballs/releases/download/${PV/_*}/chromium-${PV/_*}-linux.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="beta" +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 + " + 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:= + 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? ( + 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:${SLOT}[-override-data-dir] + ) +" + +DEPEND="${COMMON_DEPEND} + !headless? ( + 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} + 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 +} + +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 + + # 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 + + 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 + + # 936858 + if tc-ld-is-mold; then + eerror "Your toolchain is using the mold linker." + eerror "This is not supported by Chromium." + die "Please switch to a different linker." + fi + + 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. + 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 + + 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/_*}-linux.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" + if use pgo; then + rm "${WORKDIR}/chromium-patches-${PATCH_V}/rust/cr146-fix-botched-bytemuck-roll.patch" + 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 + + #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 + + PATCHES+=( "${WORKDIR}/chromium-patches-${PATCH_V}/common/" ) + PATCHES+=( "${FILESDIR}/restore-x86-r3.patch" ) + + # https://issues.chromium.org/issues/442698344 + # Unreleased fontconfig changed magic numbers and google have rolled to this version + if has_version "<=media-libs/fontconfig-2.17.1"; then + PATCHES+=( "${FILESDIR}/chromium-142-work-with-old-fontconfig.patch" ) + fi + + 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" + "${WORKDIR}/copium/cr149-unbundle-minizip-undo-unicode.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" + 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" + ) + 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}/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; upstream is woefully out of date (2015!) + sed 's|//third_party/usb_ids/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/esm/third_party/mitt + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs + third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/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/src/fcp/base + third_party/federated_compute/src/fcp/confidentialcompute + third_party/federated_compute/src/fcp/protos/confidentialcompute + third_party/federated_compute/src/fcp/protos/federatedcompute + 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/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 + ) + use libcxx && keeplibs+=( + third_party/libc++ + ) + keeplibs+=( + 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/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/glibc + 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 +} + +src_configure() { + # Calling this here supports resumption via FEATURES=keepwork + python_setup + + # 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. + use arm64 && filter-flags "-march*" "-mtune*" "-mcpu*" + fi + + # 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. + "use_lld=true" + 'custom_toolchain="//build/toolchain/linux/unbundle:default"' + # From M127 we need to provide a location for libclang. + # We patch this in for gentoo - see chromium-*-bindgen-custom-toolchain.patch + # rust_bindgen_root = directory with `bin/bindgen` beneath it. + # We don't need to set 'clang_base_path' for anything in our build + # and it defaults to the google toolchain location. Instead provide a location + # to where system clang lives so that bindgen can find system headers (e.g. stddef.h) + "bindgen_libclang_path=\"$(get_llvm_prefix)/$(get_libdir)\"" + "clang_base_path=\"${EPREFIX}/usr/lib/clang/${LLVM_SLOT}/\"" + "rust_bindgen_root=\"${EPREFIX}/usr/\"" + "rust_sysroot_absolute=\"$(get_rust_prefix)\"" + "rustc_version=\"${RUST_SLOT}\"" + ) + + 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" + ) + + 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)" + "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 + "build_with_tflite_lib=false" + "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 ..." + 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*' + # requires en-us locale + SysStrings.SysNativeMBAndWide + SysStrings.SysNativeMBToWide + SysStrings.SysWideToNativeMB + # Specific test cases + CancelableEventTest.BothCancelFailureAndSucceedOccurUnderContention + FilePathTest.FromUTF8Unsafe_And_AsUTF8Unsafe + HistogramTesterTest.PumaTestUniqueSample + PathServiceTest.CheckedGetFailure + PlatformThreadTest.CanChangeThreadType + RawPtrTest.SetLookupUsesGetForComparison # M146 ; also broken for alpine in M144. + RustLogIntegrationTest.CheckAllSeverity + StackCanary.ChangingStackCanaryCrashesOnReturn + StackTraceDeathTest.StackDumpSignalHandlerIsMallocFree + TestLauncherTools.TruncateSnippetFocusedMatchesFatalMessagesTest + ThreadPoolEnvironmentConfig.CanUseBackgroundPriorityForWorker + ) + 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/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild b/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild index 9ec0bcc9cadf..fee143044b1e 100644 --- a/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild +++ b/x11-libs/libfm-qt/libfm-qt-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="BSD GPL-2+ LGPL-2.1+" diff --git a/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild b/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild index 47d7a284bd38..c6b5c5559e8d 100644 --- a/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild +++ b/x11-libs/qtermwidget/qtermwidget-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="BSD GPL-2 LGPL-2+" diff --git a/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild b/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild index 32985167fd43..f42147db46ea 100644 --- a/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild +++ b/x11-misc/pcmanfm-qt/pcmanfm-qt-2.4.0.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2 GPL-2+ LGPL-2.1+" diff --git a/x11-misc/qps/qps-2.13.0.ebuild b/x11-misc/qps/qps-2.13.0.ebuild index 6bf5ead058ee..ffa85320fee2 100644 --- a/x11-misc/qps/qps-2.13.0.ebuild +++ b/x11-misc/qps/qps-2.13.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2 GPL-2+ LGPL-2.1+ QPL-1.0" diff --git a/x11-misc/screengrab/screengrab-3.2.0.ebuild b/x11-misc/screengrab/screengrab-3.2.0.ebuild index e1eefd58a136..1002c39dc8e3 100644 --- a/x11-misc/screengrab/screengrab-3.2.0.ebuild +++ b/x11-misc/screengrab/screengrab-3.2.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2 GPL-2+ LGPL-2.1+" diff --git a/x11-terms/qterminal/qterminal-2.4.0.ebuild b/x11-terms/qterminal/qterminal-2.4.0.ebuild index 76b8304531f9..4679f3f85d49 100644 --- a/x11-terms/qterminal/qterminal-2.4.0.ebuild +++ b/x11-terms/qterminal/qterminal-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="GPL-2 GPL-2+" diff --git a/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild b/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild index 32965cc320bc..6be26f82c4b0 100644 --- a/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild +++ b/x11-themes/lxqt-themes/lxqt-themes-2.4.0.ebuild @@ -16,7 +16,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" else SRC_URI="https://github.com/lxqt/${PN}/releases/download/${PV}/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 ~riscv ~x86" + KEYWORDS="amd64 arm64 ~ppc64 ~riscv ~x86" fi LICENSE="LGPL-2.1+" |
