76 lines
2.3 KiB
Nix
76 lines
2.3 KiB
Nix
{ ... }:
|
|
{
|
|
flake.modules.nixos.aquatic-gui =
|
|
{ pkgs, ... }:
|
|
{
|
|
environment.systemPackages = with pkgs; [
|
|
stoat-desktop
|
|
];
|
|
|
|
nixpkgs.overlays = [
|
|
(final: prev: {
|
|
stoat-desktop = prev.stoat-desktop.overrideAttrs (oldAttrs:
|
|
let
|
|
version = "1.5.3";
|
|
electron = final.electron_43;
|
|
pnpm = final.pnpm_11;
|
|
|
|
src = oldAttrs.src.override {
|
|
tag = "v${version}";
|
|
hash = "sha256-UKMuMtBTfiA31K2i1buCFOtL9lf9xbv6BXVD5m4TARo=";
|
|
};
|
|
|
|
patches = [ ];
|
|
in
|
|
{
|
|
inherit version src patches electron;
|
|
|
|
nativeBuildInputs = (builtins.filter
|
|
(p: p != final.pnpm_10)
|
|
oldAttrs.nativeBuildInputs) ++ [ pnpm ];
|
|
|
|
pnpmDeps = final.fetchPnpmDeps {
|
|
inherit (oldAttrs) pname;
|
|
inherit version src patches;
|
|
fetcherVersion = 4;
|
|
inherit pnpm;
|
|
hash = "sha256-uiKTkXU0THzW46FiAfftqMWfrnFPCfgS/30ZuWmpHMI="; # fill in after first build attempt
|
|
};
|
|
|
|
env = (oldAttrs.env or { }) // {
|
|
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
|
|
};
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
export npm_config_nodedir=${electron.headers}
|
|
|
|
substituteInPlace node_modules/@electron-forge/core-utils/dist/electron-version.js \
|
|
--replace-fail "return version" "return '${electron.version}'"
|
|
|
|
cp -r ${electron.dist} electron-dist
|
|
chmod -R u+w electron-dist
|
|
|
|
pushd electron-dist
|
|
zip -0Xqr ../electron.zip .
|
|
popd
|
|
|
|
rm -r electron-dist
|
|
|
|
substituteInPlace node_modules/@electron/packager/dist/packager.js \
|
|
--replace-fail "await this.getElectronZipPath(downloadOpts)" "'$(pwd)/electron.zip'"
|
|
|
|
pnpm make \
|
|
--arch "${final.stdenvNoCC.hostPlatform.node.arch}" \
|
|
--platform "${final.stdenvNoCC.hostPlatform.node.platform}" \
|
|
--targets "@electron-forge/maker-zip"
|
|
|
|
runHook postBuild
|
|
'';
|
|
});
|
|
})
|
|
];
|
|
|
|
};
|
|
}
|