From 2d7860294d3e0f6dfb07aa59fee649e8058ee60c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Fri, 16 Jan 2026 15:10:12 +0100 Subject: [PATCH] switch from flake-utils to flake-parts there is not so much of a difference in this project, but it means adding this project to clan, one less flake input and also more consistency with other projects in clan. --- flake.lock | 59 ++++++++----------- flake.nix | 166 +++++++++++++++++++++++++++++------------------------ 2 files changed, 113 insertions(+), 112 deletions(-) diff --git a/flake.lock b/flake.lock index 174dfc0..a5802ed 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1768135262, + "narHash": "sha256-PVvu7OqHBGWN16zSi6tEmPwwHQ4rLPU9Plvs8/1TUBY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "80daad04eddbbf5a4d883996a73f3f542fa437ac", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" @@ -22,24 +42,6 @@ "inputs": { "systems": "systems_2" }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" - }, "locked": { "lastModified": 1710146030, "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", @@ -123,7 +125,7 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", + "flake-parts": "flake-parts", "libkrun-src": "libkrun-src", "libkrunfw-src": "libkrunfw-src", "muvm-src": "muvm-src", @@ -155,7 +157,7 @@ }, "sidebus": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ], @@ -207,24 +209,9 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "virtwl": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "nixpkgs": [ "nixpkgs" ] diff --git a/flake.nix b/flake.nix index da67b2a..99ac54b 100644 --- a/flake.nix +++ b/flake.nix @@ -6,9 +6,13 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - flake-utils.url = "github:numtide/flake-utils"; + + flake-parts.url = "github:hercules-ci/flake-parts"; + flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; + virtwl.url = "git+https://github.com/valpackett/wayland-proxy-virtwl?shallow=1&submodules=1&ref=wip"; virtwl.inputs.nixpkgs.follows = "nixpkgs"; + sidebus.url = "git+https://git.clan.lol/clan/sidebus?shallow=1&ref=main"; sidebus.inputs.nixpkgs.follows = "nixpkgs"; @@ -28,10 +32,10 @@ }; outputs = - { + inputs@{ self, nixpkgs, - flake-utils, + flake-parts, virtwl, sidebus, muvm-src, @@ -39,88 +43,98 @@ libkrunfw-src, ... }: - { - nixosModules.testvm = nixpkgs.lib.modules.importApply ./nixosModules/testvm.nix { inherit virtwl; }; - nixosModules.default = nixpkgs.lib.modules.importApply ./nixosModules/default.nix { - inherit self virtwl sidebus; - }; + flake-parts.lib.mkFlake { inherit inputs; } { + systems = [ + "x86_64-linux" + "aarch64-linux" + ]; - templates.musictest = { - description = "Music player demo VM with MPD and Euphonica"; - path = ./templates/musictest; - }; - - nixosConfigurations.testvm-x86_64 = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - self.nixosModules.default - self.nixosModules.testvm - { nixpkgs.config.allowUnfree = true; } - ]; - }; - - nixosConfigurations.testvm-aarch64 = nixpkgs.lib.nixosSystem { - system = "aarch64-linux"; - modules = [ - self.nixosModules.default - self.nixosModules.testvm - { nixpkgs.config.allowUnfree = true; } - ]; - }; - } - // flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] ( - system: - let - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; + flake = { + nixosModules.testvm = nixpkgs.lib.modules.importApply ./nixosModules/testvm.nix { inherit virtwl; }; + nixosModules.default = nixpkgs.lib.modules.importApply ./nixosModules/default.nix { + inherit self virtwl sidebus; }; - in - { - checks = - (pkgs.lib.mapAttrs' (n: pkgs.lib.nameValuePair "package-${n}") self.packages.${system}) - // (pkgs.lib.mapAttrs' (n: pkgs.lib.nameValuePair "devShell-${n}") self.devShells.${system}) - // (pkgs.lib.optionalAttrs (system == "x86_64-linux") { - nixos-testvm = self.nixosConfigurations.testvm-x86_64.config.system.build.toplevel; - }) - // (pkgs.lib.optionalAttrs (system == "aarch64-linux") { - nixos-testvm = self.nixosConfigurations.testvm-aarch64.config.system.build.toplevel; - }); + templates.musictest = { + description = "Music player demo VM with MPD and Euphonica"; + path = ./templates/musictest; + }; - packages = { - # Packages support variant parameter: null (default), "sev", or "tdx" - # To build a variant: packages.libkrunfw.override { variant = "sev"; } - libkrunfw = pkgs.callPackage ./packages/libkrunfw { - libkrunfw-src = libkrunfw-src; + nixosConfigurations.testvm-x86_64 = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + self.nixosModules.default + self.nixosModules.testvm + { nixpkgs.config.allowUnfree = true; } + ]; + }; + + nixosConfigurations.testvm-aarch64 = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = [ + self.nixosModules.default + self.nixosModules.testvm + { nixpkgs.config.allowUnfree = true; } + ]; + }; + }; + + perSystem = + { + pkgs, + system, + self', + ... + }: + { + _module.args.pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; }; - libkrun = pkgs.callPackage ./packages/libkrun { - libkrunfw = self.packages.${system}.libkrunfw; - libkrun-src = libkrun-src; + checks = + (pkgs.lib.mapAttrs' (n: pkgs.lib.nameValuePair "package-${n}") self'.packages) + // (pkgs.lib.mapAttrs' (n: pkgs.lib.nameValuePair "devShell-${n}") self'.devShells) + // (pkgs.lib.optionalAttrs (system == "x86_64-linux") { + nixos-testvm = self.nixosConfigurations.testvm-x86_64.config.system.build.toplevel; + }) + // (pkgs.lib.optionalAttrs (system == "aarch64-linux") { + nixos-testvm = self.nixosConfigurations.testvm-aarch64.config.system.build.toplevel; + }); + + packages = { + # Packages support variant parameter: null (default), "sev", or "tdx" + # To build a variant: packages.libkrunfw.override { variant = "sev"; } + libkrunfw = pkgs.callPackage ./packages/libkrunfw { + libkrunfw-src = libkrunfw-src; + }; + + libkrun = pkgs.callPackage ./packages/libkrun { + libkrunfw = self'.packages.libkrunfw; + libkrun-src = libkrun-src; + }; + + mesa = pkgs.callPackage ./packages/mesa { }; + + muvm = pkgs.callPackage ./packages/muvm { + libkrun = self'.packages.libkrun; + muvm-src = muvm-src; + }; + + munix = pkgs.callPackage ./packages/munix { + mesa = self'.packages.mesa; + muvm = self'.packages.muvm; + sidebus-broker = sidebus.packages.${system}.sidebus-broker; + }; + + sidebus-agent = sidebus.packages.${system}.sidebus-agent; }; - mesa = pkgs.callPackage ./packages/mesa { }; - - muvm = pkgs.callPackage ./packages/muvm { - libkrun = self.packages.${system}.libkrun; - muvm-src = muvm-src; - }; - - munix = pkgs.callPackage ./packages/munix { - mesa = self.packages.${system}.mesa; - muvm = self.packages.${system}.muvm; + devShells.default = pkgs.callPackage ./devShells { + libkrun = self'.packages.libkrun; + muvm = self'.packages.muvm; sidebus-broker = sidebus.packages.${system}.sidebus-broker; }; - - sidebus-agent = sidebus.packages.${system}.sidebus-agent; }; - - devShells.default = pkgs.callPackage ./devShells { - libkrun = self.packages.${system}.libkrun; - muvm = self.packages.${system}.muvm; - sidebus-broker = sidebus.packages.${system}.sidebus-broker; - }; - } - ); + }; }