diff options
Diffstat (limited to 'dev-util')
21 files changed, 810 insertions, 311 deletions
diff --git a/dev-util/codex/Manifest b/dev-util/codex/Manifest index 2fff1d2cc142..1ef09ac80f3c 100644 --- a/dev-util/codex/Manifest +++ b/dev-util/codex/Manifest @@ -1,8 +1,12 @@ -DIST codex-0.116.0.tar.gz 6546602 BLAKE2B cef82571e88f1096f031fac23310806b132d3c7a308135d7d49eadc7d02fe27e4b75a308d091287e92b1cbf932d665d9af8605e9ed7fd8e9e9e87a6d294a8902 SHA512 22d664b46c1678e09002180b4caf89fcbaf10aab0ff395526a1c90a40b51b78b4c96bc03ff6860cf208e41f603bc1e0f3b37073e3830385399fc82f63f2cbdec -DIST codex-rust-v0.116.0-crates.tar.xz 87136104 BLAKE2B cca8a1288c271338bc2c9f1fcccc44ed0eadfbce0cd24cb8ab983a2347592ab493eaa88ffebb7f5f181a478d273421f53bf326e555aea87e334478f6719e1f30 SHA512 c6e4bccaa9438e038d386e5b4a9cc9f0786172431e5aa38a386148be3f2e90bdd5298fb23c1d3097635876e81fd6aa4043a66a1c65dc6bad84b84b3b67e3de7c +DIST codex-0.117.0.tar.gz 6844073 BLAKE2B 49922cc0b7ddc4f05b6494d12367d6cd72b666d02f7059202bbf7737b8f7aad3a961b0dccd0fddfe82703336f8a691f6ef62798403b60a9354667be193f8c98c SHA512 8a553512c63444a48264c2afb9fbe0ad47b3e22c7723185b1a0d70b57b06943fe443632023d778fed48435e0141351828d2410779cda88e55ae8ebc3d1685e6e +DIST codex-rust-v0.117.0-crates.tar.xz 109804988 BLAKE2B b2531821768de9a6d13a27b7d9112591da3659bb88d49f1341e961c231f7e0de04f91d42fe99217240b6949de725bdf9fe70b2423f22cca643f546d6e5dbe474 SHA512 9996fa14ac70e63344bbe17246d386911810ff00c512246eed5bf0f537710c92ec6dc0077204f0e911d65818483ad91cdf6c1e11741e924724aee97a8e862c37 DIST crossterm-87db8bfa6dc99427fd3b071681b07fc31c6ce995.gh.tar.gz 129254 BLAKE2B 414dacc3a682c7a6dc5c9e43f185966255205d18f0522ee7eae73b5f113b4c3ea9b132e6dee81783d4ce160e4bf95aab784cf3601d666265bef4f889d5e46e68 SHA512 9dc7247d081a25d18776c9c0fd7fe3373f372950728b7fcf5ff43aaa6f7d69f11e1dbd91f92991cbe73007eb9e78c9a901b2388c27ddd6898553fdcef7fdaf44 DIST nucleo-4253de9faabb4e5c6d81d946a5e35a90f87347ee.gh.tar.gz 86782 BLAKE2B a812a2d2f08df818ac7b13b800f51c4229ea1f968668b1224fbc1fd82fb4e045f6b2c536ec6d2647a579097efbddaf041f4b7b356107679156aaa3ca5a9d4068 SHA512 354061278efce55defb30b9ee2ef5cdab745ab56d7d113f6f47a8ac174b4215ec6efe15c15bef0e3d907350182c0d189071e9d7d17d40e807d4db5361682f4e0 DIST ratatui-9b2ad1298408c45918ee9f8241a6f95498cdbed2.gh.tar.gz 566574 BLAKE2B 97f09fda6a798afb00067debab30b89d35aa00bfd284d2ef95fd6176aaa680121a8eee9b8dbe605e6230a6e72ead7b5d4e57ddf4892bcfe93f2fcbbafaba88d2 SHA512 b2ab8bcf19cfd649b8fbbc6752b628f69e79b09e8f8258ea9112ce4348dee512d9e718b5310fc73de65239b51b2b1b593942974f9698bd080616ab389093f4ef DIST rules_rust-b56cbaa8465e74127f1ea216f813cd377295ad81.gh.tar.gz 3951333 BLAKE2B e369b7ccc25326726340fced4c8f8f9181f02f45be9d5f24d00201999a2b11c42d010e7623429b1910db7fdfdf4c202e061a5ba5db722d3126ee26d9597d7e0d SHA512 3f2ef3d7940096fa34b85ee0d9979085fe99c7d2ae8c5ed9399bd5cf8370a31fa93d16c752f22166b42d30c2b7f9f921f7a963928519592e3ffd588644d3b1c7 +DIST rusty_v8_146.4.0_librusty_v8_release_aarch64-unknown-linux-musl.a.gz 28076631 BLAKE2B 5921c6c748b30305a664d5bb7b277050ec0c8d371cf65ebe854e4f80fb3d3305de1cc91811815ffca82105da0997de5a218c14261eae421b7eb0c48694d655a7 SHA512 5b08ca87648f5a68bd1c76f0ed639a195fd0462ecb6c12e71539c7bf76631129ca6959769b2df3442ccfb10ed4cf40f90d2c380b011481bee1b1c41397f92035 +DIST rusty_v8_146.4.0_librusty_v8_release_x86_64-unknown-linux-musl.a.gz 28580418 BLAKE2B d81319c7831c25547891cbfa0ab7343055f20b56332803b05ad384825253a6f95df4ab00095189cb29c16876682c81c57c026bda0c468aa4bc5bad90ac6184c2 SHA512 48b6d6cd7c49f6a7c930f0ab544dd853ef9e675b834ade657a85da17e6676bfefdf8cec79bd52fcf9b44d706a43ee32d87cbabc821821aef93296abd2dd03309 +DIST rusty_v8_146.4.0_src_binding_release_aarch64-unknown-linux-musl.rs 40796 BLAKE2B d404cf1a76c24e9129ecd1dbe98414b313f7505c3a5f6dee228450dc0a1853ab126834ae6f269eb52302d6cf6e1d036b3295d8d4dc2c4fa16a82d5efc2ba7056 SHA512 b8f83d78ae71361722b374acb4d2e24adc1900456107bf81e82cd677770505a98efff2ae8b8fedd911bc35e9365ad1adc66420675b6d77248c70eab03613b77f +DIST rusty_v8_146.4.0_src_binding_release_x86_64-unknown-linux-musl.rs 40796 BLAKE2B d404cf1a76c24e9129ecd1dbe98414b313f7505c3a5f6dee228450dc0a1853ab126834ae6f269eb52302d6cf6e1d036b3295d8d4dc2c4fa16a82d5efc2ba7056 SHA512 b8f83d78ae71361722b374acb4d2e24adc1900456107bf81e82cd677770505a98efff2ae8b8fedd911bc35e9365ad1adc66420675b6d77248c70eab03613b77f DIST tokio-tungstenite-132f5b39c862e3a970f731d709608b3e6276d5f6.gh.tar.gz 31620 BLAKE2B 139395aeb58bf9ad632efd3c9a8d58d888b55da14129529b453fbf3b49cf5323f0d89912a25b30bc238673b729f4d4ff243826c9a5a25426ba6d77913c42b041 SHA512 8784ff79f1f78be5884a085b1a89300257df2a1b7d82c6a226961fd949c9a5a6ba3d825db8db6bc5e314ee184fd2f3bd0a3bf36923744f6a708870ca7ddaf76b DIST tungstenite-rs-9200079d3b54a1ff51072e24d81fd354f085156f.gh.tar.gz 293929 BLAKE2B c3ce0b5f2939fc6dbbe5d0d539b3e7951e40cd646232086a023a8dba96c2160c6a5e61159463a071b1c97f6150a335cf844f53aa64c4751253eb7177c3720258 SHA512 44dd8c0dc60c86a5feb047002b8f9dae167a6ddf5c23e2ca8604018bfd0a24bfa2f1457a2715586c925d0639d0cfbb64931328addbc06a645c3744927fa76e2d diff --git a/dev-util/codex/codex-0.116.0.ebuild b/dev-util/codex/codex-0.117.0.ebuild index 4a3cc0ac3910..bde364e97c37 100644 --- a/dev-util/codex/codex-0.116.0.ebuild +++ b/dev-util/codex/codex-0.117.0.ebuild @@ -31,6 +31,9 @@ declare -A GIT_CRATES=( RUST_MIN_VER="1.93.0" +# python3 .github/scripts/rusty_v8_bazel.py resolved-v8-crate-version +RUSTY_V8_TAG="146.4.0" + inherit cargo DESCRIPTION="Codex CLI - OpenAI's AI-powered coding agent" @@ -42,6 +45,18 @@ HOMEPAGE="https://github.com/openai/codex" SRC_URI=" https://github.com/openai/${PN}/archive/rust-v${PV}.tar.gz -> ${P}.tar.gz https://github.com/gentoo-zh-drafts/codex/releases/download/rust-v${PV}/codex-rust-v${PV}-crates.tar.xz + amd64? ( + https://github.com/openai/codex/releases/download/rusty-v8-v${RUSTY_V8_TAG}/librusty_v8_release_x86_64-unknown-linux-musl.a.gz + -> rusty_v8_${RUSTY_V8_TAG}_librusty_v8_release_x86_64-unknown-linux-musl.a.gz + https://github.com/openai/codex/releases/download/rusty-v8-v${RUSTY_V8_TAG}/src_binding_release_x86_64-unknown-linux-musl.rs + -> rusty_v8_${RUSTY_V8_TAG}_src_binding_release_x86_64-unknown-linux-musl.rs + ) + arm64? ( + https://github.com/openai/codex/releases/download/rusty-v8-v${RUSTY_V8_TAG}/librusty_v8_release_aarch64-unknown-linux-musl.a.gz + -> rusty_v8_${RUSTY_V8_TAG}_librusty_v8_release_aarch64-unknown-linux-musl.a.gz + https://github.com/openai/codex/releases/download/rusty-v8-v${RUSTY_V8_TAG}/src_binding_release_aarch64-unknown-linux-musl.rs + -> rusty_v8_${RUSTY_V8_TAG}_src_binding_release_aarch64-unknown-linux-musl.rs + ) ${CARGO_CRATE_URIS} " @@ -54,7 +69,7 @@ LICENSE+=" MPL-2.0 Unicode-3.0 ZLIB " SLOT="0" -KEYWORDS="~amd64 ~arm64" +KEYWORDS="-* ~amd64 ~arm64" # Tests fail due to ring crate conflicts with system OpenSSL RESTRICT="test" @@ -99,7 +114,13 @@ src_prepare() { } src_compile() { - cargo_src_compile --package codex-cli + local rusty_v8_triple + use amd64 && rusty_v8_triple=x86_64-unknown-linux-musl + use arm64 && rusty_v8_triple=aarch64-unknown-linux-musl + + RUSTY_V8_ARCHIVE="${DISTDIR}/rusty_v8_${RUSTY_V8_TAG}_librusty_v8_release_${rusty_v8_triple}.a.gz" \ + RUSTY_V8_SRC_BINDING_PATH="${DISTDIR}/rusty_v8_${RUSTY_V8_TAG}_src_binding_release_${rusty_v8_triple}.rs" \ + cargo_src_compile --package codex-cli } src_install() { diff --git a/dev-util/forgejo-runner/Manifest b/dev-util/forgejo-runner/Manifest index e3ff6906f423..cf75bef799d0 100644 --- a/dev-util/forgejo-runner/Manifest +++ b/dev-util/forgejo-runner/Manifest @@ -1,6 +1,2 @@ -DIST forgejo-runner-12.5.3-deps.tar.xz 54999260 BLAKE2B 59d88a51db7812c8b5083627bef25500b4924fbaf0d043118f75592db2d19c3514a7ff27f26cfdae8f20bdff1c7aff2a34b1d4bdec9dcd7e03ee1382e121b9f7 SHA512 48f4579a32393c235c5fd45e605bddf574a45260acd14326e609120ae3cdb4e2acf13be0ece01e390a6db7f797e633cc81e0d36c3cd96dabbcc5a624a8d9227a -DIST forgejo-runner-12.5.3.tar.gz 3476349 BLAKE2B 343acfc40cb137fc9111b38e4a07776cab6a8f125425b5d1125065c743336f23268d0dd608b8cc2e3a51055a7d954f9c428c050efa8c3e50baa1ec7369f7f5fd SHA512 e55a5042cdb9c1e8325d0f111f8d9bdc5640c7ed1ed0cfd6e7b6bd383fbf08677d877212733eab2d2736c58c9b051074d0921a2022deeb110e77347b70a88832 -DIST forgejo-runner-12.6.1-deps.tar.xz 54995188 BLAKE2B bbc273aaa5a7ec4f071f2309070957a4f4d53581baaa498065b03aba0e2b7eb7564c25627a8bb2dd0d803190bd8c4b25ac34f5d40bfb0ca0f66d7c999eac140c SHA512 a4fa6b42d79b3eb5230ce65a44fbf8057d11705b409a5fba4e19ea05e4cd12eadd17f0ad675bcfb23c0ed48f378ed2223b1c2f7b662e19c7c080f01bf86b96ba -DIST forgejo-runner-12.6.1.tar.gz 3481504 BLAKE2B 7dd5c22097ec46935af2854a8fd676564ec07bc06eb626a94ca89cc12af00fc35fac169495e92126d9be5dc294e928dee1b79f8a4f41bb9eed81c1653f106f6c SHA512 99f111bde4829c2292273dc5083f2499102e024b903e49de9094005ffe78db403f90af9b62e487d52e2bfb340e53a796bad73b4206a2487c9cec73049aff1c4c -DIST forgejo-runner-12.7.2-deps.tar.xz 96855144 BLAKE2B 9eab44901f3b0648315ecec10348c3679c6200cc7b09f3a151ec0b483e43e0780311d7f972a15765abf983ce3f7bc7f65ed893ebcd1057e7c1529c760d151cb4 SHA512 e8ae9c21c5b4f4ac60d2b13bbeafffc1dcf2869bbe2f4319f521e5e03005133d3fdf9656c3692b119614521baae6cca78d706638ba285d9c1c5c1ee9d9554419 -DIST forgejo-runner-12.7.2.tar.gz 3500658 BLAKE2B 5ced7426cc6c2783e4d8c1f6fa12e3be39daa821d0edbbda6c36440426032f521631ca01b4ccdbb28d43fb64704bbcd74e5b26aaf8b1b361cbf328ca7b2f39da SHA512 20be1d9c2be48197008dc4d8ce6d950b62fc09e43e7105fd509d5e67f261acaf5470a504a6c3d09c076c6f3971a2d16f1a8d4aefadee3041ae203af21d1ebe1c +DIST forgejo-runner-12.7.3-deps.tar.xz 96877712 BLAKE2B e2d1558baa423e1815ee3fc68c22cce6168a7c09df930c0d26a5b39f56e34b8ab16d8a8dd55bdc9db44f68a808803830be128831955c7d3da72d8e69cc72cd84 SHA512 abda81b16f2cb72c962b69d0fc49b511e92403d7b27bec9c34ad8c8ecdef8d4e4b2db52e851def249b6c41ca4f299b256a9a52d3246075bdb29a7655c23af235 +DIST forgejo-runner-12.7.3.tar.gz 3501042 BLAKE2B 6f544ee6e2e3c13427500c2699d3e4fa91331628aa0c524952720d41ce251542080c4d4f99e288161372fb5f614e5236089d76557f9b7ff89d5823f0339730d2 SHA512 34e4e38669e20058c5a6d5743986b8ce5a5cf829ba93c34cecc70f1cd42dc334c1f1cbce56e7cdf295d9d966c8ff0a9dab803e19a36c04883891adf34304af0b diff --git a/dev-util/forgejo-runner/forgejo-runner-12.5.3.ebuild b/dev-util/forgejo-runner/forgejo-runner-12.5.3.ebuild deleted file mode 100644 index 470d72feb4c7..000000000000 --- a/dev-util/forgejo-runner/forgejo-runner-12.5.3.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 2024-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -inherit go-module systemd - -DESCRIPTION="A daemon that connects to a Forgejo instance and runs jobs for CI" -HOMEPAGE="https://code.forgejo.org/forgejo/runner https://forgejo.org/docs/next/admin/actions/" - -if [[ "${PV}" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://code.forgejo.org/forgejo/runner.git" -else - SRC_URI=" - https://code.forgejo.org/forgejo/runner/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-deps.tar.xz - " - S="${WORKDIR}/runner" - - KEYWORDS="~amd64 ~arm64" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="examples" -RESTRICT="test" - -DEPEND=" - >=dev-lang/go-1.24.0 -" - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION="$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - )" - else - VERSION="${PVR}" - fi - - local EXTRA_GOFLAGS_LD=( - # "-w" # disable DWARF generation - # "-s" # disable symbol table - "-X=code.forgejo.org/forgejo/runner/v11/internal/pkg/ver.version=v${VERSION}" - ) - - GOFLAGS+=" '-ldflags=${EXTRA_GOFLAGS_LD[*]}'" - - ego build -tags 'netgo osusergo' -o forgejo-runner - - # Makefile does this - # emake forgejo-runner -} - -src_install() { - dobin forgejo-runner - - systemd_dounit "contrib/forgejo-runner.service" - - dodoc "README.md" - if use examples; then - dodoc -r "examples" - docompress -x "/usr/share/doc/${PF}/examples" - fi -} diff --git a/dev-util/forgejo-runner/forgejo-runner-12.6.1.ebuild b/dev-util/forgejo-runner/forgejo-runner-12.6.1.ebuild deleted file mode 100644 index 470d72feb4c7..000000000000 --- a/dev-util/forgejo-runner/forgejo-runner-12.6.1.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 2024-2026 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 -inherit go-module systemd - -DESCRIPTION="A daemon that connects to a Forgejo instance and runs jobs for CI" -HOMEPAGE="https://code.forgejo.org/forgejo/runner https://forgejo.org/docs/next/admin/actions/" - -if [[ "${PV}" == *9999* ]]; then - inherit git-r3 - EGIT_REPO_URI="https://code.forgejo.org/forgejo/runner.git" -else - SRC_URI=" - https://code.forgejo.org/forgejo/runner/archive/v${PV}.tar.gz -> ${P}.tar.gz - https://github.com/gentoo-golang-dist/${PN}/releases/download/v${PV}/${P}-deps.tar.xz - " - S="${WORKDIR}/runner" - - KEYWORDS="~amd64 ~arm64" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="examples" -RESTRICT="test" - -DEPEND=" - >=dev-lang/go-1.24.0 -" - -src_unpack() { - if [[ "${PV}" == *9999* ]]; then - git-r3_src_unpack - go-module_live_vendor - else - go-module_src_unpack - fi -} - -src_compile() { - # export version information - # https://github.com/gentoo/guru/pull/205 - # https://forums.gentoo.org/viewtopic-p-8831646.html - local VERSION - if [[ "${PV}" == *9999* ]]; then - VERSION="$( - git describe --tags --first-parent --abbrev=7 --long --dirty --always \ - | sed -e "s/^v//g" - )" - else - VERSION="${PVR}" - fi - - local EXTRA_GOFLAGS_LD=( - # "-w" # disable DWARF generation - # "-s" # disable symbol table - "-X=code.forgejo.org/forgejo/runner/v11/internal/pkg/ver.version=v${VERSION}" - ) - - GOFLAGS+=" '-ldflags=${EXTRA_GOFLAGS_LD[*]}'" - - ego build -tags 'netgo osusergo' -o forgejo-runner - - # Makefile does this - # emake forgejo-runner -} - -src_install() { - dobin forgejo-runner - - systemd_dounit "contrib/forgejo-runner.service" - - dodoc "README.md" - if use examples; then - dodoc -r "examples" - docompress -x "/usr/share/doc/${PF}/examples" - fi -} diff --git a/dev-util/forgejo-runner/forgejo-runner-12.7.2.ebuild b/dev-util/forgejo-runner/forgejo-runner-12.7.3.ebuild index 00723ae46799..7374532d681f 100644 --- a/dev-util/forgejo-runner/forgejo-runner-12.7.2.ebuild +++ b/dev-util/forgejo-runner/forgejo-runner-12.7.3.ebuild @@ -22,13 +22,18 @@ fi LICENSE="MIT" SLOT="0" -IUSE="examples" -RESTRICT="test" +IUSE="examples +docker podman lxc" +RESTRICT="mirror test" +REQUIRED_USE="|| ( docker podman lxc )" DEPEND=" >=dev-lang/go-1.25.8 " +RDEPEND=" + acct-user/${PN}[docker=,podman=,lxc=] +" + src_unpack() { if [[ "${PV}" == *9999* ]]; then git-r3_src_unpack @@ -38,6 +43,17 @@ src_unpack() { fi } +src_prepare() { + default + + sed \ + -e "/ExecStart=/s#=.*#=${EPREFIX}/usr/bin/forgejo-runner daemon -c %h/runner-config.yml#g" \ + -e "/ExecReload=/s#=#=${EPREFIX}#g" \ + -e "/User=/s#=.*#=${PN}#g" \ + -e '/WorkingDirectory=/s#=.*#=~#g' \ + -i contrib/forgejo-runner.service || die +} + src_compile() { # export version information # https://github.com/gentoo/guru/pull/205 diff --git a/dev-util/forgejo-runner/forgejo-runner-9999.ebuild b/dev-util/forgejo-runner/forgejo-runner-9999.ebuild index 00723ae46799..38f07dfb7c54 100644 --- a/dev-util/forgejo-runner/forgejo-runner-9999.ebuild +++ b/dev-util/forgejo-runner/forgejo-runner-9999.ebuild @@ -22,13 +22,18 @@ fi LICENSE="MIT" SLOT="0" -IUSE="examples" -RESTRICT="test" +IUSE="+docker examples podman lxc" +RESTRICT="mirror test" +REQUIRED_USE="|| ( docker podman lxc )" DEPEND=" >=dev-lang/go-1.25.8 " +RDEPEND=" + acct-user/${PN}[docker=,podman=,lxc=] +" + src_unpack() { if [[ "${PV}" == *9999* ]]; then git-r3_src_unpack @@ -38,6 +43,17 @@ src_unpack() { fi } +src_prepare() { + default + + sed \ + -e "/ExecStart=/s#=.*#=${EPREFIX}/usr/bin/forgejo-runner daemon -c %h/runner-config.yml#g" \ + -e "/ExecReload=/s#=#=${EPREFIX}#g" \ + -e "/User=/s#=.*#=${PN}#g" \ + -e '/WorkingDirectory=/s#=.*#=~#g' \ + -i contrib/forgejo-runner.service || die +} + src_compile() { # export version information # https://github.com/gentoo/guru/pull/205 diff --git a/dev-util/forgejo-runner/metadata.xml b/dev-util/forgejo-runner/metadata.xml index 18057e10d18b..644065aa81f4 100644 --- a/dev-util/forgejo-runner/metadata.xml +++ b/dev-util/forgejo-runner/metadata.xml @@ -10,5 +10,10 @@ <name>Ceres Milner</name> </maintainer> + <use> + <flag name="docker">Have forgejo-runner use <pkg>app-containers/docker</pkg></flag> + <flag name="podman">Have forgejo-runner use <pkg>app-containers/podman</pkg></flag> + <flag name="lxc">Have forgejo-runner use <pkg>app-containers/lxc</pkg></flag> + </use> <origin>gentoo-guru-overlay</origin> </pkgmetadata>
\ No newline at end of file diff --git a/dev-util/gemini-cli/Manifest b/dev-util/gemini-cli/Manifest index b295cf750f0e..464b740713ff 100644 --- a/dev-util/gemini-cli/Manifest +++ b/dev-util/gemini-cli/Manifest @@ -1 +1 @@ -DIST gemini-cli-0.35.0.js 695265 BLAKE2B c32a9e25c1739f73e59fe50b48e4b7a69dd7999e4f6c164e18fcc11cb6842d5b6e4ab88be3a1c54e5ba3966786e529984417725ae051bf878f52ca88a45d37fc SHA512 c4d3c57518d4ad8d6d629401ea9e98314a5616ff27ef19c870ac9dc4db56b32d782c718aae49feb1adf8ecb0f26030513a49dd448e8f58a612a7f4bfca7e0333 +DIST gemini-cli-0.35.2.js 695265 BLAKE2B 34564abc99eace55934d9932e824817b4af039fda1e8c2a9b8137caf5a8077e931af9f9e5c682f37b07c2032f93acb29c6ae1a5a72fe3dd660dfd3f690a949aa SHA512 ba5f8e934956936bf530839bdad9c94482eee99bc0ca31ad03a5a869ef3831c2f275df9f4b030d7f51c622741e49a72eb7a88349c96040283de9e41c78092ae3 diff --git a/dev-util/gemini-cli/gemini-cli-0.35.0.ebuild b/dev-util/gemini-cli/gemini-cli-0.35.2.ebuild index cfa9b95f65f7..cfa9b95f65f7 100644 --- a/dev-util/gemini-cli/gemini-cli-0.35.0.ebuild +++ b/dev-util/gemini-cli/gemini-cli-0.35.2.ebuild diff --git a/dev-util/hyprwayland-scanner/Manifest b/dev-util/hyprwayland-scanner/Manifest deleted file mode 100644 index 92f9d94d246e..000000000000 --- a/dev-util/hyprwayland-scanner/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST hyprwayland-scanner-0.4.4.gh.tar.gz 11254 BLAKE2B 29f1f94b10f7f95f7a97e2bff1971669a55b0d3893572b1cd56879a4b31b825e459246b13f2455a0e4dee5b2710aceaa9581326cf2b90900dbd13171ac48d130 SHA512 c0f4670fa39edee43a05f9d7a3f3d60b793034cdf9e351f6cda60a72481f4a212c78ed5b4c15481df20acab86b987843691037fba0e62efe906196181c64b2eb -DIST hyprwayland-scanner-0.4.5.gh.tar.gz 11808 BLAKE2B 9d55bd77ba964f295e11f514f240f61577bbf6afc49be1ea6bec5312605b0ff35226e394c369b9027ff800d321f16a9ea0261eaeeaebb667b59d489f1f77ffbd SHA512 21cbbcc24c1acd0a23bcd7654fe12e3af63aeb69f997da88026c1c995c2c58d135cb06b739ba7033342fb36e201103fbe34216769394eabbfb4b334d6b56274c diff --git a/dev-util/hyprwayland-scanner/hyprwayland-scanner-0.4.4.ebuild b/dev-util/hyprwayland-scanner/hyprwayland-scanner-0.4.4.ebuild deleted file mode 100644 index c942721fb2e7..000000000000 --- a/dev-util/hyprwayland-scanner/hyprwayland-scanner-0.4.4.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake toolchain-funcs - -DESCRIPTION="A Hyprland implementation of wayland-scanner, in and for C++" -HOMEPAGE="https://github.com/hyprwm/hyprwayland-scanner/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/hyprwm/hyprwayland-scanner.git" - inherit git-r3 -else - SRC_URI="https://github.com/hyprwm/hyprwayland-scanner/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="amd64" -fi - -LICENSE="BSD" -SLOT="0" - -RDEPEND=">=dev-libs/pugixml-1.14" -DEPEND="${RDEPEND}" - -pkg_setup() { - [[ ${MERGE_TYPE} == binary ]] && return - - if tc-is-gcc && ver_test $(gcc-version) -lt 13 ; then - eerror "Hyprland requires >=sys-devel/gcc-13 to build" - eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc" - die "GCC version is too old to compile Hyprland!" - elif tc-is-clang && ver_test $(clang-version) -lt 16 ; then - eerror "Hyprland requires >=llvm-core/clang-16 to build" - eerror "Please upgrade Clang: emerge -v1 llvm-core/clang" - die "Clang version is too old to compile Hyprland!" - fi -} diff --git a/dev-util/hyprwayland-scanner/hyprwayland-scanner-0.4.5.ebuild b/dev-util/hyprwayland-scanner/hyprwayland-scanner-0.4.5.ebuild deleted file mode 100644 index 1549357c844f..000000000000 --- a/dev-util/hyprwayland-scanner/hyprwayland-scanner-0.4.5.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake toolchain-funcs - -DESCRIPTION="A Hyprland implementation of wayland-scanner, in and for C++" -HOMEPAGE="https://github.com/hyprwm/hyprwayland-scanner/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/hyprwm/hyprwayland-scanner.git" - inherit git-r3 -else - SRC_URI="https://github.com/hyprwm/hyprwayland-scanner/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64" -fi - -LICENSE="BSD" -SLOT="0" - -RDEPEND=">=dev-libs/pugixml-1.14" -DEPEND="${RDEPEND}" - -pkg_setup() { - [[ ${MERGE_TYPE} == binary ]] && return - - if tc-is-gcc && ver_test $(gcc-version) -lt 13 ; then - eerror "Hyprland requires >=sys-devel/gcc-13 to build" - eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc" - die "GCC version is too old to compile Hyprland!" - elif tc-is-clang && ver_test $(clang-version) -lt 16 ; then - eerror "Hyprland requires >=llvm-core/clang-16 to build" - eerror "Please upgrade Clang: emerge -v1 llvm-core/clang" - die "Clang version is too old to compile Hyprland!" - fi -} diff --git a/dev-util/hyprwayland-scanner/hyprwayland-scanner-9999.ebuild b/dev-util/hyprwayland-scanner/hyprwayland-scanner-9999.ebuild deleted file mode 100644 index c942721fb2e7..000000000000 --- a/dev-util/hyprwayland-scanner/hyprwayland-scanner-9999.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 2024-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake toolchain-funcs - -DESCRIPTION="A Hyprland implementation of wayland-scanner, in and for C++" -HOMEPAGE="https://github.com/hyprwm/hyprwayland-scanner/" - -if [[ ${PV} == 9999 ]] ; then - EGIT_REPO_URI="https://github.com/hyprwm/hyprwayland-scanner.git" - inherit git-r3 -else - SRC_URI="https://github.com/hyprwm/hyprwayland-scanner/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="amd64" -fi - -LICENSE="BSD" -SLOT="0" - -RDEPEND=">=dev-libs/pugixml-1.14" -DEPEND="${RDEPEND}" - -pkg_setup() { - [[ ${MERGE_TYPE} == binary ]] && return - - if tc-is-gcc && ver_test $(gcc-version) -lt 13 ; then - eerror "Hyprland requires >=sys-devel/gcc-13 to build" - eerror "Please upgrade GCC: emerge -v1 sys-devel/gcc" - die "GCC version is too old to compile Hyprland!" - elif tc-is-clang && ver_test $(clang-version) -lt 16 ; then - eerror "Hyprland requires >=llvm-core/clang-16 to build" - eerror "Please upgrade Clang: emerge -v1 llvm-core/clang" - die "Clang version is too old to compile Hyprland!" - fi -} diff --git a/dev-util/hyprwayland-scanner/metadata.xml b/dev-util/hyprwayland-scanner/metadata.xml deleted file mode 100644 index 17397d2f15a8..000000000000 --- a/dev-util/hyprwayland-scanner/metadata.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>julien@jroy.ca</email> - <name>Julien Roy</name> - </maintainer> - <maintainer type="person"> - <email>jethro.rosette@outlook.com</email> - <name>Jethro Rosettenstein</name> - </maintainer> - <maintainer type="person"> - <email>johnmh@johnmh.me</email> - <name>John M. Harris, Jr.</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <upstream> - <changelog>https://github.com/hyprwm/hyprwayland-scanner/releases</changelog> - <bugs-to>https://github.com/hyprwm/hyprwayland-scanner/issues</bugs-to> - </upstream> - <origin>gentoo-staging</origin> -</pkgmetadata>
\ No newline at end of file diff --git a/dev-util/intellij-idea/Manifest b/dev-util/intellij-idea/Manifest index ba8d66ac0c1d..505036179b54 100644 --- a/dev-util/intellij-idea/Manifest +++ b/dev-util/intellij-idea/Manifest @@ -1,2 +1,4 @@ DIST intellij-idea-2025.3.4-aarch64.tar.gz 1515393163 BLAKE2B 87f20459d7619ff7e30c451987783366af8f05dbabfc95994956b04bd54e572ba475cb0f4d2f74985e8ce04205502a57874b1dbffa6d1f8c591ce34b1d933fa8 SHA512 765418b62f958d30eb5d56a5446abd351e5a4bd028b3fe36923e7b7e82127db56b46e68efa6d2ce0452b757a2d64babd0afe8e2814de8809c5b67e95a9781143 DIST intellij-idea-2025.3.4.tar.gz 1520023031 BLAKE2B 7d11f1352b89dbaf51ce5bc0bb5c2c1228f02ed70bc60d786d8f6c7a00d7f4a8e17787b85ed48aefa7381f4cdc41c4e3ab56e042b759f54425acc2870f78ea1d SHA512 a094d446adfca97e36ad479542d7f6f845d2ac24699563c1bc16102c2ca6aebe980f981eaeebf84d667ec663d5aa6ff5a015440f2d3f175512fa13bc5b595404 +DIST intellij-idea-2026.1-aarch64.tar.gz 1560324895 BLAKE2B 90b072944a628a804a337efb59efc10993f4eff89111f7ea5133155b126737db15865f46cc9827468ef797e7fa83c3b7b91e0b3a8a25d4d1fca004686bb2083d SHA512 7ad9fa171b2b84208f3ef037a1973a4b19c44160115ffc7e1631393b5840d618d92bdfce6160ef98e1df334af153452d377b5e318fcc53041b22e536857fee9b +DIST intellij-idea-2026.1.tar.gz 1565208103 BLAKE2B fa59d4dafad9dbb10e364bd83e569c211ed904266c67681dc49bd409fae3b92b3862e36b82a991983d9b3981c0f3d78b9be99a7339caabf1be4d95aedd1b24d8 SHA512 8c4be77090467ca726ef6b2cfdc18b80128054e27c504e54f6792aff10272bdc420bac1a836469be19ab98872a06efd7c5db9e3e9e1ab8a5b3ce8033a4abd21a diff --git a/dev-util/intellij-idea/intellij-idea-2026.1.ebuild b/dev-util/intellij-idea/intellij-idea-2026.1.ebuild new file mode 100644 index 000000000000..934b8d68639a --- /dev/null +++ b/dev-util/intellij-idea/intellij-idea-2026.1.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit check-reqs desktop wrapper + +MY_PV=idea-$(ver_cut 1-2) + +DESCRIPTION="A complete toolset for web, mobile and enterprise development" +HOMEPAGE="https://www.jetbrains.com/idea" + +SRC_URI=" + amd64? ( https://download.jetbrains.com/idea/${MY_PV}.tar.gz -> ${P}.tar.gz ) + arm64? ( https://download.jetbrains.com/idea/${MY_PV}-aarch64.tar.gz -> ${P}-aarch64.tar.gz ) +" + +S="${WORKDIR}/idea-IC-${PV}" +LICENSE="Apache-2.0 BSD BSD-2 CC0-1.0 CC-BY-2.5 CDDL-1.1 + codehaus-classworlds CPL-1.0 EPL-1.0 EPL-2.0 + GPL-2 GPL-2-with-classpath-exception ISC + JDOM LGPL-2.1 LGPL-2.1+ LGPL-3-with-linking-exception MIT + MPL-1.0 MPL-1.1 OFL-1.1 ZLIB" + +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="bundled-xvfb professional" +REQUIRED_USE="professional? ( || ( bundled-xvfb !bundled-xvfb ) ) + bundled-xvfb? ( professional )" + +DEPEND=">=virtual/jdk-17:*" + +RDEPEND="${DEPEND} + professional? ( bundled-xvfb? ( + dev-libs/libpcre2 + sys-libs/pam + sys-process/audit + ) + !bundled-xvfb? ( + x11-base/xorg-server[xvfb] + ) + ) + sys-libs/glibc + media-libs/harfbuzz + dev-java/jansi-native + virtual/zlib:= + x11-libs/libX11 + x11-libs/libXrender + media-libs/freetype + x11-libs/libXext + dev-libs/wayland + x11-libs/libXi + x11-libs/libXtst + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXrandr + media-libs/alsa-lib + app-accessibility/at-spi2-core + x11-libs/cairo + net-print/cups + x11-libs/libdrm + media-libs/mesa + dev-libs/nspr + dev-libs/nss + dev-libs/libdbusmenu + x11-libs/libxkbcommon + x11-libs/libXcursor + x11-libs/pango" + +QA_PREBUILT="opt/${PN}/*" + +BDEPEND="dev-util/patchelf" +RESTRICT="splitdebug" + +pkg_pretend() { + CHECKREQS_DISK_BUILD="4G" + check-reqs_pkg_pretend +} + +pkg_setup() { + CHECKREQS_DISK_BUILD="4G" + check-reqs_pkg_pretend +} + +src_unpack() { + + default_src_unpack + if [ ! -d "$S" ]; then + einfo "Renaming source directory to predictable name..." + mv $(ls "${WORKDIR}") "idea-IC-${PV}" || die + fi +} + +src_prepare() { + + default_src_prepare + + if use amd64; then + JRE_DIR=jre64 + rm -vf "${S}"/plugins/cwm-plugin/quiche-native/linux-aarch64/libquiche.so + else + JRE_DIR=jre + rm -vf "${S}"/plugins/cwm-plugin/quiche-native/linux-x86-64/libquiche.so + fi + + PLUGIN_DIR="${S}/${JRE_DIR}/lib/" + + # rm LLDBFrontEnd after licensing questions with Gentoo License Team + rm -vf "${S}"/plugins/Kotlin/bin/linux/LLDBFrontend + rm -vf ${PLUGIN_DIR}/libavplugin* + rm -vf "${S}"/plugins/maven/lib/maven3/lib/jansi-native/*/libjansi* + rm -vrf "${S}"/lib/pty4j-native/linux/ppc64le + rm -vf "${S}"/bin/libdbm64* + rm -vf "${S}"/lib/pty4j-native/linux/mips64el/libpty.so + + if [[ -d "${S}"/"${JRE_DIR}" ]]; then + for file in "${PLUGIN_DIR}"/{libfxplugins.so,libjfxmedia.so} + do + if [[ -f "$file" ]]; then + patchelf --set-rpath '$ORIGIN' $file || die + fi + done + fi + + if ! use amd64; then + if [[ -d "${S}"/lib/async-profiler/ ]]; then + rm -v "${S}"/lib/async-profiler/amd64/libasyncProfiler.so || die + fi + fi + if ! use arm64; then + if [[ -d "${S}"/lib/async-profiler/ ]]; then + rm -v "${S}"/lib/async-profiler/aarch64/libasyncProfiler.so || die + fi + fi + + rm -vf "${S}"/lib/pty4j-native/linux/x86-64/libpty.so + + sed -i \ + -e "\$a\\\\" \ + -e "\$a#-----------------------------------------------------------------------" \ + -e "\$a# Disable automatic updates as these are handled through Gentoo's" \ + -e "\$a# package manager. See bug #704494" \ + -e "\$a#-----------------------------------------------------------------------" \ + -e "\$aide.no.platform.update=Gentoo" bin/idea.properties + + patchelf --set-rpath '$ORIGIN' "jbr/lib/libjcef.so" || die + patchelf --set-rpath '$ORIGIN' "jbr/lib/libcef.so" || die + patchelf --set-rpath '$ORIGIN' "jbr/lib/jcef_helper" || die + + if use bundled-xvfb; then + patchelf --set-rpath '$ORIGIN/../lib' "${S}"/plugins/remote-dev-server/selfcontained/bin/{Xvfb,xkbcomp} || die + patchelf --set-rpath '$ORIGIN' "${S}"/plugins/remote-dev-server/selfcontained/lib/lib*.so* || die + else + rm -vr "${S}"/plugins/remote-dev-server/selfcontained || die + sed '/export REMOTE_DEV_SERVER_IS_NATIVE_LAUNCHER/a export REMOTE_DEV_SERVER_USE_SELF_CONTAINED_LIBS=1' \ + -i bin/remote-dev-server.sh || die + fi + + if ! use elibc_musl; then + rm plugins/platform-ijent-impl/ijent-aarch64-unknown-linux-musl-release + fi + + eapply_user +} + +src_install() { + local dir="/opt/${PN}" + local dst="${D}${dir}" + + insinto "${dir}" + doins -r * + fperms 755 "${dir}"/bin/{format.sh,idea,idea.sh,inspect.sh,restarter,fsnotifier} + + if [[ -d jbr ]]; then + fperms 755 "${dir}"/jbr/bin/{java,javac,javadoc,jcmd,jdb,jfr,jhsdb,jinfo,jmap,jps,jrunscript,jstack,jstat,jwebserver,keytool,rmiregistry,serialver} + + # Fix #763582 + fperms 755 "${dir}"/jbr/lib/{chrome-sandbox,jcef_helper,jexec,jspawnhelper} + fi + + if use amd64; then + JRE_DIR=jre + JRE_DIR=jre + fi + + JRE_BINARIES="jaotc java javapackager jjs jrunscript keytool pack200 rmid rmiregistry unpack200" + if [[ -d ${JRE_DIR} ]]; then + for jrebin in $JRE_BINARIES; do + fperms 755 "${dir}"/"${JRE_DIR}"/bin/"${jrebin}" + done + fi + + # bundled script is always lowercase, and doesn't have -ultimate, -professional suffix. + local bundled_script_name="${PN#*-}.sh" + + make_wrapper "${PN}" "${dir}/bin/$bundled_script_name" || die + + local pngfile="$(find ${dst}/bin -maxdepth 1 -iname '*.png')" + newicon $pngfile "${PN}.png" || die "we died" + make_desktop_entry "/opt/intellij-idea/bin/idea" "IntelliJ IDEA" "${PN}" "Development;IDE;" + + # recommended by: https://confluence.jetbrains.com/display/IDEADEV/Inotify+Watches+Limit + mkdir -p "${D}/etc/sysctl.d/" || die + echo "fs.inotify.max_user_watches = 524288" > "${D}/etc/sysctl.d/30-idea-inotify-watches.conf" || die + + # remove bundled harfbuzz + rm -f "${D}"/lib/libharfbuzz.so || die "Unable to remove bundled harfbuzz" +} diff --git a/dev-util/mingw64-runtime/Manifest b/dev-util/mingw64-runtime/Manifest index bc142425c417..2d38691c3c15 100644 --- a/dev-util/mingw64-runtime/Manifest +++ b/dev-util/mingw64-runtime/Manifest @@ -1 +1,2 @@ DIST mingw-w64-v13.0.0.tar.bz2 10868704 BLAKE2B 60f041e9a03f70e78217d169dc0f892fef1be3d242237f842f09cc755e8bd8efc9586f6a05475b427dc46bdef3d30619ad33e9c959775b22e27fad7dff93c677 SHA512 39a22bd92465f571df1d90ac80b88dc6846998f71e4b7db79d1c9aa6e04cb3e41b632990a7238fc2c384ea67e4a77d103230db2c0d741869340d24ea79b6dda8 +DIST mingw-w64-v14.0.0.tar.bz2 11163292 BLAKE2B 30ba0d6c8f7b12e818ab9bb651eef186039a882718ebedd720ce97945c31615724745ce3f255d1212df3d7b089bb55d02c12a4d4c8edce3b5ef7c5d323bff210 SHA512 17378a0e2abbbb688468a78cb0ba261f9001a1bc6e7d0270c24c4b8b13e5c6513e8fb8e617d08102fbc772c288ad81ec3a43ca756ed28f17cc5543f717a8bb6d diff --git a/dev-util/mingw64-runtime/mingw64-runtime-14.0.0.ebuild b/dev-util/mingw64-runtime/mingw64-runtime-14.0.0.ebuild new file mode 100644 index 000000000000..4690c2a03d95 --- /dev/null +++ b/dev-util/mingw64-runtime/mingw64-runtime-14.0.0.ebuild @@ -0,0 +1,154 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit crossdev dot-a flag-o-matic toolchain-funcs + +DESCRIPTION="Free Win64 runtime and import library definitions" +HOMEPAGE="https://www.mingw-w64.org/" +SRC_URI="https://downloads.sourceforge.net/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PV}.tar.bz2" +S=${WORKDIR}/mingw-w64-v${PV} + +LICENSE="ZPL BSD BSD-2 ISC LGPL-2+ LGPL-2.1+ MIT public-domain tools? ( GPL-3+ )" +SLOT="0" +KEYWORDS="~amd64 ~x86" +# default-ucrt: enabling requires to be done during the bootstrap process +# or else will cause e.g. undefined reference to __intrinsic_setjmpex +# (TODO?: ucrt became the upstream default in mingw-runtime-12.0.0, eventually +# may need to consider default here too which may need a news item) +# libraries: needs working stage2 compiler (bug #665512) +IUSE="default-ucrt headers-only idl libraries tools" +RESTRICT="strip" # portage would use the wrong strip executable + +pkg_setup() { + # save current state given CHOST is changed in src_configure + target_is_not_host && MW_CROSS=true || MW_CROSS=false + [[ ${CBUILD} == ${CHOST} && ${CTARGET} == ${CHOST} ]] && + die "Invalid configuration, please see: https://wiki.gentoo.org/wiki/Mingw" +} + +mingw-foreach_tool() { + use !tools || use headers-only && return + + local tool=widl + if use !amd64 && use !x86 && use !arm64 && use !arm; then + einfo "Skipping widl due to unsupported platform" #853250 + tool= + fi + + for tool in gendef genidl ${tool}; do + # not using top-level --with-tools given it skips widl + pushd mingw-w64-tools/${tool} >/dev/null || die + "${@}" + popd >/dev/null || die + done +} + +src_configure() { + lto-guarantee-fat + + # native tools, see #644556 + local toolsconf=() + # normally only widl is prefixed, but avoids clash with other targets + ${MW_CROSS} && toolsconf+=( --program-prefix=${CTARGET}- ) + + mingw-foreach_tool econf "${toolsconf[@]}" + + MW_LDFLAGS=${LDFLAGS} # keep non-stripped for gendef not respecting it + + # likely cross-compiling from here, update toolchain variables + if ${MW_CROSS} && [[ ! -v MINGW_BYPASS ]]; then + unset AR AS CC CPP CXX DLLTOOL LD NM OBJCOPY OBJDUMP RANLIB RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + fi + CHOST=${CTARGET} # also used by strip-lto-bytecode in src_install + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + tc-is-gcc && append-flags -mno-avx + + strip-unsupported-flags + + # Normally mingw64 does not use dynamic linker, but at configure time it + # uses LDFLAGS. When -Wl,--hash-style=gnu is passed __CTORS_LIST__ / + # __DTORS_LIST__ is misdetected for target and binaries crash at shutdown. + # Note: typically also stripped by strip-unsupported-flags, but not during + # USE=headers-only and potentially other configurations (kept as safety). + filter-ldflags '-Wl,--hash-style=*' + + local prefix=${EPREFIX}/usr + ${MW_CROSS} && prefix+=/${CTARGET}/usr + + local conf=( + --prefix="${prefix}" + --libdir="${prefix}"/lib + --with-default-msvcrt=$(usex default-ucrt ucrt msvcrt-os) + $(use_with !headers-only crt) + + # By default configure tries to set --sysroot=${prefix}. We disable + # this behaviour with --with-sysroot=no to use gcc's sysroot default. + # That way we can cross-build mingw64-runtime with cross-emerge. + --with-sysroot=no + ) + + if use !headers-only; then + conf+=( + $(use_enable idl) + $(use_with libraries) + ) + + # prefer tuple to determine if should do 32 or 64bits, but fall + # back to cpp test if missing (bug #584858, see also #840662) + local b32=true + case ${CHOST} in + x86_64-*) b32=false;; + i*86-*) ;; + *) [[ $($(tc-getCPP) -dM - <<<'') =~ __MINGW64__ ]] && b32=false;; + esac + ${b32} && + conf+=( --enable-lib32 --disable-lib64 ) || + conf+=( --disable-lib32 --enable-lib64 ) + + # prepare temporary headers install to build against same-version + mkdir ../headers || die + pushd ../headers >/dev/null || die + ECONF_SOURCE=${S} econf --prefix="${T}"/root --without-crt + popd >/dev/null || die + + append-cppflags "-I${T}/root/include" + fi + + econf "${conf[@]}" +} + +src_compile() { + use headers-only || emake -C ../headers install + emake + mingw-foreach_tool emake LDFLAGS="${MW_LDFLAGS}" +} + +src_install() { + default + + mingw-foreach_tool emake DESTDIR="${D}" install + + if ${MW_CROSS}; then + # gcc is configured to look at specific hard-coded paths for mingw #419601 + dosym usr /usr/${CTARGET}/mingw + dosym usr /usr/${CTARGET}/${CTARGET} + dosym usr/include /usr/${CTARGET}/sys-include + fi + + rm -r -- "${ED}"/usr/share || die + + strip-lto-bytecode +} diff --git a/dev-util/mingw64-toolchain/Manifest b/dev-util/mingw64-toolchain/Manifest index d1eb20463573..d2c06eba0276 100644 --- a/dev-util/mingw64-toolchain/Manifest +++ b/dev-util/mingw64-toolchain/Manifest @@ -1,3 +1,5 @@ DIST binutils-2.45.1.tar.xz 27962312 BLAKE2B 1ccab38659ec47f9100b61322627345fe79ebd04ed0b1e872c988edded4d292d7c9ac33d9f6ea47bf265ec823dfba60da0e84374900c15ec89e3aa9280ac020c SHA512 ea030419eba387579ab717be7e3223fc99e93b586860b06003c12489f93441640d4082736f76aa5e98233db4f46e232f536a45e471486de1f5b64e1b827c167e +DIST binutils-2.46.0.tar.xz 28548776 BLAKE2B 9f4fd8897d237eb5003bdf439537dfc5f8c681e9ff939fb06bb8235ed298031ea4cc91611edb640ffc432199d5791289d003fe0d07acce80327dc40595a5eb9e SHA512 32f880bb4f69351f4ae54a5d00359625c6c49d8e76624fb5cffdf174c79c8d3212f66225b81c12933c6ed59604ab652560773dd92fab384b930c97a9d4e1fdf2 DIST gcc-15.2.0.tar.xz 101056276 BLAKE2B e270320978ca690e6e8f5ef06414dc13caf561f16403a3783c76fbf3dcee57e755a2d5bba922bf7fcae0bb6120443755d819b003791ae823d54589dd799804de SHA512 89047a2e07bd9da265b507b516ed3635adb17491c7f4f67cf090f0bd5b3fc7f2ee6e4cc4008beef7ca884b6b71dffe2bb652b21f01a702e17b468cca2d10b2de DIST mingw-w64-v13.0.0.tar.bz2 10868704 BLAKE2B 60f041e9a03f70e78217d169dc0f892fef1be3d242237f842f09cc755e8bd8efc9586f6a05475b427dc46bdef3d30619ad33e9c959775b22e27fad7dff93c677 SHA512 39a22bd92465f571df1d90ac80b88dc6846998f71e4b7db79d1c9aa6e04cb3e41b632990a7238fc2c384ea67e4a77d103230db2c0d741869340d24ea79b6dda8 +DIST mingw-w64-v14.0.0.tar.bz2 11163292 BLAKE2B 30ba0d6c8f7b12e818ab9bb651eef186039a882718ebedd720ce97945c31615724745ce3f255d1212df3d7b089bb55d02c12a4d4c8edce3b5ef7c5d323bff210 SHA512 17378a0e2abbbb688468a78cb0ba261f9001a1bc6e7d0270c24c4b8b13e5c6513e8fb8e617d08102fbc772c288ad81ec3a43ca756ed28f17cc5543f717a8bb6d diff --git a/dev-util/mingw64-toolchain/mingw64-toolchain-14.0.0.ebuild b/dev-util/mingw64-toolchain/mingw64-toolchain-14.0.0.ebuild new file mode 100644 index 000000000000..640e7147a963 --- /dev/null +++ b/dev-util/mingw64-toolchain/mingw64-toolchain-14.0.0.ebuild @@ -0,0 +1,371 @@ +# Copyright 2022-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit edo flag-o-matic multilib-build toolchain-funcs + +# Pick versions known to work for wine+dxvk, and avoid too frequent updates +# due to slow rebuilds. Do _p1++ rather than revbump on changes (not using +# Gentoo patchsets for simplicity, their changes are mostly unneeded here). +BINUTILS_PV=2.46.0 +GCC_PV=15.2.0 +MINGW_PV=$(ver_cut 1-3) + +DESCRIPTION="All-in-one mingw64 toolchain intended for building Wine without crossdev" +HOMEPAGE=" + https://www.mingw-w64.org/ + https://gcc.gnu.org/ + https://sourceware.org/binutils/ +" +SRC_URI=" + https://downloads.sourceforge.net/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${MINGW_PV}.tar.bz2 + mirror://gnu/binutils/binutils-${BINUTILS_PV}.tar.xz +" +if [[ ${GCC_PV} == *-* ]]; then + SRC_URI+=" mirror://gcc/snapshots/${GCC_PV}/gcc-${GCC_PV}.tar.xz" +else + SRC_URI+=" + mirror://gcc/gcc-${GCC_PV}/gcc-${GCC_PV}.tar.xz + mirror://gnu/gcc/gcc-${GCC_PV}/gcc-${GCC_PV}.tar.xz + " +fi +S=${WORKDIR} + +# l1:binutils+gcc, l2:gcc(libraries), l3:mingw64-runtime +LICENSE=" + GPL-3+ + LGPL-3+ || ( GPL-3+ libgcc libstdc++ gcc-runtime-library-exception-3.1 ) + ZPL BSD BSD-2 ISC LGPL-2+ LGPL-2.1+ MIT public-domain +" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="+abi_x86_32 +bin-symlinks custom-cflags +strip" + +RDEPEND=" + dev-libs/gmp:= + dev-libs/mpc:= + dev-libs/mpfr:= + virtual/libiconv + virtual/zlib:= + bin-symlinks? ( + abi_x86_64? ( + !cross-x86_64-w64-mingw32/binutils + !cross-x86_64-w64-mingw32/gcc + ) + abi_x86_32? ( + !cross-i686-w64-mingw32/binutils + !cross-i686-w64-mingw32/gcc + ) + ) +" +DEPEND="${RDEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + strerror_r # libstdc++ test using -Wimplicit+error +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + tc-is-cross-compiler && + die "cross-compilation of the toolchain itself is unsupported" +} + +src_prepare() { + # rename directories to simplify both patching and the ebuild + mv binutils{-${BINUTILS_PV},} || die + mv gcc{-${GCC_PV},} || die + mv mingw-w64-v${MINGW_PV} mingw64 || die + + default +} + +src_compile() { + # not great but do everything in src_compile given bootstrapping + # process needs to be done in steps of configure+compile+install + # (done modular to have most package-specific things in one place) + + CTARGET=$(usex x86 i686 x86_64)-w64-mingw32 + + MWT_D=${T}/root # moved to ${D} in src_install + local mwtdir=/usr/lib/${PN} + local prefix=${EPREFIX}${mwtdir} + local sysroot=${MWT_D}${prefix} + local -x PATH=${sysroot}/bin:${PATH} + + filter-lto # requires setting up, and may be messy with mingw static libs + use custom-cflags || strip-flags # fancy flags are not realistic here + + local multilib=false + use abi_x86_32 && use abi_x86_64 && multilib=true + + # global configure flags + local conf=( + --build=${CBUILD:-${CHOST}} + --target=${CTARGET} + --{doc,info,man}dir=/.skip # let the real binutils+gcc handle docs + MAKEINFO=: #922230 + ) + + # binutils + local conf_binutils=( + --prefix="${prefix}" + --host=${CHOST} + --disable-cet + --disable-default-execstack + --disable-nls + --disable-shared + --disable-werror + --with-system-zlib + --without-debuginfod + --without-msgpack + --without-xxhash + --without-zstd + ) + mwt-binutils() { + # symlink gcc's lto plugin for AR (bug #854516) + ln -s ../../libexec/gcc/${CTARGET}/${GCC_PV%%[.-]*}/liblto_plugin.so \ + "${sysroot}"/lib/bfd-plugins || die + } + + # gcc (minimal -- if need more, disable only in stage1 / enable in stage3) + local conf_gcc=( + --prefix="${prefix}" + --host=${CHOST} + --disable-bootstrap + --disable-cet + --disable-gcov #843989 + --disable-gomp + --disable-libquadmath + --disable-libsanitizer + --disable-libssp + --disable-libvtv + --disable-shared + --disable-werror + --with-gcc-major-version-only + --with-system-zlib + --without-isl + --without-zstd + + # TODO: can likely remove this when bump to >=gcc-15.3 (bug #966990) + CXX="$(tc-getCXX) -std=c++14" + ) + ${multilib} || conf_gcc+=( --disable-multilib ) + # libstdc++ may misdetect sys/sdt.h on systemtap-enabled system and fail + # (not passed in conf_gcc above given it is lost in sub-configure calls) + local -x glibcxx_cv_sys_sdt_h=no + + local conf_gcc_stage1=( + --enable-languages=c + --disable-libatomic + --with-sysroot="${sysroot}" + ) + local -n conf_gcc_stage2=conf_gcc_stage1 + + local conf_gcc_stage3=( + --enable-languages=c,c++ + --enable-threads=posix # needs stage3, and is required for dxvk/vkd3d + --with-sysroot="${prefix}" + --with-build-sysroot="${sysroot}" + ) + + # mingw64-runtime (split in several parts, 3 needed for gcc stages) + local conf_mingw64=( + --prefix="${prefix}"/${CTARGET} + --host=${CTARGET} + --with-sysroot=no + --without-{crt,headers} + + # mingw .dll aren't used by wine and packages wouldn't find them + # at runtime, use crossdev if need dll and proper search paths + --disable-shared + ) + + local conf_mingw64_headers=( + --enable-idl + --with-headers + + # ucrt has not been tested and migration needs looking into, force + # msvcrt-os for now (if really want this either use crossdev or + # override using MWT_MINGW64_{HEADERS,RUNTIME}_CONF=... env vars) + --with-default-msvcrt=msvcrt-os + ) + mwt-mingw64_headers() { ln -s ${CTARGET} "${sysroot}"/mingw || die; } #419601 + + local conf_mingw64_runtime=( + --with-crt + --with-default-msvcrt=msvcrt-os # match with headers + ) + ${multilib} || + conf_mingw64_runtime+=( $(usex x86 --disable-lib64 --disable-lib32 ) ) + + local conf_mingw64_libraries=( --with-libraries ) + local conf_mingw64_libraries32=( + --libdir="${prefix}"/${CTARGET}/lib32 + --with-libraries + CC="${CTARGET}-gcc -m32" + RCFLAGS="--target=pe-i386 ${RCFLAGS}" + ) + + # mingw64-runtime's idl compiler (useful not to depend on wine for widl) + local conf_widl=( --prefix="${prefix}" ) + + # mwt-build [-x] <path/package-name> [stage-name] + # -> ./configure && make && make install && mwt-package() && mwt-package_stage() + # passes conf, conf_package, and conf_package_stage arrays to configure, and + # users can add options through environment with e.g. + # MWT_BINUTILS_CONF="--some-option" + # MWT_GCC_STAGE1_CONF="--some-gcc-stage1-only-option" + # MWT_WIDL_CONF="--some-other-option" + # EXTRA_ECONF="--global-option" (generic naming for if not reading this) + mwt-build() { + if [[ ${1} == -x ]]; then + ( + # cross-compiling, cleanup and let ./configure handle it + unset AR AS CC CPP CXX DLLTOOL LD NM OBJCOPY OBJDUMP RANLIB RC STRIP + CHOST=${CTARGET} + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # support for stack-protector is still new and experimental + # for mingw and issues can also be harder to debug + fix for + # upstreams using it, if feeling concerned about security + # would advise to either not use wine or at least contain it + use custom-cflags || filter-flags '-fstack-protector*' #931512 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + strip-unsupported-flags + mwt-build "${@:2}" + ) + return + fi + + local id=${1##*/} + local build_dir=${WORKDIR}/${1}${2+_${2}}-build + + # econf is not allowed in src_compile and its defaults are + # mostly unused here, so use configure directly + local conf=( "${WORKDIR}/${1}"/configure "${conf[@]}" ) + + local -n conf_id=conf_${id} conf_id2=conf_${id}_${2} + [[ ${conf_id@a} == *a* ]] && conf+=( "${conf_id[@]}" ) + [[ ${2} && ${conf_id2@a} == *a* ]] && conf+=( "${conf_id2[@]}" ) + + local -n extra_id=MWT_${id^^}_CONF extra_id2=MWT_${id^^}_${2^^}_CONF + conf+=( ${EXTRA_ECONF} ${extra_id} ${2+${extra_id2}} ) + + einfo "Building ${id}${2+ ${2}} in ${build_dir} ..." + + mkdir -p "${build_dir}" || die + pushd "${build_dir}" >/dev/null || die + + edo "${conf[@]}" + emake MAKEINFO=: V=1 + # -j1 to match bug #906155, other packages may be fragile too + emake -j1 MAKEINFO=: V=1 DESTDIR="${MWT_D}" install + + declare -f mwt-${id} >/dev/null && edo mwt-${id} + declare -f mwt-${id}_${2} >/dev/null && edo mwt-${id}_${2} + + popd >/dev/null || die + } + + # workaround race condition with out-of-source crt build (bug #879537) + mkdir -p mingw64_runtime-build/mingw-w64-crt/lib{32,64} || die + + # build with same ordering that crossdev would do + stage3 for pthreads + mwt-build binutils + mwt-build mingw64 headers + mwt-build gcc stage1 + mwt-build -x mingw64 runtime + mwt-build gcc stage2 + ${multilib} && mwt-build -x mingw64 libraries32 + mwt-build -x mingw64 libraries + mwt-build gcc stage3 + mwt-build mingw64/mingw-w64-tools/widl + # note: /could/ system-bootstrap if already installed, but gcc and + # libraries will use the system's older mingw64 headers/static-libs + # and make this potentially fragile without more workarounds/stages + + if ${multilib}; then + # Like system's gcc, `x86_64-w64-mingw32-gcc -m32` can build for x86, + # but packages expect crossdev's i686-w64-mingw32-gcc which is the same + # just without 64bit support and would rather not build the toolchain + # twice. Dirty but wrap to allow simple interoperability with crossdev. + mwt-i686_wrapper() { + printf "#!/usr/bin/env sh\nexec \"${prefix}/bin/${bin}\" ${*} "'"${@}"\n' \ + > ${bin32} || die + chmod +x ${bin32} || die + } + pushd "${sysroot}"/bin >/dev/null || die + local bin bin32 + for bin in ${CTARGET}-*; do + bin32=${bin/x86_64-w64/i686-w64} + case ${bin#${CTARGET}-} in + as) mwt-i686_wrapper --32;; + cpp|gcc|gcc-${GCC_PV%%[.-]*}|g++|widl) mwt-i686_wrapper -m32;; + ld|ld.bfd) mwt-i686_wrapper -m i386pe;; + windres) mwt-i686_wrapper --target=pe-i386;; + *) ln -s ${bin} ${bin32} || die;; + esac + done + popd >/dev/null || die + fi + + if use bin-symlinks; then + mkdir -p -- "${MWT_D}${EPREFIX}"/usr/bin/ || die + local bin + for bin in "${sysroot}"/bin/*; do + ln -rs -- "${bin}" "${MWT_D}${EPREFIX}"/usr/bin/ || die + done + fi + + # portage doesn't know the right strip executable to use for CTARGET + # and it can lead to .a mangling, notably with 32bit (breaks toolchain) + dostrip -x ${mwtdir}/{${CTARGET}/lib{,32},lib/gcc/${CTARGET}} + + # ... and instead do it here given this saves ~60MB + if use strip; then + einfo "Stripping ${CTARGET} static libraries ..." + find "${sysroot}"/{,lib/gcc/}${CTARGET} -type f -name '*.a' \ + -exec ${CTARGET}-strip --strip-unneeded {} + || die + fi +} + +src_install() { + mv -- "${MWT_D}${EPREFIX}"/* "${ED}" || die + + find "${ED}" -type f -name '*.la' -delete || die +} + +pkg_postinst() { + use bin-symlinks && has_version dev-util/shadowman && [[ ! ${ROOT} ]] && + eselect compiler-shadow update all + + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "Note that this package is primarily intended for Wine and related" + elog "packages to depend on without needing a manual crossdev setup." + elog + elog "Settings are oriented only for what these need and simplicity." + elog "Use sys-devel/crossdev if need full toolchain/customization:" + elog " https://wiki.gentoo.org/wiki/Mingw" + elog " https://wiki.gentoo.org/wiki/Crossdev" + fi +} + +pkg_postrm() { + use bin-symlinks && has_version dev-util/shadowman && [[ ! ${ROOT} ]] && + eselect compiler-shadow clean all +} |
