diff options
author | Elian Doran <contact@eliandoran.me> | 2023-01-14 21:28:01 +0200 |
---|---|---|
committer | Elian Doran <contact@eliandoran.me> | 2023-01-25 21:27:34 +0200 |
commit | 5760604c9d94cb2a290bf2d6f27c9c4ecbb29416 (patch) | |
tree | deddfe909db59db27e6bb8d97319ede700f2cdbd /pkgs/applications/office/trilium | |
parent | 34ab27401705b3eb62fa1e3bf3d81c6e664b864e (diff) | |
download | nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.tar nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.tar.gz nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.tar.bz2 nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.tar.lz nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.tar.xz nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.tar.zst nixpkgs-5760604c9d94cb2a290bf2d6f27c9c4ecbb29416.zip |
trilium-desktop: split desktop & server into two files
Diffstat (limited to 'pkgs/applications/office/trilium')
-rw-r--r-- | pkgs/applications/office/trilium/default.nix | 123 | ||||
-rw-r--r-- | pkgs/applications/office/trilium/desktop.nix | 72 | ||||
-rw-r--r-- | pkgs/applications/office/trilium/server.nix | 55 | ||||
-rwxr-xr-x | pkgs/applications/office/trilium/update.sh | 19 |
4 files changed, 138 insertions, 131 deletions
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix deleted file mode 100644 index 08084bfbf7a..00000000000 --- a/pkgs/applications/office/trilium/default.nix +++ /dev/null @@ -1,123 +0,0 @@ -{ lib, stdenv, nixosTests, fetchurl, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem, copyDesktopItems, libxshmfence, wrapGAppsHook }: - -let - metaCommon = with lib; { - description = "Hierarchical note taking application with focus on building large personal knowledge bases"; - homepage = "https://github.com/zadam/trilium"; - license = licenses.agpl3Plus; - sourceProvenance = with sourceTypes; [ binaryNativeCode ]; - platforms = [ "x86_64-linux" ]; - maintainers = with maintainers; [ fliegendewurst ]; - }; - - version = "0.58.7"; - - desktopSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; - desktopSource.sha256 = "1xr8fx5m6p9z18al1iigf45acn7b69vhbc6z6q1v933bvkwry16c"; - - serverSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz"; - serverSource.sha256 = "0xr474z7wz0z4rqvk5rhv6xh51mdysr8zw86fs8fk7av0fdqxyka"; - -in { - - trilium-desktop = stdenv.mkDerivation rec { - pname = "trilium-desktop"; - inherit version; - meta = metaCommon // { - mainProgram = "trilium"; - }; - - src = fetchurl desktopSource; - - nativeBuildInputs = [ - autoPatchelfHook - makeWrapper - wrapGAppsHook - copyDesktopItems - ]; - - buildInputs = atomEnv.packages ++ [ libxshmfence ]; - - desktopItems = [ - (makeDesktopItem { - name = "Trilium"; - exec = "trilium"; - icon = "trilium"; - comment = meta.description; - desktopName = "Trilium Notes"; - categories = [ "Office" ]; - }) - ]; - - # 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 :) - preFixup = '' - gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath}) - ''; - - dontStrip = true; - - passthru.updateScript = ./update.sh; - }; - - - trilium-server = stdenv.mkDerivation rec { - pname = "trilium-server"; - inherit version; - meta = metaCommon; - - src = fetchurl serverSource; - - nativeBuildInputs = [ - autoPatchelfHook - ]; - - buildInputs = [ - stdenv.cc.cc.lib - ]; - - patches = [ - # patch logger to use console instead of rolling files - ./0001-Use-console-logger-instead-of-rolling-files.patch - ]; - - installPhase = '' - runHook preInstall - mkdir -p $out/bin - mkdir -p $out/share/trilium-server - - cp -r ./* $out/share/trilium-server - runHook postInstall - ''; - - 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 - ''; - - passthru.tests = { - trilium-server = nixosTests.trilium-server; - }; - }; -} diff --git a/pkgs/applications/office/trilium/desktop.nix b/pkgs/applications/office/trilium/desktop.nix new file mode 100644 index 00000000000..1424c36828b --- /dev/null +++ b/pkgs/applications/office/trilium/desktop.nix @@ -0,0 +1,72 @@ +{ stdenv, lib, +autoPatchelfHook, fetchurl, atomEnv, makeWrapper, +makeDesktopItem, copyDesktopItems, wrapGAppsHook, +libxshmfence +}: + +let + desktopSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz"; + desktopSource.sha256 = "1xr8fx5m6p9z18al1iigf45acn7b69vhbc6z6q1v933bvkwry16c"; + version = "0.58.7"; +in stdenv.mkDerivation rec { + pname = "trilium-desktop"; + inherit version; + meta = with lib; { + mainProgram = "trilium"; + description = "Hierarchical note taking application with focus on building large personal knowledge bases"; + homepage = "https://github.com/zadam/trilium"; + license = licenses.agpl3Plus; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ fliegendewurst ]; + }; + + src = fetchurl desktopSource; + + nativeBuildInputs = [ + autoPatchelfHook + makeWrapper + wrapGAppsHook + copyDesktopItems + ]; + + buildInputs = atomEnv.packages ++ [ libxshmfence ]; + + desktopItems = [ + (makeDesktopItem { + name = "Trilium"; + exec = "trilium"; + icon = "trilium"; + comment = meta.description; + desktopName = "Trilium Notes"; + categories = [ "Office" ]; + }) + ]; + + # 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 :) + preFixup = '' + gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath}) + ''; + + dontStrip = true; + + passthru.updateScript = ./update.sh; +} diff --git a/pkgs/applications/office/trilium/server.nix b/pkgs/applications/office/trilium/server.nix new file mode 100644 index 00000000000..60a4612834b --- /dev/null +++ b/pkgs/applications/office/trilium/server.nix @@ -0,0 +1,55 @@ +{ stdenv, lib, autoPatchelfHook, fetchurl, nixosTests }: + +let + serverSource.url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz"; + serverSource.sha256 = "0xr474z7wz0z4rqvk5rhv6xh51mdysr8zw86fs8fk7av0fdqxyka"; + version = "0.58.7"; +in stdenv.mkDerivation rec { + pname = "trilium-server"; + inherit version; + meta = with lib; { + description = "Hierarchical note taking application with focus on building large personal knowledge bases"; + homepage = "https://github.com/zadam/trilium"; + license = licenses.agpl3Plus; + sourceProvenance = with sourceTypes; [ binaryNativeCode ]; + platforms = [ "x86_64-linux" ]; + maintainers = with maintainers; [ fliegendewurst ]; + }; + + src = fetchurl serverSource; + + nativeBuildInputs = [ + autoPatchelfHook + ]; + + buildInputs = [ + stdenv.cc.cc.lib + ]; + + patches = [ + # patch logger to use console instead of rolling files + ./0001-Use-console-logger-instead-of-rolling-files.patch + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + mkdir -p $out/share/trilium-server + + cp -r ./* $out/share/trilium-server + runHook postInstall + ''; + + 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 + ''; + + passthru.tests = { + trilium-server = nixosTests.trilium-server; + }; +} diff --git a/pkgs/applications/office/trilium/update.sh b/pkgs/applications/office/trilium/update.sh index 02af29dace2..f7bc34b4238 100755 --- a/pkgs/applications/office/trilium/update.sh +++ b/pkgs/applications/office/trilium/update.sh @@ -4,15 +4,18 @@ set -euo pipefail cd $(dirname "${BASH_SOURCE[0]}") +setKV () { + sed -i "s|$2 = \".*\"|$2 = \"${3:-}\"|" $1 +} + version=$(curl -s --show-error "https://api.github.com/repos/zadam/trilium/releases/latest" | jq -r '.tag_name' | tail -c +2) +# Update desktop application sha256_linux64=$(nix-prefetch-url --quiet https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz) -sha256_linux64_server=$(nix-prefetch-url --quiet https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz) +setKV ./desktop.nix version $version +setKV ./desktop.nix desktopSource.sha256 $sha256_linux64 -setKV () { - sed -i "s|$1 = \".*\"|$1 = \"${2:-}\"|" ./default.nix -} - -setKV version $version -setKV desktopSource.sha256 $sha256_linux64 -setKV serverSource.sha256 $sha256_linux64_server +# Update server +sha256_linux64_server=$(nix-prefetch-url --quiet https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz) +setKV ./server.nix version $version +setKV ./server.nix serverSource.sha256 $sha256_linux64_server |