Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
3588b81d6b
|
|||
|
1082e52e6b
|
|||
| d1c6469384 | |||
| 6331a7c8ec | |||
| 5ae28029ef | |||
| 142a4e46cb |
@@ -116,12 +116,12 @@
|
||||
"name": null,
|
||||
"owner": "Slush97",
|
||||
"repo": "grimoire",
|
||||
"rev": "v1.14.2",
|
||||
"sha256": "sha256-iRZF06kjmJJJOeiUpWm8T2REO/FSdpwc73dOXu6Xs9w=",
|
||||
"rev": "v1.23.0",
|
||||
"sha256": "sha256-GY1J/guggCc4fyEQKUoEHmRC8hMcSg6gBKU0maEYSPE=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "v1.14.2"
|
||||
"version": "v1.23.0"
|
||||
},
|
||||
"neovide": {
|
||||
"cargoLock": {
|
||||
|
||||
@@ -69,13 +69,13 @@
|
||||
};
|
||||
grimoire = {
|
||||
pname = "grimoire";
|
||||
version = "v1.14.2";
|
||||
version = "v1.23.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Slush97";
|
||||
repo = "grimoire";
|
||||
rev = "v1.14.2";
|
||||
rev = "v1.23.0";
|
||||
fetchSubmodules = false;
|
||||
sha256 = "sha256-iRZF06kjmJJJOeiUpWm8T2REO/FSdpwc73dOXu6Xs9w=";
|
||||
sha256 = "sha256-GY1J/guggCc4fyEQKUoEHmRC8hMcSg6gBKU0maEYSPE=";
|
||||
};
|
||||
};
|
||||
neovide = {
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
nodejs_22,
|
||||
pnpm,
|
||||
python3,
|
||||
gcc,
|
||||
gnumake,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
electron_40,
|
||||
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 = 3;
|
||||
hash = "sha256-X7KLUag9HPHVit0l/tA3BxQZ2/Cj0A5KiG4Oevx2268=";
|
||||
};
|
||||
|
||||
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_40
|
||||
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
|
||||
HOME="$TMPDIR" node \
|
||||
"${nodejs_22}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" \
|
||||
rebuild \
|
||||
--nodedir="${electron_40.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_40.dist} \
|
||||
--config.electronVersion=${electron_40.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_40}/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"];
|
||||
};
|
||||
}
|
||||
@@ -1,122 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
nodejs_22,
|
||||
pnpm,
|
||||
python3,
|
||||
gcc,
|
||||
gnumake,
|
||||
pkg-config,
|
||||
makeWrapper,
|
||||
electron_40,
|
||||
vpkmerge,
|
||||
sqlite,
|
||||
callPackage,
|
||||
}: 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 = 3;
|
||||
hash = "sha256-aSjELhEyEbQ7qT8fI5VfIDOHrsgHHL18Dsphm6sA8J4=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "grimoire";
|
||||
inherit version src;
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs_22
|
||||
pnpm
|
||||
pnpm.configHook
|
||||
python3
|
||||
gcc
|
||||
gnumake
|
||||
pkg-config
|
||||
makeWrapper
|
||||
electron_40
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
sqlite
|
||||
];
|
||||
|
||||
inherit pnpmDeps;
|
||||
|
||||
env.GRIMOIRE_SOCIAL_BASE_URL = "https://grimoire-social.slusheliott.workers.dev";
|
||||
|
||||
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
|
||||
|
||||
(
|
||||
cd node_modules/better-sqlite3
|
||||
HOME="$TMPDIR" node \
|
||||
"${nodejs_22}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" \
|
||||
rebuild \
|
||||
--nodedir="${electron_40.headers}"
|
||||
)
|
||||
|
||||
pnpm exec electron-vite build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib/grimoire
|
||||
cp -r dist $out/lib/grimoire/dist
|
||||
|
||||
mkdir -p $out/lib/grimoire/resources
|
||||
cp -r resources/vpkmerge $out/lib/grimoire/resources/vpkmerge
|
||||
echo '{"name":"grimoire","version":"${version}","main":"dist/main/index.js"}' \
|
||||
> $out/lib/grimoire/package.json
|
||||
|
||||
cp -r node_modules $out/lib/grimoire/node_modules
|
||||
|
||||
rm -rf "$out/lib/grimoire/node_modules/@grimoire"
|
||||
|
||||
find "$out/lib/grimoire/node_modules" -type l | while read -r link; do
|
||||
[ -e "$link" ] || rm -f "$link"
|
||||
done
|
||||
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${electron_40}/bin/electron $out/bin/grimoire \
|
||||
--add-flags "$out/lib/grimoire" \
|
||||
--set ELECTRON_RESOURCES_PATH "$out/lib/grimoire" \
|
||||
--set NODE_ENV production
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Grimoire — Electron-based mod manager";
|
||||
platforms = ["x86_64-linux"];
|
||||
};
|
||||
}
|
||||
@@ -27,11 +27,11 @@ stdenv.mkDerivation (
|
||||
|
||||
rec {
|
||||
name = "x1e80100-firmware";
|
||||
version = "26100_26.033.32430.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-KyHgMGk/oytVctE5AhdXer+x7mJk2uP8Vgc7v78wSRc=";
|
||||
hash = "sha256-ZrbhrOfl8BvFks1MmueKowu7DgSrV0kc0D7CqqbhIps=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
msitools
|
||||
|
||||
Reference in New Issue
Block a user