repo/proj/guru:dev commit in: dev-util/codex/

"Rui Huang" <[email protected]>
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1785994759.cf32526cad6b6b6dbf5244827a7d4fdf34724e2d.vowstar@gentoo>
commit:     cf32526cad6b6b6dbf5244827a7d4fdf34724e2d
Author:     Huang Rui <vowstar <AT> gmail <DOT> com>
AuthorDate: Thu Aug  6 05:39:19 2026 +0000
Commit:     Rui Huang <vowstar <AT> gmail <DOT> com>
CommitDate: Thu Aug  6 05:39:19 2026 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=cf32526c

dev-util/codex: add 0.146.1

Signed-off-by: Huang Rui <vowstar <AT> gmail.com>

 dev-util/codex/Manifest             |   2 +
 dev-util/codex/codex-0.146.1.ebuild | 149 ++++++++++++++++++++++++++++++++++++
 2 files changed, 151 insertions(+)

diff --git a/dev-util/codex/Manifest b/dev-util/codex/Manifest
index ac74bdc4dc..a91b8805e3 100644
--- a/dev-util/codex/Manifest
+++ b/dev-util/codex/Manifest
@@ -1,7 +1,9 @@
 DIST codex-0.145.0.tar.gz 9970106 BLAKE2B 5ebc7f106454fe726785325f6c6fc8af118d127dcf625939f20ac3d164554a46545bfd31e5735f728d082c69453f381183372d922cc7d65f27db232757077722 SHA512 fdaa7c08942211732e144e38c07c7b4073a6c466800b11b7da55ae1185272934f9d3090746239bdef3466bf443eb062586dcffcfff89deb4bf0d949a643a4483
 DIST codex-0.146.0.tar.gz 10291800 BLAKE2B e623b295e9b46302b5d6ae6f61737347d2fcf493db927ef53d183d4b7e469bb0beb390b378f5c6e704a1266798c0c05cc98cddb91e6d2eb0635501e5079c715c SHA512 47e56e17206b7ab40cbedf621b2f520c7535076281d97b4965d015aa7b18735b1ffdc53bed8236d63cedbbf0eb7db9b600700f85a8939c7f05e4d5e52f927c25
+DIST codex-0.146.1.tar.gz 10295330 BLAKE2B 38b8ec4fd4717bf408ae087be1c6da2d5834c5ecaa4d4116779d33cf009c846643238fa03629370a6a7bd112e12b87ffe74771596c77a055a5b580f2a7f0dcc5 SHA512 9e641991273249398a410c4941777f4eb0b96a1d50bd9dbae3a274aa852484a272df06aded15b3fe51831a1e4a313144e0985ddc0c2588b2c66d81f18f7f885d
 DIST codex-rust-v0.145.0-crates.tar.xz 113136620 BLAKE2B 3a12e21d953c223cbb2115b42d04102a8f81c961b49c7be4ece584eacb38132b1094b36156b056ceecc48326683ab390167748991f06fccf010e8717f0bcff3b SHA512 a17cc1ff51c7e74bc7cfa73ad61e98550e5f6d5c055c33539d89ef683b0919c69b4f7e2f11138587af6b2d5df6d7ecbcf0b97ed8cb9606be52e638367e92cfce
 DIST codex-rust-v0.146.0-crates.tar.xz 113136620 BLAKE2B 3a12e21d953c223cbb2115b42d04102a8f81c961b49c7be4ece584eacb38132b1094b36156b056ceecc48326683ab390167748991f06fccf010e8717f0bcff3b SHA512 a17cc1ff51c7e74bc7cfa73ad61e98550e5f6d5c055c33539d89ef683b0919c69b4f7e2f11138587af6b2d5df6d7ecbcf0b97ed8cb9606be52e638367e92cfce
+DIST codex-rust-v0.146.1-crates.tar.xz 113136620 BLAKE2B 3a12e21d953c223cbb2115b42d04102a8f81c961b49c7be4ece584eacb38132b1094b36156b056ceecc48326683ab390167748991f06fccf010e8717f0bcff3b SHA512 a17cc1ff51c7e74bc7cfa73ad61e98550e5f6d5c055c33539d89ef683b0919c69b4f7e2f11138587af6b2d5df6d7ecbcf0b97ed8cb9606be52e638367e92cfce
 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

diff --git a/dev-util/codex/codex-0.146.1.ebuild b/dev-util/codex/codex-0.146.1.ebuild
new file mode 100644
index 0000000000..82845c3bab
--- /dev/null
+++ b/dev-util/codex/codex-0.146.1.ebuild
@@ -0,0 +1,149 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# NOTE: This package uses a pre-built crate tarball instead of listing individual
+# crates in CRATES="". This approach is required because:
+# 1. Codex has 800+ crate dependencies, which triggers Portage QA warnings:
+#    "QA Notice: This package uses a very large number of CRATES. Please provide
+#    a crate tarball instead and fetch it via SRC_URI."
+# 2. Stricter ebuild QA checks (e.g., in CI pipelines) fail with too many crates.
+#
+# The crate tarball is auto-generated by GitHub Actions at:
+#   https://github.com/gentoo-zh-drafts/codex/
+# Workflow source code for auditing:
+#   https://github.com/gentoo-zh-drafts/codex/blob/crate-dist/.github/workflows/crates.yml
+# This allows anyone to review and verify the crate packaging process.
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+	[crossterm]='https://github.com/nornagon/crossterm;87db8bfa6dc99427fd3b071681b07fc31c6ce995;crossterm-%commit%'
+	[nucleo-matcher]='https://github.com/helix-editor/nucleo;4253de9faabb4e5c6d81d946a5e35a90f87347ee;nucleo-%commit%/matcher'
+	[nucleo]='https://github.com/helix-editor/nucleo;4253de9faabb4e5c6d81d946a5e35a90f87347ee;nucleo-%commit%'
+	[ratatui]='https://github.com/nornagon/ratatui;9b2ad1298408c45918ee9f8241a6f95498cdbed2;ratatui-%commit%'
+	[runfiles]='https://github.com/dzbarsky/rules_rust;b56cbaa8465e74127f1ea216f813cd377295ad81;rules_rust-%commit%/rust/runfiles'
+	[tokio-tungstenite]='https://github.com/openai-oss-forks/tokio-tungstenite;0e5b2d73aa18dd9f0a50ee9ff199d5aef7594186;tokio-tungstenite-%commit%'
+	[tungstenite]='https://github.com/openai-oss-forks/tungstenite-rs;4fffad30fe373adbdcffab9545e9e9bf4f2fc19f;tungstenite-rs-%commit%'
+)
+
+RUST_MIN_VER="1.95.0"
+
+# python3 .github/scripts/rusty_v8_bazel.py resolved-v8-crate-version
+RUSTY_V8_TAG="149.2.0"
+
+inherit cargo check-reqs toolchain-funcs
+
+CHECKREQS_MEMORY="15G"
+CHECKREQS_DISK_BUILD="20G"
+
+DESCRIPTION="Codex CLI - OpenAI's AI-powered coding agent"
+HOMEPAGE="https://github.com/openai/codex"
+
+# The crate tarball URL uses ${PV} so it auto-updates when bumping versions.
+# This tarball is generated by: https://github.com/gentoo-zh-drafts/codex/
+# See .github/workflows/crates.yml for the generation process.
+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}
+"
+
+S="${WORKDIR}/${PN}-rust-v${PV}/codex-rs"
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+="
+	Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0
+	CC0-1.0 CDLA-Permissive-2.0 ISC MIT MPL-2.0 Unicode-3.0 ZLIB
+"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm64"
+# Tests fail due to ring crate conflicts with system OpenSSL
+RESTRICT="test"
+
+DEPEND="
+	dev-libs/openssl:=
+	sys-apps/dbus
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+pkg_pretend() {
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	check-reqs_pkg_setup
+	rust_pkg_setup
+	if tc-is-lto; then
+		export CARGO_PROFILE_RELEASE_LTO=thin
+	else
+		export CARGO_PROFILE_RELEASE_LTO=false
+	fi
+}
+
+gen_git_crate_dir() {
+	# https://github.com/gentoo/gentoo/blob/b09dd88412fe2d5eee5a8891e08bfa2d67848da3/eclass/cargo.eclass#L442
+	IFS=';' read -r crate_uri commit crate_dir <<<"${GIT_CRATES[$1]}"
+	echo "${WORKDIR}/${crate_dir//%commit%/${commit}}"
+}
+
+src_prepare() {
+	default
+
+	# Fix tokio-tungstenite's git dependency on tungstenite
+	sed -i '/^\[dependencies\.tungstenite\]/,/^$/{
+		s|git = "https://github.com/openai-oss-forks/tungstenite-rs"|path = "'"$(gen_git_crate_dir tungstenite)"'"|
+		/^rev = /d
+	}' "$(gen_git_crate_dir tokio-tungstenite)/Cargo.toml" || die
+
+	# Remove the [patch.crates-io] section and add path-based patches
+	sed -i '/^\[patch\.crates-io\]/,/^$/d' "${S}/Cargo.toml" || die
+	sed -i '/^\[patch\."ssh:\/\/git@github\.com/,/^$/d' "${S}/Cargo.toml" || die
+
+	# Add new patch section with local paths
+	cat >> "${S}/Cargo.toml" <<-EOF || die
+
+	[patch.crates-io]
+	crossterm = { path = "$(gen_git_crate_dir crossterm)" }
+	ratatui = { path = "$(gen_git_crate_dir ratatui)" }
+	tokio-tungstenite = { path = "$(gen_git_crate_dir tokio-tungstenite)" }
+	tungstenite = { path = "$(gen_git_crate_dir tungstenite)" }
+	EOF
+}
+
+src_compile() {
+	local rusty_v8_triple
+	use amd64 && rusty_v8_triple=x86_64-unknown-linux-musl
+	use arm64 && rusty_v8_triple=aarch64-unknown-linux-musl
+
+	# codex-core trait resolution overflows rustc's default 8MiB stack
+	export RUST_MIN_STACK=16777216
+
+	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() {
+	dobin "$(cargo_target_dir)/codex"
+	einstalldocs
+}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.