summary refs log tree commit diff
path: root/pkgs/applications/office/trilium
diff options
context:
space:
mode:
authorElian Doran <contact@eliandoran.me>2023-01-14 21:28:01 +0200
committerElian Doran <contact@eliandoran.me>2023-01-25 21:27:34 +0200
commit5760604c9d94cb2a290bf2d6f27c9c4ecbb29416 (patch)
treededdfe909db59db27e6bb8d97319ede700f2cdbd /pkgs/applications/office/trilium
parent34ab27401705b3eb62fa1e3bf3d81c6e664b864e (diff)
downloadnixpkgs-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.nix123
-rw-r--r--pkgs/applications/office/trilium/desktop.nix72
-rw-r--r--pkgs/applications/office/trilium/server.nix55
-rwxr-xr-xpkgs/applications/office/trilium/update.sh19
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