This is an automated email from the git hooks/post-receive script.
guix_mirror_bot pushed a commit to branch master
in repository guix.
The following commit(s) were added to refs/heads/master by this push:
new 279410efb8 gnu: Add codex.
279410efb8 is described below
commit 279410efb8a5749d7081cc89e02cc5e2dd7c5d3a
Author: Danny Milosavljevic <[email protected]>
AuthorDate: Fri Feb 27 19:01:22 2026 +0100
gnu: Add codex.
* gnu/packages/patches/codex-0.98.0-remove-patch-sections.patch: New file.
* gnu/packages/patches/rust-codex-0.98.0-test-shebangs.patch: New file.
* gnu/packages/patches/rust-codex-0.98.0-test-timeout.patch: New file.
*
gnu/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch:
New file.
* gnu/local.mk (dist_patch_DATA): Add references to the patches.
* gnu/packages/rust-apps.scm (codex): New variable.
* gnu/packages/rust-crates.scm: Add crates.
* gnu/packages/rust-sources.scm (rust-codex-0.98.0): New variable.
Change-Id: Ic4af28034cbae83a7e212ee328cbdc25bce31ef0
---
gnu/local.mk | 4 +
.../codex-0.98.0-remove-patch-sections.patch | 42 +
.../patches/rust-codex-0.98.0-test-shebangs.patch | 56 ++
.../patches/rust-codex-0.98.0-test-timeout.patch | 20 +
...x-0.98.0-windows-sandbox-protocol-version.patch | 23 +
gnu/packages/rust-apps.scm | 326 +++++++
gnu/packages/rust-crates.scm | 1019 ++++++++++++++++++++
gnu/packages/rust-sources.scm | 108 +++
8 files changed, 1598 insertions(+)
diff --git a/gnu/local.mk b/gnu/local.mk
index fcf517c1e8..1992126078 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1125,6 +1125,7 @@ dist_patch_DATA =
\
%D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/codex-acp-0.9.2-remove-patch-sections.patch \
%D%/packages/patches/codex-acp-0.9.2-replace-result-flatten.patch \
+ %D%/packages/patches/codex-0.98.0-remove-patch-sections.patch \
%D%/packages/patches/cogl-fix-double-free.patch \
%D%/packages/patches/collada-dom-boost.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
@@ -2382,6 +2383,9 @@ dist_patch_DATA =
\
%D%/packages/patches/rust-codex-0.98.0-core-file-lock.patch \
%D%/packages/patches/rust-codex-0.98.0-core-remove-self-dep.patch \
%D%/packages/patches/rust-codex-0.98.0-execpolicy-file-lock.patch \
+ %D%/packages/patches/rust-codex-0.98.0-test-shebangs.patch \
+ %D%/packages/patches/rust-codex-0.98.0-test-timeout.patch \
+
%D%/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch
\
%D%/packages/patches/rust-ring-0.17-ring-core.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
diff --git a/gnu/packages/patches/codex-0.98.0-remove-patch-sections.patch
b/gnu/packages/patches/codex-0.98.0-remove-patch-sections.patch
new file mode 100644
index 0000000000..34cd8bccf5
--- /dev/null
+++ b/gnu/packages/patches/codex-0.98.0-remove-patch-sections.patch
@@ -0,0 +1,42 @@
+Author: Danny Milosavljevic <[email protected]>
+Date: 2026-02-08
+License: ASL2.0
+
+Remove [patch.crates-io] and [patch.'ssh://...'] sections and
+exclude network-proxy from workspace members.
+
+The [patch] sections point to git repositories which are unavailable
+in an offline build. The vendored crossterm, ratatui,
+tokio-tungstenite and tungstenite forks are provided as cargo-inputs
+instead.
+
+The network-proxy workspace member depends on rama which requires
+Rust 1.91+.
+
+--- a/codex-rs/Cargo.toml
++++ b/codex-rs/Cargo.toml
+@@ -28,7 +28,6 @@
+ "lmstudio",
+ "login",
+ "mcp-server",
+- "network-proxy",
+ "ollama",
+ "process-hardening",
+ "protocol",
+@@ -311,16 +310,3 @@
+ debug = 1 # Reduce debug symbol size
+ inherits = "test"
+ opt-level = 0
+-
+-[patch.crates-io]
+-# Uncomment to debug local changes.
+-# ratatui = { path = "../../ratatui" }
+-crossterm = { git = "https://github.com/nornagon/crossterm", branch =
"nornagon/color-query" }
+-ratatui = { git = "https://github.com/nornagon/ratatui", branch =
"nornagon-v0.29.0-patch" }
+-tokio-tungstenite = { git =
"https://github.com/JakkuSakura/tokio-tungstenite", rev =
"2ae536b0de793f3ddf31fc2f22d445bf1ef2023d" }
+-
+-# Uncomment to debug local changes.
+-# rmcp = { path = "../../rust-sdk/crates/rmcp" }
+-
+-[patch."ssh://[email protected]/JakkuSakura/tungstenite-rs.git"]
+-tungstenite = { git = "https://github.com/JakkuSakura/tungstenite-rs", rev =
"f514de8644821113e5d18a027d6d28a5c8cc0a6e" }
diff --git a/gnu/packages/patches/rust-codex-0.98.0-test-shebangs.patch
b/gnu/packages/patches/rust-codex-0.98.0-test-shebangs.patch
new file mode 100644
index 0000000000..8d819a412f
--- /dev/null
+++ b/gnu/packages/patches/rust-codex-0.98.0-test-shebangs.patch
@@ -0,0 +1,56 @@
+Author: Danny Milosavljevic <[email protected]>
+Date: 2026-02-27
+License: ASL2.0
+Subject: Use @SHELL@ placeholder for shebangs in embedded test scripts.
+
+Tests that create and execute temporary shell scripts at runtime use
+a hardcoded "#!/bin/sh" shebang. Replace with @SHELL@ so the build
+phase can substitute the actual store path.
+
+Also change assertions to print the actual error on failure.
+
+diff -ruN a/codex-rs/rmcp-client/src/program_resolver.rs
b/codex-rs/rmcp-client/src/program_resolver.rs
+--- a/codex-rs/rmcp-client/src/program_resolver.rs
++++ b/codex-rs/rmcp-client/src/program_resolver.rs
+@@ -82,7 +82,7 @@
+ cmd.envs(&env.mcp_env);
+
+ let output = cmd.output().await;
+- assert!(output.is_ok(), "Unix should execute scripts directly");
++ output.expect("Unix should execute scripts directly");
+ Ok(())
+ }
+
+@@ -134,10 +134,7 @@
+ cmd.envs(&env.mcp_env);
+ let output = cmd.output().await;
+
+- assert!(
+- output.is_ok(),
+- "Resolved program should execute successfully"
+- );
++ output.expect("Resolved program should execute successfully");
+ Ok(())
+ }
+
+@@ -185,7 +182,7 @@
+ #[cfg(unix)]
+ {
+ let file = dir.join(Self::TEST_PROGRAM);
+- fs::write(&file, "#!/bin/sh\nexit 0")?;
++ fs::write(&file, "#!@SHELL@\nexit 0")?;
+ Self::set_executable(&file)?;
+ }
+
+diff -ruN a/codex-rs/tui/src/external_editor.rs
b/codex-rs/tui/src/external_editor.rs
+--- a/codex-rs/tui/src/external_editor.rs
++++ b/codex-rs/tui/src/external_editor.rs
+@@ -159,7 +159,7 @@
+
+ let dir = tempdir().unwrap();
+ let script_path = dir.path().join("edit.sh");
+- fs::write(&script_path, "#!/bin/sh\nprintf \"edited\" >
\"$1\"\n").unwrap();
++ fs::write(&script_path, "#!@SHELL@\nprintf \"edited\" >
\"$1\"\n").unwrap();
+ let mut perms = fs::metadata(&script_path).unwrap().permissions();
+ perms.set_mode(0o755);
+ fs::set_permissions(&script_path, perms).unwrap();
diff --git a/gnu/packages/patches/rust-codex-0.98.0-test-timeout.patch
b/gnu/packages/patches/rust-codex-0.98.0-test-timeout.patch
new file mode 100644
index 0000000000..2442d16ead
--- /dev/null
+++ b/gnu/packages/patches/rust-codex-0.98.0-test-timeout.patch
@@ -0,0 +1,20 @@
+Author: Danny Milosavljevic <[email protected]>
+Date: 2026-03-05
+License: ASL2.0
+Subject: Increase per-event test timeout from 10 to 30 seconds.
+
+In resource-constrained build environments, image processing (resize,
+base64-encode, JSON serialization) can exceed 10 seconds under CPU
+contention, causing intermittent test failures.
+
+diff -ruN a/codex-rs/core/tests/common/lib.rs
b/codex-rs/core/tests/common/lib.rs
+--- a/codex-rs/core/tests/common/lib.rs
++++ b/codex-rs/core/tests/common/lib.rs
+@@ -174,7 +174,7 @@
+ loop {
+ // Allow a bit more time to accommodate async startup work (e.g.
config IO, tool discovery)
+- let ev = timeout(wait_time.max(Duration::from_secs(10)),
codex.next_event())
++ let ev = timeout(wait_time.max(Duration::from_secs(30)),
codex.next_event())
+ .await
+ .expect("timeout waiting for event")
+ .expect("stream ended unexpectedly");
diff --git
a/gnu/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch
b/gnu/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch
new file mode 100644
index 0000000000..9e6217348f
--- /dev/null
+++
b/gnu/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch
@@ -0,0 +1,23 @@
+Author: Danny Milosavljevic <[email protected]>
+Date: 2026-02-25
+License: ASL2.0
+Subject: Add version to codex-protocol dependency in windows-sandbox-rs.
+
+The codex-protocol dependency in windows-sandbox-rs uses the TOML table
+format with an explicit path, rather than workspace inheritance
+(workspace = true). Because it is not an intra-workspace dependency,
+cargo cannot resolve its version from the workspace root Cargo.toml
+and cargo package fails with "dependency `codex-protocol` does not
+specify a version".
+
+diff -u a/codex-rs/windows-sandbox-rs/Cargo.toml
b/codex-rs/windows-sandbox-rs/Cargo.toml
+--- a/codex-rs/windows-sandbox-rs/Cargo.toml
++++ b/codex-rs/windows-sandbox-rs/Cargo.toml
+@@ -38,6 +38,7 @@
+ [dependencies.codex-protocol]
+ package = "codex-protocol"
+ path = "../protocol"
++version = "0.0.0"
+
+ [dependencies.rand]
+ default-features = false
diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm
index e033cd791e..fadc8dfa71 100644
--- a/gnu/packages/rust-apps.scm
+++ b/gnu/packages/rust-apps.scm
@@ -125,6 +125,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages rust)
+ #:use-module (gnu packages rust-sources)
#:use-module (gnu packages security-token)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages terminals)
@@ -836,6 +837,331 @@ Commit and SemVer specifications.")
"This package provides CLI Tool for codeberg similar to gh and glab.")
(license license:agpl3+)))
+(define-public codex
+ (package
+ (name "codex")
+ (version (package-version rust-codex-0.98.0))
+ (source
+ (origin
+ (inherit (package-source rust-codex-0.98.0))
+ (patches (search-patches
+ "rust-codex-0.98.0-execpolicy-file-lock.patch"
+ "rust-codex-0.98.0-core-file-lock.patch"
+ "rust-codex-0.98.0-arg0-file-lock.patch"
+ "codex-0.98.0-remove-patch-sections.patch"
+ "rust-codex-0.98.0-test-shebangs.patch"
+ "rust-codex-0.98.0-test-timeout.patch"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:install-source? #f
+ #:cargo-install-paths '(list "cli" "exec" "exec-server"
+ "linux-sandbox" "mcp-server"
+ "app-server" "tui")
+ ;; schema_fixtures_match_generated (upstream fixture is stale:
+ ;; FileChange::Update in codex-protocol gained old_content,
+ ;; new_content, move_path fields but the committed JSON schema
+ ;; fixture was not regenerated).
+ #:cargo-test-flags '(list "--workspace"
+ "--exclude" "codex-app-server-protocol"
+ "--"
+ ;; These tests exercise sandbox denial and
+ ;; escalation, which requires Landlock to
+ ;; cleanly deny filesystem access. Inside the
+ ;; build container Landlock returns NotEnforced
+ ;; and the sandbox binary panics instead.
+ ;; Disabling Landlock would not help either,
+ ;; since these tests need a working sandbox to
+ ;; have anything to deny and escalate.
+ "--skip"
"sandbox_denied_shell_returns_original_output"
+ "--skip"
"shell_escalated_permissions_rejected_then_ok"
+ "--skip" "unified_exec_runs_under_sandbox"
+ ;; These tests (in codex-exec) directly call
+ ;; spawn_command_under_linux_sandbox to verify
+ ;; that python and bash work correctly inside
+ ;; the Landlock sandbox. The sandbox binary
+ ;; (codex-exec) panics with LandlockRestrict
+ ;; (exit code 101) before the inner command
+ ;; even starts.
+ "--skip" "python_getpwuid_works_under_sandbox"
+ "--skip"
"python_multiprocessing_lock_works_under_sandbox"
+ "--skip"
"sandbox_distinguishes_command_and_policy_cwds"
+ ;; These linux-sandbox tests directly invoke
+ ;; the Landlock sandbox via
+ ;; process_exec_tool_call; same root cause.
+ "--skip" "test_writable_root"
+ "--skip" "test_timeout"
+ "--skip" "test_root_read"
+ "--skip" "test_dev_null_write"
+ "--skip" "test_no_new_privs_is_enabled"
+ ;; This test iterates many approval scenarios;
+ ;; one of them
+ ;;
(danger_full_access_on_request_allows_network)
+ ;; runs a command through the Landlock sandbox
+ ;; binary, which panics with LandlockRestrict
+ ;; inside the build container. Cargo --skip
+ ;; cannot target individual scenarios, so we
+ ;; skip the entire matrix.
+ "--skip" "approval_matrix_covers_all_modes"
+ ;; This test verifies session-level patch
+ ;; approval caching: approve once, skip
+ ;; future prompts for the same file. When
+ ;; Landlock is unavailable (as in the Guix
+ ;; build container) the sandbox binary panics,
+ ;; triggering the escalation-retry path, which
+ ;; interferes with the approval cache and
+ ;; causes a spurious re-prompt on the second
+ ;; patch.
+ "--skip"
"approving_apply_patch_for_session_skips_future_prompts_for_same_file"
+ ;; These tests expect to interrupt a
+ ;; long-running 'sleep 60' and receive
+ ;; TurnAborted. Default test config is
+ ;; OnRequest + ReadOnly. What happens:
+ ;;
+ ;; 1. ReadOnly wraps the command with
+ ;; codex-linux-sandbox (Landlock-based).
+ ;; 2. Landlock is unavailable in the Guix
+ ;; build container, so the sandbox
+ ;; binary exits instantly (~1 ms).
+ ;; 3. Orchestrator gets SandboxErr::Denied.
+ ;; wants_no_sandbox_approval(OnRequest)
+ ;; returns false (sandboxing.rs:222),
+ ;; so no escalation -- denial returned
+ ;; directly.
+ ;; 4. ToolEmitter::finish sends the error
+ ;; to the mock model as
+ ;; function_call_output.
+ ;; 5. Second mock SSE response fires,
+ ;; turn finishes with TurnComplete.
+ ;; 6. Op::Interrupt arrives 100 ms later,
+ ;; but the turn is already done --
+ ;; TurnAborted is never emitted,
+ ;; test times out.
+ ;;
+ ;; The similar interrupt_long_running_tool_
+ ;; emits_turn_aborted passes because it
+ ;; sends the interrupt with no delay and
+ ;; has only one mock response (so the turn
+ ;; cannot complete first).
+ "--skip"
"interrupt_persists_turn_aborted_marker_in_next_request"
+ "--skip"
"interrupt_tool_records_history_entries"
+ ;; Upstream bug: test hardcodes "0.0.0" in the
+ ;; expected user-agent string but the workspace
+ ;; version is "0.98.0".
+ "--skip"
"get_user_agent_returns_current_codex_user_agent"
+ ;; Same upstream bug: mcp-server tests
+ ;; check the initialize response which
+ ;; includes "version": "0.0.0" but the
+ ;; server returns "0.98.0".
+ "--skip"
"test_codex_tool_passes_base_instructions"
+ "--skip"
"test_shell_command_approval_triggers_elicitation"
+ "--skip"
"test_patch_approval_triggers_elicitation"
+ ;; These codex-exec-server tests need
+ ;; "dotslash", a Meta tool that lazily
+ ;; downloads pre-built binaries from a
+ ;; JSON manifest. The test helper
+ ;; create_transport runs
+ ;; `dotslash -- fetch <path>` to obtain a
+ ;; custom bash binary described in
+ ;; exec-server/tests/suite/bash.
+ ;; dotslash is not available in the build
+ ;; container.
+ "--skip" "list_tools"
+ "--skip" "accept_elicitation_for_prompt_rule"
+ ;;; Test isolation bug: each test in
+ ;;; state/src/runtime.rs calls
+ ;;; unique_temp_dir() to get its own
+ ;;; temporary directory (and thus its
+ ;;; own SQLite database). That function
+ ;;; names directories using the current
+ ;;; nanosecond timestamp, so when tests
+ ;;; run in parallel several can receive
+ ;;; the same name and open the same
+ ;;; database. The initial SQLite
+ ;;; migration runs CREATE TABLE threads
+ ;;; (without IF NOT EXISTS), so any init
+ ;;; after the first panics with "table
+ ;;; threads already exists". Any of
+ ;;; these tests
+ ;;; can be the victim.
+ "--skip" "init_removes_legacy_state_db_files"
+ "--skip" "upsert_and_get_thread_memory"
+ "--skip"
"get_last_n_thread_memories_for_cwd_matches_exactly"
+ "--skip"
"upsert_thread_memory_errors_for_unknown_thread"
+ "--skip"
"get_last_n_thread_memories_for_cwd_zero_returns_empty"
+ "--skip"
"get_last_n_thread_memories_for_cwd_does_not_prefix_match"
+ "--skip"
"deleting_thread_cascades_thread_memory")
+ #:cargo-package-crates
+ ''(;;; Tier 0: No internal deps.
+ "codex-async-utils"
+ "codex-client"
+ "codex-execpolicy"
+ "codex-file-search"
+ "codex-git"
+ "codex-keyring-store"
+ "codex-utils-absolute-path"
+ "codex-utils-cache"
+ "codex-utils-cargo-bin"
+ "codex-utils-home-dir"
+ "codex-utils-json-to-toml"
+ "codex-utils-pty"
+ "codex-utils-readiness"
+ "codex-utils-string"
+ "codex-backend-openapi-models"
+ "codex-process-hardening"
+ "codex-ansi-escape"
+ ;;; Tier 1: Depends on tier 0.
+ "codex-utils-image"
+ "codex-apply-patch"
+ "codex-protocol"
+ "codex-windows-sandbox"
+ "codex-api"
+ "codex-experimental-api-macros"
+ "codex-secrets"
+ "codex-execpolicy-legacy"
+ "codex-debug-client"
+ ;;; Tier 2.
+ "codex-app-server-protocol"
+ "codex-rmcp-client"
+ "codex-otel"
+ "codex-state"
+ "codex-core"
+ "codex-linux-sandbox"
+ "codex-feedback"
+ ;;; Tier 3.
+ "codex-arg0"
+ "codex-lmstudio"
+ "codex-login"
+ "codex-ollama"
+ "codex-common"
+ "codex-mcp-server"
+ "codex-backend-client"
+ "codex-responses-api-proxy"
+ ;;; Tier 4.
+ "codex-cloud-requirements"
+ "codex-exec"
+ "codex-exec-server"
+ "codex-stdio-to-uds"
+ ;; codex-network-proxy requires rama which needs Rust 1.91+.
+ "codex-chatgpt"
+ "codex-cloud-tasks-client"
+ ;;; Tier 5.
+ "codex-app-server"
+ "codex-app-server-test-client"
+ "codex-tui"
+ ;;; Tier 6.
+ "codex-cloud-tasks"
+ ;; The main executable.
+ "codex-cli")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir-to-workspace
+ (lambda _
+ (chdir "codex-rs")))
+ (add-after 'chdir-to-workspace 'update-version-in-snapshots
+ (lambda _
+ ;; Snapshot test files contain hardcoded v0.0.0 version strings.
+ ;; Update them to match the actual package version.
+ (let ((snap-files (find-files "." "\\.snap$")))
+ (substitute* snap-files
+ (("\\(v0\\.0\\.0\\) ") "(v0.98.0)")))))
+ (add-after 'chdir-to-workspace 'patch-git-deps-to-vendor
+ (lambda _
+ ;; Replace git dependencies with version references so cargo
+ ;; resolves them from the vendored sources.
+ (substitute* "Cargo.toml"
+ (("nucleo = \\{ git = [^}]+\\}")
+ "nucleo = \"0.5.0\"")
+ (("runfiles = \\{ git = [^}]+\\}")
+ "runfiles = \"0.1.0\""))))
+ (add-after 'chdir-to-workspace 'add-version-to-workspace-deps
+ (lambda _
+ ;; cargo package requires all dependencies to have versions.
+ ;; cargo package requires all dependencies to have versions.
+ ;; Add version = "0.98.0" to internal path dependencies.
+ (let ((cargo-files (find-files "." "^Cargo\\.toml$")))
+ (substitute* cargo-files
+ ;; Handle inline deps: name = { path = "..." }
+ (("(codex-[a-z0-9-]+) = \\{ path = " all name)
+ (string-append name " = { version = \"0.98.0\", path = "))
+ ;; Handle inline deps with package: name = { package =
"...", path = "..." }
+ (("(codex-[a-z0-9-]+) = \\{ package = " all name)
+ (string-append name " = { version = \"0.98.0\", package =
"))
+ ;; Handle section deps: [dependencies.X] with path = "..."
+ (("^(path = \"\\.\\./[^\"]*\")" all path-line)
+ (string-append path-line "\nversion = \"0.98.0\""))))))
+ (add-after 'chdir-to-workspace 'patch-hardcoded-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash-bin (string-append
+ (assoc-ref inputs "bash-minimal") "/bin"))
+ (coreutils-bin (string-append
+ (assoc-ref inputs "coreutils") "/bin"))
+ (git-bin (string-append
+ (assoc-ref inputs "git-minimal") "/bin"))
+ (sed-bin (string-append
+ (assoc-ref inputs "sed") "/bin"))
+ ;; Include .policy files: the execpolicy-legacy
+ ;; crate embeds default.policy via include_str!
+ ;; at compile time, so its paths must also be
+ ;; patched.
+ (rs-files (find-files "." "\\.(rs|policy)$")))
+ (substitute* rs-files
+ (("\"/bin/bash\"")
+ (string-append "\"" bash-bin "/bash\""))
+ (("\"/bin/sh\"")
+ (string-append "\"" bash-bin "/sh\""))
+ (("\"/usr/bin/bash\"")
+ (string-append "\"" bash-bin "/bash\""))
+ (("\"/usr/bin/sh\"")
+ (string-append "\"" bash-bin "/sh\""))
+ ;;; bash/sh with inline arguments, e.g. "/bin/bash -i".
+ (("\"/bin/bash ")
+ (string-append "\"" bash-bin "/bash "))
+ (("\"/bin/sh ")
+ (string-append "\"" bash-bin "/sh "))
+ ;; coreutils.
+ (("\"/bin/(cat|cp|date|echo|head|ls|rm|sleep|true|touch)\""
all cmd)
+ (string-append "\"" coreutils-bin "/" cmd "\""))
+ ;; coreutils.
+ (("\"/usr/bin/(cat|cp|head|ls|touch|true)\"" all cmd)
+ (string-append "\"" coreutils-bin "/" cmd "\""))
+ ;; coreutils with inline arguments
+ ;; like "/bin/echo END-EVENT".
+ (("\"/bin/(cat|cp|date|echo|head|ls|rm|sleep|true|touch) "
all cmd)
+ (string-append "\"" coreutils-bin "/" cmd " "))
+ (("\"/usr/bin/git\"")
+ (string-append "\"" git-bin "/git\""))
+ (("\"/usr/bin/sed\"")
+ (string-append "\"" sed-bin "/sed\"")))
+ ;; @SHELL@ placeholder from test-shebangs patch
+ (substitute*
+ (list "rmcp-client/src/program_resolver.rs"
+ "tui/src/external_editor.rs")
+ (("@SHELL@")
+ (string-append bash-bin "/sh")))
+ ;; shebang in test-only file
+ (substitute*
+ "core/tests/suite/user_notification.rs"
+ (("#!/bin/bash")
+ (string-append "#!" bash-bin "/bash"))))))
+ (add-before 'check 'set-home
+ (lambda _
+ (setenv "HOME" "/tmp")
+ (setenv "USER" "nixbld"))))))
+ (native-inputs (list perl python-minimal ;for tests
+ pkg-config))
+ (inputs (cons* bash-minimal coreutils git-minimal sed
+ openssl sqlite `(,zstd "lib")
+ (cargo-inputs 'codex)))
+ (home-page "https://github.com/openai/codex")
+ (synopsis "AI-assisted coding CLI and TUI")
+ (description
+ "Codex is an AI-powered coding assistant that runs in the terminal.
+It provides an interactive TUI for conversations with AI models, with
+support for shell command execution, file editing, and code generation.
+Configure providers via @file{~/.codex/config.toml}.")
+ (license license:asl2.0)))
+
(define-public codex-acp
(package
(name "codex-acp")
diff --git a/gnu/packages/rust-crates.scm b/gnu/packages/rust-crates.scm
index 412074f5a3..615eaa294e 100644
--- a/gnu/packages/rust-crates.scm
+++ b/gnu/packages/rust-crates.scm
@@ -4368,6 +4368,101 @@
(define rust-codex-windows-sandbox-0.0.0.785c0c43
package:rust-codex-0.0.0.785c0c43)
+;;; Aliases for codex 0.98.0 workspace crates (see rust-sources.scm)
+
+(define rust-codex-api-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-app-server-protocol-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-apply-patch-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-arg0-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-async-utils-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-client-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-common-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-core-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-execpolicy-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-experimental-api-macros-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-file-search-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-git-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-keyring-store-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-linux-sandbox-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-lmstudio-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-login-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-mcp-server-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-ollama-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-otel-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-protocol-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-rmcp-client-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-state-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-absolute-path-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-cache-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-home-dir-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-image-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-json-to-toml-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-pty-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-readiness-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-utils-string-0.98.0
+ package:rust-codex-0.98.0)
+
+(define rust-codex-windows-sandbox-0.98.0
+ package:rust-codex-0.98.0)
+
(define rust-codspeed-2.10.0
(crate-source "codspeed" "2.10.0"
"1x9anwlfzlfby794d5fcvp214bj8bp29br8pkksxwb7834djja6j"))
@@ -39248,6 +39343,930 @@
rust-zerovec-0.11.5
rust-zerovec-derive-0.11.2
rust-zmij-1.0.21))
+ (codex =>
+ (list
+ rust-actix-codec-0.5.2
+ rust-actix-http-3.11.2
+ rust-actix-router-0.5.3
+ rust-actix-rt-2.11.0
+ rust-actix-server-2.6.0
+ rust-actix-service-2.0.3
+ rust-actix-utils-3.0.1
+ rust-actix-web-4.12.1
+ rust-addr2line-0.25.1
+ rust-adler2-2.0.1
+ rust-aead-0.5.2
+ rust-aes-0.8.4
+ rust-age-0.11.2
+ rust-age-core-0.11.0
+ rust-ahash-0.8.12
+ rust-aho-corasick-1.1.4
+ rust-allocative-0.3.4
+ rust-allocative-derive-0.3.3
+ rust-allocator-api2-0.2.21
+ rust-android-system-properties-0.1.5
+ rust-annotate-snippets-0.9.2
+ rust-ansi-to-tui-7.0.0
+ rust-anstream-0.6.21
+ rust-anstyle-1.0.13
+ rust-anstyle-parse-0.2.7
+ rust-anstyle-query-1.1.5
+ rust-anstyle-wincon-3.0.11
+ rust-anyhow-1.0.100
+ rust-arbitrary-1.4.2
+ rust-arboard-3.6.1
+ rust-arc-swap-1.8.0
+ rust-arrayvec-0.7.6
+ rust-ascii-1.1.0
+ rust-ascii-canvas-3.0.0
+ rust-assert-cmd-2.1.2
+ rust-assert-json-diff-2.0.2
+ rust-assert-matches-1.5.0
+ rust-async-broadcast-0.7.2
+ rust-async-channel-2.5.0
+ rust-async-executor-1.13.3
+ rust-async-fs-2.2.0
+ rust-async-io-2.6.0
+ rust-async-lock-3.4.2
+ rust-async-process-2.5.0
+ rust-async-recursion-1.1.1
+ rust-async-signal-0.2.13
+ rust-async-stream-0.3.6
+ rust-async-stream-impl-0.3.6
+ rust-async-task-4.7.1
+ rust-async-trait-0.1.89
+ rust-asynk-strim-0.1.5
+ rust-atoi-2.0.0
+ rust-atomic-waker-1.1.2
+ rust-autocfg-1.5.0
+ rust-axum-0.8.8
+ rust-axum-core-0.5.6
+ rust-backtrace-0.3.76
+ rust-base64-0.21.7
+ rust-base64-0.22.1
+ rust-base64ct-1.8.3
+ rust-basic-toml-0.1.10
+ rust-bech32-0.9.1
+ rust-beef-0.5.2
+ rust-bindgen-0.72.1
+ rust-bit-set-0.5.3
+ rust-bit-vec-0.6.3
+ rust-bitflags-1.3.2
+ rust-bitflags-2.10.0
+ rust-block-buffer-0.10.4
+ rust-block-padding-0.3.3
+ rust-block2-0.6.2
+ rust-blocking-1.6.2
+ rust-borsh-1.6.0
+ rust-bstr-1.12.1
+ rust-bumpalo-3.19.1
+ rust-bytemuck-1.25.0
+ rust-byteorder-1.5.0
+ rust-byteorder-lite-0.1.0
+ rust-bytes-1.11.1
+ rust-bytestring-1.5.0
+ rust-bzip2-0.5.2
+ rust-bzip2-sys-0.1.13+1.0.8
+ rust-cassowary-0.3.0
+ rust-castaway-0.2.4
+ rust-cbc-0.1.2
+ rust-cc-1.2.55
+ rust-cesu8-1.1.0
+ rust-cexpr-0.6.0
+ rust-cfg-aliases-0.1.1
+ rust-cfg-aliases-0.2.1
+ rust-cfg-if-1.0.4
+ rust-chacha20-0.9.1
+ rust-chacha20poly1305-0.10.1
+ rust-chardetng-0.1.17
+ rust-chrono-0.4.43
+ rust-chunked-transfer-1.5.0
+ rust-cipher-0.4.4
+ rust-clang-sys-1.8.1
+ rust-clap-4.5.56
+ rust-clap-builder-4.5.56
+ rust-clap-complete-4.5.65
+ rust-clap-derive-4.5.55
+ rust-clap-lex-0.7.7
+ rust-clipboard-win-5.4.1
+ rust-cmake-0.1.57
+ rust-cmp-any-0.8.1
+ rust-color-eyre-0.6.5
+ rust-color-spantrace-0.3.0
+ rust-colorchoice-1.0.4
+ rust-combine-4.6.7
+ rust-compact-str-0.8.1
+ rust-concurrent-queue-2.5.0
+ rust-console-0.15.11
+ rust-const-format-0.2.35
+ rust-const-format-proc-macros-0.2.34
+ rust-const-hex-1.17.0
+ rust-const-oid-0.9.6
+ rust-constant-time-eq-0.3.1
+ rust-convert-case-0.10.0
+ rust-convert-case-0.6.0
+ rust-cookie-factory-0.3.3
+ rust-core-foundation-0.10.1
+ rust-core-foundation-0.9.4
+ rust-core-foundation-sys-0.8.7
+ rust-cpufeatures-0.2.17
+ rust-crc-3.4.0
+ rust-crc-catalog-2.4.0
+ rust-crc32fast-1.5.0
+ rust-critical-section-1.2.0
+ rust-crossbeam-channel-0.5.15
+ rust-crossbeam-deque-0.8.6
+ rust-crossbeam-epoch-0.9.18
+ rust-crossbeam-queue-0.3.12
+ rust-crossbeam-utils-0.8.21
+ rust-crossterm-0.28.1.87db8bfa
+ rust-crossterm-winapi-0.9.1
+ rust-crunchy-0.2.4
+ rust-crypto-common-0.1.7
+ rust-csv-1.4.0
+ rust-csv-core-0.1.13
+ rust-ctor-0.1.26
+ rust-ctor-0.6.3
+ rust-ctor-proc-macro-0.0.7
+ rust-curve25519-dalek-4.1.3
+ rust-curve25519-dalek-derive-0.1.1
+ rust-darling-0.21.3
+ rust-darling-0.23.0
+ rust-darling-core-0.21.3
+ rust-darling-core-0.23.0
+ rust-darling-macro-0.21.3
+ rust-darling-macro-0.23.0
+ rust-data-encoding-2.10.0
+ rust-dbus-0.9.10
+ rust-dbus-secret-service-4.1.0
+ rust-deadpool-0.12.3
+ rust-deadpool-runtime-0.1.4
+ rust-debugid-0.8.0
+ rust-debugserver-types-0.5.0
+ rust-deflate64-0.1.10
+ rust-der-0.7.10
+ rust-deranged-0.5.5
+ rust-derivative-2.2.0
+ rust-derive-arbitrary-1.4.2
+ rust-derive-more-1.0.0
+ rust-derive-more-2.1.1
+ rust-derive-more-impl-1.0.0
+ rust-derive-more-impl-2.1.1
+ rust-diff-0.1.13
+ rust-difflib-0.4.0
+ rust-diffy-0.4.2
+ rust-digest-0.10.7
+ rust-dirs-6.0.0
+ rust-dirs-next-2.0.0
+ rust-dirs-sys-0.5.0
+ rust-dirs-sys-next-0.1.2
+ rust-dispatch2-0.3.0
+ rust-display-container-0.9.0
+ rust-displaydoc-0.2.5
+ rust-dotenvy-0.15.7
+ rust-downcast-rs-1.2.1
+ rust-dtor-0.1.1
+ rust-dtor-proc-macro-0.0.6
+ rust-dunce-1.0.5
+ rust-dupe-0.9.1
+ rust-dupe-derive-0.9.1
+ rust-dyn-clone-1.0.20
+ rust-either-1.15.0
+ rust-ena-0.14.3
+ rust-encode-unicode-1.0.0
+ rust-encoding-rs-0.8.35
+ rust-endi-1.1.1
+ rust-endian-type-0.1.2
+ rust-endian-type-0.2.0
+ rust-enum-as-inner-0.6.1
+ rust-enumflags2-0.7.12
+ rust-enumflags2-derive-0.7.12
+ rust-env-filter-0.1.4
+ rust-env-flags-0.1.1
+ rust-env-home-0.1.0
+ rust-env-logger-0.11.8
+ rust-equivalent-1.0.2
+ rust-erased-serde-0.3.31
+ rust-errno-0.3.14
+ rust-error-code-3.3.2
+ rust-etcetera-0.8.0
+ rust-event-listener-5.4.1
+ rust-event-listener-strategy-0.5.4
+ rust-eventsource-stream-0.2.3
+ rust-eyre-0.6.12
+ rust-fastrand-2.3.0
+ rust-fax-0.2.6
+ rust-fax-derive-0.2.0
+ rust-fd-lock-4.0.4
+ rust-fdeflate-0.3.7
+ rust-fiat-crypto-0.2.9
+ rust-filedescriptor-0.8.3
+ rust-find-crate-0.6.3
+ rust-find-msvc-tools-0.1.9
+ rust-findshlibs-0.10.2
+ rust-fixed-decimal-0.7.1
+ rust-fixedbitset-0.4.2
+ rust-fixedbitset-0.5.7
+ rust-flate2-1.1.8
+ rust-float-cmp-0.10.0
+ rust-fluent-0.16.1
+ rust-fluent-bundle-0.15.3
+ rust-fluent-langneg-0.13.1
+ rust-fluent-syntax-0.11.1
+ rust-flume-0.11.1
+ rust-flume-0.12.0
+ rust-fnv-1.0.7
+ rust-foldhash-0.1.5
+ rust-foldhash-0.2.0
+ rust-foreign-types-0.3.2
+ rust-foreign-types-0.5.0
+ rust-foreign-types-macros-0.2.3
+ rust-foreign-types-shared-0.1.1
+ rust-foreign-types-shared-0.3.1
+ rust-form-urlencoded-1.2.2
+ rust-fs-extra-1.3.0
+ rust-fsevent-sys-4.1.0
+ rust-fslock-0.2.1
+ rust-futures-0.3.31
+ rust-futures-channel-0.3.31
+ rust-futures-core-0.3.31
+ rust-futures-executor-0.3.31
+ rust-futures-intrusive-0.5.0
+ rust-futures-io-0.3.31
+ rust-futures-lite-2.6.1
+ rust-futures-macro-0.3.31
+ rust-futures-sink-0.3.31
+ rust-futures-task-0.3.31
+ rust-futures-util-0.3.31
+ rust-fxhash-0.2.1
+ rust-generator-0.8.8
+ rust-generic-array-0.14.7
+ rust-gethostname-1.1.0
+ rust-getopts-0.2.24
+ rust-getrandom-0.2.17
+ rust-getrandom-0.3.4
+ rust-gimli-0.32.3
+ rust-glob-0.3.3
+ rust-globset-0.4.18
+ rust-h2-0.4.13
+ rust-half-2.7.1
+ rust-hashbrown-0.12.3
+ rust-hashbrown-0.14.5
+ rust-hashbrown-0.15.5
+ rust-hashbrown-0.16.1
+ rust-hashlink-0.10.0
+ rust-heck-0.5.0
+ rust-hermit-abi-0.5.2
+ rust-hex-0.4.3
+ rust-hickory-proto-0.25.2
+ rust-hickory-resolver-0.25.2
+ rust-hkdf-0.12.4
+ rust-hmac-0.12.1
+ rust-home-0.5.12
+ rust-hostname-0.4.2
+ rust-http-0.2.12
+ rust-http-1.4.0
+ rust-http-body-1.0.1
+ rust-http-body-util-0.1.3
+ rust-http-range-header-0.4.2
+ rust-httparse-1.10.1
+ rust-httpdate-1.0.3
+ rust-hyper-1.8.1
+ rust-hyper-rustls-0.27.7
+ rust-hyper-timeout-0.5.2
+ rust-hyper-tls-0.6.0
+ rust-hyper-util-0.1.19
+ rust-i18n-config-0.4.8
+ rust-i18n-embed-0.15.4
+ rust-i18n-embed-fl-0.9.4
+ rust-i18n-embed-impl-0.8.4
+ rust-iana-time-zone-0.1.65
+ rust-iana-time-zone-haiku-0.1.2
+ rust-icu-collections-2.1.1
+ rust-icu-decimal-2.1.1
+ rust-icu-decimal-data-2.1.1
+ rust-icu-locale-2.1.1
+ rust-icu-locale-core-2.1.1
+ rust-icu-locale-data-2.1.2
+ rust-icu-normalizer-2.1.1
+ rust-icu-normalizer-data-2.1.1
+ rust-icu-properties-2.1.2
+ rust-icu-properties-data-2.1.2
+ rust-icu-provider-2.1.1
+ rust-ident-case-1.0.1
+ rust-idna-1.1.0
+ rust-idna-adapter-1.2.1
+ rust-ignore-0.4.25
+ rust-image-0.25.9
+ rust-impl-more-0.1.9
+ rust-include-dir-0.7.4
+ rust-include-dir-macros-0.7.4
+ rust-indenter-0.3.4
+ rust-indexmap-1.9.3
+ rust-indexmap-2.13.0
+ rust-indoc-2.0.7
+ rust-inflector-0.11.4
+ rust-inotify-0.11.0
+ rust-inotify-sys-0.1.5
+ rust-inout-0.1.4
+ rust-insta-1.46.2
+ rust-instability-0.3.11
+ rust-intl-memoizer-0.5.3
+ rust-intl-pluralrules-7.0.2
+ rust-inventory-0.3.21
+ rust-io-tee-0.1.1
+ rust-ipconfig-0.3.2
+ rust-ipnet-2.11.0
+ rust-iri-string-0.7.10
+ rust-is-ci-1.2.0
+ rust-is-terminal-0.4.17
+ rust-is-terminal-polyfill-1.70.2
+ rust-itertools-0.10.5
+ rust-itertools-0.13.0
+ rust-itertools-0.14.0
+ rust-itoa-1.0.17
+ rust-jiff-0.2.18
+ rust-jiff-static-0.2.18
+ rust-jni-0.21.1
+ rust-jni-sys-0.3.0
+ rust-jobserver-0.1.34
+ rust-js-sys-0.3.85
+ rust-keyring-3.6.3
+ rust-kqueue-1.1.1
+ rust-kqueue-sys-1.0.4
+ rust-lalrpop-0.19.12
+ rust-lalrpop-util-0.19.12
+ rust-landlock-0.4.4
+ rust-language-tags-0.3.2
+ rust-lazy-static-1.5.0
+ rust-libc-0.2.180
+ rust-libdbus-sys-0.2.7
+ rust-libloading-0.8.9
+ rust-libm-0.2.16
+ rust-libredox-0.1.12
+ rust-libsqlite3-sys-0.30.1
+ rust-linux-keyutils-0.2.4
+ rust-linux-raw-sys-0.11.0
+ rust-linux-raw-sys-0.4.15
+ rust-litemap-0.8.1
+ rust-local-waker-0.1.4
+ rust-lock-api-0.4.14
+ rust-log-0.4.29
+ rust-logos-0.12.1
+ rust-logos-derive-0.12.1
+ rust-loom-0.7.2
+ rust-lru-0.12.5
+ rust-lru-0.16.3
+ rust-lru-slab-0.1.2
+ rust-lsp-types-0.94.1
+ rust-lzma-rs-0.3.0
+ rust-lzma-sys-0.1.20
+ rust-maplit-1.0.2
+ rust-matchers-0.2.0
+ rust-matchit-0.8.4
+ rust-matchit-0.9.1
+ rust-md-5-0.10.6
+ rust-md5-0.8.0
+ rust-memchr-2.7.6
+ rust-memoffset-0.6.5
+ rust-memoffset-0.9.1
+ rust-mime-0.3.17
+ rust-mime-guess-2.0.5
+ rust-minimal-lexical-0.2.1
+ rust-miniz-oxide-0.8.9
+ rust-mio-1.1.1
+ rust-moka-0.12.13
+ rust-moxcms-0.7.11
+ rust-multimap-0.10.1
+ rust-native-tls-0.2.14
+ rust-ndk-context-0.1.1
+ rust-new-debug-unreachable-1.0.6
+ rust-nibble-vec-0.1.0
+ rust-nix-0.28.0
+ rust-nix-0.29.0
+ rust-nix-0.30.1
+ rust-nom-7.1.3
+ rust-nom-8.0.0
+ rust-normalize-line-endings-0.3.0
+ rust-notify-8.2.0
+ rust-notify-types-2.1.0
+ rust-nu-ansi-term-0.50.3
+ rust-nucleo-0.5.0.4253de9f
+ rust-nucleo-matcher-0.3.1
+ rust-num-0.4.3
+ rust-num-bigint-0.4.6
+ rust-num-bigint-dig-0.8.6
+ rust-num-complex-0.4.6
+ rust-num-conv-0.2.0
+ rust-num-cpus-1.17.0
+ rust-num-integer-0.1.46
+ rust-num-iter-0.1.45
+ rust-num-rational-0.4.2
+ rust-num-threads-0.1.7
+ rust-num-traits-0.2.19
+ rust-oauth2-5.0.0
+ rust-objc2-0.6.3
+ rust-objc2-app-kit-0.3.2
+ rust-objc2-cloud-kit-0.3.2
+ rust-objc2-core-data-0.3.2
+ rust-objc2-core-foundation-0.3.2
+ rust-objc2-core-graphics-0.3.2
+ rust-objc2-core-image-0.3.2
+ rust-objc2-core-location-0.3.2
+ rust-objc2-core-text-0.3.2
+ rust-objc2-encode-4.1.0
+ rust-objc2-foundation-0.3.2
+ rust-objc2-io-surface-0.3.2
+ rust-objc2-quartz-core-0.3.2
+ rust-objc2-ui-kit-0.3.2
+ rust-objc2-user-notifications-0.3.2
+ rust-object-0.37.3
+ rust-once-cell-1.21.3
+ rust-once-cell-polyfill-1.70.2
+ rust-opaque-debug-0.3.1
+ rust-openssl-0.10.75
+ rust-openssl-macros-0.1.1
+ rust-openssl-probe-0.1.6
+ rust-openssl-probe-0.2.1
+ rust-openssl-src-300.5.5+3.5.5
+ rust-openssl-sys-0.9.111
+ rust-opentelemetry-0.31.0
+ rust-opentelemetry-appender-tracing-0.31.1
+ rust-opentelemetry-http-0.31.0
+ rust-opentelemetry-otlp-0.31.0
+ rust-opentelemetry-proto-0.31.0
+ rust-opentelemetry-sdk-0.31.0
+ rust-opentelemetry-semantic-conventions-0.31.0
+ rust-option-ext-0.2.0
+ rust-ordered-stream-0.2.0
+ rust-os-info-3.14.0
+ rust-os-pipe-1.2.3
+ rust-owo-colors-4.2.3
+ rust-parking-2.2.1
+ rust-parking-lot-0.12.5
+ rust-parking-lot-core-0.9.12
+ rust-paste-1.0.15
+ rust-pastey-0.2.1
+ rust-path-absolutize-3.1.1
+ rust-path-dedot-3.1.1
+ rust-pathdiff-0.2.3
+ rust-pbkdf2-0.12.2
+ rust-pem-rfc7468-0.7.0
+ rust-percent-encoding-2.3.2
+ rust-petgraph-0.6.5
+ rust-petgraph-0.8.3
+ rust-phf-shared-0.11.3
+ rust-pin-project-1.1.10
+ rust-pin-project-internal-1.1.10
+ rust-pin-project-lite-0.2.16
+ rust-pin-utils-0.1.0
+ rust-piper-0.2.4
+ rust-pkcs1-0.7.5
+ rust-pkcs8-0.10.2
+ rust-pkg-config-0.3.32
+ rust-png-0.18.0
+ rust-polling-3.11.0
+ rust-poly1305-0.8.0
+ rust-portable-atomic-1.13.1
+ rust-portable-atomic-util-0.2.5
+ rust-portable-pty-0.9.0
+ rust-potential-utf-0.1.4
+ rust-powerfmt-0.2.0
+ rust-ppv-lite86-0.2.21
+ rust-precomputed-hash-0.1.1
+ rust-predicates-3.1.3
+ rust-predicates-core-1.0.9
+ rust-predicates-tree-1.0.12
+ rust-pretty-assertions-1.4.1
+ rust-proc-macro-crate-3.4.0
+ rust-proc-macro-error-attr2-2.0.0
+ rust-proc-macro-error2-2.0.1
+ rust-proc-macro2-1.0.106
+ rust-process-wrap-9.0.1
+ rust-proptest-1.9.0
+ rust-prost-0.14.3
+ rust-prost-derive-0.14.3
+ rust-psl-2.1.184
+ rust-psl-types-2.0.11
+ rust-pulldown-cmark-0.10.3
+ rust-pulldown-cmark-escape-0.10.1
+ rust-pxfm-0.1.27
+ rust-quick-error-2.0.1
+ rust-quick-xml-0.38.4
+ rust-quinn-0.11.9
+ rust-quinn-proto-0.11.13
+ rust-quinn-udp-0.5.14
+ rust-quote-1.0.44
+ rust-r-efi-5.3.0
+ rust-radix-trie-0.2.1
+ rust-radix-trie-0.3.0
+ rust-rama-boring-0.5.10
+ rust-rama-boring-sys-0.5.10
+ rust-rama-boring-tokio-0.5.10
+ rust-rama-core-0.3.0-alpha.4
+ rust-rama-dns-0.3.0-alpha.4
+ rust-rama-error-0.3.0-alpha.4
+ rust-rama-http-0.3.0-alpha.4
+ rust-rama-http-backend-0.3.0-alpha.4
+ rust-rama-http-core-0.3.0-alpha.4
+ rust-rama-http-headers-0.3.0-alpha.4
+ rust-rama-http-types-0.3.0-alpha.4
+ rust-rama-macros-0.3.0-alpha.4
+ rust-rama-net-0.3.0-alpha.4
+ rust-rama-socks5-0.3.0-alpha.4
+ rust-rama-tcp-0.3.0-alpha.4
+ rust-rama-tls-boring-0.3.0-alpha.4
+ rust-rama-udp-0.3.0-alpha.4
+ rust-rama-unix-0.3.0-alpha.4
+ rust-rama-utils-0.3.0-alpha.4
+ rust-rand-0.8.5
+ rust-rand-0.9.2
+ rust-rand-chacha-0.3.1
+ rust-rand-chacha-0.9.0
+ rust-rand-core-0.6.4
+ rust-rand-core-0.9.5
+ rust-rand-xorshift-0.4.0
+ rust-ratatui-0.29.0.9b2ad129
+ rust-ratatui-macros-0.6.0
+ rust-rayon-1.11.0
+ rust-rayon-core-1.13.0
+ rust-redox-syscall-0.5.18
+ rust-redox-syscall-0.7.0
+ rust-redox-users-0.4.6
+ rust-redox-users-0.5.2
+ rust-ref-cast-1.0.25
+ rust-ref-cast-impl-1.0.25
+ rust-regex-1.12.2
+ rust-regex-automata-0.4.13
+ rust-regex-lite-0.1.8
+ rust-regex-syntax-0.6.29
+ rust-regex-syntax-0.8.8
+ rust-reqwest-0.12.28
+ rust-resolv-conf-0.7.6
+ rust-ring-0.17.14
+ rust-rmcp-0.12.0
+ rust-rmcp-macros-0.12.0
+ rust-rsa-0.9.10
+ rust-runfiles-0.1.0.b56cbaa8
+ rust-rust-embed-8.11.0
+ rust-rust-embed-impl-8.11.0
+ rust-rust-embed-utils-8.11.0
+ rust-rustc-demangle-0.1.27
+ rust-rustc-hash-1.1.0
+ rust-rustc-hash-2.1.1
+ rust-rustc-version-0.4.1
+ rust-rustix-0.38.44
+ rust-rustix-1.1.3
+ rust-rustls-0.23.36
+ rust-rustls-native-certs-0.8.3
+ rust-rustls-pki-types-1.14.0
+ rust-rustls-webpki-0.103.9
+ rust-rustversion-1.0.22
+ rust-rustyline-14.0.0
+ rust-ryu-1.0.22
+ rust-salsa20-0.10.2
+ rust-same-file-1.0.6
+ rust-scc-2.4.0
+ rust-schannel-0.1.28
+ rust-schemafy-0.5.2
+ rust-schemafy-core-0.5.2
+ rust-schemafy-lib-0.5.2
+ rust-schemars-0.8.22
+ rust-schemars-0.9.0
+ rust-schemars-1.2.1
+ rust-schemars-derive-0.8.22
+ rust-schemars-derive-1.2.1
+ rust-scoped-tls-1.0.1
+ rust-scopeguard-1.2.0
+ rust-scrypt-0.11.0
+ rust-sdd-3.0.10
+ rust-seccompiler-0.5.0
+ rust-secrecy-0.10.3
+ rust-secret-service-4.0.0
+ rust-security-framework-2.11.1
+ rust-security-framework-3.5.1
+ rust-security-framework-sys-2.15.0
+ rust-self-cell-0.10.3
+ rust-self-cell-1.2.2
+ rust-semver-1.0.27
+ rust-sentry-0.46.1
+ rust-sentry-actix-0.46.1
+ rust-sentry-backtrace-0.46.1
+ rust-sentry-contexts-0.46.1
+ rust-sentry-core-0.46.1
+ rust-sentry-debug-images-0.46.1
+ rust-sentry-panic-0.46.1
+ rust-sentry-tracing-0.46.1
+ rust-sentry-types-0.46.1
+ rust-serde-1.0.228
+ rust-serde-core-1.0.228
+ rust-serde-derive-1.0.228
+ rust-serde-derive-internals-0.29.1
+ rust-serde-html-form-0.3.2
+ rust-serde-json-1.0.149
+ rust-serde-path-to-error-0.1.20
+ rust-serde-repr-0.1.20
+ rust-serde-spanned-1.0.4
+ rust-serde-urlencoded-0.7.1
+ rust-serde-with-3.16.1
+ rust-serde-with-macros-3.16.1
+ rust-serde-yaml-0.9.34+deprecated
+ rust-serial-test-3.3.1
+ rust-serial-test-derive-3.3.1
+ rust-serial2-0.2.33
+ rust-sha1-0.10.6
+ rust-sha1-smol-1.0.1
+ rust-sha2-0.10.9
+ rust-sharded-slab-0.1.7
+ rust-shared-library-0.1.9
+ rust-shell-words-1.1.1
+ rust-shlex-1.3.0
+ rust-signal-hook-0.3.18
+ rust-signal-hook-mio-0.2.5
+ rust-signal-hook-registry-1.4.8
+ rust-signature-2.2.0
+ rust-simd-adler32-0.3.8
+ rust-simdutf8-0.1.5
+ rust-similar-2.7.0
+ rust-siphasher-1.0.2
+ rust-slab-0.4.12
+ rust-smallvec-1.15.1
+ rust-smawk-0.3.2
+ rust-smol-str-0.3.5
+ rust-socket2-0.5.10
+ rust-socket2-0.6.2
+ rust-spin-0.9.8
+ rust-spki-0.7.3
+ rust-sqlx-0.8.6
+ rust-sqlx-core-0.8.6
+ rust-sqlx-macros-0.8.6
+ rust-sqlx-macros-core-0.8.6
+ rust-sqlx-mysql-0.8.6
+ rust-sqlx-postgres-0.8.6
+ rust-sqlx-sqlite-0.8.6
+ rust-sse-stream-0.2.1
+ rust-stable-deref-trait-1.2.1
+ rust-starlark-0.13.0
+ rust-starlark-derive-0.13.0
+ rust-starlark-map-0.13.0
+ rust-starlark-syntax-0.13.0
+ rust-static-assertions-1.1.0
+ rust-streaming-iterator-0.1.9
+ rust-string-cache-0.8.9
+ rust-stringprep-0.1.5
+ rust-strsim-0.10.0
+ rust-strsim-0.11.1
+ rust-strum-0.26.3
+ rust-strum-0.27.2
+ rust-strum-macros-0.26.4
+ rust-strum-macros-0.27.2
+ rust-subtle-2.6.1
+ rust-supports-color-2.1.0
+ rust-supports-color-3.0.2
+ rust-syn-1.0.109
+ rust-syn-2.0.114
+ rust-sync-wrapper-1.0.2
+ rust-synstructure-0.13.2
+ rust-sys-locale-0.3.2
+ rust-system-configuration-0.6.1
+ rust-system-configuration-sys-0.6.0
+ rust-tagptr-0.2.0
+ rust-tempfile-3.24.0
+ rust-term-0.7.0
+ rust-termcolor-1.4.1
+ rust-terminal-size-0.4.3
+ rust-termtree-0.5.1
+ rust-test-case-3.3.1
+ rust-test-case-core-3.3.1
+ rust-test-case-macros-3.3.1
+ rust-test-log-0.2.19
+ rust-test-log-macros-0.2.19
+ rust-textwrap-0.11.0
+ rust-textwrap-0.16.2
+ rust-thiserror-1.0.69
+ rust-thiserror-2.0.18
+ rust-thiserror-impl-1.0.69
+ rust-thiserror-impl-2.0.18
+ rust-thread-local-1.1.9
+ rust-tiff-0.10.3
+ rust-time-0.3.46
+ rust-time-core-0.1.8
+ rust-time-macros-0.2.26
+ rust-tiny-http-0.12.0
+ rust-tiny-keccak-2.0.2
+ rust-tinystr-0.8.2
+ rust-tinyvec-1.10.0
+ rust-tinyvec-macros-0.1.1
+ rust-tokio-1.49.0
+ rust-tokio-graceful-0.2.2
+ rust-tokio-macros-2.6.0
+ rust-tokio-native-tls-0.3.1
+ rust-tokio-rustls-0.26.4
+ rust-tokio-stream-0.1.18
+ rust-tokio-test-0.4.5
+ rust-tokio-tungstenite-0.28.0.2ae536b0
+ rust-tokio-util-0.7.18
+ rust-toml-0.5.11
+ rust-toml-0.9.11+spec-1.1.0
+ rust-toml-datetime-0.7.5+spec-1.1.0
+ rust-toml-edit-0.23.10+spec-1.0.0
+ rust-toml-edit-0.24.0+spec-1.1.0
+ rust-toml-parser-1.0.6+spec-1.1.0
+ rust-toml-writer-1.0.6+spec-1.1.0
+ rust-tonic-0.14.3
+ rust-tonic-prost-0.14.3
+ rust-tower-0.5.3
+ rust-tower-http-0.6.8
+ rust-tower-layer-0.3.3
+ rust-tower-service-0.3.3
+ rust-tracing-0.1.44
+ rust-tracing-appender-0.2.4
+ rust-tracing-attributes-0.1.31
+ rust-tracing-core-0.1.36
+ rust-tracing-error-0.2.1
+ rust-tracing-log-0.2.0
+ rust-tracing-opentelemetry-0.32.1
+ rust-tracing-subscriber-0.3.22
+ rust-tracing-test-0.2.5
+ rust-tracing-test-macro-0.2.5
+ rust-tree-magic-mini-3.2.2
+ rust-tree-sitter-0.25.10
+ rust-tree-sitter-bash-0.25.1
+ rust-tree-sitter-highlight-0.25.10
+ rust-tree-sitter-language-0.1.7
+ rust-try-lock-0.2.5
+ rust-ts-rs-11.1.0
+ rust-ts-rs-macros-11.1.0
+ rust-tungstenite-0.28.0.f514de86
+ rust-type-map-0.5.1
+ rust-typenum-1.19.0
+ rust-uds-windows-1.1.0
+ rust-uname-0.1.1
+ rust-unarray-0.1.4
+ rust-unic-langid-0.9.6
+ rust-unic-langid-impl-0.9.6
+ rust-unicase-2.9.0
+ rust-unicode-bidi-0.3.18
+ rust-unicode-ident-1.0.22
+ rust-unicode-linebreak-0.1.5
+ rust-unicode-normalization-0.1.25
+ rust-unicode-properties-0.1.4
+ rust-unicode-segmentation-1.12.0
+ rust-unicode-truncate-1.1.0
+ rust-unicode-width-0.1.14
+ rust-unicode-width-0.2.1
+ rust-unicode-xid-0.2.6
+ rust-universal-hash-0.5.1
+ rust-unsafe-libyaml-0.2.11
+ rust-untrusted-0.9.0
+ rust-ureq-3.1.4
+ rust-ureq-proto-0.5.3
+ rust-url-2.5.8
+ rust-urlencoding-2.1.3
+ rust-utf-8-0.7.6
+ rust-utf8-iter-1.0.4
+ rust-utf8parse-0.2.2
+ rust-uuid-1.20.0
+ rust-valuable-0.1.1
+ rust-vcpkg-0.2.15
+ rust-version-check-0.9.5
+ rust-vt100-0.16.2
+ rust-vte-0.15.0
+ rust-wait-timeout-0.2.1
+ rust-walkdir-2.5.0
+ rust-want-0.3.1
+ rust-wasi-0.11.1+wasi-snapshot-preview1
+ rust-wasip2-1.0.2+wasi-0.2.9
+ rust-wasite-0.1.0
+ rust-wasm-bindgen-0.2.108
+ rust-wasm-bindgen-futures-0.4.58
+ rust-wasm-bindgen-macro-0.2.108
+ rust-wasm-bindgen-macro-support-0.2.108
+ rust-wasm-bindgen-shared-0.2.108
+ rust-wasm-streams-0.4.2
+ rust-wayland-backend-0.3.12
+ rust-wayland-client-0.31.12
+ rust-wayland-protocols-0.32.10
+ rust-wayland-protocols-wlr-0.3.10
+ rust-wayland-scanner-0.31.8
+ rust-wayland-sys-0.31.8
+ rust-web-sys-0.3.85
+ rust-web-time-1.1.0
+ rust-webbrowser-1.0.6
+ rust-webpki-root-certs-1.0.5
+ rust-webpki-roots-0.26.11
+ rust-webpki-roots-1.0.5
+ rust-weezl-0.1.12
+ rust-which-8.0.0
+ rust-whoami-1.6.1
+ rust-widestring-1.2.1
+ rust-wildcard-0.3.0
+ rust-wildmatch-2.6.1
+ rust-winapi-0.3.9
+ rust-winapi-i686-pc-windows-gnu-0.4.0
+ rust-winapi-util-0.1.11
+ rust-winapi-x86-64-pc-windows-gnu-0.4.0
+ rust-windows-0.58.0
+ rust-windows-0.62.2
+ rust-windows-aarch64-gnullvm-0.42.2
+ rust-windows-aarch64-gnullvm-0.48.5
+ rust-windows-aarch64-gnullvm-0.52.6
+ rust-windows-aarch64-gnullvm-0.53.1
+ rust-windows-aarch64-msvc-0.42.2
+ rust-windows-aarch64-msvc-0.48.5
+ rust-windows-aarch64-msvc-0.52.6
+ rust-windows-aarch64-msvc-0.53.1
+ rust-windows-collections-0.3.2
+ rust-windows-core-0.58.0
+ rust-windows-core-0.62.2
+ rust-windows-future-0.3.2
+ rust-windows-i686-gnu-0.42.2
+ rust-windows-i686-gnu-0.48.5
+ rust-windows-i686-gnu-0.52.6
+ rust-windows-i686-gnu-0.53.1
+ rust-windows-i686-gnullvm-0.52.6
+ rust-windows-i686-gnullvm-0.53.1
+ rust-windows-i686-msvc-0.42.2
+ rust-windows-i686-msvc-0.48.5
+ rust-windows-i686-msvc-0.52.6
+ rust-windows-i686-msvc-0.53.1
+ rust-windows-implement-0.58.0
+ rust-windows-implement-0.60.2
+ rust-windows-interface-0.58.0
+ rust-windows-interface-0.59.3
+ rust-windows-link-0.2.1
+ rust-windows-numerics-0.3.1
+ rust-windows-registry-0.6.1
+ rust-windows-result-0.2.0
+ rust-windows-result-0.4.1
+ rust-windows-strings-0.1.0
+ rust-windows-strings-0.5.1
+ rust-windows-sys-0.45.0
+ rust-windows-sys-0.48.0
+ rust-windows-sys-0.52.0
+ rust-windows-sys-0.59.0
+ rust-windows-sys-0.60.2
+ rust-windows-sys-0.61.2
+ rust-windows-targets-0.42.2
+ rust-windows-targets-0.48.5
+ rust-windows-targets-0.52.6
+ rust-windows-targets-0.53.5
+ rust-windows-threading-0.2.1
+ rust-windows-x86-64-gnu-0.42.2
+ rust-windows-x86-64-gnu-0.48.5
+ rust-windows-x86-64-gnu-0.52.6
+ rust-windows-x86-64-gnu-0.53.1
+ rust-windows-x86-64-gnullvm-0.42.2
+ rust-windows-x86-64-gnullvm-0.48.5
+ rust-windows-x86-64-gnullvm-0.52.6
+ rust-windows-x86-64-gnullvm-0.53.1
+ rust-windows-x86-64-msvc-0.42.2
+ rust-windows-x86-64-msvc-0.48.5
+ rust-windows-x86-64-msvc-0.52.6
+ rust-windows-x86-64-msvc-0.53.1
+ rust-winnow-0.7.14
+ rust-winreg-0.10.1
+ rust-winreg-0.50.0
+ rust-winres-0.1.12
+ rust-winsafe-0.0.19
+ rust-winsplit-0.1.0
+ rust-wiremock-0.6.5
+ rust-wit-bindgen-0.51.0
+ rust-wl-clipboard-rs-0.9.3
+ rust-writeable-0.6.2
+ rust-x11rb-0.13.2
+ rust-x11rb-protocol-0.13.2
+ rust-x25519-dalek-2.0.1
+ rust-xdg-home-1.3.0
+ rust-xz2-0.1.7
+ rust-yansi-1.0.1
+ rust-yoke-0.8.1
+ rust-yoke-derive-0.8.1
+ rust-zbus-4.4.0
+ rust-zbus-macros-4.4.0
+ rust-zbus-names-3.0.0
+ rust-zerocopy-0.8.37
+ rust-zerocopy-derive-0.8.37
+ rust-zerofrom-0.1.6
+ rust-zerofrom-derive-0.1.6
+ rust-zeroize-1.8.2
+ rust-zeroize-derive-1.4.3
+ rust-zerotrie-0.2.3
+ rust-zerovec-0.11.5
+ rust-zerovec-derive-0.11.2
+ rust-zip-2.4.2
+ rust-zmij-1.0.19
+ rust-zopfli-0.8.3
+ rust-zstd-0.13.3
+ rust-zstd-safe-7.2.4
+ rust-zstd-sys-2.0.16+zstd.1.5.7
+ rust-zune-core-0.4.12
+ rust-zune-core-0.5.1
+ rust-zune-jpeg-0.4.21
+ rust-zune-jpeg-0.5.12
+ rust-zvariant-4.2.0
+ rust-zvariant-derive-4.2.0
+ rust-zvariant-utils-2.1.0))
(codex-acp =>
(list rust-inflector-0.11.4
rust-adler2-2.0.1
diff --git a/gnu/packages/rust-sources.scm b/gnu/packages/rust-sources.scm
index 963d3b123a..fa4cb02f73 100644
--- a/gnu/packages/rust-sources.scm
+++ b/gnu/packages/rust-sources.scm
@@ -818,6 +818,114 @@ intelligence.")
and runtime for AI-assisted coding.")
(license license:asl2.0)))))
+(define-public rust-codex-0.98.0
+ (hidden-package
+ (package
+ (name "rust-codex")
+ (version "0.98.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openai/codex")
+ (commit "82464689ce0ba8a3b2065e73a8aa0cfdf2ad0625")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mn322gbir4gn4y5jihdqg0wprjlnx771chyfmmm7ri7pnim1zmc"))
+ ;; TODO: Remove patches when Rust provides stable file locking API.
+ ;; The file_lock feature is tracked at
+ ;; <https://github.com/rust-lang/rust/issues/130994>.
+ (snippet '(begin
+ ;;; These are JSON manifests with a dotslash
+ ;;; shebang that download and run pre-built
+ ;;; binaries (ripgrep, bash) at runtime.
+ (delete-file "codex-cli/bin/rg")
+ (delete-file "codex-rs/exec-server/tests/suite/bash")
+ ;; Bundled bubblewrap source tree; includes a
+ ;; compiled BPF blob (demos/flatpak.bpf).
+ (delete-file-recursively "codex-rs/vendor/bubblewrap")))
+ (patches (search-patches "rust-codex-0.98.0-execpolicy-file-lock.patch"
+ "rust-codex-0.98.0-core-file-lock.patch"
+ "rust-codex-0.98.0-arg0-file-lock.patch"
+ "rust-codex-0.98.0-core-remove-self-dep.patch"
+
"rust-codex-0.98.0-windows-sandbox-protocol-version.patch"
+ "rust-codex-0.98.0-test-shebangs.patch"))))
+ (build-system cargo-build-system)
+ (arguments
+ (list
+ #:skip-build? #t
+ #:cargo-package-crates
+ ;; Order matters: dependencies must come before packages that need them
+ ''("codex-async-utils" ; No internal deps
+ "codex-client" ; No internal deps
+ "codex-execpolicy" ; No internal deps
+ "codex-file-search" ; No internal deps
+ "codex-git" ; No internal deps
+ "codex-keyring-store" ; No internal deps
+ "codex-utils-absolute-path" ; No internal deps
+ "codex-utils-cache" ; No internal deps
+ "codex-utils-cargo-bin" ; No internal deps
+ "codex-utils-home-dir" ; No internal deps
+ "codex-utils-json-to-toml" ; No internal deps
+ "codex-utils-pty" ; No internal deps
+ "codex-utils-readiness" ; No internal deps
+ "codex-utils-string" ; No internal deps
+ "codex-utils-image" ; Depends on codex-utils-cache
+ "codex-apply-patch" ; Depends on codex-utils-cargo-bin
+ "codex-protocol" ; Depends on codex-git, codex-utils-*
+ "codex-windows-sandbox" ; Depends on codex-utils-absolute-path,
codex-protocol
+ "codex-api" ; Depends on codex-client, codex-protocol
+ "codex-experimental-api-macros" ; Macro crate (must come before
app-server-protocol)
+ "codex-app-server-protocol" ; Depends on codex-protocol,
codex-experimental-api-macros
+ "codex-rmcp-client" ; Depends on codex-keyring-store,
codex-protocol
+ "codex-otel" ; Depends on codex-app-server-protocol,
codex-api
+ "codex-state" ; Depends on codex-protocol, codex-otel
+ "codex-core" ; Depends on many packages above
+ "codex-linux-sandbox" ; Depends on codex-core,
codex-utils-absolute-path
+ "codex-arg0" ; Depends on codex-apply-patch,
codex-core, codex-linux-sandbox
+ "codex-lmstudio" ; Depends on codex-core
+ "codex-login" ; Depends on codex-core
+ "codex-ollama" ; Depends on codex-core
+ "codex-common" ; Depends on codex-core, codex-lmstudio,
codex-ollama
+ "codex-mcp-server") ; Depends on codex-core, codex-common
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir-to-workspace
+ (lambda _
+ (chdir "codex-rs")))
+ (add-after 'chdir-to-workspace 'patch-git-deps-to-vendor
+ (lambda _
+ (substitute* "Cargo.toml"
+ (("crossterm = \\{ git = [^}]+\\}")
+ "crossterm = { version = \"0.28.1\" }")
+ (("ratatui = \\{ git = [^}]+\\}")
+ "ratatui = { version = \"0.29.0\" }")
+ (("tokio-tungstenite = \\{ git = [^}]+\\}")
+ "tokio-tungstenite = { version = \"0.28.0\" }")
+ (("nucleo = \\{ git = [^}]+\\}")
+ "nucleo = { version = \"0.5.0\" }")
+ (("runfiles = \\{ git = [^}]+\\}")
+ "runfiles = { version = \"0.1.0\" }"))))
+ (add-after 'chdir-to-workspace 'add-version-to-workspace-deps
+ (lambda _
+ ;; cargo package requires all dependencies to have versions.
+ ;; Add version = "0.98.0" to internal path dependencies.
+ (let ((cargo-files (find-files "." "^Cargo\\.toml$")))
+ (substitute* cargo-files
+ (("(codex-[a-z0-9-]+) = \\{ path = " all name)
+ (string-append name " = { version = \"0.98.0\", path = "))
+ (("(codex-[a-z0-9-]+) = \\{ package = " all name)
+ (string-append name " = { version = \"0.98.0\", package =
"))
+ (("(mcp-types) = \\{ path = " all name)
+ (string-append name " = { version = \"0.98.0\", path =
")))))))))
+ (inputs (cargo-inputs 'rust-codex-0.0.0.785c0c43))
+ (home-page "https://github.com/openai/codex")
+ (synopsis "OpenAI Codex workspace crates")
+ (description
+ "This package provides the workspace crates for the OpenAI Codex CLI
+and runtime for AI-assisted coding.")
+ (license license:asl2.0))))
+
;; Also update (@ (gnu packages gnome) glycin-loaders) when updating this.
(define-public rust-glycin-3
(package