From c275340694a5ad1f21ecf61955754be5656994d1 Mon Sep 17 00:00:00 2001 From: Else Someone Date: Sat, 21 Mar 2026 02:42:23 +0200 Subject: [PATCH] default.nix: init ...adds callPackage-able scope.nix and a flake-compat-based entrypoint at default.nix --- default.nix | 35 +++++++++++++++++++++++++++++++++++ flake.lock | 42 ++++++++++++++++++++++++++++++++++++------ flake.nix | 48 ++++++++++++++++-------------------------------- scope.nix | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+), 38 deletions(-) create mode 100644 default.nix create mode 100644 scope.nix diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..8e46cf5 --- /dev/null +++ b/default.nix @@ -0,0 +1,35 @@ +let + lockFile = builtins.fromJSON (builtins.readFile ./flake.lock); + flake-compat-node = lockFile.nodes.${lockFile.nodes.root.inputs.flake-compat}; + flake-compat = builtins.fetchTarball { + inherit (flake-compat-node.locked) url; + sha256 = flake-compat-node.locked.narHash; + }; + + flake' = ( + import flake-compat { + src = ./.; + } + ); + flake = flake'.defaultNix; +in + +{ + nixpkgs ? flake.inputs.nixpkgs, + pkgs ? import nixpkgs { }, + sidebus-src ? flake.inputs.sidebus, + muvm-src ? flake.inputs.muvm-src, + libkrun-src ? flake.inputs.libkrun-src, + wl-backdrop-src ? flake.inputs.wl-backdrop, +}: + +pkgs.callPackage ./scope.nix { + inputs = { + inherit + libkrun-src + muvm-src + sidebus-src + wl-backdrop-src + ; + }; +} diff --git a/flake.lock b/flake.lock index 234a180..f3d372a 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,33 @@ { "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" + } + }, + "flake-compat_2": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -72,6 +100,7 @@ }, "root": { "inputs": { + "flake-compat": "flake-compat", "flake-parts": "flake-parts", "libkrun-src": "libkrun-src", "muvm-src": "muvm-src", @@ -82,6 +111,7 @@ }, "sidebus": { "inputs": { + "flake-compat": "flake-compat_2", "flake-parts": [ "flake-parts" ], @@ -90,13 +120,13 @@ ] }, "locked": { - "lastModified": 1772183103, - "narHash": "sha256-9jbqBtaLUdOeT95PVUMz45JdUpVeJ25ZYZHEOQn9XsI=", - "ref": "main", - "rev": "c42eaef55440e2594677ede5279bd8c3eaf128f2", - "shallow": true, + "lastModified": 1774051382, + "narHash": "sha256-OsUkgnE4x+dS3mT7TPbhVIQLux04gf5qpiTsHfTKYLg=", + "ref": "cbce1ae3a224889ee6739843bf0d230637725149", + "rev": "cbce1ae3a224889ee6739843bf0d230637725149", + "revCount": 38, "type": "git", - "url": "https://git.clan.lol/clan/sidebus" + "url": "https://forge.someonex.net/else/clan-sidebus.git" }, "original": { "ref": "main", diff --git a/flake.nix b/flake.nix index 6b9191b..d3cc77f 100644 --- a/flake.nix +++ b/flake.nix @@ -31,6 +31,10 @@ # url = "github:containers/libkrunfw/20484a2e60290acb74c43ccfd6e1ea4caf41d470"; # v5.1.0 # flake = false; # }; + flake-compat = { + url = "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz"; + flake = false; + }; }; outputs = @@ -88,6 +92,9 @@ self', ... }: + let + scope = pkgs.callPackage ./scope.nix { }; + in { _module.args.pkgs = import nixpkgs { inherit system; @@ -107,40 +114,17 @@ 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; - wl-cross-domain-proxy = self'.packages.wl-cross-domain-proxy; - wl-backdrop = wl-backdrop.packages.${system}.wl-backdrop; - sidebus-broker = sidebus.packages.${system}.sidebus-broker; - }; - - wl-cross-domain-proxy = pkgs.callPackage ./packages/wl-cross-domain-proxy { }; + inherit (scope) + libkrunfw + libkrun + mesa + muvm + munix + wl-cross-domain-proxy + ; }; - devShells.default = pkgs.callPackage ./devShells { - libkrun = self'.packages.libkrun; - muvm = self'.packages.muvm; - wl-cross-domain-proxy = self'.packages.wl-cross-domain-proxy; - wl-backdrop = wl-backdrop.packages.${system}.wl-backdrop; - sidebus-broker = sidebus.packages.${system}.sidebus-broker; - }; + devShells.default = scope.callPackage ./devShells { }; }; }; } diff --git a/scope.nix b/scope.nix new file mode 100644 index 0000000..ca0df0d --- /dev/null +++ b/scope.nix @@ -0,0 +1,51 @@ +{ + lib, + newScope, + inputs, +}: + +lib.makeScope newScope (self: { + inherit inputs; + inherit (self.inputs) + libkrun-src + muvm-src + sidebus-src + wl-backdrop-src + ; + libkrunfw = self.callPackage ./packages/libkrunfw { + # libkrunfw-src = libkrunfw-src; + }; + libkrun = self.callPackage ./packages/libkrun { }; + mesa = self.callPackage ./packages/mesa { }; + muvm = self.callPackage ./packages/muvm { + muvm-src = self.inputs.muvm-src; + }; + munix = self.callPackage ./packages/munix { }; + wl-cross-domain-proxy = self.callPackage ./packages/wl-cross-domain-proxy { }; + sidebusPackages = self.callPackage (self.inputs.sidebus-src + "/scope.nix") { }; + inherit (self.sidebusPackages) sidebus-agent sidebus-broker; + wl-backdrop = self.callPackage ( + { + lib, + rustPlatform, + }: + let + src = self.wl-backdrop-src; + cargoToml = fromTOML (builtins.readFile (src + "/Cargo.toml")); + fs = lib.fileset; + in + rustPlatform.buildRustPackage { + pname = cargoToml.package.name; + inherit (cargoToml.package) version; + src = fs.toSource { + root = src; + fileset = fs.unions [ + (src + "/src") + (src + "/Cargo.toml") + (src + "/Cargo.lock") + ]; + }; + cargoLock = src + "/Cargo.lock"; + } + ) { }; +})