solidtime-desktop: fix build

This commit is contained in:
ern775 2026-04-22 13:56:59 +03:00
commit 130ba0070e
2 changed files with 11185 additions and 13 deletions

File diff suppressed because it is too large Load diff

View file

@ -5,41 +5,56 @@
fetchFromGitHub,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
electron,
xcodebuild,
desktopToDarwinBundle,
}:
buildNpmPackage (finalAttrs: {
pname = "solidtime-desktop";
version = "0.0.42";
version = "0.2.7";
src = fetchFromGitHub {
owner = "solidtime-io";
repo = "solidtime-desktop";
tag = "v${finalAttrs.version}";
hash = "sha256-Ve8hT+Gja2HawJ9G6aELxserOfTK7dRNnfdHpY3WUDU=";
hash = "sha256-92w8vmzyQbIbRaQdXKKpeaLdxhLVpxyCE3RJjtJf0Jk=";
};
nativeBuildInputs = [
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcodebuild
desktopToDarwinBundle
];
npmDepsHash = "sha256-y4bO2Rcr+JXkS+q1EbSjg3nNd3GCrB8A+t9ePJsE2L4=";
npmDepsHash = "sha256-EwtCA94ezhq36ooVvQWd4ThtxqWSOe7cr28V1thet2o=";
makeCacheWritable = true;
# fixes missing npm dependency errors
patches = [ ./missing-hashes.patch ];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
# rebuild better-sqlite3 for nixpkgs electron
preBuild = ''
export npm_config_nodedir="${electron.headers}"
export npm_config_target="${electron.version}"
npm rebuild --verbose --no-progress --offline
# reduce better-sqlite3 size
pushd node_modules/better-sqlite3
rm -rf src deps build/{deps,Release/{.deps,obj,obj.target,test_extension.node}}
popd
'';
postInstall = ''
mkdir -p $out/share/icons
cp -a build/icon.png $out/share/icons/solidtime-desktop.png
cp -a . $out/share/solidtime-desktop
install -Dm644 build/icon.png $out/share/icons/hicolor/1024x1024/apps/solidtime-desktop.png
cp -r out $out/lib/node_modules/solidtime
makeWrapper ${lib.getExe electron} $out/bin/solidtime-desktop \
--add-flags $out/share/solidtime-desktop
--add-flags $out/lib/node_modules/solidtime
'';
desktopItems = [
@ -62,6 +77,6 @@ buildNpmPackage (finalAttrs: {
license = lib.licenses.agpl3Only;
mainProgram = "solidtime-desktop";
maintainers = with lib.maintainers; [ hensoko ];
platforms = lib.platforms.linux;
platforms = lib.platforms.all;
};
})