Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't use crane for production #98

Closed
SuperSandro2000 opened this issue Feb 8, 2023 · 12 comments · Fixed by #147
Closed

Don't use crane for production #98

SuperSandro2000 opened this issue Feb 8, 2023 · 12 comments · Fixed by #147
Milestone

Comments

@SuperSandro2000
Copy link
Member

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.

@blitz
Copy link
Member

blitz commented Feb 8, 2023

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.

@blitz blitz added this to the Release 1.0.0 milestone Feb 8, 2023
@RaitoBezarius
Copy link
Member

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

@NickCao
Copy link

NickCao commented Feb 12, 2023

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.

@blitz
Copy link
Member

blitz commented Feb 12, 2023

This should be fixable with the next Rust release as the UEFI target has stabilized.

@RaitoBezarius
Copy link
Member

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. :)

@RaitoBezarius
Copy link
Member

NixOS/nixpkgs#220373 is here, we are still waiting for some upstream changes due to cargo changes on hashes.

@RaitoBezarius
Copy link
Member

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).

@RaitoBezarius
Copy link
Member

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.

@RaitoBezarius
Copy link
Member

#148 will move to Rust stable.

@RaitoBezarius
Copy link
Member

We have moved to Rust stable with #149. The problem is that we need something like NixOS/nixpkgs#226145 to remove our Crane dependency for "production".

@RaitoBezarius
Copy link
Member

NixOS/nixpkgs#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.

@alyssais
Copy link
Member

NixOS/nixpkgs#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants