Skip to content

fix: propagate vendored OpenSSL to http-client crate for Android build (codex 0.149.0), remove DioNanos fork input - #168

Merged
bash0816 merged 1 commit into
mainfrom
fix/codex-0149-openssl-vendored-android
Aug 22, 2026
Merged

fix: propagate vendored OpenSSL to http-client crate for Android build (codex 0.149.0), remove DioNanos fork input#168
bash0816 merged 1 commit into
mainfrom
fix/codex-0149-openssl-vendored-android

Conversation

@bash0816

Copy link
Copy Markdown
Owner

Summary

  • Restrict record-run-id job to openai/codex only (exclude DioNanos fork)
  • Remove DioNanos fork input validation and V8 helper branching
  • Add vendored OpenSSL patch for http-client crate (mirrors existing core patch)
  • Implement Cargo.lock tracking and --locked flag for reproducibility
  • Enhance diagnostics to verify all 3 binaries have vendored feature
  • Convert individual cargo build calls to loop with openssl-sys proof emission

Fixes codex 0.149.0 Android cross-compile failure where openssl-sys linker configuration was not propagated to http-client dependency.

Test plan

  • Review YAML syntax and workflow structure
  • (Awaiting implementation G3 review)

…d (codex 0.149.0), remove DioNanos fork input

## Changes

1. record-run-id job: restrict to openai/codex only (exclude DioNanos fork)
2. Validate source_ref step: remove DioNanos fork case, upstream only
3. Configure V8 artifacts: remove fork-helper branch, always use host-repo helper
4. Apply Android build patches: add http-client vendored OpenSSL patch (mirrors core crate)
5. Cargo.lock management: save pre-patch hash, generate-lockfile once, use --locked thereafter
6. Diagnose openssl-sys: verify all 3 binaries (codex-cli, codex-exec, codex-code-mode-host) have vendored feature
7. Build step: convert to loop, emit cargo:vendored=1 proof per package

Fixes codex 0.149.0 Android build failure where openssl-sys linker paths were not propagated to http-client crate.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8a3d73b0b4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +898 to +901
if [ -f "$d/output" ] && grep -q "cargo:vendored=1" "$d/output"; then
echo "openssl-sys vendored build confirmed for ${pkg} (${d})"
else
echo "ERROR: openssl-sys build for ${pkg} did not use vendored path (${d})" >&2

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Filter out Cargo's build-script executable directory

When the first package compiles openssl-sys, Cargo normally creates two target/.../build/openssl-sys-* directories: an invocation directory containing output and a build-script executable directory without it. Both appear in NEW_DIRS, so this condition treats the normal executable directory as a non-vendored build and exits with status 1, causing every fresh workflow build to fail even when vendoring succeeded. Restrict the check to the directory containing output.

Useful? React with 👍 / 👎.

cd source-repo/codex-rs && cargo tree --target aarch64-linux-android -i openssl-sys 2>&1 | head -5 || echo "openssl-sys not found (expected)"
fi
cd source-repo/codex-rs
cargo generate-lockfile

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Preserve the source repository's locked dependency versions

Running this on every build discards the lockfile shipped with the selected Codex tag: the installed cargo-generate-lockfile(1) documentation states that an existing lockfile is rebuilt using the latest available version of every package. Consequently, the subsequent --locked builds merely lock an newly resolved, time-dependent dependency set and can compile unreviewed versions published after the upstream release—or fail due to one—rather than reproducibly building the selected tag.

Useful? React with 👍 / 👎.

@bash0816
bash0816 merged commit d33b8a6 into main Aug 22, 2026
2 checks passed
@bash0816
bash0816 deleted the fix/codex-0149-openssl-vendored-android branch August 22, 2026 07:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant