From f8d0786509dcd68ea674c0b37201e2e8a60f98e8 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 29 Dec 2024 23:37:11 +0900 Subject: [PATCH] cmd/fpkg: include nixGL source in inner store Signed-off-by: Ophestra --- bundle.nix | 13 ++++++++++++- cmd/fpkg/bundle.go | 2 ++ cmd/fpkg/install.go | 3 ++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/bundle.nix b/bundle.nix index 2d5212d..ba2ffa7 100644 --- a/bundle.nix +++ b/bundle.nix @@ -12,6 +12,7 @@ writeText, vmTools, runCommand, + fetchFromGitHub, nix, @@ -109,6 +110,13 @@ let inherit (ext) call broadcast; }; + nixGL = fetchFromGitHub { + owner = "nix-community"; + repo = "nixGL"; + rev = "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a"; + hash = "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM="; + }; + info = builtins.toJSON { inherit name @@ -144,6 +152,7 @@ let + (if allow_dbus then 4 else 0) + (if allow_pulse then 8 else 0); + nix_gl = if gpu then nixGL else null; current_system = nixos.config.system.build.toplevel; activation_package = homeManagerConfiguration.activationPackage; }; @@ -158,7 +167,9 @@ writeScript "fortify-${pname}-bundle-prelude" '' nix copy --no-check-sigs --to "$OUT" "${nix}" "${nixos.config.system.build.toplevel}" nix store --store "$OUT" optimise chmod -R +r "$OUT/nix/var" - nix copy --no-check-sigs --to "file://$OUT/res?compression=zstd&compression-level=19¶llel-compression=true" "${homeManagerConfiguration.activationPackage}" "${launcher}" + nix copy --no-check-sigs --to "file://$OUT/res?compression=zstd&compression-level=19¶llel-compression=true" \ + "${homeManagerConfiguration.activationPackage}" \ + "${launcher}" ${if gpu then nixGL else ""} mkdir -p "$OUT/etc" tar -C "$OUT/etc" -xf "${etc}/etc.tar" cp "${writeText "bundle.json" info}" "$OUT/bundle.json" diff --git a/cmd/fpkg/bundle.go b/cmd/fpkg/bundle.go index aa1eecd..572b295 100644 --- a/cmd/fpkg/bundle.go +++ b/cmd/fpkg/bundle.go @@ -40,6 +40,8 @@ type bundleInfo struct { // allow gpu access within sandbox GPU bool `json:"gpu"` + // store path to nixGL source + NixGL string `json:"nix_gl,omitempty"` // store path to activate-and-exec script Launcher string `json:"launcher"` // store path to /run/current-system diff --git a/cmd/fpkg/install.go b/cmd/fpkg/install.go index 0b7ce7a..3666164 100644 --- a/cmd/fpkg/install.go +++ b/cmd/fpkg/install.go @@ -98,7 +98,8 @@ func actionInstall(args []string) { if app != bundle { // do not try to re-install - if app.CurrentSystem == bundle.CurrentSystem && + if app.NixGL == bundle.NixGL && + app.CurrentSystem == bundle.CurrentSystem && app.Launcher == bundle.Launcher && app.ActivationPackage == bundle.ActivationPackage { cleanup()