nandi/frqpublic Fork 0
49162f1
Commits
Clone
git clone https://git.rickub.com/nandi/frq.git
git clone ssh://git@rickub.com/nandi/frq.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Merge remote-tracking branch 'origin/main' into claude/nix-apk-build-deploy-cbcc0f

nandi committed 2026-09-01T02:04:47-07:00 Browse files
49162f1 parents: 0daacbb f82b93f
modified flake.lock +73 -1
@@ -19,6 +19,22 @@
1919 "url": "https://github.com/cisco/ChezScheme"
2020 }
2121 },
22+ "flake-compat": {
23+ "flake": false,
24+ "locked": {
25+ "lastModified": 1733328505,
26+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
27+ "owner": "edolstra",
28+ "repo": "flake-compat",
29+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
30+ "type": "github"
31+ },
32+ "original": {
33+ "owner": "edolstra",
34+ "repo": "flake-compat",
35+ "type": "github"
36+ }
37+ },
2238 "flake-utils": {
2339 "inputs": {
2440 "systems": "systems"
@@ -37,6 +53,24 @@
3753 "type": "github"
3854 }
3955 },
56+ "flake-utils_2": {
57+ "inputs": {
58+ "systems": "systems_2"
59+ },
60+ "locked": {
61+ "lastModified": 1731533236,
62+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
63+ "owner": "numtide",
64+ "repo": "flake-utils",
65+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
66+ "type": "github"
67+ },
68+ "original": {
69+ "owner": "numtide",
70+ "repo": "flake-utils",
71+ "type": "github"
72+ }
73+ },
4074 "glimmer": {
4175 "flake": false,
4276 "locked": {
@@ -107,13 +141,35 @@
107141 "url": "https://github.com/jolt-lang/jolt"
108142 }
109143 },
110- "nixgl": {
144+ "nix-appimage": {
111145 "inputs": {
146+ "flake-compat": "flake-compat",
112147 "flake-utils": "flake-utils",
113148 "nixpkgs": [
114149 "nixpkgs"
115150 ]
116151 },
152+ "locked": {
153+ "lastModified": 1757920913,
154+ "narHash": "sha256-jd0QwCVz4O1sHHkeaZILD/7D6oyalceEJ4EFnWCgm0k=",
155+ "owner": "ralismark",
156+ "repo": "nix-appimage",
157+ "rev": "7946addbc0d97e358a6d7aefe5e82310f0fe6b18",
158+ "type": "github"
159+ },
160+ "original": {
161+ "owner": "ralismark",
162+ "repo": "nix-appimage",
163+ "type": "github"
164+ }
165+ },
166+ "nixgl": {
167+ "inputs": {
168+ "flake-utils": "flake-utils_2",
169+ "nixpkgs": [
170+ "nixpkgs"
171+ ]
172+ },
117173 "locked": {
118174 "lastModified": 1762090880,
119175 "narHash": "sha256-fbRQzIGPkjZa83MowjbD2ALaJf9y6KMDdJBQMKFeY/8=",
@@ -151,6 +207,7 @@
151207 "jolt-android-src": "jolt-android-src",
152208 "jolt-native": "jolt-native",
153209 "jolt-src": "jolt-src",
210+ "nix-appimage": "nix-appimage",
154211 "nixgl": "nixgl",
155212 "nixpkgs": "nixpkgs"
156213 }
@@ -169,6 +226,21 @@
169226 "repo": "default",
170227 "type": "github"
171228 }
229+ },
230+ "systems_2": {
231+ "locked": {
232+ "lastModified": 1681028828,
233+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
234+ "owner": "nix-systems",
235+ "repo": "default",
236+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
237+ "type": "github"
238+ },
239+ "original": {
240+ "owner": "nix-systems",
241+ "repo": "default",
242+ "type": "github"
243+ }
172244 }
173245 },
174246 "root": "root",
@@ -19,6 +19,22 @@
19 "url": "https://github.com/cisco/ChezScheme"19 "url": "https://github.com/cisco/ChezScheme"
20 }20 }
21 },21 },
22+ "flake-compat": {
23+ "flake": false,
24+ "locked": {
25+ "lastModified": 1733328505,
26+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
27+ "owner": "edolstra",
28+ "repo": "flake-compat",
29+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
30+ "type": "github"
31+ },
32+ "original": {
33+ "owner": "edolstra",
34+ "repo": "flake-compat",
35+ "type": "github"
36+ }
37+ },
22 "flake-utils": {38 "flake-utils": {
23 "inputs": {39 "inputs": {
24 "systems": "systems"40 "systems": "systems"
@@ -37,6 +53,24 @@
37 "type": "github"53 "type": "github"
38 }54 }
39 },55 },
56+ "flake-utils_2": {
57+ "inputs": {
58+ "systems": "systems_2"
59+ },
60+ "locked": {
61+ "lastModified": 1731533236,
62+ "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
63+ "owner": "numtide",
64+ "repo": "flake-utils",
65+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
66+ "type": "github"
67+ },
68+ "original": {
69+ "owner": "numtide",
70+ "repo": "flake-utils",
71+ "type": "github"
72+ }
73+ },
40 "glimmer": {74 "glimmer": {
41 "flake": false,75 "flake": false,
42 "locked": {76 "locked": {
@@ -107,13 +141,35 @@
107 "url": "https://github.com/jolt-lang/jolt"141 "url": "https://github.com/jolt-lang/jolt"
108 }142 }
109 },143 },
110- "nixgl": {144+ "nix-appimage": {
111 "inputs": {145 "inputs": {
146+ "flake-compat": "flake-compat",
112 "flake-utils": "flake-utils",147 "flake-utils": "flake-utils",
113 "nixpkgs": [148 "nixpkgs": [
114 "nixpkgs"149 "nixpkgs"
115 ]150 ]
116 },151 },
152+ "locked": {
153+ "lastModified": 1757920913,
154+ "narHash": "sha256-jd0QwCVz4O1sHHkeaZILD/7D6oyalceEJ4EFnWCgm0k=",
155+ "owner": "ralismark",
156+ "repo": "nix-appimage",
157+ "rev": "7946addbc0d97e358a6d7aefe5e82310f0fe6b18",
158+ "type": "github"
159+ },
160+ "original": {
161+ "owner": "ralismark",
162+ "repo": "nix-appimage",
163+ "type": "github"
164+ }
165+ },
166+ "nixgl": {
167+ "inputs": {
168+ "flake-utils": "flake-utils_2",
169+ "nixpkgs": [
170+ "nixpkgs"
171+ ]
172+ },
117 "locked": {173 "locked": {
118 "lastModified": 1762090880,174 "lastModified": 1762090880,
119 "narHash": "sha256-fbRQzIGPkjZa83MowjbD2ALaJf9y6KMDdJBQMKFeY/8=",175 "narHash": "sha256-fbRQzIGPkjZa83MowjbD2ALaJf9y6KMDdJBQMKFeY/8=",
@@ -151,6 +207,7 @@
151 "jolt-android-src": "jolt-android-src",207 "jolt-android-src": "jolt-android-src",
152 "jolt-native": "jolt-native",208 "jolt-native": "jolt-native",
153 "jolt-src": "jolt-src",209 "jolt-src": "jolt-src",
210+ "nix-appimage": "nix-appimage",
154 "nixgl": "nixgl",211 "nixgl": "nixgl",
155 "nixpkgs": "nixpkgs"212 "nixpkgs": "nixpkgs"
156 }213 }
@@ -169,6 +226,21 @@
169 "repo": "default",226 "repo": "default",
170 "type": "github"227 "type": "github"
171 }228 }
229+ },
230+ "systems_2": {
231+ "locked": {
232+ "lastModified": 1681028828,
233+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
234+ "owner": "nix-systems",
235+ "repo": "default",
236+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
237+ "type": "github"
238+ },
239+ "original": {
240+ "owner": "nix-systems",
241+ "repo": "default",
242+ "type": "github"
243+ }
172 }244 }
173 },245 },
174 "root": "root",246 "root": "root",
modified flake.nix +15 -1
@@ -65,9 +65,16 @@
6565 url = "github:nix-community/nixGL";
6666 inputs.nixpkgs.follows = "nixpkgs";
6767 };
68+
69+ # Wraps a closure into a single self-extracting file. Only the `appimage`
70+ # output evaluates it.
71+ nix-appimage = {
72+ url = "github:ralismark/nix-appimage";
73+ inputs.nixpkgs.follows = "nixpkgs";
74+ };
6875 };
6976
70- outputs = { self, nixpkgs, jolt-src, jolt-native, glimmer, chez-src, jolt-android-src, nixgl }:
77+ outputs = { self, nixpkgs, jolt-src, jolt-native, glimmer, chez-src, jolt-android-src, nixgl, nix-appimage }:
7178 let
7279 systems = [ "x86_64-linux" "aarch64-linux" ];
7380 forEachSystem = f:
@@ -274,6 +281,13 @@
274281 inherit native frq;
275282 jolt = joltRuntime;
276283 default = frq;
284+
285+ # frq and everything it loads, squashed into one runnable file for
286+ # hosts without Nix. The whole closure rides along — Mesa included,
287+ # which is not waste: off NixOS the launcher goes through nixGL, and
288+ # nixGL needs a store Mesa to put the host's driver in front of.
289+ appimage =
290+ nix-appimage.bundlers.${pkgs.stdenv.hostPlatform.system}.default frq;
277291 }
278292 # An APK is built by a linux-x86_64 NDK and a linux-x86_64 jolt, and
279293 # Google ships no other; on aarch64 the Android outputs are simply
@@ -65,9 +65,16 @@
65 url = "github:nix-community/nixGL";65 url = "github:nix-community/nixGL";
66 inputs.nixpkgs.follows = "nixpkgs";66 inputs.nixpkgs.follows = "nixpkgs";
67 };67 };
68+
69+ # Wraps a closure into a single self-extracting file. Only the `appimage`
70+ # output evaluates it.
71+ nix-appimage = {
72+ url = "github:ralismark/nix-appimage";
73+ inputs.nixpkgs.follows = "nixpkgs";
74+ };
68 };75 };
69 76
70- outputs = { self, nixpkgs, jolt-src, jolt-native, glimmer, chez-src, jolt-android-src, nixgl }:77+ outputs = { self, nixpkgs, jolt-src, jolt-native, glimmer, chez-src, jolt-android-src, nixgl, nix-appimage }:
71 let78 let
72 systems = [ "x86_64-linux" "aarch64-linux" ];79 systems = [ "x86_64-linux" "aarch64-linux" ];
73 forEachSystem = f:80 forEachSystem = f:
@@ -274,6 +281,13 @@
274 inherit native frq;281 inherit native frq;
275 jolt = joltRuntime;282 jolt = joltRuntime;
276 default = frq;283 default = frq;
284+
285+ # frq and everything it loads, squashed into one runnable file for
286+ # hosts without Nix. The whole closure rides along — Mesa included,
287+ # which is not waste: off NixOS the launcher goes through nixGL, and
288+ # nixGL needs a store Mesa to put the host's driver in front of.
289+ appimage =
290+ nix-appimage.bundlers.${pkgs.stdenv.hostPlatform.system}.default frq;
277 }291 }
278 # An APK is built by a linux-x86_64 NDK and a linux-x86_64 jolt, and292 # An APK is built by a linux-x86_64 NDK and a linux-x86_64 jolt, and
279 # Google ships no other; on aarch64 the Android outputs are simply293 # Google ships no other; on aarch64 the Android outputs are simply