1
0
forked from nikkuss/pkgs

14 Commits

Author SHA1 Message Date
doloro 3d5b59e4c5 bump(grimoire): 1.26.0 2026-07-30 20:38:16 +01:00
doloro 10568239ce nix flake update (#24)
Reviewed-on: nikkuss/pkgs#24
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-07-20 23:42:21 +04:00
doloro 756a4a0507 Grimoire package fix (#23)
![image.png](/attachments/48e0de47-db8e-4c17-b657-e5d0972a75a6)

Reviewed-on: nikkuss/pkgs#23
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-07-13 20:54:43 +04:00
doloro 7c5eef01d2 bump(vpkmerge): 0.9.0 (#21)
![image.png](/attachments/c7961590-8d7e-4dbe-9348-0ecf06407287)

Reviewed-on: nikkuss/pkgs#21
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-07-13 20:54:35 +04:00
doloro d1c6469384 bump(grimoire): 1.23.0 (#20)
![image.png](/attachments/ad8e7979-c93b-4def-8346-832f3832d3ae)

Reviewed-on: nikkuss/pkgs#20
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-07-13 16:23:52 +04:00
nikkuss 6331a7c8ec bump firmware 2026-07-01 21:59:45 +04:00
doloro 5ae28029ef feat(grimoire): desktop file (#19)
Reviewed-on: nikkuss/pkgs#19
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-06-05 12:46:04 +04:00
nikkuss 142a4e46cb claude-sync (#17)
Reviewed-on: nikkuss/pkgs#17
Co-authored-by: Nikkuss <Scuggo@pm.me>
Co-committed-by: Nikkuss <Scuggo@pm.me>
2026-06-01 03:10:25 +04:00
doloro af49f7b7c7 bump: electron 40 (#16)
Reviewed-on: nikkuss/pkgs#16
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-05-30 16:21:08 +04:00
nikkuss 563375e7a0 bump nixpkgs 2026-05-29 18:18:03 +04:00
nikkuss bc24d47b6c bump firwmware version 2026-05-29 17:42:50 +04:00
nikkuss c4626c6b94 refactor(flightcore): consume source from nvfetcher generated.nix (#14)
Reviewed-on: nikkuss/pkgs#14
Co-authored-by: Nikkuss <Scuggo@pm.me>
Co-committed-by: Nikkuss <Scuggo@pm.me>
2026-05-29 17:39:57 +04:00
nikkuss 6489e22306 bump firwmware version (#13)
Reviewed-on: nikkuss/pkgs#13
Co-authored-by: Nikkuss <Scuggo@pm.me>
Co-committed-by: Nikkuss <Scuggo@pm.me>
2026-05-29 17:39:21 +04:00
doloro e4244532c3 feat: grimorie (deadlock mod manager) (#12)
Reviewed-on: nikkuss/pkgs#12
Reviewed-by: nikkuss <Scuggo@pm.me>
Co-authored-by: Doloro1978 <doloroo@proton.me>
Co-committed-by: Doloro1978 <doloroo@proton.me>
2026-05-29 17:36:14 +04:00
12 changed files with 5864 additions and 105 deletions
+90 -22
View File
@@ -1,7 +1,7 @@
{
"ath-tools": {
"cargoLock": null,
"date": "2026-04-15",
"date": "2026-07-16",
"extract": null,
"name": "ath-tools",
"passthru": null,
@@ -11,17 +11,17 @@
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"rev": "324903e86fbd30d601f404125da74b28d812be4b",
"sha256": "sha256-Gykx/uHPzbHPECtiCoRmo9YWxUpYc7Ky1lNBENLsRm4=",
"rev": "54367caab6cb4e6cd21310c64feadbacc8c9b574",
"sha256": "sha256-iH9RKyhGj1mIycK//8KJqbkO1ZbQaAdWgsQNd7AfWMc=",
"sparseCheckout": [],
"type": "git",
"url": "https://github.com/qca/qca-swiss-army-knife.git"
},
"version": "324903e86fbd30d601f404125da74b28d812be4b"
"version": "54367caab6cb4e6cd21310c64feadbacc8c9b574"
},
"base24-schemes": {
"cargoLock": null,
"date": "2026-05-03",
"date": "2026-07-14",
"extract": null,
"name": "base24-schemes",
"passthru": null,
@@ -31,13 +31,13 @@
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"sha256": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"rev": "010185535336bf94d815b900cd63bb0fc204e216",
"sha256": "sha256-F+YMLW07YdZ4vUPt9h/gNKDU4GlXYYfSWjhY7M2RqRs=",
"sparseCheckout": [],
"type": "git",
"url": "https://github.com/tinted-theming/schemes.git"
},
"version": "0c94645546f4f3ddac77a1a5fce54eb95bf50795"
"version": "010185535336bf94d815b900cd63bb0fc204e216"
},
"claude-code-acp": {
"cargoLock": null,
@@ -53,12 +53,33 @@
"name": null,
"owner": "zed-industries",
"repo": "claude-code-acp",
"rev": "v0.35.0",
"sha256": "sha256-xb6D4J+EmbK5XCrZCyv1LWYdfmaNDcw7Hk4nHg76uAo=",
"rev": "v0.60.0",
"sha256": "sha256-idyZcd8KD+bhAlKqqaTS6X8DcNjAzluln8it1V0vyUk=",
"sparseCheckout": [],
"type": "github"
},
"version": "v0.35.0"
"version": "v0.60.0"
},
"claude-sync": {
"cargoLock": null,
"date": null,
"extract": null,
"name": "claude-sync",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "tawanorg",
"repo": "claude-sync",
"rev": "v1.14.6",
"sha256": "sha256-i/V6Yf6f21KBriSpHG/9BZoUWTg5gHNisxQoUbuhBY0=",
"sparseCheckout": [],
"type": "github"
},
"version": "v1.14.6"
},
"flightcore": {
"cargoLock": null,
@@ -81,14 +102,35 @@
},
"version": "v3.2.0"
},
"grimoire": {
"cargoLock": null,
"date": null,
"extract": null,
"name": "grimoire",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "Slush97",
"repo": "grimoire",
"rev": "v1.26.0",
"sha256": "sha256-E357W9BTeODo4ckuWs4HfGTFYAk7kh/7OmvpShArIFs=",
"sparseCheckout": [],
"type": "github"
},
"version": "v1.26.0"
},
"neovide": {
"cargoLock": {
"Cargo.lock": [
"sha256-Ke8bM5o33s1h1fHY7Y10fYKpVwS3_pU7iOBpBOC0Dvw=/Cargo.lock",
"sha256-3Bi1GKVRu90eQa5e8bhgOW1T92INWbQNCARJKeBM6Y8=/Cargo.lock",
{}
]
},
"date": "2026-05-16",
"date": "2026-07-18",
"extract": null,
"name": "neovide",
"passthru": null,
@@ -98,13 +140,13 @@
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"rev": "8c48a699e201aa5559227a96d879b2f57192b354",
"sha256": "sha256-Ke8bM5o33s1h1fHY7Y10fYKpVwS3/pU7iOBpBOC0Dvw=",
"rev": "9477f53a9c5821bec8eb4488dee89842f96f5bd3",
"sha256": "sha256-3Bi1GKVRu90eQa5e8bhgOW1T92INWbQNCARJKeBM6Y8=",
"sparseCheckout": [],
"type": "git",
"url": "https://github.com/neovide/neovide.git"
},
"version": "8c48a699e201aa5559227a96d879b2f57192b354"
"version": "9477f53a9c5821bec8eb4488dee89842f96f5bd3"
},
"qebspil": {
"cargoLock": null,
@@ -140,12 +182,12 @@
"name": null,
"owner": "radareorg",
"repo": "r2ghidra",
"rev": "6.1.4",
"sha256": "sha256-uVMsONXethTq/BL9MBQkDP3iJ6t25PEnpeD/Y17dpxM=",
"rev": "6.1.8",
"sha256": "sha256-f5iohbAUYG524KJqSvL3PQCFnLQc055Ta02G3CRSO9I=",
"sparseCheckout": [],
"type": "github"
},
"version": "6.1.4"
"version": "6.1.8"
},
"radare2-mcp": {
"cargoLock": null,
@@ -161,12 +203,12 @@
"name": null,
"owner": "radareorg",
"repo": "radare2-mcp",
"rev": "1.8.0",
"sha256": "sha256-1tV3mG1hEIcq18cHn5kS4n9ocVZsHQ5A4TCTA3OKzn8=",
"rev": "1.8.4",
"sha256": "sha256-EbkEbTATKxBOKWVqKkHp6h/hg4VUW0TsgGxN9TRI+pc=",
"sparseCheckout": [],
"type": "github"
},
"version": "1.8.0"
"version": "1.8.4"
},
"slbounce": {
"cargoLock": null,
@@ -188,5 +230,31 @@
"type": "github"
},
"version": "v5"
},
"vpkmerge": {
"cargoLock": {
"Cargo.lock": [
"sha256-DjGEiL6Zfm1chawjeT23KXKvmncCjDssFzguPmHNWUw=/Cargo.lock",
{}
]
},
"date": null,
"extract": null,
"name": "vpkmerge",
"passthru": null,
"pinned": false,
"src": {
"deepClone": false,
"fetchSubmodules": false,
"leaveDotGit": false,
"name": null,
"owner": "Slush97",
"repo": "vpkmerge",
"rev": "v0.19.0",
"sha256": "sha256-DjGEiL6Zfm1chawjeT23KXKvmncCjDssFzguPmHNWUw=",
"sparseCheckout": [],
"type": "github"
},
"version": "v0.19.0"
}
}
+61 -22
View File
@@ -8,41 +8,52 @@
{
ath-tools = {
pname = "ath-tools";
version = "324903e86fbd30d601f404125da74b28d812be4b";
version = "54367caab6cb4e6cd21310c64feadbacc8c9b574";
src = fetchgit {
url = "https://github.com/qca/qca-swiss-army-knife.git";
rev = "324903e86fbd30d601f404125da74b28d812be4b";
rev = "54367caab6cb4e6cd21310c64feadbacc8c9b574";
fetchSubmodules = false;
deepClone = false;
leaveDotGit = false;
sparseCheckout = [ ];
sha256 = "sha256-Gykx/uHPzbHPECtiCoRmo9YWxUpYc7Ky1lNBENLsRm4=";
sha256 = "sha256-iH9RKyhGj1mIycK//8KJqbkO1ZbQaAdWgsQNd7AfWMc=";
};
date = "2026-04-15";
date = "2026-07-16";
};
base24-schemes = {
pname = "base24-schemes";
version = "0c94645546f4f3ddac77a1a5fce54eb95bf50795";
version = "010185535336bf94d815b900cd63bb0fc204e216";
src = fetchgit {
url = "https://github.com/tinted-theming/schemes.git";
rev = "0c94645546f4f3ddac77a1a5fce54eb95bf50795";
rev = "010185535336bf94d815b900cd63bb0fc204e216";
fetchSubmodules = false;
deepClone = false;
leaveDotGit = false;
sparseCheckout = [ ];
sha256 = "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=";
sha256 = "sha256-F+YMLW07YdZ4vUPt9h/gNKDU4GlXYYfSWjhY7M2RqRs=";
};
date = "2026-05-03";
date = "2026-07-14";
};
claude-code-acp = {
pname = "claude-code-acp";
version = "v0.35.0";
version = "v0.60.0";
src = fetchFromGitHub {
owner = "zed-industries";
repo = "claude-code-acp";
rev = "v0.35.0";
rev = "v0.60.0";
fetchSubmodules = false;
sha256 = "sha256-xb6D4J+EmbK5XCrZCyv1LWYdfmaNDcw7Hk4nHg76uAo=";
sha256 = "sha256-idyZcd8KD+bhAlKqqaTS6X8DcNjAzluln8it1V0vyUk=";
};
};
claude-sync = {
pname = "claude-sync";
version = "v1.14.6";
src = fetchFromGitHub {
owner = "tawanorg";
repo = "claude-sync";
rev = "v1.14.6";
fetchSubmodules = false;
sha256 = "sha256-i/V6Yf6f21KBriSpHG/9BZoUWTg5gHNisxQoUbuhBY0=";
};
};
flightcore = {
@@ -56,25 +67,36 @@
sha256 = "sha256-MFnW9cXFzqmdtC31r8cRcihV3NjGAC6+2/DnNVMheCI=";
};
};
grimoire = {
pname = "grimoire";
version = "v1.26.0";
src = fetchFromGitHub {
owner = "Slush97";
repo = "grimoire";
rev = "v1.26.0";
fetchSubmodules = false;
sha256 = "sha256-E357W9BTeODo4ckuWs4HfGTFYAk7kh/7OmvpShArIFs=";
};
};
neovide = {
pname = "neovide";
version = "8c48a699e201aa5559227a96d879b2f57192b354";
version = "9477f53a9c5821bec8eb4488dee89842f96f5bd3";
src = fetchgit {
url = "https://github.com/neovide/neovide.git";
rev = "8c48a699e201aa5559227a96d879b2f57192b354";
rev = "9477f53a9c5821bec8eb4488dee89842f96f5bd3";
fetchSubmodules = false;
deepClone = false;
leaveDotGit = false;
sparseCheckout = [ ];
sha256 = "sha256-Ke8bM5o33s1h1fHY7Y10fYKpVwS3/pU7iOBpBOC0Dvw=";
sha256 = "sha256-3Bi1GKVRu90eQa5e8bhgOW1T92INWbQNCARJKeBM6Y8=";
};
cargoLock."Cargo.lock" = {
lockFile = ./. + "/sha256-Ke8bM5o33s1h1fHY7Y10fYKpVwS3_pU7iOBpBOC0Dvw=/Cargo.lock";
lockFile = ./. + "/sha256-3Bi1GKVRu90eQa5e8bhgOW1T92INWbQNCARJKeBM6Y8=/Cargo.lock";
outputHashes = {
};
};
date = "2026-05-16";
date = "2026-07-18";
};
qebspil = {
pname = "qebspil";
@@ -92,24 +114,24 @@
};
radare2-ghidra = {
pname = "radare2-ghidra";
version = "6.1.4";
version = "6.1.8";
src = fetchFromGitHub {
owner = "radareorg";
repo = "r2ghidra";
rev = "6.1.4";
rev = "6.1.8";
fetchSubmodules = false;
sha256 = "sha256-uVMsONXethTq/BL9MBQkDP3iJ6t25PEnpeD/Y17dpxM=";
sha256 = "sha256-f5iohbAUYG524KJqSvL3PQCFnLQc055Ta02G3CRSO9I=";
};
};
radare2-mcp = {
pname = "radare2-mcp";
version = "1.8.0";
version = "1.8.4";
src = fetchFromGitHub {
owner = "radareorg";
repo = "radare2-mcp";
rev = "1.8.0";
rev = "1.8.4";
fetchSubmodules = false;
sha256 = "sha256-1tV3mG1hEIcq18cHn5kS4n9ocVZsHQ5A4TCTA3OKzn8=";
sha256 = "sha256-EbkEbTATKxBOKWVqKkHp6h/hg4VUW0TsgGxN9TRI+pc=";
};
};
slbounce = {
@@ -123,4 +145,21 @@
sha256 = "sha256-w+0SKR0A/hcFU6iFEOgyG+vWwgAWF8h9D0/X7GSFm7w=";
};
};
vpkmerge = {
pname = "vpkmerge";
version = "v0.19.0";
src = fetchFromGitHub {
owner = "Slush97";
repo = "vpkmerge";
rev = "v0.19.0";
fetchSubmodules = false;
sha256 = "sha256-DjGEiL6Zfm1chawjeT23KXKvmncCjDssFzguPmHNWUw=";
};
cargoLock."Cargo.lock" = {
lockFile = ./. + "/sha256-DjGEiL6Zfm1chawjeT23KXKvmncCjDssFzguPmHNWUw=/Cargo.lock";
outputHashes = {
};
};
};
}
@@ -2849,9 +2849,9 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
[[package]]
name = "skia-bindings"
version = "0.97.0"
version = "0.97.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6e3bcf8f25bf047e83110838463e8d06696c12fccc3d3794adf448b4d81f34b"
checksum = "e6a38f4d460276ea40588c958396a9de0eec808c679009a5b52afdf6ebf34132"
dependencies = [
"bindgen",
"cc",
@@ -2866,9 +2866,9 @@ dependencies = [
[[package]]
name = "skia-safe"
version = "0.97.0"
version = "0.97.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "935d4d174fb749bac9265eb41cad75039d32fda2d9c1a1e81b430df0e210a409"
checksum = "1ecfc54fcd40dc5dea15dd2a84f8422cdb0f76c6a51ebb8835ce0b7ef590a21f"
dependencies = [
"bitflags 2.10.0",
"skia-bindings",
@@ -3070,7 +3070,7 @@ dependencies = [
"getrandom 0.3.4",
"once_cell",
"rustix 1.1.2",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -3689,7 +3689,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
File diff suppressed because it is too large Load Diff
Generated
+3 -3
View File
@@ -20,11 +20,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1764897201,
"narHash": "sha256-428X4sppU6k+tF2vxTy726E5BxbtoxoTRP+1FBbXqvM=",
"lastModified": 1784463523,
"narHash": "sha256-DIM0Ma2i514MRl+NJY2/LGzG8i6hs4zORZw9E+0VwBc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9cfae7bb77c5058a4cfa8006d0caf82af8e980dc",
"rev": "3d79c8d63e761c59323e90a27b50eb52b5482bfe",
"type": "github"
},
"original": {
+13
View File
@@ -2,6 +2,10 @@
src.github = "zed-industries/claude-code-acp"
fetch.github = "zed-industries/claude-code-acp"
[claude-sync]
src.github = "tawanorg/claude-sync"
fetch.github = "tawanorg/claude-sync"
[flightcore]
src.github = "R2NorthstarTools/FlightCore"
fetch.github = "R2NorthstarTools/FlightCore"
@@ -36,3 +40,12 @@ src.git = "https://github.com/neovide/neovide.git"
src.git_branch = "nightly"
fetch.git = "https://github.com/neovide/neovide.git"
cargo_lock = ["Cargo.lock"]
[grimoire]
src.github = "Slush97/grimoire"
fetch.github = "Slush97/grimoire"
[vpkmerge]
src.github = "Slush97/vpkmerge"
fetch.github = "Slush97/vpkmerge"
cargo_lock = ["Cargo.lock"]
+28
View File
@@ -0,0 +1,28 @@
{
lib,
buildGoModule,
callPackage,
}:
let
sources = callPackage ../../../../_sources/generated.nix { };
in
buildGoModule (finalAttrs: {
pname = "claude-sync";
version = lib.removePrefix "v" sources.claude-sync.version;
inherit (sources.claude-sync) src;
vendorHash = "sha256-VLqVk5bhM+WoEbP+agFpm1LjzI2qFWlWQZB8yV2vbOU=";
subPackages = [ "cmd/claude-sync" ];
ldflags = [
"-s"
"-w"
"-X main.version=${finalAttrs.version}"
];
meta = {
mainProgram = "claude-sync";
platforms = lib.platforms.unix;
};
})
+6 -9
View File
@@ -13,17 +13,14 @@
pkg-config,
webkitgtk_4_1,
wrapGAppsHook4,
fetchFromGitHub,
}:
callPackage,
}: let
sources = callPackage ../../../../_sources/generated.nix {};
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "flightcore";
version = "3.2.0";
src = fetchFromGitHub {
owner = "R2NorthstarTools";
repo = "FlightCore";
rev = "v${finalAttrs.version}";
sha256 = "sha256-MFnW9cXFzqmdtC31r8cRcihV3NjGAC6+2/DnNVMheCI=";
};
version = lib.removePrefix "v" sources.flightcore.version;
inherit (sources.flightcore) src;
patches = [./cargo-lock.patch];
cargoDeps = rustPlatform.fetchCargoVendor {
src = finalAttrs.src;
+148
View File
@@ -0,0 +1,148 @@
{
lib,
stdenv,
fetchFromGitHub,
nodejs_22,
pnpm,
python3,
gcc,
gnumake,
pkg-config,
makeWrapper,
electron_41,
vpkmerge,
sqlite,
callPackage,
makeDesktopItem,
copyDesktopItems,
}:
let
sources = callPackage ../../../../_sources/generated.nix { };
src = sources.grimoire.src;
version = src.rev;
# This would go into nvfetcher but it isnt versioned..
grimoire-social-src = fetchFromGitHub {
owner = "Slush97";
repo = "grimoire-social";
rev = "main";
hash = "sha256-f+wUZOR7dqigxd/IZtay1BrLS5rcSnaDage3NXxqsPE=";
};
pnpmDeps = pnpm.fetchDeps {
pname = "grimoire";
inherit version src;
fetcherVersion = 4;
hash = "sha256-Mqvvemc3oDCiuY/UnDOc73P+dLqMEFnwQotodVhrPao=";
# hash = lib.fakeHash;
};
desktopItem = makeDesktopItem {
name = "grimoire";
exec = "grimoire %u";
desktopName = "Grimoire";
categories = [ "Utility" ];
mimeTypes = [ "x-scheme-handler/grimoire" ];
};
in
stdenv.mkDerivation {
pname = "grimoire";
inherit version src;
nativeBuildInputs = [
nodejs_22
pnpm
pnpm.configHook
python3
gcc
gnumake
pkg-config
makeWrapper
electron_41
copyDesktopItems
];
desktopItems = [ desktopItem ];
buildInputs = [
sqlite
];
inherit pnpmDeps;
env = {
GRIMOIRE_SOCIAL_BASE_URL = "https://grimoire-social.slusheliott.workers.dev";
# electron-builder must not try to fetch an Electron binary over the
# network; we hand it the Nix one via --config.electronDist below.
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
};
postPatch = ''
cp -r ${grimoire-social-src} ../grimoire-social
chmod -R u+w ../grimoire-social
mkdir -p resources/vpkmerge
cp ${vpkmerge}/bin/vpkmerge resources/vpkmerge/vpkmerge-linux-x86_64
chmod +x resources/vpkmerge/vpkmerge-linux-x86_64
'';
buildPhase = ''
runHook preBuild
mkdir -p ../grimoire-social/node_modules
ln -sfn "$(realpath node_modules/zod)" ../grimoire-social/node_modules/zod
# Rebuild the better-sqlite3 native addon against the Electron ABI. We do
# this ourselves (and disable electron-builder's own rebuild below) so no
# network fetch of Electron headers is needed inside the sandbox.
(
cd node_modules/better-sqlite3
patch -p1 < ${./patches/better-sqlite3-thistogetthis.patch}
HOME="$TMPDIR" node \
"${nodejs_22}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" \
rebuild \
--nodedir="${electron_41.headers}"
)
# Package the app the same way upstream CI does (release.yml):
# `electron-vite build && electron-builder`. We stop at the unpacked
# `--dir` output instead of building AppImage/deb installers, then wrap
# the Nix Electron around the produced app.asar. Building through
# electron-builder (rather than launching Electron on the raw dist/)
# makes `app.isPackaged` true, which is what disables the dev-only
# DevTools auto-open and the dev vpkmerge lookup path.
export HOME="$TMPDIR"
pnpm exec electron-vite build
pnpm exec electron-builder --linux dir \
--config.npmRebuild=false \
--config.electronDist=${electron_41.dist} \
--config.electronVersion=${electron_41.version}
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/grimoire
# electron-builder emits the packaged app (app.asar, app.asar.unpacked,
# and extraResources such as vpkmerge) under release/linux-unpacked/resources.
cp -r release/linux-unpacked/resources $out/lib/grimoire/resources
# Launch the Nix Electron against the packaged asar. process.resourcesPath
# resolves to the directory holding app.asar, so the bundled vpkmerge at
# resources/vpkmerge/ is found at runtime.
mkdir -p $out/bin
makeWrapper ${electron_41}/bin/electron $out/bin/grimoire \
--add-flags "$out/lib/grimoire/resources/app.asar" \
--set NODE_ENV production
runHook postInstall
'';
meta = {
description = "Grimoire Electron-based mod manager";
platforms = [ "x86_64-linux" ];
};
}
@@ -0,0 +1,47 @@
--- a/src/util/macros.cpp 2026-07-20 13:25:03.226579751 +0100
+++ b/src/util/macros.cpp 2026-07-20 13:25:43.980692531 +0100
@@ -11,6 +11,19 @@
#define GET_PROTOTYPE(obj) ((obj)->GetPrototype())
#endif
+// PropertyCallbackInfo::This() and Holder() were removed; use HolderV2().
+// Tracking bug for V8 API removals: http://crbug.com/333672197
+// V8 head has since restored Holder() and deprecated HolderV2():
+// https://chromium.googlesource.com/v8/v8/+/main/include/v8-function-callback.h
+// V8_INLINE Local<Object> Holder() const;
+// V8_DEPRECATE_SOON("Use Holder().")
+// V8_INLINE Local<Object> HolderV2() const;
+#if defined(V8_MAJOR_VERSION) && V8_MAJOR_VERSION >= 13
+#define PROPERTY_HOLDER(info) (info).HolderV2()
+#else
+#define PROPERTY_HOLDER(info) (info).This()
+#endif
+
#define EasyIsolate v8::Isolate* isolate = v8::Isolate::GetCurrent()
#define OnlyIsolate info.GetIsolate()
#define OnlyContext isolate->GetCurrentContext()
--- a/src/objects/database.cpp 2026-07-20 13:25:03.229579774 +0100
+++ b/src/objects/database.cpp 2026-07-20 13:25:52.605028002 +0100
@@ -408,10 +408,10 @@
}
NODE_GETTER(Database::JS_open) {
- info.GetReturnValue().Set(Unwrap<Database>(info.This())->open);
+ info.GetReturnValue().Set(Unwrap<Database>(PROPERTY_HOLDER(info))->open);
}
NODE_GETTER(Database::JS_inTransaction) {
- Database* db = Unwrap<Database>(info.This());
+ Database* db = Unwrap<Database>(PROPERTY_HOLDER(info));
info.GetReturnValue().Set(db->open && !static_cast<bool>(sqlite3_get_autocommit(db->db_handle)));
}
--- a/src/objects/statement.cpp 2026-07-20 13:25:03.231579789 +0100
+++ b/src/objects/statement.cpp 2026-07-20 13:25:52.606984847 +0100
@@ -378,6 +378,6 @@
}
NODE_GETTER(Statement::JS_busy) {
- Statement* stmt = Unwrap<Statement>(info.This());
+ Statement* stmt = Unwrap<Statement>(PROPERTY_HOLDER(info));
info.GetReturnValue().Set(stmt->alive && stmt->locked);
}
+25
View File
@@ -0,0 +1,25 @@
{
lib,
rustPlatform,
callPackage,
pkg-config,
dbus,
glib,
cairo,
gtk3,
libsoup_3,
webkitgtk_4_1,
}: let
sources = callPackage ../../../../_sources/generated.nix {};
inherit (sources.vpkmerge) src cargoLock;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "vpkmerge";
version = src.rev;
src = src;
cargoLock = sources.vpkmerge.cargoLock."Cargo.lock";
nativeBuildInputs = [pkg-config dbus.dev];
buildInputs = [dbus glib cairo gtk3 libsoup_3 webkitgtk_4_1];
})
@@ -27,11 +27,11 @@ stdenv.mkDerivation (
rec {
name = "x1e80100-firmware";
version = "26100_26.011.9344.0";
version = "26100_26.053.36539.0";
src = fetchurl {
# https://www.microsoft.com/en-us/download/details.aspx?id=106120
url = "https://download.microsoft.com/download/b7ca2c3f-d320-4795-be0f-529a0117abb4/SurfaceLaptop7_ARM_Win11_${version}.msi";
hash = "sha256-ZkZgmKz5ihrRaarAioWoc0dx9XbmobGwTTyY/VLzahk=";
hash = "sha256-ZrbhrOfl8BvFks1MmueKowu7DgSrV0kc0D7CqqbhIps=";
};
nativeBuildInputs = [
msitools