Users were running into issues with glibc mismatches on arm64 linux. In the past, we did not provide a musl build for arm64 Linux because we had trouble getting the openssl dependency to build correctly. Though today I just tried the same trick in `Cargo.toml` that we were doing for `x86_64-unknown-linux-musl` (using `openssl-sys` with `features = ["vendored"]`), so I'm not sure what problem we had in the past the builds "just worked" today! Though one tweak that did have to be made is that the integration tests for Seccomp/Landlock empirically require longer timeouts on arm64 linux, or at least on the `ubuntu-24.04-arm` GitHub Runner. As such, we change the timeouts for arm64 in `codex-rs/linux-sandbox/tests/landlock.rs`. Though in solving this problem, I decided I needed a turnkey solution for testing the Linux build(s) from my Mac laptop, so this PR introduces `.devcontainer/Dockerfile` and `.devcontainer/devcontainer.json` to facilitate this. Detailed instructions are in `.devcontainer/README.md`. We will update `dotslash-config.json` and other release-related scripts in a follow-up PR.
30 lines
623 B
JSON
30 lines
623 B
JSON
{
|
|
"name": "Codex",
|
|
"build": {
|
|
"dockerfile": "Dockerfile",
|
|
"context": "..",
|
|
"platform": "linux/arm64"
|
|
},
|
|
|
|
/* Force VS Code to run the container as arm64 in
|
|
case your host is x86 (or vice-versa). */
|
|
"runArgs": ["--platform=linux/arm64"],
|
|
|
|
"containerEnv": {
|
|
"RUST_BACKTRACE": "1",
|
|
"CARGO_TARGET_DIR": "${containerWorkspaceFolder}/codex-rs/target-arm64"
|
|
},
|
|
|
|
"remoteUser": "dev",
|
|
"customizations": {
|
|
"vscode": {
|
|
"settings": {
|
|
"terminal.integrated.defaultProfile.linux": "bash"
|
|
},
|
|
"extensions": [
|
|
"rust-lang.rust-analyzer"
|
|
],
|
|
}
|
|
}
|
|
}
|