diff options
author | Aaron Andersen <aaron@fosslib.net> | 2019-12-22 20:26:57 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-22 20:26:57 -0500 |
commit | 086d1ad9062473766e7c320d03d6bfde85f263a8 (patch) | |
tree | 46643819a30462b603bc18c781f6c5c10f6b53fb /pkgs | |
parent | e865acf44c70653a1c15da9bf70faf2c1c16d9d6 (diff) | |
parent | ebf3f1fe784c5475230fc1f99f4a716f2b6821ad (diff) | |
download | nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.tar nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.tar.gz nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.tar.bz2 nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.tar.lz nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.tar.xz nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.tar.zst nixlib-086d1ad9062473766e7c320d03d6bfde85f263a8.zip |
Merge pull request #75047 from kampka/trilium-server
Add trilium server and module
Diffstat (limited to 'pkgs')
3 files changed, 163 insertions, 41 deletions
diff --git a/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch new file mode 100644 index 000000000000..1a4350ca71a1 --- /dev/null +++ b/pkgs/applications/office/trilium/0001-Use-console-logger-instead-of-rolling-files.patch @@ -0,0 +1,69 @@ +From 5be803a1171855f976a5b607970fa3949db72181 Mon Sep 17 00:00:00 2001 +From: Christian Kampka <christian@kampka.net> +Date: Mon, 9 Dec 2019 19:40:27 +0100 +Subject: [PATCH] Use console logger instead of rolling files + +--- + src/services/log.js | 26 +++----------------------- + 1 file changed, 3 insertions(+), 23 deletions(-) + +diff --git a/src/services/log.js b/src/services/log.js +index 1514c209..456c3749 100644 +--- a/src/services/log.js ++++ b/src/services/log.js +@@ -1,35 +1,15 @@ + "use strict"; + +-const fs = require('fs'); +-const dataDir = require('./data_dir'); +- +-if (!fs.existsSync(dataDir.LOG_DIR)) { +- fs.mkdirSync(dataDir.LOG_DIR, 0o700); +-} +- +-const logger = require('simple-node-logger').createRollingFileLogger({ +- errorEventName: 'error', +- logDirectory: dataDir.LOG_DIR, +- fileNamePattern: 'trilium-<DATE>.log', +- dateFormat:'YYYY-MM-DD' +-}); +- + function info(message) { + // info messages are logged asynchronously + setTimeout(() => { + console.log(message); +- +- logger.info(message); + }, 0); + } + + function error(message) { + message = "ERROR: " + message; + +- // we're using .info() instead of .error() because simple-node-logger emits weird error for showError() +- // errors are logged synchronously to make sure it doesn't get lost in case of crash +- logger.info(message); +- + console.trace(message); + } + +@@ -45,12 +25,12 @@ function request(req) { + if (req.url.includes(".js.map") || req.url.includes(".css.map")) { + return; + } +- +- logger.info(req.method + " " + req.url); ++ if(process.env.DEBUG) ++ console.log(req.method + " " + req.url); + } + + module.exports = { + info, + error, + request +-}; +\ No newline at end of file ++}; +-- +2.23.0 + 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; + }; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a7e405e20cb1..cba2d61184d7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6816,7 +6816,11 @@ in triggerhappy = callPackage ../tools/inputmethods/triggerhappy {}; - trilium = callPackage ../applications/office/trilium { }; + inherit (callPackage ../applications/office/trilium {}) + trilium-desktop + trilium-server + ; + trilium = trilium-desktop; trousers = callPackage ../tools/security/trousers { }; |