From 0d19347b669898d45297ca457d1f5f1066d79ac5 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 8 Sep 2025 19:06:07 +0200 Subject: [PATCH 1/6] k3s: use `finalAttrs` pattern --- .../networking/cluster/k3s/builder.nix | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index abfdec8bd290..2b2e6490ab23 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -328,7 +328,7 @@ let }).overrideAttrs overrideContainerdAttrs; in -buildGoModule rec { +buildGoModule (finalAttrs: { pname = "k3s"; version = k3sVersion; pos = builtins.unsafeGetAttrPos "k3sVersion" attrs; @@ -389,7 +389,7 @@ buildGoModule rec { gnused ]; - buildInputs = k3sRuntimeDeps; + buildInputs = finalAttrs.k3sRuntimeDeps; nativeBuildInputs = [ makeWrapper @@ -439,14 +439,14 @@ buildGoModule rec { # wildcard to match the arm64 build too install -m 0755 dist/artifacts/k3s* -D $out/bin/k3s wrapProgram $out/bin/k3s \ - --prefix PATH : ${lib.makeBinPath k3sRuntimeDeps} \ + --prefix PATH : ${lib.makeBinPath finalAttrs.k3sRuntimeDeps} \ --prefix PATH : "$out/bin" ln -s $out/bin/k3s $out/bin/kubectl ln -s $out/bin/k3s $out/bin/crictl ln -s $out/bin/k3s $out/bin/ctr install -m 0755 ${k3sKillallSh} -D $out/bin/k3s-killall.sh wrapProgram $out/bin/k3s-killall.sh \ - --prefix PATH : ${lib.makeBinPath (k3sRuntimeDeps ++ k3sKillallDeps)} + --prefix PATH : ${lib.makeBinPath (finalAttrs.k3sRuntimeDeps ++ finalAttrs.k3sKillallDeps)} runHook postInstall ''; @@ -464,13 +464,16 @@ buildGoModule rec { k3sRepo = k3sRepo; k3sRoot = k3sRoot; k3sBundle = k3sBundle; - mkTests = - version: + tests = let - k3s_version = "k3s_" + lib.replaceStrings [ "." ] [ "_" ] (lib.versions.majorMinor version); + mkTests = + version: + let + k3s_version = "k3s_" + lib.replaceStrings [ "." ] [ "_" ] (lib.versions.majorMinor version); + in + lib.mapAttrs (name: value: nixosTests.k3s.${name}.${k3s_version}) nixosTests.k3s; in - lib.mapAttrs (name: value: nixosTests.k3s.${name}.${k3s_version}) nixosTests.k3s; - tests = passthru.mkTests k3sVersion; + mkTests k3sVersion; updateScript = updateScript; imagesList = throw "k3s.imagesList was removed"; airgapImages = throw "k3s.airgapImages was renamed to k3s.airgap-images"; @@ -481,4 +484,4 @@ buildGoModule rec { // (lib.mapAttrs (_: value: fetchurl value) imagesVersions); meta = baseMeta; -} +}) From f2c5012e420fc835c35715a0cd8fd6b38102f310 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 8 Sep 2025 19:11:04 +0200 Subject: [PATCH 2/6] k3s: use `versionCheckHook` --- pkgs/applications/networking/cluster/k3s/builder.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index 2b2e6490ab23..f98edbefaaba 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -73,6 +73,7 @@ lib: util-linuxMinimal, yq-go, zstd, + versionCheckHook, }: # k3s is a kinda weird derivation. One of the main points of k3s is the @@ -451,11 +452,8 @@ buildGoModule (finalAttrs: { ''; doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - $out/bin/k3s --version | grep -F "v${k3sVersion}" >/dev/null - runHook postInstallCheck - ''; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "--version"; passthru = { inherit airgap-images; From 42a3611c6726ea04f4efc6d19f688eb16544355e Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 8 Sep 2025 19:11:27 +0200 Subject: [PATCH 3/6] k3s: use `--replace-fail` --- pkgs/applications/networking/cluster/k3s/builder.nix | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index f98edbefaaba..ce86f5f88b50 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -346,15 +346,13 @@ buildGoModule (finalAttrs: { # Nix prefers dynamically linked binaries over static binary. substituteInPlace scripts/package-cli \ - --replace '"$LDFLAGS $STATIC" -o' \ - '"$LDFLAGS" -o' \ - --replace "STATIC=\"-extldflags \'-static\'\"" \ - "" + --replace-fail '"$LDFLAGS $STATIC" -o' \ + '"$LDFLAGS" -o' # Upstream codegen fails with trimpath set. Removes "trimpath" for 'go generate': substituteInPlace scripts/package-cli \ - --replace '"''${GO}" generate' \ + --replace-fail '"''${GO}" generate' \ 'GOFLAGS="" \ GOOS="${pkgsBuildBuild.go.GOOS}" \ GOARCH="${pkgsBuildBuild.go.GOARCH}" \ From 34a08d71387273054cd7bf03b1c4219e59da88b6 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Mon, 8 Sep 2025 19:11:43 +0200 Subject: [PATCH 4/6] k3s: replace `systemd` with `systemdMinimal` --- pkgs/applications/networking/cluster/k3s/builder.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index ce86f5f88b50..ca7abb1723b5 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -69,7 +69,7 @@ lib: socat, sqlite, stdenv, - systemd, + systemdMinimal, util-linuxMinimal, yq-go, zstd, @@ -380,7 +380,7 @@ buildGoModule (finalAttrs: { k3sKillallDeps = [ bash - systemd + systemdMinimal procps coreutils gnugrep From 6739ee06bf4e64fab9cc76f7371d1c1fc19e0de4 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Tue, 9 Sep 2025 11:56:45 +0200 Subject: [PATCH 5/6] k3s: replace `makeWrapper` with `makeBinaryWrapper` --- pkgs/applications/networking/cluster/k3s/builder.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index ca7abb1723b5..058970e8b033 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -55,7 +55,7 @@ lib: kmod, lib, libseccomp, - makeWrapper, + makeBinaryWrapper, nixosTests, overrideBundleAttrs ? { }, # An attrSet/function to override the `k3sBundle` derivation. overrideCniPluginsAttrs ? { }, # An attrSet/function to override the `k3sCNIPlugins` derivation. @@ -391,7 +391,7 @@ buildGoModule (finalAttrs: { buildInputs = finalAttrs.k3sRuntimeDeps; nativeBuildInputs = [ - makeWrapper + makeBinaryWrapper rsync yq-go zstd From a6c8d7610cfd6eb54381afe0c2935e01530f6824 Mon Sep 17 00:00:00 2001 From: Pol Dellaiera Date: Tue, 9 Sep 2025 11:57:21 +0200 Subject: [PATCH 6/6] k3s: remove unused parameter --- pkgs/applications/networking/cluster/k3s/builder.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/applications/networking/cluster/k3s/builder.nix b/pkgs/applications/networking/cluster/k3s/builder.nix index 058970e8b033..6bc8e1344881 100644 --- a/pkgs/applications/networking/cluster/k3s/builder.nix +++ b/pkgs/applications/networking/cluster/k3s/builder.nix @@ -41,7 +41,6 @@ lib: ethtool, fetchFromGitHub, fetchgit, - fetchpatch, fetchurl, fetchzip, findutils,