diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b8605b1..0000000 --- a/.gitmodules +++ /dev/null @@ -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 diff --git a/flake.lock b/flake.lock index 0d3256f..cd293d4 100644 --- a/flake.lock +++ b/flake.lock @@ -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" diff --git a/flake.nix b/flake.nix index 7161105..7352d48 100644 --- a/flake.nix +++ b/flake.nix @@ -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 { diff --git a/libkrun b/libkrun deleted file mode 160000 index 8a14673..0000000 --- a/libkrun +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8a1467394189b51f5b0ec601352a0c3fd719d850 diff --git a/libkrunfw b/libkrunfw deleted file mode 160000 index 8a8c33f..0000000 --- a/libkrunfw +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8a8c33f24f72aa6ca017347dc2be45b6fa612af5 diff --git a/muvm b/muvm deleted file mode 160000 index 3ec4c90..0000000 --- a/muvm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3ec4c90bbfb6d0111f91b898a7f17deb562f4f92 diff --git a/packages/libkrun/default.nix b/packages/libkrun/default.nix index 0a2bf9d..dde2c4c 100644 --- a/packages/libkrun/default.nix +++ b/packages/libkrun/default.nix @@ -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(?) }) diff --git a/packages/libkrunfw/default.nix b/packages/libkrunfw/default.nix index 8be0930..668e016 100644 --- a/packages/libkrunfw/default.nix +++ b/packages/libkrunfw/default.nix @@ -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; }) diff --git a/packages/muvm/default.nix b/packages/muvm/default.nix index 1fc8766..dd678d8 100644 --- a/packages/muvm/default.nix +++ b/packages/muvm/default.nix @@ -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"; }; })