default.nix: init

...adds callPackage-able scope.nix and a flake-compat-based entrypoint at default.nix
This commit is contained in:
Else Someone 2026-03-21 02:42:23 +02:00
parent a7fe813f17
commit c275340694
4 changed files with 138 additions and 38 deletions

35
default.nix Normal file
View file

@ -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
;
};
}

42
flake.lock generated
View file

@ -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",

View file

@ -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 { };
};
};
}

51
scope.nix Normal file
View file

@ -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";
}
) { };
})