switch from git submodules to flake inputs

This commit is contained in:
Jörg Thalheim 2025-11-28 16:19:52 +01:00 committed by Val Packett
parent 6e8e4b9fda
commit 57b8ae3424
9 changed files with 86 additions and 35 deletions

9
.gitmodules vendored
View file

@ -1,9 +0,0 @@
[submodule "muvm"]
path = muvm
url = https://github.com/valpackett/muvm
[submodule "libkrun"]
path = libkrun
url = https://github.com/containers/libkrun
[submodule "libkrunfw"]
path = libkrunfw
url = https://github.com/containers/libkrunfw

60
flake.lock generated
View file

@ -54,13 +54,64 @@
"type": "github"
}
},
"libkrun-src": {
"flake": false,
"locked": {
"lastModified": 1764170836,
"narHash": "sha256-95B4otgPNoAD2WtAVYFeIwvDWCMvVCSFj5V8Obuk+Ks=",
"owner": "containers",
"repo": "libkrun",
"rev": "8a1467394189b51f5b0ec601352a0c3fd719d850",
"type": "github"
},
"original": {
"owner": "containers",
"repo": "libkrun",
"rev": "8a1467394189b51f5b0ec601352a0c3fd719d850",
"type": "github"
}
},
"libkrunfw-src": {
"flake": false,
"locked": {
"lastModified": 1762790667,
"narHash": "sha256-tVQ0jGef8uJNo2L4Pmhy3ajVRKJ2Gs9oi44eOYAnmds=",
"owner": "containers",
"repo": "libkrunfw",
"rev": "8a8c33f24f72aa6ca017347dc2be45b6fa612af5",
"type": "github"
},
"original": {
"owner": "containers",
"repo": "libkrunfw",
"rev": "8a8c33f24f72aa6ca017347dc2be45b6fa612af5",
"type": "github"
}
},
"muvm-src": {
"flake": false,
"locked": {
"lastModified": 1763708092,
"narHash": "sha256-8K9XDnQbl/fh1Bsx1SwFuo5WVy5BztCjMPT6NW01lXQ=",
"owner": "valpackett",
"repo": "muvm",
"rev": "3ec4c90bbfb6d0111f91b898a7f17deb562f4f92",
"type": "github"
},
"original": {
"owner": "valpackett",
"repo": "muvm",
"rev": "3ec4c90bbfb6d0111f91b898a7f17deb562f4f92",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1763966396,
"narHash": "sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0=",
"lastModified": 1764242076,
"narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5ae3b07d8d6527c42f17c876e404993199144b6a",
"rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
"type": "github"
},
"original": {
@ -73,6 +124,9 @@
"root": {
"inputs": {
"flake-utils": "flake-utils",
"libkrun-src": "libkrun-src",
"libkrunfw-src": "libkrunfw-src",
"muvm-src": "muvm-src",
"nixpkgs": "nixpkgs",
"sidebus": "sidebus",
"virtwl": "virtwl"

View file

@ -5,17 +5,30 @@
};
inputs = {
self.submodules = true;
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# nixpkgs.url = "git+https://github.com/valpackett/nixpkgs?shallow=1&submodules=1&ref=..";
flake-utils.url = "github:numtide/flake-utils";
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";
# Sources for packages (replaces git submodules)
# Pinned to the same commits as the original submodules
muvm-src = {
url = "github:valpackett/muvm/3ec4c90bbfb6d0111f91b898a7f17deb562f4f92";
flake = false;
};
libkrun-src = {
url = "github:containers/libkrun/8a1467394189b51f5b0ec601352a0c3fd719d850";
flake = false;
};
libkrunfw-src = {
url = "github:containers/libkrunfw/8a8c33f24f72aa6ca017347dc2be45b6fa612af5";
flake = false;
};
};
outputs = { self, nixpkgs, flake-utils, virtwl, sidebus, ... }: {
outputs = { self, nixpkgs, flake-utils, virtwl, sidebus, muvm-src, libkrun-src, 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; };
@ -57,16 +70,20 @@
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 = pkgs.callPackage ./packages/libkrunfw {
libkrunfw-src = libkrunfw-src;
};
libkrun = pkgs.callPackage ./packages/libkrun {
libkrunfw = self.packages.${system}.libkrunfw;
libkrun-src = libkrun-src;
};
mesa = pkgs.callPackage ./packages/mesa { };
muvm = pkgs.callPackage ./packages/muvm {
libkrun = self.packages.${system}.libkrun;
muvm-src = muvm-src;
};
munix = pkgs.callPackage ./packages/munix {

@ -1 +0,0 @@
Subproject commit 8a1467394189b51f5b0ec601352a0c3fd719d850

@ -1 +0,0 @@
Subproject commit 8a8c33f24f72aa6ca017347dc2be45b6fa612af5

1
muvm

@ -1 +0,0 @@
Subproject commit 3ec4c90bbfb6d0111f91b898a7f17deb562f4f92

View file

@ -1,4 +1,4 @@
{ libkrun, libkrunfw, rustPlatform, variant ? null, ... }:
{ libkrun, libkrunfw, libkrun-src, rustPlatform, variant ? null, ... }:
let
libkrunfw' = libkrunfw.override { inherit variant; };
@ -11,9 +11,8 @@ in
inherit variant;
libkrunfw = libkrunfw';
}).overrideAttrs (old: {
src = ../../libkrun;
src = libkrun-src;
cargoDeps = rustPlatform.importCargoLock {
lockFile = ../../libkrun/Cargo.lock;
lockFile = "${libkrun-src}/Cargo.lock";
};
# mesonFlags = [ (lib.mesonOption "decoders" "gles,vulkan,composer") ]; # no magma(?)
})

View file

@ -1,19 +1,12 @@
{ libkrunfw, fetchurl, variant ? null, ... }:
{ libkrunfw, libkrunfw-src, fetchurl, variant ? null, ... }:
(libkrunfw.override {
inherit variant;
}).overrideAttrs (old: {
version = "5.0.0";
src = ../../libkrunfw;
# src = fetchFromGitHub {
# owner = "containers";
# repo = "libkrunfw";
# tag = "v4.10.0";
# hash = "sha256-mq2gw0+xL6qUZE/fk0vLT3PEpzPV8p+iwRFJHXVOMnk=";
# };
src = libkrunfw-src;
kernelSrc = fetchurl {
url = "mirror://kernel/linux/kernel/v6.x/linux-6.12.44.tar.xz";
hash = "sha256-tlAhDtMCeyJJadFIqjd0Uqmq065/KFGr7dMa3+8Wva4=";
};
# buildInputs = old.buildInputs;
})

View file

@ -1,12 +1,12 @@
{ muvm, libkrun, systemd, rustPlatform }:
{ muvm, libkrun, muvm-src, systemd, rustPlatform }:
(muvm.override {
libkrun = libkrun;
}).overrideAttrs (old: {
postPatch = ""; # no more sysctl; udevd now takes the var anyway; XXX: fex
MUVM_UDEVD_PATH = "${systemd}/lib/systemd/systemd-udevd";
src = ../../muvm;
src = muvm-src;
cargoDeps = rustPlatform.importCargoLock {
lockFile = ../../muvm/Cargo.lock;
lockFile = "${muvm-src}/Cargo.lock";
};
})