Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

nix: update rust-toolchain in shell #1007

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

Merged
phip1611 merged 3 commits into rust-osdev:main from phip1611:nix-shell
Nov 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/developer_productivity.yml
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
#
# It only runs if the "nix-src" output of the "changes" job is true.
nix_shell_toolchain:
name: "Nix toolchain: cargo xtask run works"
name: "Nix toolchain: `cargo xtask run` works"
needs: changes
if: ${{ needs.changes.outputs.nix-src == 'true' }}
runs-on: ubuntu-latest
Expand All @@ -45,6 +45,6 @@ jobs:
run: nix-shell --pure --run "cargo --version"
- name: Run VM tests
run: |
COMMAND="cargo +stable xtask run --target x86_64 --headless --ci --tpm=v1"
echo "Executing in nix shell now: $COMMAND"
COMMAND="cargo xtask run --target x86_64 --headless --ci --tpm=v1"
echo "Executing in nix shell: $COMMAND"
nix-shell --pure --run "$COMMAND"
6 changes: 6 additions & 0 deletions nix/nixpkgs.nix
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
let
sources = import ./sources.nix { };
rust-overlay = import sources.rust-overlay;
in
import sources.nixpkgs { overlays = [ rust-overlay ]; }

10 changes: 10 additions & 0 deletions nix/rust-toolchain.nix
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Returns the Rust toolchain for Nix compliant to the rust-toolchain.toml file
# but without rustup.

{
# Comes from rust-overlay
rust-bin
}:

# Includes rustc, cargo, rustfmt, etc
rust-bin.fromRustupToolchainFile ../rust-toolchain.toml
36 changes: 24 additions & 12 deletions nix/sources.json
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -1,14 +1,26 @@
{
"nixpkgs": {
"branch": "nixos-23.05",
"description": "Nix Packages collection",
"homepage": null,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b0edc9c690c1d8a729f055e0d73439045cfda55",
"sha256": "1fdsnmkcz1h5wffjci29af4jrd68pzdvrhbs083niwqfd6ssm633",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/6b0edc9c690c1d8a729f055e0d73439045cfda55.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
"nixpkgs": {
"branch": "nixos-23.05",
"description": "Nix Packages collection",
"homepage": null,
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "da4024d0ead5d7820f6bd15147d3fe2a0c0cec73",
"sha256": "1y12a4hgxx2lixrcbyhycwxvrrfik1lxjnwkprar0r6173rwy9ax",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/da4024d0ead5d7820f6bd15147d3fe2a0c0cec73.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
},
"rust-overlay": {
"branch": "master",
"description": "Pure and reproducible nix overlay of binary distributed rust toolchains",
"homepage": "",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e485313fc485700a9f1f9b8b272ddc0621d08357",
"sha256": "1v1gq022rnni6mm42pxmw6c5yy9il4jb2l92irh154ax616x2rzd",
"type": "tarball",
"url": "https://github.com/oxalica/rust-overlay/archive/e485313fc485700a9f1f9b8b272ddc0621d08357.tar.gz",
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
}
}
3 changes: 3 additions & 0 deletions rust-toolchain.toml
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
[toolchain]
channel = "stable"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is fine: any concerns @nicholasbishop ?

Copy link
Member

@nicholasbishop nicholasbishop Nov 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine to me, but just for my own edification, why is this part of the change necessary?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So that rust-bin.fromRustupToolchainFile ../rust-toolchain.toml can pick the right toolchain for Nix.

nicholasbishop reacted with thumbs up emoji
# cargo, clippy, rustc, rust-docs, rustfmt, rust-std
profile = "default"
targets = ["aarch64-unknown-uefi", "i686-unknown-uefi", "x86_64-unknown-uefi"]
11 changes: 6 additions & 5 deletions shell.nix
View file Open in desktop
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
# "cargo xtask run|test|clippy". It uses rustup rather than a pinned rust
# toolchain.

{ sources ? import ./nix/sources.nix { }
, pkgs ? import sources.nixpkgs { }
}:

let
sources = import ./nix/sources.nix;
pkgs = import ./nix/nixpkgs.nix;
rustToolchain = pkgs.callPackage ./nix/rust-toolchain.nix {};
in
pkgs.mkShell {
nativeBuildInputs = with pkgs; [
# nix related stuff (such as dependency management)
Expand All @@ -17,7 +18,7 @@ pkgs.mkShell {
qemu

# Rust toolchain
rustup
rustToolchain

# Other
yamlfmt
Expand Down

AltStyle によって変換されたページ (->オリジナル) /