openai / openai/codex

Arch Linux Cargo build: sandboxed V8 default archive missing and source fallback lacks ICU data

Open
#43,318 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CLI
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of Codex CLI is running?

Source build, codex-cli 0.0.0; base commit 455318c202.

What subscription do you have?

Not relevant to this source-build failure; subscription details not supplied.

Which model were you using?

Not applicable; compilation fails before model use.

What platform is your computer?

Arch Linux, x86_64-unknown-linux-gnu. Current host: Linux 7.2.3-arch1-2 x86_64 GNU/Linux.

What terminal emulator and version are you using (if applicable)?

Not supplied; failure occurs in the compiler/build system.

Codex doctor report

Not collected; this report concerns source compilation.

What issue are you seeing?

Plain Cargo builds on Arch Linux reach the sandbox-enabled v8 150.4.0 dependency, fail to download the default sandbox prebuilt, and encounter missing third_party/icu/common/icudtl.dat when retried with V8_FROM_SOURCE=1.

Reported path: cargo install → codex-code-mode-runtime → v8_enable_sandbox → v8 150.4.0 build.rs → default prebuilt download 404 → explicit source-build retry → GN/Ninja requires the missing ICU blob for gen/third_party/icu/icudtl_dat.S.

What steps can reproduce the bug?
  1. Use the pinned crates.io v8 150.4.0 dependency and Codex's sandbox-enabled code-mode-runtime on x86_64 GNU Linux.
  2. Attempt a plain Cargo installation/build of a target consuming code-mode-runtime, without Codex-specific V8 archive/binding overrides.
  3. After the default prebuilt download fails, retry with V8_FROM_SOURCE enabled using the extracted crates.io package without manually supplied ICU data.
  4. Observe the reported missing ICU input in the source build.

These steps describe the supplied failure report. The failure and candidate fixes were not executed again for this issue.

What is the expected behavior?

The documented local Cargo path should obtain a matching sandbox-enabled archive/binding pair, or provide a complete, reproducible source-build path and instructions for required inputs while retaining the sandbox security feature.

Additional information
Root-cause analysis

Together these explain the default-download failure and the reported incomplete-package source fallback. The reason for the package's exclusion (including any registry size-limit rationale) was not independently established and is not asserted here.

Fix methods to consider (not build-tested for this report)
  1. Use Codex's documented matching sandbox archive and bindings. third_party/v8/README.md documents RUSTY_V8_ARCHIVE and RUSTY_V8_SRC_BINDING_PATH. The Codex rusty-v8-v150.4.0 release currently contains librusty_v8_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.a.gz, its checksum asset, and src_binding_ptrcomp_sandbox_release_x86_64-unknown-linux-gnu.rs. Wire or document this path for local Cargo builds, using matching version, target, feature set, bindings, and integrity verification.
  2. Use a recursive rusty_v8 v150.4.0 source checkout with the pinned ICU submodule for a source build.
  3. Supply the missing ICU data from that exact submodule revision to the extracted crate before a source build. This is a manual package repair, is not reproducible by Cargo alone, and can be lost when the registry source directory is removed or re-extracted. Its sufficiency for a full build remains unverified.
  4. Disabling v8_enable_sandbox would change the security boundary introduced by #36374 and should not be treated as the default remedy; it would require an explicit maintainer decision.

The existence of Codex's own release assets means the broad claim that sandbox builds are universally source-only, or that no environment override can help, would be incorrect. This report is specifically about default local Cargo artifact selection and the crates.io source fallback. No shell script is included and no source build, download-and-install remedy, or sandbox-disabling change was executed for this report.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with codex-rs/code-mode-runtime/Cargo.toml, codex-rs/Cargo.toml, and third_party/v8/README.md, then reproduce the plain Cargo build on Arch Linux. Compare the pinned V8 version, sandbox feature, archive, bindings, and ICU inputs. Done means the documented local build obtains matching verified artifacts or has a complete reproducible source-build path without disabling sandboxing.

Written by the indexing model from the issue text.

Assessment

Tech stack
arch-linux, rust
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.