Don't use crane for production #98
Labels
No labels
bug
dependency
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
review-next
security
stub
tool
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: raito/lanzaboote#98
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
crane builds each cargo dependency in multiple derivations. This adds over a 100 extra dependencies instead of one vendor directory. This usually slows things down quite a bite. For a release using nixpkgs tools is faster.
Yes, that's at least the plan in my head. The bigger challenge here is how to deal with the unstable toolchain that we require for the UEFI target.
RUSTC_BOOTSTRAP=1
Or https://doc.rust-lang.org/cargo/reference/unstable.html#build-std? I think the problem is that we do not have UEFI core/std packaged in nixpkgs.
This should be fixable with the next Rust release as the UEFI target has stabilized.
For anyone asking: https://forge.rust-lang.org/ -- next release is supposed to be out in 2 days. :)
https://github.com/NixOS/nixpkgs/pull/220373 is here, we are still waiting for some upstream changes due to cargo changes on hashes.
rustc 1.68.1 was landed in staging, the next staging cycle should start soon AFAIK. We will be able to start working on this.
If we want to aim for lanzaboote tooling to be included as part of NixOS 23.05 behind an experimental flag for release, let's say 0.3.0 or 0.4.0.
We have approximately 1.3-1.4 months to land all these changes.
Bootspec should become enabled by default in ~7 days (modulo the necessary changes in nixpkgs) and not a feature preview anymore and will probably be part of NixOS 23.05 (I won't jinx it please).
Now that Rust stable is there, you can see a PR linked here for moving to nixpkgs infrastructure.
Unfortunately, it cannot be merged because cross compilation infrastructure is not yet ready for UEFI targets. There's work in progress in nixpkgs to get it.
#148 will move to Rust stable.
We have moved to Rust stable with #149. The problem is that we need something like https://github.com/NixOS/nixpkgs/pull/226145 to remove our Crane dependency for "production".
https://github.com/NixOS/nixpkgs/pull/228374 is almost enough to get us there.
All that remains is either a custom UEFI target for Rust or a link wrapper tailored for LINK.exe-style parameters.
Assuming that you don't actually need the wrappers for Lanzaboote, this would still work.