aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bundle.nix13
-rw-r--r--cmd/fpkg/bundle.go2
-rw-r--r--cmd/fpkg/install.go3
3 files changed, 16 insertions, 2 deletions
diff --git a/bundle.nix b/bundle.nix
index 2d5212d0..ba2ffa70 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&parallel-compression=true" "${homeManagerConfiguration.activationPackage}" "${launcher}"
+ nix copy --no-check-sigs --to "file://$OUT/res?compression=zstd&compression-level=19&parallel-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 aa1eecdb..572b295c 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 0b7ce7a6..36661647 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()