Add Nix flake for Warp#9373
Conversation
Adds a first-party Nix flake that builds the OSS Warp Linux binary from source, installs desktop assets and bundled resources, and exposes a development shell. Co-Authored-By: Warp <agent@warp.dev>
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @VitalyAnkh on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment |
|
I'm starting a first review of this pull request. I requested changes on this pull request and posted feedback. Comment I'm re-reviewing this pull request in response to a review request. You can view the conversation on Warp. I requested changes on this pull request and posted feedback. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR adds a Nix flake for building and developing the OSS Warp Linux package, including pinned inputs, Rust build plumbing, runtime wrapping, desktop/icon installation, and a dev shell.
Concerns
- The package output omits the third-party license attribution generated by the existing bundling flow, even though it redistributes Cargo dependencies and bundled resources.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| install -Dm644 LICENSE-AGPL "$out/share/licenses/warp-terminal/LICENSE-AGPL" | ||
| install -Dm644 LICENSE-MIT "$out/share/licenses/warp-terminal/LICENSE-MIT" |
There was a problem hiding this comment.
THIRD_PARTY_LICENSES.txt generated by script/prepare_bundled_resources, so the distributed package omits third-party attributions for Cargo dependencies and bundled resources. Generate and install that notice here, or reuse the existing bundling script, before shipping this as a first-party package.
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
Use the existing bundled-resource preparation script so the Nix package includes the generated THIRD_PARTY_LICENSES.txt in both bundled resources and share/licenses.
|
I'm checking this implementation PR for association with an explicitly linked issue. The PR that you've opened seems to contain implementation changes and is associated with issue #9296, but none of those associated issue are marked as Powered by Oz |
|
/oz-review |
There was a problem hiding this comment.
Overview
This PR adds a first-party Nix flake and lockfile for building the OSS Linux Warp package, including vendored Cargo dependencies, runtime wrapping, bundled resources, desktop metadata, icons, licenses, and a dev shell.
Concerns
- The Nix package currently prepares bundled resources and the settings schema as the
devchannel while installing thewarp-ossbinary and OSS desktop entry. This can ship dogfood/preview-only resources and dev-only schema entries in the OSS package; the inline comment suggests aligning resources/schema with OSS/release behavior. - Security pass: inputs and external sources are pinned with hashes, and no additional security-specific issue was identified in the changed diff.
Verdict
Found: 0 critical, 1 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | ||
| "${resourcesDir}" \ | ||
| dev \ | ||
| release | ||
|
|
||
| "$out/bin/generate_settings_schema" \ | ||
| --channel dev \ | ||
| "${resourcesDir}/settings_schema.json" |
There was a problem hiding this comment.
warp-oss binary and installs the OSS desktop entry, but prepares resources and schema as dev, which includes dogfood/preview-gated skills and dev-only setting flags; use the OSS channel for resource copying and a release-channel schema (or add explicit OSS schema support) so the Nix package matches the runtime channel.
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | |
| "${resourcesDir}" \ | |
| dev \ | |
| release | |
| "$out/bin/generate_settings_schema" \ | |
| --channel dev \ | |
| "${resourcesDir}/settings_schema.json" | |
| SKIP_SETTINGS_SCHEMA=1 ./script/prepare_bundled_resources \ | |
| "${resourcesDir}" \ | |
| oss \ | |
| release | |
| "$out/bin/generate_settings_schema" \ | |
| --channel stable \ | |
| "${resourcesDir}/settings_schema.json" |
|
Superseded by #9394. That follow-up PR carries this Nix flake work forward and includes the fixes requested here: generated third-party license attribution, stable-channel bundled resources/settings schema, and narrower shebang patching during packaging. |
Description
Adds a first-party Nix flake for Linux users.
What changed:
flake.nix/flake.lockwithpackages.defaultandpackages.warp-terminalforx86_64-linuxandaarch64-linux.release_bundle,gui, andnld_improvementsfeatures.devShellfor Nix-based Rust development.Testing
nix flake show --all-systems --no-write-lock-filenix flake check --all-systems --no-build --print-build-logsnix build .#warp-terminal --print-build-logsresult/bin/warp-terminal --helptimeout 20s result/bin/warp-terminalstayed running until timeout and created Warp config/cache files.result/opt/warpdotdev/warp-terminal/resources/bundled.THIRD_PARTY_LICENSES.txtis installed under bothopt/warpdotdev/warp-terminal/resourcesandshare/licenses/warp-terminal, with matching contents.Server API dependencies
No server API dependencies.
Agent Mode
Changelog Entries for Stable
CHANGELOG-IMPROVEMENT: Added first-party Nix flake support for Linux users to build Warp from source.
Co-Authored-By: Warp agent@warp.dev