Conversation
|
🌿 Preview your docs: https://nvidia-preview-pr-3275.docs.buildwithfern.com/openshell |
|
Label |
|
Label |
|
Label |
2fd3279 to
b072cf9
Compare
48a0902 to
2fd3279
Compare
|
A note from tracing the Z3 history and terminology:
So the clean split is: system Z3 by default on non-Windows platforms, |
|
@pimlock i'm handing this over to you if you have some time to rebase-it/check it out while im on PTO. |
aa2fa1f to
8563402
Compare
Signed-off-by: Simon Scatton <sscatton@nvidia.com> Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
8563402 to
53f6682
Compare
|
Could we preserve a portable Z3 runtime for gateway binaries staged into minimal images? I found that the default CI passes because it runs inside This affects contributor-facing workflows such as Could we do one of the following?
Whichever approach we choose, I suggest adding a post-build References: z3-sys build configuration, Debian |
Signed-off-by: Simon Scatton <sscatton@nvidia.com>
|
Thanks @elezar — you’re right about the non-Nix image builds: the default system Z3 path can link I’ve updated this in 4da75d9. The default Cargo build still uses the installed Z3 (static or shared), and release gateway binaries still use the static Z3 supplied by One limitation of the local source-build path: it needs CMake and a C++ compiler. The current Nix development shell does not provide those tools, so running these particular local scripts from that shell requires supplying them separately. |
elezar
left a comment
There was a problem hiding this comment.
Approved. The Nix cross-build/artifact path uses Nix-provided Z3, so the development shell lacking CMake is not a blocker for that path. The separate local gateway image path now selects vendored-z3 and has not yet had a full source build verified. Please still test a fresh mise run build:docker:gateway and smoke-test the resulting openshell/gateway:dev image (for example, docker run --rm openshell/gateway:dev --help); follow up if the local build or image startup fails.
Summary
Replace the deprecated
bundled-z3alias withvendored-z3for local gateway artifacts. Ordinary Cargo builds use the installed Z3 library, which may be static or shared. Gateway binaries built for local container and VM paths explicitly compile and statically link Z3 fromz3-src; release binaries use the static Z3 supplied by Nix. Windows build tasks retain their existing prebuilt Z3 path.Related Issue
No issue required: build maintenance and a correction to local gateway artifact packaging.
Changes
bundled-z3feature forwarding withvendored-z3(z3/vendored) in the prover, prover CLI, server, and gateway. Keepz3-srcinCargo.lockfor that opt-in source build.vendored-z3when staging local gateway images and building gateway binaries for Kubernetes external-driver E2E and VM E2E. Leave ordinary Cargo builds on the system Z3 path.prebuilt-z3feature and build tasks unchanged.Testing
nix develop -c cargo check --locked --offline -p openshell-gatewaynix develop -c cargo test --locked --offline -p openshell-prover --lib(95 passed)cargo treeconfirmsopenshell-gateway --features vendored-z3selectsz3-srcbash -nfor the changed build scripts;git diff --checkvendored-z3from that shell.mise run pre-commit:miseis unavailable in this environment; the checks above were run directly.Checklist