diff options
Diffstat (limited to 'pkgs/applications/office/trilium/default.nix')
-rw-r--r-- | pkgs/applications/office/trilium/default.nix | 129 |
1 files changed, 89 insertions, 40 deletions
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix index 877dfba88c06..d44b51861dc5 100644 --- a/pkgs/applications/office/trilium/default.nix +++ b/pkgs/applications/office/trilium/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook }: +{ stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, gtk3, wrapGAppsHook, zlib, libxkbfile }: let description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases."; @@ -11,56 +11,105 @@ let categories = "Office"; }; -in stdenv.mkDerivation rec { - pname = "trilium"; - version = "0.33.6"; - - src = fetchurl { - url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; - sha256 = "1sg6iqhpgyr8zr6w6dgs0ha0indb9vyp8vh2clj2fds5ahhlvf91"; + meta = with stdenv.lib; { + inherit description; + homepage = https://github.com/zadam/trilium; + license = licenses.agpl3; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ]; }; - # Fetch from source repo, no longer included in release. - # (they did special-case icon.png but we want the scalable svg) - # Use the version here to ensure we get any changes. - trilium_svg = fetchurl { - url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/src/public/images/trilium.svg"; - sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg"; + version = "0.38.2"; + +in { + + trilium-desktop = stdenv.mkDerivation rec { + pname = "trilium-desktop"; + inherit version; + inherit meta; + + src = fetchurl { + url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; + sha256 = "10f5zfqcfcjynw04d5xzrfmkbqpk85i4mq7njhkibx2f1m0br2qa"; + }; + + # Fetch from source repo, no longer included in release. + # (they did special-case icon.png but we want the scalable svg) + # Use the version here to ensure we get any changes. + trilium_svg = fetchurl { + url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/src/public/images/trilium.svg"; + sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg"; + }; + + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + wrapGAppsHook + ]; + + buildInputs = [ atomEnv.packages gtk3 ]; + + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/trilium + mkdir -p $out/share/{applications,icons/hicolor/scalable/apps} + + cp -r ./* $out/share/trilium + ln -s $out/share/trilium/trilium $out/bin/trilium + + ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg + cp ${desktopItem}/share/applications/* $out/share/applications + ''; + + # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :) + preFixup = '' + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath}) + ''; + + dontStrip = true; }; - nativeBuildInputs = [ - autoPatchelfHook - makeWrapper - wrapGAppsHook - ]; + trilium-server = stdenv.mkDerivation rec { + pname = "trilium-server"; + inherit version; + inherit meta; - buildInputs = [ atomEnv.packages gtk3 ]; + src = fetchurl { + url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz"; + sha256 = "1df0cx9gpzk0086lgha0qm1g03l8f4rz7y2xzgpzng5rrxjkgz61"; + }; - installPhase = '' - mkdir -p $out/bin - mkdir -p $out/share/trilium - mkdir -p $out/share/{applications,icons/hicolor/scalable/apps} + nativeBuildInputs = [ + autoPatchelfHook + ]; - cp -r ./* $out/share/trilium - ln -s $out/share/trilium/trilium $out/bin/trilium + buildInputs = [ + stdenv.cc.cc.lib + zlib + libxkbfile + ]; - ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg - cp ${desktopItem}/share/applications/* $out/share/applications - ''; + patches = [ ./0001-Use-console-logger-instead-of-rolling-files.patch ] ; + installPhase = '' + mkdir -p $out/bin + mkdir -p $out/share/trilium-server - # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :) - preFixup = '' - gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath}) - ''; + cp -r ./* $out/share/trilium-server + ''; - dontStrip = true; + postFixup = '' + cat > $out/bin/trilium-server <<EOF + #!${stdenv.cc.shell} + cd $out/share/trilium-server + exec ./node/bin/node src/www + EOF + chmod a+x $out/bin/trilium-server + ''; - meta = with stdenv.lib; { - inherit description; - homepage = https://github.com/zadam/trilium; - license = licenses.agpl3; - platforms = platforms.linux; - maintainers = with maintainers; [ emmanuelrosa dtzWill ]; + passthru.tests = { + trilium-server = nixosTests.trilium-server; + }; }; } |