Files
warp/flake.lock
VitalyR 4e0b7c99d8 Add Nix flake for Warp (#9394)
## Follow-up context
This PR supersedes #9373. The earlier PR was automatically closed by the
issue-readiness workflow after it was explicitly associated with the
related issue before that issue had the `ready-to-implement` label. This
PR carries the same Nix flake work forward and includes follow-up review
fixes around bundled resources, settings schema generation, license
attribution, Linux-only scope, and experimental package naming.

## Description
Adds experimental first-party Nix flake support for Linux source builds
of the OSS Warp binary.

Fixes #9296

## Platform scope
This flake currently supports `x86_64-linux` and `aarch64-linux` only.
macOS support is not included in this PR and remains WIP.

What changed:
- Adds `flake.nix`/`flake.lock` with the package output
`warp-terminal-experimental` for supported Linux systems.
- Builds the OSS Warp binary from source with the repository Rust
toolchain and the `release_bundle`, `gui`, and `nld_improvements`
features.
- Derives the main Cargo vendor directory from `Cargo.lock` with
`craneLib.vendorCargoDeps`, so the app build no longer has a top-level
`cargoVendorHash` to manually maintain when `Cargo.lock` changes.
- Installs bundled resources, generated stable-channel settings schema,
generated third-party license attribution, desktop entry, icons, and
licenses into the package output.
- Uses the stable release channel when preparing bundled resources and
settings metadata so the public Nix package does not include
dogfood/preview-gated resources.
- Keeps `warp-proto-apis` and `workflows` pinned through flake inputs,
with exact revisions recorded in `flake.lock`.
- Applies the vendored git checkout patches needed for `warp-proto-apis`
and `workflows` during Cargo vendoring.
- Wraps the executable with the runtime libraries needed on Nix systems.
- Adds a matching `devShell` for Nix-based Rust development.

## Testing
- `git diff --check -- flake.nix flake.lock`
- `nix fmt --accept-flake-config -- --check flake.nix`
- `nix eval --json --accept-flake-config .#packages`
- `nix build .#warp-terminal-experimental --accept-flake-config
--print-out-paths --print-build-logs`
- Isolated XDG/HOME smoke launch of
`/nix/store/9xav7pd562rhanqjyyp4qp5h5vp71m2k-warp-terminal-experimental-0.1.0+dirty/bin/warp-terminal-experimental`

Smoke result: the process stayed up until the 15-second timeout and
wrote `warp-oss.log` entries for X11 app startup, OSS channel startup,
ONNX classifier load, Vulkan GPU renderer selection, and an active
window.

## Server API dependencies
No server API dependencies.

## Agent Mode
- [ ] Warp Agent Mode - This PR was created via Warp's AI Agent Mode

## Changelog Entries for Stable
CHANGELOG-IMPROVEMENT: Added experimental Linux-only Nix flake support
for building OSS Warp from source.

Co-Authored-By: Warp <agent@warp.dev>

---------

Co-authored-by: Warp <agent@warp.dev>
2026-05-13 13:46:16 -07:00

65 lines
1.5 KiB
JSON

{
"nodes": {
"crane": {
"locked": {
"lastModified": 1778106249,
"narHash": "sha256-cM/AuKy5tMhwOOQIbha8ZRRMHVfNf7cv2aljIw+qoCg=",
"owner": "ipetkov",
"repo": "crane",
"rev": "6d015ea29630b7ad2402841386da2cb617a470a7",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1777268161,
"narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1c3fe55ad329cbcb28471bb30f05c9827f724c76",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"crane": "crane",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1777432579,
"narHash": "sha256-Ce11TStDsqCge2vAAfLKe2+4lDI5cSX5ZYZOuKJBKKQ=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "3ecb5e6ab380ced3272ef7fcfe398bffbcc0f152",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
}
},
"root": "root",
"version": 7
}