100 lines
2.6 KiB
Nix
100 lines
2.6 KiB
Nix
|
{ stdenv, lib, unzip, autoPatchelfHook
|
||
|
, fetchurl, makeWrapper
|
||
|
, alsa-lib, mesa, nss, nspr, systemd
|
||
|
, makeDesktopItem, copyDesktopItems, wrapGAppsHook3
|
||
|
, metaCommon
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
pname = "trilium-desktop";
|
||
|
version = "0.63.6";
|
||
|
|
||
|
linuxSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
|
||
|
linuxSource.sha256 = "12kgq5x4f93hxz057zqhz0x1y0rxfxh90fv9fjjs3jrnk0by7f33";
|
||
|
|
||
|
darwinSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-mac-x64-${version}.zip";
|
||
|
darwinSource.sha256 = "0ry512cn622av3nm8rnma2yvqc71rpzax639872ivvc5vm4rsc30";
|
||
|
|
||
|
meta = metaCommon // {
|
||
|
mainProgram = "trilium";
|
||
|
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||
|
};
|
||
|
|
||
|
linux = stdenv.mkDerivation rec {
|
||
|
inherit pname version meta;
|
||
|
|
||
|
src = fetchurl linuxSource;
|
||
|
|
||
|
# TODO: migrate off autoPatchelfHook and use nixpkgs' electron
|
||
|
nativeBuildInputs = [
|
||
|
autoPatchelfHook
|
||
|
makeWrapper
|
||
|
wrapGAppsHook3
|
||
|
copyDesktopItems
|
||
|
];
|
||
|
|
||
|
buildInputs = [
|
||
|
alsa-lib
|
||
|
mesa
|
||
|
nss
|
||
|
nspr
|
||
|
stdenv.cc.cc
|
||
|
systemd
|
||
|
];
|
||
|
|
||
|
desktopItems = [
|
||
|
(makeDesktopItem {
|
||
|
name = "Trilium";
|
||
|
exec = "trilium";
|
||
|
icon = "trilium";
|
||
|
comment = meta.description;
|
||
|
desktopName = "Trilium Notes";
|
||
|
categories = [ "Office" ];
|
||
|
startupWMClass = "trilium notes";
|
||
|
})
|
||
|
];
|
||
|
|
||
|
# Remove trilium-portable.sh, so trilium knows it is packaged making it stop auto generating a desktop item on launch
|
||
|
postPatch = ''
|
||
|
rm ./trilium-portable.sh
|
||
|
'';
|
||
|
|
||
|
installPhase = ''
|
||
|
runHook preInstall
|
||
|
mkdir -p $out/bin
|
||
|
mkdir -p $out/share/trilium
|
||
|
mkdir -p $out/share/icons/hicolor/128x128/apps
|
||
|
|
||
|
cp -r ./* $out/share/trilium
|
||
|
ln -s $out/share/trilium/trilium $out/bin/trilium
|
||
|
|
||
|
ln -s $out/share/trilium/icon.png $out/share/icons/hicolor/128x128/apps/trilium.png
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
# LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :)
|
||
|
# Error: libstdc++.so.6: cannot open shared object file: No such file or directory
|
||
|
preFixup = ''
|
||
|
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs})
|
||
|
'';
|
||
|
|
||
|
dontStrip = true;
|
||
|
|
||
|
passthru.updateScript = ./update.sh;
|
||
|
};
|
||
|
|
||
|
darwin = stdenv.mkDerivation {
|
||
|
inherit pname version meta;
|
||
|
|
||
|
src = fetchurl darwinSource;
|
||
|
nativeBuildInputs = [ unzip ];
|
||
|
|
||
|
installPhase = ''
|
||
|
mkdir -p $out/Applications
|
||
|
cp -r *.app $out/Applications
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
in
|
||
|
if stdenv.hostPlatform.isDarwin then darwin else linux
|