feat(dx/desktop): support raw NixOS via LD_LIBRARY_PATH injection

This commit is contained in:
Elian Doran 2025-09-02 12:18:22 +03:00
parent 7fdea613ff
commit bd349f5abc
No known key found for this signature in database
2 changed files with 18 additions and 2 deletions

View file

@ -32,6 +32,17 @@ function rebuildNativeDependencies() {
buildPath: desktopProjectRoot,
electronVersion
});
if (isNixOS()) {
console.log("Patching ELF...");
return execSync(`nix-shell -p auto-patchelf gcc.cc.lib --run "auto-patchelf --paths node_modules/better-sqlite3/build/Release/better_sqlite3.node --libs ${libStdPath}"`, {
cwd: desktopProjectRoot,
stdio: "inherit"
});
}
}
function determineElectronVersion() {

View file

@ -4,11 +4,15 @@ import { join } from "path";
const projectRoot = join(import.meta.dirname, "..");
let LD_LIBRARY_PATH = undefined;
let electronPath = "electron";
if (isNixOS()) {
resetPath();
LD_LIBRARY_PATH = execSync("nix eval --raw nixpkgs#gcc.cc.lib").toString("utf-8") + "/lib";
electronPath = execSync("nix eval --raw nixpkgs#electron_37").toString("utf-8") + "/bin/electron";
}
execSync("electron ./src/main.ts", {
execSync(`${electronPath} ./src/main.ts`, {
stdio: "inherit",
cwd: projectRoot,
env: {
@ -18,6 +22,7 @@ execSync("electron ./src/main.ts", {
TRILIUM_ENV: "dev",
TRILIUM_DATA_DIR: "data",
TRILIUM_RESOURCE_DIR: "../server/src",
BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node")
BETTERSQLITE3_NATIVE_PATH: join(projectRoot, "node_modules/better-sqlite3/build/Release/better_sqlite3.node"),
LD_LIBRARY_PATH
}
});