From 039c07f7a27bc14ba35495a22dcc620f81a7363a Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Fri, 13 Jan 2023 14:38:22 +0100 Subject: [PATCH 1/4] Honor rust-toolchain.toml file in xtask, remove cargo/rust env vars Remove env vars related to rust and cargo before executing cargo. --- xtask/src/build_ebpf.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/xtask/src/build_ebpf.rs b/xtask/src/build_ebpf.rs index 25c4f06..fa8d1c4 100644 --- a/xtask/src/build_ebpf.rs +++ b/xtask/src/build_ebpf.rs @@ -1,4 +1,4 @@ -use std::{path::PathBuf, process::Command}; +use std::{collections::HashMap, env, path::PathBuf, process::Command}; use clap::Parser; @@ -43,7 +43,6 @@ pub fn build_ebpf(opts: Options) -> Result<(), anyhow::Error> { let dir = PathBuf::from("{{project-name}}-ebpf"); let target = format!("--target={}", opts.target); let mut args = vec![ - "+nightly", "build", "--verbose", target.as_str(), @@ -53,8 +52,18 @@ pub fn build_ebpf(opts: Options) -> Result<(), anyhow::Error> { if opts.release { args.push("--release") } + + // Command::new creates a child process which inherits all env variables. This means env + // vars set by the cargo xtask command are also inherited. All env vars related to the + // cargo xtask invocation are removed. + let filtered_env: HashMap = env::vars() + .filter(|&(ref k, _)| !k.starts_with("CARGO") && !k.starts_with("RUST")) + .collect(); + let status = Command::new("cargo") .current_dir(dir) + .env_clear() + .envs(&filtered_env) .args(&args) .status() .expect("failed to build bpf program"); From 5b3653c93622f3ef2ed5d3d31a2cc1622d6afe9c Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Sat, 14 Jan 2023 10:47:23 +0100 Subject: [PATCH 2/4] Only remove RUSTUP_TOOLCHAIN env var in xtask build-ebpf --- xtask/src/build_ebpf.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/xtask/src/build_ebpf.rs b/xtask/src/build_ebpf.rs index fa8d1c4..452cb17 100644 --- a/xtask/src/build_ebpf.rs +++ b/xtask/src/build_ebpf.rs @@ -1,4 +1,4 @@ -use std::{collections::HashMap, env, path::PathBuf, process::Command}; +use std::{path::PathBuf, process::Command}; use clap::Parser; @@ -54,16 +54,12 @@ pub fn build_ebpf(opts: Options) -> Result<(), anyhow::Error> { } // Command::new creates a child process which inherits all env variables. This means env - // vars set by the cargo xtask command are also inherited. All env vars related to the - // cargo xtask invocation are removed. - let filtered_env: HashMap = env::vars() - .filter(|&(ref k, _)| !k.starts_with("CARGO") && !k.starts_with("RUST")) - .collect(); + // vars set by the cargo xtask command are also inherited. RUSTUP_TOOLCHAIN is removed + // so the rust-toolchain.toml file in the -ebpf folder is honored. let status = Command::new("cargo") .current_dir(dir) - .env_clear() - .envs(&filtered_env) + .env_remove("RUSTUP_TOOLCHAIN") .args(&args) .status() .expect("failed to build bpf program"); From 5af9b38bd6a3680dcfc70024fe7045ef66863ca1 Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Thu, 19 Jan 2023 14:49:25 +0100 Subject: [PATCH 3/4] Pin nightly version in -ebpf --- {{project-name}}-ebpf/rust-toolchain.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/{{project-name}}-ebpf/rust-toolchain.toml b/{{project-name}}-ebpf/rust-toolchain.toml index c046a09..33460c2 100644 --- a/{{project-name}}-ebpf/rust-toolchain.toml +++ b/{{project-name}}-ebpf/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel="nightly" +channel="nightly-2023-01-10" From 9e3027896e29e1711ccbf44caee09f3576b8cf46 Mon Sep 17 00:00:00 2001 From: arctic-alpaca <67190338+arctic-alpaca@users.noreply.github.com> Date: Thu, 19 Jan 2023 15:30:14 +0100 Subject: [PATCH 4/4] CI: Pin nightly toolchain to 2023-01-10, install bpf-linker on stable --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39648fb..3af968d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,14 +46,14 @@ jobs: with: toolchain: stable - - name: Install latest nightly + - name: Install latest nightly (pinned to nightly-2023-01-10, https://github.com/aya-rs/aya/issues/490) uses: actions-rs/toolchain@v1 with: - toolchain: nightly + toolchain: nightly-2023-01-10 components: rust-src - name: Install bpf-linker - run: cargo +nightly install bpf-linker + run: cargo install bpf-linker - name: Install Cargo Generate run: cargo install --git https://github.com/cargo-generate/cargo-generate cargo-generate